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