dynLattice
Loading...
Searching...
No Matches
MilneDeviceModule.h
Go to the documentation of this file.
1
10#pragma once
11
13
30{
31public:
32 JEM_DECLARE_CLASS(MilneDeviceModule, ExplicitModule);
33
36 static const char *TYPE_NAME;
38
41 explicit MilneDeviceModule(const String &name = "MilneDevice");
42
50 virtual void solve(const Properties &info, const Properties &globdat) override;
51
58 static Ref<Module> makeNew(const String &name, const Properties &conf,
59 const Properties &props, const Properties &globdat);
60
62 static void declare();
63
65 virtual ~MilneDeviceModule();
66
67protected:
75 Vector updForce(const Vector &fint,
76 const Vector &fext,
77 const Properties &globdat);
78
79private:
82
88 inline void AMupdate_(const Vector &delta_y, const Vector &f_pre,
89 const Vector &f_cur) const;
90
95 inline void AMupdate_(const Vector &delta_y, const Vector &f_pre) const;
97};
98
99//=======================================================================
100// Inline implementations
101//=======================================================================
102
103inline void MilneDeviceModule::AMupdate_(const Vector &delta_y,
104 const Vector &f_pre,
105 const Vector &f_cur) const
106{
107 delta_y = dtime_ / 2. * (1. * f_pre + 1. * f_cur);
108}
109
110inline void MilneDeviceModule::AMupdate_(const Vector &delta_y,
111 const Vector &f_pre) const
112{
113 delta_y = dtime_ * f_pre;
114}
Base class for explicit time integration methods.
Base class for explicit time integration schemes.
Definition ExplicitModule.h:93
double dtime_
Current time step size.
Definition ExplicitModule.h:244
Module implementing Milne's device predictor-corrector method.
Definition MilneDeviceModule.h:30
static const char * TYPE_NAME
Module type name.
Definition MilneDeviceModule.h:36
Vector updForce(const Vector &fint, const Vector &fext, const Properties &globdat)
Update forces for corrector step.
Definition MilneDeviceModule.cpp:124
static Ref< Module > makeNew(const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Factory method for creating new MilneDeviceModule instances.
Definition MilneDeviceModule.cpp:146
static void declare()
Register MilneDeviceModule type with ModuleFactory.
Definition MilneDeviceModule.cpp:161
virtual ~MilneDeviceModule()
Destructor.
Definition MilneDeviceModule.cpp:33
virtual void solve(const Properties &info, const Properties &globdat) override
Solve using Milne's device predictor-corrector method.
Definition MilneDeviceModule.cpp:41