WARPXM v1.10.0
Loading...
Searching...
No Matches
variable adjuster

Classes

class  wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral
 The BoundaryFluxIntegral class calculates the line integral of the numerical flux along a boundary and saves it to a unique_distributed_variable. More...
 
class  wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral
 The BoundaryLineIntegral class calculates a line integral along a boundary and applies it to a unique_distributed_variable which should be of size 1. More...
 

Functions

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

Variables

std::vector< std::string > wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_boundary_names
 
std::unique_ptr< WmBasisArraySetwxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_basis_set
 
std::unique_ptr< WmBasisArraySetwxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_surface_basis_set
 
std::unique_ptr< WmUDGGeometrywxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_dg_geometry
 
std::string wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_basis_set_name
 Spatial basis set name.
 
std::vector< size_t > wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_out_idcs
 Indices used in apps definitions.
 
std::vector< size_t > wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_unique_var_indcs
 Indices for unique variable that holds integrated value.
 
bool wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_is_cylindrical
 Whether geometry is in 2D cylindrical coordinates.
 
int wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_ir
 Radial coordinate.
 
real wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_penalty_beta
 Beta penalty for LDG.
 
real wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_penalty_eta
 Eta penalty for LDG.
 
std::vector< std::string > wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::_boundary_names
 
std::unique_ptr< WmBasisArraySetwxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::_basis_set
 
std::unique_ptr< WmBasisArraySetwxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::_surface_basis_set
 
std::unique_ptr< WmUDGGeometrywxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::_dg_geometry
 
std::string wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::_basis_set_name
 
std::vector< size_t > wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::_out_idcs
 

Detailed Description

Function Documentation

◆ Barrier() [1/2]

void wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::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.

◆ Barrier() [2/2]

void wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::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.

◆ BoundaryFluxIntegral()

wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::BoundaryFluxIntegral ( )
default

◆ BoundaryLineIntegral()

wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::BoundaryLineIntegral ( )
default

◆ setup() [1/2]

virtual void wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::setup ( const WxCryptSet wxc)
overridevirtual

Setup the spatial solver using the cryptset.

Parameters
wxcThe cryptset

Reimplemented from WmPatchProcess.

◆ setup() [2/2]

virtual void wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::setup ( const WxCryptSet wxc)
overridevirtual

Setup the spatial solver using the cryptset.

Parameters
wxcThe cryptset

Reimplemented from WmPatchProcess.

◆ solve() [1/2]

void wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::solve ( real  time,
variables_type input 
)
overridevirtual

Solves the spatial system and puts result in _rhs.

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

◆ solve() [2/2]

void wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::solve ( real  time,
variables_type input 
)
overridevirtual

Solves the spatial system and puts result in _rhs.

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

Variable Documentation

◆ _basis_set [1/2]

std::unique_ptr<WmBasisArraySet> wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_basis_set
protected

◆ _basis_set [2/2]

std::unique_ptr<WmBasisArraySet> wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::_basis_set
protected

◆ _basis_set_name [1/2]

std::string wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_basis_set_name
protected

Spatial basis set name.

◆ _basis_set_name [2/2]

std::string wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::_basis_set_name
protected

◆ _boundary_names [1/2]

std::vector<std::string> wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_boundary_names
protected

◆ _boundary_names [2/2]

std::vector<std::string> wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::_boundary_names
protected

◆ _dg_geometry [1/2]

std::unique_ptr<WmUDGGeometry> wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_dg_geometry
protected

◆ _dg_geometry [2/2]

std::unique_ptr<WmUDGGeometry> wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::_dg_geometry
protected

◆ _ir

int wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_ir
protected

Radial coordinate.

◆ _is_cylindrical

bool wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_is_cylindrical
protected

Whether geometry is in 2D cylindrical coordinates.

Default = False.

◆ _out_idcs [1/2]

std::vector<size_t> wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_out_idcs
protected

Indices used in apps definitions.

◆ _out_idcs [2/2]

std::vector<size_t> wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::_out_idcs
protected

◆ _penalty_beta

real wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_penalty_beta
protected

Beta penalty for LDG.

See Datta dissertation, Section 3.2 for construction of the LDG method as implemented here. The "eta" penalty-weighting parameter in the code is refereed to as "alpha" in the dissertation, and the stabilizing penalty "tau" in Hesthaven "Nodal Discontinuous Galerkin Methods" 2008.

See Hesthaven, Chapter 7.2 for further reading on the topic, and the selection of values for eta/alpha/tau.

◆ _penalty_eta

real wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_penalty_eta
protected

Eta penalty for LDG.

◆ _surface_basis_set [1/2]

std::unique_ptr<WmBasisArraySet> wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_surface_basis_set
protected

◆ _surface_basis_set [2/2]

std::unique_ptr<WmBasisArraySet> wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryLineIntegral::_surface_basis_set
protected

◆ _unique_var_indcs

std::vector<size_t> wxm::dfem::variable_adjuster::unique_variable_adjuster::BoundaryFluxIntegral::_unique_var_indcs
protected

Indices for unique variable that holds integrated value.