Nektar++
Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
z
Variables
_
a
b
c
d
e
f
g
i
k
l
m
n
o
p
r
s
t
u
v
w
x
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Enumerations
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
Enumerator
e
g
m
r
s
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
i
m
n
o
p
r
s
t
v
Enumerations
Enumerator
e
s
t
Properties
Related Functions
a
c
d
i
k
l
m
n
o
t
Files
File List
File Members
All
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
v
w
Functions
a
b
c
d
e
f
g
l
m
n
o
p
r
s
t
Variables
Typedefs
Enumerations
Enumerator
Macros
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
v
w
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
library
LibUtilities
TimeIntegration
SchemeInitializer.cpp
Go to the documentation of this file.
1
///////////////////////////////////////////////////////////////////////////////
2
//
3
// File SchemeInitializor.cpp
4
//
5
// For more information, please see: http://www.nektar.info
6
//
7
// The MIT License
8
//
9
// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
10
// Department of Aeronautics, Imperial College London (UK), and Scientific
11
// Computing and Imaging Institute, University of Utah (USA).
12
//
13
// License for the specific language governing rights and limitations under
14
// Permission is hereby granted, free of charge, to any person obtaining a
15
// copy of this software and associated documentation files (the "Software"),
16
// to deal in the Software without restriction, including without limitation
17
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
18
// and/or sell copies of the Software, and to permit persons to whom the
19
// Software is furnished to do so, subject to the following conditions:
20
//
21
// The above copyright notice and this permission notice shall be included
22
// in all copies or substantial portions of the Software.
23
//
24
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
27
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
30
// DEALINGS IN THE SOFTWARE.
31
//
32
// Description: This file isused to add each of the Time Integration Schemes
33
// to the NekFactory.
34
//
35
///////////////////////////////////////////////////////////////////////////////
36
37
#include <
LibUtilities/TimeIntegration/AdamsBashforthTimeIntegrationSchemes.h
>
38
#include <
LibUtilities/TimeIntegration/AdamsMoultonTimeIntegrationSchemes.h
>
39
#include <
LibUtilities/TimeIntegration/BDFImplicitTimeIntegrationSchemes.h
>
40
#include <
LibUtilities/TimeIntegration/EulerTimeIntegrationSchemes.h
>
41
42
#include <
LibUtilities/TimeIntegration/CNABTimeIntegrationScheme.h
>
43
#include <
LibUtilities/TimeIntegration/DIRKTimeIntegrationSchemes.h
>
44
#include <
LibUtilities/TimeIntegration/IMEXGearTimeIntegrationScheme.h
>
45
#include <
LibUtilities/TimeIntegration/IMEXTimeIntegrationSchemes.h
>
46
#include <
LibUtilities/TimeIntegration/IMEXdirkTimeIntegrationSchemes.h
>
47
#include <
LibUtilities/TimeIntegration/MCNABTimeIntegrationScheme.h
>
48
49
#include <
LibUtilities/TimeIntegration/RungeKuttaTimeIntegrationSchemes.h
>
50
51
#include <
LibUtilities/TimeIntegration/EulerExponentialTimeIntegrationSchemes.h
>
52
53
#include <
LibUtilities/TimeIntegration/TimeIntegrationSchemeFIT.h
>
54
55
namespace
Nektar
56
{
57
namespace
LibUtilities
58
{
59
60
// Register all the schemes with the Time Integration Scheme Facatory...
61
//
62
#define REGISTER(scheme) \
63
std::string scheme##TimeIntegrationScheme::className = \
64
GetTimeIntegrationSchemeFactory().RegisterCreatorFunction( \
65
#scheme, scheme##TimeIntegrationScheme::create)
66
67
// AdamsBashforthTimeIntegrationSchemes.h
68
REGISTER
(AdamsBashforth);
69
REGISTER
(AdamsBashforthOrder1);
70
REGISTER
(AdamsBashforthOrder2);
71
REGISTER
(AdamsBashforthOrder3);
72
REGISTER
(AdamsBashforthOrder4);
73
74
// AdamsMoultonTimeIntegrationSchemes.h
75
REGISTER
(AdamsMoulton);
76
REGISTER
(AdamsMoultonOrder1);
77
REGISTER
(AdamsMoultonOrder2);
78
REGISTER
(AdamsMoultonOrder3);
79
REGISTER
(AdamsMoultonOrder4);
80
81
// BDFImplicitTimeIntegrationSchemes.h
82
REGISTER
(BDFImplicit);
83
REGISTER
(BDFImplicitOrder1);
84
REGISTER
(BDFImplicitOrder2);
85
86
// EulerTimeIntegrationSchemes.h
87
REGISTER
(Euler);
88
REGISTER
(BackwardEuler);
89
REGISTER
(ForwardEuler);
90
91
// FITTimeIntegrationSchemes.h
92
REGISTER
(EulerExponential);
93
94
// TimeIntegrationSchemesFIT.h
95
std::string
FractionalInTimeIntegrationScheme::className
=
96
GetTimeIntegrationSchemeFactory
().
RegisterCreatorFunction
(
97
"FractionalInTime"
,
FractionalInTimeIntegrationScheme::create
);
98
99
// CNABTimeIntegrationScheme.h
100
REGISTER
(CNAB);
101
102
// DIRKTimeIntegrationSchemes.h
103
REGISTER
(DIRK);
104
REGISTER
(DIRKOrder2);
105
REGISTER
(DIRKOrder3);
106
REGISTER
(DIRKOrder3_ES5);
107
REGISTER
(DIRKOrder4_ES6);
108
109
// IMEXdirkTimeIntegrationSchemes.h
110
REGISTER
(IMEXdirk);
111
REGISTER
(IMEXdirk_1_1_1);
112
REGISTER
(IMEXdirk_1_2_1);
113
REGISTER
(IMEXdirk_1_2_2);
114
REGISTER
(IMEXdirk_2_2_2);
115
REGISTER
(IMEXdirk_2_3_2);
116
REGISTER
(IMEXdirk_2_3_3);
117
REGISTER
(IMEXdirk_3_4_3);
118
REGISTER
(IMEXdirk_4_4_3);
119
120
// IMEXGearTimeIntegrationScheme.h
121
REGISTER
(IMEXGear);
122
123
// IMEXTimeIntegrationSchemes.h
124
REGISTER
(IMEX);
125
REGISTER
(IMEXOrder1);
126
REGISTER
(IMEXOrder2);
127
REGISTER
(IMEXOrder3);
128
REGISTER
(IMEXOrder4);
129
130
// MCNABTimeIntegrationScheme.h
131
REGISTER
(MCNAB);
132
133
// RungeKuttaTimeIntegrationSchemes.h
134
REGISTER
(RungeKutta);
135
REGISTER
(RungeKutta2);
136
REGISTER
(RungeKutta2_ImprovedEuler);
137
REGISTER
(RungeKutta2_SSP);
138
REGISTER
(RungeKutta3_SSP);
139
REGISTER
(ClassicalRungeKutta4);
140
REGISTER
(RungeKutta5);
141
142
}
// end namespace LibUtilities
143
}
// end namespace NekTar
AdamsBashforthTimeIntegrationSchemes.h
AdamsMoultonTimeIntegrationSchemes.h
BDFImplicitTimeIntegrationSchemes.h
CNABTimeIntegrationScheme.h
DIRKTimeIntegrationSchemes.h
EulerExponentialTimeIntegrationSchemes.h
EulerTimeIntegrationSchemes.h
IMEXGearTimeIntegrationScheme.h
IMEXTimeIntegrationSchemes.h
IMEXdirkTimeIntegrationSchemes.h
MCNABTimeIntegrationScheme.h
RungeKuttaTimeIntegrationSchemes.h
TimeIntegrationSchemeFIT.h
Nektar::LibUtilities::FractionalInTimeIntegrationScheme::create
static TimeIntegrationSchemeSharedPtr create(std::string variant, unsigned int order, std::vector< NekDouble > freeParams)
Creator.
Definition:
TimeIntegrationSchemeFIT.h:70
Nektar::LibUtilities::FractionalInTimeIntegrationScheme::className
static std::string className
Definition:
TimeIntegrationSchemeFIT.h:82
Nektar::LibUtilities::NekFactory::RegisterCreatorFunction
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
Definition:
NekFactory.hpp:200
Nektar::LibUtilities::REGISTER
REGISTER(AdamsBashforth)
Nektar::LibUtilities::GetTimeIntegrationSchemeFactory
TimeIntegrationSchemeFactory & GetTimeIntegrationSchemeFactory()
Definition:
TimeIntegrationScheme.cpp:46
Nektar
The above copyright notice and this permission notice shall be included.
Definition:
CoupledSolver.h:1
Generated on Wed Nov 24 2021 10:33:28 for Nektar++ by
1.9.1