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

This utilitiy condenses given degrees of freedom from any element stiffness matrix to model e.g. hinges. More...

#include <static_condensation_utility.h>

Collaboration diagram for Kratos::GeoStaticCondensationUtility:

Public Types

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

Static Public Member Functions

static 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...
 
static 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...
 
static 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...
 
static 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...
 
static 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...
 
static SizeType GetNumDofsElement (ElementType &rTheElement)
 This function returns the number of dofs of the respective element by using the following input: More...
 

Detailed Description

This utilitiy condenses given degrees of freedom from any element stiffness matrix to model e.g. hinges.

Member Typedef Documentation

◆ ElementType

◆ MatrixType

◆ SizeType

Member Function Documentation

◆ CalculateSchurComplements()

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

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()

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

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()

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

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()

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

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()

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

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()

static SizeType Kratos::GeoStaticCondensationUtility::GetNumDofsElement ( ElementType rTheElement)
inlinestatic

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

Parameters
rTheElementThe current element

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