Adding pressure field measurement, internal and surface.

This commit is contained in:
graham
2009-07-15 15:28:04 +01:00
parent cadba3c278
commit 9321f7e1e5
2 changed files with 51 additions and 3 deletions

View File

@ -113,7 +113,16 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
return;
}
wordList extensiveVVFNames(IStringStream ("(momentumMean)")());
wordList extensiveVVFNames
(
IStringStream
(
"( \
momentumMean \
fDMean \
)"
)()
);
PtrList<volVectorField> extensiveVVFs(extensiveVVFNames.size());

View File

@ -106,6 +106,7 @@ void Foam::dsmcFields::write()
word linearKEMeanName = "linearKEMean";
word internalEMeanName = "internalEMean";
word iDofMeanName = "iDofMean";
word fDMeanName = "fDMean";
const volScalarField& rhoNMean = obr_.lookupObject<volScalarField>
(
@ -137,6 +138,11 @@ void Foam::dsmcFields::write()
iDofMeanName
);
volVectorField fDMean = obr_.lookupObject<volVectorField>
(
fDMeanName
);
if (min(mag(rhoNMean)).value() > VSMALL)
{
Info<< "Calculating dsmcFields." << endl;
@ -165,7 +171,7 @@ void Foam::dsmcFields::write()
IOobject::NO_READ
),
2.0/(3.0*dsmcCloud::kb*rhoNMean)
*(linearKEMean - 0.5*rhoMMean*(UMean & UMean))
*(linearKEMean - 0.5*rhoMMean*(UMean & UMean))
);
Info<< " Calculating internalT field." << endl;
@ -192,9 +198,36 @@ void Foam::dsmcFields::write()
IOobject::NO_READ
),
2.0/(dsmcCloud::kb*(3.0*rhoNMean + iDofMean))
*(linearKEMean - 0.5*rhoMMean*(UMean & UMean) + internalEMean)
*(linearKEMean - 0.5*rhoMMean*(UMean & UMean) + internalEMean)
);
Info<< " Calculating pressure field." << endl;
volScalarField p
(
IOobject
(
"p",
obr_.time().timeName(),
obr_,
IOobject::NO_READ
),
dsmcCloud::kb*rhoNMean*translationalT
);
const fvMesh& mesh = fDMean.mesh();
forAll(mesh.boundaryMesh(), i)
{
const polyPatch& patch = mesh.boundaryMesh()[i];
if (isA<wallPolyPatch>(patch))
{
p.boundaryField()[i] =
fDMean.boundaryField()[i]
& (patch.faceAreas()/mag(patch.faceAreas()));
}
}
Info<< " mag(UMean) max/min : "
<< max(mag(UMean)).value() << " "
<< min(mag(UMean)).value() << endl;
@ -211,6 +244,10 @@ void Foam::dsmcFields::write()
<< max(overallT).value() << " "
<< min(overallT).value() << endl;
Info<< " p max/min : "
<< max(p).value() << " "
<< min(p).value() << endl;
UMean.write();
translationalT.write();
@ -219,6 +256,8 @@ void Foam::dsmcFields::write()
overallT.write();
p.write();
Info<< "dsmcFields written." << nl << endl;
}
else