1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
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 the
13 Free Software Foundation; either version 2 of the License, or (at your
14 option) any later version.
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
21 You should have received a copy of the GNU General Public License
22 along with OpenFOAM; if not, write to the Free Software Foundation,
23 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 \*---------------------------------------------------------------------------*/
27 #include "steadyStateDdtScheme.H"
29 #include "fvMatrices.H"
31 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
36 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 tmp<GeometricField<Type, fvPatchField, volMesh> >
45 steadyStateDdtScheme<Type>::fvcDdt
47 const dimensioned<Type>& dt
50 return tmp<GeometricField<Type, fvPatchField, volMesh> >
52 new GeometricField<Type, fvPatchField, volMesh>
57 mesh().time().timeName(),
64 dt.dimensions()/dimTime,
73 tmp<GeometricField<Type, fvPatchField, volMesh> >
74 steadyStateDdtScheme<Type>::fvcDdt
76 const GeometricField<Type, fvPatchField, volMesh>& vf
79 return tmp<GeometricField<Type, fvPatchField, volMesh> >
81 new GeometricField<Type, fvPatchField, volMesh>
86 mesh().time().timeName(),
93 vf.dimensions()/dimTime,
102 tmp<GeometricField<Type, fvPatchField, volMesh> >
103 steadyStateDdtScheme<Type>::fvcDdt
105 const dimensionedScalar& rho,
106 const GeometricField<Type, fvPatchField, volMesh>& vf
109 return tmp<GeometricField<Type, fvPatchField, volMesh> >
111 new GeometricField<Type, fvPatchField, volMesh>
115 "ddt("+rho.name()+','+vf.name()+')',
116 mesh().time().timeName(),
123 rho.dimensions()*vf.dimensions()/dimTime,
132 tmp<GeometricField<Type, fvPatchField, volMesh> >
133 steadyStateDdtScheme<Type>::fvcDdt
135 const volScalarField& rho,
136 const GeometricField<Type, fvPatchField, volMesh>& vf
139 return tmp<GeometricField<Type, fvPatchField, volMesh> >
141 new GeometricField<Type, fvPatchField, volMesh>
145 "ddt("+rho.name()+','+vf.name()+')',
146 mesh().time().timeName(),
153 rho.dimensions()*vf.dimensions()/dimTime,
163 steadyStateDdtScheme<Type>::fvmDdt
165 GeometricField<Type, fvPatchField, volMesh>& vf
168 tmp<fvMatrix<Type> > tfvm
173 vf.dimensions()*dimVol/dimTime
183 steadyStateDdtScheme<Type>::fvmDdt
185 const dimensionedScalar& rho,
186 GeometricField<Type, fvPatchField, volMesh>& vf
189 tmp<fvMatrix<Type> > tfvm
194 rho.dimensions()*vf.dimensions()*dimVol/dimTime
204 steadyStateDdtScheme<Type>::fvmDdt
206 const volScalarField& rho,
207 GeometricField<Type, fvPatchField, volMesh>& vf
210 tmp<fvMatrix<Type> > tfvm
215 rho.dimensions()*vf.dimensions()*dimVol/dimTime
224 tmp<typename steadyStateDdtScheme<Type>::fluxFieldType>
225 steadyStateDdtScheme<Type>::fvcDdtPhiCorr
227 const volScalarField& rA,
228 const GeometricField<Type, fvPatchField, volMesh>& U,
229 const fluxFieldType& phi
232 return tmp<fluxFieldType>
239 + rA.name() + ',' + U.name() + ',' + phi.name() + ')',
240 mesh().time().timeName(),
244 dimensioned<typename flux<Type>::type>
247 rA.dimensions()*phi.dimensions()/dimTime,
248 pTraits<typename flux<Type>::type>::zero
256 tmp<typename steadyStateDdtScheme<Type>::fluxFieldType>
257 steadyStateDdtScheme<Type>::fvcDdtPhiCorr
259 const volScalarField& rA,
260 const volScalarField& rho,
261 const GeometricField<Type, fvPatchField, volMesh>& U,
262 const fluxFieldType& phi
265 return tmp<fluxFieldType>
272 + rA.name() + ',' + rho.name()
273 + ',' + U.name() + ',' + phi.name() + ')',
274 mesh().time().timeName(),
278 dimensioned<typename flux<Type>::type>
281 rA.dimensions()*rho.dimensions()*phi.dimensions()/dimTime,
282 pTraits<typename flux<Type>::type>::zero
290 tmp<surfaceScalarField> steadyStateDdtScheme<Type>::meshPhi
292 const GeometricField<Type, fvPatchField, volMesh>& vf
295 return tmp<surfaceScalarField>
297 new surfaceScalarField
302 mesh().time().timeName(),
306 dimensionedScalar("0", dimVolume/dimTime, 0.0)
312 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
314 } // End namespace fv
316 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
318 } // End namespace Foam
320 // ************************************************************************* //