ENH: derivedFields functionObject to create some predefined, calculated fields
- currently supports pTotal, rhoU.
... | ... | @@ -77,93 +77,6 @@ bool Foam::surfMeshSamplers::verbose_ = false; |
// return tmpRegistry().subRegistry(subName, true, false); | ||
// } | ||
bool Foam::surfMeshSamplers::add_rhoU(const word& derivedName) | ||
{ | ||
const objectRegistry& db = mesh_.thisDb(); | ||
const bool existed = db.foundObject<volVectorField>(derivedName); | ||
if (existed) | ||
{ | ||
return false; // Volume field already existed - not added. | ||
} | ||
// rhoU = rho * U | ||
const auto* rhoPtr = mesh_.findObject<volScalarField>("rho"); | ||
const volVectorField& U = mesh_.lookupObject<volVectorField>("U"); | ||
tmp<volVectorField> tresult; | ||
if (rhoPtr) | ||
{ | ||
const auto& rho = *rhoPtr; | ||
tresult = tmp<volVectorField>::New | ||
( | ||
derivedName, (rho * U) | ||
); | ||
} | ||
else | ||
{ | ||
const dimensionedScalar rho("rho", dimDensity, rhoRef_); | ||
tresult = tmp<volVectorField>::New | ||
( | ||
derivedName, (rho * U) | ||
); | ||
} | ||
db.store(tresult.ptr()); | ||
return !existed; | ||
} | ||
bool Foam::surfMeshSamplers::add_pTotal(const word& derivedName) | ||
{ | ||
const objectRegistry& db = mesh_.thisDb(); | ||
const bool existed = db.foundObject<volVectorField>(derivedName); | ||
if (existed) | ||
{ | ||
return false; // Volume field already existed - not added. | ||
} | ||
// pTotal = p + rho * U^2 / 2 | ||
const auto* rhoPtr = mesh_.findObject<volScalarField>("rho"); | ||
const volScalarField& p = mesh_.lookupObject<volScalarField>("p"); | ||
const volVectorField& U = mesh_.lookupObject<volVectorField>("U"); | ||
tmp<volScalarField> tresult; | ||
if (rhoPtr) | ||
{ | ||
const auto& rho = *rhoPtr; | ||
tresult = tmp<volScalarField>::New | ||
( | ||
derivedName, (p + 0.5 * rho * magSqr(U)) | ||
< |