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::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster > Class Template Reference

This is the definition dual lagrange multiplier operators including the derivatives. More...

#include <mortar_classes.h>

Inheritance diagram for Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >:
Collaboration diagram for Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >:

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...
 

Life Cycle

array_1d< GeometryMatrixType, DoFSizeDerivativesDependenceDeltaMe
 
array_1d< GeometryMatrixType, DoFSizeDerivativesDependenceDeltaDe
 
 DualLagrangeMultiplierOperatorsWithDerivatives ()
 
 ~DualLagrangeMultiplierOperatorsWithDerivatives () override
 

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
 

Detailed Description

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
class Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >

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

Author
Vicente Mataix Ferrandiz
Template Parameters
TDimThe dimension of work
TNumNodesThe number of nodes of the slave
TFrictionalIf the problem is frictional or not
TNumNodesMasterThe number of nodes of the master

Member Typedef Documentation

◆ BaseClassType

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::BaseClassType = DualLagrangeMultiplierOperators<TNumNodes, TNumNodesMaster>

The base class type.

◆ DerivativeDataFrictionalType

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DerivativeDataFrictionalType = DerivativeDataFrictional<TDim, TNumNodes, TNumNodesMaster>

The type for frictional derivative data.

◆ DerivativeDataType

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
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.

◆ DerivativeFrictionalessDataType

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DerivativeFrictionalessDataType = DerivativeData<TDim, TNumNodes, TNumNodesMaster>

The type for frictionless derivative data.

◆ GeometryMatrixType

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::GeometryMatrixType = BoundedMatrix<double, TNumNodes, TNumNodes>

The bounded matrix employed class for geometry.

◆ KinematicVariablesType

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::KinematicVariablesType = MortarKinematicVariablesWithDerivatives<TDim, TNumNodes, TNumNodesMaster>

The kinematic variables type with derivatives.

Constructor & Destructor Documentation

◆ DualLagrangeMultiplierOperatorsWithDerivatives()

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DualLagrangeMultiplierOperatorsWithDerivatives ( )
inline

◆ ~DualLagrangeMultiplierOperatorsWithDerivatives()

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::~DualLagrangeMultiplierOperatorsWithDerivatives ( )
inlineoverride

Member Function Documentation

◆ CalculateDeltaAe()

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
bool Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::CalculateDeltaAe ( DerivativeDataType rDerivativeData)
inline

Calculates the matrix DeltaAe.

Popp thesis page 112 equation 4.58

Parameters
rDerivativeDataThe data containing the derivatives

◆ CalculateDeltaAeComponents()

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
void Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::CalculateDeltaAeComponents ( KinematicVariablesType rKinematicVariables,
DerivativeDataType rDerivativeData,
const double  rIntegrationWeight 
)
inline

Calculates the Ae components and its derivatives necessary to compute the Phi_LagrangeMultipliers shape functions.

Popp thesis page 112 eq. 4.59

Parameters
rKinematicVariablesThe kinematic variables
rDerivativeDataThe data containing the derivatives
rIntegrationWeightThe integration weight considered

◆ Initialize()

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
void Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::Initialize ( )
inline

This method initialized the operators.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::KRATOS_CLASS_POINTER_DEFINITION ( DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >  )

◆ PrintInfo()

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

This method prints the current operators.

Friends And Related Function Documentation

◆ Serializer

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

Member Data Documentation

◆ DeltaDe

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
array_1d<GeometryMatrixType, DoFSizeDerivativesDependence> Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DeltaDe

◆ DeltaMe

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
array_1d<GeometryMatrixType, DoFSizeDerivativesDependence> Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DeltaMe

◆ DoFSizeDerivativesDependence

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
const SizeType Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DoFSizeDerivativesDependence = (TDim == 2) ? DoFSizeSlaveGeometry : DoFSizePairedGeometry
static

◆ DoFSizeMasterGeometry

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
const SizeType Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DoFSizeMasterGeometry = (TNumNodesMaster * TDim)
static

◆ DoFSizePairedGeometry

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
const SizeType Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DoFSizePairedGeometry = DoFSizeSlaveGeometry + DoFSizeMasterGeometry
static

◆ DoFSizeSlaveGeometry

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
const SizeType Kratos::DualLagrangeMultiplierOperatorsWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DoFSizeSlaveGeometry = (TNumNodes * TDim)
static

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