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

The ndg_moment_slope_base class is a base to apply slope-based limiting to dataset. More...

#include <ndg_moment_slope_limiter_base.h>

Inheritance diagram for wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base:
wxm::dfem::variable_adjuster::variable_adjuster_t WmPatchProcess wxm::dfem::variable_adjuster::limiter::ndg_moe_rossmanith wxm::dfem::variable_adjuster::limiter::ndg_tu_alibadi

Detailed Description

The ndg_moment_slope_base class is a base to apply slope-based limiting to dataset.

Public Member Functions

 ndg_moment_slope_limiter_base ()=default
 
virtual void setup (const WxCryptSet &wxc) override
 Setup the spatial solver using the cryptset.
 
void solve (real time, variables_type &input) override
 Solves the spatial system and puts result in _rhs.
 
- Public Member Functions inherited from wxm::dfem::variable_adjuster::variable_adjuster_t
 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 Member Functions

void primitive_kernel (const WxRange &element_scope_range, real time, std::string direction, const std::vector< std::vector< real > > &input, std::vector< std::vector< real > > &output)
 
virtual void averaging_kernel (const WxRange &element_scope_range, const WxRange &face_scope_range, const real time, const std::vector< wxm::array::patch_array_t * > &input)
 
virtual void limiting_kernel (const WxRange &element_scope_range, real time, std::vector< wxm::array::patch_array_t * > &input)=0
 
virtual void allocate ()
 
virtual void zero ()
 

Protected Attributes

std::vector< real_global_averages
 
std::vector< real_global_centers
 
std::vector< real_global_maximums
 
std::vector< real_global_minimums
 
std::vector< real_global_w_averages
 
std::vector< real_global_w_centers
 
std::vector< real_global_w_maximums
 
std::vector< real_global_w_minimums
 
wxm::dfem::tools::scope_t _limiting_scope
 
wxm::dfem::tools::scope_t _averaging_scope
 
wxm::dfem::tools::scope_t _averaging_face_scope
 
std::string _basisSetName
 
WmBasisArraySet _basis_set
 
std::unique_ptr< WmUDGGeometry_dg_geometry
 
std::vector< std::vector< real > > _w
 
std::vector< std::vector< real > > _in_vec
 
std::vector< std::vector< real > > _out_vec
 
- Protected Attributes inherited from wxm::dfem::variable_adjuster::variable_adjuster_t
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
 

Additional Inherited Members

- Public Types inherited from wxm::dfem::variable_adjuster::variable_adjuster_t
typedef wxm::temporal_solver::variables_type variables_type
 

Constructor & Destructor Documentation

◆ ndg_moment_slope_limiter_base()

wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::ndg_moment_slope_limiter_base ( )
default

Member Function Documentation

◆ allocate()

virtual void wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::allocate ( )
protectedvirtual

◆ averaging_kernel()

virtual void wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::averaging_kernel ( const WxRange element_scope_range,
const WxRange face_scope_range,
const real  time,
const std::vector< wxm::array::patch_array_t * > &  input 
)
protectedvirtual

◆ limiting_kernel()

virtual void wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::limiting_kernel ( const WxRange element_scope_range,
real  time,
std::vector< wxm::array::patch_array_t * > &  input 
)
protectedpure virtual

◆ primitive_kernel()

void wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::primitive_kernel ( const WxRange element_scope_range,
real  time,
std::string  direction,
const std::vector< std::vector< real > > &  input,
std::vector< std::vector< real > > &  output 
)
protected

◆ setup()

virtual void wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::setup ( const WxCryptSet wxc)
overridevirtual

Setup the spatial solver using the cryptset.

Parameters
wxcThe cryptset

Reimplemented from WmPatchProcess.

Reimplemented in wxm::dfem::variable_adjuster::limiter::ndg_moe_rossmanith, and wxm::dfem::variable_adjuster::limiter::ndg_tu_alibadi.

◆ solve()

void wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::solve ( real  time,
variables_type input 
)
overridevirtual

Solves the spatial system and puts result in _rhs.

Implements wxm::dfem::variable_adjuster::variable_adjuster_t.

◆ zero()

virtual void wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::zero ( )
protectedvirtual

Member Data Documentation

◆ _averaging_face_scope

wxm::dfem::tools::scope_t wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_averaging_face_scope
protected

◆ _averaging_scope

wxm::dfem::tools::scope_t wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_averaging_scope
protected

◆ _basis_set

WmBasisArraySet wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_basis_set
protected

◆ _basisSetName

std::string wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_basisSetName
protected

◆ _dg_geometry

std::unique_ptr<WmUDGGeometry> wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_dg_geometry
protected

◆ _global_averages

std::vector<real> wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_global_averages
protected

◆ _global_centers

std::vector<real> wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_global_centers
protected

◆ _global_maximums

std::vector<real> wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_global_maximums
protected

◆ _global_minimums

std::vector<real> wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_global_minimums
protected

◆ _global_w_averages

std::vector<real> wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_global_w_averages
protected

◆ _global_w_centers

std::vector<real> wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_global_w_centers
protected

◆ _global_w_maximums

std::vector<real> wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_global_w_maximums
protected

◆ _global_w_minimums

std::vector<real> wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_global_w_minimums
protected

◆ _in_vec

std::vector<std::vector<real> > wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_in_vec
protected

◆ _limiting_scope

wxm::dfem::tools::scope_t wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_limiting_scope
protected

◆ _out_vec

std::vector<std::vector<real> > wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_out_vec
protected

◆ _w

std::vector<std::vector<real> > wxm::dfem::variable_adjuster::limiter::ndg_moment_slope_limiter_base::_w
protected

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