1#ifndef WMIMPLICITRKSCHEME_H
2#define WMIMPLICITRKSCHEME_H
4#include "warpxm/warpxm_config.h"
21class distributed_variable_t;
46 std::vector<Vec> stages_;
55 bool extra_accumulator_;
62 std::vector<std::pair<size_t, size_t>> copy_ranges_;
72 typedef std::vector<std::pair<wxm::variable::distributed_variable_t*, size_t>>
76 std::vector<real> time_updates,
77 std::vector<real> multipliers,
78 bool extra_accumulator);
101 const std::vector<wxm::temporal_solver::temporal_var>& temporal_vars,
113 const std::vector<wxm::temporal_solver::temporal_var>& temporal_vars,
114 std::vector<variables_type>& vars,
122 return ((stage + 1) * (stage + 2) >> 1) - 1;
Definition: wmunstructuredpatch.h:22
Represents important parameters for the efficacy of a completing simulation step.
Definition: wxstepperstatus.h:19
Handles basic singly implicit RK time integration.
Definition: wmimplicitrkscheme.h:33
real getTimeUpdate(const int rkStage) const
Definition: wmimplicitrkscheme.h:88
ImplicitRKScheme(int num_stages, std::vector< real > time_updates, std::vector< real > multipliers, bool extra_accumulator)
int stage_offset(int stage) const
Definition: wmimplicitrkscheme.h:120
void allocate(MPI_Comm comm, const std::vector< wxm::temporal_solver::temporal_var > &temporal_vars, implicit &ts)
Allocates internal buffers for interfacing with non-linear solvers.
std::vector< real > timeUpdates_
Definition: wmimplicitrkscheme.h:127
std::vector< real > multipliers_
Definition: wmimplicitrkscheme.h:128
int getNumStages() const
Definition: wmimplicitrkscheme.h:84
real getCFLLimit() const
Definition: wmimplicitrkscheme.h:92
ImplicitRKScheme(const ImplicitRKScheme &)=delete
real _cfl_max
Definition: wmimplicitrkscheme.h:125
void print_stage_definition(int stage) const
std::vector< std::pair< wxm::variable::distributed_variable_t *, size_t > > variables_type
Definition: wmimplicitrkscheme.h:73
int _numStages
Definition: wmimplicitrkscheme.h:126
WxStepperStatus calc_stage(int stage, const std::vector< wxm::temporal_solver::temporal_var > &temporal_vars, std::vector< variables_type > &vars, real dt)
Computes u^*(stage)
Fully implicit temporal solver.
Definition: implicit.h:19
Base namespace for everything not included in the global namespace.
Definition: field_source.h:8
#define real
Definition: wmoclunstructuredreconstruction.h:11