35 void Foam::fvMeshToFvMesh::evaluateConstraintTypes(VolField<Type>&
fld)
49 fvPatchField<Type>& tgtField = fldBf[
patchi];
53 tgtField.type() == tgtField.patch().poly().type()
54 && tgtField.patch().poly().constraint()
73 fvPatchField<Type>& tgtField = fldBf[
patchi];
77 tgtField.type() == tgtField.patch().poly().type()
78 && tgtField.patch().poly().constraint()
88 fld.mesh().globalData().patchSchedule();
90 forAll(patchSchedule, patchEvali)
93 fvPatchField<Type>& tgtField = fldBf[
patchi];
97 tgtField.type() == tgtField.patch().poly().type()
98 && tgtField.patch().poly().constraint()
101 if (patchSchedule[patchEvali].init)
128 const label srcPatchi = patchIndices()[i].first();
129 const label tgtPatchi = patchIndices()[i].second();
131 if (!tgtPatchFields.
set(tgtPatchi))
139 tgtMesh_.boundary()[tgtPatchi],
150 labelList tgtPatchFieldIsUnMapped(tgtPatchFields.
size(),
false);
151 forAll(tgtPatchFields, tgtPatchi)
153 if (!tgtPatchFields.
set(tgtPatchi))
161 tgtMesh_.boundary()[tgtPatchi],
166 tgtPatchFieldIsUnMapped[tgtPatchi] =
167 tgtMesh_.boundary()[tgtPatchi].poly().constraint();
180 ttgtFld.
ref().boundaryFieldRef();
185 const label srcPatchi = patchIndices()[i].first();
186 const label tgtPatchi = patchIndices()[i].second();
188 tgtBfld[tgtPatchi].map
193 patchInterpolation(i),
194 tgtPatchStabilisation(i)
202 if (tgtPatchFieldIsUnMapped[
patchi])
210 evaluateConstraintTypes(ttgtFld.
ref());
229 srcToTgt<Type>(srcFld.
v(), leftOverTgtFld.
v())(),
233 ttgtFld.
ref().boundaryFieldRef();
238 const label srcPatchi = patchIndices()[i].first();
239 const label tgtPatchi = patchIndices()[i].second();
241 tgtBfld[tgtPatchi].map
246 tgtBfld[tgtPatchi].map
255 leftOverTgtFld.
mesh().poly().boundary().patchSet(tgtCuttingPatchNames);
258 tgtBfld[iter.key()] == tgtBfld[iter.key()].patchInternalField();
262 evaluateConstraintTypes(ttgtFld.
ref());
277 typedName(
"interpolate(" + srcFld.name() +
")"),
280 cellsInterpolation().srcToTgt(srcFld)
283 tgtCellsStabilisation().stabilise(ttgtFld.
ref());
299 typedName(
"interpolate(" + srcFld.name() +
")"),
301 leftOverTgtFld.dimensions(),
302 cellsInterpolation().srcToTgt(srcFld, leftOverTgtFld)
318 const label srcPatchi = patchIndices()[i].first();
319 const label tgtPatchi = patchIndices()[i].second();
321 if (!tgtPatchFields.
set(tgtPatchi))
329 tgtMesh_.boundary()[tgtPatchi],
333 patchInterpolation(i),
334 tgtPatchStabilisation(i)
342 forAll(tgtPatchFields, tgtPatchi)
344 if (!tgtPatchFields.
set(tgtPatchi))
352 tgtMesh_.boundary()[tgtPatchi],
#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.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const GeoMesh & mesh() const
Return mesh.
Generic GeometricBoundaryField class.
Generic GeometricField class.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
const Internal & internalField() const
Return a const-reference to the dimensioned internal field.
GeometricBoundaryField< Type, GeoMesh, PrimitiveField > Boundary
Type of the boundary field.
const Internal & v() const
Return a const-reference to the dimensioned internal field.
static tmp< GeometricField< Type, GeoMesh, PrimitiveField > > New(const word &name, const Internal &, const PtrList< Patch > &, const HashPtrTable< Source > &=HashPtrTable< Source >())
Return a temporary field constructed from name,.
const word & name() const
Return name.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
bool set(const label) const
Is element set.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
static label nRequests()
Get number of outstanding requests.
static void waitRequests(const label start=0)
Wait until all requests (from start onwards) have finished.
static bool & parRun()
Is this a parallel run?
static commsTypes defaultCommsType
Default commsType.
label size() const
Return the number of elements in the UPtrList.
This boundary condition is not designed to be evaluated; it is assumed that the value is assigned via...
tmp< VolField< Type > > srcToTgt(const VolField< Type > &srcFld) const
Interpolate a source vol field to the target with no left.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
virtual tmp< Field< Type > > patchInternalField() const
Return internal field next to patch as patch field.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
Patch-to-patch fieldMapper which retains values in the target field for parts of the patch that do no...
Patch-to-patch fieldMapper which fills values for non-overlapping parts of the target patch by normal...
Mapper which sets the field size. It does not actually map values.
A class for managing temporary objects.
T & ref() const
Return non-const reference or generate a fatal error.
gmvFile<< "tracers "<< particles.size()<< nl;{ pointField positions(particles.size());label particlei=0;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter) { positions[particlei++]=iter().position(mesh);} for(i=0;i< pTraits< point >::nComponents;i++) { forAll(positions, particlei) { gmvFile<< component(positions[particlei], i)<< ' ';} gmvFile<< nl;}}forAll(lagrangianScalarNames, i){ const word &name=lagrangianScalarNames[i];IOField< scalar > fld(IOobject(name, runTime.name(), lagrangian::cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
List< lduScheduleEntry > lduSchedule
typename VolField< Type >::Internal VolInternalField
word typedName(Name name)
Return the name of the object within the given type.
tmp< DimensionedField< TypeR, GeoMesh, Field > > New(const tmp< DimensionedField< TypeR, GeoMesh, Field >> &tdf1, const word &name, const dimensionSet &dimensions)