Nektar++
|
Classes | |
struct | cmpop |
struct | DerivUtil |
struct | EdgeInfo |
struct | ElmtConfigHash |
class | ElUtil |
class | ElUtilJob |
struct | GmshEntity |
Representation of Gmsh entity so that we can extract physical tag IDs. More... | |
class | InputGmsh |
class | InputMCF |
class | InputNek |
class | InputNek5000 |
class | InputNekpp |
class | InputPly |
Converter for Ply files. More... | |
class | InputSem |
class | InputStar |
Converter for VTK files. More... | |
class | InputSwan |
Converter for Swansea mesh format. More... | |
class | InputTec |
Converter for VTK files. More... | |
class | InputVtk |
Converter for VTK files. More... | |
class | NodalUtilTriMonomial |
struct | NodeComparator |
class | NodeOpti |
class | NodeOpti1D3D |
class | NodeOpti2D2D |
class | NodeOpti2D3D |
class | NodeOpti3D3D |
class | NodeOptiJob |
class | OutputGmsh |
Converter for Gmsh files. More... | |
class | OutputNekpp |
Converter for Gmsh files. More... | |
class | OutputSTL |
class | OutputVtk |
Converter for Gmsh files. More... | |
class | ProcessBL |
This processing module calculates the Jacobian of elements using SpatialDomains::GeomFactors and the Element::GetGeom method. For now it simply prints a list of elements which have negative Jacobian. More... | |
class | ProcessCurve |
class | ProcessCurvedEdges |
class | ProcessCyl |
class | ProcessDetectSurf |
This processing module calculates the Jacobian of elements using SpatialDomains::GeomFactors and the Element::GetGeom method. For now it simply prints a list of elements which have negative Jacobian. More... | |
class | ProcessExtractSurf |
This processing module calculates the Jacobian of elements using SpatialDomains::GeomFactors and the Element::GetGeom method. For now it simply prints a list of elements which have negative Jacobian. More... | |
class | ProcessExtractTetPrismInterface |
Module to extract interface between prismatic and tetrahedral elements. More... | |
class | ProcessExtrude |
This processing module extrudes a 2d mesh in the z direction. More... | |
class | ProcessInsertSurface |
This processing module calculates the Jacobian of elements using SpatialDomains::GeomFactors and the Element::GetGeom method. For now it simply prints a list of elements which have negative Jacobian. More... | |
class | ProcessJac |
This processing module calculates the Jacobian of elements using SpatialDomains::GeomFactors and the Element::GetGeom method. For now it simply prints a list of elements which have negative Jacobian. More... | |
class | ProcessLinear |
This processing module removes all the high-order information from the mesh leaving just the linear elements. More... | |
class | ProcessLinkCheck |
This processing module calculates the Jacobian of elements using SpatialDomains::GeomFactors and the Element::GetGeom method. For now it simply prints a list of elements which have negative Jacobian. More... | |
class | ProcessOptiExtract |
class | ProcessPerAlign |
class | ProcessProjectCAD |
class | ProcessScalar |
This processing module calculates the Jacobian of elements using SpatialDomains::GeomFactors and the Element::GetGeom method. For now it simply prints a list of elements which have negative Jacobian. More... | |
class | ProcessSpherigon |
class | ProcessTetSplit |
This processing module calculates the Jacobian of elements using SpatialDomains::GeomFactors and the Element::GetGeom method. For now it simply prints a list of elements which have negative Jacobian. More... | |
class | ProcessVarOpti |
struct | Residual |
struct | SplitEdgeHelper |
struct | SplitMapHelper |
Typedefs | |
typedef std::tuple< int, int, int > | Mode |
typedef std::shared_ptr< InputPly > | InputPlySharedPtr |
typedef std::pair< int, int > | ipair |
typedef std::shared_ptr< DerivUtil > | DerivUtilSharedPtr |
typedef std::shared_ptr< Residual > | ResidualSharedPtr |
typedef std::shared_ptr< ElUtil > | ElUtilSharedPtr |
typedef std::shared_ptr< NodeOpti > | NodeOptiSharedPtr |
typedef LibUtilities::NekFactory< int, NodeOpti, NodeSharedPtr, std::vector< ElUtilSharedPtr >, ResidualSharedPtr, std::map< LibUtilities::ShapeType, DerivUtilSharedPtr >, optiType > | NodeOptiFactory |
Enumerations | |
enum | NekCurve { eFile, eRecon } |
enum | optiType { eLinEl, eWins, eRoca, eHypEl } |
Functions | |
std::vector< int > | quadTensorNodeOrdering (const std::vector< int > &nodes, int n) |
Reorder Gmsh nodes so that they appear in a tensor product format suitable for the interior of a Nektar++ quadrilateral. More... | |
std::vector< int > | triTensorNodeOrdering (const std::vector< int > &nodes, int n) |
Reorder Gmsh nodes so that they appear in a "tensor product" format suitable for the interior of a Nektar++ triangle. More... | |
std::vector< int > | tetTensorNodeOrdering (const std::vector< int > &nodes, int n) |
Reorder Gmsh nodes so that they appear in a "tensor product" format suitable for the interior of a Nektar++ tetrahedron. More... | |
std::vector< int > | prismTensorNodeOrdering (const std::vector< int > &nodes, int n) |
Reorder Gmsh nodes so that they appear in a "tensor product" format suitable for the interior of a Nektar++ prism. This routine is specifically designed for interior Gmsh nodes only. More... | |
std::vector< int > | hexTensorNodeOrdering (const std::vector< int > &nodes, int n) |
Reorder Gmsh nodes so that they appear in a "tensor product" format suitable for the interior of a Nektar++ hexahedron. More... | |
static void | PrismLineFaces (int prismid, map< int, int > &facelist, vector< vector< int > > &FacesToPrisms, vector< vector< int > > &PrismsToFaces, vector< bool > &PrismDone) |
static void | PrismLineFaces (int prismid, map< int, int > &facelist, vector< vector< int > > &FacesToPrisms, vector< vector< int > > &PrismsToFaces, vector< bool > &PrismDone) |
bool | operator== (NekMeshUtils::ElmtConfig const &p1, NekMeshUtils::ElmtConfig const &p2) |
template<typename T > | |
void | TestElmts (const std::map< int, std::shared_ptr< T > > &geomMap, SpatialDomains::MeshGraphSharedPtr &graph, LibUtilities::Interpreter &strEval, int exprId) |
int ** | helper2d (int lda, int arr[][2]) |
int ** | helper2d (int lda, int arr[][4]) |
template<int DIM> | |
NekDouble | Determinant (NekDouble jac[][DIM]) |
Calculate determinant of input matrix. More... | |
template<> | |
NekDouble | Determinant< 2 > (NekDouble jac[][2]) |
template<> | |
NekDouble | Determinant< 3 > (NekDouble jac[][3]) |
template<int DIM> | |
void | InvTrans (NekDouble in[][DIM], NekDouble out[][DIM]) |
Calculate inverse transpose of input matrix. More... | |
template<> | |
void | InvTrans< 2 > (NekDouble in[][2], NekDouble out[][2]) |
template<> | |
void | InvTrans< 3 > (NekDouble in[][3], NekDouble out[][3]) |
template<int DIM> | |
NekDouble | ScalarProd (NekDouble(&in1)[DIM], NekDouble(&in2)[DIM]) |
Calculate Scalar product of input vectors. More... | |
template<> | |
NekDouble | ScalarProd< 2 > (NekDouble(&in1)[2], NekDouble(&in2)[2]) |
template<> | |
NekDouble | ScalarProd< 3 > (NekDouble(&in1)[3], NekDouble(&in2)[3]) |
template<int DIM> | |
void | EMatrix (NekDouble in[][DIM], NekDouble out[][DIM]) |
Calculate \( E = F^\top F - I \) tensor used in derivation of linear elasticity gradients. More... | |
template<> | |
void | EMatrix< 2 > (NekDouble in[][2], NekDouble out[][2]) |
template<> | |
void | EMatrix< 3 > (NekDouble in[][3], NekDouble out[][3]) |
template<int DIM> | |
NekDouble | FrobProd (NekDouble in1[][DIM], NekDouble in2[][DIM]) |
Calculate Frobenius inner product of input matrices. More... | |
template<> | |
NekDouble | FrobProd< 2 > (NekDouble in1[][2], NekDouble in2[][2]) |
template<> | |
NekDouble | FrobProd< 3 > (NekDouble in1[][3], NekDouble in2[][3]) |
template<int DIM> | |
NekDouble | FrobeniusNorm (NekDouble inarray[][DIM]) |
Calculate Frobenius norm \( \| A \|_f ^2 \) of a matrix \( A \). More... | |
template<> | |
NekDouble | FrobeniusNorm< 2 > (NekDouble inarray[][2]) |
template<> | |
NekDouble | FrobeniusNorm< 3 > (NekDouble inarray[][3]) |
NodeOptiFactory & | GetNodeOptiFactory () |
Variables | |
const NekDouble | prismU1 [6] = {-1.0, 1.0, 1.0,-1.0,-1.0,-1.0} |
const NekDouble | prismV1 [6] = {-1.0,-1.0, 1.0, 1.0,-1.0, 1.0} |
const NekDouble | prismW1 [6] = {-1.0,-1.0,-1.0,-1.0, 1.0, 1.0} |
std::mutex | mtx2 |
std::mutex | mtx |
typedef std::shared_ptr< DerivUtil > Nektar::Utilities::DerivUtilSharedPtr |
typedef std::shared_ptr<ElUtil> Nektar::Utilities::ElUtilSharedPtr |
typedef std::shared_ptr<InputPly> Nektar::Utilities::InputPlySharedPtr |
Definition at line 67 of file InputPly.h.
typedef std::pair<int, int> Nektar::Utilities::ipair |
Definition at line 52 of file ProcessTetSplit.cpp.
typedef std::tuple<int, int, int> Nektar::Utilities::Mode |
Definition at line 220 of file InputGmsh.cpp.
typedef LibUtilities::NekFactory< int, NodeOpti, NodeSharedPtr, std::vector<ElUtilSharedPtr>, ResidualSharedPtr, std::map<LibUtilities::ShapeType, DerivUtilSharedPtr>, optiType> Nektar::Utilities::NodeOptiFactory |
Definition at line 140 of file NodeOpti.h.
typedef std::shared_ptr<NodeOpti> Nektar::Utilities::NodeOptiSharedPtr |
Definition at line 135 of file NodeOpti.h.
typedef std::shared_ptr< Residual > Nektar::Utilities::ResidualSharedPtr |
Enumerator | |
---|---|
eFile | |
eRecon |
Definition at line 50 of file InputNek.h.
Enumerator | |
---|---|
eLinEl | |
eWins | |
eRoca | |
eHypEl |
Definition at line 60 of file ProcessVarOpti.h.
Calculate determinant of input matrix.
Specialised versions of this function exist only for 2x2 and 3x3 matrices.
jac | Input matrix |
jac
. Definition at line 54 of file Evaluator.hxx.
Referenced by Nektar::Utilities::NodeOpti::GetFunctional().
|
inline |
Definition at line 60 of file Evaluator.hxx.
Referenced by InvTrans< 2 >().
|
inline |
Definition at line 65 of file Evaluator.hxx.
Referenced by InvTrans< 3 >(), and Nektar::Utilities::NodeOpti::MinEigen().
|
inline |
Calculate \( E = F^\top F - I \) tensor used in derivation of linear elasticity gradients.
Specialised versions of this function exist only for 2x2 and 3x3 matrices.
in | Input matrix \( F \) |
out | Output matrix \( F^\top F - I \) |
Definition at line 164 of file Evaluator.hxx.
|
inline |
Definition at line 169 of file Evaluator.hxx.
|
inline |
Definition at line 177 of file Evaluator.hxx.
Calculate Frobenius norm \( \| A \|_f ^2 \) of a matrix \( A \).
inarray | Input matrix \( A \) |
Definition at line 238 of file Evaluator.hxx.
Referenced by Nektar::Utilities::NodeOpti::GetFunctional().
|
inline |
Definition at line 245 of file Evaluator.hxx.
|
inline |
Definition at line 254 of file Evaluator.hxx.
|
inline |
Calculate Frobenius inner product of input matrices.
Definition at line 202 of file Evaluator.hxx.
|
inline |
Definition at line 210 of file Evaluator.hxx.
|
inline |
Definition at line 219 of file Evaluator.hxx.
NodeOptiFactory & Nektar::Utilities::GetNodeOptiFactory | ( | ) |
Definition at line 51 of file NodeOpti.cpp.
Referenced by Nektar::Utilities::ProcessVarOpti::Analytics(), Nektar::Utilities::NodeOpti::CalcMinJac(), Nektar::Utilities::NodeOpti1D3D::Optimise(), Nektar::Utilities::NodeOpti2D2D::Optimise(), and Nektar::Utilities::ProcessVarOpti::Process().
int** Nektar::Utilities::helper2d | ( | int | lda, |
int | arr[][2] | ||
) |
Definition at line 61 of file ProcessBL.cpp.
Referenced by Nektar::Utilities::ProcessBL::BoundaryLayer3D().
int** Nektar::Utilities::helper2d | ( | int | lda, |
int | arr[][4] | ||
) |
Definition at line 73 of file ProcessBL.cpp.
std::vector<int> Nektar::Utilities::hexTensorNodeOrdering | ( | const std::vector< int > & | nodes, |
int | n | ||
) |
Reorder Gmsh nodes so that they appear in a "tensor product" format suitable for the interior of a Nektar++ hexahedron.
For an example, consider a second order hexahedron. This routine will produce a permutation map that applies the following permutation:
We assume that Gmsh uses a recursive ordering system, so that interior nodes are reordered by calling this function recursively.
nodes | The integer IDs of the nodes to be reordered, in Gmsh format. |
n | The number of nodes in one coordinate direction. If this is zero we assume no reordering needs to be done and return the identity permutation. |
Definition at line 539 of file InputGmsh.cpp.
References Nektar::StdRegions::eDir1BwdDir1_Dir2FwdDir2, Nektar::StdRegions::eDir1FwdDir1_Dir2FwdDir2, Nektar::StdRegions::eDir1FwdDir2_Dir2FwdDir1, and quadTensorNodeOrdering().
Referenced by Nektar::Utilities::InputGmsh::HexReordering().
|
inline |
Calculate inverse transpose of input matrix.
Specialised versions of this function exist only for 2x2 and 3x3 matrices.
in | Input matrix \( A \) |
out | Output matrix \( A^{-\top} \) |
Definition at line 81 of file Evaluator.hxx.
|
inline |
Definition at line 86 of file Evaluator.hxx.
References Determinant< 2 >().
|
inline |
Definition at line 96 of file Evaluator.hxx.
References Determinant< 3 >().
bool Nektar::Utilities::operator== | ( | NekMeshUtils::ElmtConfig const & | p1, |
NekMeshUtils::ElmtConfig const & | p2 | ||
) |
Definition at line 57 of file OutputGmsh.h.
References Nektar::NekMeshUtils::ElmtConfig::m_e, Nektar::NekMeshUtils::ElmtConfig::m_faceNodes, Nektar::NekMeshUtils::ElmtConfig::m_order, and Nektar::NekMeshUtils::ElmtConfig::m_volumeNodes.
|
static |
Definition at line 420 of file InputStar.cpp.
Referenced by PrismLineFaces(), Nektar::Utilities::InputTec::ReadZone(), Nektar::Utilities::InputTec::ResetNodes(), Nektar::Utilities::InputStar::ResetNodes(), and Nektar::Utilities::InputStar::SetupElements().
|
static |
Definition at line 634 of file InputStarTec.cpp.
References PrismLineFaces().
std::vector<int> Nektar::Utilities::prismTensorNodeOrdering | ( | const std::vector< int > & | nodes, |
int | n | ||
) |
Reorder Gmsh nodes so that they appear in a "tensor product" format suitable for the interior of a Nektar++ prism. This routine is specifically designed for interior Gmsh nodes only.
Prisms are a bit of a special case, in that interior nodes are heterogeneous in the number of points they use. As an example, for a second-order interior of a fourth-order prism, this routine calculates the mapping taking us
nodes | The integer IDs of the nodes to be reordered, in Gmsh format. |
n | The number of nodes in one coordinate direction. If this is zero we assume no reordering needs to be done and return the identity permutation. |
Definition at line 463 of file InputGmsh.cpp.
References ASSERTL0.
Referenced by Nektar::Utilities::InputGmsh::PrismReordering().
std::vector<int> Nektar::Utilities::quadTensorNodeOrdering | ( | const std::vector< int > & | nodes, |
int | n | ||
) |
Reorder Gmsh nodes so that they appear in a tensor product format suitable for the interior of a Nektar++ quadrilateral.
For an example, consider a second order quadrilateral. This routine will produce a permutation map that applies the following permutation:
We assume that Gmsh uses a recursive ordering system, so that interior nodes are reordered by calling this function recursively.
nodes | The integer IDs of the nodes to be reordered, in Gmsh format. |
n | The number of nodes in one coordinate direction. If this is zero we assume no reordering needs to be done and return the identity permutation. |
Definition at line 92 of file InputGmsh.cpp.
References CellMLToNektar.pycml::copy().
Referenced by Nektar::Utilities::InputGmsh::HexReordering(), hexTensorNodeOrdering(), Nektar::Utilities::InputGmsh::PrismReordering(), and Nektar::Utilities::InputGmsh::QuadReordering().
|
inline |
Calculate Scalar product of input vectors.
Definition at line 133 of file Evaluator.hxx.
|
inline |
Definition at line 140 of file Evaluator.hxx.
|
inline |
Definition at line 146 of file Evaluator.hxx.
void Nektar::Utilities::TestElmts | ( | const std::map< int, std::shared_ptr< T > > & | geomMap, |
SpatialDomains::MeshGraphSharedPtr & | graph, | ||
LibUtilities::Interpreter & | strEval, | ||
int | exprId | ||
) |
Definition at line 89 of file OutputNekpp.cpp.
References ASSERTL0, and Nektar::LibUtilities::Interpreter::Evaluate().
Referenced by Nektar::Utilities::OutputNekpp::Process().
std::vector<int> Nektar::Utilities::tetTensorNodeOrdering | ( | const std::vector< int > & | nodes, |
int | n | ||
) |
Reorder Gmsh nodes so that they appear in a "tensor product" format suitable for the interior of a Nektar++ tetrahedron.
For an example, consider a second order tetrahedron. This routine will produce a permutation map that applies the following permutation:
We assume that Gmsh uses a recursive ordering system, so that interior nodes are reordered by calling this function recursively.
nodes | The integer IDs of the nodes to be reordered, in Gmsh format. |
n | The number of nodes in one coordinate direction. If this is zero we assume no reordering needs to be done and return the identity permutation. |
Definition at line 284 of file InputGmsh.cpp.
References Nektar::NekMeshUtils::HOTriangle< T >::Align(), Nektar::NekMeshUtils::HOTriangle< T >::surfVerts, and triTensorNodeOrdering().
Referenced by Nektar::Utilities::InputGmsh::TetReordering().
std::vector<int> Nektar::Utilities::triTensorNodeOrdering | ( | const std::vector< int > & | nodes, |
int | n | ||
) |
Reorder Gmsh nodes so that they appear in a "tensor product" format suitable for the interior of a Nektar++ triangle.
For an example, consider a third-order triangle. This routine will produce a permutation map that applies the following permutation:
We assume that Gmsh uses a recursive ordering system, so that interior nodes are reordered by calling this function recursively.
nodes | The integer IDs of the nodes to be reordered, in Gmsh format. |
n | The number of nodes in one coordinate direction. If this is zero we assume no reordering needs to be done and return the identity permutation. |
Definition at line 169 of file InputGmsh.cpp.
References CellMLToNektar.pycml::copy().
Referenced by Nektar::Utilities::InputGmsh::PrismReordering(), Nektar::Utilities::InputGmsh::TetReordering(), tetTensorNodeOrdering(), and Nektar::Utilities::InputGmsh::TriReordering().
std::mutex Nektar::Utilities::mtx |
Definition at line 46 of file NodeOptiCAD.cpp.
Referenced by Nektar::Utilities::NodeOpti3D3D::Optimise(), and Nektar::Utilities::NodeOpti2D2D::Optimise().
std::mutex Nektar::Utilities::mtx2 |
Definition at line 48 of file ElUtil.cpp.
const NekDouble Nektar::Utilities::prismU1[6] = {-1.0, 1.0, 1.0,-1.0,-1.0,-1.0} |
Definition at line 54 of file ProcessProjectCAD.cpp.
const NekDouble Nektar::Utilities::prismV1[6] = {-1.0,-1.0, 1.0, 1.0,-1.0, 1.0} |
Definition at line 55 of file ProcessProjectCAD.cpp.
const NekDouble Nektar::Utilities::prismW1[6] = {-1.0,-1.0,-1.0,-1.0, 1.0, 1.0} |
Definition at line 56 of file ProcessProjectCAD.cpp.