Geom Module¶
Unstructured mesh, CGNS I/O, element types, and partitioning.
Namespace Overview¶
-
namespace Geom
Typedefs
-
using tPy_AutoAppendName2ID = py_class_ssp<AutoAppendName2ID>
-
using t_FBCName_2_ID = std::function<t_index(const std::string&)>
-
using t_FBCID_2_Name = std::function<std::string(t_index)>
-
using t_index = int32_t
-
using t_real = double
-
using tPoint = Eigen::Vector3d
-
using tJacobi = Eigen::Matrix3d
-
using tGPoint = Eigen::Matrix3d
-
using tPointMap = Eigen::Map<tPoint, Eigen::Unaligned>
-
using tPointConstMap = Eigen::Map<const tPoint, Eigen::Unaligned>
-
using tGPointMap = Eigen::Map<tGPoint, Eigen::Unaligned>
-
using tGPointConstMap = Eigen::Map<const tGPoint, Eigen::Unaligned>
-
using tSmallCoords = Eigen::Matrix<real, 3, Eigen::Dynamic>
-
using tLocalMatStruct = std::vector<std::vector<index>>
-
using tFDataFieldName = std::function<std::string(int)>
-
using tFDataFieldQuery = tFGetData
-
using tPy_ElemInfo = py_class_ssp<ElemInfo>
-
using tPy_UnstructuredMesh = py_class_ssp<UnstructuredMesh>
-
using tPy_UnstructuredMeshSerialRW = py_class_ssp<UnstructuredMeshSerialRW>
-
using tAdjPair = DNDS::ArrayAdjacencyPair<DNDS::NonUniformSize>
-
using tAdj = decltype(tAdjPair::father)
-
using tPbiPair = ArrayPair<ArrayNodePeriodicBits<DNDS::NonUniformSize>>
-
using tPbi = decltype(tPbiPair::father)
-
using tAdj1Pair = DNDS::ArrayAdjacencyPair<1>
-
using tAdj1 = decltype(tAdj1Pair::father)
-
using tAdj2Pair = DNDS::ArrayAdjacencyPair<2>
-
using tAdj2 = decltype(tAdj2Pair::father)
-
using tAdj3Pair = DNDS::ArrayAdjacencyPair<3>
-
using tAdj3 = decltype(tAdj3Pair::father)
-
using tAdj4Pair = DNDS::ArrayAdjacencyPair<4>
-
using tAdj4 = decltype(tAdj4Pair::father)
-
using tAdj8Pair = DNDS::ArrayAdjacencyPair<8>
-
using tAdj8 = decltype(tAdj8Pair::father)
-
using tCoordPair = DNDS::ArrayPair<DNDS::ArrayEigenVector<3>>
-
using tCoord = decltype(tCoordPair::father)
-
using tIndPair = DNDS::ArrayPair<DNDS::ArrayIndex>
-
using tInd = decltype(tIndPair::father)
-
using tFGetName = std::function<std::string(int)>
Enums
-
enum class MeshLoc : uint8_t
Values:
-
enumerator Unknown
-
enumerator Node
-
enumerator Face
-
enumerator Cell
-
enumerator Unknown
-
enum MeshReaderMode
Values:
-
enumerator UnknownMode
-
enumerator SerialReadAndDistribute
-
enumerator SerialOutput
-
enumerator UnknownMode
-
enum MeshAdjState
Values:
-
enumerator Adj_Unknown
-
enumerator Adj_PointToLocal
-
enumerator Adj_PointToGlobal
-
enumerator Adj_Unknown
-
enum MeshElevationState
Values:
-
enumerator Elevation_Untouched
-
enumerator Elevation_O1O2
-
enumerator Elevation_Untouched
Functions
-
inline void pybind11_AutoAppendName2ID_define(py::module_ &m)
-
inline auto GetFaceName2IDDefault()
- inline DNDS_DEVICE_CALLABLE bool FaceIDIsExternalBC (t_index id)
- inline DNDS_DEVICE_CALLABLE bool FaceIDIsInternal (t_index id)
- inline DNDS_DEVICE_CALLABLE bool FaceIDIsTrueInternal (t_index id)
- inline DNDS_DEVICE_CALLABLE bool FaceIDIsPeriodic (t_index id)
- inline DNDS_DEVICE_CALLABLE bool FaceIDIsPeriodic1 (t_index id)
- inline DNDS_DEVICE_CALLABLE bool FaceIDIsPeriodic2 (t_index id)
- inline DNDS_DEVICE_CALLABLE bool FaceIDIsPeriodic3 (t_index id)
- inline DNDS_DEVICE_CALLABLE bool FaceIDIsPeriodicMain (t_index id)
- inline DNDS_DEVICE_CALLABLE bool FaceIDIsPeriodicDonor (t_index id)
-
inline std::vector<real> VectorToSTDVector(const Eigen::VectorXd &v)
-
inline Eigen::VectorXd STDVectorToVector(const std::vector<real> &v)
-
template<int dim>
inline Eigen::Matrix<real, dim, dim> NormBuildLocalBaseV(const Eigen::Ref<const Eigen::Vector<real, dim>> &uNorm)
-
inline void GetTanhDistributionBilateral(real x0, real x1, index NInterval, real d0, Eigen::Vector<real, Eigen::Dynamic> &d)
-
void PushInfo2Serial2Global(std::vector<DNDS::index> &serial2Global, DNDS::index localSize, const std::vector<DNDS::index> &pushIndex, const std::vector<DNDS::index> &pushIndexStart, const DNDS::MPIInfo &mpi)
-
static void GeneralCell2NodeToNode2Cell(tCoordPair &coords, tAdjPair &cell2node, tAdjPair &node2cell, const tIndexMapFunc &CellIndexLocal2Global_NoSon, const tIndexMapFunc &NodeIndexLocal2Global_NoSon)
-
inline void pybind11_ElemInfo_define(py::module_ &m)
-
inline void pybind11_ArrayElemInfo_define(py::module_ &m)
-
inline void pybind11_MeshLocDefine(py::module_ &m)
-
inline void pybind11_UnstructuredMesh_define(py::module_ &m)
-
inline void pybind11_UnstructuredMeshSerialRW_define(py::module_ &m)
-
static tPoint HermiteInterpolateMidPointOnQuad4WithNorm(tPoint c0, tPoint c1, tPoint c2, tPoint c3, tPoint n0, tPoint n1, tPoint n2, tPoint n3)
-
template<class TPartitionIdx>
void Partition2LocalIdx(const std::vector<TPartitionIdx> &partition, std::vector<DNDS::index> &localPush, std::vector<DNDS::index> &localPushStart, const DNDS::MPIInfo &mpi)
-
template<class TPartitionIdx>
void Partition2Serial2Global(const std::vector<TPartitionIdx> &partition, std::vector<DNDS::index> &serial2Global, const DNDS::MPIInfo &mpi, DNDS::MPI_int nPart)
-
template<class TAdj = tAdj1>
void ConvertAdjSerial2Global(TAdj &arraySerialAdj, const std::vector<DNDS::index> &partitionJSerial2Global, const DNDS::MPIInfo &mpi)
-
template<class TArr = tAdj1>
void TransferDataSerial2Global(TArr &arraySerial, TArr &arrayDist, const std::vector<DNDS::index> &pushIndex, const std::vector<DNDS::index> &pushIndexStart, const DNDS::MPIInfo &mpi)
-
static void GetViolentNodeDeduplication(index nNode, const std::vector<tPoint> &nodesExtra, tCoordPair &coordOut, std::vector<index> &nodeDedu2Old, std::vector<index> &nodeOld2Dedu)
-
static void updateVTKSeries(std::string seriesName, std::string fname, real tSimu)
-
static void H5_WriteDataset(hid_t loc, const char *name, index nGlobal, index nOffset, index nLocal, hid_t file_dataType, hid_t mem_dataType, hid_t plist_id, hid_t dcpl_id, void *buf, int dim2 = -1)
-
template<class TArray>
static void EvenSplitReadFather(ssp<TArray> &father, ssp<TArray> &son, const MPIInfo &mpi, Serializer::SerializerBaseSSP serializerP, const std::string &name)
-
template<class TArray>
static void EvenSplitReadFather(ssp<TArray> &father, ssp<TArray> &son, const MPIInfo &mpi, Serializer::SerializerBaseSSP serializerP, const std::string &name, MPI_Datatype commType, int commMult)
-
static std::vector<index> put_perm_back_to_local_parts(const std::vector<index> &new2old, const std::vector<index> &localPartStarts)
-
static void check_permutations(const std::vector<index> &new2old, const std::vector<index> &old2new, const std::vector<index> &localPartStarts)
-
inline bool isCollaborativeNodePeriodicBits(const std::vector<NodePeriodicBits> &a, const std::vector<NodePeriodicBits> &b)
-
std::vector<index> ReorderSerialAdj_PartitionMetisC(tLocalMatStruct::iterator mat_begin, tLocalMatStruct::iterator mat_end, std::vector<index>::iterator i_new2old_begin, std::vector<index>::iterator i_new2old_end, int nParts, index ind_offset, bool do_rcm, index &bwOldM, index &bwNewM, tLocalMatStruct::iterator full_mat_begin, index full_n_elem)
-
inline auto PartitionSerialAdj_Metis(tLocalMatStruct::const_iterator mat_begin, tLocalMatStruct::const_iterator mat_end, int nPart, index ind_offset = 0, std::string metisType = "KWAY", int metisNcuts = 3, int metisUfactor = 5, int metisSeed = 0)
-
inline std::pair<std::vector<index>, std::vector<index>> ReorderSerialAdj_Metis(const tLocalMatStruct &mat)
-
inline std::pair<std::vector<index>, std::vector<index>> ReorderSerialAdj_BoostMMD(const tLocalMatStruct &mat)
-
inline std::pair<std::vector<index>, std::vector<index>> ReorderSerialAdj_BoostRCM(const tLocalMatStruct &mat, index &bandWidthOld, index &bandWidthNew)
-
inline std::pair<std::vector<index>, std::vector<index>> ReorderSerialAdj_CorrectRCM(tLocalMatStruct::const_iterator mat_begin, tLocalMatStruct::const_iterator mat_end, index &bandWidthOld, index &bandWidthNew, index offset = 0)
Variables
-
static const t_index BC_ID_INTERNAL = 0
-
static const t_index BC_ID_PERIODIC_1 = -1
-
static const t_index BC_ID_PERIODIC_2 = -2
-
static const t_index BC_ID_PERIODIC_3 = -3
-
static const t_index BC_ID_PERIODIC_1_DONOR = -4
-
static const t_index BC_ID_PERIODIC_2_DONOR = -5
-
static const t_index BC_ID_PERIODIC_3_DONOR = -6
-
static const t_index BC_ID_NULL = 1
-
static const t_index BC_ID_DEFAULT_WALL = 2
-
static const t_index BC_ID_DEFAULT_FAR = 3
-
static const t_index BC_ID_DEFAULT_WALL_INVIS = 4
-
static const t_index BC_ID_DEFAULT_SPECIAL_DMR_FAR = 11
-
static const t_index BC_ID_DEFAULT_SPECIAL_RT_FAR = 12
-
static const t_index BC_ID_DEFAULT_SPECIAL_IV_FAR = 13
-
static const t_index BC_ID_DEFAULT_SPECIAL_2DRiemann_FAR = 14
-
static const t_index BC_ID_DEFAULT_MAX = 20
-
static const t_FBCName_2_ID FBC_Name_2_ID_Default =
[](const std::string &name) -> t_index { auto n2id_map = GetFaceName2IDDefault();if (n2id_map.count(name))return n2id_map.at(name);return BC_ID_NULL;}
-
const t_index invalid_index = INT32_MAX
-
static const t_index INTERNAL_ZONE = -1
-
static const NodePeriodicBits nodePB1 = {0x01U}
-
static const NodePeriodicBits nodePB2 = {0x02U}
-
static const NodePeriodicBits nodePB3 = {0x04U}
-
template<rowsize _row_size = 1, rowsize _row_max = _row_size, rowsize _align = NoAlign>
class ArrayNodePeriodicBits : public DNDS::ParArray<NodePeriodicBits, 1, 1, NoAlign>
-
struct AutoAppendName2ID
-
class BCName_2_ID
-
struct CoordPairDOF : public DNDS::ArrayPair<DNDS::ArrayEigenVector<3>>
-
struct ElemInfo
Public Members
-
t_index zone = INTERNAL_ZONE
-
t_index zone = INTERNAL_ZONE
-
struct NodeIndexPBI
-
struct NodePeriodicBits
-
class NodePeriodicBitsRow
-
class Octree
-
template<class T>
class OffsetIterator
-
template<class T>
class OffsetRange
-
struct PartitionOptions
-
struct Periodicity
Subclassed by DNDS::Geom::Base::CFVPeriodicity
Public Functions
- template<int dim, int nVec> inline DNDS_DEVICE_CALLABLE Eigen::Matrix< real, dim, nVec > TransVector (const Eigen::Matrix< real, dim, nVec > &v, t_index id)
-
struct PointCloudFunctional
Public Types
-
using coord_t = real
-
using coord_t = real
-
struct PointCloudKDTree
Public Types
-
using coord_t = real
-
using coord_t = real
-
struct PointCloudKDTreeCoordPair
Public Types
-
using coord_t = real
-
using coord_t = real
-
struct SmallCoordsAsVector : public tSmallCoords
-
struct tGPointPortable
-
struct tPointPortable
-
struct UnstructuredMesh : public DNDS::DeviceTransferable<UnstructuredMesh>
Public Functions
-
void RecoverNode2CellAndNode2Bnd()
-
void RecoverCell2CellAndBnd2Cell()
-
void BuildGhostPrimary()
-
void InterpolateFace()
-
tLocalMatStruct GetCell2CellFaceVLocal(bool onLocalPartition = false)
-
void ReorderLocalCells(int nParts = 1, int nPartsInner = 1)
-
inline index NumCellGlobal()
-
inline index NumNodeGlobal()
-
inline index NumFaceGlobal()
-
inline index NumBndGlobal()
-
template<class tC2n>
inline void __GetCoords(const tC2n &c2n, tSmallCoords &cs)
-
template<class tC2n, class tCoordExt>
inline void __GetCoords(const tC2n &c2n, tSmallCoords &cs, tCoordExt &coo)
-
template<class tC2n, class tC2nPbi>
inline void __GetCoordsOnElem(const tC2n &c2n, const tC2nPbi &c2nPbi, tSmallCoords &cs)
-
template<class tC2n, class tC2nPbi, class tCoordExt>
inline void __GetCoordsOnElem(const tC2n &c2n, const tC2nPbi &c2nPbi, tSmallCoords &cs, tCoordExt &coo)
-
template<class FA, class FB, class F0 = std::function<void(void)>>
inline auto CellOtherCellPeriodicHandle(index iFace, rowsize if2c, FA &&fA, FB &&fB, F0 &&f0 =[]() {})
-
void ReadSerializeAndDistribute(Serializer::SerializerBaseSSP serializerP, const std::string &name, const PartitionOptions &partitionOptions)
Public Members
-
tCoordPair coords
-
tPbiPair cell2nodePbi
-
tAdjPair node2cell
-
tAdjPair cell2face
-
tPbiPair face2nodePbi
-
tAdjPair cell2cellFace
-
std::vector<index> node2parentNode
-
std::vector<index> vtkCell2nodeOffsets
-
tCoordPair coordsElevDisp
-
tLocalMatStruct cell2cellFaceVLocalParts
-
tCoordPair nodeWallDist
Public Static Functions
-
struct ElevationInfo
-
struct HDF5OutSetting
-
struct WallDistOptions
-
void RecoverNode2CellAndNode2Bnd()
-
template<DeviceBackend B>
struct UnstructuredMeshDeviceView Public Functions
-
template<class FA, class FB, class F0>
inline DNDS_DEVICE_CALLABLE auto CellOtherCellPeriodicHandle(index iFace, rowsize if2c, FA &&fA, FB &&fB, F0 &&f0 =[]() {})
- template<class tC2n> inline DNDS_DEVICE_CALLABLE void __GetCoords (const tC2n &c2n, tSmallCoords &cs)
- template<class tC2n, class tCoordExt> inline DNDS_DEVICE_CALLABLE void __GetCoords (const tC2n &c2n, tSmallCoords &cs, tCoordExt &coo)
- template<class tC2n, class tC2nPbi> inline DNDS_DEVICE_CALLABLE void __GetCoordsOnElem (const tC2n &c2n, const tC2nPbi &c2nPbi, tSmallCoords &cs)
- template<class tC2n, class tC2nPbi, class tCoordExt> inline DNDS_DEVICE_CALLABLE void __GetCoordsOnElem (const tC2n &c2n, const tC2nPbi &c2nPbi, tSmallCoords &cs, tCoordExt &coo)
-
template<class FA, class FB, class F0>
-
struct UnstructuredMeshSerialRW
Public Functions
-
template<class tC2n, class tCoordExt>
inline void __GetCoordsSerial(const tC2n &c2n, tSmallCoords &cs, tCoordExt &coo)
-
template<class tC2n, class tC2nPbi, class tCoordExt>
inline void __GetCoordsOnElemSerial(const tC2n &c2n, const tC2nPbi &c2nPbi, tSmallCoords &cs, tCoordExt &coo)
-
inline void GetCoordsOnCellSerial(index iCell, tSmallCoords &cs, tCoord &coo)
-
void ReadFromCGNSSerial(const std::string &fName, const t_FBCName_2_ID &FBCName_2_ID)
-
void BuildCell2Cell()
-
void BuildSerialOut()
-
void PrintSerialPartPltBinaryDataArray(std::string fname, int arraySiz, int arraySizPoint, const tFGetName &names, const tFGetData &data, const tFGetName &namesPoint, const tFGetData &dataPoint, double t, int flag)
-
void PrintSerialPartVTKDataArray(std::string fname, std::string seriesName, int arraySiz, int vecArraySiz, int arraySizPoint, int vecArraySizPoint, const tFGetName &names, const tFGetData &data, const tFGetName &vectorNames, const tFGetVecData &vectorData, const tFGetName &namesPoint, const tFGetData &dataPoint, const tFGetName &vectorNamesPoint, const tFGetVecData &vectorDataPoint, double t, int flag = 0)
-
template<class tC2n, class tCoordExt>
-
namespace Base
Typedefs
-
using t_diffOpIJK2I = std::tuple<int, std::array<int, 3>, std::array<std::array<int, 3>, 3>, std::array<std::array<std::array<int, 3>, 3>, 3>>
Functions
-
template<int dim>
constexpr int ndiffSizS(int i)
-
template<int dim>
constexpr int ndiff2order(int rows)
-
template<int dim, int NDiffC>
constexpr t_diffOpIJK2I __get_diffOperatorIJK2I(const std::array<std::array<int, 3>, NDiffC> &diffOps)
-
template<int dim>
constexpr auto &getDiffOperatorIJK2I()
-
template<int dim, int order>
inline constexpr int PolynomialNDOF()
-
static inline real FPolynomial3D(int px, int py, int pz, int dx, int dy, int dz, real x, real y, real z)
-
template<class TDIBJ>
void FPolynomialFill2D(TDIBJ &T, real x, real y, real z, real lx, real ly, real lz, int rows, int cols)
-
template<class TDIBJ>
void FPolynomialFill3D(TDIBJ &T, real x, real y, real z, real lx, real ly, real lz, int rows, int cols)
-
template<int dim>
inline int GetNDof(int maxOrder)
-
template<int dim = 3, int rank = 0, int powV = 1, class VLe, class VRi>
real NormSymDiffOrderTensorV(VLe &&Le, VRi &&Ri)
-
template<int dim, int rank, class VLe, class Trans>
void TransSymDiffOrderTensorV(VLe &&Le, Trans &&trans)
-
template<int dim, class TMat>
inline void ConvertDiffsLinMap(TMat &&mat, const Geom::tGPoint &dXijdXi)
Variables
-
static const int ndiff = 3
-
static const int ndiffSiz = 20
-
static const int ndiffSiz2D = 10
-
static const std::array<int, ndiff + 1> ndiffSizC = {1, 4, 10, 20}
-
static const std::array<int, ndiff + 1> ndiffSizC2D = {1, 3, 6, 10}
-
static const std::array<std::array<int, 3>, ndiffSiz> diffOperatorOrderList{{{{0, 0, 0}}, {{1, 0, 0}}, {{0, 1, 0}}, {{0, 0, 1}}, {{2, 0, 0}}, {{0, 2, 0}}, {{0, 0, 2}}, {{1, 1, 0}}, {{0, 1, 1}}, {{1, 0, 1}}, {{3, 0, 0}}, {{0, 3, 0}}, {{0, 0, 3}}, {{2, 1, 0}}, {{1, 2, 0}}, {{0, 2, 1}}, {{0, 1, 2}}, {{1, 0, 2}}, {{2, 0, 1}}, {{1, 1, 1}},}}
-
static const std::array<std::array<int, 3>, ndiffSiz2D> diffOperatorOrderList2D = {{{{0, 0, 0}}, {{1, 0, 0}}, {{0, 1, 0}}, {{2, 0, 0}}, {{1, 1, 0}}, {{0, 2, 0}}, {{3, 0, 0}}, {{2, 1, 0}}, {{1, 2, 0}}, {{0, 3, 0}},}}
-
static const std::array<std::array<int, ndiff>, ndiffSiz> diffOperatorDimList{{{{}}, {{0}}, {{1}}, {{2}}, {{0, 0}}, {{1, 1}}, {{2, 2}}, {{0, 1}}, {{1, 2}}, {{0, 2}}, {{0, 0, 0}}, {{1, 1, 1}}, {{2, 2, 2}}, {{0, 0, 1}}, {{0, 1, 1}}, {{1, 1, 2}}, {{1, 2, 2}}, {{0, 2, 2}}, {{0, 0, 2}}, {{0, 1, 2}},}}
-
static const std::array<std::array<int, ndiff>, ndiffSiz2D> diffOperatorDimList2D = {{{{}}, {{0}}, {{1}}, {{0, 0}}, {{0, 1}}, {{1, 1}}, {{0, 0, 0}}, {{0, 0, 1}}, {{0, 1, 1}}, {{1, 1, 1}},}}
-
static const t_diffOpIJK2I diffOperatorIJK2I = __get_diffOperatorIJK2I<3, ndiffSiz>(diffOperatorOrderList)
-
static const t_diffOpIJK2I diffOperatorIJK2I2D = __get_diffOperatorIJK2I<2, ndiffSiz2D>(diffOperatorOrderList2D)
-
static const int dFactorials[ndiff + 1][ndiff + 1] = {{1, 0, 0, 0}, {1, 1, 0, 0}, {1, 2, 2, 0}, {1, 3, 6, 6}}
-
static const std::array<int, ndiff * 3 + 1> factorials = {1, 1, 1 * 2, 1 * 2 * 3, 1 * 2 * 3 * 4, 1 * 2 * 3 * 4 * 5, 1 * 2 * 3 * 4 * 5 * 6, 1 * 2 * 3 * 4 * 5 * 6 * 7, 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8, 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9,}
-
static const std::array<int, ndiffSiz2D> diffNCombs2D{1, 1, 1, 1, 2, 1, 1, 3, 3, 1}
-
static const std::array<int, ndiffSiz> diffNCombs{1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 3, 6}
-
class CFVPeriodicity : public DNDS::Geom::Periodicity
-
using t_diffOpIJK2I = std::tuple<int, std::array<int, 3>, std::array<std::array<int, 3>, 3>, std::array<std::array<std::array<int, 3>, 3>, 3>>
-
namespace Elem
Typedefs
-
using tNj = Eigen::RowVector<t_real, Eigen::Dynamic>
-
using tD1Nj = Eigen::Matrix<t_real, 3, Eigen::Dynamic>
-
using tD01Nj = Eigen::Matrix<t_real, 4, Eigen::Dynamic>
-
using tDiNj = Eigen::Matrix<t_real, Eigen::Dynamic, Eigen::Dynamic>
-
using tPy_ElemType = py::enum_<ElemType>
-
using tElevSpan = std::array<t_index, elevSpanMaxWidth>
-
using tBisectSub = std::array<t_index, bisectSubMaxNodes>
-
using tVTKNodeOrder = std::array<int, vtkNodeOrderMax>
Enums
-
enum ElemType
Values:
-
enumerator UnknownElem
-
enumerator Line2
-
enumerator Line3
-
enumerator Tri3
-
enumerator Tri6
-
enumerator Quad4
-
enumerator Quad9
-
enumerator Tet4
-
enumerator Tet10
-
enumerator Hex8
-
enumerator Hex27
-
enumerator Prism6
-
enumerator Prism18
-
enumerator Pyramid5
-
enumerator Pyramid14
-
enumerator ElemType_NUM
-
enumerator UnknownElem
-
enum ParamSpace
Values:
-
enumerator UnknownPSpace
-
enumerator LineSpace
-
enumerator TriSpace
-
enumerator QuadSpace
-
enumerator TetSpace
-
enumerator HexSpace
-
enumerator PrismSpace
-
enumerator PyramidSpace
-
enumerator ParamSpace_NUM
-
enumerator UnknownPSpace
Functions
- inline DNDS_DEVICE_CALLABLE constexpr ParamSpace ElemType_to_ParamSpace (const ElemType t)
- inline DNDS_DEVICE_CALLABLE constexpr ElemType GetFaceType (ElemType t_v, t_index iFace)
- inline DNDS_DEVICE_CALLABLE constexpr t_real ParamSpaceVol (ParamSpace ps)
- inline DNDS_DEVICE_CALLABLE constexpr int GetElemElevation_O1O2_NumNode (ElemType t)
- inline DNDS_DEVICE_CALLABLE constexpr ElemType GetElemElevation_O1O2_ElevatedType (ElemType t)
- inline DNDS_DEVICE_CALLABLE constexpr ElemType GetElemElevation_O1O2_NodeSpanType (ElemType t, t_index ine)
- inline DNDS_DEVICE_CALLABLE constexpr ElemType GetElemO1 (ParamSpace ps)
- inline DNDS_DEVICE_CALLABLE constexpr t_index GetO2ElemBisectNum (ElemType t)
- inline DNDS_DEVICE_CALLABLE constexpr ElemType GetO2ElemBisectElem (ElemType t, t_index i)
- static DNDS_DEVICE_CALLABLE constexpr real __iipow (real x, int y)
- template<int diffOrder, class TPoint, class TArray> DNDS_DEVICE_CALLABLE void ShapeFunc_DiNj (ElemType t, const TPoint &p, TArray &&v)
-
inline bool cellsAreFaceConnected(const std::vector<DNDS::index> &nodes_A, const std::vector<DNDS::index> &nodes_B, Element eA, Element eB)
-
inline bool cellsAreFaceConnected(const std::vector<DNDS::index> &verts_A, const std::vector<DNDS::index> &nodes_B)
-
template<class tCoordsIn>
tJacobi ShapeJacobianCoordD01Nj(const tCoordsIn &cs, Eigen::Ref<const tD01Nj> DiNj)
-
template<class tCoordsIn>
tPoint PPhysicsCoordD01Nj(const tCoordsIn &cs, Eigen::Ref<const tD01Nj> DiNj)
-
inline tPoint GetElemNodeMajorSpan(const tSmallCoords &coords)
-
inline t_index GetO2ElemBisectVariant(Element e, const tSmallCoords &coords)
-
inline void pybind11_ElemType_define(py::module_ &m)
- DNDS_DEVICE_CALLABLE constexpr t_real ParamSpaceVolume (ParamSpace ps)
- DNDS_DEVICE_CALLABLE constexpr ElemType ParamSpaceO1Elem (ParamSpace ps)
- template<typename Func> DNDS_DEVICE_CALLABLE constexpr decltype(auto) DispatchElementType (ElemType t, Func &&func)
-
inline auto GetQuadPatches(Quadrature &q)
-
template<int dim>
real CellJacobianDet(const Geom::tSmallCoords &coordsCell, const Geom::Elem::tD01Nj &DiNj)
-
inline real CellJacobianDet(int dim, const Geom::tSmallCoords &coordsCell, const Geom::Elem::tD01Nj &DiNj)
-
template<int dim>
real FaceJacobianDet(const Geom::tSmallCoords &coords, const Geom::Elem::tD01Nj &DiNj)
-
inline real FaceJacobianDet(int dim, const Geom::tSmallCoords &coords, const Geom::Elem::tD01Nj &DiNj)
-
inline constexpr t_index GetQuadratureScheme(ParamSpace ps, int int_order)
-
template<class TPoint>
inline void GetQuadraturePoint(ParamSpace ps, t_index scheme, int iG, TPoint &pParam, t_real &w)
Variables
-
static constexpr int elevSpanMaxWidth = 8
-
static constexpr int bisectSubMaxNodes = 8
-
static constexpr int vtkNodeOrderMax = 27
-
static const int CellNumNodeMax = 27
-
static struct DNDS::Geom::Elem::__TNBufferAtQuadrature __NBufferAtQuadrature
-
static const t_real __GaussJacobi_01A2B0_1[2][1]{{0.250000000000000}, {0.333333333333333}}
-
static const t_real __GaussJacobi_01A2B0_2[2][2]{{0.122514822655441, 0.544151844011225}, {0.232547451253508, 0.100785882079825}}
-
static const t_real __GaussJacobi_01A2B0_3[2][3]{{0.072994024073150, 0.347003766038352, 0.705002209888499}, {0.157136361064887, 0.146246269259866, 0.029950703008581}}
-
static const t_real __GaussJacobi_01A2B0_4[2][4]{{0.048500549446997, 0.238600737551862, 0.517047295104367, 0.795851417896773}, {0.110888415611278, 0.143458789799214, 0.068633887172923, 0.010352240749918}}
-
static const t_real __GaussJacobi_01A2B0_5[2][5]{{0.034578939918215, 0.173480320771696, 0.389886387065519, 0.634333472630887, 0.851054212947016}, {0.081764784285771, 0.126198961899911, 0.089200161221590, 0.032055600722962, 0.004113825203099}}
-
static const t_real __GaussLegendre_1[2][1]{{0}, {2}}
-
static const t_real __GaussLegendre_2[2][2]{{-0.577350269189626, 0.577350269189626}, {1, 1}}
-
static const t_real __GaussLegendre_3[2][3]{{-0.774596669241483, 0, 0.774596669241483}, {0.555555555555555, 0.888888888888889, 0.555555555555555}}
-
static const t_real __GaussLegendre_4[2][4]{{-0.861136311594053, -0.339981043584856, 0.339981043584856, 0.861136311594053}, {0.347854845137454, 0.652145154862546, 0.652145154862546, 0.347854845137454}}
-
static const t_real __GaussLegendre_5[2][5]{{-0.906179845938664, -0.538469310105683, 0, 0.538469310105683, 0.906179845938664}, {0.236926885056189, 0.478628670499366, 0.568888888888889, 0.478628670499366, 0.236926885056189}}
-
static const t_index INT_SCHEME_Line_1 = 1
-
static const t_index INT_SCHEME_Line_2 = 2
-
static const t_index INT_SCHEME_Line_3 = 3
-
static const t_index INT_SCHEME_Line_4 = 4
-
static const t_index INT_SCHEME_Quad_1 = 1
-
static const t_index INT_SCHEME_Quad_4 = 4
-
static const t_index INT_SCHEME_Quad_9 = 9
-
static const t_index INT_SCHEME_Quad_16 = 16
-
static const t_index INT_SCHEME_Tri_1 = 1
-
static const t_index INT_SCHEME_Tri_3 = 3
-
static const t_index INT_SCHEME_Tri_6 = 6
-
static const t_index INT_SCHEME_Tri_7 = 7
-
static const t_index INT_SCHEME_Tri_12 = 12
-
static const t_index INT_SCHEME_Tet_1 = 1
-
static const t_index INT_SCHEME_Tet_4 = 4
-
static const t_index INT_SCHEME_Tet_8 = 8
-
static const t_index INT_SCHEME_Tet_14 = 14
-
static const t_index INT_SCHEME_Tet_24 = 24
-
static const t_index INT_SCHEME_Hex_1 = 1
-
static const t_index INT_SCHEME_Hex_8 = 8
-
static const t_index INT_SCHEME_Hex_27 = 27
-
static const t_index INT_SCHEME_Hex_64 = 64
-
static const t_index INT_SCHEME_Prism_1 = 1 * 1
-
static const t_index INT_SCHEME_Prism_6 = 3 * 2
-
static const t_index INT_SCHEME_Prism_18 = 6 * 3
-
static const t_index INT_SCHEME_Prism_21 = 7 * 3
-
static const t_index INT_SCHEME_Prism_48 = 12 * 4
-
static const t_index INT_SCHEME_Pyramid_1 = 1
-
static const t_index INT_SCHEME_Pyramid_8 = 8
-
static const t_index INT_SCHEME_Pyramid_27 = 27
-
static const t_index INT_SCHEME_Pyramid_64 = 64
-
static const int INT_ORDER_MAX = 6
-
static const t_real __HammerTet_1[4][1]{{0.25}, {0.25}, {0.25}, {0.1666666666666667}}
-
static const t_real __HammerTet_4[4][4]{{0.1381966011250105, 0.1381966011250105, 0.5854101966249685, 0.1381966011250105}, {0.1381966011250105, 0.5854101966249684, 0.1381966011250105, 0.1381966011250105}, {0.5854101966249684, 0.1381966011250105, 0.1381966011250105, 0.1381966011250105}, {0.04166666666666666, 0.04166666666666666, 0.04166666666666666, 0.04166666666666666}}
-
static const t_real __HammerTet_8[4][8]{{0.1069940147705369, 0.1069940147705369, 0.6790179556883893, 0.1069940147705369, 0.3280585716625127, 0.3280585716625127, 0.01582428501246191, 0.3280585716625127}, {0.1069940147705369, 0.6790179556883893, 0.1069940147705369, 0.1069940147705369, 0.3280585716625127, 0.01582428501246191, 0.3280585716625127, 0.3280585716625127}, {0.6790179556883893, 0.1069940147705369, 0.1069940147705369, 0.1069940147705369, 0.01582428501246191, 0.3280585716625127, 0.3280585716625127, 0.3280585716625127}, {0.01859314997209119, 0.01859314997209119, 0.01859314997209119, 0.01859314997209119, 0.02307351669457548, 0.02307351669457548, 0.02307351669457548, 0.02307351669457548}}
-
static const t_real __HammerTet_14[4][14]{{0.09273525031089125, 0.09273525031089125, 0.7217942490673263, 0.09273525031089125, 0.3108859192633008, 0.3108859192633008, 0.06734224221009777, 0.3108859192633008, 0.04550370412564952, 0.4544962958743505, 0.04550370412564952, 0.04550370412564952, 0.4544962958743505, 0.4544962958743505}, {0.09273525031089125, 0.7217942490673263, 0.09273525031089125, 0.09273525031089125, 0.3108859192633008, 0.06734224221009777, 0.3108859192633008, 0.3108859192633008, 0.4544962958743505, 0.04550370412564952, 0.04550370412564952, 0.4544962958743505, 0.04550370412564952, 0.4544962958743505}, {0.7217942490673263, 0.09273525031089125, 0.09273525031089125, 0.09273525031089125, 0.06734224221009777, 0.3108859192633008, 0.3108859192633008, 0.3108859192633008, 0.4544962958743505, 0.4544962958743505, 0.4544962958743505, 0.04550370412564952, 0.04550370412564952, 0.04550370412564952}, {0.01224884051939367, 0.01224884051939367, 0.01224884051939367, 0.01224884051939367, 0.01878132095300264, 0.01878132095300264, 0.01878132095300264, 0.01878132095300264, 0.0070910034628469, 0.0070910034628469, 0.0070910034628469, 0.0070910034628469, 0.0070910034628469, 0.0070910034628469}}
-
static const t_real __HammerTet_24[4][24]{{0.2146028712591523, 0.2146028712591523, 0.3561913862225431, 0.2146028712591523, 0.3223378901422754, 0.3223378901422754, 0.0329863295731736, 0.3223378901422754, 0.04067395853461131, 0.04067395853461131, 0.8779781243961661, 0.04067395853461131, 0.6030056647916491, 0.6030056647916491, 0.06366100187501755, 0.2696723314583158, 0.06366100187501755, 0.06366100187501755, 0.2696723314583158, 0.06366100187501755, 0.06366100187501755, 0.06366100187501755, 0.2696723314583158, 0.6030056647916491}, {0.2146028712591523, 0.3561913862225431, 0.2146028712591523, 0.2146028712591523, 0.3223378901422754, 0.0329863295731736, 0.3223378901422754, 0.3223378901422754, 0.04067395853461131, 0.8779781243961661, 0.04067395853461131, 0.04067395853461131, 0.06366100187501755, 0.06366100187501755, 0.06366100187501755, 0.6030056647916491, 0.2696723314583158, 0.6030056647916491, 0.06366100187501755, 0.2696723314583158, 0.06366100187501755, 0.6030056647916491, 0.06366100187501755, 0.2696723314583158}, {0.3561913862225431, 0.2146028712591523, 0.2146028712591523, 0.2146028712591523, 0.0329863295731736, 0.3223378901422754, 0.3223378901422754, 0.3223378901422754, 0.8779781243961661, 0.04067395853461131, 0.04067395853461131, 0.04067395853461131, 0.2696723314583158, 0.06366100187501755, 0.6030056647916491, 0.06366100187501755, 0.6030056647916491, 0.06366100187501755, 0.6030056647916491, 0.06366100187501755, 0.2696723314583158, 0.2696723314583158, 0.06366100187501755, 0.06366100187501755}, {0.006653791709694545, 0.006653791709694545, 0.006653791709694545, 0.006653791709694545, 0.009226196923942479, 0.009226196923942479, 0.009226196923942479, 0.009226196923942479, 0.001679535175886773, 0.001679535175886773, 0.001679535175886773, 0.001679535175886773, 0.008035714285714285, 0.008035714285714285, 0.008035714285714285, 0.008035714285714285, 0.008035714285714285, 0.008035714285714285, 0.008035714285714285, 0.008035714285714285, 0.008035714285714285, 0.008035714285714285, 0.008035714285714285, 0.008035714285714285}}
-
static const t_real __HammerTri_1[3][1]{{1. / 3.}, {1. / 3.}, {1. / 2.}}
-
static const t_real __HammerTri_3[3][3]{{2. / 3., 1. / 6., 1. / 6.}, {1. / 6., 2. / 3., 1. / 6.}, {1. / 6., 1. / 6., 1. / 6.}}
-
static const t_real __HammerTri_6[3][6]{{0.09157621350977102, 0.8168475729804585, 0.09157621350977052, 0.445948490915965, 0.10810301816807, 0.445948490915965}, {0.09157621350977102, 0.09157621350977052, 0.8168475729804585, 0.445948490915965, 0.445948490915965, 0.10810301816807}, {0.054975871827661, 0.054975871827661, 0.054975871827661, 0.1116907948390057, 0.1116907948390057, 0.1116907948390057}}
-
static const t_real __HammerTri_7[3][7]{{0.3333333333333335, 0.470142064105115, 0.05971587178977, 0.470142064105115, 0.1012865073234565, 0.7974269853530875, 0.1012865073234565}, {0.3333333333333335, 0.470142064105115, 0.470142064105115, 0.05971587178977, 0.1012865073234565, 0.1012865073234565, 0.7974269853530875}, {0.1125, 0.066197076394253, 0.066197076394253, 0.066197076394253, 0.0629695902724135, 0.0629695902724135, 0.0629695902724135}}
-
static const t_real __HammerTri_12[3][12]{{0.2492867451709105, 0.501426509658179, 0.2492867451709105, 0.063089014491502, 0.8738219710169954, 0.063089014491502, 0.3103524510337845, 0.05314504984481699, 0.6365024991213986, 0.05314504984481699, 0.6365024991213986, 0.3103524510337845}, {0.2492867451709105, 0.2492867451709105, 0.501426509658179, 0.063089014491502, 0.063089014491502, 0.8738219710169954, 0.05314504984481699, 0.3103524510337845, 0.05314504984481699, 0.6365024991213986, 0.3103524510337845, 0.6365024991213986}, {0.05839313786318975, 0.05839313786318975, 0.05839313786318975, 0.0254224531851035, 0.0254224531851035, 0.0254224531851035, 0.04142553780918675, 0.04142553780918675, 0.04142553780918675, 0.04142553780918675, 0.04142553780918675, 0.04142553780918675}}
-
struct __TNBufferAtQuadrature
-
struct Element
-
template<ElemType t>
struct ElementTraits
-
template<>
struct ElementTraits<Hex27> Public Static Functions
Public Static Attributes
-
static constexpr std::array<t_real, 3 * 27> standardCoords = {-1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 0, -1, -1, 1, 0, -1, 0, 1, -1, -1, 0, -1, -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0, 0, -1, 1, 1, 0, 1, 0, 1, 1, -1, 0, 1, 0, 0, -1, 0, -1, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0}
-
static constexpr std::array<std::array<t_index, 10>, 6> faceNodes = {{{0, 3, 2, 1, 11, 10, 9, 8, 20}, {0, 1, 5, 4, 8, 13, 16, 12, 21}, {1, 2, 6, 5, 9, 14, 17, 13, 22}, {2, 3, 7, 6, 10, 15, 18, 14, 23}, {0, 4, 7, 3, 12, 19, 15, 11, 24}, {4, 5, 6, 7, 16, 17, 18, 19, 25}}}
-
static constexpr ElemType elevatedType = UnknownElem
-
static constexpr int numElevNodes = 0
-
static constexpr int numBisect = 8
-
static constexpr int numBisectVariants = 1
-
static constexpr std::array<tBisectSub, 8> bisectElements = {{{0, 8, 20, 11, 12, 21, 26, 24}, {8, 1, 9, 20, 21, 13, 22, 26}, {11, 20, 10, 3, 24, 26, 23, 15}, {20, 9, 2, 10, 26, 22, 14, 23}, {12, 21, 26, 24, 4, 16, 25, 19}, {21, 13, 22, 26, 16, 5, 17, 25}, {24, 26, 23, 15, 19, 25, 18, 7}, {26, 22, 14, 23, 25, 17, 6, 18}}}
-
static constexpr int vtkCellType = 25
-
static constexpr std::array<int, 20> vtkNodeOrder = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19, 12, 13, 14, 15}
-
static constexpr std::array<t_real, 3 * 27> standardCoords = {-1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 0, -1, -1, 1, 0, -1, 0, 1, -1, -1, 0, -1, -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0, 0, -1, 1, 1, 0, 1, 0, 1, 1, -1, 0, 1, 0, 0, -1, 0, -1, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0}
-
template<>
struct ElementTraits<Hex8> -
Public Static Attributes
-
static constexpr std::array<t_real, 3 * 8> standardCoords = {-1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1}
-
static constexpr std::array<std::array<t_index, 10>, 6> faceNodes = {{{0, 3, 2, 1}, {0, 1, 5, 4}, {1, 2, 6, 5}, {2, 3, 7, 6}, {0, 4, 7, 3}, {4, 5, 6, 7}}}
-
static constexpr int numElevNodes = 19
-
static constexpr std::array<tElevSpan, 19> elevSpans = {{{0, 1}, {1, 2}, {2, 3}, {3, 0}, {0, 4}, {1, 5}, {2, 6}, {3, 7}, {4, 5}, {5, 6}, {6, 7}, {7, 4}, {0, 3, 2, 1}, {0, 1, 5, 4}, {1, 2, 6, 5}, {2, 3, 7, 6}, {0, 4, 7, 3}, {4, 5, 6, 7}, {0, 1, 2, 3, 4, 5, 6, 7}}}
-
static constexpr std::array<ElemType, 19> elevNodeSpanTypes = {Line2, Line2, Line2, Line2, Line2, Line2, Line2, Line2, Line2, Line2, Line2, Line2, Quad4, Quad4, Quad4, Quad4, Quad4, Quad4, Hex8}
-
static constexpr int vtkCellType = 12
-
static constexpr std::array<int, 8> vtkNodeOrder = {0, 1, 2, 3, 4, 5, 6, 7}
-
static constexpr std::array<t_real, 3 * 8> standardCoords = {-1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1}
-
template<>
struct ElementTraits<Line2> -
Public Static Attributes
-
static constexpr int dim = 1
-
static constexpr int order = 1
-
static constexpr int numVertices = 2
-
static constexpr int numNodes = 2
-
static constexpr int numFaces = 0
-
static constexpr ParamSpace paramSpace = LineSpace
-
static constexpr t_real paramSpaceVol = 2.0
-
static constexpr std::array<t_real, 3 * 2> standardCoords = {-1, 0, 0, 1, 0, 0}
-
static constexpr int numElevNodes = 1
-
static constexpr std::array<tElevSpan, 1> elevSpans = {{{0, 1}}}
-
static constexpr int vtkCellType = 3
-
static constexpr std::array<int, 2> vtkNodeOrder = {0, 1}
-
static constexpr int dim = 1
-
template<>
struct ElementTraits<Line3> Public Static Functions
Public Static Attributes
-
static constexpr int dim = 1
-
static constexpr int order = 2
-
static constexpr int numVertices = 2
-
static constexpr int numNodes = 3
-
static constexpr int numFaces = 0
-
static constexpr ParamSpace paramSpace = LineSpace
-
static constexpr t_real paramSpaceVol = 2.0
-
static constexpr std::array<t_real, 3 * 3> standardCoords = {-1, 0, 0, 1, 0, 0, 0, 0, 0}
-
static constexpr ElemType elevatedType = UnknownElem
-
static constexpr int numElevNodes = 0
-
static constexpr int numBisect = 2
-
static constexpr int numBisectVariants = 1
-
static constexpr std::array<tBisectSub, 2> bisectElements = {{{0, 2}, {2, 1}}}
-
static constexpr int vtkCellType = 4
-
static constexpr std::array<int, 3> vtkNodeOrder = {0, 2, 1}
-
static constexpr int dim = 1
-
template<>
struct ElementTraits<Prism18> Public Static Functions
Public Static Attributes
-
static constexpr std::array<t_real, 3 * 18> standardCoords = {0, 0, -1, 1, 0, -1, 0, 1, -1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0.5, 0, -1, 0.5, 0.5, -1, 0, 0.5, -1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0, 1, 0.5, 0.5, 1, 0, 0.5, 1, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0.5, 0}
-
static constexpr std::array<std::array<t_index, 10>, 5> faceNodes = {{{0, 1, 4, 3, 6, 10, 12, 9, 15}, {1, 2, 5, 4, 7, 11, 13, 10, 16}, {2, 0, 3, 5, 8, 9, 14, 11, 17}, {0, 2, 1, 8, 7, 6}, {3, 4, 5, 9, 10, 11}}}
-
static constexpr ElemType elevatedType = UnknownElem
-
static constexpr int numElevNodes = 0
-
static constexpr int numBisect = 8
-
static constexpr int numBisectVariants = 1
-
static constexpr std::array<tBisectSub, 8> bisectElements = {{{0, 6, 8, 9, 15, 17}, {6, 1, 7, 15, 10, 16}, {8, 6, 7, 17, 15, 16}, {8, 7, 2, 17, 16, 11}, {9, 15, 17, 3, 12, 14}, {15, 10, 16, 12, 4, 13}, {17, 15, 16, 14, 12, 13}, {17, 16, 11, 14, 13, 5}}}
-
static constexpr int vtkCellType = 26
-
static constexpr std::array<int, 15> vtkNodeOrder = {0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 9, 10, 11}
-
static constexpr std::array<t_real, 3 * 18> standardCoords = {0, 0, -1, 1, 0, -1, 0, 1, -1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0.5, 0, -1, 0.5, 0.5, -1, 0, 0.5, -1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0, 1, 0.5, 0.5, 1, 0, 0.5, 1, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0.5, 0}
-
template<>
struct ElementTraits<Prism6> -
Public Static Attributes
-
static constexpr std::array<t_real, 3 * 6> standardCoords = {0, 0, -1, 1, 0, -1, 0, 1, -1, 0, 0, 1, 1, 0, 1, 0, 1, 1}
-
static constexpr std::array<std::array<t_index, 10>, 5> faceNodes = {{{0, 1, 4, 3}, {1, 2, 5, 4}, {2, 0, 3, 5}, {0, 2, 1}, {3, 4, 5}}}
-
static constexpr int numElevNodes = 12
-
static constexpr std::array<tElevSpan, 12> elevSpans = {{{0, 1}, {1, 2}, {2, 0}, {0, 3}, {1, 4}, {2, 5}, {3, 4}, {4, 5}, {5, 3}, {0, 1, 4, 3}, {1, 2, 5, 4}, {2, 0, 3, 5}}}
-
static constexpr std::array<ElemType, 12> elevNodeSpanTypes = {Line2, Line2, Line2, Line2, Line2, Line2, Line2, Line2, Line2, Quad4, Quad4, Quad4}
-
static constexpr int vtkCellType = 13
-
static constexpr std::array<int, 6> vtkNodeOrder = {0, 1, 2, 3, 4, 5}
-
static constexpr std::array<t_real, 3 * 6> standardCoords = {0, 0, -1, 1, 0, -1, 0, 1, -1, 0, 0, 1, 1, 0, 1, 0, 1, 1}
-
template<>
struct ElementTraits<Pyramid14> Public Static Functions
Public Static Attributes
-
static constexpr std::array<t_real, 3 * 14> standardCoords = {-1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0, 0, 0, 1, 0, -1, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, 0.5, 0.5, 0.5, -0.5, 0.5, 0.5, 0, 0, 0}
-
static constexpr std::array<std::array<t_index, 10>, 5> faceNodes = {{{0, 3, 2, 1, 8, 7, 6, 5, 13}, {0, 1, 4, 5, 10, 9}, {1, 2, 4, 6, 11, 10}, {2, 3, 4, 7, 12, 11}, {3, 0, 4, 8, 9, 12}}}
-
static constexpr ElemType elevatedType = UnknownElem
-
static constexpr int numElevNodes = 0
-
static constexpr int numBisect = 12
-
static constexpr int numBisectVariants = 2
-
static constexpr std::array<tBisectSub, 24> bisectElements = {{{0, 5, 13, 8, 9}, {5, 1, 6, 13, 10}, {8, 13, 7, 3, 12}, {13, 6, 2, 7, 11}, {12, 9, 8, 13}, {9, 10, 5, 13}, {10, 11, 6, 13}, {11, 12, 7, 13}, {9, 11, 12, 4}, {9, 10, 11, 4}, {9, 11, 10, 13}, {9, 12, 11, 13}, {0, 5, 13, 8, 9}, {5, 1, 6, 13, 10}, {8, 13, 7, 3, 12}, {13, 6, 2, 7, 11}, {12, 9, 8, 13}, {9, 10, 5, 13}, {10, 11, 6, 13}, {11, 12, 7, 13}, {10, 12, 9, 4}, {10, 11, 12, 4}, {10, 12, 11, 13}, {10, 9, 12, 13}}}
-
static constexpr int vtkCellType = 27
-
static constexpr std::array<int, 13> vtkNodeOrder = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
-
static constexpr std::array<t_real, 3 * 14> standardCoords = {-1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0, 0, 0, 1, 0, -1, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, 0.5, 0.5, 0.5, -0.5, 0.5, 0.5, 0, 0, 0}
-
template<>
struct ElementTraits<Pyramid5> -
Public Static Attributes
-
static constexpr std::array<t_real, 3 * 5> standardCoords = {-1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0, 0, 0, 1}
-
static constexpr std::array<std::array<t_index, 10>, 5> faceNodes = {{{0, 3, 2, 1}, {0, 1, 4}, {1, 2, 4}, {2, 3, 4}, {3, 0, 4}}}
-
static constexpr int numElevNodes = 9
-
static constexpr std::array<tElevSpan, 9> elevSpans = {{{0, 1}, {1, 2}, {2, 3}, {3, 0}, {0, 4}, {1, 4}, {2, 4}, {3, 4}, {0, 3, 2, 1}}}
-
static constexpr std::array<ElemType, 9> elevNodeSpanTypes = {Line2, Line2, Line2, Line2, Line2, Line2, Line2, Line2, Quad4}
-
static constexpr int vtkCellType = 14
-
static constexpr std::array<int, 5> vtkNodeOrder = {0, 1, 2, 3, 4}
-
static constexpr std::array<t_real, 3 * 5> standardCoords = {-1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0, 0, 0, 1}
-
template<>
struct ElementTraits<Quad4> -
Public Static Attributes
-
static constexpr std::array<t_real, 3 * 4> standardCoords = {-1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0}
-
static constexpr std::array<std::array<t_index, 10>, 4> faceNodes = {{{0, 1}, {1, 2}, {2, 3}, {3, 0}}}
-
static constexpr int numElevNodes = 5
-
static constexpr std::array<tElevSpan, 5> elevSpans = {{{0, 1}, {1, 2}, {2, 3}, {3, 0}, {0, 1, 2, 3}}}
-
static constexpr int vtkCellType = 9
-
static constexpr std::array<int, 4> vtkNodeOrder = {0, 1, 2, 3}
-
static constexpr std::array<t_real, 3 * 4> standardCoords = {-1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0}
-
template<>
struct ElementTraits<Quad9> Public Static Functions
Public Static Attributes
-
static constexpr std::array<t_real, 3 * 9> standardCoords = {-1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0}
-
static constexpr std::array<std::array<t_index, 10>, 4> faceNodes = {{{0, 1, 4}, {1, 2, 5}, {2, 3, 6}, {3, 0, 7}}}
-
static constexpr ElemType elevatedType = UnknownElem
-
static constexpr int numElevNodes = 0
-
static constexpr int numBisect = 4
-
static constexpr int numBisectVariants = 1
-
static constexpr std::array<tBisectSub, 4> bisectElements = {{{0, 4, 8, 7}, {4, 1, 5, 8}, {7, 8, 6, 3}, {8, 5, 2, 6}}}
-
static constexpr int vtkCellType = 23
-
static constexpr std::array<int, 8> vtkNodeOrder = {0, 1, 2, 3, 4, 5, 6, 7}
-
static constexpr std::array<t_real, 3 * 9> standardCoords = {-1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0}
-
template<>
struct ElementTraits<Tet10> Public Static Functions
Public Static Attributes
-
static constexpr std::array<t_real, 3 * 10> standardCoords = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0.5, 0, 0, 0, 0.5, 0.5, 0, 0.5, 0, 0.5, 0.5}
-
static constexpr std::array<std::array<t_index, 10>, 4> faceNodes = {{{0, 2, 1, 6, 5, 4}, {0, 1, 3, 4, 8, 7}, {1, 2, 3, 5, 9, 8}, {2, 0, 3, 6, 7, 9}}}
-
static constexpr ElemType elevatedType = UnknownElem
-
static constexpr int numElevNodes = 0
-
static constexpr int numBisect = 8
-
static constexpr int numBisectVariants = 3
-
static constexpr std::array<tBisectSub, 24> bisectElements = {{{0, 4, 6, 7}, {4, 1, 5, 8}, {6, 5, 2, 9}, {9, 7, 8, 3}, {4, 9, 6, 7}, {4, 8, 9, 7}, {4, 9, 8, 5}, {4, 6, 9, 5}, {0, 4, 6, 7}, {4, 1, 5, 8}, {6, 5, 2, 9}, {9, 7, 8, 3}, {5, 6, 7, 9}, {5, 7, 8, 9}, {5, 8, 7, 4}, {5, 7, 6, 4}, {0, 4, 6, 7}, {4, 1, 5, 8}, {6, 5, 2, 9}, {9, 7, 8, 3}, {6, 7, 8, 9}, {6, 8, 5, 9}, {6, 8, 7, 4}, {6, 5, 8, 4}}}
-
static constexpr int vtkCellType = 24
-
static constexpr std::array<int, 10> vtkNodeOrder = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
-
static constexpr std::array<t_real, 3 * 10> standardCoords = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0.5, 0, 0, 0, 0.5, 0.5, 0, 0.5, 0, 0.5, 0.5}
-
template<>
struct ElementTraits<Tet4> -
Public Static Attributes
-
static constexpr std::array<t_real, 3 * 4> standardCoords = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1}
-
static constexpr std::array<std::array<t_index, 10>, 4> faceNodes = {{{0, 2, 1}, {0, 1, 3}, {1, 2, 3}, {2, 0, 3}}}
-
static constexpr int numElevNodes = 6
-
static constexpr std::array<tElevSpan, 6> elevSpans = {{{0, 1}, {1, 2}, {2, 0}, {0, 3}, {1, 3}, {2, 3}}}
-
static constexpr std::array<ElemType, 6> elevNodeSpanTypes = {Line2, Line2, Line2, Line2, Line2, Line2}
-
static constexpr int vtkCellType = 10
-
static constexpr std::array<int, 4> vtkNodeOrder = {0, 1, 2, 3}
-
static constexpr std::array<t_real, 3 * 4> standardCoords = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1}
-
template<>
struct ElementTraits<Tri3> -
Public Static Attributes
-
static constexpr std::array<t_real, 3 * 3> standardCoords = {0, 0, 0, 1, 0, 0, 0, 1, 0}
-
static constexpr std::array<std::array<t_index, 10>, 3> faceNodes = {{{0, 1}, {1, 2}, {2, 0}}}
-
static constexpr int numElevNodes = 3
-
static constexpr std::array<tElevSpan, 3> elevSpans = {{{0, 1}, {1, 2}, {2, 0}}}
-
static constexpr int vtkCellType = 5
-
static constexpr std::array<int, 3> vtkNodeOrder = {0, 1, 2}
-
static constexpr std::array<t_real, 3 * 3> standardCoords = {0, 0, 0, 1, 0, 0, 0, 1, 0}
-
template<>
struct ElementTraits<Tri6> Public Static Functions
Public Static Attributes
-
static constexpr std::array<t_real, 3 * 6> standardCoords = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0.5, 0}
-
static constexpr std::array<std::array<t_index, 10>, 3> faceNodes = {{{0, 1, 3}, {1, 2, 4}, {2, 0, 5}}}
-
static constexpr ElemType elevatedType = UnknownElem
-
static constexpr int numElevNodes = 0
-
static constexpr int numBisect = 4
-
static constexpr int numBisectVariants = 1
-
static constexpr std::array<tBisectSub, 4> bisectElements = {{{0, 3, 5}, {3, 1, 4}, {5, 3, 4}, {5, 4, 2}}}
-
static constexpr int vtkCellType = 22
-
static constexpr std::array<int, 6> vtkNodeOrder = {0, 1, 2, 3, 4, 5}
-
static constexpr std::array<t_real, 3 * 6> standardCoords = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0.5, 0}
-
struct Quadrature
Public Functions
- template<class TAcc, class TFunc> inline DNDS_DEVICE_CALLABLE void Integration (TAcc &buf, TFunc &&f)
- template<class TAcc, class TFunc> inline DNDS_DEVICE_CALLABLE std::enable_if_t< std::is_invocable_v< TFunc, TAcc &, int > > IntegrationSimple (TAcc &buf, TFunc &&f)
- template<class TAcc, class TFunc> inline DNDS_DEVICE_CALLABLE std::enable_if_t< std::is_invocable_v< TFunc, TAcc &, int, real > > IntegrationSimple (TAcc &buf, TFunc &&f)
-
template<ElemType>
struct ShapeFuncImpl
-
template<>
struct ShapeFuncImpl<Hex27>
-
template<>
struct ShapeFuncImpl<Hex8>
-
template<>
struct ShapeFuncImpl<Line2>
-
template<>
struct ShapeFuncImpl<Line3>
-
template<>
struct ShapeFuncImpl<Prism18>
-
template<>
struct ShapeFuncImpl<Prism6>
-
template<>
struct ShapeFuncImpl<Pyramid14>
-
template<>
struct ShapeFuncImpl<Pyramid5>
-
template<>
struct ShapeFuncImpl<Quad4>
-
template<>
struct ShapeFuncImpl<Quad9>
-
template<>
struct ShapeFuncImpl<Tet10>
-
template<>
struct ShapeFuncImpl<Tet4>
-
template<>
struct ShapeFuncImpl<Tri3>
-
template<>
struct ShapeFuncImpl<Tri6>
-
class SummationNoOp
-
using tNj = Eigen::RowVector<t_real, Eigen::Dynamic>
-
namespace OpenFOAM
Functions
-
inline int passOpenFOAMSpaces(std::istream &in)
-
inline bool getUntil(std::istream &in, char v, std::string &buf)
-
inline void readOpenFOAMList(std::istream &in, const std::function<void(std::istream&)> &readOneItem)
-
inline void readOpenFOAMObj(std::istream &in, const std::function<void(const std::string&)> &readOneItemLine)
-
inline std::vector<std::string> readOpenFOAMHeader(std::istream &in)
-
struct OpenFOAMBoundaryCondition
-
struct OpenFOAMConverter
-
struct OpenFOAMReader
-
inline int passOpenFOAMSpaces(std::istream &in)
-
namespace RBF
Enums
-
enum RBFKernelType
Values:
-
enumerator UnknownRBFKernel
-
enumerator Distance
-
enumerator DistanceA1
-
enumerator InversedDistanceA1
-
enumerator InversedDistanceA1Compact
-
enumerator Gaussian
-
enumerator CPC2
-
enumerator CPC0
-
enumerator UnknownRBFKernel
Functions
- DNDS_DEFINE_ENUM_JSON (RBFKernelType, { {RBFKernelType::UnknownRBFKernel, nullptr}, {RBFKernelType::Distance, "Distance"}, {RBFKernelType::DistanceA1, "DistanceA1"}, {RBFKernelType::InversedDistanceA1, "InversedDistanceA1"}, {RBFKernelType::InversedDistanceA1Compact, "InversedDistanceA1Compact"}, {RBFKernelType::Gaussian, "Gaussian"}, {RBFKernelType::CPC2, "CPC2"}, {RBFKernelType::CPC0, "CPC0"}, }) inline bool KernelIsCompact(RBFKernelType t)
-
inline real GetMaxRij(const tSmallCoords ¢, const tSmallCoords &xs)
-
template<class TIn>
inline MatrixXR FRBFBasis(TIn RiXj, RBFKernelType kernel)
-
template<class Tcent, class Tx>
inline MatrixXR RBFCPC2(Tcent cent, Tx xs, real R, RBFKernelType kernel = Gaussian)
-
template<class TF>
inline MatrixXR RBFInterpolateSolveCoefs(const tSmallCoords &xs, const TF fs, real R, RBFKernelType kernel = Gaussian)
-
template<class TF>
inline MatrixXR RBFInterpolateSolveCoefsNoPoly(const tSmallCoords &xs, const TF fs, real R, RBFKernelType kernel = Gaussian)
-
enum RBFKernelType
-
using tPy_AutoAppendName2ID = py_class_ssp<AutoAppendName2ID>
Key Classes¶
Warning
doxygenclass: Cannot find class “DNDS::Geom::UnstructuredMesh” in doxygen xml output for project “DNDSR” from directory: /home/runner/work/DNDSR/DNDSR/build/docs/xml