WARPXM v1.10.0
Loading...
Searching...
No Matches
wxm::dfem::variable_adjuster::variable_adjuster_t Class Referenceabstract

The WmVariableAdjuster class is a base class for variable adjusters. More...

#include <variable_adjuster.h>

Inheritance diagram for wxm::dfem::variable_adjuster::variable_adjuster_t:
WmPatchProcess wxm::dfem::variable_adjuster::auxiliary_variables::DivergenceIntegralByParts wxm::dfem::variable_adjuster::boundary_condition::KineticBoundaryCondition wxm::dfem::variable_adjuster::boundary_condition::boundary_condition wxm::dfem::variable_adjuster::diffusion_coefficient::CalcDiffusionCoefficient wxm::dfem::variable_adjuster::function_evaluation::PhaseSpaceFunctionEvaluator wxm::dfem::variable_adjuster::function_evaluation::function_evaluator wxm::dfem::variable_adjuster::gradient::gradient wxm::dfem::variable_adjuster::gradient::gradient_interior_penalty_internal_approximation wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base wxm::dfem::variable_adjuster::limiter::positivity_enforcing::NDGEulerPositivityPreservingLimiter wxm::dfem::variable_adjuster::limiter::positivity_enforcing::NDGMHDPositivityPreservingLimiter wxm::dfem::variable_adjuster::moment_taker::VelocitySpaceMomentTaker wxm::dfem::variable_adjuster::phase_space_gradient::PhaseSpaceGradient wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral wxm::dfem::variable_adjuster::unique_variable_adjuster::UniqueVariableFunctionEvaluator

Detailed Description

The WmVariableAdjuster class is a base class for variable adjusters.

Public Types

typedef wxm::temporal_solver::variables_type variables_type
 

Public Member Functions

 variable_adjuster_t ()
 Constructor.
 
void setup (const WxCryptSet &wxc) override
 Setup the spatial solver using the cryptset.
 
virtual void solve (real time, variables_type &input)=0
 applies the variable adjuster to input
 
std::vector< wxm::array::patch_array_t * > get_patch_arrays (const variables_type &in)
 
void process () override
 
virtual const std::vector< size_t > & get_input_indices () const
 
int priority () const
 Getter function for priority.
 
virtual void Barrier (const WxMsgBase &msg, const real time, variables_type &input)
 An opportunity for the variable adjuster to perform any MPI operations it needs to after solve is called.
 
- Public Member Functions inherited from WmPatchProcess
 WmPatchProcess ()
 
virtual ~WmPatchProcess ()=default
 
void step ()
 
virtual void process ()=0
 
void setPatch (const WmUnstructuredPatch *patch)
 
void setParentTaskProcessor (WmPatchProcessor *taskProcessor)
 
virtual std::string name (std::string prefix="patchedProcessor.") const
 
virtual void setup (const WxCryptSet &wxc)
 
void setParentSolver (const WmSolverBase *solver)
 
void setDt (WxStepper::time_t dt)
 
void setTime (WxStepper::time_t time)
 
WxStepper::time_t getSuggestedDt () const
 
const WmUnstructuredPatchget_patch () const
 
const WmSolverget_solver () const
 

Protected Attributes

std::vector< size_t > _var_idcs
 
std::vector< std::unique_ptr< WmApplication > > _apps
 
bool _grab_all = false
 
int _priority
 
- Protected Attributes inherited from WmPatchProcess
std::string _ppName
 
WmPatchProcessor_parentTaskProcessor
 
const WmUnstructuredPatch_patch
 
std::vector< std::string > _onSubdomains
 
WxStepper::time_t _time
 
WxStepper::time_t _dt
 
WxStepper::time_t _suggested_dt
 
WxLogStream _debStrm = WxLogger::get("warpx-root.console")->getDebugStream()
 
const WmSolverBase_parentSolver = nullptr
 

Member Typedef Documentation

◆ variables_type

Constructor & Destructor Documentation

◆ variable_adjuster_t()

wxm::dfem::variable_adjuster::variable_adjuster_t::variable_adjuster_t ( )

Constructor.

Member Function Documentation

◆ Barrier()

virtual void wxm::dfem::variable_adjuster::variable_adjuster_t::Barrier ( const WxMsgBase msg,
const real  time,
variables_type input 
)
inlinevirtual

An opportunity for the variable adjuster to perform any MPI operations it needs to after solve is called.

This method will be called by the temporal solver immediately after it calls this::solve.

Parameters
msga handle to the MPI messenger
timethe current time
inputthe list of (variable, component) pairs that was just adjusted in solve

Reimplemented in wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral, and wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral.

◆ get_input_indices()

virtual const std::vector< size_t > & wxm::dfem::variable_adjuster::variable_adjuster_t::get_input_indices ( ) const
inlinevirtual

◆ get_patch_arrays()

std::vector< wxm::array::patch_array_t * > wxm::dfem::variable_adjuster::variable_adjuster_t::get_patch_arrays ( const variables_type in)

◆ priority()

int wxm::dfem::variable_adjuster::variable_adjuster_t::priority ( ) const
inline

Getter function for priority.

Parameters
None
Returns
int _priority

◆ process()

void wxm::dfem::variable_adjuster::variable_adjuster_t::process ( )
inlineoverridevirtual

Implements WmPatchProcess.

◆ setup()

void wxm::dfem::variable_adjuster::variable_adjuster_t::setup ( const WxCryptSet wxc)
overridevirtual

Setup the spatial solver using the cryptset.

Parameters
wxcThe cryptset

Reimplemented from WmPatchProcess.

◆ solve()

virtual void wxm::dfem::variable_adjuster::variable_adjuster_t::solve ( real  time,
variables_type input 
)
pure virtual

Member Data Documentation

◆ _apps

std::vector<std::unique_ptr<WmApplication> > wxm::dfem::variable_adjuster::variable_adjuster_t::_apps
protected

◆ _grab_all

bool wxm::dfem::variable_adjuster::variable_adjuster_t::_grab_all = false
protected

◆ _priority

int wxm::dfem::variable_adjuster::variable_adjuster_t::_priority
protected

◆ _var_idcs

std::vector<size_t> wxm::dfem::variable_adjuster::variable_adjuster_t::_var_idcs
protected

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