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 : // Moose includes 13 : #include "RhieChowMassFlux.h" 14 : #include "LinearAssemblySegregatedSolve.h" 15 : 16 : /** 17 : * PIMPLE-based (PISO + SIMPLE) for transient solution object with 18 : * linear FV system assembly. A detailed discussion of the algorithm 19 : * is available in 20 : * @book{ 21 : * greenshieldsweller2022, 22 : * title = "Notes on Computational Fluid Dynamics: General Principles", 23 : * author = "Greenshields, Christopher and Weller, Henry", 24 : * year = 2022, 25 : * publisher = "CFD Direct Ltd", 26 : * address = "Reading, UK" 27 : * } 28 : * This will be the basis for the SIMPLE algorithm as well, we just 29 : * set the PISO iterations to 0. 30 : */ 31 0 : class PIMPLESolve : public LinearAssemblySegregatedSolve 32 : { 33 : public: 34 : PIMPLESolve(Executioner & ex); 35 : 36 : static InputParameters validParams(); 37 : 38 : protected: 39 : virtual std::pair<unsigned int, Real> 40 : correctVelocity(const bool subtract_updated_pressure, 41 : const bool recompute_face_mass_flux, 42 : const SolverParams & solver_params) override; 43 : 44 : /// Number of H(u) and u iterations with fixed face flux. 45 : const unsigned int _num_piso_iterations; 46 : };