WARPXM v1.10.0
Loading...
Searching...
No Matches
wxm::dfem::variable_adjuster::limiter::oedg_limiter Class Reference

#include <oedg_limiter.h>

Inheritance diagram for wxm::dfem::variable_adjuster::limiter::oedg_limiter:
wxm::dfem::variable_adjuster::variable_adjuster_t WxObject WmPatchProcess

Public Member Functions

 oedg_limiter ()=default
 
virtual void setup (const WxCryptSet &wxc) override
 Setup object using supplied crypset.
 
void solve (real time, variables_type &input, real dt) override
 applies the variable adjuster to input
 
void Barrier (const WxMsgBase &msg, const real time, variables_type &input) override
 An opportunity for the variable adjuster to perform any MPI operations it needs to after solve is called.
 
- 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, real dt)=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
 
- Public Member Functions inherited from WxObject
virtual ~WxObject ()
 Dtor: destroy object.
 
void setIo (WxIoBase &io)
 Set the I/O pointer for use in object.
 
void setMsg (WxMsgBase &msg)
 Set the msg pointer for use in object.
 
WxIoBasegetIo ()
 Return reference to I/O object.
 
const WxIoBasegetIo () const
 Return constant reference to I/O object.
 
WxMsgBasegetMsg ()
 Return reference to msg object.
 
const WxMsgBasegetMsg () const
 Return const reference to msg object.
 
virtual void setup (const WxCryptSet &wxc)
 Setup object using supplied crypset.
 
virtual void init ()
 Initialize the object.
 
virtual void finishBuild ()
 Finish building the object.
 
virtual void load (WxIoBase &io, const WxIoNodeType &grpNode)
 Load object from file.
 
virtual void dump (WxIoBase &io, WxIoNodeType &grpNode) const
 Dump object to file.
 
virtual std::string name () const
 Get name of object.
 
void setName (const std::string &nm)
 Set object's name.
 

Protected Member Functions

void allocate ()
 
void zero ()
 
realderivative_face_jump_sum_at (unsigned int comp_index, unsigned int face_index, unsigned int m)
 
real element_volume (unsigned int element)
 
void matvec_Np (const real *A, real *x, real *dst)
 
void compute_multiderivatives (unsigned int element)
 Compute the list of all partial derivatives by repeated multiplication with the D_x, D_y, D_z matrices.
 
void store_multiderivatives_to_global_nodes (unsigned int comp_index, unsigned int element)
 Extract the values of the partial derivatives at face nodes and store them to another intermediate array, the derivative_face_values vector.
 
real sum_over_face_integrals (unsigned int comp_index, unsigned int global_face_index, unsigned int m)
 
real estimate_wavespeed_normal_to_face (unsigned int element_index, unsigned int face_index, std::vector< wxm::array::patch_array_t * > input)
 
void filter_orthogonal_polynomial_modes (unsigned int comp_index, unsigned int element_index, real dt, std::vector< wxm::array::patch_array_t * > input)
 
- Protected Member Functions inherited from WxObject
 WxObject ()
 Create object, that will be initialized subsequently.
 
 WxObject (const std::string &name)
 Create object with given name bypassing object setup phase Protected because there is no reason to have a WxObject directly, as it is meant to be a parent class.
 

Additional Inherited Members

- Public Types inherited from wxm::dfem::variable_adjuster::variable_adjuster_t
typedef wxm::temporal_solver::variables_type variables_type
 
- 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
 

Constructor & Destructor Documentation

◆ oedg_limiter()

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

Member Function Documentation

◆ allocate()

void wxm::dfem::variable_adjuster::limiter::oedg_limiter::allocate ( )
protected

◆ Barrier()

void wxm::dfem::variable_adjuster::limiter::oedg_limiter::Barrier ( const WxMsgBase msg,
const real  time,
variables_type input 
)
overridevirtual

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 from wxm::dfem::variable_adjuster::variable_adjuster_t.

◆ compute_multiderivatives()

void wxm::dfem::variable_adjuster::limiter::oedg_limiter::compute_multiderivatives ( unsigned int  element)
protected

Compute the list of all partial derivatives by repeated multiplication with the D_x, D_y, D_z matrices.

After this function is called, _nodal_derivative_values_scratch contains nodal values of each of the (in 2d) (_N_poly_degree+2)*(_N_poly_degree+1) / 2 partial derivatives.

◆ derivative_face_jump_sum_at()

real & wxm::dfem::variable_adjuster::limiter::oedg_limiter::derivative_face_jump_sum_at ( unsigned int  comp_index,
unsigned int  face_index,
unsigned int  m 
)
protected

◆ element_volume()

real wxm::dfem::variable_adjuster::limiter::oedg_limiter::element_volume ( unsigned int  element)
protected

◆ estimate_wavespeed_normal_to_face()

real wxm::dfem::variable_adjuster::limiter::oedg_limiter::estimate_wavespeed_normal_to_face ( unsigned int  element_index,
unsigned int  face_index,
std::vector< wxm::array::patch_array_t * >  input 
)
protected

◆ filter_orthogonal_polynomial_modes()

void wxm::dfem::variable_adjuster::limiter::oedg_limiter::filter_orthogonal_polynomial_modes ( unsigned int  comp_index,
unsigned int  element_index,
real  dt,
std::vector< wxm::array::patch_array_t * >  input 
)
protected

◆ matvec_Np()

void wxm::dfem::variable_adjuster::limiter::oedg_limiter::matvec_Np ( const real A,
real x,
real dst 
)
protected

◆ setup()

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

Setup object using supplied crypset.

This method should read in parameters needed to initialize it. May only be called once.

Parameters
wxcCryptset using which the object is set up.

Reimplemented from WxObject.

◆ solve()

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

applies the variable adjuster to input

Parameters
timethe current time
inputa list of (variable, component) pairs. This method should adjust the patch arrays in place.

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

◆ store_multiderivatives_to_global_nodes()

void wxm::dfem::variable_adjuster::limiter::oedg_limiter::store_multiderivatives_to_global_nodes ( unsigned int  comp_index,
unsigned int  element 
)
protected

Extract the values of the partial derivatives at face nodes and store them to another intermediate array, the derivative_face_values vector.

◆ sum_over_face_integrals()

real wxm::dfem::variable_adjuster::limiter::oedg_limiter::sum_over_face_integrals ( unsigned int  comp_index,
unsigned int  global_face_index,
unsigned int  m 
)
protected

◆ zero()

void wxm::dfem::variable_adjuster::limiter::oedg_limiter::zero ( )
protected

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