/__w/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/timestepping/abstract_timestepper.hh Source File#
|
DiFfRG
Discretization Framework for functional Renormalization Group flows
|
abstract_timestepper.hh
Go to the documentation of this file.
59 static_assert(std::is_same_v<VectorType, Vector<NumberType>>, "VectorType must not be Vector<double>!");
204 static std::string console_out_category(const std::string &name) { return name.substr(0, name.find(" (")); }
237 if (name.size() > console_name_width) throw std::runtime_error("console_out: log label is too long: " + name);
273 std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::high_resolution_clock::now() - start_time)
277 calc_dt_ms >= 0.0 ? std::optional<std::string>(time_format_ms(size_t(calc_dt_ms))) : std::nullopt;
289 ? std::optional<std::string>(format_uncertain_ms(stats.mean_calc_dt_ms(), stats.calc_dt_uncertainty_ms()))
Implement a simple interface to do all adaptivity tasks, i.e. solution transfer, reinit of dofHandler...
Definition abstract_adaptor.hh:11
This is the general assembler interface for any kind of discretization. An assembler is responsible f...
Definition abstract_assembler.hh:40
A class to set up initial data for whatever discretization we have chosen. Also used to switch/manage...
Definition abstract_data.hh:18
The abstract base class for all timestepping algorithms. It provides a standard constructor which pop...
Definition abstract_timestepper.hh:52
dealii::BlockVector< NumberType > BlockVectorType
Definition abstract_timestepper.hh:60
AbstractAssembler< VectorType, SparseMatrixType, dim > * assembler
Definition abstract_timestepper.hh:141
struct DiFfRG::AbstractTimestepper::ExplicitParameters expl
std::shared_ptr< DataOutput< dim, VectorType > > data_out_default
Definition abstract_timestepper.hh:148
static std::string format_uncertain_ms(const double mean_ms, const double uncertainty_ms)
Definition abstract_timestepper.hh:206
void console_out(const double t, const std::string name, const int verbosity_level, const double calc_dt_ms=-1.0) const
Pretty-print the status of the timestepping algorithm to the console.
Definition abstract_timestepper.hh:267
SparseMatrixType_ SparseMatrixType
Definition abstract_timestepper.hh:57
DataOutput< dim, VectorType > * data_out
Definition abstract_timestepper.hh:142
static std::string console_out_category(const std::string &name)
Definition abstract_timestepper.hh:204
const std::chrono::time_point< std::chrono::high_resolution_clock > start_time
Definition abstract_timestepper.hh:145
AbstractTimestepper(const JSONValue &json, AbstractAssembler< VectorType, SparseMatrixType, dim > *assembler, DataOutput< dim, VectorType > *data_out=nullptr, AbstractAdaptor< VectorType > *adaptor=nullptr)
Construct a new Abstract Timestepper object.
Definition abstract_timestepper.hh:71
AbstractAdaptor< VectorType > * adaptor
Definition abstract_timestepper.hh:143
std::shared_ptr< NoAdaptivity< VectorType > > adaptor_default
Definition abstract_timestepper.hh:147
virtual void run(AbstractFlowingVariables< NumberType > *initial_condition, const double t_start, const double t_stop)=0
Any derived class must implement this method to run the timestepping algorithm.
typename get_type::NumberType< VectorType > NumberType
Definition abstract_timestepper.hh:56
DataOutput< dim, VectorType > * get_data_out()
Utility function to obtain a DataOutput object. If no DataOutput object is provided,...
Definition abstract_timestepper.hh:105
typename get_type::InverseSparseMatrixType< SparseMatrixType > InverseSparseMatrixType
Definition abstract_timestepper.hh:58
AbstractAdaptor< VectorType > * get_adaptor()
Utility function to obtain an Adaptor object. If no Adaptor object is provided, a default one is crea...
Definition abstract_timestepper.hh:120
void print_console_out(const std::string &name, const double t, const size_t milliseconds, const std::optional< std::string > calc_dt=std::nullopt, const size_t calls=0) const
Definition abstract_timestepper.hh:234
static constexpr size_t console_name_width
Definition abstract_timestepper.hh:170
struct DiFfRG::AbstractTimestepper::ImplicitParameters impl
std::unordered_map< std::string, ConsoleOutStats > console_out_stats_by_category
Definition abstract_timestepper.hh:202
Class to manage writing to files. FEM functions are written to vtk files and other data is written to...
Definition data_output.hh:20
double get_double(const std::string &key) const
Get the value of a key in the json object.
int get_int(const std::string &key) const
Get the value of a key in the json object.
uint get_uint(const std::string &key) const
Get the value of a key in the json object.
typename internal::_InverseSparseMatrixType< SparseMatrixType >::value InverseSparseMatrixType
Definition types.hh:92
typename internal::_NumberType< VectorType >::value NumberType
Definition types.hh:86
Definition complex_math.hh:10
std::string time_format_ms(size_t time_in_miliseconds)
Nice output from seconds to h/min/s style string.
Definition abstract_timestepper.hh:172
void add(const double t, const size_t milliseconds, const double calc_dt_ms)
Definition abstract_timestepper.hh:183
double calc_dt_sum_ms
Definition abstract_timestepper.hh:178
double calc_dt_uncertainty_ms() const
Definition abstract_timestepper.hh:199
size_t first_ms
Definition abstract_timestepper.hh:173
size_t calls
Definition abstract_timestepper.hh:176
double calc_dt_min_ms
Definition abstract_timestepper.hh:179
double calc_dt_max_ms
Definition abstract_timestepper.hh:180
bool has_calc_dt
Definition abstract_timestepper.hh:181
size_t last_ms
Definition abstract_timestepper.hh:174
size_t calc_dt_calls
Definition abstract_timestepper.hh:177
double mean_calc_dt_ms() const
Definition abstract_timestepper.hh:198
double latest_t
Definition abstract_timestepper.hh:175
Definition abstract_timestepper.hh:162
double abs_tol
Definition abstract_timestepper.hh:166
double minimal_dt
Definition abstract_timestepper.hh:164
double maximal_dt
Definition abstract_timestepper.hh:165
double rel_tol
Definition abstract_timestepper.hh:167
Definition abstract_timestepper.hh:153
double maximal_dt
Definition abstract_timestepper.hh:156
double minimal_dt
Definition abstract_timestepper.hh:155
double rel_tol
Definition abstract_timestepper.hh:158
uint max_steps
Definition abstract_timestepper.hh:159
double abs_tol
Definition abstract_timestepper.hh:157
Generated by