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 #include "gradientInternalEnergyFvPatchScalarField.H"
00027 #include <OpenFOAM/addToRunTimeSelectionTable.H>
00028 #include <finiteVolume/fvPatchFieldMapper.H>
00029 #include <finiteVolume/volFields.H>
00030 #include <basicThermophysicalModels/basicThermo.H>
00031
00032
00033
00034 namespace Foam
00035 {
00036
00037
00038
00039 gradientInternalEnergyFvPatchScalarField::gradientInternalEnergyFvPatchScalarField
00040 (
00041 const fvPatch& p,
00042 const DimensionedField<scalar, volMesh>& iF
00043 )
00044 :
00045 fixedGradientFvPatchScalarField(p, iF)
00046 {}
00047
00048
00049 gradientInternalEnergyFvPatchScalarField::gradientInternalEnergyFvPatchScalarField
00050 (
00051 const gradientInternalEnergyFvPatchScalarField& ptf,
00052 const fvPatch& p,
00053 const DimensionedField<scalar, volMesh>& iF,
00054 const fvPatchFieldMapper& mapper
00055 )
00056 :
00057 fixedGradientFvPatchScalarField(ptf, p, iF, mapper)
00058 {}
00059
00060
00061 gradientInternalEnergyFvPatchScalarField::gradientInternalEnergyFvPatchScalarField
00062 (
00063 const fvPatch& p,
00064 const DimensionedField<scalar, volMesh>& iF,
00065 const dictionary& dict
00066 )
00067 :
00068 fixedGradientFvPatchScalarField(p, iF, dict)
00069 {}
00070
00071
00072 gradientInternalEnergyFvPatchScalarField::gradientInternalEnergyFvPatchScalarField
00073 (
00074 const gradientInternalEnergyFvPatchScalarField& tppsf
00075 )
00076 :
00077 fixedGradientFvPatchScalarField(tppsf)
00078 {}
00079
00080
00081 gradientInternalEnergyFvPatchScalarField::gradientInternalEnergyFvPatchScalarField
00082 (
00083 const gradientInternalEnergyFvPatchScalarField& tppsf,
00084 const DimensionedField<scalar, volMesh>& iF
00085 )
00086 :
00087 fixedGradientFvPatchScalarField(tppsf, iF)
00088 {}
00089
00090
00091
00092
00093 void gradientInternalEnergyFvPatchScalarField::updateCoeffs()
00094 {
00095 if (updated())
00096 {
00097 return;
00098 }
00099
00100 const basicThermo& thermo = db().lookupObject<basicThermo>
00101 (
00102 "thermophysicalProperties"
00103 );
00104
00105 const label patchi = patch().index();
00106
00107 fvPatchScalarField& Tw =
00108 const_cast<fvPatchScalarField&>(thermo.T().boundaryField()[patchi]);
00109
00110 Tw.evaluate();
00111
00112 gradient() = thermo.Cv(Tw, patchi)*Tw.snGrad()
00113 + patch().deltaCoeffs()*
00114 (
00115 thermo.e(Tw, patchi)
00116 - thermo.e(Tw, patch().faceCells())
00117 );
00118
00119 fixedGradientFvPatchScalarField::updateCoeffs();
00120 }
00121
00122
00123
00124
00125 makePatchTypeField(fvPatchScalarField, gradientInternalEnergyFvPatchScalarField);
00126
00127
00128
00129 }
00130
00131