34 template<
class>
class PatchField,
35 template<
class>
class SlicedPatchField,
43 const Field<Type>& completeField,
44 const bool preserveCouples,
45 const bool preserveProcessorOnly
48 tmp<FieldField<PatchField, Type>> tbf
50 new FieldField<PatchField, Type>(mesh.boundary().size())
52 FieldField<PatchField, Type>& bf = tbf.ref();
59 && mesh.boundary()[
patchi].coupled()
61 !preserveProcessorOnly
62 || isA<processorFvPatch>(mesh.boundary()[
patchi])
72 mesh.boundary()[
patchi].type(),
82 bf[
patchi] = SlicedPatchField<Type>
85 DimensionedField<Type, GeoMesh>::null(),
94 new SlicedPatchField<Type>
97 DimensionedField<Type, GeoMesh>::null(),
111 template<
class>
class PatchField,
112 template<
class>
class SlicedPatchField,
120 const FieldField<PatchField, Type>& bField,
121 const bool preserveCouples
124 tmp<FieldField<PatchField, Type>> tbf
126 new FieldField<PatchField, Type>(mesh.boundary().size())
128 FieldField<PatchField, Type>& bf = tbf.ref();
132 if (preserveCouples && mesh.boundary()[
patchi].coupled())
140 mesh.boundary()[
patchi].type(),
155 new SlicedPatchField<Type>
158 DimensionedField<Type, GeoMesh>::null(),
174 template<
class>
class PatchField,
175 template<
class>
class SlicedPatchField,
185 const bool preserveCouples
194 slicedBoundaryField(mesh, completeField, preserveCouples)
210 template<
class>
class PatchField,
211 template<
class>
class SlicedPatchField,
222 const bool preserveCouples,
223 const bool preserveProcessorOnly
237 preserveProcessorOnly
254 template<
class>
class PatchField,
255 template<
class>
class SlicedPatchField,
263 const bool preserveCouples
272 slicedBoundaryField(gf.mesh(), gf.boundaryField(), preserveCouples)
285 template<
class>
class PatchField,
286 template<
class>
class SlicedPatchField,
301 slicedBoundaryField(gf.mesh(), gf.boundaryField(), true)
312 template<
class>
class PatchField,
313 template<
class>
class SlicedPatchField,
341 template<
class>
class PatchField,
342 template<
class>
class SlicedPatchField,
359 template<
class>
class PatchField,
360 template<
class>
class SlicedPatchField,
367 const Mesh& mesh = this->mesh();
369 label completeSize = GeoMesh::size(mesh);
373 completeSize += mesh.boundaryMesh()[
patchi].size();
380 = this->primitiveField();
382 label start = GeoMesh::size(mesh);
388 mesh.boundary()[
patchi].size()
389 == mesh.boundaryMesh()[
patchi].size()
397 ) = this->boundaryField()[
patchi];
409 start += mesh.boundaryMesh()[
patchi].size();
412 return tCompleteField;
419 template<
class>
class PatchField,
420 template<
class>
class SlicedPatchField,
#define forAll(list, i)
Loop across all elements in list.
GeoMesh::Mesh Mesh
Type of mesh on which this DimensionedField is instantiated.
const Mesh & mesh() const
Return mesh.
Pre-declare SubField and related Field type.
SubField< Type > subField
Declare type of subField.
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
Generic GeometricField class.
const Internal::FieldType & primitiveField() const
Return a const-reference to the primitive field.
void correctBoundaryConditions()
Correct boundary field.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
void size(const label)
Override size to be inconsistent with allocated storage.
Specialisation of GeometricField which holds slices of given complete fields in a form that they act ...
tmp< SlicedGeometricField< Type, PatchField, SlicedPatchField, GeoMesh > > clone() const
Clone.
SlicedGeometricField(const IOobject &, const Mesh &, const dimensionSet &, const Field< Type > &completeField, const bool preserveCouples=true)
Construct from components and field to slice.
tmp< Field< Type > > splice() const
Splice the sliced field and return the complete field.
~SlicedGeometricField()
Destructor.
void correctBoundaryConditions()
Correct boundary field.
Pre-declare related SubField type.
void shallowCopy(const UList< T > &)
Copy the pointer held by the given UList.
Dimension set for the base types.
A class for managing temporary objects.
T & ref() const
Return non-const reference or generate a fatal error.
autoPtr< CompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const viscosity &viscosity)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const HashTable< dimensionSet > & dimensions()
Get the table of dimension sets.