https://mooseframework.inl.gov
SIMPLESolve.C
Go to the documentation of this file.
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 "SIMPLESolve.h"
11 #include "FEProblem.h"
12 #include "SegregatedSolverUtils.h"
13 #include "LinearSystem.h"
14 
15 using namespace libMesh;
16 
19 {
21  return params;
22 }
23 
25 
26 void
28 {
29  // check to make sure that we don't have any time kernels in this simulation (Steady State)
30  if (system.containsTimeKernel())
31  mooseError("You have specified time kernels in your steady state simulation in system",
32  system.name(),
33  ", SIMPLE is a steady-state solver! Use the PIMPLE executioner instead.");
34 }
35 
36 void
38 {
39  // check to make sure that we don't have any time kernels in this simulation (Steady State)
40  for (const auto system : _momentum_systems)
41  checkTimeKernels(*system);
42 
44 
47 
49  for (const auto system : _passive_scalar_systems)
50  checkTimeKernels(*system);
51 
53  for (const auto system : _active_scalar_systems)
54  checkTimeKernels(*system);
55 }
Common base class for segregated solvers for the Navier-Stokes equations with linear FV assembly rout...
const bool _has_energy_system
Boolean for easy check if a fluid energy system shall be solved or not.
virtual bool containsTimeKernel() override
std::vector< LinearSystem * > _passive_scalar_systems
Pointer(s) to the system(s) corresponding to the passive scalar equation(s)
const bool _has_active_scalar_systems
Boolean for easy check if a active scalar systems shall be solved or not.
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...
static InputParameters validParams()
Definition: SIMPLESolve.C:18
virtual const std::string & name() const
std::vector< LinearSystem * > _active_scalar_systems
Pointer(s) to the system(s) corresponding to the active scalar equation(s)
LinearSystem & _pressure_system
Reference to the nonlinear system corresponding to the pressure equation.
LinearSystem * _energy_system
Pointer to the nonlinear system corresponding to the fluid energy equation.
virtual void checkIntegrity() override
Check if the user defined time kernels, if yes error out.
Definition: SIMPLESolve.C:37
virtual void checkTimeKernels(LinearSystem &system)
Check if the system contains time kernels.
Definition: SIMPLESolve.C:27
SIMPLESolve(Executioner &ex)
Definition: SIMPLESolve.C:24
void mooseError(Args &&... args) const
const bool _has_passive_scalar_systems
Boolean for easy check if a passive scalar systems shall be solved or not.
std::vector< LinearSystem * > _momentum_systems
Pointer(s) to the system(s) corresponding to the momentum equation(s)