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.
List of all members
Kratos::NurbsVolumeShapeFunction Class Reference

#include <nurbs_volume_shape_functions.h>

Collaboration diagram for Kratos::NurbsVolumeShapeFunction:

Public Types

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

Public Member Functions

Life Cycle
 NurbsVolumeShapeFunction ()
 Default constructor. More...
 
 NurbsVolumeShapeFunction (const SizeType PolynomialDegreeU, const SizeType PolynomialDegreeV, const SizeType PolynomialDegreeW, const SizeType DerivativeOrder)
 
Operators
double operator() (const IndexType ControlPointIndex, const IndexType DerivativeRow) const
 
double operator() (const IndexType ControlPointIndexU, const IndexType ControlPointIndexV, const IndexType ControlPointIndexW, const IndexType DerivativeRow) const
 

Static Public Member Functions

Static Operations
static SizeType NumberOfShapeFunctionRows (const SizeType DerivativeOrder)
 Returns the number of shape function rows for a given order. More...
 
static IndexType IndexOfShapeFunctionRow (const SizeType DerivativeOrderU, const SizeType DerivativeOrderV, const SizeType DerivativeOrderW)
 Returns the index of the shape function row for the given derivative indices. More...
 

Operations

void ResizeDataContainers (const SizeType PolynomialDegreeU, const SizeType PolynomialDegreeV, const SizeType PolynomialDegreeW, const SizeType DerivativeOrder)
 Prepares the required shape function data containers. More...
 
SizeType PolynomialDegreeU () const
 
SizeType PolynomialDegreeV () const
 
SizeType PolynomialDegreeW () const
 
SizeType DerivativeOrder () const
 
SizeType NumberOfShapeFunctionRows () const
 
SizeType NumberOfNonzeroControlPointsU () const
 
SizeType NumberOfNonzeroControlPointsV () const
 
SizeType NumberOfNonzeroControlPointsW () const
 
SizeType NumberOfNonzeroControlPoints () const
 
std::vector< array_1d< int, 3 > > NonzeroControlPointIndices () const
 Computes indices of the nonzero control points. More...
 
std::vector< intControlPointIndices (SizeType NumberOfControlPointsU, SizeType NumberOfControlPointsV, SizeType NumberOfControlPointsW) const
 
double ShapeFunctionValue (const IndexType ControlPointIndexU, const IndexType ControlPointIndexV, const IndexType ControlPointIndexW, const SizeType DerivativeRow) const
 Get shape function value for given CP-indices and derivative row. More...
 
double ShapeFunctionValue (const IndexType ControlPointIndex, const SizeType DerivativeOrder) const
 Get shape function value for given CP-index and derivative row. More...
 
IndexType GetFirstNonzeroControlPointU () const
 
IndexType GetLastNonzeroControlPointU () const
 
IndexType GetFirstNonzeroControlPointV () const
 
IndexType GetLastNonzeroControlPointV () const
 
IndexType GetFirstNonzeroControlPointW () const
 
IndexType GetLastNonzeroControlPointW () const
 
void ComputeBSplineShapeFunctionValuesAtSpan (const Vector &rKnotsU, const Vector &rKnotsV, const Vector &rKnotsW, const int SpanU, const int SpanV, const int SpanW, const double ParameterU, const double ParameterV, const double ParameterW)
 Computes the shape function values at the given parameter and span. More...
 
void ComputeBSplineShapeFunctionValues (const Vector &rKnotsU, const Vector &rKnotsV, const Vector &rKnotsW, const double ParameterU, const double ParameterV, const double ParameterW)
 Computes the shape function values at the given parameter. More...
 
void ComputeNurbsShapeFunctionValuesAtSpan (const Vector &rKnotsU, const Vector &rKnotsV, const Vector &rKnotsW, const IndexType SpanU, const IndexType SpanV, const IndexType SpanW, const Vector &Weights, const double ParameterU, const double ParameterV, const double ParameterW)
 
void ComputeNurbsShapeFunctionValues (const Vector &rKnotsU, const Vector &rKnotsV, const Vector &rKnotsW, const Vector &Weights, const double ParameterU, const double ParameterV, const double ParameterW)
 

Member Typedef Documentation

◆ IndexType

◆ SizeType

Constructor & Destructor Documentation

◆ NurbsVolumeShapeFunction() [1/2]

Kratos::NurbsVolumeShapeFunction::NurbsVolumeShapeFunction ( )
inline

Default constructor.

◆ NurbsVolumeShapeFunction() [2/2]

Kratos::NurbsVolumeShapeFunction::NurbsVolumeShapeFunction ( const SizeType  PolynomialDegreeU,
const SizeType  PolynomialDegreeV,
const SizeType  PolynomialDegreeW,
const SizeType  DerivativeOrder 
)
inline

Member Function Documentation

◆ ComputeBSplineShapeFunctionValues()

void Kratos::NurbsVolumeShapeFunction::ComputeBSplineShapeFunctionValues ( const Vector rKnotsU,
const Vector rKnotsV,
const Vector rKnotsW,
const double  ParameterU,
const double  ParameterV,
const double  ParameterW 
)
inline

Computes the shape function values at the given parameter.

Finds the span, where the given parameters are located and computes then the shape function values.

◆ ComputeBSplineShapeFunctionValuesAtSpan()

void Kratos::NurbsVolumeShapeFunction::ComputeBSplineShapeFunctionValuesAtSpan ( const Vector rKnotsU,
const Vector rKnotsV,
const Vector rKnotsW,
const int  SpanU,
const int  SpanV,
const int  SpanW,
const double  ParameterU,
const double  ParameterV,
const double  ParameterW 
)
inline

Computes the shape function values at the given parameter and span.

◆ ComputeNurbsShapeFunctionValues()

void Kratos::NurbsVolumeShapeFunction::ComputeNurbsShapeFunctionValues ( const Vector rKnotsU,
const Vector rKnotsV,
const Vector rKnotsW,
const Vector Weights,
const double  ParameterU,
const double  ParameterV,
const double  ParameterW 
)
inline

◆ ComputeNurbsShapeFunctionValuesAtSpan()

void Kratos::NurbsVolumeShapeFunction::ComputeNurbsShapeFunctionValuesAtSpan ( const Vector rKnotsU,
const Vector rKnotsV,
const Vector rKnotsW,
const IndexType  SpanU,
const IndexType  SpanV,
const IndexType  SpanW,
const Vector Weights,
const double  ParameterU,
const double  ParameterV,
const double  ParameterW 
)
inline

◆ ControlPointIndices()

std::vector<int> Kratos::NurbsVolumeShapeFunction::ControlPointIndices ( SizeType  NumberOfControlPointsU,
SizeType  NumberOfControlPointsV,
SizeType  NumberOfControlPointsW 
) const
inline
Returns
Indices of control points for given discretization.
Parameters
Numbercontrol points in u-direction.
Numbercontrol points in v-direction.
Numbercontrol points in w-direction.
Returns
Vector with indices.

◆ DerivativeOrder()

SizeType Kratos::NurbsVolumeShapeFunction::DerivativeOrder ( ) const
inline

◆ GetFirstNonzeroControlPointU()

IndexType Kratos::NurbsVolumeShapeFunction::GetFirstNonzeroControlPointU ( ) const
inline

◆ GetFirstNonzeroControlPointV()

IndexType Kratos::NurbsVolumeShapeFunction::GetFirstNonzeroControlPointV ( ) const
inline

◆ GetFirstNonzeroControlPointW()

IndexType Kratos::NurbsVolumeShapeFunction::GetFirstNonzeroControlPointW ( ) const
inline

◆ GetLastNonzeroControlPointU()

IndexType Kratos::NurbsVolumeShapeFunction::GetLastNonzeroControlPointU ( ) const
inline

◆ GetLastNonzeroControlPointV()

IndexType Kratos::NurbsVolumeShapeFunction::GetLastNonzeroControlPointV ( ) const
inline

◆ GetLastNonzeroControlPointW()

IndexType Kratos::NurbsVolumeShapeFunction::GetLastNonzeroControlPointW ( ) const
inline

◆ IndexOfShapeFunctionRow()

static IndexType Kratos::NurbsVolumeShapeFunction::IndexOfShapeFunctionRow ( const SizeType  DerivativeOrderU,
const SizeType  DerivativeOrderV,
const SizeType  DerivativeOrderW 
)
inlinestatic

Returns the index of the shape function row for the given derivative indices.

The shape functions are provided in the following order: N | dN/du, dN/dv, dN/dw | dN^2/du^2, dN^2/du*dv, dN^2/du*dw, dN^2/v^2, dN^2/dv*dw, dN^2/dw^2 | ... 0 | (1,0,0), (0,1,0), (0,0,1) | (2,0,0), (1,1,0), (1,0,1), (0,2,0), (0,1,1), (0,0,2) | ...

Parameters
DerivativesOrderUDerivative order along u-direction.
DerivativesOrderVDerivative order along v-direction.
DerivativesOrderWDerivative order along w-direction.
Returns
IndexOfShapeFunctionRow

◆ NonzeroControlPointIndices()

std::vector<array_1d<int, 3> > Kratos::NurbsVolumeShapeFunction::NonzeroControlPointIndices ( ) const
inline

Computes indices of the nonzero control points.

Returns
std::vector<array_1d<int, 3>> which holds the indices in u,v, and w-direction.

◆ NumberOfNonzeroControlPoints()

SizeType Kratos::NurbsVolumeShapeFunction::NumberOfNonzeroControlPoints ( ) const
inline

◆ NumberOfNonzeroControlPointsU()

SizeType Kratos::NurbsVolumeShapeFunction::NumberOfNonzeroControlPointsU ( ) const
inline

◆ NumberOfNonzeroControlPointsV()

SizeType Kratos::NurbsVolumeShapeFunction::NumberOfNonzeroControlPointsV ( ) const
inline

◆ NumberOfNonzeroControlPointsW()

SizeType Kratos::NurbsVolumeShapeFunction::NumberOfNonzeroControlPointsW ( ) const
inline

◆ NumberOfShapeFunctionRows() [1/2]

SizeType Kratos::NurbsVolumeShapeFunction::NumberOfShapeFunctionRows ( ) const
inline

◆ NumberOfShapeFunctionRows() [2/2]

static SizeType Kratos::NurbsVolumeShapeFunction::NumberOfShapeFunctionRows ( const SizeType  DerivativeOrder)
inlinestatic

Returns the number of shape function rows for a given order.

The shape functions are provided in the following order: N | dN/du, dN/dv, dN/dw | dN^2/du^2, dN^2/du*dv, dN^2/du*dw, dN^2/v^2, dN^2/dv*dw, dN^2/dw^2 | ... 0 | (1,0,0), (0,1,0), (0,0,1) | (2,0,0), (1,1,0), (1,0,1), (0,2,0), (0,1,1), (0,0,2) | ...

Parameters
DerivativesOrder0: the shape functions N only, 1: N and first derivatives, ... Thus, for DerivativesOrder 0 the return value is 1, for 1 the return value is 4, ...
Returns
NumberOfShapeFunctionRows.

◆ operator()() [1/2]

double Kratos::NurbsVolumeShapeFunction::operator() ( const IndexType  ControlPointIndex,
const IndexType  DerivativeRow 
) const
inline

◆ operator()() [2/2]

double Kratos::NurbsVolumeShapeFunction::operator() ( const IndexType  ControlPointIndexU,
const IndexType  ControlPointIndexV,
const IndexType  ControlPointIndexW,
const IndexType  DerivativeRow 
) const
inline

◆ PolynomialDegreeU()

SizeType Kratos::NurbsVolumeShapeFunction::PolynomialDegreeU ( ) const
inline

◆ PolynomialDegreeV()

SizeType Kratos::NurbsVolumeShapeFunction::PolynomialDegreeV ( ) const
inline

◆ PolynomialDegreeW()

SizeType Kratos::NurbsVolumeShapeFunction::PolynomialDegreeW ( ) const
inline

◆ ResizeDataContainers()

void Kratos::NurbsVolumeShapeFunction::ResizeDataContainers ( const SizeType  PolynomialDegreeU,
const SizeType  PolynomialDegreeV,
const SizeType  PolynomialDegreeW,
const SizeType  DerivativeOrder 
)
inline

Prepares the required shape function data containers.

◆ ShapeFunctionValue() [1/2]

double Kratos::NurbsVolumeShapeFunction::ShapeFunctionValue ( const IndexType  ControlPointIndex,
const SizeType  DerivativeOrder 
) const
inline

Get shape function value for given CP-index and derivative row.

◆ ShapeFunctionValue() [2/2]

double Kratos::NurbsVolumeShapeFunction::ShapeFunctionValue ( const IndexType  ControlPointIndexU,
const IndexType  ControlPointIndexV,
const IndexType  ControlPointIndexW,
const SizeType  DerivativeRow 
) const
inline

Get shape function value for given CP-indices and derivative row.


The documentation for this class was generated from the following file: