mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: add surfField support to various field function objects
- fieldAverage - mag - magSqr - readFields - fieldsExpression (add, subtract)
This commit is contained in:
@ -26,6 +26,7 @@ License
|
||||
#include "readFields.H"
|
||||
#include "volFields.H"
|
||||
#include "surfaceFields.H"
|
||||
#include "surfFields.H"
|
||||
#include "Time.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -35,6 +36,7 @@ bool Foam::functionObjects::readFields::loadField(const word& fieldName)
|
||||
{
|
||||
typedef GeometricField<Type, fvPatchField, volMesh> VolFieldType;
|
||||
typedef GeometricField<Type, fvsPatchField, surfaceMesh> SurfaceFieldType;
|
||||
typedef DimensionedField<Type, surfGeoMesh> SurfFieldType;
|
||||
|
||||
if (foundObject<VolFieldType>(fieldName))
|
||||
{
|
||||
@ -49,6 +51,12 @@ bool Foam::functionObjects::readFields::loadField(const word& fieldName)
|
||||
<< " " << fieldName << " already exists in database"
|
||||
<< " already in database" << endl;
|
||||
}
|
||||
else if (foundObject<SurfFieldType>(fieldName))
|
||||
{
|
||||
DebugInfo<< "readFields: " << SurfFieldType::typeName
|
||||
<< " " << fieldName << " already exists in database"
|
||||
<< " already in database" << endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
IOobject fieldHeader
|
||||
@ -76,6 +84,23 @@ bool Foam::functionObjects::readFields::loadField(const word& fieldName)
|
||||
mesh_.objectRegistry::store(sfPtr);
|
||||
return true;
|
||||
}
|
||||
else if (fieldHeader.typeHeaderOk<SurfFieldType>(true))
|
||||
{
|
||||
if (isA<surfMesh>(obr()))
|
||||
{
|
||||
const surfMesh& s = dynamicCast<const surfMesh>(obr());
|
||||
|
||||
// Store field on surfMesh database
|
||||
Log << " Reading " << fieldName << endl;
|
||||
SurfFieldType* sfPtr(new SurfFieldType(fieldHeader, s));
|
||||
s.store(sfPtr);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user