diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files index d0e703cfd18b70fafb1a18a3d4d2c5e49641d9b2..881ca47c7a67206c91eb37736ce25a2a905277fe 100644 --- a/src/OpenFOAM/Make/files +++ b/src/OpenFOAM/Make/files @@ -90,8 +90,8 @@ primitives/Vector/lists/vectorListIOList.C primitives/Tensor2D/tensor2D/tensor2D.C primitives/SphericalTensor2D/sphericalTensor2D/sphericalTensor2D.C primitives/SymmTensor2D/symmTensor2D/symmTensor2D.C -primitives/Vector2D/labelVector2D/labelVector2D.C -primitives/Vector2D/vector2D/vector2D.C +primitives/Vector2D/floats/vector2D.C +primitives/Vector2D/ints/labelVector2D.C primitives/complex/complex.C primitives/globalIndexAndTransform/globalIndexAndTransform.C diff --git a/src/OpenFOAM/primitives/SphericalTensor/labelSphericalTensor/labelSphericalTensor.C b/src/OpenFOAM/primitives/SphericalTensor/labelSphericalTensor/labelSphericalTensor.C index 66b58892fc9165519964e0229563c66120344fb3..59dc1035d827bea9044f4aa18dbb83a54ef82f99 100644 --- a/src/OpenFOAM/primitives/SphericalTensor/labelSphericalTensor/labelSphericalTensor.C +++ b/src/OpenFOAM/primitives/SphericalTensor/labelSphericalTensor/labelSphericalTensor.C @@ -69,13 +69,13 @@ const Foam::labelSphericalTensor Foam::labelSphericalTensor::vsType::min template<> const Foam::labelSphericalTensor Foam::labelSphericalTensor::vsType::rootMax ( - labelSphericalTensor::uniform(sqrt(scalar(labelMax))) + labelSphericalTensor::uniform(::sqrt(double(labelMax))) ); template<> const Foam::labelSphericalTensor Foam::labelSphericalTensor::vsType::rootMin ( - labelSphericalTensor::uniform(-sqrt(scalar(labelMax))) + labelSphericalTensor::uniform(-::sqrt(double(labelMax))) ); template<> diff --git a/src/OpenFOAM/primitives/SymmTensor/labelSymmTensor/labelSymmTensor.C b/src/OpenFOAM/primitives/SymmTensor/labelSymmTensor/labelSymmTensor.C index df06cb3a5e176a4a4e93a6300c6e67a1afd1142c..0cdd46292f6cad4933132ab5e87cec65c8ec142a 100644 --- a/src/OpenFOAM/primitives/SymmTensor/labelSymmTensor/labelSymmTensor.C +++ b/src/OpenFOAM/primitives/SymmTensor/labelSymmTensor/labelSymmTensor.C @@ -67,13 +67,13 @@ const Foam::labelSymmTensor Foam::labelSymmTensor::vsType::min template<> const Foam::labelSymmTensor Foam::labelSymmTensor::vsType::rootMax ( - labelSymmTensor::uniform(sqrt(scalar(labelMax))) + labelSymmTensor::uniform(::sqrt(double(labelMax))) ); template<> const Foam::labelSymmTensor Foam::labelSymmTensor::vsType::rootMin ( - labelSymmTensor::uniform(-sqrt(scalar(labelMax))) + labelSymmTensor::uniform(-::sqrt(double(labelMax))) ); template<> diff --git a/src/OpenFOAM/primitives/Tensor/ints/labelTensor.C b/src/OpenFOAM/primitives/Tensor/ints/labelTensor.C index 3adc0c66cff038b018bb4d5fe740d7fa22229d3c..1c3541d935ed2534dd3171401baa981bb7c6a98f 100644 --- a/src/OpenFOAM/primitives/Tensor/ints/labelTensor.C +++ b/src/OpenFOAM/primitives/Tensor/ints/labelTensor.C @@ -68,13 +68,13 @@ const Foam::labelTensor Foam::labelTensor::vsType::min template<> const Foam::labelTensor Foam::labelTensor::vsType::rootMax ( - labelTensor::uniform(sqrt(scalar(labelMax))) + labelTensor::uniform(::sqrt(double(labelMax))) ); template<> const Foam::labelTensor Foam::labelTensor::vsType::rootMin ( - labelTensor::uniform(-sqrt(scalar(labelMax))) + labelTensor::uniform(-::sqrt(double(labelMax))) ); template<> diff --git a/src/OpenFOAM/primitives/Vector/Vector.H b/src/OpenFOAM/primitives/Vector/Vector.H index a254b9e855dd3018ab8401eed20de7220078b026..053865a2a85e02c38141b2730efe7be87e481457 100644 --- a/src/OpenFOAM/primitives/Vector/Vector.H +++ b/src/OpenFOAM/primitives/Vector/Vector.H @@ -171,7 +171,7 @@ public: inline Vector<Cmpt> cross(const Vector<Cmpt>& v2) const; - // Comparision Operations + // Comparison Operations //- Lexicographically compare \em a and \em b with order (x:y:z) static inline bool less_xyz diff --git a/src/OpenFOAM/primitives/Vector/VectorI.H b/src/OpenFOAM/primitives/Vector/VectorI.H index 4c33803f651e4bb12b26769f98cfc21109499660..7ce8d60118d4ef943043a4e426e454e401e587a8 100644 --- a/src/OpenFOAM/primitives/Vector/VectorI.H +++ b/src/OpenFOAM/primitives/Vector/VectorI.H @@ -170,7 +170,7 @@ Foam::Vector<Cmpt>::cross(const Vector<Cmpt>& v2) const } -// * * * * * * * * * * * * * Comparision Operations * * * * * * * * * * * * // +// * * * * * * * * * * * * * Comparison Operations * * * * * * * * * * * * * // template<class Cmpt> inline bool diff --git a/src/OpenFOAM/primitives/Vector/ints/labelVector.C b/src/OpenFOAM/primitives/Vector/ints/labelVector.C index c98aba46e751babbe47ece0b43aea4c559fc939a..6513f5eb3b01d202782ae65e2c6f503c43907143 100644 --- a/src/OpenFOAM/primitives/Vector/ints/labelVector.C +++ b/src/OpenFOAM/primitives/Vector/ints/labelVector.C @@ -32,47 +32,54 @@ License template<> const char* const Foam::labelVector::vsType::typeName = "labelVector"; -template<> -const char* const Foam::labelVector::vsType::componentNames[] = -{ - "x", "y", "z" -}; - -template<> -const Foam::labelVector Foam::labelVector::vsType::zero -( - labelVector::uniform(0) -); - -template<> -const Foam::labelVector Foam::labelVector::vsType::one -( - labelVector::uniform(1) -); - -template<> -const Foam::labelVector Foam::labelVector::vsType::max -( - labelVector::uniform(labelMax) -); - -template<> -const Foam::labelVector Foam::labelVector::vsType::min -( - labelVector::uniform(-labelMax) -); - -template<> -const Foam::labelVector Foam::labelVector::vsType::rootMax -( - labelVector::uniform(sqrt(scalar(labelMax))) -); - -template<> -const Foam::labelVector Foam::labelVector::vsType::rootMin -( - labelVector::uniform(-sqrt(scalar(labelMax))) -); - +#undef defineTraits +#define defineTraits(Type, Prefix) \ + \ + template<> \ + const char* const Foam::Vector<Type>::vsType::componentNames[] = \ + { \ + "x", "y", "z" \ + }; \ + \ + template<> \ + const Foam::Vector<Type> Foam::Vector<Type>::vsType::zero \ + ( \ + Vector<Type>::uniform(0) \ + ); \ + \ + template<> \ + const Foam::Vector<Type> Foam::Vector<Type>::vsType::one \ + ( \ + Vector<Type>::uniform(1) \ + ); \ + \ + template<> \ + const Foam::Vector<Type> Foam::Vector<Type>::vsType::max \ + ( \ + Vector<Type>::uniform(Prefix##Max) \ + ); \ + \ + template<> \ + const Foam::Vector<Type> Foam::Vector<Type>::vsType::min \ + ( \ + Vector<Type>::uniform(-Prefix##Max) \ + ); \ + \ + template<> \ + const Foam::Vector<Type> Foam::Vector<Type>::vsType::rootMax \ + ( \ + Vector<Type>::uniform(::sqrt(double(Prefix##Max))) \ + ); \ + \ + template<> \ + const Foam::Vector<Type> Foam::Vector<Type>::vsType::rootMin \ + ( \ + Vector<Type>::uniform(-::sqrt(double(Prefix##Max))) \ + ); + + +defineTraits(Foam::label, label); + +#undef defineTraits // ************************************************************************* // diff --git a/src/OpenFOAM/primitives/Vector/ints/labelVector.H b/src/OpenFOAM/primitives/Vector/ints/labelVector.H index d04f62e7bd1500472569e39a23c46053b07bd9dd..b6ac6ec0ef40ff335b1b60b50b463ae8784d3341 100644 --- a/src/OpenFOAM/primitives/Vector/ints/labelVector.H +++ b/src/OpenFOAM/primitives/Vector/ints/labelVector.H @@ -35,8 +35,8 @@ SourceFiles \*---------------------------------------------------------------------------*/ -#ifndef labelVector_H -#define labelVector_H +#ifndef Foam_labelVector_H +#define Foam_labelVector_H #include "label.H" #include "Vector.H" diff --git a/src/OpenFOAM/primitives/Vector2D/Vector2D.H b/src/OpenFOAM/primitives/Vector2D/Vector2D.H index 2e807e22b6bf47f9652c1c9a5702c18be3924b16..01ad98d2f61198d253fc687ab0122b505227ef37 100644 --- a/src/OpenFOAM/primitives/Vector2D/Vector2D.H +++ b/src/OpenFOAM/primitives/Vector2D/Vector2D.H @@ -153,6 +153,23 @@ public: const Vector2D<Cmpt>& b, const scalar tol = 1e-10 ) const; + + + // Comparison Operations + + //- Lexicographically compare \em a and \em b with order (x:y) + static inline bool less_xy + ( + const Vector2D<Cmpt>& a, + const Vector2D<Cmpt>& b + ); + + //- Lexicographically compare \em a and \em b with order (y:x) + static inline bool less_yx + ( + const Vector2D<Cmpt>& a, + const Vector2D<Cmpt>& b + ); }; diff --git a/src/OpenFOAM/primitives/Vector2D/Vector2DI.H b/src/OpenFOAM/primitives/Vector2D/Vector2DI.H index 1877bce27171646e1c5efbd08cb98b1067eebe2e..bdd677986fca1f9343deb38f197ca8b899ff27bf 100644 --- a/src/OpenFOAM/primitives/Vector2D/Vector2DI.H +++ b/src/OpenFOAM/primitives/Vector2D/Vector2DI.H @@ -126,13 +126,39 @@ Foam::Vector2D<Cmpt>::removeCollinear(const Vector2D<Cmpt>& unitVec) } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// * * * * * * * * * * * * * Comparison Operations * * * * * * * * * * * * * // -namespace Foam +template<class Cmpt> +inline bool +Foam::Vector2D<Cmpt>::less_xy(const Vector2D<Cmpt>& a, const Vector2D<Cmpt>& b) { + return + ( + (a.x() < b.x()) + || (!(b.x() < a.x()) && (a.y() < b.y())) + ); +} + + +template<class Cmpt> +inline bool +Foam::Vector2D<Cmpt>::less_yx(const Vector2D<Cmpt>& a, const Vector2D<Cmpt>& b) +{ + return + ( + (a.y() < b.y()) + || (!(b.y() < a.y()) && (a.x() < b.x())) + ); +} + // * * * * * * * * * * * * * * * Global Operators * * * * * * * * * * * * * // +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + template<class Cmpt> inline Cmpt operator&(const Vector2D<Cmpt>& v1, const Vector2D<Cmpt>& v2) { diff --git a/src/OpenFOAM/primitives/Vector2D/floats/vector2D.C b/src/OpenFOAM/primitives/Vector2D/floats/vector2D.C new file mode 100644 index 0000000000000000000000000000000000000000..dd0e46429e2e4e567c368884c72cb5f3ad060cae --- /dev/null +++ b/src/OpenFOAM/primitives/Vector2D/floats/vector2D.C @@ -0,0 +1,105 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | www.openfoam.com + \\/ M anipulation | +------------------------------------------------------------------------------- + Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2022 OpenCFD Ltd. +------------------------------------------------------------------------------- +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 "vector2D.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +#if defined(WM_DP) + +template<> +const char* const Foam::Vector2D<float>::vsType::typeName = "floatVector2D"; + +template<> +const char* const Foam::Vector2D<double>::vsType::typeName = "vector2D"; + +#else + +// WM_SP, WM_SPDP +template<> +const char* const Foam::Vector2D<float>::vsType::typeName = "vector2D"; + +template<> +const char* const Foam::Vector2D<double>::vsType::typeName = "doubleVector2D"; + +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#undef defineTraits +#define defineTraits(Type, Prefix) \ + \ + template<> \ + const char* const Foam::Vector2D<Type>::vsType::componentNames[] = \ + { \ + "x", "y" \ + }; \ + \ + template<> \ + const Foam::Vector2D<Type> Foam::Vector2D<Type>::vsType::zero \ + ( \ + Vector2D<Type>::uniform(0) \ + ); \ + \ + template<> \ + const Foam::Vector2D<Type> Foam::Vector2D<Type>::vsType::one \ + ( \ + Vector2D<Type>::uniform(1) \ + ); \ + \ + template<> \ + const Foam::Vector2D<Type> Foam::Vector2D<Type>::vsType::max \ + ( \ + Vector2D<Type>::uniform(Prefix##VGREAT) \ + ); \ + \ + template<> \ + const Foam::Vector2D<Type> Foam::Vector2D<Type>::vsType::min \ + ( \ + Vector2D<Type>::uniform(-Prefix##VGREAT) \ + ); \ + \ + template<> \ + const Foam::Vector2D<Type> Foam::Vector2D<Type>::vsType::rootMax \ + ( \ + Vector2D<Type>::uniform(Prefix##ROOTVGREAT) \ + ); \ + \ + template<> \ + const Foam::Vector2D<Type> Foam::Vector2D<Type>::vsType::rootMin \ + ( \ + Vector2D<Type>::uniform(-Prefix##ROOTVGREAT) \ + ); + + +defineTraits(float, floatScalar); +defineTraits(double, doubleScalar); + +#undef defineTraits + +// ************************************************************************* // diff --git a/src/OpenFOAM/primitives/Vector2D/vector2D/vector2D.H b/src/OpenFOAM/primitives/Vector2D/floats/vector2D.H similarity index 84% rename from src/OpenFOAM/primitives/Vector2D/vector2D/vector2D.H rename to src/OpenFOAM/primitives/Vector2D/floats/vector2D.H index b620ca5b5929be2677c132b7a8467f0d6a5785b2..870408c60691b5163040a0cd289fdba8b6141b9f 100644 --- a/src/OpenFOAM/primitives/Vector2D/vector2D/vector2D.H +++ b/src/OpenFOAM/primitives/Vector2D/floats/vector2D.H @@ -35,8 +35,8 @@ SourceFiles \*---------------------------------------------------------------------------*/ -#ifndef vector2D_H -#define vector2D_H +#ifndef Foam_vector2D_H +#define Foam_vector2D_H #include "scalar.H" #include "Vector2D.H" @@ -48,6 +48,15 @@ namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +//! \class Foam::floatVector2D +//! \brief A Vector2D of values with float precision +typedef Vector2D<float> floatVector2D; + +//! \class Foam::doubleVector2D +//! \brief A Vector2D of values with double precision +typedef Vector2D<double> doubleVector2D; + +// With float or double precision (depending on compilation) typedef Vector2D<scalar> vector2D; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/primitives/Vector2D/ints/labelVector2D.C b/src/OpenFOAM/primitives/Vector2D/ints/labelVector2D.C new file mode 100644 index 0000000000000000000000000000000000000000..86836ba48b8cf6a15e0e403f08ca8452f8c37a0f --- /dev/null +++ b/src/OpenFOAM/primitives/Vector2D/ints/labelVector2D.C @@ -0,0 +1,88 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | www.openfoam.com + \\/ M anipulation | +------------------------------------------------------------------------------- + Copyright (C) 2019 OpenCFD Ltd. +------------------------------------------------------------------------------- +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 "labelVector2D.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +template<> +const char* const Foam::labelVector2D::vsType::typeName = "labelVector2D"; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#undef defineTraits +#define defineTraits(Type, Prefix) \ + \ + template<> \ + const char* const Foam::Vector2D<Type>::vsType::componentNames[] = \ + { \ + "x", "y" \ + }; \ + \ + template<> \ + const Foam::Vector2D<Type> Foam::Vector2D<Type>::vsType::zero \ + ( \ + Vector2D<Type>::uniform(0) \ + ); \ + \ + template<> \ + const Foam::Vector2D<Type> Foam::Vector2D<Type>::vsType::one \ + ( \ + Vector2D<Type>::uniform(1) \ + ); \ + \ + template<> \ + const Foam::Vector2D<Type> Foam::Vector2D<Type>::vsType::max \ + ( \ + Vector2D<Type>::uniform(Prefix##Max) \ + ); \ + \ + template<> \ + const Foam::Vector2D<Type> Foam::Vector2D<Type>::vsType::min \ + ( \ + Vector2D<Type>::uniform(-Prefix##Max) \ + ); \ + \ + template<> \ + const Foam::Vector2D<Type> Foam::Vector2D<Type>::vsType::rootMax \ + ( \ + Vector2D<Type>::uniform(::sqrt(double(Prefix##Max))) \ + ); \ + \ + template<> \ + const Foam::Vector2D<Type> Foam::Vector2D<Type>::vsType::rootMin \ + ( \ + Vector2D<Type>::uniform(-::sqrt(double(Prefix##Max))) \ + ); + + +defineTraits(Foam::label, label); + +#undef defineTraits + +// ************************************************************************* // diff --git a/src/OpenFOAM/primitives/Vector2D/labelVector2D/labelVector2D.H b/src/OpenFOAM/primitives/Vector2D/ints/labelVector2D.H similarity index 97% rename from src/OpenFOAM/primitives/Vector2D/labelVector2D/labelVector2D.H rename to src/OpenFOAM/primitives/Vector2D/ints/labelVector2D.H index fae937db0f35fbade7816a4e5d3ce50407dd2b1c..56345fb659137f5e9e41cd01efb0bdf6dd60d310 100644 --- a/src/OpenFOAM/primitives/Vector2D/labelVector2D/labelVector2D.H +++ b/src/OpenFOAM/primitives/Vector2D/ints/labelVector2D.H @@ -34,8 +34,8 @@ SourceFiles \*---------------------------------------------------------------------------*/ -#ifndef labelVector2D_H -#define labelVector2D_H +#ifndef Foam_labelVector2D_H +#define Foam_labelVector2D_H #include "label.H" #include "Vector2D.H" diff --git a/src/OpenFOAM/primitives/Vector2D/labelVector2D/labelVector2D.C b/src/OpenFOAM/primitives/Vector2D/labelVector2D/labelVector2D.C deleted file mode 100644 index 4b44f83275ca880cba1e4d7fd3984d82e06af4e4..0000000000000000000000000000000000000000 --- a/src/OpenFOAM/primitives/Vector2D/labelVector2D/labelVector2D.C +++ /dev/null @@ -1,75 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | www.openfoam.com - \\/ M anipulation | -------------------------------------------------------------------------------- - Copyright (C) 2019 OpenCFD Ltd. -------------------------------------------------------------------------------- -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 "labelVector2D.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -template<> -const char* const Foam::labelVector2D::vsType::typeName = "labelVector2D"; - -template<> -const char* const Foam::labelVector2D::vsType::componentNames[] = { "x", "y" }; - -template<> -const Foam::labelVector2D Foam::labelVector2D::vsType::zero -( - labelVector2D::uniform(0) -); - -template<> -const Foam::labelVector2D Foam::labelVector2D::vsType::one -( - labelVector2D::uniform(1) -); - -template<> -const Foam::labelVector2D Foam::labelVector2D::vsType::max -( - labelVector2D::uniform(labelMax) -); - -template<> -const Foam::labelVector2D Foam::labelVector2D::vsType::min -( - labelVector2D::uniform(-labelMax) -); - -template<> -const Foam::labelVector2D Foam::labelVector2D::vsType::rootMax -( - labelVector2D::uniform(sqrt(scalar(labelMax))) -); - -template<> -const Foam::labelVector2D Foam::labelVector2D::vsType::rootMin -( - labelVector2D::uniform(-sqrt(scalar(labelMax))) -); - - -// ************************************************************************* // diff --git a/src/OpenFOAM/primitives/Vector2D/vector2D/vector2D.C b/src/OpenFOAM/primitives/Vector2D/vector2D/vector2D.C deleted file mode 100644 index a8e3eda22d9b003fe20ec0f3a484e723f0d71e7b..0000000000000000000000000000000000000000 --- a/src/OpenFOAM/primitives/Vector2D/vector2D/vector2D.C +++ /dev/null @@ -1,78 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | www.openfoam.com - \\/ M anipulation | -------------------------------------------------------------------------------- - Copyright (C) 2011-2016 OpenFOAM Foundation -------------------------------------------------------------------------------- -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/>. - -Description - Vector2D of scalars. - -\*---------------------------------------------------------------------------*/ - -#include "vector2D.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -template<> -const char* const Foam::vector2D::vsType::typeName = "vector2D"; - -template<> -const char* const Foam::vector2D::vsType::componentNames[] = {"x", "y"}; - -template<> -const Foam::vector2D Foam::vector2D::vsType::vsType::zero -( - vector2D::uniform(0) -); - -template<> -const Foam::vector2D Foam::vector2D::vsType::one -( - vector2D::uniform(1) -); - -template<> -const Foam::vector2D Foam::vector2D::vsType::max -( - vector2D::uniform(VGREAT) -); - -template<> -const Foam::vector2D Foam::vector2D::vsType::min -( - vector2D::uniform(-VGREAT) -); - -template<> -const Foam::vector2D Foam::vector2D::vsType::rootMax -( - vector2D::uniform(ROOTVGREAT) -); - -template<> -const Foam::vector2D Foam::vector2D::vsType::rootMin -( - vector2D::uniform(-ROOTVGREAT) -); - - -// ************************************************************************* //