Chi-Tech
SolverInfoPostProcessor.cc
Go to the documentation of this file.
2
3#include "ChiObjectFactory.h"
4
8
9#include <algorithm>
10
11namespace chi
12{
13
15
17{
19
20 // clang-format off
22"A post processor that can get basic info for any object based on "
23"chi_physics::Solver. This solver's execution does not filter whether solver"
24"events are for the relevant solver. This is done to avoid differing "
25"time-histories.");
26 // clang-format on
27 params.SetDocGroup("doc_PostProcessors");
28
29 params.AddRequiredParameter<size_t>("solver", "A handle to the solver.");
31 "info",
32 "A parameter block, requiring at minimum the parameter \"name\" to pass to "
33 "the solver. Note: each solver will have custom parameter blocks available "
34 "to "
35 "get a vast array of different pieces of information.");
36
37 return params;
38}
39
41 : PostProcessor(params, PPType::SCALAR),
42 solver_(Chi::GetStackItem<chi_physics::Solver>(
43 Chi::object_stack, params.GetParamValue<size_t>("solver"), __FUNCTION__)),
44 info_(params.GetParam("info"))
45{
46 const auto& param_assigned = params.ParametersAtAssignment();
47 if (param_assigned.Has("solvername_filter"))
48 solvername_filter_ = params.GetParamValue<std::string>("solvername_filter");
49 else
51}
52
53void SolverInfoPostProcessor::Execute(const Event& event_context)
54{
57
58 const int event_code = event_context.Code();
59 if (event_code == 32 /*SolverInitialized*/ or
60 event_code == 38 /*SolverAdvanced*/)
61 {
64 value_};
65 time_history_.push_back(std::move(entry));
66 }
67}
68
69} // namespace chi
int Code() const
Definition: Event.cc:19
void SetDocGroup(const std::string &doc_group)
void AddRequiredParameter(const std::string &name, const std::string &doc_string)
const ParameterBlock & ParametersAtAssignment() const
void AddRequiredParameterBlock(const std::string &name, const std::string &doc_string)
void SetGeneralDescription(const std::string &description)
T GetParamValue(const std::string &param_name) const
Definition: PostProcessor.h:28
static PPType FigureTypeFromValue(const ParameterBlock &value)
ParameterBlock value_
Definition: PostProcessor.h:88
void SetType(PPType type)
std::string solvername_filter_
Definition: PostProcessor.h:94
std::vector< TimeHistoryEntry > time_history_
Definition: PostProcessor.h:90
static InputParameters GetInputParameters()
void Execute(const Event &event_context) override
const chi_physics::Solver & solver_
const ParameterBlock info_
static InputParameters GetInputParameters()
SolverInfoPostProcessor(const InputParameters &params)
TimeStepper & GetTimeStepper()
Definition: chi_solver.cc:128
std::string TextName() const
Definition: chi_solver.cc:116
chi::ParameterBlock GetInfoWithPreCheck(const chi::ParameterBlock &params) const
Definition: chi_solver.cc:172
size_t TimeStepIndex() const
Definition: TimeStepper.cc:55
RegisterChiObject(chi, KBAGraphPartitioner)
Definition: PostProcessor.h:31