Loading...
Searching...
No Matches
fixedJumpAMIFvPatchField.C
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2012-2017 OpenFOAM Foundation
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26\*---------------------------------------------------------------------------*/
27
29
30// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
31
32template<class Type>
34(
35 const fvPatch& p,
37)
40 jump_(this->size(), Zero)
41{}
42
43
44template<class Type>
46(
48 const fvPatch& p,
50 const fvPatchFieldMapper& mapper
51)
53 jumpCyclicAMIFvPatchField<Type>(ptf, p, iF, mapper),
54 jump_(ptf.jump_, mapper)
55{}
56
57
58template<class Type>
60(
61 const fvPatch& p,
63 const dictionary& dict
64)
65:
67 jump_(p.size(), Zero)
68{
69 if (this->cyclicAMIPatch().owner())
70 {
71 jump_.assign("jump", dict, p.size(), IOobjectOption::MUST_READ);
72 }
73
74 if (!this->readValueEntry(dict))
83(
84 const fixedJumpAMIFvPatchField<Type>& ptf
85)
88 jump_(ptf.jump_)
89{}
90
91
92template<class Type>
94(
97)
98:
99 jumpCyclicAMIFvPatchField<Type>(ptf, iF),
101{}
102
103
104// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
105
106template<class Type>
108{
109 if (this->cyclicAMIPatch().owner())
110 {
111 return jump_;
112 }
113 else
114 {
115 const fixedJumpAMIFvPatchField& nbrPatch =
117 (
118 this->neighbourPatchField()
119 );
120
121 if (this->cyclicAMIPatch().applyLowWeightCorrection())
123 return this->cyclicAMIPatch().interpolate
124 (
125 nbrPatch.jump(),
126 Field<Type>(this->size(), Zero)
127 );
128 }
129 else
130 {
131 return this->cyclicAMIPatch().interpolate(nbrPatch.jump());
132 }
133 }
134}
135
136
137template<class Type>
139(
140 const fvPatchFieldMapper& m
141)
144 jump_.autoMap(m);
145}
146
147
148template<class Type>
150(
151 const fvPatchField<Type>& ptf,
152 const labelList& addr
153)
154{
156
159 jump_.rmap(tiptf.jump_, addr);
160}
161
162
163template<class Type>
165{
167 os.writeEntry("patchType", this->interfaceFieldType());
168
169 if (this->cyclicAMIPatch().owner())
170 {
171 jump_.writeEntry("jump", os);
172 }
173
175}
176
177
178// ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Generic templated field type that is much like a Foam::List except that it is expected to hold numeri...
Definition Field.H:172
@ MUST_READ
Reading required.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition Ostream.H:59
void size(const label n)
Definition UList.H:118
@ buffered
"buffered" : (MPI_Bsend, MPI_Recv)
Definition UPstream.H:82
virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
const cyclicAMIFvPatchField< Type > & neighbourPatchField() const
Return reference to neighbour patchField.
virtual void rmap(const fvPatchField< Type > &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
const cyclicAMIFvPatch & cyclicAMIPatch() const noexcept
Return local reference cast into the cyclic AMI patch.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
This boundary condition provides a jump condition, across non-conformal cyclic path-pairs,...
virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
virtual void write(Ostream &) const
Write.
virtual tmp< Field< Type > > jump() const
Return the "jump" across the patch.
virtual void rmap(const fvPatchField< Type > &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
fixedJumpAMIFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
A FieldMapper for finite-volume patch fields.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
virtual void write(Ostream &) const
Write.
void writeValueEntry(Ostream &os) const
Write *this field as a "value" entry.
bool readValueEntry(const dictionary &dict, IOobjectOption::readOption readOpt=IOobjectOption::LAZY_READ)
Read the "value" entry into *this.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition fvPatch.H:71
This boundary condition provides a base class that enforces a cyclic condition with a specified 'jump...
virtual const word & interfaceFieldType() const
Return the interface type.
jumpCyclicAMIFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
virtual void evaluate(const Pstream::commsTypes commsType)
Evaluate the patch field.
A class for managing temporary objects.
Definition tmp.H:75
volScalarField & p
OBJstream os(runTime.globalPath()/outputName)
Type & refCast(U &obj)
A dynamic_cast (for references) to Type reference.
Definition typeInfo.H:172
List< label > labelList
A List of labels.
Definition List.H:62
static constexpr const zero Zero
Global zero (0).
Definition zero.H:127
dictionary dict