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 : #include "LinearFVAdvectionDiffusionExtrapolatedBC.h" 13 : 14 : /** 15 : * Class implementing an extrapolated boundary condition for linear finite 16 : * volume pressure variables. For cases where the pressure is pinned (so no dirichlet BCs are 17 : * applied), we need to extrapolate the pressure when we compute the gradients but we can't add a 18 : * source term to the boundary (so no lagged values can go to the boundary). 19 : * This means that for the time being we need to build the pressure diffusion system 20 : * assuming a one-term expansion even if the user requested two. 21 : * For other purposes the extrapolation can be controlled using the `use_two_term_expansion` 22 : * parameter. 23 : */ 24 : class LinearFVExtrapolatedPressureBC : public LinearFVAdvectionDiffusionExtrapolatedBC 25 : { 26 : public: 27 : static InputParameters validParams(); 28 : 29 : /** 30 : * Class constructor. 31 : * @param parameters The InputParameters for the object 32 : */ 33 : LinearFVExtrapolatedPressureBC(const InputParameters & parameters); 34 : 35 : /** 36 : * These will ensure that the linear system will see one-term expansion only. 37 : */ 38 : ///@{ 39 : virtual Real computeBoundaryGradientMatrixContribution() const override; 40 : virtual Real computeBoundaryGradientRHSContribution() const override; 41 : ///@} 42 : 43 1719798 : virtual bool useBoundaryGradientExtrapolation() const override { return true; } 44 : };