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 #ifndef compressibleturbulenceModel_H
00045 #define compressibleturbulenceModel_H
00046
00047 #include <OpenFOAM/primitiveFieldsFwd.H>
00048 #include <finiteVolume/volFieldsFwd.H>
00049 #include <finiteVolume/surfaceFieldsFwd.H>
00050 #include <finiteVolume/fvMatricesFwd.H>
00051 #include <basicThermophysicalModels/basicThermo.H>
00052 #include <OpenFOAM/autoPtr.H>
00053 #include <OpenFOAM/runTimeSelectionTables.H>
00054
00055
00056
00057 namespace Foam
00058 {
00059
00060
00061 class fvMesh;
00062
00063 namespace compressible
00064 {
00065
00066
00067
00068
00069
00070 class turbulenceModel
00071 {
00072
00073 protected:
00074
00075
00076
00077 const Time& runTime_;
00078 const fvMesh& mesh_;
00079
00080 const volScalarField& rho_;
00081 const volVectorField& U_;
00082 const surfaceScalarField& phi_;
00083
00084 const basicThermo& thermophysicalModel_;
00085
00086
00087 private:
00088
00089
00090
00091
00092 turbulenceModel(const turbulenceModel&);
00093
00094
00095 void operator=(const turbulenceModel&);
00096
00097
00098 public:
00099
00100
00101 TypeName("turbulenceModel");
00102
00103
00104
00105
00106 declareRunTimeNewSelectionTable
00107 (
00108 autoPtr,
00109 turbulenceModel,
00110 turbulenceModel,
00111 (
00112 const volScalarField& rho,
00113 const volVectorField& U,
00114 const surfaceScalarField& phi,
00115 const basicThermo& thermoPhysicalModel
00116 ),
00117 (rho, U, phi, thermoPhysicalModel)
00118 );
00119
00120
00121
00122
00123
00124 turbulenceModel
00125 (
00126 const volScalarField& rho,
00127 const volVectorField& U,
00128 const surfaceScalarField& phi,
00129 const basicThermo& thermoPhysicalModel
00130 );
00131
00132
00133
00134
00135
00136 static autoPtr<turbulenceModel> New
00137 (
00138 const volScalarField& rho,
00139 const volVectorField& U,
00140 const surfaceScalarField& phi,
00141 const basicThermo& thermoPhysicalModel
00142 );
00143
00144
00145
00146 virtual ~turbulenceModel()
00147 {}
00148
00149
00150
00151
00152
00153 const volScalarField& rho() const
00154 {
00155 return rho_;
00156 }
00157
00158
00159 const volVectorField& U() const
00160 {
00161 return U_;
00162 }
00163
00164
00165 const surfaceScalarField& phi() const
00166 {
00167 return phi_;
00168 }
00169
00170
00171 const basicThermo& thermo() const
00172 {
00173 return thermophysicalModel_;
00174 }
00175
00176
00177 const volScalarField& mu() const
00178 {
00179 return thermophysicalModel_.mu();
00180 }
00181
00182
00183 const volScalarField& alpha() const
00184 {
00185 return thermophysicalModel_.alpha();
00186 }
00187
00188
00189 virtual tmp<volScalarField> mut() const = 0;
00190
00191
00192 virtual tmp<volScalarField> muEff() const = 0;
00193
00194
00195 virtual tmp<volScalarField> alphaEff() const = 0;
00196
00197
00198 virtual tmp<volScalarField> k() const = 0;
00199
00200
00201 virtual tmp<volScalarField> epsilon() const = 0;
00202
00203
00204 virtual tmp<volSymmTensorField> R() const = 0;
00205
00206
00207 virtual tmp<volSymmTensorField> devRhoReff() const = 0;
00208
00209
00210 virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const = 0;
00211
00212
00213 virtual void correct() = 0;
00214
00215
00216 virtual bool read() = 0;
00217 };
00218
00219
00220
00221
00222 }
00223 }
00224
00225
00226
00227 #endif
00228
00229