mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Adding pressure field measurement, internal and surface.
This commit is contained in:
@ -113,7 +113,16 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
wordList extensiveVVFNames(IStringStream ("(momentumMean)")());
|
wordList extensiveVVFNames
|
||||||
|
(
|
||||||
|
IStringStream
|
||||||
|
(
|
||||||
|
"( \
|
||||||
|
momentumMean \
|
||||||
|
fDMean \
|
||||||
|
)"
|
||||||
|
)()
|
||||||
|
);
|
||||||
|
|
||||||
PtrList<volVectorField> extensiveVVFs(extensiveVVFNames.size());
|
PtrList<volVectorField> extensiveVVFs(extensiveVVFNames.size());
|
||||||
|
|
||||||
|
|||||||
@ -106,6 +106,7 @@ void Foam::dsmcFields::write()
|
|||||||
word linearKEMeanName = "linearKEMean";
|
word linearKEMeanName = "linearKEMean";
|
||||||
word internalEMeanName = "internalEMean";
|
word internalEMeanName = "internalEMean";
|
||||||
word iDofMeanName = "iDofMean";
|
word iDofMeanName = "iDofMean";
|
||||||
|
word fDMeanName = "fDMean";
|
||||||
|
|
||||||
const volScalarField& rhoNMean = obr_.lookupObject<volScalarField>
|
const volScalarField& rhoNMean = obr_.lookupObject<volScalarField>
|
||||||
(
|
(
|
||||||
@ -137,6 +138,11 @@ void Foam::dsmcFields::write()
|
|||||||
iDofMeanName
|
iDofMeanName
|
||||||
);
|
);
|
||||||
|
|
||||||
|
volVectorField fDMean = obr_.lookupObject<volVectorField>
|
||||||
|
(
|
||||||
|
fDMeanName
|
||||||
|
);
|
||||||
|
|
||||||
if (min(mag(rhoNMean)).value() > VSMALL)
|
if (min(mag(rhoNMean)).value() > VSMALL)
|
||||||
{
|
{
|
||||||
Info<< "Calculating dsmcFields." << endl;
|
Info<< "Calculating dsmcFields." << endl;
|
||||||
@ -165,7 +171,7 @@ void Foam::dsmcFields::write()
|
|||||||
IOobject::NO_READ
|
IOobject::NO_READ
|
||||||
),
|
),
|
||||||
2.0/(3.0*dsmcCloud::kb*rhoNMean)
|
2.0/(3.0*dsmcCloud::kb*rhoNMean)
|
||||||
*(linearKEMean - 0.5*rhoMMean*(UMean & UMean))
|
*(linearKEMean - 0.5*rhoMMean*(UMean & UMean))
|
||||||
);
|
);
|
||||||
|
|
||||||
Info<< " Calculating internalT field." << endl;
|
Info<< " Calculating internalT field." << endl;
|
||||||
@ -192,9 +198,36 @@ void Foam::dsmcFields::write()
|
|||||||
IOobject::NO_READ
|
IOobject::NO_READ
|
||||||
),
|
),
|
||||||
2.0/(dsmcCloud::kb*(3.0*rhoNMean + iDofMean))
|
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 : "
|
Info<< " mag(UMean) max/min : "
|
||||||
<< max(mag(UMean)).value() << " "
|
<< max(mag(UMean)).value() << " "
|
||||||
<< min(mag(UMean)).value() << endl;
|
<< min(mag(UMean)).value() << endl;
|
||||||
@ -211,6 +244,10 @@ void Foam::dsmcFields::write()
|
|||||||
<< max(overallT).value() << " "
|
<< max(overallT).value() << " "
|
||||||
<< min(overallT).value() << endl;
|
<< min(overallT).value() << endl;
|
||||||
|
|
||||||
|
Info<< " p max/min : "
|
||||||
|
<< max(p).value() << " "
|
||||||
|
<< min(p).value() << endl;
|
||||||
|
|
||||||
UMean.write();
|
UMean.write();
|
||||||
|
|
||||||
translationalT.write();
|
translationalT.write();
|
||||||
@ -219,6 +256,8 @@ void Foam::dsmcFields::write()
|
|||||||
|
|
||||||
overallT.write();
|
overallT.write();
|
||||||
|
|
||||||
|
p.write();
|
||||||
|
|
||||||
Info<< "dsmcFields written." << nl << endl;
|
Info<< "dsmcFields written." << nl << endl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user