symmTensor2D.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-2013 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::symmTensor2D
29 
30 Description
31  SymmTensor2D of scalars, i.e. SymmTensor2D<scalar>.
32 
33  Analytical functions for the computation of real eigenvalues
34  and real eigenvectors from a given symmTensor2D.
35 
36  Reference:
37  \verbatim
38  2-by-2 eigenvalue algorithm (tag:K):
39  Kronenburg, M. J. (2015).
40  A method for fast diagonalization of
41  a 2x2 or 3x3 real symmetric matrix.
42  arXiv:1306.6291.
43  \endverbatim
44 
45 See also
46  Test-SymmTensor2D.C
47 
48 SourceFiles
49  symmTensor2D.C
50 
51 \*---------------------------------------------------------------------------*/
52 
53 #ifndef symmTensor2D_H
54 #define symmTensor2D_H
55 
56 #include "SymmTensor2D.H"
57 #include "vector2D.H"
58 
59 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
60 
61 namespace Foam
62 {
63 
64 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
65 
67 
69 
70 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
71 
72 //- Return real arbitrary-order eigenvalues of a given symmTensor2D
73 // \param T symmTensor2D
74 //
75 // \return vector2D real eigenvalues
77 
78 
79 //- Return a real eigenvector corresponding to
80 //- a given real eigenvalue of a given symmTensor2D
81 // \param T symmTensor2D
82 // \param eVal real eigenvalue
83 // \param standardBasis symmTensor2D orthogonal component, e.g. vector2D(1, 0)
84 //
85 // \return vector2D real eigenvector
87 (
88  const symmTensor2D& T,
89  const scalar eVal,
90  const vector2D& standardBasis
91 );
92 
93 
94 //- Return real eigenvectors corresponding to
95 //- given real eigenvalues of a given symmTensor2D
96 // \param T symmTensor2D
97 // \param eVals real eigenvalues
98 //
99 // \return tensor2D real eigenvectors, each row is an eigenvector
100 tensor2D eigenVectors(const symmTensor2D& T, const vector2D& eVals);
101 
102 
103 //- Return real eigenvectors of a given symmTensor2D by computing
104 //- the real eigenvalues of the symmTensor2D in the background
105 // \param T symmTensor2D
106 //
107 // \return tensor2D real eigenvectors, each row is an eigenvector
109 
110 
111 } // End namespace Foam
112 
113 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
114 
115 #endif
116 
117 // ************************************************************************* //
SymmTensor2D.H
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::SymmTensor2D
A templated (2 x 2) symmetric tensor of objects of <T>, effectively containing 3 elements,...
Definition: SymmTensor2D.H:58
Foam::eigenVectors
dimensionedTensor eigenVectors(const dimensionedSymmTensor &dt)
Definition: dimensionedTensor.C:160
Foam::tensor2D
Tensor2D< scalar > tensor2D
Tensor2D of scalars, i.e. Tensor2D<scalar>.
Definition: symmTensor2D.H:68
Foam::Vector2D< scalar >
Foam::Tensor2D
A templated (2 x 2) tensor of objects of <T> derived from VectorSpace.
Definition: Tensor2D.H:59
Foam::T
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Definition: FieldFieldFunctions.C:58
vector2D.H
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::symmTensor2D
SymmTensor2D< scalar > symmTensor2D
SymmTensor2D of scalars, i.e. SymmTensor2D<scalar>.
Definition: symmTensor2D.H:66