Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://www.mooseframework.org 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 : 10 : #include "ADCZMComputeGlobalTractionTotalLagrangian.h" 11 : #include "CZMComputeGlobalTractionTotalLagrangian.h" 12 : 13 : registerMooseObject("TensorMechanicsApp", ADCZMComputeGlobalTractionTotalLagrangian); 14 : 15 : InputParameters 16 6 : ADCZMComputeGlobalTractionTotalLagrangian::validParams() 17 : { 18 6 : InputParameters params = CZMComputeGlobalTractionTotalLagrangian::validParams(); 19 6 : return params; 20 : } 21 : 22 3 : ADCZMComputeGlobalTractionTotalLagrangian::ADCZMComputeGlobalTractionTotalLagrangian( 23 3 : const InputParameters & parameters) 24 : : ADCZMComputeGlobalTractionBase(parameters), 25 3 : _displacement_jump_global( 26 6 : getADMaterialPropertyByName<RealVectorValue>(_base_name + "displacement_jump_global")), 27 3 : _czm_reference_rotation( 28 3 : getADMaterialPropertyByName<RankTwoTensor>(_base_name + "czm_reference_rotation")), 29 6 : _F(getADMaterialPropertyByName<RankTwoTensor>(_base_name + "F_czm")), 30 6 : _R(getADMaterialPropertyByName<RankTwoTensor>(_base_name + "czm_rotation")), 31 9 : _PK1traction(declareADPropertyByName<RealVectorValue>(_base_name + "PK1traction")) 32 : { 33 3 : } 34 : 35 : void 36 288 : ADCZMComputeGlobalTractionTotalLagrangian::initQpStatefulProperties() 37 : { 38 288 : _PK1traction[_qp] = 0; 39 288 : } 40 : 41 : void 42 4320 : ADCZMComputeGlobalTractionTotalLagrangian::computeEquilibriumTracion() 43 : { 44 4320 : const auto J = _F[_qp].det(); 45 4320 : const auto F_inv = _F[_qp].inverse(); 46 8640 : const auto area_ratio = J * (F_inv.transpose() * _normals[_qp]).norm(); 47 : 48 8640 : _traction_global[_qp] = _czm_total_rotation[_qp] * _interface_traction[_qp]; 49 8640 : _PK1traction[_qp] = _traction_global[_qp] * area_ratio; 50 4320 : }