uniformJumpFvPatchField.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 | Copyright (C) 2012 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 \*---------------------------------------------------------------------------*/
25 
27 
28 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
29 
30 template<class Type>
32 (
33  const fvPatch& p,
35 )
36 :
38  jumpTable_(new DataEntry<Type>("jumpTable"))
39 {}
40 
41 
42 template<class Type>
44 (
46  const fvPatch& p,
48  const fvPatchFieldMapper& mapper
49 )
50 :
51  fixedJumpFvPatchField<Type>(ptf, p, iF, mapper),
52  jumpTable_(ptf.jumpTable_().clone().ptr())
53 {}
54 
55 
56 template<class Type>
58 (
59  const fvPatch& p,
61  const dictionary& dict
62 )
63 :
65  jumpTable_(new DataEntry<Type>("jumpTable"))
66 {
67  if (this->cyclicPatch().owner())
68  {
69  jumpTable_ = DataEntry<Type>::New("jumpTable", dict);
70  }
71 
72  if (dict.found("value"))
73  {
75  (
76  Field<Type>("value", dict, p.size())
77  );
78  }
79  else
80  {
81  this->evaluate(Pstream::blocking);
82  }
83 }
84 
85 
86 template<class Type>
88 (
90 )
91 :
93  jumpTable_(ptf.jumpTable_().clone().ptr())
94 {}
95 
96 
97 template<class Type>
99 (
102 )
103 :
105  jumpTable_(ptf.jumpTable_().clone().ptr())
106 {}
107 
108 
109 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
110 
111 template<class Type>
113 {
114  if (this->updated())
115  {
116  return;
117  }
118 
119  if (this->cyclicPatch().owner())
120  {
121  this->jump_ = jumpTable_->value(this->db().time().value());
122  }
123 
125 }
126 
127 
128 template<class Type>
130 {
132  if (this->cyclicPatch().owner())
133  {
134  jumpTable_->writeData(os);
135  }
136 }
137 
138 
139 // ************************************************************************* //
bool found(const word &, bool recursive=false, bool patternMatch=true) const
Search dictionary for given keyword.
Definition: dictionary.C:306
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
void size(const label)
Override size to be inconsistent with allocated storage.
Foam::fvPatchFieldMapper.
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:137
autoPtr< BasicCompressibleTurbulenceModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const typename BasicCompressibleTurbulenceModel::transportModel &transport, const word &propertiesName)
runTime write()
dictionary dict
volScalarField & p
Definition: createFields.H:51
This boundary condition provides a jump condition, using the cyclic condition as a base...
virtual void updateCoeffs()
Update the coefficients.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition: fvPatchField.H:65
Pre-declare SubField and related Field type.
Definition: Field.H:57
virtual tmp< fvPatchField< Type > > clone() const
Construct and return a clone.
autoPtr< DataEntry< Type > > jumpTable_
"jump" table
uniformJumpFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:53
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:61
This boundary condition provides a jump condition, using the cyclic condition as a base...
virtual void write(Ostream &) const
Write.
Top level data entry class for use in dictionaries. Provides a mechanism to specify a variable as a c...
Definition: DataEntry.H:52