38template<
class GeoField>
39void Foam::parFaFieldDistributorCache::redistributeAndWrite
41 const faMeshDistributor& distributor,
43 const bool isWriteProc
48 tmp<GeoField> tfld = distributor.distributeField(
fld);
62 const Time& baseRunTime,
63 const fileName& proc0CaseName,
67 const fileName& areaMeshInstance,
74 autoPtr<faMeshSubset> subsetterPtr;
77 if (areaMeshOnProc.found(
false))
81 subsetterPtr.reset(
new faMeshSubset(
mesh, zero{}));
84 auto& obr =
const_cast<objectRegistry&
>
86 subsetterPtr->subMesh().thisDb()
90 obr.checkOut(
"faBoundaryMesh");
91 obr.checkOut(
"faSchemes");
92 obr.checkOut(
"faSolution");
110 <<
" mesh:" <<
mesh.mesh().objectRegistry::objectRelPath()
111 <<
" have objects:" << objects.
names() <<
endl;
119 #undef doFieldReading
120 #define doFieldReading(Storage) \
121 fieldsDistributor::readFields \
123 areaMeshOnProc, mesh, subsetterPtr, objects, Storage, \
128 doFieldReading(scalarAreaFields_);
129 doFieldReading(vectorAreaFields_);
130 doFieldReading(sphericalTensorAreaFields_);
131 doFieldReading(symmTensorAreaFields_);
132 doFieldReading(tensorAreaFields_);
135 doFieldReading(scalarEdgeFields_);
136 doFieldReading(vectorEdgeFields_);
137 doFieldReading(tensorEdgeFields_);
138 doFieldReading(sphericalTensorEdgeFields_);
139 doFieldReading(symmTensorEdgeFields_);
140 #undef doFieldReading
144void Foam::parFaFieldDistributorCache::redistributeAndWrite
146 const faMeshDistributor& distributor,
147 const bool isWriteProc
150 redistributeAndWrite(distributor, scalarAreaFields_, isWriteProc);
151 redistributeAndWrite(distributor, vectorAreaFields_, isWriteProc);
152 redistributeAndWrite(distributor, sphericalTensorAreaFields_, isWriteProc);
153 redistributeAndWrite(distributor, symmTensorAreaFields_, isWriteProc);
154 redistributeAndWrite(distributor, tensorAreaFields_, isWriteProc);
156 redistributeAndWrite(distributor, scalarEdgeFields_, isWriteProc);
157 redistributeAndWrite(distributor, vectorEdgeFields_, isWriteProc);
158 redistributeAndWrite(distributor, sphericalTensorEdgeFields_, isWriteProc);
159 redistributeAndWrite(distributor, symmTensorEdgeFields_, isWriteProc);
160 redistributeAndWrite(distributor, tensorEdgeFields_, isWriteProc);
Info<< nl<< "Wrote faMesh in vtk format: "<< writer.output().name()<< nl;}{ vtk::lineWriter writer(aMesh.points(), aMesh.edges(), fileName(aMesh.mesh().time().globalPath()/"finiteArea-edges"));writer.writeGeometry();writer.beginCellData(4);writer.writeProcIDs();{ Field< scalar > fld(faMeshTools::flattenEdgeField(aMesh.magLe(), true))
virtual bool read()
Re-read model coefficients if they have changed.
bool processorCase() const noexcept
Return true if this is a processor case.
const fileName & caseName() const
Return case name.
static word timeName(const scalar t, const int precision=precision_)
const Time & time() const
Return the top-level database.
wordList names() const
The unsorted names of all objects.
splitCell * master() const
messageStream Info
Information stream (stdout output on master, null elsewhere)
Ostream & endl(Ostream &os)
Add newline and flush stream.
List< bool > boolList
A List of bools.
multivariateSurfaceInterpolationScheme< scalar >::fieldTable fields
static const char *const typeName
The type name used in ensight case files.