mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: reference FO - position entry is now optional
This commit is contained in:
@ -32,22 +32,10 @@ bool Foam::functionObjects::reference::calcType()
|
||||
|
||||
const VolFieldType* vfPtr = lookupObjectPtr<VolFieldType>(fieldName_);
|
||||
|
||||
if (vfPtr && celli_ != -1)
|
||||
if (vfPtr)
|
||||
{
|
||||
const VolFieldType& vf = *vfPtr;
|
||||
|
||||
autoPtr<interpolation<Type>> interpolator
|
||||
(
|
||||
interpolation<Type>::New(interpolationScheme_, vf)
|
||||
);
|
||||
|
||||
const dimensioned<Type> value
|
||||
(
|
||||
"value",
|
||||
vf.dimensions(),
|
||||
interpolator().interpolate(position_, celli_, -1)
|
||||
);
|
||||
|
||||
dimensioned<Type> offset
|
||||
(
|
||||
dimensioned<Type>::lookupOrDefault
|
||||
@ -59,12 +47,32 @@ bool Foam::functionObjects::reference::calcType()
|
||||
)
|
||||
);
|
||||
|
||||
Log << " sampled value: " << value.value() << endl;
|
||||
dimensioned<Type> cellValue("value", vf.dimensions(), Zero);
|
||||
|
||||
if (positionIsSet_)
|
||||
{
|
||||
cellValue.value() = -pTraits<Type>::one*GREAT;
|
||||
|
||||
if (celli_ != -1)
|
||||
{
|
||||
autoPtr<interpolation<Type>> interpolator
|
||||
(
|
||||
interpolation<Type>::New(interpolationScheme_, vf)
|
||||
);
|
||||
|
||||
cellValue.value() =
|
||||
interpolator().interpolate(position_, celli_, -1);
|
||||
}
|
||||
|
||||
reduce(cellValue.value(), maxOp<Type>());
|
||||
|
||||
Log << " sampled value: " << cellValue.value() << endl;
|
||||
}
|
||||
|
||||
return store
|
||||
(
|
||||
resultName_,
|
||||
scale_*(vf - value + offset)
|
||||
scale_*(vf - cellValue + offset)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user