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