diff --git a/applications/test/complex/Test-complex.C b/applications/test/complex/Test-complex.C index 0cf31f9c85..7ee36a7d4a 100644 --- a/applications/test/complex/Test-complex.C +++ b/applications/test/complex/Test-complex.C @@ -56,11 +56,10 @@ int main(int argc, char *argv[]) << "complexVector::one : " << complexVector::one << nl << nl; - // Comparison - - for (complex c : { complex{1, 0}, complex{1, 2}} ) + for (complex c : { complex{1, 0}, complex{1, 2}} ) { print1(c); + // TDB: allow implicit construct from scalar? // // if (c == 1.0) diff --git a/src/OpenFOAM/primitives/Vector/complexVector/complexVector.H b/src/OpenFOAM/primitives/Vector/complexVector/complexVector.H index cbcf718501..488ea35c01 100644 --- a/src/OpenFOAM/primitives/Vector/complexVector/complexVector.H +++ b/src/OpenFOAM/primitives/Vector/complexVector/complexVector.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | + \\ / A nd | Copyright (C) 2019 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- | Copyright (C) 2011 OpenFOAM Foundation @@ -27,7 +27,7 @@ Typedef Foam::complexVector Description - complexVector obtained from generic Vector. + A Vector of complex values with 'scalar' precision. SourceFiles complexVectorI.H @@ -48,6 +48,7 @@ namespace Foam typedef Vector complexVector; } +// Functions #include "complexVectorI.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/primitives/Vector/complexVector/complexVectorI.H b/src/OpenFOAM/primitives/Vector/complexVector/complexVectorI.H index 5a059aed07..4f257d6543 100644 --- a/src/OpenFOAM/primitives/Vector/complexVector/complexVectorI.H +++ b/src/OpenFOAM/primitives/Vector/complexVector/complexVectorI.H @@ -23,10 +23,6 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . -Description - complexVector specific part of 3D complexVector obtained from - generic Vector. - \*---------------------------------------------------------------------------*/ // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -34,7 +30,7 @@ Description namespace Foam { -// * * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * // +// * * * * * * * * * * * * * * * Global Operators * * * * * * * * * * * * * // inline complexVector operator*(const complex& v1, const complexVector& v2) { @@ -80,8 +76,7 @@ inline complexVector operator/(const complex& v1, const complexVector& v2) } -// complexVector dot product - +//- Dot product for complexVector inline complex operator&(const complexVector& v1, const complexVector& v2) { return complex @@ -93,8 +88,7 @@ inline complex operator&(const complexVector& v1, const complexVector& v2) } -// complexVector cross product - +//- Cross product for complexVector inline complexVector operator^(const complexVector& v1, const complexVector& v2) { return complexVector @@ -106,8 +100,7 @@ inline complexVector operator^(const complexVector& v1, const complexVector& v2) } -// complexVector cross product - +//- Cross product for complexVector inline complexVector operator^(const vector& v1, const complexVector& v2) { return complexVector diff --git a/src/OpenFOAM/primitives/complex/complex.C b/src/OpenFOAM/primitives/complex/complex.C index a85f596fdc..c3f28d887c 100644 --- a/src/OpenFOAM/primitives/complex/complex.C +++ b/src/OpenFOAM/primitives/complex/complex.C @@ -32,7 +32,7 @@ License const char* const Foam::complex::typeName = "complex"; const Foam::complex Foam::complex::zero(0, 0); -const Foam::complex Foam::complex::one(1, 1); +const Foam::complex Foam::complex::one(1, 0); // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/primitives/complex/complex.H b/src/OpenFOAM/primitives/complex/complex.H index c4b258a06e..a362748989 100644 --- a/src/OpenFOAM/primitives/complex/complex.H +++ b/src/OpenFOAM/primitives/complex/complex.H @@ -98,7 +98,7 @@ public: //- A complex zero (0,0) static const complex zero; - //- A complex one (1,1) + //- A complex one (1,0) static const complex one; @@ -189,12 +189,6 @@ public: inline void operator*=(const scalar s); inline void operator/=(const scalar s); - //- Conjugate - inline complex operator~() const; - - //- Conjugate - inline complex operator!() const; - inline bool operator==(const complex& c) const; inline bool operator!=(const complex& c) const; @@ -244,6 +238,12 @@ template<> inline bool contiguous() {return true;} +// * * * * * * * * * * * * * * * Global Operators * * * * * * * * * * * * * // + +//- Complex conjugate +inline complex operator~(const complex& c); + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam diff --git a/src/OpenFOAM/primitives/complex/complexI.H b/src/OpenFOAM/primitives/complex/complexI.H index 7104ac84b7..e53bfeeb57 100644 --- a/src/OpenFOAM/primitives/complex/complexI.H +++ b/src/OpenFOAM/primitives/complex/complexI.H @@ -174,18 +174,6 @@ inline void Foam::complex::operator/=(const scalar s) } -inline Foam::complex Foam::complex::operator~() const -{ - return conjugate(); -} - - -inline Foam::complex Foam::complex::operator!() const -{ - return conjugate(); -} - - inline bool Foam::complex::operator==(const complex& c) const { return (equal(re, c.re) && equal(im, c.im)); @@ -198,6 +186,14 @@ inline bool Foam::complex::operator!=(const complex& c) const } +// * * * * * * * * * * * * * * * Global Operators * * * * * * * * * * * * * // + +inline Foam::complex Foam::operator~(const complex& c) +{ + return c.conjugate(); +} + + // * * * * * * * * * * * * * * * Friend Functions * * * * * * * * * * * * * //