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