WARPXM v1.10.0
Loading...
Searching...
No Matches
wxm::dfem::solver::dg::UniqueVariableSolver Class Reference

The UniqueVariableSolver class is used for solving the RHS for a unique variable for some time integrator advance. More...

#include <unique_variable_solver.h>

Inheritance diagram for wxm::dfem::solver::dg::UniqueVariableSolver:
wxm::dfem::solver::spatial_solver_t WmPatchProcess

Detailed Description

The UniqueVariableSolver class is used for solving the RHS for a unique variable for some time integrator advance.

Public Member Functions

 UniqueVariableSolver ()
 Constructor.
 
void setup (const WxCryptSet &wxc) override
 setup sets up the DG solver
 
const std::shared_ptr< TimestepConstraintsolve (const real time, const variables_type &input, variables_type &output) override
 Computes the RHS.
 
const WxRangeelement_interior_range () const override
 Get a range of elements associated with the interior.
 
const WxRangeelement_periphery_range () const override
 Get a range of elements associated with the interior.
 
const WxRangeelement_full_range () const override
 Get a range of elements associated with the entire patch (periphery+interior)
 
void zero_fluxes () override
 
size_t get_num_dof () const override
 Gets the number of degrees of freedom per element per component.
 
- Public Member Functions inherited from wxm::dfem::solver::spatial_solver_t
 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< TimestepConstraintsolve (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 WxRangeelement_periphery_range () const =0
 Get a range of elements associated with the periphery.
 
virtual const WxRangeelement_interior_range () const =0
 Get a range of elements associated with the interior.
 
virtual const WxRangeelement_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 WmUnstructuredPatchget_patch () const
 
const WmSolverget_solver () const
 

Protected Attributes

std::unique_ptr< WxRange_dummy_range
 
- Protected Attributes inherited from wxm::dfem::solver::spatial_solver_t
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
 

Additional Inherited Members

- Public Types inherited from wxm::dfem::solver::spatial_solver_t
typedef wxm::temporal_solver::variables_type variables_type
 
- Public Attributes inherited from wxm::dfem::solver::spatial_solver_t
bool test_dt = true
 True if this special solver should compute a stability-based recommended time step.
 
std::vector< std::unique_ptr< WmApplication > > _apps
 

Constructor & Destructor Documentation

◆ UniqueVariableSolver()

wxm::dfem::solver::dg::UniqueVariableSolver::UniqueVariableSolver ( )

Constructor.

Member Function Documentation

◆ element_full_range()

const WxRange & wxm::dfem::solver::dg::UniqueVariableSolver::element_full_range ( ) const
inlineoverridevirtual

Get a range of elements associated with the entire patch (periphery+interior)

Implements wxm::dfem::solver::spatial_solver_t.

◆ element_interior_range()

const WxRange & wxm::dfem::solver::dg::UniqueVariableSolver::element_interior_range ( ) const
inlineoverridevirtual

Get a range of elements associated with the interior.

Implements wxm::dfem::solver::spatial_solver_t.

◆ element_periphery_range()

const WxRange & wxm::dfem::solver::dg::UniqueVariableSolver::element_periphery_range ( ) const
inlineoverridevirtual

Get a range of elements associated with the interior.

Implements wxm::dfem::solver::spatial_solver_t.

◆ get_num_dof()

size_t wxm::dfem::solver::dg::UniqueVariableSolver::get_num_dof ( ) const
inlineoverridevirtual

Gets the number of degrees of freedom per element per component.

Implements wxm::dfem::solver::spatial_solver_t.

◆ setup()

void wxm::dfem::solver::dg::UniqueVariableSolver::setup ( const WxCryptSet wxc)
overridevirtual

setup sets up the DG solver

Parameters
wxc

Reimplemented from WmPatchProcess.

◆ solve()

const std::shared_ptr< TimestepConstraint > wxm::dfem::solver::dg::UniqueVariableSolver::solve ( const real  time,
const variables_type input,
variables_type output 
)
overridevirtual

Computes the RHS.

Implements wxm::dfem::solver::spatial_solver_t.

◆ zero_fluxes()

void wxm::dfem::solver::dg::UniqueVariableSolver::zero_fluxes ( )
overridevirtual

Member Data Documentation

◆ _dummy_range

std::unique_ptr<WxRange> wxm::dfem::solver::dg::UniqueVariableSolver::_dummy_range
protected

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