Remove trailing whitespace systematically
[foam-extend-3.2.git] / applications / solvers / solidMechanics / deprecatedSolvers / materialModels / fvPatchFields / nusselt / nusseltFvPatchScalarField.C
blob8d602bc1c5ad2df4723d7b97123316f0f82b4088
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     |
5     \\  /    A nd           | For copyright notice see file Copyright
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
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 "nusseltFvPatchScalarField.H"
27 #include "addToRunTimeSelectionTable.H"
28 #include "fvPatchFieldMapper.H"
29 #include "volFields.H"
30 #include "surfaceFields.H"
32 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
34 namespace Foam
37 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
39 nusseltFvPatchScalarField::nusseltFvPatchScalarField
41     const fvPatch& p,
42     const DimensionedField<scalar, volMesh>& iF
45     mixedFvPatchScalarField(p, iF),
46     DTName_("undefined"),
47     Tinf_(0.0),
48     alpha_(p.size(), 0.0)
50     refValue() = 0.0;
51     refGrad() = 0.0;
52     valueFraction() = 0.0;
56 nusseltFvPatchScalarField::nusseltFvPatchScalarField
58     const fvPatch& p,
59     const DimensionedField<scalar, volMesh>& iF,
60     const dictionary& dict
63     mixedFvPatchScalarField(p, iF),
64     DTName_(dict.lookup("DT")),
65     Tinf_(readScalar(dict.lookup("Tinf"))),
66     alpha_("alpha", dict, p.size())
68     if (dict.found("value"))
69     {
70         fvPatchField<scalar>::operator=
71         (
72             scalarField("value", dict, p.size())
73         );
74     }
75     else
76     {
77         fvPatchField<scalar>::operator=(patchInternalField());
78     }
80     refValue() = *this;
81     refGrad() = 0.0;
82     valueFraction() = 0.0;
84     if (Tinf_ < SMALL)
85     {
86         FatalIOErrorIn
87         (
88             "nusseltFvPatchScalarField::nusseltFvPatchScalarField\n"
89             "(\n"
90             "    const fvPatch&,\n"
91             "    const DimensionedField<scalar, volMesh>&,\n"
92             "    const dictionary&\n"
93             ")",
94             dict
95         )   << "unphysical Tinf specified (Tinf = 0 or negative)"
96             << exit(FatalError);
97     }
99     if (min(alpha_) < -SMALL)
100     {
101         FatalIOErrorIn
102         (
103             "nusseltFvPatchScalarField::nusseltFvPatchScalarField\n"
104             "(\n"
105             "    const fvPatch&,\n"
106             "    const DimensionedField<scalar, volMesh>&,\n"
107             "    const dictionary&\n"
108             ")",
109             dict
110         )   << "unphysical alpha specified (alpha = 0 or negative)" << endl
111             << exit(FatalError);
112     }
116 nusseltFvPatchScalarField::nusseltFvPatchScalarField
118     const nusseltFvPatchScalarField& ptf,
119     const fvPatch& p,
120     const DimensionedField<scalar, volMesh>& iF,
121     const fvPatchFieldMapper& mapper
124     mixedFvPatchScalarField(ptf, p, iF, mapper),
125     DTName_(ptf.DTName_),
126     Tinf_(ptf.Tinf_),
127     alpha_(ptf.alpha_)
131 nusseltFvPatchScalarField::nusseltFvPatchScalarField
133     const nusseltFvPatchScalarField& ptf
136     mixedFvPatchScalarField(ptf),
137     DTName_(ptf.DTName_),
138     Tinf_(ptf.Tinf_),
139     alpha_(ptf.alpha_)
143 nusseltFvPatchScalarField::nusseltFvPatchScalarField
145     const nusseltFvPatchScalarField& ptpsf,
146     const DimensionedField<scalar, volMesh>& iF
149     mixedFvPatchScalarField(ptpsf, iF),
150     DTName_(ptpsf.DTName_),
151     Tinf_(ptpsf.Tinf_),
152     alpha_(ptpsf.alpha_)
156 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
158 // Map from self
159 void nusseltFvPatchScalarField::autoMap
161     const fvPatchFieldMapper& m
164     mixedFvPatchScalarField::autoMap(m);
165     alpha_.autoMap(m);
169 // Reverse-map the given fvPatchField onto this fvPatchField
170 void nusseltFvPatchScalarField::rmap
172     const fvPatchField<scalar>& ptf,
173     const labelList& addr
176     mixedFvPatchField<scalar>::rmap(ptf, addr);
178     const nusseltFvPatchScalarField& npsf =
179         refCast<const nusseltFvPatchScalarField>(ptf);
181     alpha_.rmap(npsf.alpha_, addr);
185 // Update the coefficients associated with the patch field
186 void nusseltFvPatchScalarField::updateCoeffs()
188     if (updated())
189     {
190         return;
191     }
193     scalarField Tinternal = patchInternalField();
195     // Lookup temperature diffusivity of the patch
196     const fvPatchField<scalar>& DT =
197         this->patch().lookupPatchField<volScalarField, scalar>(DTName_);
199     // Calculate flux
200     scalarField tempFlux = alpha_*(Tinternal - Tinf_);
202     refValue() =
203         neg(tempFlux)*
204         min
205         (
206             Tinternal - tempFlux/(DT*patch().deltaCoeffs()),
207             Tinf_
208         )
209       + pos(tempFlux)*
210         max
211         (
212             Tinternal - tempFlux/(DT*patch().deltaCoeffs()),
213             Tinf_
214         );
216     refGrad() = -tempFlux;
217     valueFraction() = pos(tempFlux);
219     mixedFvPatchScalarField::updateCoeffs();
223 // Write
224 void nusseltFvPatchScalarField::write(Ostream& os) const
226     fvPatchScalarField::write(os);
227     os.writeKeyword("DT") << DTName_ << token::END_STATEMENT << nl;
228     os.writeKeyword("Tinf") << Tinf_ << token::END_STATEMENT << endl;
229     alpha_.writeEntry("alpha", os);
230     writeEntry("value", os);
234 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
236 makePatchTypeField(fvPatchScalarField, nusseltFvPatchScalarField);
238 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
240 } // End namespace Foam
242 // ************************************************************************* //