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 "VectorFromComponentVariablesMaterial.h" 11 : 12 : registerMooseObject("MooseApp", VectorFromComponentVariablesMaterial); 13 : registerMooseObject("MooseApp", ADVectorFromComponentVariablesMaterial); 14 : 15 : template <bool is_ad> 16 : InputParameters 17 30040 : VectorFromComponentVariablesMaterialTempl<is_ad>::validParams() 18 : { 19 30040 : InputParameters params = Material::validParams(); 20 60080 : params.addClassDescription("Computes a vector material property from coupled variables"); 21 120160 : params.addRequiredParam<MaterialPropertyName>( 22 : "vector_prop_name", "The name to give the declared vector material property"); 23 120160 : params.addRequiredCoupledVar("u", "x-component"); 24 120160 : params.addCoupledVar("v", 0, "y-component"); 25 90120 : params.addCoupledVar("w", 0, "z-component"); 26 30040 : return params; 27 0 : } 28 : 29 : template <bool is_ad> 30 234 : VectorFromComponentVariablesMaterialTempl<is_ad>::VectorFromComponentVariablesMaterialTempl( 31 : const InputParameters & parameters) 32 : : Material(parameters), 33 234 : _vector(declareGenericProperty<RealVectorValue, is_ad>("vector_prop_name")), 34 468 : _u(coupledGenericValue<is_ad>("u")), 35 468 : _v(isCoupled("v") ? coupledGenericValue<is_ad>("v") : genericZeroValue<is_ad>()), 36 702 : _w(isCoupled("w") ? coupledGenericValue<is_ad>("w") : genericZeroValue<is_ad>()) 37 : { 38 234 : } 39 : 40 : template <bool is_ad> 41 : void 42 3534720 : VectorFromComponentVariablesMaterialTempl<is_ad>::computeQpProperties() 43 : { 44 3534720 : _vector[_qp] = GenericRealVectorValue<is_ad>{_u[_qp], _v[_qp], _w[_qp]}; 45 3534720 : } 46 : 47 : template class VectorFromComponentVariablesMaterialTempl<false>; 48 : template class VectorFromComponentVariablesMaterialTempl<true>;