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::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster > Class Template Reference

This is the definition dual lagrange multiplier operators according to the work of Alexander Popp: https://www.lnm.mw.tum.de/staff/alexander-popp/. More...

#include <mortar_classes.h>

Collaboration diagram for Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >:

Public Member Functions

Operations
void Initialize ()
 This method initialized the operators. More...
 
void CalculateAeComponents (KinematicVariables &rKinematicVariables, const double rIntegrationWeight)
 Calculates the Ae components necessary to compute the Phi_LagrangeMultipliers shape functions. More...
 
bool CalculateAe (GeometryMatrixType &Ae)
 Calculates the matrix Ae. To avoid problems in the inversion the matrix is normalized. More...
 
template<class TArray >
GeometryMatrixType ComputeDe (const TArray &N1, const double detJ) const
 Calculates the matrix De. More...
 
void PrintInfo (std::ostream &rOStream) const
 Print information about this object. More...
 

Type Definitions

using KinematicVariables = MortarKinematicVariables< TNumNodes, TNumNodesMaster >
 The kinematic variables class. More...
 
using GeometryMatrixType = BoundedMatrix< double, TNumNodes, TNumNodes >
 The bounded matrix employed class. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (DualLagrangeMultiplierOperators)
 Counted pointer of DualLagrangeMultiplierOperators. More...
 

Life Cycle

GeometryMatrixType Me
 The auxiliary operators needed to build the dual LM Ae operator. More...
 
GeometryMatrixType De
 
 DualLagrangeMultiplierOperators ()
 
virtual ~DualLagrangeMultiplierOperators ()
 

Serialization

class Serializer
 

Detailed Description

template<const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
class Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >

This is the definition dual lagrange multiplier operators according to the work of Alexander Popp: https://www.lnm.mw.tum.de/staff/alexander-popp/.

In particular the thesis of contact mechanics based in mortar method available at: https://mediatum.ub.tum.de/?id=1109994 In order to compute the dual LM shape function the Ae operator must be computed, which depends of the Me and De operators. Phi = Ae * NSlave. In a similar way to the mortar operators, the De corresponds with a diagonal operator and Me with a sparse operator respectively. Ae = De * inv(Me) Popp thesis page 69 and following

Author
Vicente Mataix Ferrandiz
Template Parameters
TNumNodesThe number of nodes of the slave
TNumNodesMasterThe number of nodes of the master

Member Typedef Documentation

◆ GeometryMatrixType

template<const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::GeometryMatrixType = BoundedMatrix<double, TNumNodes, TNumNodes>

The bounded matrix employed class.

◆ KinematicVariables

template<const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::KinematicVariables = MortarKinematicVariables<TNumNodes, TNumNodesMaster>

The kinematic variables class.

Constructor & Destructor Documentation

◆ DualLagrangeMultiplierOperators()

template<const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::DualLagrangeMultiplierOperators ( )
inline

◆ ~DualLagrangeMultiplierOperators()

template<const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
virtual Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::~DualLagrangeMultiplierOperators ( )
inlinevirtual

Member Function Documentation

◆ CalculateAe()

template<const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
bool Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::CalculateAe ( GeometryMatrixType Ae)
inline

Calculates the matrix Ae. To avoid problems in the inversion the matrix is normalized.

Popp thesis page 70. Equation 3.65

Parameters
AeThe dual Lagrange Multiplier operator

◆ CalculateAeComponents()

template<const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
void Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::CalculateAeComponents ( KinematicVariables rKinematicVariables,
const double  rIntegrationWeight 
)
inline

Calculates the Ae components necessary to compute the Phi_LagrangeMultipliers shape functions.

For that it integrates De and Me. Popp thesis page 70 eq. 3.65

Parameters
rKinematicVariablesThe kinematic variables
rIntegrationWeightThe integration weight considered

◆ ComputeDe()

template<const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
template<class TArray >
GeometryMatrixType Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::ComputeDe ( const TArray &  N1,
const double  detJ 
) const
inline

Calculates the matrix De.

Parameters
N1The shape function
detJThe jacobian of the geometry

◆ Initialize()

template<const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
void Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::Initialize ( )
inline

This method initialized the operators.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::KRATOS_CLASS_POINTER_DEFINITION ( DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >  )

Counted pointer of DualLagrangeMultiplierOperators.

◆ PrintInfo()

template<const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
void Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::PrintInfo ( std::ostream &  rOStream) const
inline

Print information about this object.

Friends And Related Function Documentation

◆ Serializer

template<const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
friend class Serializer
friend

Member Data Documentation

◆ De

template<const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
GeometryMatrixType Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::De

◆ Me

template<const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
GeometryMatrixType Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::Me

The auxiliary operators needed to build the dual LM Ae operator.


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