tensor.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2011-2014 OpenFOAM Foundation
9  Copyright (C) 2019-2020 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 Typedef
28  Foam::tensor
29 
30 Description
31  Tensor of scalars, i.e. Tensor<scalar>.
32 
33  Analytical functions for the computation of complex eigenvalues and
34  complex eigenvectors from a given tensor.
35 
36 See also
37  Test-Tensor.C
38 
39 SourceFiles
40  tensor.C
41 
42 \*---------------------------------------------------------------------------*/
43 
44 #ifndef tensor_H
45 #define tensor_H
46 
47 #include "Tensor.H"
48 #include "vector.H"
49 #include "sphericalTensor.H"
50 #include "symmTensor.H"
51 #include "complex.H"
52 
53 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
54 
55 namespace Foam
56 {
57 
58 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
59 
60 typedef Tensor<scalar> tensor;
61 
62 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
63 
64 //- Return complex eigenvalues of a given tensor
65 // \param T tensor
66 //
67 // \return Vector<complex> eigenvalues
68 Vector<complex> eigenValues(const tensor& T);
69 
70 
71 //- Return a complex eigenvector corresponding to
72 //- a given complex eigenvalue of a given tensor
73 // \param T tensor
74 // \param eVal complex eigenvalue
75 // \param standardBasis1 tensor orthogonal component 1
76 // \param standardBasis2 tensor orthogonal component 2
77 //
78 // \return Vector<complex> eigenvector
79 Vector<complex> eigenVector
80 (
81  const tensor& T,
82  const complex& eVal,
83  const Vector<complex>& standardBasis1,
84  const Vector<complex>& standardBasis2
85 );
86 
87 
88 //- Return complex eigenvectors corresponding to
89 //- given complex eigenvalues of a given tensor
90 // \param T tensor
91 // \param eVals complex eigenvalues
92 //
93 // \return Tensor<complex> eigenvectors, each row is an eigenvector
94 Tensor<complex> eigenVectors
95 (
96  const tensor& T,
97  const Vector<complex>& eVals
98 );
99 
100 
101 //- Return complex eigenvectors of a given tensor by computing
102 //- the complex eigenvalues of the tensor in the background
103 // \param T tensor
104 //
105 // \return Tensor<complex> complex eigenvectors, each row is an eigenvector
106 Tensor<complex> eigenVectors(const tensor& T);
107 
108 
109 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
110 
111 } // End namespace Foam
112 
113 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
114 
115 #endif
116 
117 // ************************************************************************* //
Foam::roots::complex
Definition: Roots.H:57
Foam::eigenVector
vector eigenVector(const symmTensor &T, const scalar eVal, const vector &standardBasis1, const vector &standardBasis2)
Definition: symmTensor.C:152
Foam::eigenValues
dimensionedVector eigenValues(const dimensionedSymmTensor &dt)
Definition: dimensionedTensor.C:149
Foam::eigenVectors
dimensionedTensor eigenVectors(const dimensionedSymmTensor &dt)
Definition: dimensionedTensor.C:160
complex.H
sphericalTensor.H
symmTensor.H
Foam::T
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Definition: FieldFieldFunctions.C:58
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Tensor.H
vector.H
Foam::tensor
Tensor< scalar > tensor
Tensor of scalars, i.e. Tensor<scalar>.
Definition: symmTensor.H:61