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-------------------------------------------------------------------------------
11License
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
27Typedef
28 Foam::symmTensor2D
29
30Description
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
45See also
46 Test-SymmTensor2D.C
47
48SourceFiles
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
61namespace 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
100tensor2D 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// ************************************************************************* //
A templated (2 x 2) symmetric tensor of objects of <T>, effectively containing 3 elements,...
Definition: SymmTensor2D.H:61
A templated (2 x 2) tensor of objects of <T> derived from VectorSpace.
Definition: Tensor2D.H:59
const volScalarField & T
Namespace for OpenFOAM.
dimensionedTensor eigenVectors(const dimensionedSymmTensor &dt)
dimensionedVector eigenValues(const dimensionedSymmTensor &dt)
vector eigenVector(const symmTensor &T, const scalar eVal, const vector &standardBasis1, const vector &standardBasis2)
Definition: symmTensor.C:152
SymmTensor2D< scalar > symmTensor2D
SymmTensor2D of scalars, i.e. SymmTensor2D<scalar>.
Definition: symmTensor2D.H:66
Tensor2D< scalar > tensor2D
Tensor2D of scalars, i.e. Tensor2D<scalar>.
Definition: symmTensor2D.H:68