WARPXM v1.10.0
Loading...
Searching...
No Matches
wxm::dfem::variable_adjuster::boundary_condition::KineticBoundaryCondition Class Reference

The Kinetic Boundary Condition class applies phase space boundary conditions The logic of this module is to apply phase space boundary conditions by identifying boundary nodes in physical space and projecting these up into phase space and applying the phase space boundary conditions according to given apps. More...

#include <kinetic_boundary_condition.h>

Inheritance diagram for wxm::dfem::variable_adjuster::boundary_condition::KineticBoundaryCondition:
wxm::dfem::variable_adjuster::variable_adjuster_t WmPatchProcess

Detailed Description

The Kinetic Boundary Condition class applies phase space boundary conditions The logic of this module is to apply phase space boundary conditions by identifying boundary nodes in physical space and projecting these up into phase space and applying the phase space boundary conditions according to given apps.

This involves calculations figuring out the correct phase space neighbor (outside) node for the inside node of the face. NOTE: This does not apply boundary conditions at the edges of velocity space or any sort or velocity space boundary.

Public Member Functions

 KineticBoundaryCondition ()=default
 Constructor.
 
virtual void setup (const WxCryptSet &wxc) override
 Setup the boundary condition using the cryptset.
 
void solve (real time, variables_type &input) override
 Solve the kinetic boundary condition.
 
- 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 > _boundaryNames
 
std::vector< size_t > _out_indexes
 
bool _is_virtual_bc = false
 
std::shared_ptr< geometry::phase_space::PhaseSpaceDGGeometry_phase_space_dg_geometry
 
std::unique_ptr< geometry::phase_space_element::PhaseSpaceElement_phase_space_element
 
std::unique_ptr< WxRange_velocity_space_element_range
 
- 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

◆ KineticBoundaryCondition()

wxm::dfem::variable_adjuster::boundary_condition::KineticBoundaryCondition::KineticBoundaryCondition ( )
default

Constructor.

Member Function Documentation

◆ setup()

virtual void wxm::dfem::variable_adjuster::boundary_condition::KineticBoundaryCondition::setup ( const WxCryptSet wxc)
overridevirtual

Setup the boundary condition using the cryptset.

Parameters
wxcThe cryptset

Reimplemented from WmPatchProcess.

◆ solve()

void wxm::dfem::variable_adjuster::boundary_condition::KineticBoundaryCondition::solve ( real  time,
variables_type input 
)
overridevirtual

Solve the kinetic boundary condition.

Parameters
time
wxcinput q variables, some of which are also written into

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

Member Data Documentation

◆ _boundaryNames

std::vector<std::string> wxm::dfem::variable_adjuster::boundary_condition::KineticBoundaryCondition::_boundaryNames
protected

◆ _is_virtual_bc

bool wxm::dfem::variable_adjuster::boundary_condition::KineticBoundaryCondition::_is_virtual_bc = false
protected

◆ _out_indexes

std::vector<size_t> wxm::dfem::variable_adjuster::boundary_condition::KineticBoundaryCondition::_out_indexes
protected

◆ _phase_space_dg_geometry

std::shared_ptr<geometry::phase_space::PhaseSpaceDGGeometry> wxm::dfem::variable_adjuster::boundary_condition::KineticBoundaryCondition::_phase_space_dg_geometry
protected

◆ _phase_space_element

std::unique_ptr<geometry::phase_space_element::PhaseSpaceElement> wxm::dfem::variable_adjuster::boundary_condition::KineticBoundaryCondition::_phase_space_element
protected

◆ _velocity_space_element_range

std::unique_ptr<WxRange> wxm::dfem::variable_adjuster::boundary_condition::KineticBoundaryCondition::_velocity_space_element_range
protected

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