WARPXM v1.10.0
|
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>
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. | |
![]() | |
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. | |
![]() | |
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 WmUnstructuredPatch & | get_patch () const |
const WmSolver & | get_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 |
![]() | |
std::vector< size_t > | _var_idcs |
std::vector< std::unique_ptr< WmApplication > > | _apps |
bool | _grab_all = false |
int | _priority |
![]() | |
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 | |
![]() | |
typedef wxm::temporal_solver::variables_type | variables_type |
|
default |
Constructor.
|
overridevirtual |
Setup the boundary condition using the cryptset.
wxc | The cryptset |
Reimplemented from WmPatchProcess.
|
overridevirtual |
Solve the kinetic boundary condition.
time | |
wxc | input q variables, some of which are also written into |
Implements wxm::dfem::variable_adjuster::variable_adjuster_t.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |