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 "mixedInternalEnergyFvPatchScalarField.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 mixedInternalEnergyFvPatchScalarField::mixedInternalEnergyFvPatchScalarField
00040 (
00041 const fvPatch& p,
00042 const DimensionedField<scalar, volMesh>& iF
00043 )
00044 :
00045 mixedFvPatchScalarField(p, iF)
00046 {
00047 valueFraction() = 0.0;
00048 refValue() = 0.0;
00049 refGrad() = 0.0;
00050 }
00051
00052
00053 mixedInternalEnergyFvPatchScalarField::mixedInternalEnergyFvPatchScalarField
00054 (
00055 const mixedInternalEnergyFvPatchScalarField& ptf,
00056 const fvPatch& p,
00057 const DimensionedField<scalar, volMesh>& iF,
00058 const fvPatchFieldMapper& mapper
00059 )
00060 :
00061 mixedFvPatchScalarField(ptf, p, iF, mapper)
00062 {}
00063
00064
00065 mixedInternalEnergyFvPatchScalarField::mixedInternalEnergyFvPatchScalarField
00066 (
00067 const fvPatch& p,
00068 const DimensionedField<scalar, volMesh>& iF,
00069 const dictionary& dict
00070 )
00071 :
00072 mixedFvPatchScalarField(p, iF, dict)
00073 {}
00074
00075
00076 mixedInternalEnergyFvPatchScalarField::mixedInternalEnergyFvPatchScalarField
00077 (
00078 const mixedInternalEnergyFvPatchScalarField& tppsf
00079 )
00080 :
00081 mixedFvPatchScalarField(tppsf)
00082 {}
00083
00084
00085 mixedInternalEnergyFvPatchScalarField::mixedInternalEnergyFvPatchScalarField
00086 (
00087 const mixedInternalEnergyFvPatchScalarField& tppsf,
00088 const DimensionedField<scalar, volMesh>& iF
00089 )
00090 :
00091 mixedFvPatchScalarField(tppsf, iF)
00092 {}
00093
00094
00095
00096
00097 void mixedInternalEnergyFvPatchScalarField::updateCoeffs()
00098 {
00099 if (updated())
00100 {
00101 return;
00102 }
00103
00104 const basicThermo& thermo = db().lookupObject<basicThermo>
00105 (
00106 "thermophysicalProperties"
00107 );
00108
00109 const label patchi = patch().index();
00110
00111 mixedFvPatchScalarField& Tw = refCast<mixedFvPatchScalarField>
00112 (
00113 const_cast<fvPatchScalarField&>(thermo.T().boundaryField()[patchi])
00114 );
00115
00116 Tw.evaluate();
00117
00118 valueFraction() = Tw.valueFraction();
00119 refValue() = thermo.e(Tw.refValue(), patchi);
00120 refGrad() = thermo.Cv(Tw, patchi)*Tw.refGrad()
00121 + patch().deltaCoeffs()*
00122 (
00123 thermo.e(Tw, patchi)
00124 - thermo.e(Tw, patch().faceCells())
00125 );
00126
00127 mixedFvPatchScalarField::updateCoeffs();
00128 }
00129
00130
00131
00132
00133 makePatchTypeField(fvPatchScalarField, mixedInternalEnergyFvPatchScalarField);
00134
00135
00136
00137 }
00138
00139