diff --git a/src/OpenFOAM/dimensionSet/dimensionSet.C b/src/OpenFOAM/dimensionSet/dimensionSet.C index de1b54768..c289689ce 100644 --- a/src/OpenFOAM/dimensionSet/dimensionSet.C +++ b/src/OpenFOAM/dimensionSet/dimensionSet.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -417,6 +417,18 @@ Foam::dimensionSet Foam::neg(const dimensionSet&) } +Foam::dimensionSet Foam::posPart(const dimensionSet& ds) +{ + return ds; +} + + +Foam::dimensionSet Foam::negPart(const dimensionSet& ds) +{ + return ds; +} + + Foam::dimensionSet Foam::inv(const dimensionSet& ds) { return dimless/ds; diff --git a/src/OpenFOAM/dimensionSet/dimensionSet.H b/src/OpenFOAM/dimensionSet/dimensionSet.H index 105ea879a..b4af80416 100644 --- a/src/OpenFOAM/dimensionSet/dimensionSet.H +++ b/src/OpenFOAM/dimensionSet/dimensionSet.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -82,6 +82,8 @@ dimensionSet mag(const dimensionSet&); dimensionSet sign(const dimensionSet&); dimensionSet pos(const dimensionSet&); dimensionSet neg(const dimensionSet&); +dimensionSet posPart(const dimensionSet&); +dimensionSet negPart(const dimensionSet&); dimensionSet inv(const dimensionSet&); // Function to check the argument is dimensionless diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedScalar/dimensionedScalar.C b/src/OpenFOAM/dimensionedTypes/dimensionedScalar/dimensionedScalar.C index c1b00f52d..fee971a8e 100644 --- a/src/OpenFOAM/dimensionedTypes/dimensionedScalar/dimensionedScalar.C +++ b/src/OpenFOAM/dimensionedTypes/dimensionedScalar/dimensionedScalar.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -209,6 +209,28 @@ dimensionedScalar neg(const dimensionedScalar& ds) } +dimensionedScalar posPart(const dimensionedScalar& ds) +{ + return dimensionedScalar + ( + "posPart(" + ds.name() + ')', + posPart(ds.dimensions()), + ::Foam::pos(ds.value()) + ); +} + + +dimensionedScalar negPart(const dimensionedScalar& ds) +{ + return dimensionedScalar + ( + "negPart(" + ds.name() + ')', + negPart(ds.dimensions()), + ::Foam::neg(ds.value()) + ); +} + + #define transFunc(func) \ dimensionedScalar func(const dimensionedScalar& ds) \ { \ diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedScalar/dimensionedScalar.H b/src/OpenFOAM/dimensionedTypes/dimensionedScalar/dimensionedScalar.H index 96854aecf..d1f618c2d 100644 --- a/src/OpenFOAM/dimensionedTypes/dimensionedScalar/dimensionedScalar.H +++ b/src/OpenFOAM/dimensionedTypes/dimensionedScalar/dimensionedScalar.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -69,6 +69,8 @@ dimensionedScalar hypot(const dimensionedScalar&, const dimensionedScalar&); dimensionedScalar sign(const dimensionedScalar&); dimensionedScalar pos(const dimensionedScalar&); dimensionedScalar neg(const dimensionedScalar&); +dimensionedScalar posPart(const dimensionedScalar&); +dimensionedScalar negPart(const dimensionedScalar&); dimensionedScalar exp(const dimensionedScalar&); dimensionedScalar log(const dimensionedScalar&); diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedScalarField/DimensionedScalarField.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedScalarField/DimensionedScalarField.C index fd0967da8..019991ea9 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedScalarField/DimensionedScalarField.C +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedScalarField/DimensionedScalarField.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -638,6 +638,8 @@ UNARY_FUNCTION(scalar, scalar, cbrt, cbrt) UNARY_FUNCTION(scalar, scalar, sign, sign) UNARY_FUNCTION(scalar, scalar, pos, pos) UNARY_FUNCTION(scalar, scalar, neg, neg) +UNARY_FUNCTION(scalar, scalar, posPart, posPart) +UNARY_FUNCTION(scalar, scalar, negPart, negPart) UNARY_FUNCTION(scalar, scalar, exp, trans) UNARY_FUNCTION(scalar, scalar, log, trans) diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedScalarField/DimensionedScalarField.H b/src/OpenFOAM/fields/DimensionedFields/DimensionedScalarField/DimensionedScalarField.H index d5e1e5468..1734c9dde 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedScalarField/DimensionedScalarField.H +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedScalarField/DimensionedScalarField.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -92,6 +92,8 @@ UNARY_FUNCTION(scalar, scalar, cbrt, cbrt) UNARY_FUNCTION(scalar, scalar, sign, sign) UNARY_FUNCTION(scalar, scalar, pos, pos) UNARY_FUNCTION(scalar, scalar, neg, neg) +UNARY_FUNCTION(scalar, scalar, posPart, posPart) +UNARY_FUNCTION(scalar, scalar, negPart, negPart) UNARY_FUNCTION(scalar, scalar, exp, trans) UNARY_FUNCTION(scalar, scalar, log, trans) diff --git a/src/OpenFOAM/fields/FieldFields/scalarFieldField/scalarFieldField.C b/src/OpenFOAM/fields/FieldFields/scalarFieldField/scalarFieldField.C index 4132ba79f..4f4ddcb42 100644 --- a/src/OpenFOAM/fields/FieldFields/scalarFieldField/scalarFieldField.C +++ b/src/OpenFOAM/fields/FieldFields/scalarFieldField/scalarFieldField.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -109,6 +109,8 @@ UNARY_FUNCTION(scalar, scalar, cbrt) UNARY_FUNCTION(scalar, scalar, sign) UNARY_FUNCTION(scalar, scalar, pos) UNARY_FUNCTION(scalar, scalar, neg) +UNARY_FUNCTION(scalar, scalar, posPart) +UNARY_FUNCTION(scalar, scalar, negPart) UNARY_FUNCTION(scalar, scalar, exp) UNARY_FUNCTION(scalar, scalar, log) UNARY_FUNCTION(scalar, scalar, log10) diff --git a/src/OpenFOAM/fields/FieldFields/scalarFieldField/scalarFieldField.H b/src/OpenFOAM/fields/FieldFields/scalarFieldField/scalarFieldField.H index f6fcc4c90..0af7ac39d 100644 --- a/src/OpenFOAM/fields/FieldFields/scalarFieldField/scalarFieldField.H +++ b/src/OpenFOAM/fields/FieldFields/scalarFieldField/scalarFieldField.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -102,6 +102,8 @@ UNARY_FUNCTION(scalar, scalar, cbrt) UNARY_FUNCTION(scalar, scalar, sign) UNARY_FUNCTION(scalar, scalar, pos) UNARY_FUNCTION(scalar, scalar, neg) +UNARY_FUNCTION(scalar, scalar, posPart) +UNARY_FUNCTION(scalar, scalar, negPart) UNARY_FUNCTION(scalar, scalar, exp) UNARY_FUNCTION(scalar, scalar, log) UNARY_FUNCTION(scalar, scalar, log10) diff --git a/src/OpenFOAM/fields/Fields/scalarField/scalarField.C b/src/OpenFOAM/fields/Fields/scalarField/scalarField.C index 7ae37531d..e7400669a 100644 --- a/src/OpenFOAM/fields/Fields/scalarField/scalarField.C +++ b/src/OpenFOAM/fields/Fields/scalarField/scalarField.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -133,6 +133,8 @@ UNARY_FUNCTION(scalar, scalar, cbrt) UNARY_FUNCTION(scalar, scalar, sign) UNARY_FUNCTION(scalar, scalar, pos) UNARY_FUNCTION(scalar, scalar, neg) +UNARY_FUNCTION(scalar, scalar, posPart) +UNARY_FUNCTION(scalar, scalar, negPart) UNARY_FUNCTION(scalar, scalar, exp) UNARY_FUNCTION(scalar, scalar, log) UNARY_FUNCTION(scalar, scalar, log10) diff --git a/src/OpenFOAM/fields/Fields/scalarField/scalarField.H b/src/OpenFOAM/fields/Fields/scalarField/scalarField.H index f30938e9b..4d85eece1 100644 --- a/src/OpenFOAM/fields/Fields/scalarField/scalarField.H +++ b/src/OpenFOAM/fields/Fields/scalarField/scalarField.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -107,6 +107,8 @@ UNARY_FUNCTION(scalar, scalar, cbrt) UNARY_FUNCTION(scalar, scalar, sign) UNARY_FUNCTION(scalar, scalar, pos) UNARY_FUNCTION(scalar, scalar, neg) +UNARY_FUNCTION(scalar, scalar, posPart) +UNARY_FUNCTION(scalar, scalar, negPart) UNARY_FUNCTION(scalar, scalar, exp) UNARY_FUNCTION(scalar, scalar, log) UNARY_FUNCTION(scalar, scalar, log10) diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricScalarField/GeometricScalarField.C b/src/OpenFOAM/fields/GeometricFields/GeometricScalarField/GeometricScalarField.C index 79e253d9f..eb160c0e7 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricScalarField/GeometricScalarField.C +++ b/src/OpenFOAM/fields/GeometricFields/GeometricScalarField/GeometricScalarField.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -762,6 +762,8 @@ UNARY_FUNCTION(scalar, scalar, cbrt, cbrt) UNARY_FUNCTION(scalar, scalar, sign, sign) UNARY_FUNCTION(scalar, scalar, pos, pos) UNARY_FUNCTION(scalar, scalar, neg, neg) +UNARY_FUNCTION(scalar, scalar, posPart, posPart) +UNARY_FUNCTION(scalar, scalar, negPart, negPart) UNARY_FUNCTION(scalar, scalar, exp, trans) UNARY_FUNCTION(scalar, scalar, log, trans) diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricScalarField/GeometricScalarField.H b/src/OpenFOAM/fields/GeometricFields/GeometricScalarField/GeometricScalarField.H index a7bc057e9..78dc2e1d3 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricScalarField/GeometricScalarField.H +++ b/src/OpenFOAM/fields/GeometricFields/GeometricScalarField/GeometricScalarField.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -100,6 +100,8 @@ UNARY_FUNCTION(scalar, scalar, cbrt, cbrt) UNARY_FUNCTION(scalar, scalar, sign, sign) UNARY_FUNCTION(scalar, scalar, pos, pos) UNARY_FUNCTION(scalar, scalar, neg, neg) +UNARY_FUNCTION(scalar, scalar, posPart, posPart) +UNARY_FUNCTION(scalar, scalar, negPart, negPart) UNARY_FUNCTION(scalar, scalar, exp, trans) UNARY_FUNCTION(scalar, scalar, log, trans) diff --git a/src/OpenFOAM/primitives/Scalar/Scalar.H b/src/OpenFOAM/primitives/Scalar/Scalar.H index 49f4072dd..f0c38d6d6 100644 --- a/src/OpenFOAM/primitives/Scalar/Scalar.H +++ b/src/OpenFOAM/primitives/Scalar/Scalar.H @@ -131,6 +131,18 @@ inline Scalar neg(const Scalar s) } +inline Scalar posPart(const Scalar s) +{ + return (s > 0)? s: 0; +} + + +inline Scalar negPart(const Scalar s) +{ + return (s < 0)? s: 0; +} + + inline bool equal(const Scalar& s1, const Scalar& s2) { return mag(s1 - s2) <= ScalarVSMALL; diff --git a/src/OpenFOAM/primitives/ints/label/labelSpecific.H b/src/OpenFOAM/primitives/ints/label/labelSpecific.H index f6b9fd5dd..21e5c7aec 100644 --- a/src/OpenFOAM/primitives/ints/label/labelSpecific.H +++ b/src/OpenFOAM/primitives/ints/label/labelSpecific.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -60,6 +60,17 @@ inline label neg(const label s) return (s < 0)? 1: 0; } +inline label posPart(const label s) +{ + return (s > 0)? s: 0; +} + +inline label negPart(const label s) +{ + return (s < 0)? s: 0; +} + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam