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 : #pragma once 11 : 12 : #include "ComputeLagrangianStressBase.h" 13 : 14 : /// Native interface for providing the 1st Piola Kirchhoff stress 15 : /// 16 : /// This class *implements* the 1st PK stress update, providing: 17 : /// 1) The 1st PK stress 18 : /// 2) The derivative of the 1st PK stress wrt the deformation gradient 19 : /// 20 : /// and wraps these to provide: 21 : /// 1) The Cauchy stress 22 : /// 2) The derivative of the increment in the Cauchy stress wrt the 23 : /// increment in the spatial velocity gradient 24 : /// 25 : class ComputeLagrangianStressPK1 : public ComputeLagrangianStressBase 26 : { 27 : public: 28 : static InputParameters validParams(); 29 : ComputeLagrangianStressPK1(const InputParameters & parameters); 30 288 : virtual ~ComputeLagrangianStressPK1(){}; 31 : 32 : protected: 33 : /// Calculate the stress update to provide both measures (cauchy and pk1) 34 : virtual void computeQpStressUpdate() override; 35 : /// Provide for the actual PK stress update (just PK1) 36 : virtual void computeQpPK1Stress() = 0; 37 : 38 : private: 39 : /// Wrap the PK stress to get the Cauchy stress 40 : virtual void computeQpCauchyStress(); 41 : 42 : protected: 43 : /// Inverse incremental deformation gradient 44 : const MaterialProperty<RankTwoTensor> & _inv_df; 45 : /// Deformation gradient 46 : const MaterialProperty<RankTwoTensor> & _F; 47 : };