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 : #pragma once 11 : 12 : // local includes 13 : #include "InternalSideIndicatorBase.h" 14 : #include "NeighborMooseVariableInterface.h" 15 : 16 : // forward declarations 17 : template <typename ComputeValueType> 18 : class InternalSideIndicatorTempl; 19 : 20 : typedef InternalSideIndicatorTempl<Real> InternalSideIndicator; 21 : typedef InternalSideIndicatorTempl<RealVectorValue> VectorInternalSideIndicator; 22 : 23 : /** 24 : * The InternalSideIndicator class is responsible for calculating the residuals for various 25 : * physics on internal sides (edges/faces). 26 : * 27 : */ 28 : template <typename ComputeValueType> 29 : class InternalSideIndicatorTempl : public InternalSideIndicatorBase, 30 : public NeighborMooseVariableInterface<ComputeValueType> 31 : { 32 : public: 33 : /** 34 : * Factory constructor initializes all internal references needed for indicator computation. 35 : * 36 : */ 37 : static InputParameters validParams(); 38 : 39 : InternalSideIndicatorTempl(const InputParameters & parameters); 40 : 41 : protected: 42 5448 : virtual bool isVarFV() const override { return _var.isFV(); } 43 : 44 : MooseVariableField<ComputeValueType> & _var; 45 : 46 : /// Holds the current solution at the current quadrature point on the face. 47 : const typename OutputTools<ComputeValueType>::VariableValue & _u; 48 : 49 : /// Holds the current solution gradient at the current quadrature point on the face. 50 : const typename OutputTools<ComputeValueType>::VariableGradient & _grad_u; 51 : 52 : /// Holds the current solution at the current quadrature point 53 : const typename OutputTools<ComputeValueType>::VariableValue & _u_neighbor; 54 : 55 : /// Holds the current solution gradient at the current quadrature point 56 : const typename OutputTools<ComputeValueType>::VariableGradient & _grad_u_neighbor; 57 : }; 58 : 59 : // Prevent implicit instantiation in other translation units where these classes are used 60 : extern template class InternalSideIndicatorTempl<Real>; 61 : extern template class InternalSideIndicatorTempl<RealVectorValue>;