Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068 #ifndef compressibleSpalartAllmaras_H
00069 #define combressibleSpalartAllmaras_H
00070
00071 #include <compressibleRASModels/RASModel.H>
00072 #include <finiteVolume/wallDist.H>
00073
00074
00075
00076 namespace Foam
00077 {
00078 namespace compressible
00079 {
00080 namespace RASModels
00081 {
00082
00083
00084
00085
00086
00087 class SpalartAllmaras
00088 :
00089 public RASModel
00090 {
00091
00092
00093
00094
00095 dimensionedScalar sigmaNut_;
00096 dimensionedScalar kappa_;
00097 dimensionedScalar Prt_;
00098
00099 dimensionedScalar Cb1_;
00100 dimensionedScalar Cb2_;
00101 dimensionedScalar Cw1_;
00102 dimensionedScalar Cw2_;
00103 dimensionedScalar Cw3_;
00104 dimensionedScalar Cv1_;
00105 dimensionedScalar Cv2_;
00106
00107
00108
00109
00110 volScalarField nuTilda_;
00111 volScalarField mut_;
00112 volScalarField alphat_;
00113
00114
00115
00116 wallDist d_;
00117
00118
00119
00120
00121 tmp<volScalarField> chi() const;
00122 tmp<volScalarField> fv1(const volScalarField& chi) const;
00123 tmp<volScalarField> fv2
00124 (
00125 const volScalarField& chi,
00126 const volScalarField& fv1
00127 ) const;
00128 tmp<volScalarField> fv3
00129 (
00130 const volScalarField& chi,
00131 const volScalarField& fv1
00132 ) const;
00133 tmp<volScalarField> fw(const volScalarField& Stilda) const;
00134
00135
00136 public:
00137
00138
00139 TypeName("SpalartAllmaras");
00140
00141
00142
00143
00144
00145 SpalartAllmaras
00146 (
00147 const volScalarField& rho,
00148 const volVectorField& U,
00149 const surfaceScalarField& phi,
00150 const basicThermo& thermophysicalModel
00151 );
00152
00153
00154
00155 virtual ~SpalartAllmaras()
00156 {}
00157
00158
00159
00160
00161
00162 tmp<volScalarField> DnuTildaEff() const
00163 {
00164 return tmp<volScalarField>
00165 (
00166 new volScalarField
00167 (
00168 "DnuTildaEff",
00169 rho_*nuTilda_/sigmaNut_ + mu()
00170 )
00171 );
00172 }
00173
00174
00175 virtual tmp<volScalarField> mut() const
00176 {
00177 return mut_;
00178 }
00179
00180
00181 virtual tmp<volScalarField> alphaEff() const
00182 {
00183 return tmp<volScalarField>
00184 (
00185 new volScalarField("alphaEff", alphat_ + alpha())
00186 );
00187 }
00188
00189
00190 virtual tmp<volScalarField> k() const
00191 {
00192 return tmp<volScalarField>
00193 (
00194 new volScalarField
00195 (
00196 IOobject
00197 (
00198 "k",
00199 runTime_.timeName(),
00200 mesh_
00201 ),
00202 mesh_,
00203 dimensionedScalar("0", dimensionSet(0, 2, -2, 0, 0), 0)
00204 )
00205 );
00206 }
00207
00208
00209 virtual tmp<volScalarField> epsilon() const
00210 {
00211 return tmp<volScalarField>
00212 (
00213 new volScalarField
00214 (
00215 IOobject
00216 (
00217 "epslion",
00218 runTime_.timeName(),
00219 mesh_
00220 ),
00221 mesh_,
00222 dimensionedScalar("0", dimensionSet(0, 2, -3, 0, 0), 0)
00223 )
00224 );
00225 }
00226
00227
00228 virtual tmp<volSymmTensorField> R() const;
00229
00230
00231 virtual tmp<volSymmTensorField> devRhoReff() const;
00232
00233
00234 virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const;
00235
00236
00237 virtual void correct();
00238
00239
00240 virtual bool read();
00241 };
00242
00243
00244
00245
00246 }
00247 }
00248 }
00249
00250
00251
00252 #endif
00253
00254