# Nested Field usage

 Register Blogs Members List Search Today's Posts Mark Forums Read

 September 13, 2019, 07:12 Nested Field usage #1 New Member   / Join Date: Jan 2019 Posts: 7 Rep Power: 3 Hi all! I got used to working with a Field of vectors such as: Field someVectorField(LengthOfField, vector::zero); Now I need 5 "coordinates so instead of a vector field i would use a field of fields. Didn't find anything on the topic, so I just tried to approach it logically: Field> someFieldField(LengthOfOuterField, (LengthOfInnerField, 0.0); Unfortunately this does not work. I can however define it as such: Field > someFieldField[LengthOfOuterField][LengthOfInnerField]; but I have no idea how to declare it afterwards. Tried = 0 or = {0} and such. Also someFieldField[0][0] = someScalar; does not work since seemingly the left hand side is still a field and not a scalar... I appreciate every bit of help. Thx in advance!

 September 16, 2019, 06:18 #2 Member   Hosein Join Date: Nov 2011 Location: Germany Posts: 81 Rep Power: 10 Hii there, I have no idea what you are trying to do however, looking at the code I got an idea which might be useful. looking into "https://cpp.openfoam.org/v7/Field_8H_source.html" section for constructors. you may initialize the outer Field normally (Field> someFieldField(outerFieldSize). This should create a Field with size of outerFieldSize in which each element now would be another Field which you can populate it later. Then you may loop through all the elements of this Field and try assigning your desired Field WRT valid operators (see the same link section Member Operators). sth like this for (label i = 0; i < outerFieldSize; i++) { someFieldField[i] = (now RHS is a Field of scalars check Member Operators for assignment) } The logic is pretty much like creating 2D matrices in C++ with raw pointers.

 September 19, 2019, 12:39 #3 New Member   / Join Date: Jan 2019 Posts: 7 Rep Power: 3 Thanks for your reply einstein! I now figured it out and gonna leave it here for future reference. To declare a list of 5 dimensional vectors I used an outer list (I do not need the functionality of a field there, but can be exchanged): List bananaList( lengthOfOuterList, Field(lengthOfInnerField, values) To populate it with values other than zero, one can then as you mentionend just access it as one would a normal array. for (int i = 0; i < lengthOfOuterList; i++) { bananaList[i][0] = someScalar; bananaList[i][1] = someScalar; bananaList[i][2] = someScalar; etc..... }