WARPXM v1.10.0
Loading...
Searching...
No Matches
wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral Class Reference

The BoundaryFluxIntegral class calculates the line integral of the numerical flux along a boundary and saves it to a unique_distributed_variable. More...

#include <boundary_flux_integral.h>

Inheritance diagram for wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral:
wxm::dfem::variable_adjuster::variable_adjuster_t WmPatchProcess

Detailed Description

The BoundaryFluxIntegral class calculates the line integral of the numerical flux along a boundary and saves it to a unique_distributed_variable.

Warning
Only works for 2D Cartesian and cylindrical coordinates.
Uses LGL nodes and weights. This will result in an error for nonlinear functions of the conserved variables, such as radial integral in cylindrical coordinates.

If _is_cylindrical = False: Calculates \( \int F \cdot \hat{n} dL \) along boundary line. Units for linear mass density flux are [mass * width^-1 * time^-1].

If _is_cylindrical = True: Calculates \( 2 \pi \int r F \cdot \hat{n} dr \) along boundary surface, assuming azimuthal symmetry. Units for mass flux are [mass * time^-1].

@TODO Generalize to 3D.

Warpy constructor: warpy::variable_adjusters::unique_variable_adjuster::boundary_flux_integral

Public Member Functions

 BoundaryFluxIntegral ()=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.
 
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)=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< std::string > _boundary_names
 
std::unique_ptr< WmBasisArraySet_basis_set
 
std::unique_ptr< WmBasisArraySet_surface_basis_set
 
std::unique_ptr< WmUDGGeometry_dg_geometry
 
std::string _basis_set_name
 Spatial basis set name.
 
std::vector< size_t > _out_idcs
 Indices used in apps definitions.
 
std::vector< size_t > _unique_var_indcs
 Indices for unique variable that holds integrated value.
 
bool _is_cylindrical
 Whether geometry is in 2D cylindrical coordinates.
 
int _ir
 Radial coordinate.
 
real _penalty_beta
 Beta penalty for LDG.
 
real _penalty_eta
 Eta penalty for LDG.
 
- 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
 

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