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 : // This post processor returns the mass value of an element. It is used 11 : // to check that mass is conserved (per the evolving density calculation) 12 : // when volume changes occur. 13 : // 14 : #include "Mass.h" 15 : 16 : #include "metaphysicl/raw_type.h" 17 : 18 : registerMooseObject("TensorMechanicsApp", Mass); 19 : registerMooseObject("TensorMechanicsApp", ADMass); 20 : 21 : template <bool is_ad> 22 : InputParameters 23 0 : MassTempl<is_ad>::validParams() 24 : { 25 0 : InputParameters params = ElementIntegralVariablePostprocessor::validParams(); 26 0 : params.set<bool>("use_displaced_mesh") = true; 27 0 : return params; 28 0 : } 29 : 30 : template <bool is_ad> 31 0 : MassTempl<is_ad>::MassTempl(const InputParameters & parameters) 32 : : ElementIntegralVariablePostprocessor(parameters), 33 0 : _density(getGenericMaterialProperty<Real, is_ad>("density")) 34 : { 35 0 : } 36 : 37 : template <bool is_ad> 38 : Real 39 0 : MassTempl<is_ad>::computeQpIntegral() 40 : { 41 0 : return MetaPhysicL::raw_value(_density[_qp]); 42 : } 43 : 44 : template class MassTempl<false>; 45 : template class MassTempl<true>;