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 "inverseVolumeDiffusivity.H"
00027 #include <OpenFOAM/addToRunTimeSelectionTable.H>
00028 #include <meshTools/patchWave.H>
00029 #include <OpenFOAM/HashSet.H>
00030 #include <finiteVolume/surfaceInterpolate.H>
00031 #include <finiteVolume/zeroGradientFvPatchFields.H>
00032
00033
00034
00035 namespace Foam
00036 {
00037 defineTypeNameAndDebug(inverseVolumeDiffusivity, 0);
00038
00039 addToRunTimeSelectionTable
00040 (
00041 motionDiffusivity,
00042 inverseVolumeDiffusivity,
00043 Istream
00044 );
00045 }
00046
00047
00048
00049
00050 Foam::inverseVolumeDiffusivity::inverseVolumeDiffusivity
00051 (
00052 const fvMotionSolver& mSolver,
00053 Istream& mdData
00054 )
00055 :
00056 uniformDiffusivity(mSolver, mdData)
00057 {
00058 correct();
00059 }
00060
00061
00062
00063
00064 Foam::inverseVolumeDiffusivity::~inverseVolumeDiffusivity()
00065 {}
00066
00067
00068
00069
00070 void Foam::inverseVolumeDiffusivity::correct()
00071 {
00072 const fvMesh& mesh = mSolver().mesh();
00073
00074 volScalarField V
00075 (
00076 IOobject
00077 (
00078 "V",
00079 mesh.time().timeName(),
00080 mesh
00081 ),
00082 mesh,
00083 dimless,
00084 zeroGradientFvPatchScalarField::typeName
00085 );
00086
00087 V.internalField() = mesh.V();
00088 V.correctBoundaryConditions();
00089
00090 faceDiffusivity_ = 1.0/fvc::interpolate(V);
00091 }
00092
00093
00094