www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
CZMMaterialBase Class Referenceabstract

This is the base Material class for implementing a traction separation material model. More...

#include <CZMMaterialBase.h>

Inheritance diagram for CZMMaterialBase:
[legend]

Public Member Functions

 CZMMaterialBase (const InputParameters &parameters)
 

Protected Member Functions

virtual void computeQpProperties () override
 
virtual RealVectorValue computeTraction ()=0
 method returning the traction in the interface coordinate system. More...
 
virtual RankTwoTensor computeTractionDerivatives ()=0
 method returning the traction derivitaves wrt local displacement jump. More...
 

Protected Attributes

const MooseArray< Point > & _normals
 normal to the interface More...
 
const unsigned int _ndisp
 number of displacement components More...
 
std::vector< const VariableValue * > _disp
 the coupled displacement and neighbor displacement values More...
 
std::vector< const VariableValue * > _disp_neighbor
 
MaterialProperty< RealVectorValue > & _displacement_jump_global
 the displacement jump in global and local coordiante More...
 
MaterialProperty< RealVectorValue > & _displacement_jump
 
MaterialProperty< RealVectorValue > & _traction_global
 the value of the traction in global and local coordinates More...
 
MaterialProperty< RealVectorValue > & _traction
 
MaterialProperty< RankTwoTensor > & _traction_derivatives_global
 the traction's derivatives wrt the displacement jump in global and local coordinates More...
 
MaterialProperty< RankTwoTensor > & _traction_derivatives
 

Detailed Description

This is the base Material class for implementing a traction separation material model.

The responsibility of this class is to rotate the displacement jump from global to local coordinate and rotate back traction and traction derivatives. The local coordinate system assumes the following order: opening, tangential1, tangential2. Note that tangential1, tangential2 are arbitrary and therefore the interface assumes an in-plane isotropic behavior. By overriding computeTraction and computeTractionDerivatives in aderived class, different traction separation laws can be implemented. The computeTraction and computeTractionDerivatives methods assumes calculations are performed in the local frame. CZM laws should always be implemented in 3D even if they are going to be used in 2D or 1D simulations. This class assumes small deformations and that the traction separation law is only dependent upon the the displacement jump.

Definition at line 29 of file CZMMaterialBase.h.

Constructor & Destructor Documentation

◆ CZMMaterialBase()

CZMMaterialBase::CZMMaterialBase ( const InputParameters &  parameters)

Definition at line 26 of file CZMMaterialBase.C.

27  : InterfaceMaterial(parameters),
28  _normals(_assembly.normals()),
29  _ndisp(coupledComponents("displacements")),
30  _disp(_ndisp),
32  _displacement_jump_global(declareProperty<RealVectorValue>("displacement_jump_global")),
33  _displacement_jump(declareProperty<RealVectorValue>("displacement_jump")),
34  _traction_global(declareProperty<RealVectorValue>("traction_global")),
35  _traction(declareProperty<RealVectorValue>("traction")),
36  _traction_derivatives_global(declareProperty<RankTwoTensor>("traction_derivatives_global")),
37  _traction_derivatives(declareProperty<RankTwoTensor>("traction_derivatives"))
38 {
39  if (_ndisp > 3 || _ndisp < 1)
40  mooseError("the CZM material requires 1, 2 or 3 displacement variables");
41 
42  if (getParam<bool>("use_displaced_mesh") == true)
43  mooseError("This material cannot be used with use_displaced_mesh = true");
44 
45  // initializing the displacement vectors
46  for (unsigned int i = 0; i < _ndisp; ++i)
47  {
48  _disp[i] = &coupledValue("displacements", i);
49  _disp_neighbor[i] = &coupledNeighborValue("displacements", i);
50  }
51 }

Member Function Documentation

◆ computeQpProperties()

void CZMMaterialBase::computeQpProperties ( )
overrideprotectedvirtual

Definition at line 54 of file CZMMaterialBase.C.

55 {
56 
57  RealTensorValue RotationGlobalToLocal =
58  RotationMatrix::rotVec1ToVec2(_normals[_qp], RealVectorValue(1, 0, 0));
59 
60  // computing the displacement jump
61  for (unsigned int i = 0; i < _ndisp; i++)
62  _displacement_jump_global[_qp](i) = (*_disp_neighbor[i])[_qp] - (*_disp[i])[_qp];
63  for (unsigned int i = _ndisp; i < 3; i++)
64  _displacement_jump_global[_qp](i) = 0;
65 
66  // rotate the displacement jump to the local coordiante system
67  _displacement_jump[_qp] = RotationGlobalToLocal * _displacement_jump_global[_qp];
68 
69  // compute local traction
70  _traction[_qp] = computeTraction();
71 
72  // compute local traction derivatives wrt the displacement jump
74 
75  // rotate local traction and derivatives to the global coordinate system
76  _traction_global[_qp] = RotationGlobalToLocal.transpose() * _traction[_qp];
78  _traction_derivatives_global[_qp].rotate(RotationGlobalToLocal.transpose());
79 }

◆ computeTraction()

virtual RealVectorValue CZMMaterialBase::computeTraction ( )
protectedpure virtual

method returning the traction in the interface coordinate system.

Implemented in SalehaniIrani3DCTraction.

Referenced by computeQpProperties().

◆ computeTractionDerivatives()

virtual RankTwoTensor CZMMaterialBase::computeTractionDerivatives ( )
protectedpure virtual

method returning the traction derivitaves wrt local displacement jump.

Implemented in SalehaniIrani3DCTraction.

Referenced by computeQpProperties().

Member Data Documentation

◆ _disp

std::vector<const VariableValue *> CZMMaterialBase::_disp
protected

the coupled displacement and neighbor displacement values

Definition at line 45 of file CZMMaterialBase.h.

Referenced by computeQpProperties(), and CZMMaterialBase().

◆ _disp_neighbor

std::vector<const VariableValue *> CZMMaterialBase::_disp_neighbor
protected

Definition at line 46 of file CZMMaterialBase.h.

Referenced by computeQpProperties(), and CZMMaterialBase().

◆ _displacement_jump

MaterialProperty<RealVectorValue>& CZMMaterialBase::_displacement_jump
protected

◆ _displacement_jump_global

MaterialProperty<RealVectorValue>& CZMMaterialBase::_displacement_jump_global
protected

the displacement jump in global and local coordiante

Definition at line 57 of file CZMMaterialBase.h.

Referenced by computeQpProperties().

◆ _ndisp

const unsigned int CZMMaterialBase::_ndisp
protected

number of displacement components

Definition at line 41 of file CZMMaterialBase.h.

Referenced by computeQpProperties(), and CZMMaterialBase().

◆ _normals

const MooseArray<Point>& CZMMaterialBase::_normals
protected

normal to the interface

Definition at line 38 of file CZMMaterialBase.h.

Referenced by computeQpProperties().

◆ _traction

MaterialProperty<RealVectorValue>& CZMMaterialBase::_traction
protected

Definition at line 64 of file CZMMaterialBase.h.

Referenced by computeQpProperties().

◆ _traction_derivatives

MaterialProperty<RankTwoTensor>& CZMMaterialBase::_traction_derivatives
protected

Definition at line 70 of file CZMMaterialBase.h.

Referenced by computeQpProperties().

◆ _traction_derivatives_global

MaterialProperty<RankTwoTensor>& CZMMaterialBase::_traction_derivatives_global
protected

the traction's derivatives wrt the displacement jump in global and local coordinates

Definition at line 69 of file CZMMaterialBase.h.

Referenced by computeQpProperties().

◆ _traction_global

MaterialProperty<RealVectorValue>& CZMMaterialBase::_traction_global
protected

the value of the traction in global and local coordinates

Definition at line 63 of file CZMMaterialBase.h.

Referenced by computeQpProperties().


The documentation for this class was generated from the following files:
CZMMaterialBase::_disp
std::vector< const VariableValue * > _disp
the coupled displacement and neighbor displacement values
Definition: CZMMaterialBase.h:45
CZMMaterialBase::_traction
MaterialProperty< RealVectorValue > & _traction
Definition: CZMMaterialBase.h:64
CZMMaterialBase::_ndisp
const unsigned int _ndisp
number of displacement components
Definition: CZMMaterialBase.h:41
CZMMaterialBase::_disp_neighbor
std::vector< const VariableValue * > _disp_neighbor
Definition: CZMMaterialBase.h:46
CZMMaterialBase::_normals
const MooseArray< Point > & _normals
normal to the interface
Definition: CZMMaterialBase.h:38
CZMMaterialBase::computeTractionDerivatives
virtual RankTwoTensor computeTractionDerivatives()=0
method returning the traction derivitaves wrt local displacement jump.
CZMMaterialBase::_traction_global
MaterialProperty< RealVectorValue > & _traction_global
the value of the traction in global and local coordinates
Definition: CZMMaterialBase.h:63
CZMMaterialBase::_traction_derivatives_global
MaterialProperty< RankTwoTensor > & _traction_derivatives_global
the traction's derivatives wrt the displacement jump in global and local coordinates
Definition: CZMMaterialBase.h:69
CZMMaterialBase::_displacement_jump
MaterialProperty< RealVectorValue > & _displacement_jump
Definition: CZMMaterialBase.h:58
CZMMaterialBase::_traction_derivatives
MaterialProperty< RankTwoTensor > & _traction_derivatives
Definition: CZMMaterialBase.h:70
CZMMaterialBase::_displacement_jump_global
MaterialProperty< RealVectorValue > & _displacement_jump_global
the displacement jump in global and local coordiante
Definition: CZMMaterialBase.h:57
CZMMaterialBase::computeTraction
virtual RealVectorValue computeTraction()=0
method returning the traction in the interface coordinate system.