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.
|
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>
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 |
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
TNumNodes | The number of nodes of the slave |
TNumNodesMaster | The number of nodes of the master |
using Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::GeometryMatrixType = BoundedMatrix<double, TNumNodes, TNumNodes> |
The bounded matrix employed class.
using Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::KinematicVariables = MortarKinematicVariables<TNumNodes, TNumNodesMaster> |
The kinematic variables class.
|
inline |
|
inlinevirtual |
|
inline |
Calculates the matrix Ae. To avoid problems in the inversion the matrix is normalized.
Popp thesis page 70. Equation 3.65
Ae | The dual Lagrange Multiplier operator |
|
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
rKinematicVariables | The kinematic variables |
rIntegrationWeight | The integration weight considered |
|
inline |
Calculates the matrix De.
N1 | The shape function |
detJ | The jacobian of the geometry |
|
inline |
This method initialized the operators.
Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::KRATOS_CLASS_POINTER_DEFINITION | ( | DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster > | ) |
Counted pointer of DualLagrangeMultiplierOperators.
|
inline |
Print information about this object.
|
friend |
GeometryMatrixType Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::De |
GeometryMatrixType Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster >::Me |
The auxiliary operators needed to build the dual LM Ae operator.