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::DerivativesRecoveryUtility< TDim > Class Template Reference

Superconvergent patch recovery for linear meshes using quadratic polynomials. More...

#include <derivatives_recovery_utility.h>

Collaboration diagram for Kratos::DerivativesRecoveryUtility< TDim >:

Public Types

Type Definitions
typedef Node NodeType
 

Public Member Functions

Pointer Definitions
 KRATOS_CLASS_POINTER_DEFINITION (DerivativesRecoveryUtility)
 

Static Public Member Functions

Operations
static void Check (ModelPart &rModelPart)
 Check that all the required variables are present in the nodal database. More...
 
static void CheckRequiredNeighborsPatch (ModelPart &rModelPart)
 Check that all the nodes have the required number of neighbors (6 in 2D and 10 in 3D) More...
 
static void ExtendNeighborsPatch (ModelPart &rModelPart, const std::size_t RequiredNeighbors)
 Same as CheckRequiredNeighborsPatch with a custom number of required neighbors. More...
 
static void CalculatePolynomialWeights (ModelPart &rModelPart)
 Fit a polynomial of degree=2 and store its derivative coefficients in FIRST_DERIVATIVE_WEIGHTS and SECOND_DERIVATIVE_WEIGHTS. More...
 
static void RecoverDivergence (ModelPart &rModelPart, const Variable< array_1d< double, 3 >> &rOriginVariable, const Variable< double > &rDestinationVariable, const std::size_t BufferStep=0)
 Recover the divergence of a vector variable. More...
 
static void RecoverGradient (ModelPart &rModelPart, const Variable< double > &rOriginVariable, const Variable< array_1d< double, 3 >> &rDestinationVariable, const std::size_t BufferStep=0)
 Recover the gradient of a scalar variable. More...
 
static void RecoverLaplacian (ModelPart &rModelPart, const Variable< double > &rOriginVariable, const Variable< double > &rDestinationVariable, const std::size_t BufferStep=0)
 Recover the laplacian of a scalar variable. More...
 
static void RecoverLaplacian (ModelPart &rModelPart, const Variable< array_1d< double, 3 >> &rOriginVariable, const Variable< array_1d< double, 3 >> &rDestinationVariable, const std::size_t BufferStep=0)
 Recover the laplacian of a vector variable as the gradient of the divergence. More...
 

Detailed Description

template<std::size_t TDim>
class Kratos::DerivativesRecoveryUtility< TDim >

Superconvergent patch recovery for linear meshes using quadratic polynomials.

Zhimin Zhangand and Ahmed Naga (2006) "A new finite element gradient recovery method: superconvergence property" SIAM J. Sci. Comput., 26(4), 1192–1213. (22 pages)

The polynomial follows the next convention: p_2(x, y, z, Node) = trans(P)*a trans(P) = (1, x, y, z, x^2, y^2, z^2, xy, xz, yz) trans(a) = a_i

Member Typedef Documentation

◆ NodeType

template<std::size_t TDim>
typedef Node Kratos::DerivativesRecoveryUtility< TDim >::NodeType

Member Function Documentation

◆ CalculatePolynomialWeights()

template<std::size_t TDim>
void Kratos::DerivativesRecoveryUtility< TDim >::CalculatePolynomialWeights ( ModelPart rModelPart)
static

Fit a polynomial of degree=2 and store its derivative coefficients in FIRST_DERIVATIVE_WEIGHTS and SECOND_DERIVATIVE_WEIGHTS.

It calls CheckRequiredNeighborsPatch

See also
CheckRequiredNeighborsPatch
Parameters
rModelPart

◆ Check()

template<std::size_t TDim>
void Kratos::DerivativesRecoveryUtility< TDim >::Check ( ModelPart rModelPart)
static

Check that all the required variables are present in the nodal database.

Parameters
rModelPart

◆ CheckRequiredNeighborsPatch()

template<std::size_t TDim>
void Kratos::DerivativesRecoveryUtility< TDim >::CheckRequiredNeighborsPatch ( ModelPart rModelPart)
static

Check that all the nodes have the required number of neighbors (6 in 2D and 10 in 3D)

Parameters
rModelPart

◆ ExtendNeighborsPatch()

template<std::size_t TDim>
void Kratos::DerivativesRecoveryUtility< TDim >::ExtendNeighborsPatch ( ModelPart rModelPart,
const std::size_t  RequiredNeighbors 
)
static

Same as CheckRequiredNeighborsPatch with a custom number of required neighbors.

Parameters
rModelPart
RequiredNeighbors

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<std::size_t TDim>
Kratos::DerivativesRecoveryUtility< TDim >::KRATOS_CLASS_POINTER_DEFINITION ( DerivativesRecoveryUtility< TDim >  )

◆ RecoverDivergence()

template<std::size_t TDim>
void Kratos::DerivativesRecoveryUtility< TDim >::RecoverDivergence ( ModelPart rModelPart,
const Variable< array_1d< double, 3 >> &  rOriginVariable,
const Variable< double > &  rDestinationVariable,
const std::size_t  BufferStep = 0 
)
static

Recover the divergence of a vector variable.

Parameters
rModelPart
rOriginVariable
rDestinationVariable
BufferStep

◆ RecoverGradient()

template<std::size_t TDim>
void Kratos::DerivativesRecoveryUtility< TDim >::RecoverGradient ( ModelPart rModelPart,
const Variable< double > &  rOriginVariable,
const Variable< array_1d< double, 3 >> &  rDestinationVariable,
const std::size_t  BufferStep = 0 
)
static

Recover the gradient of a scalar variable.

Parameters
rModelPart
rOriginVariable
rDestinationVariable
BufferStep

◆ RecoverLaplacian() [1/2]

template<std::size_t TDim>
void Kratos::DerivativesRecoveryUtility< TDim >::RecoverLaplacian ( ModelPart rModelPart,
const Variable< array_1d< double, 3 >> &  rOriginVariable,
const Variable< array_1d< double, 3 >> &  rDestinationVariable,
const std::size_t  BufferStep = 0 
)
static

Recover the laplacian of a vector variable as the gradient of the divergence.

Parameters
rModelPart
rOriginVariable
rDestinationVariable
BufferStep

◆ RecoverLaplacian() [2/2]

template<std::size_t TDim>
void Kratos::DerivativesRecoveryUtility< TDim >::RecoverLaplacian ( ModelPart rModelPart,
const Variable< double > &  rOriginVariable,
const Variable< double > &  rDestinationVariable,
const std::size_t  BufferStep = 0 
)
static

Recover the laplacian of a scalar variable.

Parameters
rModelPart
rOriginVariable
rDestinationVariable
BufferStep

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