diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C index ae771fce8b..923a3b6fd6 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C @@ -276,6 +276,64 @@ DimensionedField::clone() const } +template +Foam::tmp> +DimensionedField::New +( + const word& name, + const Mesh& mesh, + const dimensionSet& ds +) +{ + return tmp> + ( + new DimensionedField + ( + IOobject + ( + name, + mesh.time().timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + mesh, + ds, + false + ) + ); +} + + +template +Foam::tmp> +DimensionedField::New +( + const word& newName, + const tmp>& tdf +) +{ + return tmp> + ( + new DimensionedField + ( + IOobject + ( + newName, + tdf().instance(), + tdf().local(), + tdf().db(), + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + tdf + ) + ); +} + + // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // template diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H index 0b06101d4e..a32db445de 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H @@ -236,6 +236,22 @@ public: //- Clone tmp> clone() const; + //- Return a temporary field constructed from name, mesh + // and dimensionSet + static tmp> New + ( + const word& name, + const Mesh& mesh, + const dimensionSet& + ); + + //- Rename temporary field and return + static tmp> New + ( + const word& newName, + const tmp>& + ); + //- Destructor virtual ~DimensionedField();