WARPXM v1.10.0
|
The WmVariableAdjuster class is a base class for variable adjusters. More...
#include <variable_adjuster.h>
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 WmUnstructuredPatch & | get_patch () const |
const WmSolver & | get_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 |
typedef wxm::temporal_solver::variables_type wxm::dfem::variable_adjuster::variable_adjuster_t::variables_type |
wxm::dfem::variable_adjuster::variable_adjuster_t::variable_adjuster_t | ( | ) |
Constructor.
|
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
.
msg | a handle to the MPI messenger |
time | the current time |
input | the 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.
|
inlinevirtual |
std::vector< wxm::array::patch_array_t * > wxm::dfem::variable_adjuster::variable_adjuster_t::get_patch_arrays | ( | const variables_type & | in | ) |
|
inline |
Getter function for priority.
None |
|
inlineoverridevirtual |
Implements WmPatchProcess.
|
overridevirtual |
Setup the spatial solver using the cryptset.
wxc | The cryptset |
Reimplemented from WmPatchProcess.
|
pure virtual |
applies the variable adjuster to input
time | the current time |
input | a list of (variable, component) pairs. This method should adjust the patch arrays in place. |
Implemented in wxm::dfem::variable_adjuster::auxiliary_variables::DivergenceIntegralByParts, wxm::dfem::variable_adjuster::boundary_condition::boundary_condition, wxm::dfem::variable_adjuster::boundary_condition::KineticBoundaryCondition, wxm::dfem::variable_adjuster::diffusion_coefficient::CalcDiffusionCoefficient, wxm::dfem::variable_adjuster::function_evaluation::function_evaluator, wxm::dfem::variable_adjuster::function_evaluation::PhaseSpaceFunctionEvaluator, wxm::dfem::variable_adjuster::gradient::gradient, wxm::dfem::variable_adjuster::gradient::gradient_interior_penalty_internal_approximation, wxm::dfem::variable_adjuster::phase_space_gradient::PhaseSpaceGradient, 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::unique_variable_adjuster::BoundaryFluxIntegral, wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral, and wxm::dfem::variable_adjuster::unique_variable_adjuster::UniqueVariableFunctionEvaluator.
|
protected |
|
protected |
|
protected |
|
protected |