![]() |
KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
|
Typedefs | |
template<unsigned int TDim, unsigned int TNumNodes> | |
using | ElementDataStruct = typename CompressibleNavierStokesExplicit< TDim, TNumNodes >::ElementDataStruct |
Functions | |
constexpr bool | IsSimplex (const unsigned int dimensions, const unsigned int nnodes) |
template<unsigned int TDim, unsigned int TNumNodes> | |
static std::enable_if< IsSimplex(TDim, TNumNodes), void >::type | ComputeGeometryData (const Geometry< Node > &rGeometry, ElementDataStruct< TDim, TNumNodes > &rData) |
template<unsigned int TDim, unsigned int TNumNodes> | |
static std::enable_if<!IsSimplex(TDim, TNumNodes), void >::type | ComputeGeometryData (const Geometry< Node > &rGeometry, ElementDataStruct< TDim, TNumNodes > &rData) |
This namespace is used to implement the compile-time choice of:
[1] This is necessary because simplex geometries' shape functions are known at compile-time whereas non-simplex's ones are not (because they depend on the actual shape of the element).
[2] This is useful because GradientsElementSize is only implemented for simplex types.
This problem is solved using SFINAE
using Kratos::CompressibleNavierStokesExplicitInternal::ElementDataStruct = typedef typename CompressibleNavierStokesExplicit<TDim, TNumNodes>::ElementDataStruct |
|
static |
|
static |
Specialization for geometries with non-uniform jacobian (non-simplex) Shape functions cannot be obtained here. They will need to be calculated during integration at each gauss point.