54 pbm[iter.key()].meshPoints()
65 pbm[iter.key()].meshPoints()
77 if (cylinderHeadPoints[
pi] && linerPoints[
pi])
100 cylinderHeadPointSet.
toc(),
116 scalar maxZ = -great;
120 if (pbm[
patchi].localPoints().size())
131 label nPistonPatchPoints = 0;
135 nPistonPatchPoints += pbm[
patchi].meshPoints().
size();
144 labelList pistonPatchPoints(nPistonPatchPoints);
147 nPistonPatchPoints = 0;
155 pistonPatchPoints[nPistonPatchPoints] =
mp[ppi];
160 nPistonPatchPoints++;
178 pistonPatchPointData,
188 forAll(allPointData, pointi)
190 if (allPointData[pointi].inBowl())
192 pistonBowlPointSet.
insert(pointi);
202 pistonBowlPointSet.
toc(),
211 int main(
int argc,
char *argv[])
220 "Create the cylinderHead pointZone"
226 "Create the piston pointZone"
235 if (!cylinderHeadZone && !pistonBowlZone)
238 <<
"Neither cylinderHeadZone nor pistonBowl pointZones requested"
246 refCast<const fvMeshMovers::multiValveEngine>(mesh.
mover())
249 if (cylinderHeadZone)
251 calcCylinderHeadPoints(mve);
256 calcPistonBowlPoints(mve);
260 Info<<
"Writing pointZones" <<
endl;
#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.
bool insert(const Key &key)
Insert a new entry.
List< Key > toc() const
Return the table of contents.
void size(const label)
Override size to be inconsistent with allocated storage.
Wave propagation of information through grid. Every iteration information goes through one layer of e...
A List with indirect addressing.
label size() const
Return the number of elements in the UPtrList.
void append(ZoneType *) const
Append or update a zone.
static void addBoolOption(const word &opt, const string &usage="")
Add to a bool option to validOptions with usage information.
bool optionFound(const word &opt) const
Return true if the named option is found.
static void noParallel()
Remove the parallel options.
fvMesh & mesh()
Return the fvMesh.
const labelHashSet & patchSet
Object patchSet.
static word pistonBowlName
Name of the piston bowl pointZone.
A mesh mover using explicit node translation based on scaled distance functions per moving object....
const labelHashSet & staticPatchSet
Static patch set.
const labelHashSet & linerPatchSet
User-defined liner patches.
const pistonObject & piston
Piston object.
static word cylinderHeadName
Name of the cylinder head pointZone.
Mesh data needed to do the Finite Volume discretisation.
const fvMeshMover & mover() const
Return the mover function class.
label nTotalPoints() const
Return total number of points in decomposed mesh. Not.
Class used to pass data into container.
Holds information regarding nearest wall point. Used in PointEdgeWave. (so not standard FaceCellWave)...
A subset of mesh points. The labels of points in the zone can be obtained from the addressing() list.
const pointZoneList & pointZones() const
Return point zones.
const globalMeshData & globalData() const
Return parallel info.
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
virtual const pointField & points() const
Return raw points.
virtual bool write(const bool write=true) const
Write using setting from DB.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
int main(int argc, char *argv[])
const dimensionedScalar mp
Proton mass.
errorManipArg< error, int > exit(error &err, const int errNo=1)
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.
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
void reduce(const List< UPstream::commsStruct > &comms, T &Value, const BinaryOp &bop, const int tag, const label comm)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
Foam::argList args(argc, argv)