1#ifndef WXM_DFEM_SPATIALSOLVER_NDG_H
2#define WXM_DFEM_SPATIALSOLVER_NDG_H
60 const std::shared_ptr<TimestepConstraint>
101 const std::shared_ptr<TimestepConstraint>
104 const std::vector<wxm::array::patch_array_t*>& input);
106 const std::shared_ptr<TimestepConstraint>
109 const std::vector<wxm::array::patch_array_t*>& input);
115 virtual const std::shared_ptr<TimestepConstraint>
118 const std::vector<wxm::array::patch_array_t*>& input);
121 std::vector<wxm::array::patch_array_t*>& output);
168 std::vector<std::vector<std::vector<real>>>
_sources;
Base Class for physics applications.
Definition: wmapplication.h:93
Definition: wmbasisarrayset.h:13
int getNumTotalNodes() const
Definition: wmbasisarrayset.h:47
WxCryptSet extends WxCrypt by providing, in addition to name-value pairs, an set of named WxCryptSets...
Definition: wxcryptset.h:35
WxRange represents a hyper-rectangular domain of an n-dimensional space of integers.
Definition: wxrange.h:23
The ndg_t class is used for solving the discontinuous Galerkin method.
Definition: ndg.h:46
real _penalty_beta
Definition: ndg.h:142
std::vector< std::vector< size_t > > app_to_rhs_idcs_int_flux
Cache for convert_to_rhs_indexes() for internal fluxes.
Definition: ndg.h:178
bool _sources_gq
Definition: ndg.h:140
std::vector< std::vector< std::vector< real > > > _sources
Definition: ndg.h:168
bool _has_fluxes
Definition: ndg.h:145
std::vector< std::vector< size_t > > app_to_rhs_idcs_num_flux
Cache for convert_to_rhs_indexes() for numerical fluxes.
Definition: ndg.h:173
bool _test_dt
Definition: ndg.h:137
WmBasisArraySet _basis_set
Definition: ndg.h:152
const std::shared_ptr< TimestepConstraint > exKernelBC(const WxRange &face_scope_range, const real time, const std::vector< wxm::array::patch_array_t * > &input)
std::unique_ptr< WmUDGGeometry > _dg_geometry
Definition: ndg.h:161
wxm::dfem::tools::scope_t _element_flux
Definition: ndg.h:190
wxm::dfem::tools::scope_t _face_flux
Definition: ndg.h:191
WxRange _chunk_size_face
Definition: ndg.h:194
std::string _source_quad_style
Definition: ndg.h:155
bool _sources_lgl
Definition: ndg.h:139
const std::shared_ptr< TimestepConstraint > ex_kernel(const WxRange &face_scope_range, const real time, const std::vector< wxm::array::patch_array_t * > &input)
std::vector< int > _numerical_flux_bc_boundary_global_face_indexes
vector of boundary face indexes on which to apply boundary conditions through numerical fluxes
Definition: ndg.h:206
void initializer_function()
const std::shared_ptr< TimestepConstraint > solve(const real time, const variables_type &input, variables_type &output) override
Computes the RHS.
void print_kernel(const WxRange &element_scope_range)
std::string _basisSetName
Definition: ndg.h:149
std::vector< std::vector< size_t > > _app_to_rhs_idcs_bc_num_flux
Cache for convert_to_rhs_indexes() for bc numerical fluxes.
Definition: ndg.h:188
size_t get_num_dof() const override
Gets the number of degrees of freedom per element per component.
Definition: ndg.h:88
real _cfl
Definition: ndg.h:136
std::vector< std::vector< size_t > > app_to_rhs_idcs_source
Cache for convert_to_rhs_indexes() for sources.
Definition: ndg.h:183
virtual const std::shared_ptr< TimestepConstraint > in_kernel(const WxRange &element_scope_range, const real time, const std::vector< wxm::array::patch_array_t * > &input)
virtual void rhs_kernel(const WxRange &element_scope_range, std::vector< wxm::array::patch_array_t * > &output)
std::vector< std::string > _numerical_flux_bc_boundaries
vector of boundaries on which to apply boundary conditions through numerical fluxes
Definition: ndg.h:200
real _penalty_eta
Definition: ndg.h:143
bool _has_sources
Definition: ndg.h:146
bool add_definition(const WmApplication &app, const int key)
std::vector< std::vector< std::vector< real > > > _numerical_fluxes
Definition: ndg.h:164
const WxRange & element_full_range() const override
Get a range of elements associated with the entire patch (periphery+interior)
Definition: ndg.h:83
std::vector< std::vector< std::vector< std::vector< real > > > > _internal_fluxes
Definition: ndg.h:165
const WxRange & element_periphery_range() const override
Get a range of elements associated with the interior.
Definition: ndg.h:74
void setup(const WxCryptSet &wxc) override
setup sets up the DG solver
WxRange _chunk_size_element
Definition: ndg.h:193
const WxRange & element_interior_range() const override
Get a range of elements associated with the interior.
Definition: ndg.h:66
void zero_fluxes() override
The WmSpatialSolver class is a base class for spatial sovers.
Definition: spatial_solver.h:32
wxm::temporal_solver::variables_type variables_type
Definition: spatial_solver.h:46
Base namespace for everything not included in the global namespace.
Definition: field_source.h:8
#define real
Definition: wmoclunstructuredreconstruction.h:11