WARPXM v1.10.0
Loading...
Searching...
No Matches
wxm::temporal::ImplicitRKScheme Class Reference

Handles basic singly implicit RK time integration. More...

#include <wmimplicitrkscheme.h>

Detailed Description

Handles basic singly implicit RK time integration.

Public Types

typedef std::vector< std::pair< wxm::variable::distributed_variable_t *, size_t > > variables_type
 

Public Member Functions

 ImplicitRKScheme (int num_stages, std::vector< real > time_updates, std::vector< real > multipliers, bool extra_accumulator)
 
 ImplicitRKScheme (const ImplicitRKScheme &)=delete
 
 ~ImplicitRKScheme ()
 
int getNumStages () const
 
real getTimeUpdate (const int rkStage) const
 
real getCFLLimit () const
 
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.
 
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)
 
void print_stage_definition (int stage) const
 

Protected Member Functions

int stage_offset (int stage) const
 

Protected Attributes

real _cfl_max = 1
 
int _numStages
 
std::vector< realtimeUpdates_
 
std::vector< realmultipliers_
 

Member Typedef Documentation

◆ variables_type

Constructor & Destructor Documentation

◆ ImplicitRKScheme() [1/2]

wxm::temporal::ImplicitRKScheme::ImplicitRKScheme ( int  num_stages,
std::vector< real time_updates,
std::vector< real multipliers,
bool  extra_accumulator 
)

◆ ImplicitRKScheme() [2/2]

wxm::temporal::ImplicitRKScheme::ImplicitRKScheme ( const ImplicitRKScheme )
delete

◆ ~ImplicitRKScheme()

wxm::temporal::ImplicitRKScheme::~ImplicitRKScheme ( )

Member Function Documentation

◆ allocate()

void wxm::temporal::ImplicitRKScheme::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.

◆ calc_stage()

WxStepperStatus wxm::temporal::ImplicitRKScheme::calc_stage ( int  stage,
const std::vector< wxm::temporal_solver::temporal_var > &  temporal_vars,
std::vector< variables_type > &  vars,
real  dt 
)

Computes u^*(stage)

Parameters
temporal_vars
vars
dt
tsthe temporal solver which is calling calc_stage

◆ getCFLLimit()

real wxm::temporal::ImplicitRKScheme::getCFLLimit ( ) const
inline

◆ getNumStages()

int wxm::temporal::ImplicitRKScheme::getNumStages ( ) const
inline

◆ getTimeUpdate()

real wxm::temporal::ImplicitRKScheme::getTimeUpdate ( const int  rkStage) const
inline

◆ print_stage_definition()

void wxm::temporal::ImplicitRKScheme::print_stage_definition ( int  stage) const

◆ stage_offset()

int wxm::temporal::ImplicitRKScheme::stage_offset ( int  stage) const
inlineprotected

Member Data Documentation

◆ _cfl_max

real wxm::temporal::ImplicitRKScheme::_cfl_max = 1
protected

◆ _numStages

int wxm::temporal::ImplicitRKScheme::_numStages
protected

◆ multipliers_

std::vector<real> wxm::temporal::ImplicitRKScheme::multipliers_
protected

◆ timeUpdates_

std::vector<real> wxm::temporal::ImplicitRKScheme::timeUpdates_
protected

The documentation for this class was generated from the following file: