WARPXM v1.10.0
|
The WmSpatialSolver class is a base class for spatial sovers. More...
#include <spatial_solver.h>
The WmSpatialSolver class is a base class for spatial sovers.
Public Types | |
typedef wxm::temporal_solver::variables_type | variables_type |
Public Member Functions | |
spatial_solver_t ()=default | |
~spatial_solver_t () override=default | |
void | setup (const WxCryptSet &wxc) override |
Setup the spatial solver using the cryptset. | |
virtual const std::shared_ptr< TimestepConstraint > | solve (const real time, const variables_type &input, variables_type &output)=0 |
Solves the spatial system. | |
virtual void | Barrier (const WxMsgBase &msg, const real time, variables_type &output) |
std::vector< wxm::array::patch_array_t * > | get_patch_arrays (const variables_type &in) const |
virtual const WxRange & | element_periphery_range () const =0 |
Get a range of elements associated with the periphery. | |
virtual const WxRange & | element_interior_range () const =0 |
Get a range of elements associated with the interior. | |
virtual const WxRange & | element_full_range () const =0 |
Get a range of elements associated with the entire patch (periphery+interior) | |
virtual void | zero_fluxes ()=0 |
const std::vector< size_t > & | get_output_indices () const |
std::vector< size_t > | convert_to_rhs_indexes (const std::vector< int > &indexes) const |
Converts a vector of indexes to RHS indexes TODO: probably can remove at some point in the future? | |
virtual size_t | get_num_dof () const =0 |
Gets the number of degrees of freedom per element per component. | |
void | process () override |
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 WmUnstructuredPatch & | get_patch () const |
const WmSolver & | get_solver () const |
Public Attributes | |
bool | test_dt = true |
True if this special solver should compute a stability-based recommended time step. | |
std::vector< std::unique_ptr< WmApplication > > | _apps |
Protected Attributes | |
std::vector< size_t > | rhs_idcs_ |
std::vector< size_t > | all_idcs_ |
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 |
|
default |
|
overridedefault |
|
inlinevirtual |
std::vector< size_t > wxm::dfem::solver::spatial_solver_t::convert_to_rhs_indexes | ( | const std::vector< int > & | indexes | ) | const |
Converts a vector of indexes to RHS indexes TODO: probably can remove at some point in the future?
indexes | Indexes to convert |
|
pure virtual |
Get a range of elements associated with the entire patch (periphery+interior)
Implemented in wxm::dfem::solver::dg::ndg_t, wxm::dfem::solver::dg::NDGKinetic, and wxm::dfem::solver::dg::UniqueVariableSolver.
|
pure virtual |
Get a range of elements associated with the interior.
Implemented in wxm::dfem::solver::dg::ndg_t, wxm::dfem::solver::dg::NDGKinetic, and wxm::dfem::solver::dg::UniqueVariableSolver.
|
pure virtual |
Get a range of elements associated with the periphery.
Implemented in wxm::dfem::solver::dg::ndg_t, wxm::dfem::solver::dg::NDGKinetic, and wxm::dfem::solver::dg::UniqueVariableSolver.
|
pure virtual |
Gets the number of degrees of freedom per element per component.
Implemented in wxm::dfem::solver::dg::ndg_t, wxm::dfem::solver::dg::NDGKinetic, and wxm::dfem::solver::dg::UniqueVariableSolver.
|
inline |
std::vector< wxm::array::patch_array_t * > wxm::dfem::solver::spatial_solver_t::get_patch_arrays | ( | const variables_type & | in | ) | const |
|
inlineoverridevirtual |
Implements WmPatchProcess.
|
overridevirtual |
Setup the spatial solver using the cryptset.
wxc | The cryptset |
Reimplemented from WmPatchProcess.
|
pure virtual |
Solves the spatial system.
time | |
input | |
output | assumed to be 0-filled before |
Implemented in wxm::dfem::solver::dg::ndg_t, wxm::dfem::solver::dg::NDGKinetic, and wxm::dfem::solver::dg::UniqueVariableSolver.
|
pure virtual |
std::vector<std::unique_ptr<WmApplication> > wxm::dfem::solver::spatial_solver_t::_apps |
|
protected |
|
protected |
bool wxm::dfem::solver::spatial_solver_t::test_dt = true |
True if this special solver should compute a stability-based recommended time step.