BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / OpenFOAM / primitives / Vector / complexVector / complexVectorI.H
blob494cf5a0aaff0bc92271be7d0d4be466563623a6
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by
13     the Free Software Foundation, either version 3 of the License, or
14     (at your option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
24 Description
25     complexVector specific part of 3D complexVector obtained from
26     generic Vector.
28 \*---------------------------------------------------------------------------*/
30 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
32 namespace Foam
35 // * * * * * * * * * * * * * * * Friend Operators  * * * * * * * * * * * * * //
37 inline complexVector operator*(const complex& v1, const complexVector& v2)
39     return complexVector
40     (
41         v1*v2.x(),
42         v1*v2.y(),
43         v1*v2.z()
44     );
48 inline complexVector operator*(const complexVector& v2, const complex& v1)
50     return complexVector
51     (
52         v1*v2.x(),
53         v1*v2.y(),
54         v1*v2.z()
55     );
59 inline complexVector operator/(const complexVector& v1, const complex& v2)
61     return complexVector
62     (
63         v1.x()/v2,
64         v1.y()/v2,
65         v1.z()/v2
66     );
70 inline complexVector operator/(const complex& v1, const complexVector& v2)
72     return complexVector
73     (
74         v1/v2.x(),
75         v1/v2.y(),
76         v1/v2.z()
77     );
81 // complexVector dot product
83 inline complex operator&(const complexVector& v1, const complexVector& v2)
85     return complex
86     (
87         v1.x()*v2.x().conjugate()
88       + v1.y()*v2.y().conjugate()
89       + v1.z()*v2.z().conjugate()
90     );
94 // complexVector cross product
96 inline complexVector operator^(const complexVector& v1, const complexVector& v2)
98     return complexVector
99     (
100         (v1.y()*v2.z() - v1.z()*v2.y()),
101         (v1.z()*v2.x() - v1.x()*v2.z()),
102         (v1.x()*v2.y() - v1.y()*v2.x())
103     );
107 // complexVector cross product
109 inline complexVector operator^(const vector& v1, const complexVector& v2)
111     return complexVector
112     (
113         (v1.y()*v2.z() - v1.z()*v2.y()),
114         (v1.z()*v2.x() - v1.x()*v2.z()),
115         (v1.x()*v2.y() - v1.y()*v2.x())
116     );
120 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
122 } // End namespace Foam
124 // ************************************************************************* //