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 "FVDivergence.h" 11 : 12 : registerMooseObject("MooseApp", FVDivergence); 13 : 14 : InputParameters 15 14265 : FVDivergence::validParams() 16 : { 17 14265 : InputParameters params = FVFluxKernel::validParams(); 18 14265 : params.addClassDescription("Computes the residual coming from the divergence of a vector field" 19 : "that can be represented as a functor."); 20 14265 : params.addRequiredParam<MooseFunctorName>( 21 : "vector_field", "The name of the vector field whose divergence is added to the residual."); 22 14265 : return params; 23 0 : } 24 : 25 0 : FVDivergence::FVDivergence(const InputParameters & params) 26 0 : : FVFluxKernel(params), _vector_field(getFunctor<ADRealVectorValue>("vector_field")) 27 : { 28 0 : } 29 : 30 : ADReal 31 0 : FVDivergence::computeQpResidual() 32 : { 33 : const auto face = 34 0 : makeFace(*_face_info, Moose::FV::limiterType(Moose::FV::InterpMethod::Average), true); 35 0 : const auto vector = _vector_field(face, determineState()); 36 0 : return -1.0 * (vector * _normal); 37 0 : }