https://mooseframework.inl.gov
Loading...
Searching...
No Matches
CZMComputeGlobalTractionTotalLagrangian.C
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
12
14
17{
19
20 params.addClassDescription("Compute the equilibrium traction (PK1) and its derivatives for the "
21 "Total Lagrangian formulation.");
22 return params;
23}
24
26 const InputParameters & parameters)
27 : CZMComputeGlobalTractionBase(parameters),
28 _displacement_jump_global(
29 getMaterialPropertyByName<RealVectorValue>(_base_name + "displacement_jump_global")),
30 _czm_reference_rotation(
31 getMaterialPropertyByName<RankTwoTensor>(_base_name + "czm_reference_rotation")),
32 _R(getMaterialPropertyByName<RankTwoTensor>(_base_name + "czm_rotation")),
33 _F(getMaterialPropertyByName<RankTwoTensor>(_base_name + "F_czm")),
34 _PK1traction(declarePropertyByName<RealVectorValue>(_base_name + "PK1traction")),
35 _dPK1traction_dF(declarePropertyByName<RankThreeTensor>(_base_name + "dPK1traction_dF"))
36{
37}
38
39void
44
45void
61
62void
64{
65 // compute the PK1 traction derivatives w.r.t the displacment jump in global
66 // coordinates
69 _czm_total_rotation[_qp].transpose();
70}
71
72void
84
85void
87{
88 // The derivative of the PK1 traction w.r.t. F
89 usingTensorIndices(i_, j_, k_, l_);
90 const RankThreeTensor djump_dF =
92
97 (_czm_total_rotation[_qp] * _dinterface_traction_djump[_qp]).contraction(djump_dF));
98}
registerMooseObject("SolidMechanicsApp", CZMComputeGlobalTractionTotalLagrangian)
Moose::GenericType< RankFourTensor, is_ad > GenericRankFourTensor
Base class traction computing the traction used to impose equilibrium and its derivatives w....
const MaterialProperty< RankTwoTensor > & _czm_total_rotation
the rotation matrix trnasforming from interface to global coordinates
const MaterialProperty< RealVectorValue > & _interface_traction
MaterialProperty< RealVectorValue > & _traction_global
the value of the traction in global and interface coordinates
const MaterialProperty< RankTwoTensor > & _dinterface_traction_djump
MaterialProperty< RankTwoTensor > & _dtraction_djump_global
the traction's derivatives w.r.t.
This class uses the interface traction and its derivatives w.r.t.
RankFourTensor _dR_dF
the rotation derivatives w.r.t.
Real _area_ratio
the area ratio and its derivtive w.r.t.
void computedTPK1dF()
computes the PK1 traction derivatives w.r.t. F
const MaterialProperty< RealVectorValue > & _displacement_jump_global
the displacement jump in global coordinates
const MaterialProperty< RankTwoTensor > & _F
the interface deformation gradient
void computeEquilibriumTracionAndDerivatives() override
computes the PK1 traction and its derivatives
const MaterialProperty< RankTwoTensor > & _R
the rotation associated to F
void computedTPK1dJumpGlobal()
computes the PK1 traction derivatives w.r.t. the global displacement jump
void computeAreaRatioAndDerivatives()
computes the area ratio and increment rate derivatives
RankTwoTensor _F_inv
the inverse of the deformation gradient
const MaterialProperty< RankTwoTensor > & _czm_reference_rotation
the rotation matrix transforming from local to global coordinates in the undeformed configuration
MaterialProperty< RealVectorValue > & _PK1traction
the PK1 traction
CZMComputeGlobalTractionTotalLagrangian(const InputParameters &parameters)
MaterialProperty< RankThreeTensor > & _dPK1traction_dF
the derivitve of the PK1 traction w.r.t. F
void addClassDescription(const std::string &doc_string)
const MooseArray< Point > & _normals
unsigned int _qp
RankFourTensorTempl< T > transposeIj() const
RankThreeTensorTempl< T > contraction(const libMesh::VectorValue< T > &b) const
RankThreeTensorTempl< T > mixedProductJkI(const libMesh::VectorValue< T > &b) const
RankTwoTensorTempl< T > inverse() const
RankTwoTensorTempl< T > transpose() const
GenericRankTwoTensor< is_ad > computeDAreaRatioDF(const GenericRankTwoTensor< is_ad > &FinvT, const GenericRealVectorValue< is_ad > &N, const GenericReal< is_ad > &J, const GenericRankFourTensor< is_ad > &DFinv_DF)
GenericRankFourTensor< is_ad > computedRdF(const GenericRankTwoTensor< is_ad > &R, const GenericRankTwoTensor< is_ad > &U)
compute the derivative of the rotation matrix, R=FU^-1, using Chen and Wheeler 1993
RankFourTensor computedFinversedF(const RankTwoTensor &F_inv)
compute the derivative of F^-1 w.r.t. to F
GenericReal< is_ad > computeAreaRatio(const RankTwoTensor &FinvT, const Real &J, const RealVectorValue &N)
compute the area ratio betweeen the deformed and undeformed configuration, and its derivatives w....