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"
45 << fileName(dataMask/cloud::prefix/
cloudName/
"positions").c_str()
49 <<
nl <<
"VARIABLE" <<
nl;
53 const word& fieldName = fieldIter.key();
54 const word& fieldType = fieldIter();
57 if (fieldType == volScalarField::typeName)
59 ensightType =
"scalar";
61 else if (fieldType == volVectorField::typeName)
63 ensightType =
"vector";
65 else if (fieldType == volSphericalTensorField::typeName)
67 ensightType =
"tensor symm";
69 else if (fieldType == volSymmTensorField::typeName)
71 ensightType =
"tensor symm";
73 else if (fieldType == volTensorField::typeName)
75 ensightType =
"tensor asym";
78 if (ensightType.size())
100 const word& fieldName = fieldIter.key();
101 const word& fieldType = fieldIter();
104 if (fieldType == scalarIOField::typeName)
106 ensightType =
"scalar";
108 else if (fieldType == vectorIOField::typeName)
110 ensightType =
"vector";
112 else if (fieldType == tensorIOField::typeName)
114 ensightType =
"tensor";
117 if (ensightType.size())
136 caseFile <<
nl <<
"TIME" <<
nl;
139 if (fieldTimesUsed.size())
142 <<
"time set: " << 1 <<
nl
143 <<
"number of steps: " << fieldTimesUsed.size() <<
nl
144 <<
"filename numbers:" <<
nl;
150 <<
" " <<
setw(12) << fieldTimesUsed[i];
152 if (++
count % 6 == 0)
159 <<
nl <<
"time values:" <<
nl;
168 if (++
count % 6 == 0)
173 caseFile <<
nl <<
nl;
178 forAllConstIter(HashTable<DynamicList<label>>, cloudTimesUsed, cloudIter)
186 <<
"time set: " << 2 <<
nl
188 <<
"filename numbers:" <<
nl;
196 if (++
count % 6 == 0)
203 <<
nl <<
"time values:" <<
nl;
212 if (++
count % 6 == 0)
217 caseFile <<
nl <<
nl;
223 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/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, 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"))