Chi-Tech
PhysicsEventPublisher.cc
Go to the documentation of this file.
5
8
9namespace chi_physics
10{
11
13{
14}
15
16// ###################################################################
17/**Access to the singleton*/
19{
20 static PhysicsEventPublisher singleton;
21 return singleton;
22}
23
24// ###################################################################
26{
28
30}
31
32// ###################################################################
34{
35 {
36 const std::string event_name = "SolverPreInitialize";
38 params.AddParameter("solver_name", solver.TextName());
39 params.AddParameter("solver_handle", solver.StackID());
40
42 chi::Event(event_name, chi::GetStandardEventCode(event_name), params));
43 }
44
45 solver.Initialize();
46
47 {
48 const std::string event_name = "SolverInitialized";
50 params.AddParameter("solver_name", solver.TextName());
51 params.AddParameter("solver_handle", solver.StackID());
52 params.AddParameter("time", solver.GetTimeStepper().Time());
53
55 chi::Event(event_name, chi::GetStandardEventCode(event_name), params));
56 }
57}
58
59// ###################################################################
61{
62 {
63 const std::string event_name = "SolverPreExecution";
65 params.AddParameter("solver_name", solver.TextName());
66 params.AddParameter("solver_handle", solver.StackID());
67
69 chi::Event(event_name, chi::GetStandardEventCode(event_name), params));
70 }
71
72 solver.Execute();
73
74 {
75 const std::string event_name = "SolverExecuted";
77 params.AddParameter("solver_name", solver.TextName());
78 params.AddParameter("solver_handle", solver.StackID());
79
81 chi::Event(event_name, chi::GetStandardEventCode(event_name), params));
82 }
83}
84
85// ###################################################################
87{
88 {
89 const std::string event_name = "SolverPreStep";
91 params.AddParameter("solver_name", solver.TextName());
92 params.AddParameter("solver_handle", solver.StackID());
93
95 chi::Event(event_name, chi::GetStandardEventCode(event_name), params));
96 }
97
98 solver.Step();
99
100 {
101 const std::string event_name = "SolverStep";
102 chi::ParameterBlock params;
103 params.AddParameter("solver_name", solver.TextName());
104 params.AddParameter("solver_handle", solver.StackID());
105
107 chi::Event(event_name, chi::GetStandardEventCode(event_name), params));
108 }
109}
110
111// ###################################################################
113{
114 {
115 const std::string event_name = "SolverPreAdvance";
116 chi::ParameterBlock params;
117 params.AddParameter("solver_name", solver.TextName());
118 params.AddParameter("solver_handle", solver.StackID());
119
121 chi::Event(event_name, chi::GetStandardEventCode(event_name), params));
122 }
123
124 solver.Advance();
125
126 {
127 const std::string event_name = "SolverAdvanced";
128 chi::ParameterBlock params;
129 params.AddParameter("solver_name", solver.TextName());
130 params.AddParameter("solver_handle", solver.StackID());
131 params.AddParameter("time", solver.GetTimeStepper().Time());
132 params.AddParameter("timestep_index",
133 solver.GetTimeStepper().TimeStepIndex());
134
136 chi::Event(event_name, chi::GetStandardEventCode(event_name), params));
137 }
138}
139
140} // namespace chi_physics
size_t StackID() const
Definition: ChiObject.cc:15
virtual void PublishEvent(const chi::Event &event)
void AddParameter(ParameterBlock block)
static SystemWideEventPublisher & GetInstance()
void PublishEvent(const chi::Event &event) override
void PublishEvent(const chi::Event &event) override
static PhysicsEventPublisher & GetInstance()
TimeStepper & GetTimeStepper()
Definition: chi_solver.cc:128
std::string TextName() const
Definition: chi_solver.cc:116
virtual void Initialize()
Definition: chi_solver.cc:146
virtual void Step()
Definition: chi_solver.cc:156
virtual void Execute()
Definition: chi_solver.cc:151
virtual void Advance()
Definition: chi_solver.cc:161
size_t TimeStepIndex() const
Definition: TimeStepper.cc:55
int GetStandardEventCode(const std::string &event_name)
Definition: EventCodes.cc:7