11 Info <<
"write case: " << caseFileName.c_str() <<
endl;
13 OFstream caseFile(ensightDir/caseFileName, IOstream::ASCII);
14 caseFile.setf(ios_base::left);
17 caseFile.precision(5);
21 <<
setw(16) <<
"type:" <<
"ensight gold" <<
nl <<
nl;
27 <<
setw(16) <<
"model: 1" << (dataMask/geometryName).c_str() <<
nl;
33 <<
setw(16) <<
"model:" << geometryName <<
nl;
44 <<
setw(16) <<
"measured: 2"
47 dataMask/lagrangian::cloud::prefix/
cloudName/
"positions"
52 <<
nl <<
"VARIABLE" <<
nl;
56 const word& fieldName = fieldIter.key();
57 const word& fieldType = fieldIter();
60 if (fieldType == volScalarField::typeName)
62 ensightType =
"scalar";
64 else if (fieldType == volVectorField::typeName)
66 ensightType =
"vector";
68 else if (fieldType == volSphericalTensorField::typeName)
70 ensightType =
"tensor symm";
72 else if (fieldType == volSymmTensorField::typeName)
74 ensightType =
"tensor symm";
76 else if (fieldType == volTensorField::typeName)
78 ensightType =
"tensor asym";
81 if (ensightType.size())
103 const word& fieldName = fieldIter.key();
104 const word& fieldType = fieldIter();
107 if (fieldType == scalarIOField::typeName)
109 ensightType =
"scalar";
111 else if (fieldType == vectorIOField::typeName)
113 ensightType =
"vector";
115 else if (fieldType == tensorIOField::typeName)
117 ensightType =
"tensor";
120 if (ensightType.size())
139 caseFile <<
nl <<
"TIME" <<
nl;
142 if (fieldTimesUsed.size())
145 <<
"time set: " << 1 <<
nl
146 <<
"number of steps: " << fieldTimesUsed.size() <<
nl
147 <<
"filename numbers:" <<
nl;
153 <<
" " <<
setw(12) << fieldTimesUsed[i];
155 if (++
count % 6 == 0)
162 <<
nl <<
"time values:" <<
nl;
171 if (++
count % 6 == 0)
176 caseFile <<
nl <<
nl;
181 forAllConstIter(HashTable<DynamicList<label>>, cloudTimesUsed, cloudIter)
189 <<
"time set: " << 2 <<
nl
191 <<
"filename numbers:" <<
nl;
199 if (++
count % 6 == 0)
206 <<
nl <<
"time values:" <<
nl;
215 if (++
count % 6 == 0)
220 caseFile <<
nl <<
nl;
226 caseFile <<
"# end" <<
nl;
#define forAll(list, i)
Loop across all elements in list.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
Info<< "write case: "<< caseFileName.c_str()<< endl;OFstream caseFile(ensightDir/caseFileName, IOstream::ASCII);caseFile.setf(ios_base::left);caseFile.setf(ios_base::scientific, ios_base::floatfield);caseFile.precision(5);caseFile<< "FORMAT"<< nl<< setw(16)<< "type:"<< "ensight gold"<< nl<< nl;if(hasMovingMesh){ caseFile<< "GEOMETRY"<< nl<< setw(16)<< "model: 1"<<(dataMask/geometryName).c_str()<< nl;}else{ caseFile<< "GEOMETRY"<< nl<< setw(16)<< "model:"<< geometryName<< nl;}forAllConstIter(HashTable< HashTable< word >>, cloudFields, cloudIter){ const word &cloudName=cloudIter.key();caseFile<< setw(16)<< "measured: 2"<< fileName(dataMask/lagrangian::cloud::prefix/cloudName/"positions").c_str()<< nl;}caseFile<< nl<< "VARIABLE"<< nl;forAllConstIter(HashTable< word >, volumeFields, fieldIter){ const word &fieldName=fieldIter.key();const word &fieldType=fieldIter();string ensightType;if(fieldType==volScalarField::typeName) { ensightType="scalar";} else if(fieldType==volVectorField::typeName) { ensightType="vector";} else if(fieldType==volSphericalTensorField::typeName) { ensightType="tensor symm";} else if(fieldType==volSymmTensorField::typeName) { ensightType="tensor symm";} else if(fieldType==volTensorField::typeName) { ensightType="tensor asym";} if(ensightType.size()) { ensightCaseEntry(caseFile, ensightType, fieldName, dataMask);}}label cloudNo=0;forAllConstIter(HashTable< HashTable< word >>, cloudFields, cloudIter){ const word &cloudName=cloudIter.key();forAllConstIter(HashTable< word >, cloudIter(), fieldIter) { const word &fieldName=fieldIter.key();const word &fieldType=fieldIter();string ensightType;if(fieldType==scalarIOField::typeName) { ensightType="scalar";} else if(fieldType==vectorIOField::typeName) { ensightType="vector";} else if(fieldType==tensorIOField::typeName) { ensightType="tensor";} if(ensightType.size()) { ensightCaseEntry(caseFile, ensightType, fieldName, dataMask, lagrangian::cloud::prefix/cloudName, cloudNo, 2);} } cloudNo++;}caseFile<< nl<< "TIME"<< nl;if(fieldTimesUsed.size()){ caseFile<< "time set: "<< 1<< nl<< "number of steps: "<< fieldTimesUsed.size()<< nl<< "filename numbers:"<< nl;label count=0;forAll(fieldTimesUsed, i) { caseFile<< " "<< setw(12)<< fieldTimesUsed[i];if(++count % 6==0) { caseFile<< nl;} } caseFile<< nl<< "time values:"<< nl;count=0;forAll(fieldTimesUsed, i) { caseFile<< " "<< setw(12)<< timeIndices[fieldTimesUsed[i]]+timeCorrection;if(++count % 6==0) { caseFile<< nl;} } caseFile<< nl<< nl;}cloudNo=0;forAllConstIter(HashTable< DynamicList< label >>, cloudTimesUsed, cloudIter){ const DynamicList< label > & timesUsed
HashTable< HashTable< word > > cloudFields
HashTable< word > volumeFields
static instantList timeDirs
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Omanip< int > setw(const int i)
void ensightCaseEntry(OFstream &caseFile, const string &ensightType, const word &fieldName, const fileName &dataMask, const fileName &local=fileName::null, const label cloudNo=-1, const label timeSet=1)
IOstream & scientific(IOstream &io)
label count(const ListType &l, typename ListType::const_reference x)
Count the number of occurrences of a value in a list.
const word cloudName(propsDict.lookup("cloudName"))