38#ifndef Foam_IntegralScaleBox_H
39#define Foam_IntegralScaleBox_H
63 using TypeL = std::conditional_t
65 std::is_same_v<scalar, Type>,
74 enum kernelType :
bool
96 const enum kernelType kernelType_;
160 void calcCoordinateSystem();
188 TypeL convert(
const TypeL&
L)
const;
193 scalar calcC1(
const vector&
L)
const;
199 scalar calcC2(
const vector&
L)
const;
251 bool fsm()
const noexcept
Info<< nl;Info<< "Write faMesh in vtk format:"<< nl;{ vtk::uindirectPatchWriter writer(aMesh.patch(), fileName(aMesh.time().globalPath()/vtkBaseFileName));writer.writeGeometry();globalIndex procAddr(aMesh.nFaces());labelList cellIDs;if(UPstream::master()) { cellIDs.resize(procAddr.totalSize());for(const labelRange &range :procAddr.ranges()) { auto slice=cellIDs.slice(range);slice=identity(range);} } writer.beginCellData(4);writer.writeProcIDs();writer.write("cellID", cellIDs);writer.write("area", aMesh.S().field());writer.write("normal", aMesh.faceAreaNormals());writer.beginPointData(1);writer.write("normal", aMesh.pointAreaNormals());Info<< " "<< writer.output().name()<< nl;}{ vtk::lineWriter writer(aMesh.points(), aMesh.edges(), fileName(aMesh.time().globalPath()/(vtkBaseFileName+"-edges")));writer.writeGeometry();writer.beginCellData(4);writer.writeProcIDs();{ Field< scalar > fld(faMeshTools::flattenEdgeField(aMesh.magLe(), true))
Enum is a wrapper around a list of names/values that represent particular enumeration (or int) values...
Generic templated field type that is much like a Foam::List except that it is expected to hold numeri...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Templated 2D Vector derived from VectorSpace adding construction from 2 components,...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
void initialise()
Initialise integral-scale box properties.
void refill()
Add a new integral-scale box slice to the rear of the box.
const primitivePatch & patch()
Return const reference to integral-scale box inlet patch.
void shift()
Discard current time-step integral-scale box slice (the closest to the patch) by shifting from the ba...
IntegralScaleBox(const fvPatch &p)
Construct from patch.
bool fsm() const noexcept
Return the object: fsm.
void correlate(scalarField &fld)
Apply forward-stepwise correlation for scalar fields.
static int debug
Flag to activate debug statements.
Field< Type > convolve() const
Embed two-point correlations, i.e. L.
List< scalarList > scalarListList
List of scalarList.
List< label > labelList
A List of labels.
PrimitivePatch< SubList< face >, const pointField & > primitivePatch
A PrimitivePatch with a SubList addressing for the faces, const reference for the point field.
List< face > faceList
List of faces.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Field< vector > vectorField
Specialisation of Field<T> for vector.
vectorField pointField
pointField is a vectorField.
const vector L(dict.get< vector >("L"))