Free Electron
RotationalMechanicalSystem.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 __driveline_RotationalMechanicalSystem_h__
8 #define __driveline_RotationalMechanicalSystem_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 /// @brief Rotational Mechanical Solver
16 class FE_DL_EXPORT RotationalMechanicalSystem
17  : virtual public Stepper,
18  public CastableAs<RotationalMechanicalSystem>
19 {
20  public:
22 virtual ~RotationalMechanicalSystem(void);
23 
24 virtual void initialize(void);
25 
26 virtual void prepare(sp<RecordGroup> rg_input);
27 virtual void react(const t_note_id &a_note_id);
28 virtual void step(t_moa_real a_dt);
29 virtual void connectOrchestrator(Orchestrator *a_pOrchestrator);
30 
31  private:
32  class SolveGroup
33  {
34  public:
35  AsSolveGroupLive m_asSolveGroupLive;
36  AsShaft m_asShaft;
37  std::map< String, Record > m_shafts;
38  sp<SemiImplicit1D> m_spSemiImplicit;
39  sp<RecordGroup> m_rg_contents;
40 
41  public:
42  bool compile(Record r_solveGroup);
43  };
44 
45  AsParticle1D m_asParticle1D;
46  sp<RecordGroup> m_rg_dataset;
47  sp<Scope> m_spScope;
48  std::vector< Record > m_rv_solveGroups;
49 
50  std::vector< SolveGroup > m_solveGroups;
51 
52 };
53 
54 } /* namespace ext */
55 } /* namespace fe */
56 
57 #endif /* __driveline_RotationalMechanicalSystem_h__ */
kernel
Definition: namespace.dox:3
Time Stepping System.
Definition: Stepper.h:15
Rotational Mechanical Solver.
Definition: RotationalMechanicalSystem.h:16
Basic OrchestratorI implementation.
Definition: Orchestrator.h:16
Reference to an instance of a Layout.
Definition: RecordSB.h:35
particle in physical space
Definition: shapeAS.h:114
Driveline Shaft.
Definition: drivelineAS.h:29
Per-class participation non-RTTI fallback dynamic casting mechanism.
Definition: Castable.h:192