40 double time_period = 1.0;
42 double time_left = time_period;
44 double max_step_size = time_period;
45 double min_step_size = 1
E-8;
46 double ini_step_size = time_period;
48 unsigned max_substep = 1000;
50 bool fixed_step_size =
false;
52 unsigned solver_tag = 0;
53 unsigned converger_tag = 0;
54 unsigned integrator_tag = 0;
65 magma_dopts magma_setting{};
77 explicit Step(
unsigned = 0,
double = 1.);
82 ~
Step() override = default;
123 void set_magma_option(
const magma_dopts& magma_opt) { magma_setting = magma_opt; }
134 [[nodiscard]]
bool is_symm()
const;
135 [[nodiscard]]
bool is_band()
const;
PreconditionerType
Definition SolverSetting.hpp:34
Precision
Definition SolverSetting.hpp:23
IterativeSolver
Definition SolverSetting.hpp:28
The Converger class handles converger test to indicate if the iteration converges according to variou...
Definition Converger.h:44
The DomainBase class is a template.
Definition DomainBase.h:104
A Factory class.
Definition Factory.hpp:73
The Integrator class is basically a wrapper of the DomainBase class with regard to some status changi...
Definition Integrator.h:51
A Solver class defines solvers used in analysis.
Definition Solver.h:38
A Step class.
Definition Step.h:39
Step(const Step &)=delete
const bool sparse_mat
Definition Step.h:59
void set_precision(Precision)
Definition Step.cpp:141
const weak_ptr< DomainBase > & get_domain() const
Definition Step.cpp:77
void set_integrator_tag(unsigned)
Definition Step.cpp:95
void set_sparse(bool) const
Definition Step.cpp:171
const shared_ptr< Solver > & get_solver() const
Definition Step.cpp:87
void set_converger_tag(unsigned)
Definition Step.cpp:89
void set_integrator(const shared_ptr< Integrator > &)
Definition Step.cpp:97
void set_band(bool) const
Definition Step.cpp:169
void set_preconditioner(PreconditionerType)
Definition Step.cpp:139
void set_factory(const shared_ptr< Factory< double > > &)
Definition Step.cpp:79
void set_refinement(unsigned)
Definition Step.cpp:145
bool is_band() const
Definition Step.cpp:163
void set_system_solver(SolverType)
Definition Step.cpp:132
void set_max_substep(unsigned)
Definition Step.cpp:130
bool is_symm() const
Definition Step.cpp:161
double get_time_period() const
Definition Step.cpp:116
weak_ptr< DomainBase > database
Definition Step.h:68
virtual int initialize()
Definition Step.cpp:37
unsigned get_max_substep() const
Definition Step.cpp:155
double get_ini_step_size() const
Definition Step.cpp:149
void set_max_step_size(double)
Definition Step.cpp:128
const shared_ptr< Factory< double > > & get_factory() const
Definition Step.cpp:81
void set_solver(const shared_ptr< Solver > &)
Definition Step.cpp:85
const bool band_mat
Definition Step.h:58
const shared_ptr< Converger > & get_converger() const
Definition Step.cpp:93
void set_lis_option(std::string_view)
Definition Step.cpp:147
double get_max_step_size() const
Definition Step.cpp:153
SolverSetting< double > setting
Definition Step.h:62
SolverType system_solver
Definition Step.h:61
void set_symm(bool) const
Definition Step.cpp:167
const bool symm_mat
Definition Step.h:57
void set_fixed_step_size(bool)
Definition Step.cpp:159
void set_solver_tag(unsigned)
Definition Step.cpp:83
void set_tolerance(double)
Definition Step.cpp:143
void configure_storage_scheme() const
Definition Step.cpp:25
bool is_sparse() const
Definition Step.cpp:165
shared_ptr< Integrator > modifier
Definition Step.h:72
shared_ptr< Solver > solver
Definition Step.h:70
bool is_fixed_step_size() const
Definition Step.cpp:157
void set_time_period(double)
Definition Step.cpp:101
double get_time_left() const
Definition Step.cpp:118
Step(Step &&) noexcept=delete
void set_converger(const shared_ptr< Converger > &)
Definition Step.cpp:91
void set_ini_step_size(double)
Definition Step.cpp:120
void set_min_step_size(double)
Definition Step.cpp:126
void set_domain(const weak_ptr< DomainBase > &)
Definition Step.cpp:75
double get_min_step_size() const
Definition Step.cpp:151
const shared_ptr< Integrator > & get_integrator() const
Definition Step.cpp:99
shared_ptr< Converger > tester
Definition Step.h:71
void set_time_left(double)
Definition Step.cpp:114
shared_ptr< Factory< double > > factory
Definition Step.h:69
A base Tag class.
Definition Tag.h:38
SolverType
Definition Factory.hpp:61
Definition SolverSetting.hpp:40