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 "ADBoundaryFluxBase.h" 11 : 12 : InputParameters 13 10445 : ADBoundaryFluxBase::validParams() 14 : { 15 10445 : InputParameters params = GeneralUserObject::validParams(); 16 10445 : params.addClassDescription("Base class for computing boundary fluxes"); 17 10445 : return params; 18 0 : } 19 : 20 5697 : ADBoundaryFluxBase::ADBoundaryFluxBase(const InputParameters & parameters) 21 : : ThreadedGeneralUserObject(parameters), 22 5697 : _cached_flux_elem_id(libMesh::invalid_uint), 23 5697 : _cached_flux_side_id(libMesh::invalid_uint) 24 : { 25 5697 : } 26 : 27 : void 28 363010 : ADBoundaryFluxBase::initialize() 29 : { 30 363010 : _cached_flux_elem_id = libMesh::invalid_uint; 31 363010 : _cached_flux_side_id = libMesh::invalid_uint; 32 363010 : } 33 : 34 : void 35 363010 : ADBoundaryFluxBase::execute() 36 : { 37 363010 : } 38 : 39 : void 40 288255 : ADBoundaryFluxBase::finalize() 41 : { 42 288255 : } 43 : 44 : void 45 74755 : ADBoundaryFluxBase::threadJoin(const UserObject &) 46 : { 47 74755 : } 48 : 49 : const std::vector<ADReal> & 50 562196 : ADBoundaryFluxBase::getFlux(unsigned int iside, 51 : dof_id_type ielem, 52 : const std::vector<ADReal> & uvec1, 53 : const RealVectorValue & dwave) const 54 : { 55 562196 : if (_cached_flux_elem_id != ielem || _cached_flux_side_id != iside) 56 : { 57 186289 : _cached_flux_elem_id = ielem; 58 186289 : _cached_flux_side_id = iside; 59 : 60 186289 : calcFlux(iside, ielem, uvec1, dwave, _flux); 61 : } 62 562196 : return _flux; 63 : }