31template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
32void Foam::rawTopoChangerFvMesh::setUnmappedValues
34 GeometricField<Type, PatchField, GeoMesh>&
fld,
35 const bitSet& mappedFace,
36 const GeometricField<Type, PatchField, GeoMesh>& baseFld
43 auto& fvp =
const_cast<PatchField<Type>&
>(
fld.boundaryField()[patchi]);
45 const label start = fvp.patch().start();
48 if (!mappedFace[start+i])
54 fvp[i] = baseFld.boundaryField()[patchi][i];
61template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
62void Foam::rawTopoChangerFvMesh::zeroUnmappedValues
69 std::unique_ptr<FieldType> zeroFieldPtr;
73 FieldType&
fld = lookupObjectRef<FieldType>(fldName);
78 zeroFieldPtr = std::make_unique<FieldType>
80 this->newIOobject(
"zero"),
87 zeroFieldPtr->dimensions().reset(
fld.dimensions());
89 setUnmappedValues(
fld, mappedFace, *zeroFieldPtr);
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))
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
Generic GeometricField class.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
A class for handling words, derived from Foam::string.
const dimensionSet dimless
Dimensionless.
#define forAll(list, i)
Loop across all elements in list.