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