From a018e83e75302dbaf0db8e75c6cc0c24ee3c9627 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 10 Mar 2016 12:45:42 +0000
Subject: [PATCH] floatTensor: Tensor<float>

---
 src/OpenFOAM/Make/files                       |  1 +
 .../Tensor/floatTensor/floatTensor.C          | 86 +++++++++++++++++++
 .../Tensor/floatTensor/floatTensor.H          | 63 ++++++++++++++
 3 files changed, 150 insertions(+)
 create mode 100644 src/OpenFOAM/primitives/Tensor/floatTensor/floatTensor.C
 create mode 100644 src/OpenFOAM/primitives/Tensor/floatTensor/floatTensor.H

diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files
index 3f325fd4530..ebe063819e5 100644
--- a/src/OpenFOAM/Make/files
+++ b/src/OpenFOAM/Make/files
@@ -52,6 +52,7 @@ primitives/Tensor/lists/tensorList.C
 primitives/Vector/complexVector/complexVector.C
 #if !defined(WM_SP)
 primitives/Vector/floatVector/floatVector.C
+primitives/Tensor/floatTensor/floatTensor.C
 #endif
 primitives/Vector/labelVector/labelVector.C
 primitives/Vector/vector/vector.C
diff --git a/src/OpenFOAM/primitives/Tensor/floatTensor/floatTensor.C b/src/OpenFOAM/primitives/Tensor/floatTensor/floatTensor.C
new file mode 100644
index 00000000000..cdcf7d4aa51
--- /dev/null
+++ b/src/OpenFOAM/primitives/Tensor/floatTensor/floatTensor.C
@@ -0,0 +1,86 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "floatTensor.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+template<>
+const char* const Foam::floatTensor::vsType::typeName = "floatTensor";
+
+template<>
+const char* const Foam::floatTensor::vsType::componentNames[] =
+{
+    "xx", "xy", "xz",
+    "yx", "yy", "yz",
+    "zx", "zy", "zz"
+};
+
+template<>
+const Foam::floatTensor Foam::floatTensor::vsType::zero
+(
+    floatTensor::uniform(0)
+);
+
+template<>
+const Foam::floatTensor Foam::floatTensor::vsType::one
+(
+    floatTensor::uniform(1)
+);
+
+template<>
+const Foam::floatTensor Foam::floatTensor::vsType::max
+(
+    floatTensor::uniform(floatScalarVGREAT)
+);
+
+template<>
+const Foam::floatTensor Foam::floatTensor::vsType::min
+(
+    floatTensor::uniform(-floatScalarVGREAT)
+);
+
+template<>
+const Foam::floatTensor Foam::floatTensor::vsType::rootMax
+(
+    floatTensor::uniform(floatScalarROOTVGREAT)
+);
+
+template<>
+const Foam::floatTensor Foam::floatTensor::vsType::rootMin
+(
+    floatTensor::uniform(-floatScalarROOTVGREAT)
+);
+
+template<>
+const Foam::floatTensor Foam::floatTensor::I
+(
+    1, 0, 0,
+    0, 1, 0,
+    0, 0, 1
+);
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/Tensor/floatTensor/floatTensor.H b/src/OpenFOAM/primitives/Tensor/floatTensor/floatTensor.H
new file mode 100644
index 00000000000..53f25ca22e7
--- /dev/null
+++ b/src/OpenFOAM/primitives/Tensor/floatTensor/floatTensor.H
@@ -0,0 +1,63 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Typedef
+    Foam::floatTensor
+
+Description
+    FloatTensor of scalars.
+
+SourceFiles
+    floatTensor.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef floatTensor_H
+#define floatTensor_H
+
+#include "Tensor.H"
+#include "contiguous.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+typedef Tensor<float> floatTensor;
+
+//- Data associated with floatTensor type are contiguous
+template<>
+inline bool contiguous<floatTensor>() {return true;}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
-- 
GitLab