47 os <<
tab << binPoints[pointi].x();
54 os <<
tab << binPoints[pointi].y();
61 os <<
tab << binPoints[pointi].z();
68 for (label i = 0; i <
nBin_; ++i)
96 const word& fieldName = fieldNames_[fieldi];
100 const VolFieldType* fieldPtr = mesh_.findObject<VolFieldType>(fieldName);
109 writeFileHeader<Type>(filePtrs_[fieldi]);
112 const VolFieldType&
fld = *fieldPtr;
125 if (decomposePatchValues_)
131 for (
auto& binList :
data)
133 binList.setSize(nBin_,
Zero);
136 for (
const label zonei : cellZoneIDs_)
138 const cellZone& cZone = mesh_.cellZones()[zonei];
140 for (
const label celli : cZone)
142 const scalar dd = mesh_.C()[celli] & binDir_;
144 if (dd < binMin_ || dd > binMax_)
151 min(
max(floor((dd - binMin_)/binDx_), 0), nBin_ - 1);
159 const label patchi = iter();
161 const vectorField np(mesh_.boundary()[patchi].nf());
168 if (dd[facei] < binMin_ || dd[facei] > binMax_)
175 min(
max(floor((dd[facei] - binMin_)/binDx_), 0), nBin_ - 1);
177 const Type& v =
fld.boundaryField()[patchi][facei];
179 if (!decomposePatchValues(
data, bini, v, np[facei]))
188 writeBinnedData(
data, filePtrs_[fieldi]);
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))
Generic GeometricField class.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Output to file stream, using an OSstream.
label nBin_
Total number of bins.
bool decomposePatchValues_
Decompose patch values into normal and tangential components.
Database for solution data, solver performance and other reduced data.
virtual void writeTabbed(Ostream &os, const string &str) const
Write a tabbed string to stream.
void writeHeaderValue(Ostream &os, const string &property, const Type &value) const
Write a (commented) header property and value pair.
virtual void writeHeader(Ostream &os, const string &str) const
Write a commented header to stream.
virtual void writeCommented(Ostream &os, const string &str) const
Write a commented string to stream.
A patch is a list of labels that address the faces in the global face list.
const polyBoundaryMesh & boundaryMesh() const
Return boundaryMesh reference.
const vectorField::subField faceCentres() const
Return face centres.
splitCell * master() const
A class for handling words, derived from Foam::string.
OBJstream os(runTime.globalPath()/outputName)
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
Ostream & endl(Ostream &os)
Add newline and flush stream.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
static constexpr const zero Zero
Global zero (0)
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
constexpr char nl
The newline '\n' character (0x0a)
constexpr char tab
The tab '\t' character(0x09)
#define forAll(list, i)
Loop across all elements in list.
#define forAllIters(container, iter)
Iterate across all elements in the container object.