64 template<
typename Derived,
unsigned int TOrder,
unsigned int TSubstepCount>
82 static constexpr
unsigned int Order() {
return TOrder;}
83 static constexpr
unsigned int SubstepCount() {
return TSubstepCount; }
117 std::tuple<RowType::const_iterator, RowType::const_iterator>
GetMatrixRow(
const unsigned int SubStepIndex)
const
124 KRATOS_DEBUG_ERROR_IF(SubStepIndex == 0) <<
"Provided substep is 0. This must be greater than or equal to 1." << std::endl;
125 return mA[SubStepIndex - 1].begin();
130 KRATOS_DEBUG_ERROR_IF(SubStepIndex == 0) <<
"Provided substep is 0. This must be greater than or equal to 1." << std::endl;
131 return mA[SubStepIndex - 1].begin() + SubStepIndex;
141 KRATOS_DEBUG_ERROR_IF(SubStepIndex == 0) <<
"Provided substep is 0. This must be greater than or equal to 1." << std::endl;
142 return mC[SubStepIndex - 1];
151 return Derived::Name();
154 virtual std::string
Info()
const = 0;
258 return "butcher_tableau_forward_euler";
261 std::string
Info()
const override
263 return "ButcherTableauForwardEuler";
292 return "butcher_tableau_midpoint_method";
295 std::string
Info()
const override
297 return "ButcherTableauMidPointMethod";
338 return "butcher_tableau_RK3TVD";
341 std::string
Info()
const override
343 return "ButcherTableauRK3TVD";
379 return "butcher_tableau_RK4";
382 std::string
Info()
const override
384 return "ButcherTableauRK4";
Definition: butcher_tableau.h:237
static const BaseType::MatrixType GenerateRKMatrix()
Definition: butcher_tableau.h:241
ButcherTableau< ButcherTableauForwardEuler, 1, 1 > BaseType
Definition: butcher_tableau.h:239
static const BaseType::VectorType GenerateThetasVector()
Definition: butcher_tableau.h:251
static const BaseType::VectorType GenerateWeights()
Definition: butcher_tableau.h:246
static std::string Name()
Definition: butcher_tableau.h:256
std::string Info() const override
Definition: butcher_tableau.h:261
Butcher tableau for Runge-Kutta method.
Definition: butcher_tableau.h:66
virtual std::string Info() const =0
std::vector< double > VectorType
Definition: butcher_tableau.h:72
constexpr double GetIntegrationTheta(const unsigned int SubStepIndex) const
Definition: butcher_tableau.h:139
const VectorType mC
Definition: butcher_tableau.h:167
RowType::const_iterator GetMatrixRowEnd(const unsigned int SubStepIndex) const
Definition: butcher_tableau.h:128
virtual ~ButcherTableau()=default
Destructor.
std::vector< RowType > MatrixType
Definition: butcher_tableau.h:80
std::tuple< RowType::const_iterator, RowType::const_iterator > GetMatrixRow(const unsigned int SubStepIndex) const
Definition: butcher_tableau.h:117
const VectorType mB
Definition: butcher_tableau.h:166
std::vector< double > RowType
Definition: butcher_tableau.h:79
static constexpr unsigned int SubstepCount()
Definition: butcher_tableau.h:83
static constexpr unsigned int Order()
Definition: butcher_tableau.h:82
constexpr const VectorType & GetWeights() const
Definition: butcher_tableau.h:134
RowType::const_iterator GetMatrixRowBegin(const unsigned int SubStepIndex) const
Definition: butcher_tableau.h:122
static std::string Name()
Definition: butcher_tableau.h:149
const MatrixType mA
Definition: butcher_tableau.h:165
Definition: butcher_tableau.h:269
static const BaseType::VectorType GenerateThetasVector()
Definition: butcher_tableau.h:285
static const BaseType::VectorType GenerateWeights()
Definition: butcher_tableau.h:280
std::string Info() const override
Definition: butcher_tableau.h:295
ButcherTableau< ButcherTableauMidPointMethod, 2, 2 > BaseType
Definition: butcher_tableau.h:271
static const BaseType::MatrixType GenerateRKMatrix()
Definition: butcher_tableau.h:273
static std::string Name()
Definition: butcher_tableau.h:290
Explicit total variation diminishing 3rd order Runge-Kutta.
Definition: butcher_tableau.h:308
static const BaseType::VectorType GenerateThetasVector()
Definition: butcher_tableau.h:329
std::string Info() const override
Definition: butcher_tableau.h:341
static std::string Name()
Definition: butcher_tableau.h:336
ButcherTableau< ButcherTableauRK3TVD, 3, 3 > BaseType
Definition: butcher_tableau.h:310
static const BaseType::VectorType GenerateWeights()
Definition: butcher_tableau.h:322
static const BaseType::MatrixType GenerateRKMatrix()
Definition: butcher_tableau.h:312
Definition: butcher_tableau.h:349
static const BaseType::MatrixType GenerateRKMatrix()
Definition: butcher_tableau.h:352
static const BaseType::VectorType GenerateWeights()
Definition: butcher_tableau.h:361
ButcherTableau< ButcherTableauRK4, 4, 4 > BaseType
Definition: butcher_tableau.h:351
std::string Info() const override
Definition: butcher_tableau.h:382
static const BaseType::VectorType GenerateThetasVector()
Definition: butcher_tableau.h:369
static std::string Name()
Definition: butcher_tableau.h:377
#define KRATOS_DEBUG_ERROR_IF(conditional)
Definition: exception.h:171
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
A
Definition: sensitivityMatrix.py:70