filmHeightInletVelocityFvPatchVectorField.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) 2011-2016 OpenFOAM Foundation
9 Copyright (C) 2020 OpenCFD Ltd.
10-------------------------------------------------------------------------------
11License
12 This file is part of OpenFOAM.
13
14 OpenFOAM is free software: you can redistribute it and/or modify it
15 under the terms of the GNU General Public License as published by
16 the Free Software Foundation, either version 3 of the License, or
17 (at your option) any later version.
18
19 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26
27\*---------------------------------------------------------------------------*/
28
31#include "volFields.H"
32#include "surfaceFields.H"
33
34// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
35
36Foam::filmHeightInletVelocityFvPatchVectorField::
37filmHeightInletVelocityFvPatchVectorField
38(
39 const fvPatch& p,
41)
42:
43 fixedValueFvPatchVectorField(p, iF),
44 phiName_("phi"),
45 rhoName_("rho"),
46 deltafName_("deltaf")
47{}
48
49
50Foam::filmHeightInletVelocityFvPatchVectorField::
51filmHeightInletVelocityFvPatchVectorField
52(
54 const fvPatch& p,
56 const fvPatchFieldMapper& mapper
57)
58:
59 fixedValueFvPatchVectorField(ptf, p, iF, mapper),
60 phiName_(ptf.phiName_),
61 rhoName_(ptf.rhoName_),
62 deltafName_(ptf.deltafName_)
63{}
64
65
66Foam::filmHeightInletVelocityFvPatchVectorField::
67filmHeightInletVelocityFvPatchVectorField
68(
69 const fvPatch& p,
71 const dictionary& dict
72)
73:
74 fixedValueFvPatchVectorField(p, iF, dict),
75 phiName_(dict.getOrDefault<word>("phi", "phi")),
76 rhoName_(dict.getOrDefault<word>("rho", "rho")),
77 deltafName_(dict.getOrDefault<word>("deltaf", "deltaf"))
78{}
79
80
81Foam::filmHeightInletVelocityFvPatchVectorField::
82filmHeightInletVelocityFvPatchVectorField
83(
85)
86:
87 fixedValueFvPatchVectorField(fhivpvf),
88 phiName_(fhivpvf.phiName_),
89 rhoName_(fhivpvf.rhoName_),
90 deltafName_(fhivpvf.deltafName_)
91{}
92
93
94Foam::filmHeightInletVelocityFvPatchVectorField::
95filmHeightInletVelocityFvPatchVectorField
96(
99)
100:
101 fixedValueFvPatchVectorField(fhivpvf, iF),
102 phiName_(fhivpvf.phiName_),
103 rhoName_(fhivpvf.rhoName_),
104 deltafName_(fhivpvf.deltafName_)
105{}
106
107
108// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
109
111{
112 if (updated())
113 {
114 return;
115 }
116
117 const fvsPatchField<scalar>& phip =
118 patch().lookupPatchField<surfaceScalarField, scalar>(phiName_);
119
120 const fvPatchField<scalar>& rhop =
121 patch().lookupPatchField<volScalarField, scalar>(rhoName_);
122
123 const fvPatchField<scalar>& deltafp =
124 patch().lookupPatchField<volScalarField, scalar>(deltafName_);
125
126 vectorField n(patch().nf());
127 const scalarField& magSf = patch().magSf();
128
129 operator==(n*phip/(rhop*magSf*deltafp + ROOTVSMALL));
130
131 fixedValueFvPatchVectorField::updateCoeffs();
132}
133
134
136{
138 os.writeEntryIfDifferent<word>("phi", "phi", phiName_);
139 os.writeEntryIfDifferent<word>("rho", "rho", rhoName_);
140 os.writeEntryIfDifferent<word>("deltaf", "deltaf", deltafName_);
141 writeEntry("value", os);
142}
143
144
145// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
146
148(
149 const fvPatchField<vector>& pvf
150)
151{
152 fvPatchField<vector>::operator=(patch().nf()*(patch().nf() & pvf));
153}
154
155
156// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
157
158namespace Foam
159{
161 (
164 );
165}
166
167
168// ************************************************************************* //
label n
Macros for easy insertion into run-time selection tables.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:62
Ostream & writeEntryIfDifferent(const word &key, const T &value1, const T &value2)
Write a keyword/value entry only when the two values differ.
Definition: Ostream.H:251
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
friend Ostream & operator(Ostream &, const faMatrix< Type > &)
This boundary condition is designed to be used in conjunction with surface film modelling....
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual bool write()
Write the output fields.
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...
Definition: fvPatchField.H:82
virtual void operator=(const UList< Type > &)
Definition: fvPatchField.C:408
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:71
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
Definition: fvsPatchField.H:79
A class for handling words, derived from Foam::string.
Definition: word.H:68
volScalarField & p
OBJstream os(runTime.globalPath()/outputName)
#define makePatchTypeField(PatchTypeField, typePatchTypeField)
Definition: fvPatchField.H:676
Namespace for OpenFOAM.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Definition: volFieldsFwd.H:82
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
tmp< faMatrix< Type > > operator==(const faMatrix< Type > &, const faMatrix< Type > &)
dictionary dict
Foam::surfaceFields.