From 8563f892a91330bb9eb300ccb342b1901a74cf8f Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@Germany> Date: Fri, 2 Dec 2016 08:48:01 +0100 Subject: [PATCH] ENH: provide a 'dimensioned' null-like constructor for dimensionedType - The null constructor already creates a dimensionless Zero, but named "undefined". Provide an constructor for a dimensioned Zero, but named "0" for universal clarity to its value. --- .../test/dimensionedType/Test-dimensionedType.C | 4 ++++ .../dimensionedType/dimensionedType.C | 14 +++++++++++++- .../dimensionedType/dimensionedType.H | 7 +++++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/applications/test/dimensionedType/Test-dimensionedType.C b/applications/test/dimensionedType/Test-dimensionedType.C index 965de25ead7..892552fa708 100644 --- a/applications/test/dimensionedType/Test-dimensionedType.C +++ b/applications/test/dimensionedType/Test-dimensionedType.C @@ -81,6 +81,10 @@ int main(int argc, char *argv[]) } + Pout<< "zero scalar (time): " << dimensionedScalar(dimTime) << endl; + Pout<< "zero vector: " << dimensionedVector(dimLength) << endl; + Pout<< "zero tensor: " << dimensionedTensor(dimLength) << endl; + Info<< "End\n" << endl; return 0; diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C b/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C index f5381ef91e0..dca595c6a3e 100644 --- a/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C +++ b/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -169,6 +169,18 @@ Foam::dimensioned<Type>::dimensioned {} +template<class Type> +Foam::dimensioned<Type>::dimensioned +( + const dimensionSet& dimSet +) +: + name_("0"), + dimensions_(dimSet), + value_(Zero) +{} + + // * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * // template<class Type> diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.H b/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.H index fe817e4afec..fde67a1fc1e 100644 --- a/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.H +++ b/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.H @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -117,9 +117,12 @@ public: //- Construct from dictionary lookup with a given name and dimensions dimensioned(const word&, const dimensionSet&, const dictionary&); - //- Null constructor + //- Null constructor - a dimensionless Zero, named "undefined" dimensioned(); + //- A dimensioned Zero, named "0" + explicit dimensioned(const dimensionSet&); + // Static member functions -- GitLab