diff --git a/src/OpenFOAM/dimensionSet/dimensionSet.C b/src/OpenFOAM/dimensionSet/dimensionSet.C index de1b547681fc1e9ac21ed463d563685068e04c8d..c289689ce97d7d7ac35ddb57b3807e4f41394d40 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 105ea879a53bcca742bc9299e313d20c97b566a0..b4af80416b24db01282b0c6133350d5233ebcbb4 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 c1b00f52da6965b457be2cbd92a095a432cd49c7..fee971a8e853765437bff7d868a5ef56f35c4d72 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 96854aecfb4579f92f2d9a97ffc14f68dc467649..d1f618c2de5fcd790a7c0fda8b4a4b08fb40c9a8 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 fd0967da8102dfbdea02f2704dd5f4c0d9ab3974..019991ea99409e1a8ffcf25f549f41a4ba336c55 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 d5e1e54680b06a4f4f3d8f5168dde7c23f5407fd..1734c9dde065d606d1da83cad21cf2cace54d7d2 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 4132ba79f3c20d2e7ad4cc83dfbf4551b12015f3..4f4ddcb429dd487710a8508b74ce9b95a202180d 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 f6fcc4c901aab737f50e5465930bb587b209bbe6..0af7ac39d43058c090d5a055e99941a513e5d9d1 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 7ae37531de2feca06a17ffc6ec7d24c41b5f3ff7..e7400669af482f43e6421cb9ca1089e8bbd1c428 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 f30938e9b6830bfd9beee5baaf671534b3e9de07..4d85eece1121baaa4e5ab3a00fdf50fefc76bc14 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 79e253d9f7c93c26d2126db5bb20a91e058ef633..eb160c0e74c0b0d0468982eb0784690c8b7fa0f1 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 a7bc057e9ebaf2fa21de3ca28ce13c95c24bf5f1..78dc2e1d30e0f0124ecb7539606ef5d21c56ffa5 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 49f4072dd927bc41f89b37d7984e98a930a6e77c..f0c38d6d6a2d48403f6b77596650a41bea996848 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 f6b9fd5dd9093630bfec25406de1fcdc3fc777bf..21e5c7aec24bcb2098a8ba95fdbaf751bde77f33 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