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 including the derivatives. More...
#include <mortar_classes.h>
Public Member Functions | |
Operations | |
void | Initialize () |
This method initialized the operators. More... | |
void | CalculateDeltaAeComponents (KinematicVariablesType &rKinematicVariables, DerivativeDataType &rDerivativeData, const double rIntegrationWeight) |
Calculates the Ae components and its derivatives necessary to compute the Phi_LagrangeMultipliers shape functions. More... | |
bool | CalculateDeltaAe (DerivativeDataType &rDerivativeData) |
Calculates the matrix DeltaAe. More... | |
void | PrintInfo (std::ostream &rOStream) const |
This method prints the current operators. More... | |
Public Member Functions inherited from Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodes > | |
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... | |
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... | |
KRATOS_CLASS_POINTER_DEFINITION (DualLagrangeMultiplierOperators) | |
Counted pointer of DualLagrangeMultiplierOperators. More... | |
DualLagrangeMultiplierOperators () | |
virtual | ~DualLagrangeMultiplierOperators () |
Type Definitions | |
using | BaseClassType = DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster > |
The base class type. More... | |
using | KinematicVariablesType = MortarKinematicVariablesWithDerivatives< TDim, TNumNodes, TNumNodesMaster > |
The kinematic variables type with derivatives. More... | |
using | DerivativeDataFrictionalType = DerivativeDataFrictional< TDim, TNumNodes, TNumNodesMaster > |
The type for frictional derivative data. More... | |
using | DerivativeFrictionalessDataType = DerivativeData< TDim, TNumNodes, TNumNodesMaster > |
The type for frictionless derivative data. More... | |
using | DerivativeDataType = typename std::conditional< TFrictional, DerivativeDataFrictionalType, DerivativeFrictionalessDataType >::type |
The type for derivative data, determined by the presence of friction. More... | |
using | GeometryMatrixType = BoundedMatrix< double, TNumNodes, TNumNodes > |
The bounded matrix employed class for geometry. More... | |
static const SizeType | DoFSizeSlaveGeometry = (TNumNodes * TDim) |
static const SizeType | DoFSizeMasterGeometry = (TNumNodesMaster * TDim) |
static const SizeType | DoFSizePairedGeometry = DoFSizeSlaveGeometry + DoFSizeMasterGeometry |
static const SizeType | DoFSizeDerivativesDependence = (TDim == 2) ? DoFSizeSlaveGeometry : DoFSizePairedGeometry |
KRATOS_CLASS_POINTER_DEFINITION (DualLagrangeMultiplierOperatorsWithDerivatives) | |
Counted pointer of DualLagrangeMultiplierOperatorsWithDerivatives. More... | |
Serialization | |
class | Serializer |
Additional Inherited Members | |
Public Types inherited from Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodes > | |
using | KinematicVariables = MortarKinematicVariables< TNumNodes, TNumNodesMaster > |
The kinematic variables class. More... | |
using | GeometryMatrixType = BoundedMatrix< double, TNumNodes, TNumNodes > |
The bounded matrix employed class. More... | |
Public Attributes inherited from Kratos::DualLagrangeMultiplierOperators< TNumNodes, TNumNodes > | |
GeometryMatrixType | Me |
The auxiliary operators needed to build the dual LM Ae operator. More... | |
GeometryMatrixType | De |
This is the definition dual lagrange multiplier operators including the derivatives.
It is based in the same work as the previous class. In this case it computes the derivatives in order to compute the directionald erivative of the dual shape functions. Popp thesis page 111 and following
TDim | The dimension of work |
TNumNodes | The number of nodes of the slave |
TFrictional | If the problem is frictional or not |
TNumNodesMaster | The number of nodes of the master |
using Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::BaseClassType = DualLagrangeMultiplierOperators<TNumNodes, TNumNodesMaster> |
The base class type.
using Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DerivativeDataFrictionalType = DerivativeDataFrictional<TDim, TNumNodes, TNumNodesMaster> |
The type for frictional derivative data.
using Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DerivativeDataType = typename std::conditional<TFrictional, DerivativeDataFrictionalType, DerivativeFrictionalessDataType>::type |
The type for derivative data, determined by the presence of friction.
using Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DerivativeFrictionalessDataType = DerivativeData<TDim, TNumNodes, TNumNodesMaster> |
The type for frictionless derivative data.
using Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::GeometryMatrixType = BoundedMatrix<double, TNumNodes, TNumNodes> |
The bounded matrix employed class for geometry.
using Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::KinematicVariablesType = MortarKinematicVariablesWithDerivatives<TDim, TNumNodes, TNumNodesMaster> |
The kinematic variables type with derivatives.
|
inline |
|
inlineoverride |
|
inline |
Calculates the matrix DeltaAe.
Popp thesis page 112 equation 4.58
rDerivativeData | The data containing the derivatives |
|
inline |
Calculates the Ae components and its derivatives necessary to compute the Phi_LagrangeMultipliers shape functions.
Popp thesis page 112 eq. 4.59
rKinematicVariables | The kinematic variables |
rDerivativeData | The data containing the derivatives |
rIntegrationWeight | The integration weight considered |
|
inline |
This method initialized the operators.
Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::KRATOS_CLASS_POINTER_DEFINITION | ( | DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster > | ) |
Counted pointer of DualLagrangeMultiplierOperatorsWithDerivatives.
|
inline |
This method prints the current operators.
|
friend |
array_1d<GeometryMatrixType, DoFSizeDerivativesDependence> Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DeltaDe |
array_1d<GeometryMatrixType, DoFSizeDerivativesDependence> Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DeltaMe |
|
static |
|
static |
|
static |
|
static |