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