1#ifndef WMBASISARRAYSET_H
2#define WMBASISARRAYSET_H
6#include "warpxm/warpxm_config.h"
19 const std::string& basisArraySetName,
20 const std::string& vspace_basisName,
21 const size_t vspace_ndims);
161 WxExcept wxe(
"WmBasisArraySet.h : ");
162 wxe <<
"Positivity-preserving quadrature node positions only defined for "
163 "1-dimensional elements"
182 WxExcept wxe(
"WmBasisArraySet.h : ");
183 wxe <<
"Positivity-preserving quadrature node positions only defined for "
184 "1 and 2-dimensional elements"
202 WxExcept wxe(
"WmBasisArraySet.h : ");
203 wxe <<
"Positivity-preserving quadrature node positions only defined for "
204 "1 and 2-dimensional elements"
240 WxExcept wxe(
"WmBasisArraySet.h : ");
241 wxe <<
"Positivity-preserving quadrature weights only defined for "
242 "1-dimensional elements"
248 const std::vector<real>&
290 const std::vector<std::function<
real(
const std::array<real, 3>&)>>&
Definition: wmbasisarrayset.h:14
size_t getBasisArrayBlockSize_InternalFlux() const
Definition: wmbasisarrayset.h:78
int getNumDims() const
Definition: wmbasisarrayset.h:44
std::vector< std::vector< int > > _Drcsr_col
Definition: wmbasisarrayset.h:479
const std::vector< real > & getBasisArray_LinearAverage() const
Definition: wmbasisarrayset.h:259
size_t getNumPositivityPreservingQuadNodes()
Definition: wmbasisarrayset.h:169
int getNumFaceNodes(int face_index) const
Definition: wmbasisarrayset.h:320
const real * getBasisArray_NumericalFlux() const
Definition: wmbasisarrayset.h:215
const real * getBasisArray_CollocationToOrthogonal() const
Definition: wmbasisarrayset.h:275
size_t getBasisArraySize_InternalFlux() const
Definition: wmbasisarrayset.h:96
int _numInteriorPositivityPreservingQuadNodes
Definition: wmbasisarrayset.h:415
std::vector< int > _subElementConnectivity
Definition: wmbasisarrayset.h:422
int _basisArray_NumericalFlux_Size
Definition: wmbasisarrayset.h:424
std::vector< std::vector< int > > _ups1csr_rowptr
Definition: wmbasisarrayset.h:485
std::vector< real > _basisArray_NumericalFlux_altFace
Definition: wmbasisarrayset.h:449
std::vector< int > _num_face_nodes_per_face
Definition: wmbasisarrayset.h:440
int getNumOrientations() const
Definition: wmbasisarrayset.h:325
std::vector< std::vector< int > > _faceNodes
Definition: wmbasisarrayset.h:467
int _numTotalFaceNodesDeduplicated
Definition: wmbasisarrayset.h:406
int _numDims
Definition: wmbasisarrayset.h:410
std::vector< real > _nodePositions
Definition: wmbasisarrayset.h:447
const std::vector< real > & getBasisArray_evaluateAtInteriorPositivityPreservingQuadNodes() const
Definition: wmbasisarrayset.h:249
std::vector< real > _basisArray_OrthogonalToCollocation
Definition: wmbasisarrayset.h:455
std::vector< std::vector< int > > _Drcsr_rowptr
Definition: wmbasisarrayset.h:480
const std::vector< int > & getBasisArrayDerivativeMatrixCSRCol(const int dim) const
Definition: wmbasisarrayset.h:368
int _numFacesPerElement
Definition: wmbasisarrayset.h:401
std::vector< std::vector< real > > _ups2csr_val
Definition: wmbasisarrayset.h:473
int getNumFaceTypes() const
Definition: wmbasisarrayset.h:315
std::vector< std::vector< real > > _Drcsr_val
Definition: wmbasisarrayset.h:478
std::vector< real > _basisArray_InternalFlux
Definition: wmbasisarrayset.h:451
std::vector< std::vector< int > > _ups2csr_col
Definition: wmbasisarrayset.h:474
const real * getBasisArray_GaussQuad() const
Definition: wmbasisarrayset.h:227
size_t getNumInteriorPositivityPreservingQuadNodes() const
Definition: wmbasisarrayset.h:190
std::vector< real > _basisArray_evaluateAtInteriorPositivityPreservingQuadNodes
Definition: wmbasisarrayset.h:464
int _numFacesPerElementSquares
Definition: wmbasisarrayset.h:402
int _numTotalNodes
Definition: wmbasisarrayset.h:408
int _numInternalNodes
Definition: wmbasisarrayset.h:407
int getNumSubElements() const
Definition: wmbasisarrayset.h:121
int _basisArray_LinearCenter_Size
Definition: wmbasisarrayset.h:428
bool _has_csr
Definition: wmbasisarrayset.h:470
int _num_face_types
Definition: wmbasisarrayset.h:436
std::vector< std::vector< int > > _ups2csr_rowptr
Definition: wmbasisarrayset.h:475
const int * getFaceNodes(const int face_index) const
Definition: wmbasisarrayset.h:300
const int * getSubElementConnectivity() const
Definition: wmbasisarrayset.h:129
int _basisArray_Derivative_Approximation_Size
Definition: wmbasisarrayset.h:430
size_t getBasisArraySize_NumericalFlux() const
Definition: wmbasisarrayset.h:88
const real * getBasisArray_MonomialConversion() const
Definition: wmbasisarrayset.h:267
int _numFaceNodes
Definition: wmbasisarrayset.h:403
size_t getBasisArraySize_NumericalFlux_altFace() const
Definition: wmbasisarrayset.h:92
int getNumFaceNodesForFaceType(int face_type) const
Definition: wmbasisarrayset.h:330
std::vector< real > _basisArray_GaussQuad
Definition: wmbasisarrayset.h:444
const std::vector< real > & getNodePositions() const
Definition: wmbasisarrayset.h:143
int _two_num_flux_arrays_flag
Definition: wmbasisarrayset.h:397
real getInverseElementVolume() const
1/element volume, in the local coordinate system useful for turning volume averages into volume integ...
Definition: wmbasisarrayset.h:309
int getNumTotalNodes() const
Definition: wmbasisarrayset.h:48
real getCFLLimit() const
Definition: wmbasisarrayset.h:65
int _numFaceNodesSquares
Definition: wmbasisarrayset.h:404
std::vector< int > _faceNodesDeduplicated
Definition: wmbasisarrayset.h:441
int getNumInternalNodes() const
Definition: wmbasisarrayset.h:56
int getNumFacesPerElement() const
Definition: wmbasisarrayset.h:24
int _numTotalFaceNodes
Definition: wmbasisarrayset.h:405
std::vector< std::vector< int > > _orientations
Definition: wmbasisarrayset.h:466
size_t getBasisArraySize_LinearAverage() const
Definition: wmbasisarrayset.h:106
const real * getBasisArray_LinearCenter() const
Definition: wmbasisarrayset.h:263
std::vector< std::vector< real > > _ups1csr_val
Definition: wmbasisarrayset.h:483
const std::vector< real > & getBasisArrayDerivativeMatrixCSRVal(const int dim) const
Definition: wmbasisarrayset.h:363
const real * getBasisArray_DerivativeApproximation() const
Definition: wmbasisarrayset.h:254
int _numGaussQuadNodes
Definition: wmbasisarrayset.h:409
const std::vector< real > & getBasisArrayNumericalFluxCSRVal(const int face) const
Definition: wmbasisarrayset.h:379
std::vector< real > _basisArray_CollocationToOrthogonal
Definition: wmbasisarrayset.h:456
int _spatialOrder
Definition: wmbasisarrayset.h:414
std::vector< real > _basisArray_faceQuadratureWeights
Definition: wmbasisarrayset.h:462
const std::vector< int > & getNumFaceNodesVector() const
Definition: wmbasisarrayset.h:335
const std::vector< std::function< real(const std::array< real, 3 > &)> > & get_monomial_functions() const
Definition: wmbasisarrayset.h:291
const real * getBasisArray_InternalFlux() const
Definition: wmbasisarrayset.h:223
int _basisArray_NumericalFlux_altFace_Size
Definition: wmbasisarrayset.h:425
const std::vector< int > & getBasisArrayInternalFluxCSRRowPtr(const int dim) const
Definition: wmbasisarrayset.h:357
std::vector< real > _basisArray_NumericalFlux
Definition: wmbasisarrayset.h:448
const real * getBasisArray_OrthogonalToCollocation() const
Definition: wmbasisarrayset.h:271
size_t getBasisArraySize_DerivativeApproximation() const
Definition: wmbasisarrayset.h:101
size_t getBasisArrayBlockSize_NumericalFlux() const
Definition: wmbasisarrayset.h:74
const std::vector< real > & getNodePositions_PositivityPreservingQuad() const
Definition: wmbasisarrayset.h:153
int getNumTotalFaceNodesDeduplicated() const
Get the total number of face nodes on the element, not double-counting nodes that live on more than o...
Definition: wmbasisarrayset.h:40
std::vector< int > _num_faces_per_face_type
Definition: wmbasisarrayset.h:438
int _numOrientations
Definition: wmbasisarrayset.h:413
bool has_csr() const
Definition: wmbasisarrayset.h:341
std::vector< std::function< real(const std::array< real, 3 > &)> > _monomial_functions
Definition: wmbasisarrayset.h:457
int _numNodesPerSubElement
Definition: wmbasisarrayset.h:421
int _numDimsUnstruct
Definition: wmbasisarrayset.h:411
int _basisArray_InternalFlux_Size
Definition: wmbasisarrayset.h:426
size_t getBasisArraySize_MonomialConversion() const
Definition: wmbasisarrayset.h:116
const std::vector< real > & getNodePositionsGaussQuad() const
Definition: wmbasisarrayset.h:148
std::vector< real > _basisArray_LagrangeOnGQnodes
Definition: wmbasisarrayset.h:445
size_t getBasisArraySize_LinearCenter() const
Definition: wmbasisarrayset.h:111
int _numSubElements
Definition: wmbasisarrayset.h:420
const real * getBasisArray_LagrangeOnGQnodes() const
Definition: wmbasisarrayset.h:210
int getSpatialOrder() const
Definition: wmbasisarrayset.h:60
const std::vector< int > & getBasisArrayDerivativeCSRRowPtr(const int dim) const
Definition: wmbasisarrayset.h:373
std::vector< real > _basisArray_MonomialConversion
Definition: wmbasisarrayset.h:454
int getNumTotalFaceNodes() const
Definition: wmbasisarrayset.h:32
const real * getBasisArray_FaceQuadratureWeights() const
an array of length numNodesPerFace.
Definition: wmbasisarrayset.h:285
size_t getBasisArrayBlockSize_DerivativeApproximation() const
Definition: wmbasisarrayset.h:83
int getNumNodesPerSubElement() const
Definition: wmbasisarrayset.h:125
real _cfl
Definition: wmbasisarrayset.h:432
std::vector< int > _ups2csr_val_lengths
Definition: wmbasisarrayset.h:472
const std::vector< real > & getBasisArrayInternalFluxCSRVal(const int dim) const
Definition: wmbasisarrayset.h:347
int getNumFaceNodes() const
Definition: wmbasisarrayset.h:28
int _basisArray_LinearAverage_Size
Definition: wmbasisarrayset.h:427
void loadBasis(const int primitiveID, const std::string &basisArraySetName, const std::string &vspace_basisName, const size_t vspace_ndims)
std::vector< int > _ups1csr_val_lengths
Definition: wmbasisarrayset.h:482
std::vector< std::vector< int > > _ups1csr_col
Definition: wmbasisarrayset.h:484
std::vector< real > _basisArray_LinearCenter
Definition: wmbasisarrayset.h:453
std::vector< int > _num_face_nodes_per_face_type
Definition: wmbasisarrayset.h:439
const std::vector< int > & getBasisArrayInternalFluxCSRCol(const int dim) const
Definition: wmbasisarrayset.h:352
const int * getOrientations(const int index) const
Definition: wmbasisarrayset.h:296
std::vector< int > _Drcsr_val_lengths
Definition: wmbasisarrayset.h:477
size_t getBasisArrayBlockSize_Source() const
Definition: wmbasisarrayset.h:70
std::vector< real > _nodePositionsGaussQuad
Definition: wmbasisarrayset.h:443
void loadFile(const std::string &filename)
real _vol_multiplier
Definition: wmbasisarrayset.h:417
const std::vector< int > & getFaceNodesDeduplicated() const
Return the list of all face node indices, with duplicates (e.g.
Definition: wmbasisarrayset.h:138
std::vector< real > _basisArray_LinearAverage
Definition: wmbasisarrayset.h:452
const std::vector< int > & getBasisArrayNumericalFluxCSRCol(const int face) const
Definition: wmbasisarrayset.h:384
const std::vector< int > & getBasisArrayNumericalFluxCSRRowPtr(const int face) const
Definition: wmbasisarrayset.h:389
std::vector< real > _basisArray_Derivative_Approximation
Definition: wmbasisarrayset.h:458
const std::vector< real > & getBasisArray_PositivityPreservingQuadWeights() const
Definition: wmbasisarrayset.h:232
const real * getBasisArray_NumericalFlux_altFace() const
Definition: wmbasisarrayset.h:219
int getNumGaussQuadNodes() const
Definition: wmbasisarrayset.h:52
int _basisArray_MonomialConversion_Size
Definition: wmbasisarrayset.h:429
wxm::lib::Except is the class to use for creating and throwing exceptions.
Definition: wxexcept.h:31
#define real
Definition: wmoclunstructuredreconstruction.h:11