dynLattice
Loading...
Searching...
No Matches
EmbeddedRKModule.h
Go to the documentation of this file.
1
12#pragma once
13
15#include <jem/base/Class.h>
16
26{
27public:
28 JEM_DECLARE_CLASS(EmbeddedRKModule, ExplicitModule);
29
32 static const char *TYPE_NAME;
34
37 explicit EmbeddedRKModule(const String &name = "EmbeddedRK");
38
44 virtual Status init(const Properties &conf,
45 const Properties &props,
46 const Properties &globdat) override;
47
51 virtual void solve(const Properties &info,
52 const Properties &globdat) override;
53
60 static Ref<Module> makeNew(const String &name,
61 const Properties &conf,
62 const Properties &props,
63 const Properties &globdat);
64
66 static void declare();
67
69 virtual ~EmbeddedRKModule();
70
71private:
75 void initODE23_();
76
80 void initODE45_();
81
87 void correctDisp_(const Vector &uncorrected, const Vector &delta);
88
92 double bernoulliCoeff_(const idx_t i);
93
99 Matrix adjoint_(const Matrix &point,
100 const Matrix &about,
101 const idx_t iterate);
102
107 void invDerivExpMap_(const Matrix &res,
108 const Matrix &point,
109 const Matrix &about);
110
111private:
114 String kind_;
115 idx_t order_;
116 idx_t butchSize_;
117 Matrix a_;
118 Vector b_;
119 bool fsal_;
120 Vector c_;
122};
Base class for explicit time integration methods.
Module for embedded Runge-Kutta time integration methods.
Definition EmbeddedRKModule.h:26
virtual Status init(const Properties &conf, const Properties &props, const Properties &globdat) override
Initialize the module.
Definition EmbeddedRKModule.cpp:47
static void declare()
Register EmbeddedRKModule type with ModuleFactory.
Definition EmbeddedRKModule.cpp:377
static Ref< Module > makeNew(const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Factory method for creating new EmbeddedRKModule instances.
Definition EmbeddedRKModule.cpp:362
virtual ~EmbeddedRKModule()
Protected destructor.
Definition EmbeddedRKModule.cpp:37
virtual void solve(const Properties &info, const Properties &globdat) override
Solve using embedded Runge-Kutta method.
Definition EmbeddedRKModule.cpp:154
static const char * TYPE_NAME
Module type name.
Definition EmbeddedRKModule.h:32
Base class for explicit time integration schemes.
Definition ExplicitModule.h:93