OGS
anonymous_namespace{TimeLoop.cpp} Namespace Reference

Functions

void updateDeactivatedSubdomains (std::vector< std::unique_ptr< ProcessLib::ProcessData > > const &per_process_data, double const t)
 
bool isOutputStep (std::vector< ProcessLib::Output > const &outputs, const int timestep, const double t, const double end_time)
 
void preOutputForAllProcesses (int const timestep, double const t, double const dt, const double end_time, std::vector< std::unique_ptr< ProcessLib::ProcessData > > const &per_process_data, std::vector< GlobalVector * > const &process_solutions, std::vector< GlobalVector * > const &process_solutions_prev, std::vector< ProcessLib::Output > const &outputs)
 

Function Documentation

◆ isOutputStep()

bool anonymous_namespace{TimeLoop.cpp}::isOutputStep ( std::vector< ProcessLib::Output > const & outputs,
const int timestep,
const double t,
const double end_time )

Definition at line 39 of file TimeLoop.cpp.

41{
42 if (std::abs(end_time - t) < std::numeric_limits<double>::epsilon())
43 {
44 // the last timestep is an output step
45 return true;
46 }
47
48 return ranges::any_of(outputs, [timestep, t](auto const& output)
49 { return output.isOutputStep(timestep, t); });
50}

Referenced by preOutputForAllProcesses().

◆ preOutputForAllProcesses()

void anonymous_namespace{TimeLoop.cpp}::preOutputForAllProcesses ( int const timestep,
double const t,
double const dt,
const double end_time,
std::vector< std::unique_ptr< ProcessLib::ProcessData > > const & per_process_data,
std::vector< GlobalVector * > const & process_solutions,
std::vector< GlobalVector * > const & process_solutions_prev,
std::vector< ProcessLib::Output > const & outputs )

Definition at line 52 of file TimeLoop.cpp.

59{
60 if (!isOutputStep(outputs, timestep, t, end_time))
61 {
62 return;
63 }
64
65 for (auto& process_data : per_process_data)
66 {
67 auto const process_id = process_data->process_id;
68 auto& pcs = process_data->process;
69
70 pcs.preOutput(t, dt, process_solutions, process_solutions_prev,
71 process_id);
72 }
73}
bool isOutputStep(std::vector< ProcessLib::Output > const &outputs, const int timestep, const double t, const double end_time)
Definition TimeLoop.cpp:39

References isOutputStep().

◆ updateDeactivatedSubdomains()

void anonymous_namespace{TimeLoop.cpp}::updateDeactivatedSubdomains ( std::vector< std::unique_ptr< ProcessLib::ProcessData > > const & per_process_data,
double const t )

Definition at line 27 of file TimeLoop.cpp.

31{
32 for (auto& process_data : per_process_data)
33 {
34 process_data->process.updateDeactivatedSubdomains(
35 t, process_data->process_id);
36 }
37}