OpenFOAM
8
The OpenFOAM Foundation
Roots.H
Go to the documentation of this file.
1
/*---------------------------------------------------------------------------*\
2
========= |
3
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4
\\ / O peration | Website: https://openfoam.org
5
\\ / A nd | Copyright (C) 2017-2019 OpenFOAM Foundation
6
\\/ M anipulation |
7
-------------------------------------------------------------------------------
8
License
9
This file is part of OpenFOAM.
10
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.
15
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.
20
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/>.
23
24
Class
25
Foam::Roots
26
27
Description
28
Templated storage for the roots of polynomial equations, plus flags to
29
indicate the nature of the roots.
30
31
SourceFiles
32
RootsI.H
33
Roots.C
34
35
\*---------------------------------------------------------------------------*/
36
37
#ifndef Roots_H
38
#define Roots_H
39
40
#include "
VectorSpace.H
"
41
42
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43
44
namespace
Foam
45
{
46
47
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48
49
//- Types of root
50
enum class
rootType
51
{
52
real
= 0,
53
complex
,
54
posInf
,
55
negInf
,
56
nan
57
};
58
59
60
/*---------------------------------------------------------------------------*\
61
Class Roots Declaration
62
\*---------------------------------------------------------------------------*/
63
64
template
<direction N>
65
class
Roots
66
:
67
public
VectorSpace
<Roots<N>, scalar, N>
68
{
69
// Private Data
70
71
//- Root types, encoded into a single integer
72
label
types_;
73
74
public
:
75
76
// Constructors
77
78
//- Construct null
79
inline
Roots
();
80
81
//- Construct with a uniform value
82
inline
Roots
(
const
rootType
t,
const
scalar
x
);
83
84
//- Construct by concatenation
85
inline
Roots
86
(
87
const
rootType
t,
88
const
scalar x,
89
const
Roots<N - 1>
& xs
90
);
91
92
//- Construct by concatenation
93
inline
Roots
94
(
95
const
Roots<N - 1>
& xs,
96
const
rootType
t,
97
const
scalar x
98
);
99
100
//- Construct by concatenation
101
template
<direction M>
102
inline
Roots
(
const
Roots<M>
& xs,
const
Roots<N - M>
& ys);
103
104
105
// Member Functions
106
107
//- Set the type of the i-th root
108
inline
void
type
(
const
direction
i,
const
rootType
t);
109
110
//- Return the type of the i-th root
111
inline
rootType
type
(
const
direction
i)
const
;
112
};
113
114
115
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
116
117
}
// End namespace Foam
118
119
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
120
121
#include "
RootsI.H
"
122
123
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
124
125
#endif
126
127
// ************************************************************************* //
RootsI.H
Foam::label
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition:
label.H:59
Foam::rootType::nan
Foam::rootType::complex
Foam::direction
uint8_t direction
Definition:
direction.H:45
VectorSpace.H
Foam::VectorSpace
Templated vector space.
Definition:
VectorSpace.H:53
Foam::Roots
Templated storage for the roots of polynomial equations, plus flags to indicate the nature of the roo...
Definition:
Roots.H:64
x
x
Definition:
LISASMDCalcMethod2.H:52
Foam::rootType::negInf
Foam::rootType::posInf
Foam::type
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
Definition:
POSIX.C:488
Foam::rootType::real
Foam
Namespace for OpenFOAM.
Definition:
atmBoundaryLayer.H:213
Foam::rootType
rootType
Types of root.
Definition:
Roots.H:49
src
OpenFOAM
primitives
polynomialEqns
Roots.H
Generated by
1.8.13