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

This data will be used to compute the derivatives. More...

#include <mortar_classes.h>

Collaboration diagram for Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >:

Public Member Functions

Operations
virtual void Initialize (const GeometryType &SlaveGeometry, const ProcessInfo &rCurrentProcessInfo)
 Initializer method. More...
 
virtual void ResetDerivatives ()
 This method reset to zero the cell vertex derivatives. More...
 
void InitializeDeltaAeComponents ()
 Initialize the DeltaAe components. More...
 
virtual void UpdateMasterPair (const GeometryType &MasterGeometry, const ProcessInfo &rCurrentProcessInfo)
 Updating the Master pair. More...
 

Type Definitions

using DummyBoundedMatrixType = BoundedMatrix< int, 1, 1 >
 
using GeometryArraySlaveType = array_1d< double, TNumNodes >
 
using GeometryArrayMasterType = array_1d< double, TNumNodesMaster >
 
using GeometryDoFMatrixSlaveType = BoundedMatrix< double, TNumNodes, TDim >
 
using GeometryDoFMatrixMasterType = BoundedMatrix< double, TNumNodesMaster, TDim >
 
using GeometryMatrixType = BoundedMatrix< double, TNumNodes, TNumNodes >
 
using VertexDerivativesMatrixType = typename std::conditional< TNumNodes==2, DummyBoundedMatrixType, BoundedMatrix< double, 3, 3 > >::type
 
static const SizeType DummySize = 1
 
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
 
static const SizeType DoFSizeDerivativesVertex = (TDim == 2) ? DummySize : DoFSizePairedGeometry
 

Life Cycle

array_1d< double, TNumNodes > PenaltyParameter
 The penalty parameter. More...
 
double ScaleFactor
 The scale factor. More...
 
GeometryDoFMatrixSlaveType NormalSlave
 The normals of the nodes. More...
 
GeometryDoFMatrixMasterType NormalMaster
 
GeometryDoFMatrixSlaveType X1
 Displacements and original coordinates. More...
 
GeometryDoFMatrixSlaveType u1
 
GeometryDoFMatrixMasterType X2
 
GeometryDoFMatrixMasterType u2
 
array_1d< double, DoFSizeDerivativesDependenceDeltaDetjSlave
 Jacobian derivatives. More...
 
array_1d< GeometryArraySlaveType, DoFSizeDerivativesDependenceDeltaPhi
 Dual shape function derivatives. More...
 
array_1d< GeometryArraySlaveType, DoFSizeDerivativesDependenceDeltaN1
 Shape function derivatives. More...
 
array_1d< GeometryArrayMasterType, DoFSizeDerivativesDependenceDeltaN2
 
array_1d< GeometryDoFMatrixSlaveType, DoFSizeSlaveGeometryDeltaNormalSlave
 Normal derivatives. More...
 
array_1d< GeometryDoFMatrixMasterType, DoFSizeMasterGeometryDeltaNormalMaster
 
array_1d< VertexDerivativesMatrixType, DoFSizeDerivativesVertexDeltaCellVertex
 Integration cell vertex derivatives. More...
 
GeometryMatrixType Ae
 Ae matrix. More...
 
array_1d< GeometryMatrixType, DoFSizeDerivativesDependenceDeltaAe
 Derivatives Ae. More...
 
 DerivativeData ()=default
 
virtual ~DerivativeData ()=default
 

Serialization

class Serializer
 

Detailed Description

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

This data will be used to compute the derivatives.

This class includes different information that is used in order to compute the directional derivatives in the mortar contact conditions

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

Member Typedef Documentation

◆ DummyBoundedMatrixType

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::DummyBoundedMatrixType = BoundedMatrix<int, 1, 1>

◆ GeometryArrayMasterType

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::GeometryArrayMasterType = array_1d<double, TNumNodesMaster>

◆ GeometryArraySlaveType

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::GeometryArraySlaveType = array_1d<double, TNumNodes>

◆ GeometryDoFMatrixMasterType

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::GeometryDoFMatrixMasterType = BoundedMatrix<double, TNumNodesMaster, TDim>

◆ GeometryDoFMatrixSlaveType

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::GeometryDoFMatrixSlaveType = BoundedMatrix<double, TNumNodes, TDim>

◆ GeometryMatrixType

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

◆ VertexDerivativesMatrixType

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
using Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::VertexDerivativesMatrixType = typename std::conditional<TNumNodes == 2, DummyBoundedMatrixType, BoundedMatrix<double, 3, 3> >::type

Constructor & Destructor Documentation

◆ DerivativeData()

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::DerivativeData ( )
default

◆ ~DerivativeData()

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
virtual Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::~DerivativeData ( )
virtualdefault

Member Function Documentation

◆ Initialize()

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
virtual void Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::Initialize ( const GeometryType SlaveGeometry,
const ProcessInfo rCurrentProcessInfo 
)
inlinevirtual

Initializer method.

Parameters
SlaveGeometryThe geometry of the slave
rCurrentProcessInfoThe process info from the system

Reimplemented in Kratos::DerivativeDataFrictional< TDim, TNumNodes, TNumNodesMaster >.

◆ InitializeDeltaAeComponents()

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
void Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::InitializeDeltaAeComponents ( )
inline

Initialize the DeltaAe components.

◆ ResetDerivatives()

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
virtual void Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::ResetDerivatives ( )
inlinevirtual

This method reset to zero the cell vertex derivatives.

◆ UpdateMasterPair()

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
virtual void Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::UpdateMasterPair ( const GeometryType MasterGeometry,
const ProcessInfo rCurrentProcessInfo 
)
inlinevirtual

Updating the Master pair.

Parameters
MasterGeometryThe master geometry
rCurrentProcessInfoThe process info from the system

Reimplemented in Kratos::DerivativeDataFrictional< TDim, TNumNodes, TNumNodesMaster >.

Friends And Related Function Documentation

◆ Serializer

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

Member Data Documentation

◆ Ae

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
GeometryMatrixType Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::Ae

Ae matrix.

This matrix corresponds with a coefficient matrix that relates the standard shape functions with the dual shape function It is used to stabilize and for an assembling reduction The name is taken from Popp's work

◆ DeltaAe

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
array_1d<GeometryMatrixType, DoFSizeDerivativesDependence> Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::DeltaAe

◆ DeltaCellVertex

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
array_1d<VertexDerivativesMatrixType, DoFSizeDerivativesVertex> Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::DeltaCellVertex

Integration cell vertex derivatives.

◆ DeltaDetjSlave

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
array_1d<double, DoFSizeDerivativesDependence> Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::DeltaDetjSlave

Jacobian derivatives.

◆ DeltaN1

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
array_1d<GeometryArraySlaveType, DoFSizeDerivativesDependence> Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::DeltaN1

Shape function derivatives.

◆ DeltaN2

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
array_1d<GeometryArrayMasterType, DoFSizeDerivativesDependence> Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::DeltaN2

◆ DeltaNormalMaster

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
array_1d<GeometryDoFMatrixMasterType, DoFSizeMasterGeometry> Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::DeltaNormalMaster

◆ DeltaNormalSlave

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
array_1d<GeometryDoFMatrixSlaveType, DoFSizeSlaveGeometry> Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::DeltaNormalSlave

Normal derivatives.

◆ DeltaPhi

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
array_1d<GeometryArraySlaveType, DoFSizeDerivativesDependence> Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::DeltaPhi

Dual shape function derivatives.

◆ DoFSizeDerivativesDependence

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

◆ DoFSizeDerivativesVertex

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
const SizeType Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::DoFSizeDerivativesVertex = (TDim == 2) ? DummySize : DoFSizePairedGeometry
static

◆ DoFSizeMasterGeometry

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

◆ DoFSizePairedGeometry

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

◆ DoFSizeSlaveGeometry

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

◆ DummySize

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
const SizeType Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::DummySize = 1
static

◆ NormalMaster

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
GeometryDoFMatrixMasterType Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::NormalMaster

◆ NormalSlave

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
GeometryDoFMatrixSlaveType Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::NormalSlave

The normals of the nodes.

◆ PenaltyParameter

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
array_1d<double, TNumNodes> Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::PenaltyParameter

The penalty parameter.

◆ ScaleFactor

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
double Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::ScaleFactor

The scale factor.

◆ u1

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
GeometryDoFMatrixSlaveType Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::u1

◆ u2

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
GeometryDoFMatrixMasterType Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::u2

◆ X1

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
GeometryDoFMatrixSlaveType Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::X1

Displacements and original coordinates.

◆ X2

template<const SizeType TDim, const SizeType TNumNodes, const SizeType TNumNodesMaster = TNumNodes>
GeometryDoFMatrixMasterType Kratos::DerivativeData< TDim, TNumNodes, TNumNodesMaster >::X2

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