Free Electron
ExplicitInertial.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2021 Free Electron Organization
2  Any use of this software requires a license. If a valid license
3  was not distributed with this file, visit freeelectron.org. */
4 
5 /** @file */
6 
7 #ifndef __solve_ExplicitInertial_h__
8 #define __solve_ExplicitInertial_h__
9 
10 #include "signal/signal.h"
11 #include "datatool/datatool.h"
12 #include "shape/shape.h"
13 
14 namespace fe
15 {
16 namespace ext
17 {
18 
19 /** Euler time integration
20 
21  @copydoc ExplicitInertial_info
22  */
23 class FE_DL_EXPORT ExplicitInertial:
24  virtual public HandlerI,
25  virtual public Config,
26  public Initialize<ExplicitInertial>
27 {
28  public:
29  ExplicitInertial(void);
30 virtual ~ExplicitInertial(void);
31 virtual void initialize(void);
32 
33  // AS HandlerI
34 virtual void handleBind(sp<SignalerI> spSignaler,
35  sp<Layout> l_sig);
36 virtual void handle(Record &r_sig);
37 
38  private:
39  AsParticle m_asParticle;
40  AsForcePoint m_asForcePoint;
41  AsTemporal m_asTemporal;
42  AsRK2 m_asRK2;
43  AsAccumulate m_asAccumulate;
44  AsClear m_asClear;
45  AsUpdate m_asUpdate;
46  hp<SignalerI> m_hpSignaler;
47  sp<Scope> m_spScope;
48  Record r_clear;
49  Record r_accum;
50  Record r_update;
51  //std::vector<SpatialVector> m_forceTemp;
52  //std::vector<SpatialVector> m_velTemp;
53 
54  enum
55  {
56  e_foreback = 0,
57  e_rk2 = 1,
58  e_euler = 2,
59  e_verlet = 3
60  };
61  FE_UWORD m_mode;
62 
63  void accumulate(sp<RecordGroup> rg_input, Real a_timestep);
64 };
65 
66 } /* namespace ext */
67 } /* namespace fe */
68 
69 #endif /* __solve_ExplicitInertial_h__ */
70 
Convienience base class for specification and use of path accessors.
Definition: Config.h:19
Euler time integration.
Definition: ExplicitInertial.h:23
kernel
Definition: namespace.dox:3
force application point
Definition: shapeAS.h:42
Per-class participation in the Initialized <> mechanism.
Definition: Initialized.h:117
clear signal
Definition: solveAS.h:38
Interface to handle signals from an SignalerI.
Definition: HandlerI.h:22
particle in physical space
Definition: shapeAS.h:58
Time-based Operator.
Definition: datatoolAS.h:73
update state signal
Definition: solveAS.h:97
Reference to an instance of a Layout.
Definition: RecordSB.h:35
accumulate signal
Definition: solveAS.h:59