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 | Functions
Kratos::StaticCondensationUtility Namespace Reference

Typedefs

typedef Element ElementType
 
typedef std::size_t SizeType
 
typedef Matrix MatrixType
 

Functions

void CondenseLeftHandSide (ElementType &rTheElement, MatrixType &rLeftHandSideMatrix, const std::vector< int > &rDofList)
 This function is the main operation of this utility. It sorts the reference matrix w.r.t. the given dofs and condenses the reference matrix by using the following inputs: More...
 
std::vector< MatrixTypeCalculateSchurComplements (ElementType &rTheElement, const MatrixType &rLeftHandSideMatrix, const std::vector< int > &rDofList)
 This function calculates the 4 schur-complements linking the dofs to be condensed to the dofs to remain by using the following inputs: More...
 
std::vector< intCreateRemainingDofList (ElementType &rTheElement, const std::vector< int > &rDofList)
 This function creates a list containing all dofs to remain by using the following inputs: More...
 
void FillSchurComplements (MatrixType &Submatrix, const MatrixType &rLeftHandSideMatrix, const std::vector< int > &rVecA, const std::vector< int > &rVecB, const SizeType &rSizeA, const SizeType &rSizeB)
 This function creates the single schur-complements, called by CalculateSchurComplements, by using the following inputs: More...
 
void ConvertingCondensation (ElementType &rTheElement, Vector &rLocalizedDofVector, Vector &rValues, const std::vector< int > &rDofList, const MatrixType &rLeftHandSideMatrix)
 This function re-calculates the condensed degree of freedom in relation to the remaining dofs by using the following inputs: More...
 
SizeType GetNumDofsElement (const ElementType &rTheElement)
 This function returns the number of dofs of the respective element by using the following input: More...
 

Typedef Documentation

◆ ElementType

◆ MatrixType

◆ SizeType

Function Documentation

◆ CalculateSchurComplements()

std::vector<MatrixType> Kratos::StaticCondensationUtility::CalculateSchurComplements ( ElementType rTheElement,
const MatrixType rLeftHandSideMatrix,
const std::vector< int > &  rDofList 
)

This function calculates the 4 schur-complements linking the dofs to be condensed to the dofs to remain by using the following inputs:

Parameters
rTheElementThe current element
rLeftHandSideMatrixThe matrix which will be condensed
rDofListThe list containing the dofs to be condensed

◆ CondenseLeftHandSide()

void Kratos::StaticCondensationUtility::CondenseLeftHandSide ( ElementType rTheElement,
MatrixType rLeftHandSideMatrix,
const std::vector< int > &  rDofList 
)

This function is the main operation of this utility. It sorts the reference matrix w.r.t. the given dofs and condenses the reference matrix by using the following inputs:

Parameters
rTheElementThe current element
rLeftHandSideMatrixThe matrix which will be condensed
rDofListThe list containing the dofs to be condensed

◆ ConvertingCondensation()

void Kratos::StaticCondensationUtility::ConvertingCondensation ( ElementType rTheElement,
Vector rLocalizedDofVector,
Vector rValues,
const std::vector< int > &  rDofList,
const MatrixType rLeftHandSideMatrix 
)

This function re-calculates the condensed degree of freedom in relation to the remaining dofs by using the following inputs:

Parameters
rTheElementThe current element
rLocalizedDofVectorThe localized remaining dof values @rValues rValues The complete localized dof values after re-calculation @rDofList rValues The list containing the dofs to be condensed @rLeftHandSideMatrix The matrix which will be condensed

◆ CreateRemainingDofList()

std::vector< int > Kratos::StaticCondensationUtility::CreateRemainingDofList ( ElementType rTheElement,
const std::vector< int > &  rDofList 
)

This function creates a list containing all dofs to remain by using the following inputs:

Parameters
rTheElementThe current element
rDofListThe list containing the dofs to be condensed

◆ FillSchurComplements()

void Kratos::StaticCondensationUtility::FillSchurComplements ( MatrixType Submatrix,
const MatrixType rLeftHandSideMatrix,
const std::vector< int > &  rVecA,
const std::vector< int > &  rVecB,
const SizeType rSizeA,
const SizeType rSizeB 
)

This function creates the single schur-complements, called by CalculateSchurComplements, by using the following inputs:

Parameters
SubmatrixThe current submatrix to be filled (schur-complement i)
rLeftHandSideMatrixThe matrix which will be condensed
rVecARemainingDofs or CondensedDof (according to schur-complement i)
rVecBRemainingDofs or CondensedDof (according to schur-complement i)
rSizeASize of RemainingDofs or CondensedDof (according to schur-complement i)
rSizeBSize of RemainingDofs or CondensedDof (according to schur-complement i)

◆ GetNumDofsElement()

SizeType Kratos::StaticCondensationUtility::GetNumDofsElement ( const ElementType rTheElement)

This function returns the number of dofs of the respective element by using the following input:

Parameters
rTheElementThe current element