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.
Static Public Member Functions | List of all members
Kratos::MLSShapeFunctionsUtility Class Reference

Moving Least-Squares utility to calculate shape function values This class uses a linear polynomial basis and an exponential kernel to calculate the shape function values and gradients in a given point using a Moving Least-Squares minimization. More...

#include <mls_shape_functions_utility.h>

Collaboration diagram for Kratos::MLSShapeFunctionsUtility:

Static Public Member Functions

static double CalculateKernel (const array_1d< double, 3 > &rRadVect, const double h)
 Calculate the kernel value This function calculates the exponential kernel value in one point. More...
 
template<std::size_t TDim>
static void CalculateKernelDerivative (const array_1d< double, 3 > &rRadVect, const double h, array_1d< double, TDim > &rKernelDerivative)
 Calculate the kernel derivative values This function calculates the exponential kernel derivatives in one point. More...
 
static void EvaluatePolynomialBasis (const array_1d< double, 3 > &rX, array_1d< double, 3 > &rBasis)
 Evaluates the linear polynomial basis This method evaluates the 2D linear polynommial basis in one point. More...
 
static void EvaluatePolynomialBasis (const array_1d< double, 3 > &rX, array_1d< double, 4 > &rBasis)
 Evaluates the linear polynomial basis This method evaluates the 3D linear polynommial basis in one point. More...
 
static void EvaluatePolynomialBasis (const array_1d< double, 3 > &rX, array_1d< double, 6 > &rBasis)
 Evaluates the quadratic polynomial basis This method evaluates the 2D quadratic polynommial basis in one point. More...
 
static void EvaluatePolynomialBasis (const array_1d< double, 3 > &rX, array_1d< double, 10 > &rBasis)
 Evaluates the quadratic polynomial basis This method evaluates the 3D quadratic polynommial basis in one point. More...
 
static void EvaluatePolynomialBasisDerivatives (const array_1d< double, 3 > &rX, BoundedMatrix< double, 2, 3 > &rBasisDerivatives)
 Evaluates the linear polynomial basis derivatives This method evaluates the 2D linear polynommial basis derivatives in one point. More...
 
static void EvaluatePolynomialBasisDerivatives (const array_1d< double, 3 > &rX, BoundedMatrix< double, 3, 4 > &rBasisDerivatives)
 Evaluates the linear polynomial basis derivatives This method evaluates the 3D linear polynommial basis derivatives in one point. More...
 
static void EvaluatePolynomialBasisDerivatives (const array_1d< double, 3 > &rX, BoundedMatrix< double, 2, 6 > &rBasisDerivatives)
 Evaluates the quadratic polynomial basis derivatives This method evaluates the 2D quadratic polynommial basis derivatives in one point. More...
 
static void EvaluatePolynomialBasisDerivatives (const array_1d< double, 3 > &rX, BoundedMatrix< double, 3, 10 > &rBasisDerivatives)
 Evaluates the quadratic polynomial basis derivatives This method evaluates the 3D quadratic polynommial basis derivatives in one point. More...
 
template<std::size_t TDim, std::size_t TOrder>
static void CalculateShapeFunctions (const Matrix &rPoints, const array_1d< double, 3 > &rX, const double h, Vector &rN)
 Calculates the MLS shape function values This method calculates the shape function values in one point using as support the given cloud of points. More...
 
template<std::size_t TDim, std::size_t TOrder>
static void CalculateShapeFunctionsAndGradients (const Matrix &rPoints, const array_1d< double, 3 > &rX, const double h, Vector &rN, Matrix &rDNDX)
 Calculates the MLS shape function values This method calculates the shape function values and their gradients in one point using as support the given cloud of points. More...
 
template<>
void CalculateShapeFunctionsAndGradients (const Matrix &rPoints, const array_1d< double, 3 > &rX, const double h, Vector &rN, Matrix &rDNDX)
 
template<>
void CalculateShapeFunctionsAndGradients (const Matrix &rPoints, const array_1d< double, 3 > &rX, const double h, Vector &rN, Matrix &rDNDX)
 
template<>
void CalculateShapeFunctionsAndGradients (const Matrix &rPoints, const array_1d< double, 3 > &rX, const double h, Vector &rN, Matrix &rDNDX)
 
template<>
void CalculateShapeFunctionsAndGradients (const Matrix &rPoints, const array_1d< double, 3 > &rX, const double h, Vector &rN, Matrix &rDNDX)
 

Detailed Description

Moving Least-Squares utility to calculate shape function values This class uses a linear polynomial basis and an exponential kernel to calculate the shape function values and gradients in a given point using a Moving Least-Squares minimization.

Member Function Documentation

◆ CalculateKernel()

double Kratos::MLSShapeFunctionsUtility::CalculateKernel ( const array_1d< double, 3 > &  rRadVect,
const double  h 
)
static

Calculate the kernel value This function calculates the exponential kernel value in one point.

Parameters
rRadVectVector from the current point to the point of interest
hKernel radius
Returns
double The kernel value

◆ CalculateKernelDerivative()

template<std::size_t TDim>
template void Kratos::MLSShapeFunctionsUtility::CalculateKernelDerivative< 3 > ( const array_1d< double, 3 > &  rRadVect,
const double  h,
array_1d< double, TDim > &  rKernelDerivative 
)
static

Calculate the kernel derivative values This function calculates the exponential kernel derivatives in one point.

Template Parameters
TDimDimension (2 in 2D and 3 in 3D)
Parameters
rRadVectVector from the current point to the point of interest
hKernel radius
rKernelDerivativeThe kernel derivative value

◆ CalculateShapeFunctions()

template<std::size_t TDim, std::size_t TOrder>
template void Kratos::MLSShapeFunctionsUtility::CalculateShapeFunctions< 3, 2 > ( const Matrix rPoints,
const array_1d< double, 3 > &  rX,
const double  h,
Vector rN 
)
static

Calculates the MLS shape function values This method calculates the shape function values in one point using as support the given cloud of points.

Template Parameters
TDimDimension (2 in 2D and 3 in 3D)
Parameters
rPointsMatrix containing the coordinates of the support cloud of points
rXCoordinates where the shape functions are to be computed
hKernel radius
rNShape functions container

◆ CalculateShapeFunctionsAndGradients() [1/5]

template<>
void Kratos::MLSShapeFunctionsUtility::CalculateShapeFunctionsAndGradients ( const Matrix rPoints,
const array_1d< double, 3 > &  rX,
const double  h,
Vector rN,
Matrix rDNDX 
)
static

◆ CalculateShapeFunctionsAndGradients() [2/5]

template<>
void Kratos::MLSShapeFunctionsUtility::CalculateShapeFunctionsAndGradients ( const Matrix rPoints,
const array_1d< double, 3 > &  rX,
const double  h,
Vector rN,
Matrix rDNDX 
)
static

◆ CalculateShapeFunctionsAndGradients() [3/5]

template<>
void Kratos::MLSShapeFunctionsUtility::CalculateShapeFunctionsAndGradients ( const Matrix rPoints,
const array_1d< double, 3 > &  rX,
const double  h,
Vector rN,
Matrix rDNDX 
)
static

◆ CalculateShapeFunctionsAndGradients() [4/5]

template<>
void Kratos::MLSShapeFunctionsUtility::CalculateShapeFunctionsAndGradients ( const Matrix rPoints,
const array_1d< double, 3 > &  rX,
const double  h,
Vector rN,
Matrix rDNDX 
)
static

◆ CalculateShapeFunctionsAndGradients() [5/5]

template<std::size_t TDim, std::size_t TOrder>
static void Kratos::MLSShapeFunctionsUtility::CalculateShapeFunctionsAndGradients ( const Matrix rPoints,
const array_1d< double, 3 > &  rX,
const double  h,
Vector rN,
Matrix rDNDX 
)
static

Calculates the MLS shape function values This method calculates the shape function values and their gradients in one point using as support the given cloud of points.

Template Parameters
TDimDimension (2 in 2D and 3 in 3D)
Parameters
rPointsMatrix containing the coordinates of the support cloud of points
rXCoordinates where the shape functions are to be computed
hKernel radius
rNShape functions container
rDNDXShape functions gradients container

◆ EvaluatePolynomialBasis() [1/4]

void Kratos::MLSShapeFunctionsUtility::EvaluatePolynomialBasis ( const array_1d< double, 3 > &  rX,
array_1d< double, 10 > &  rBasis 
)
static

Evaluates the quadratic polynomial basis This method evaluates the 3D quadratic polynommial basis in one point.

Parameters
rXCoordinates where the basis is evaluated
rBasis3D quadratic polynomial basis values

◆ EvaluatePolynomialBasis() [2/4]

void Kratos::MLSShapeFunctionsUtility::EvaluatePolynomialBasis ( const array_1d< double, 3 > &  rX,
array_1d< double, 3 > &  rBasis 
)
static

Evaluates the linear polynomial basis This method evaluates the 2D linear polynommial basis in one point.

Parameters
rXCoordinates where the basis is evaluated
rBasis2D linear polynomial basis values

◆ EvaluatePolynomialBasis() [3/4]

void Kratos::MLSShapeFunctionsUtility::EvaluatePolynomialBasis ( const array_1d< double, 3 > &  rX,
array_1d< double, 4 > &  rBasis 
)
static

Evaluates the linear polynomial basis This method evaluates the 3D linear polynommial basis in one point.

Parameters
rXCoordinates where the basis is evaluated
rBasis3D linear polynomial basis values

◆ EvaluatePolynomialBasis() [4/4]

void Kratos::MLSShapeFunctionsUtility::EvaluatePolynomialBasis ( const array_1d< double, 3 > &  rX,
array_1d< double, 6 > &  rBasis 
)
static

Evaluates the quadratic polynomial basis This method evaluates the 2D quadratic polynommial basis in one point.

Parameters
rXCoordinates where the basis is evaluated
rBasis2D linear polynomial basis values

◆ EvaluatePolynomialBasisDerivatives() [1/4]

void Kratos::MLSShapeFunctionsUtility::EvaluatePolynomialBasisDerivatives ( const array_1d< double, 3 > &  rX,
BoundedMatrix< double, 2, 3 > &  rBasisDerivatives 
)
static

Evaluates the linear polynomial basis derivatives This method evaluates the 2D linear polynommial basis derivatives in one point.

Parameters
rXCoordinates where the basis is evaluated
rBasis2D linear polynomial basis derivatives values

◆ EvaluatePolynomialBasisDerivatives() [2/4]

void Kratos::MLSShapeFunctionsUtility::EvaluatePolynomialBasisDerivatives ( const array_1d< double, 3 > &  rX,
BoundedMatrix< double, 2, 6 > &  rBasisDerivatives 
)
static

Evaluates the quadratic polynomial basis derivatives This method evaluates the 2D quadratic polynommial basis derivatives in one point.

Parameters
rXCoordinates where the basis is evaluated
rBasis2D quadratic polynomial basis derivatives values

◆ EvaluatePolynomialBasisDerivatives() [3/4]

void Kratos::MLSShapeFunctionsUtility::EvaluatePolynomialBasisDerivatives ( const array_1d< double, 3 > &  rX,
BoundedMatrix< double, 3, 10 > &  rBasisDerivatives 
)
static

Evaluates the quadratic polynomial basis derivatives This method evaluates the 3D quadratic polynommial basis derivatives in one point.

Parameters
rXCoordinates where the basis is evaluated
rBasis3D quadratic polynomial basis derivatives values

◆ EvaluatePolynomialBasisDerivatives() [4/4]

void Kratos::MLSShapeFunctionsUtility::EvaluatePolynomialBasisDerivatives ( const array_1d< double, 3 > &  rX,
BoundedMatrix< double, 3, 4 > &  rBasisDerivatives 
)
static

Evaluates the linear polynomial basis derivatives This method evaluates the 3D linear polynommial basis derivatives in one point.

Parameters
rXCoordinates where the basis is evaluated
rBasis3D linear polynomial basis derivatives values

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