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 "PhysicsBase.h" 13 : 14 : #define registerNavierStokesPhysicsBaseTasks(app_name, derived_name) \ 15 : registerPhysicsBaseTasks(app_name, derived_name); \ 16 : registerMooseAction(app_name, derived_name, "add_geometric_rm") 17 : 18 : /** 19 : * Base class to hold common parameters and utilities between all the weakly compressible 20 : * Navier Stokes-based equations (WCNSFV) 21 : * Includes incompressible flow (INSFV). 22 : */ 23 0 : class NavierStokesPhysicsBase : public PhysicsBase 24 : { 25 : public: 26 : static InputParameters validParams(); 27 : 28 : NavierStokesPhysicsBase(const InputParameters & parameters); 29 : 30 : protected: 31 : /// Detects if we are using the new Physics syntax or the old NavierStokesFV action 32 1799 : bool usingNavierStokesFVSyntax() const 33 : { 34 1799 : return (parameters().get<std::string>("registered_identifier") == "Modules/NavierStokesFV"); 35 : } 36 : 37 : /// Parameters to change or add relationship managers 38 : InputParameters getAdditionalRMParams() const override; 39 : 40 : /// Return the number of ghosting layers needed 41 : virtual unsigned short getNumberAlgebraicGhostingLayersNeeded() const = 0; 42 : 43 : /// Whether to define variables if they do not exist 44 : bool _define_variables; 45 : };