Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
df2063c5
Commit
df2063c5
authored
Nov 11, 2013
by
Henry
Browse files
ODE solvers: rationalised naming of the embedded order solvers
parent
037950ca
Changes
11
Hide whitespace changes
Inline
Side-by-side
src/ODE/Make/files
View file @
df2063c5
...
...
@@ -8,11 +8,11 @@ ODESolvers/Trapezoid/Trapezoid.C
ODESolvers/RKF45/RKF45.C
ODESolvers/RKCK45/RKCK45.C
ODESolvers/RKDP45/RKDP45.C
ODESolvers/Rosenbrock
2
1/Rosenbrock
2
1.C
ODESolvers/Rosenbrock
3
2/Rosenbrock
3
2.C
ODESolvers/Rosenbrock
4
3/Rosenbrock
4
3.C
ODESolvers/rodas
3
2/rodas
3
2.C
ODESolvers/rodas
4
3/rodas
4
3.C
ODESolvers/Rosenbrock1
2
/Rosenbrock1
2
.C
ODESolvers/Rosenbrock2
3
/Rosenbrock2
3
.C
ODESolvers/Rosenbrock3
4
/Rosenbrock3
4
.C
ODESolvers/rodas2
3
/rodas2
3
.C
ODESolvers/rodas3
4
/rodas3
4
.C
ODESolvers/SIBS/SIBS.C
ODESolvers/SIBS/SIMPR.C
ODESolvers/SIBS/polyExtrapolate.C
...
...
src/ODE/ODESolvers/Rosenbrock
2
1/Rosenbrock
2
1.C
→
src/ODE/ODESolvers/Rosenbrock1
2
/Rosenbrock1
2
.C
View file @
df2063c5
...
...
@@ -23,33 +23,33 @@ License
\*---------------------------------------------------------------------------*/
#include
"Rosenbrock
2
1.H"
#include
"Rosenbrock1
2
.H"
#include
"addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace
Foam
{
defineTypeNameAndDebug
(
Rosenbrock
2
1
,
0
);
addToRunTimeSelectionTable
(
ODESolver
,
Rosenbrock
2
1
,
dictionary
);
defineTypeNameAndDebug
(
Rosenbrock1
2
,
0
);
addToRunTimeSelectionTable
(
ODESolver
,
Rosenbrock1
2
,
dictionary
);
const
scalar
Rosenbrock
2
1
::
gamma
=
1
+
1
.
0
/
std
::
sqrt
(
2
.
0
),
Rosenbrock
2
1
::
a21
=
1
.
0
/
gamma
,
Rosenbrock
2
1
::
c2
=
1
.
0
,
Rosenbrock
2
1
::
c21
=
-
2
.
0
/
gamma
,
Rosenbrock
2
1
::
b1
=
(
3
.
0
/
2
.
0
)
/
gamma
,
Rosenbrock
2
1
::
b2
=
(
1
.
0
/
2
.
0
)
/
gamma
,
Rosenbrock
2
1
::
e1
=
b1
-
1
.
0
/
gamma
,
Rosenbrock
2
1
::
e2
=
b2
,
Rosenbrock
2
1
::
d1
=
gamma
,
Rosenbrock
2
1
::
d2
=
-
gamma
;
Rosenbrock1
2
::
gamma
=
1
+
1
.
0
/
std
::
sqrt
(
2
.
0
),
Rosenbrock1
2
::
a21
=
1
.
0
/
gamma
,
Rosenbrock1
2
::
c2
=
1
.
0
,
Rosenbrock1
2
::
c21
=
-
2
.
0
/
gamma
,
Rosenbrock1
2
::
b1
=
(
3
.
0
/
2
.
0
)
/
gamma
,
Rosenbrock1
2
::
b2
=
(
1
.
0
/
2
.
0
)
/
gamma
,
Rosenbrock1
2
::
e1
=
b1
-
1
.
0
/
gamma
,
Rosenbrock1
2
::
e2
=
b2
,
Rosenbrock1
2
::
d1
=
gamma
,
Rosenbrock1
2
::
d2
=
-
gamma
;
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam
::
Rosenbrock
2
1
::
Rosenbrock
2
1
(
const
ODESystem
&
ode
,
const
dictionary
&
dict
)
Foam
::
Rosenbrock1
2
::
Rosenbrock1
2
(
const
ODESystem
&
ode
,
const
dictionary
&
dict
)
:
ODESolver
(
ode
,
dict
),
adaptiveSolver
(
ode
,
dict
),
...
...
@@ -66,7 +66,7 @@ Foam::Rosenbrock21::Rosenbrock21(const ODESystem& ode, const dictionary& dict)
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam
::
scalar
Foam
::
Rosenbrock
2
1
::
solve
Foam
::
scalar
Foam
::
Rosenbrock1
2
::
solve
(
const
scalar
x0
,
const
scalarField
&
y0
,
...
...
@@ -123,7 +123,7 @@ Foam::scalar Foam::Rosenbrock21::solve
}
void
Foam
::
Rosenbrock
2
1
::
solve
void
Foam
::
Rosenbrock1
2
::
solve
(
scalar
&
x
,
scalarField
&
y
,
...
...
src/ODE/ODESolvers/Rosenbrock
2
1/Rosenbrock
2
1.H
→
src/ODE/ODESolvers/Rosenbrock1
2
/Rosenbrock1
2
.H
View file @
df2063c5
...
...
@@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::Rosenbrock
2
1
Foam::Rosenbrock1
2
Description
L-stable embedded Rosenbrock ODE solver of order (1)2.
...
...
@@ -39,12 +39,12 @@ Description
\endverbatim
SourceFiles
Rosenbrock
2
1.C
Rosenbrock1
2
.C
\*---------------------------------------------------------------------------*/
#ifndef Rosenbrock
2
1_H
#define Rosenbrock
2
1_H
#ifndef Rosenbrock1
2
_H
#define Rosenbrock1
2
_H
#include
"ODESolver.H"
#include
"adaptiveSolver.H"
...
...
@@ -55,10 +55,10 @@ namespace Foam
{
/*---------------------------------------------------------------------------*\
Class Rosenbrock
2
1 Declaration
Class Rosenbrock1
2
Declaration
\*---------------------------------------------------------------------------*/
class
Rosenbrock
2
1
class
Rosenbrock1
2
:
public
ODESolver
,
public
adaptiveSolver
...
...
@@ -87,13 +87,13 @@ class Rosenbrock21
public:
//- Runtime type information
TypeName
(
"Rosenbrock
2
1"
);
TypeName
(
"Rosenbrock1
2
"
);
// Constructors
//- Construct from ODE
Rosenbrock
2
1
(
const
ODESystem
&
ode
,
const
dictionary
&
dict
);
Rosenbrock1
2
(
const
ODESystem
&
ode
,
const
dictionary
&
dict
);
// Member Functions
...
...
src/ODE/ODESolvers/Rosenbrock
3
2/Rosenbrock
3
2.C
→
src/ODE/ODESolvers/Rosenbrock2
3
/Rosenbrock2
3
.C
View file @
df2063c5
...
...
@@ -23,45 +23,45 @@ License
\*---------------------------------------------------------------------------*/
#include
"Rosenbrock
3
2.H"
#include
"Rosenbrock2
3
.H"
#include
"addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace
Foam
{
defineTypeNameAndDebug
(
Rosenbrock
3
2
,
0
);
addToRunTimeSelectionTable
(
ODESolver
,
Rosenbrock
3
2
,
dictionary
);
defineTypeNameAndDebug
(
Rosenbrock2
3
,
0
);
addToRunTimeSelectionTable
(
ODESolver
,
Rosenbrock2
3
,
dictionary
);
const
scalar
Rosenbrock
3
2
::
a21
=
1
,
Rosenbrock
3
2
::
a31
=
1
,
Rosenbrock
3
2
::
a32
=
0
,
Rosenbrock2
3
::
a21
=
1
,
Rosenbrock2
3
::
a31
=
1
,
Rosenbrock2
3
::
a32
=
0
,
Rosenbrock
3
2
::
c21
=
-
1
.
01561710
83877702091975600115545
,
Rosenbrock
3
2
::
c31
=
4
.
075
9956452537699824805835358067
,
Rosenbrock
3
2
::
c32
=
9
.
2076794298330791242156818474003
,
Rosenbrock2
3
::
c21
=
-
1
.
01561710
83877702091975600115545
,
Rosenbrock2
3
::
c31
=
4
.
075
9956452537699824805835358067
,
Rosenbrock2
3
::
c32
=
9
.
2076794298330791242156818474003
,
Rosenbrock
3
2
::
b1
=
1
,
Rosenbrock
3
2
::
b2
=
6
.
1697947043828245592553615689730
,
Rosenbrock
3
2
::
b3
=
-
0
.
4277225654321857332623837380651
,
Rosenbrock2
3
::
b1
=
1
,
Rosenbrock2
3
::
b2
=
6
.
1697947043828245592553615689730
,
Rosenbrock2
3
::
b3
=
-
0
.
4277225654321857332623837380651
,
Rosenbrock
3
2
::
e1
=
0
.
5
,
Rosenbrock
3
2
::
e2
=
-
2
.
9079558716805469821718236208017
,
Rosenbrock
3
2
::
e3
=
0
.
2235406989781156962736090927619
,
Rosenbrock2
3
::
e1
=
0
.
5
,
Rosenbrock2
3
::
e2
=
-
2
.
9079558716805469821718236208017
,
Rosenbrock2
3
::
e3
=
0
.
2235406989781156962736090927619
,
Rosenbrock
3
2
::
gamma
=
0
.
43586652150845899941601945119356
,
Rosenbrock
3
2
::
c2
=
0
.
43586652150845899941601945119356
,
Rosenbrock2
3
::
gamma
=
0
.
43586652150845899941601945119356
,
Rosenbrock2
3
::
c2
=
0
.
43586652150845899941601945119356
,
Rosenbrock
3
2
::
d1
=
0
.
43586652150845899941601945119356
,
Rosenbrock
3
2
::
d2
=
0
.
24291996454816804366592249683314
,
Rosenbrock
3
2
::
d3
=
2
.
1851380027664058511513169485832
;
Rosenbrock2
3
::
d1
=
0
.
43586652150845899941601945119356
,
Rosenbrock2
3
::
d2
=
0
.
24291996454816804366592249683314
,
Rosenbrock2
3
::
d3
=
2
.
1851380027664058511513169485832
;
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam
::
Rosenbrock
3
2
::
Rosenbrock
3
2
(
const
ODESystem
&
ode
,
const
dictionary
&
dict
)
Foam
::
Rosenbrock2
3
::
Rosenbrock2
3
(
const
ODESystem
&
ode
,
const
dictionary
&
dict
)
:
ODESolver
(
ode
,
dict
),
adaptiveSolver
(
ode
,
dict
),
...
...
@@ -79,7 +79,7 @@ Foam::Rosenbrock32::Rosenbrock32(const ODESystem& ode, const dictionary& dict)
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam
::
scalar
Foam
::
Rosenbrock
3
2
::
solve
Foam
::
scalar
Foam
::
Rosenbrock2
3
::
solve
(
const
scalar
x0
,
const
scalarField
&
y0
,
...
...
@@ -145,7 +145,7 @@ Foam::scalar Foam::Rosenbrock32::solve
}
void
Foam
::
Rosenbrock
3
2
::
solve
void
Foam
::
Rosenbrock2
3
::
solve
(
scalar
&
x
,
scalarField
&
y
,
...
...
src/ODE/ODESolvers/Rosenbrock
3
2/Rosenbrock
3
2.H
→
src/ODE/ODESolvers/Rosenbrock2
3
/Rosenbrock2
3
.H
View file @
df2063c5
...
...
@@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::Rosenbrock
3
2
Foam::Rosenbrock2
3
Description
L-stable embedded Rosenbrock ODE solver of order (3)4.
...
...
@@ -42,12 +42,12 @@ Description
\endverbatim
SourceFiles
Rosenbrock
3
2.C
Rosenbrock2
3
.C
\*---------------------------------------------------------------------------*/
#ifndef Rosenbrock
3
2_H
#define Rosenbrock
3
2_H
#ifndef Rosenbrock2
3
_H
#define Rosenbrock2
3
_H
#include
"ODESolver.H"
#include
"adaptiveSolver.H"
...
...
@@ -58,10 +58,10 @@ namespace Foam
{
/*---------------------------------------------------------------------------*\
Class Rosenbrock
3
2 Declaration
Class Rosenbrock2
3
Declaration
\*---------------------------------------------------------------------------*/
class
Rosenbrock
3
2
class
Rosenbrock2
3
:
public
ODESolver
,
public
adaptiveSolver
...
...
@@ -91,13 +91,13 @@ class Rosenbrock32
public:
//- Runtime type information
TypeName
(
"Rosenbrock
3
2"
);
TypeName
(
"Rosenbrock2
3
"
);
// Constructors
//- Construct from ODE
Rosenbrock
3
2
(
const
ODESystem
&
ode
,
const
dictionary
&
dict
);
Rosenbrock2
3
(
const
ODESystem
&
ode
,
const
dictionary
&
dict
);
// Member Functions
...
...
src/ODE/ODESolvers/Rosenbrock
4
3/Rosenbrock
4
3.C
→
src/ODE/ODESolvers/Rosenbrock3
4
/Rosenbrock3
4
.C
View file @
df2063c5
...
...
@@ -23,89 +23,89 @@ License
\*---------------------------------------------------------------------------*/
#include
"Rosenbrock
4
3.H"
#include
"Rosenbrock3
4
.H"
#include
"addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace
Foam
{
defineTypeNameAndDebug
(
Rosenbrock
4
3
,
0
);
addToRunTimeSelectionTable
(
ODESolver
,
Rosenbrock
4
3
,
dictionary
);
defineTypeNameAndDebug
(
Rosenbrock3
4
,
0
);
addToRunTimeSelectionTable
(
ODESolver
,
Rosenbrock3
4
,
dictionary
);
const
scalar
// L-Stable constants from Hairer et. al.
Rosenbrock43
::
a21
=
2
,
Rosenbrock43
::
a31
=
1
.
867943637803922
,
Rosenbrock43
::
a32
=
0
.
2344449711399156
,
Rosenbrock43
::
c21
=
-
7
.
137615036412310
,
Rosenbrock43
::
c31
=
2
.
580708087951457
,
Rosenbrock43
::
c32
=
0
.
6515950076447975
,
Rosenbrock43
::
c41
=
-
2
.
137148994382534
,
Rosenbrock43
::
c42
=
-
0
.
3214669691237626
,
Rosenbrock43
::
c43
=
-
0
.
6949742501781779
,
Rosenbrock43
::
b1
=
2
.
255570073418735
,
Rosenbrock43
::
b2
=
0
.
2870493262186792
,
Rosenbrock43
::
b3
=
0
.
435317943184018
,
Rosenbrock43
::
b4
=
1
.
093502252409163
,
Rosenbrock43
::
e1
=
-
0
.
2815431932141155
,
Rosenbrock43
::
e2
=
-
0
.
072761
9912493892
,
Rosenbrock43
::
e3
=
-
0
.
1082196201495311
,
Rosenbrock43
::
e4
=
-
1
.
093502252409163
,
Rosenbrock43
::
gamma
=
0
.
57282
,
Rosenbrock43
::
c2
=
1
.
14564
,
Rosenbrock43
::
c3
=
0
.
65521686381559
,
Rosenbrock43
::
d1
=
0
.
57282
,
Rosenbrock43
::
d2
=
-
1
.
769193891319233
,
Rosenbrock43
::
d3
=
0
.
7592633437920482
,
Rosenbrock43
::
d4
=
-
0
.
1049021087100450
;
// Constants by Shampine
// More accurate than the L-Stable coefficients for small step-size
// but less stable for large step-size
Rosenbrock34
::
a21
=
2
,
Rosenbrock34
::
a31
=
48
.
0
/
25
.
0
,
Rosenbrock34
::
a32
=
6
.
0
/
25
.
0
,
Rosenbrock34
::
c21
=
-
8
,
Rosenbrock34
::
c31
=
372
.
0
/
25
.
0
,
Rosenbrock34
::
c32
=
12
.
0
/
5
.
0
,
Rosenbrock34
::
c41
=
-
112
.
0
/
125
.
0
,
Rosenbrock34
::
c42
=
-
54
.
0
/
125
.
0
,
Rosenbrock34
::
c43
=
-
2
.
0
/
5
.
0
,
Rosenbrock34
::
b1
=
19
.
0
/
9
.
0
,
Rosenbrock34
::
b2
=
1
.
0
/
2
.
0
,
Rosenbrock34
::
b3
=
25
.
0
/
108
.
0
,
Rosenbrock34
::
b4
=
125
.
0
/
108
.
0
,
Rosenbrock34
::
e1
=
34
.
0
/
108
.
0
,
Rosenbrock34
::
e2
=
7
.
0
/
36
.
0
,
Rosenbrock34
::
e3
=
0
,
Rosenbrock34
::
e4
=
125
.
0
/
108
.
0
,
Rosenbrock34
::
gamma
=
1
.
0
/
2
.
0
,
Rosenbrock34
::
c2
=
1
,
Rosenbrock34
::
c3
=
3
.
0
/
5
.
0
,
Rosenbrock34
::
d1
=
1
.
0
/
2
.
0
,
Rosenbrock34
::
d2
=
-
3
.
0
/
2
.
0
,
Rosenbrock34
::
d3
=
605
.
0
/
250
.
0
,
Rosenbrock34
::
d4
=
29
.
0
/
250
.
0
;
/*
Rosenbrock43::a21 = 2,
Rosenbrock
4
3::a
3
1 =
48.0/25.0
,
Rosenbrock
4
3::a3
2
=
6.0/25.0
,
Rosenbrock43::c21 = -8,
Rosenbrock
4
3::c
3
1 =
372.0/25.
0,
Rosenbrock
4
3::c3
2
=
1
2.
0/5.0
,
Rosenbrock
4
3::c41 = -
112.0/125.0
,
Rosenbrock
4
3::c42 = -
54.0/125.0
,
Rosenbrock
4
3::c43 = -
2.0/5.0
,
Rosenbrock
4
3::b1 =
19.0/9.0
,
Rosenbrock
4
3::b2 =
1.0/2.0
,
Rosenbrock
4
3::b3 =
25.0/108.0
,
Rosenbrock
4
3::b4 = 1
25.0/108.0
,
Rosenbrock
4
3::e1 =
34.0/108.0
,
Rosenbrock
4
3::e2 =
7.0/36.0
,
Rosenbrock
4
3::e3 =
0
,
Rosenbrock
4
3::e4 =
125.0/108.0
,
Rosenbrock
4
3::gamma =
1.0/2.0
,
Rosenbrock
4
3::c2 = 1,
Rosenbrock
4
3::c3
=
3.0/5.0
,
Rosenbrock
4
3::d1 =
1.0/2.0
,
Rosenbrock
4
3::d2 = -
3.0/2.0
,
Rosenbrock
4
3::d3 =
605.0/250.0
,
Rosenbrock
4
3::d4 =
29.0/250.
0;
// L-Stable constants from Hairer et. al.
Rosenbrock3
4
::a
2
1 =
2
,
Rosenbrock3
4
::a3
1
=
1.867943637803922
,
Rosenbrock34::a32 = 0.2344449711399156,
Rosenbrock3
4
::c
2
1 =
-7.13761503641231
0,
Rosenbrock3
4
::c3
1
= 2.
580708087951457
,
Rosenbrock34::c32 = 0.6515950076447975,
Rosenbrock3
4
::c41 = -
2.137148994382534
,
Rosenbrock3
4
::c42 = -
0.3214669691237626
,
Rosenbrock3
4
::c43 = -
0.6949742501781779
,
Rosenbrock3
4
::b1 =
2.255570073418735
,
Rosenbrock3
4
::b2 =
0.2870493262186792
,
Rosenbrock3
4
::b3 =
0.435317943184018
,
Rosenbrock3
4
::b4 = 1
.093502252409163
,
Rosenbrock3
4
::e1 =
-0.2815431932141155
,
Rosenbrock3
4
::e2 =
-0.0727619912493892
,
Rosenbrock3
4
::e3 =
-0.1082196201495311
,
Rosenbrock3
4
::e4 =
-1.093502252409163
,
Rosenbrock3
4
::gamma =
0.57282
,
Rosenbrock3
4
::c2 = 1
.14564
,
Rosenbrock3
4
::c3 =
0.65521686381559
,
Rosenbrock3
4
::d1 =
0.57282
,
Rosenbrock3
4
::d2 = -
1.769193891319233
,
Rosenbrock3
4
::d3 =
0.7592633437920482
,
Rosenbrock3
4
::d4 =
-0.104902108710045
0;
*/
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam
::
Rosenbrock
4
3
::
Rosenbrock
4
3
(
const
ODESystem
&
ode
,
const
dictionary
&
dict
)
Foam
::
Rosenbrock3
4
::
Rosenbrock3
4
(
const
ODESystem
&
ode
,
const
dictionary
&
dict
)
:
ODESolver
(
ode
,
dict
),
adaptiveSolver
(
ode
,
dict
),
...
...
@@ -124,7 +124,7 @@ Foam::Rosenbrock43::Rosenbrock43(const ODESystem& ode, const dictionary& dict)
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam
::
scalar
Foam
::
Rosenbrock
4
3
::
solve
Foam
::
scalar
Foam
::
Rosenbrock3
4
::
solve
(
const
scalar
x0
,
const
scalarField
&
y0
,
...
...
@@ -205,7 +205,7 @@ Foam::scalar Foam::Rosenbrock43::solve
}
void
Foam
::
Rosenbrock
4
3
::
solve
void
Foam
::
Rosenbrock3
4
::
solve
(
scalar
&
x
,
scalarField
&
y
,
...
...
src/ODE/ODESolvers/Rosenbrock
4
3/Rosenbrock
4
3.H
→
src/ODE/ODESolvers/Rosenbrock3
4
/Rosenbrock3
4
.H
View file @
df2063c5
...
...
@@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::Rosenbrock
4
3
Foam::Rosenbrock3
4
Description
L-stable embedded Rosenbrock ODE solver of order (3)4.
...
...
@@ -45,15 +45,15 @@ Description
with which the scheme is more accurate than with the L-Stable coefficients
for small step-size but less stable for large step-size.
The L-Stable scheme constants are provided commented-out in Rosenbrock
4
3.C
The L-Stable scheme constants are provided commented-out in Rosenbrock3
4
.C
SourceFiles
Rosenbrock
4
3.C
Rosenbrock3
4
.C
\*---------------------------------------------------------------------------*/
#ifndef Rosenbrock
4
3_H
#define Rosenbrock
4
3_H
#ifndef Rosenbrock3
4
_H
#define Rosenbrock3
4
_H
#include
"ODESolver.H"
#include
"adaptiveSolver.H"
...
...
@@ -64,10 +64,10 @@ namespace Foam
{
/*---------------------------------------------------------------------------*\
Class Rosenbrock
4
3 Declaration
Class Rosenbrock3
4
Declaration
\*---------------------------------------------------------------------------*/
class
Rosenbrock
4
3
class
Rosenbrock3
4
:
public
ODESolver
,
public
adaptiveSolver
...
...
@@ -99,13 +99,13 @@ class Rosenbrock43
public:
//- Runtime type information
TypeName
(
"Rosenbrock
4
3"
);
TypeName
(
"Rosenbrock3
4
"
);
// Constructors
//- Construct from ODE
Rosenbrock
4
3
(
const
ODESystem
&
ode
,
const
dictionary
&
dict
);
Rosenbrock3
4
(
const
ODESystem
&
ode
,
const
dictionary
&
dict
);
// Member Functions
...
...
src/ODE/ODESolvers/rodas
3
2/rodas
3
2.C
→
src/ODE/ODESolvers/rodas2
3
/rodas2
3
.C
View file @
df2063c5
...
...
@@ -23,35 +23,35 @@ License
\*---------------------------------------------------------------------------*/
#include
"rodas
3
2.H"
#include
"rodas2
3
.H"
#include
"addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace
Foam
{
defineTypeNameAndDebug
(
rodas
3
2
,
0
);
addToRunTimeSelectionTable
(
ODESolver
,
rodas
3
2
,
dictionary
);
defineTypeNameAndDebug
(
rodas2
3
,
0
);
addToRunTimeSelectionTable
(
ODESolver
,
rodas2
3
,
dictionary
);
const
scalar
rodas
3
2
::
c3
=
1
,
rodas
3
2
::
d1
=
1
.
0
/
2
.
0
,
rodas
3
2
::
d2
=
3
.
0
/
2
.
0
,
rodas
3
2
::
a31
=
2
,
rodas
3
2
::
a41
=
2
,
rodas
3
2
::
c21
=
4
,
rodas
3
2
::
c31
=
1
,
rodas
3
2
::
c32
=
-
1
,
rodas
3
2
::
c41
=
1
,
rodas
3
2
::
c42
=
-
1
,
rodas
3
2
::
c43
=
-
8
.
0
/
3
.
0
,
rodas
3
2
::
gamma
=
1
.
0
/
2
.
0
;
rodas2
3
::
c3
=
1
,
rodas2
3
::
d1
=
1
.
0
/
2
.
0
,
rodas2
3
::
d2
=
3
.
0
/
2
.
0
,
rodas2
3
::
a31
=
2
,
rodas2
3
::
a41
=
2
,
rodas2
3
::
c21
=
4
,
rodas2
3
::
c31
=
1
,
rodas2
3
::
c32
=
-
1
,
rodas2
3
::
c41
=
1
,
rodas2
3
::
c42
=
-
1
,
rodas2
3
::
c43
=
-
8
.
0
/
3
.
0
,
rodas2
3
::
gamma
=
1
.
0
/
2
.
0
;
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam
::
rodas
3
2
::
rodas
3
2
(
const
ODESystem
&
ode
,
const
dictionary
&
dict
)
Foam
::
rodas2
3
::
rodas2
3
(
const
ODESystem
&
ode
,
const
dictionary
&
dict
)
:
ODESolver
(
ode
,
dict
),
adaptiveSolver
(
ode
,
dict
),
...
...
@@ -70,7 +70,7 @@ Foam::rodas32::rodas32(const ODESystem& ode, const dictionary& dict)
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam
::
scalar
Foam
::
rodas
3
2
::
solve
Foam
::
scalar
Foam
::
rodas2
3
::
solve
(
const
scalar
x0
,
const
scalarField
&
y0
,
...
...
@@ -150,7 +150,7 @@ Foam::scalar Foam::rodas32::solve
}
void
Foam
::
rodas
3
2
::
solve
void
Foam
::
rodas2
3
::
solve
(
scalar
&
x
,
scalarField
&
y
,
...
...
src/ODE/ODESolvers/rodas
3
2/rodas
3
2.H
→
src/ODE/ODESolvers/rodas2
3
/rodas2
3
.H
View file @
df2063c5
...
...
@@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::rodas
3
2
Foam::rodas2
3
Description
L-stable, stiffly-accurate embedded Rosenbrock ODE solver of order (2)3.
...
...
@@ -42,12 +42,12 @@ Description
\endverbatim
SourceFiles
rodas
3
2.C
rodas2
3
.C
\*---------------------------------------------------------------------------*/
#ifndef rodas
3
2_H
#define rodas
3
2_H
#ifndef rodas2
3
_H
#define rodas2
3
_H
#include
"ODESolver.H"
#include
"adaptiveSolver.H"
...
...
@@ -58,10 +58,10 @@ namespace Foam
{
/*---------------------------------------------------------------------------*\
Class rodas
3
2 Declaration
Class rodas2
3
Declaration
\*---------------------------------------------------------------------------*/
class
rodas
3
2
class
rodas2
3
:
public
ODESolver
,
public
adaptiveSolver
...
...
@@ -91,13 +91,13 @@ class rodas32