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

This class derives from the MortarOperator class and it includes the derived operators. More...

#include <mortar_classes.h>

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

Public Member Functions

Operations
void Initialize ()
 This method initialized the operators. More...
 
void CalculateDeltaMortarOperators (KinematicVariables &rKinematicVariables, DerivativeDataType &rDerivativeData, const double rIntegrationWeight)
 It calculates the mortar operators. More...
 
void PrintInfo (std::ostream &rOStream) const
 Print information about this object. More...
 
- Public Member Functions inherited from Kratos::MortarOperator< TNumNodes, TNumNodes >
void Initialize ()
 This method initialized the operators. More...
 
void CalculateMortarOperators (KinematicVariables &rKinematicVariables, const double rIntegrationWeight)
 It calculates the mortar operators. Popp thesis page 56, equation 3.31 and 3.32. More...
 
GeometryMatrixMasterType ComputePOperator ()
 It calculates the POperator (Inverse(D x M)) More...
 
void PrintInfo (std::ostream &rOStream) const
 Print information about this object. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (MortarOperator)
 Counted pointer of MortarOperator. More...
 
 MortarOperator ()
 
virtual ~MortarOperator ()
 

Type Definitions

using BaseClassType = MortarOperator< TNumNodes, TNumNodesMaster >
 The base class type. More...
 
using KinematicVariables = MortarKinematicVariables< TNumNodes, TNumNodesMaster >
 The kinematic variables class. 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 GeometryMatrixSlaveType = BoundedMatrix< double, TNumNodes, TNumNodes >
 The bounded matrix employed class for slave geometry. More...
 
using GeometryMatrixMasterType = BoundedMatrix< double, TNumNodes, TNumNodesMaster >
 The bounded matrix employed class for master 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 (MortarOperatorWithDerivatives)
 Counted pointer of MortarOperatorWithDerivatives. More...
 

Life Cycle

array_1d< GeometryMatrixSlaveType, DoFSizePairedGeometryDeltaDOperator
 
array_1d< GeometryMatrixMasterType, DoFSizePairedGeometryDeltaMOperator
 
 MortarOperatorWithDerivatives ()
 
 ~MortarOperatorWithDerivatives () override
 

Serialization

class Serializer
 

Additional Inherited Members

- Public Types inherited from Kratos::MortarOperator< TNumNodes, TNumNodes >
using KinematicVariables = MortarKinematicVariables< TNumNodes, TNumNodesMaster >
 The kinematic variables class. More...
 
using GeometryMatrixSlaveType = BoundedMatrix< double, TNumNodes, TNumNodes >
 The bounded matrix employed class. More...
 
using GeometryMatrixMasterType = BoundedMatrix< double, TNumNodes, TNumNodesMaster >
 
- Public Attributes inherited from Kratos::MortarOperator< TNumNodes, TNumNodes >
GeometryMatrixSlaveType DOperator
 Mortar condition matrices - DOperator and MOperator. More...
 
GeometryMatrixMasterType MOperator
 

Detailed Description

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

This class derives from the MortarOperator class and it includes the derived operators.

The derived operators are defined in each DoF of each domain, which means TNumNodes x TDim x 2 derivatives definitions in order to compute all the necessary derivatives. Popp thesis page 102 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::MortarOperatorWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::BaseClassType = MortarOperator<TNumNodes, TNumNodesMaster>

The base class type.

◆ DerivativeDataFrictionalType

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::MortarOperatorWithDerivatives< 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::MortarOperatorWithDerivatives< 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::MortarOperatorWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DerivativeFrictionalessDataType = DerivativeData<TDim, TNumNodes, TNumNodesMaster>

The type for frictionless derivative data.

◆ GeometryMatrixMasterType

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

The bounded matrix employed class for master geometry.

◆ GeometryMatrixSlaveType

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

The bounded matrix employed class for slave geometry.

◆ KinematicVariables

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::MortarOperatorWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::KinematicVariables = MortarKinematicVariables<TNumNodes, TNumNodesMaster>

The kinematic variables class.

Constructor & Destructor Documentation

◆ MortarOperatorWithDerivatives()

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

◆ ~MortarOperatorWithDerivatives()

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

Member Function Documentation

◆ CalculateDeltaMortarOperators()

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
void Kratos::MortarOperatorWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::CalculateDeltaMortarOperators ( KinematicVariables rKinematicVariables,
DerivativeDataType rDerivativeData,
const double  rIntegrationWeight 
)
inline

It calculates the mortar operators.

Popp thesis page 102 equation equation 4.32 and 4.33 / 4.37 and 4.38

Parameters
rKinematicVariablesCorresponds with the kinematic variables
rIntegrationWeightThe corresponding integration weight

◆ Initialize()

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
void Kratos::MortarOperatorWithDerivatives< 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::MortarOperatorWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::KRATOS_CLASS_POINTER_DEFINITION ( MortarOperatorWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >  )

Counted pointer of MortarOperatorWithDerivatives.

◆ PrintInfo()

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

Print information about this object.

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

◆ DeltaDOperator

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
array_1d<GeometryMatrixSlaveType, DoFSizePairedGeometry> Kratos::MortarOperatorWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DeltaDOperator

◆ DeltaMOperator

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
array_1d<GeometryMatrixMasterType, DoFSizePairedGeometry> Kratos::MortarOperatorWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DeltaMOperator

◆ DoFSizeDerivativesDependence

template<const SizeType TDim, const SizeType TNumNodes, bool TFrictional, const SizeType TNumNodesMaster = TNumNodes>
const SizeType Kratos::MortarOperatorWithDerivatives< 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::MortarOperatorWithDerivatives< 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::MortarOperatorWithDerivatives< 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::MortarOperatorWithDerivatives< TDim, TNumNodes, TFrictional, TNumNodesMaster >::DoFSizeSlaveGeometry = (TNumNodes * TDim)
static

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