1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | foam-extend: Open Source CFD
4 \\ / O peration | Version: 3.2
5 \\ / A nd | Web: http://www.foam-extend.org
6 \\/ M anipulation | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
9 This file is part of foam-extend.
11 foam-extend is free software: you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by the
13 Free Software Foundation, either version 3 of the License, or (at your
14 option) any later version.
16 foam-extend is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
24 \*---------------------------------------------------------------------------*/
26 #include "outletInletFvPatchField.H"
28 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
33 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
36 outletInletFvPatchField<Type>::outletInletFvPatchField
39 const DimensionedField<Type, volMesh>& iF
42 mixedFvPatchField<Type>(p, iF)
44 this->refValue() = *this;
45 this->refGrad() = pTraits<Type>::zero;
46 this->valueFraction() = 0.0;
51 outletInletFvPatchField<Type>::outletInletFvPatchField
53 const outletInletFvPatchField<Type>& ptf,
55 const DimensionedField<Type, volMesh>& iF,
56 const fvPatchFieldMapper& mapper
59 mixedFvPatchField<Type>(ptf, p, iF, mapper)
64 outletInletFvPatchField<Type>::outletInletFvPatchField
67 const DimensionedField<Type, volMesh>& iF,
68 const dictionary& dict
71 mixedFvPatchField<Type>(p, iF)
73 this->refValue() = Field<Type>("outletValue", dict, p.size());
75 if (dict.found("value"))
77 fvPatchField<Type>::operator=
79 Field<Type>("value", dict, p.size())
84 fvPatchField<Type>::operator=(this->refValue());
87 this->refGrad() = pTraits<Type>::zero;
88 this->valueFraction() = 0.0;
93 outletInletFvPatchField<Type>::outletInletFvPatchField
95 const outletInletFvPatchField<Type>& ptf
98 mixedFvPatchField<Type>(ptf)
103 outletInletFvPatchField<Type>::outletInletFvPatchField
105 const outletInletFvPatchField<Type>& ptf,
106 const DimensionedField<Type, volMesh>& iF
109 mixedFvPatchField<Type>(ptf, iF)
113 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
116 void outletInletFvPatchField<Type>::updateCoeffs()
123 const fvsPatchField<scalar>& phip = this->lookupPatchField
126 reinterpret_cast<const surfaceScalarField*>(0),
127 reinterpret_cast<const scalar*>(0)
130 this->valueFraction() = pos(phip);
132 mixedFvPatchField<Type>::updateCoeffs();
137 void outletInletFvPatchField<Type>::write(Ostream& os) const
139 fvPatchField<Type>::write(os);
140 this->refValue().writeEntry("outletValue", os);
141 this->writeEntry("value", os);
145 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
147 } // End namespace Foam
149 // ************************************************************************* //