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.
Kratos::NurbsUtilities Namespace Reference

Utility functions for NURBS computation. More...

Typedefs

Type Definitions
typedef std::size_t IndexType
 
typedef std::size_t SizeType
 

Functions

Static Operations
IndexType GetUpperSpan (const SizeType PolynomialDegree, const Vector &rKnots, const double ParameterT)
 
IndexType GetLowerSpan (const SizeType PolynomialDegree, const Vector &rKnots, const double ParameterT)
 
SizeType GetPolynomialDegree (const SizeType NumberOfKnots, const SizeType NumberOfControlPoints)
 
SizeType GetNumberOfKnots (const SizeType PolynomialDegree, const SizeType NumberOfControlPoints)
 
SizeType GetNumberOfControlPoints (const SizeType PolynomialDegree, const SizeType NumberOfKnots)
 
SizeType GetNumberOfSpans (const SizeType PolynomialDegree, const SizeType NumberOfKnots)
 
static constexpr SizeType GetBinomCoefficient (const SizeType N, const SizeType K) noexcept
 
static constexpr IndexType GetVectorIndexFromMatrixIndices (const SizeType NumberPerRow, const SizeType NumberPerColumn, const IndexType RowIndex, const IndexType ColumnIndex) noexcept
 
static constexpr IndexType GetVectorIndexFromMatrixIndices (const SizeType NumberPerRow, const SizeType NumberPerColumn, const SizeType NumberPerDepth, const IndexType RowIndex, const IndexType ColumnIndex, const IndexType DepthIndex) noexcept
 Computes a vector index from three matrix indices. More...
 
static std::pair< IndexType, IndexTypeGetMatrixIndicesFromVectorIndex (const SizeType NumberPerRow, const SizeType NumberPerColumn, const IndexType Index) noexcept
 
static array_1d< IndexType, 3 > GetMatrixIndicesFromVectorIndex (const SizeType NumberPerRow, const SizeType NumberPerColumn, const SizeType NumberPerDepth, const IndexType Index) noexcept
 Computes three matrix indices from vector index. More...
 

Detailed Description

Utility functions for NURBS computation.

Typedef Documentation

◆ IndexType

typedef std::size_t Kratos::NurbsUtilities::IndexType

◆ SizeType

typedef std::size_t Kratos::NurbsUtilities::SizeType

Function Documentation

◆ GetBinomCoefficient()

static constexpr SizeType Kratos::NurbsUtilities::GetBinomCoefficient ( const SizeType  N,
const SizeType  K 
)
inlinestaticconstexprnoexcept

◆ GetLowerSpan()

IndexType Kratos::NurbsUtilities::GetLowerSpan ( const SizeType  PolynomialDegree,
const Vector rKnots,
const double  ParameterT 
)
inline

◆ GetMatrixIndicesFromVectorIndex() [1/2]

static std::pair<IndexType, IndexType> Kratos::NurbsUtilities::GetMatrixIndicesFromVectorIndex ( const SizeType  NumberPerRow,
const SizeType  NumberPerColumn,
const IndexType  Index 
)
inlinestaticnoexcept

◆ GetMatrixIndicesFromVectorIndex() [2/2]

static array_1d<IndexType,3> Kratos::NurbsUtilities::GetMatrixIndicesFromVectorIndex ( const SizeType  NumberPerRow,
const SizeType  NumberPerColumn,
const SizeType  NumberPerDepth,
const IndexType  Index 
)
inlinestaticnoexcept

Computes three matrix indices from vector index.

Matrix serialization: First walk along rows, then colums, then into depths.

Returns
indices within Matrix.

◆ GetNumberOfControlPoints()

SizeType Kratos::NurbsUtilities::GetNumberOfControlPoints ( const SizeType  PolynomialDegree,
const SizeType  NumberOfKnots 
)
inline

◆ GetNumberOfKnots()

SizeType Kratos::NurbsUtilities::GetNumberOfKnots ( const SizeType  PolynomialDegree,
const SizeType  NumberOfControlPoints 
)
inline

◆ GetNumberOfSpans()

SizeType Kratos::NurbsUtilities::GetNumberOfSpans ( const SizeType  PolynomialDegree,
const SizeType  NumberOfKnots 
)
inline

◆ GetPolynomialDegree()

SizeType Kratos::NurbsUtilities::GetPolynomialDegree ( const SizeType  NumberOfKnots,
const SizeType  NumberOfControlPoints 
)
inline

◆ GetUpperSpan()

IndexType Kratos::NurbsUtilities::GetUpperSpan ( const SizeType  PolynomialDegree,
const Vector rKnots,
const double  ParameterT 
)
inline

◆ GetVectorIndexFromMatrixIndices() [1/2]

static constexpr IndexType Kratos::NurbsUtilities::GetVectorIndexFromMatrixIndices ( const SizeType  NumberPerRow,
const SizeType  NumberPerColumn,
const IndexType  RowIndex,
const IndexType  ColumnIndex 
)
inlinestaticconstexprnoexcept

◆ GetVectorIndexFromMatrixIndices() [2/2]

static constexpr IndexType Kratos::NurbsUtilities::GetVectorIndexFromMatrixIndices ( const SizeType  NumberPerRow,
const SizeType  NumberPerColumn,
const SizeType  NumberPerDepth,
const IndexType  RowIndex,
const IndexType  ColumnIndex,
const IndexType  DepthIndex 
)
inlinestaticconstexprnoexcept

Computes a vector index from three matrix indices.

Matrix serialization: First walk along rows, then colums, then into depths.

Returns
Index within vector.