PIMPLE Module

Stream has a module that provides users with the option to utilize the PIMPLE algorithm for their simulation. This capability is enabled by inserting the following loadModule directive into the run control file as shown below.

loadModule: pimple
{
  ... standard run control file content
}

The following sections discuss the PIMPLE method used in Stream and provide information on the run control file variables required to perform simulations with the PIMPLE module.

PIMPLE Algorithm

The PIMPLE algorithm that is implemented in Stream uses a combination of the SIMPLE and PISO algorithms. The SIMPLE algorithm being tuned for solving steady-state problems and the PISO algorithms being particularly suited for unsteady problems. The combination of the two algorithms allows for the larger timestep permitted by SIMPLE and the speed of the PISO to be combined into a hybrid algorithm. The figure below outlines the PIMPLE algorithm as it is implemented in Stream.

../_images/pimple_diagram.png

Summary of the PIMPLE algorithm for compressible flows that is implemented in stream.

Control File Setup

Only a few additions need to be made to an existing run control file to set up a simulation using the PIMPLE module.

Numerics

From PIMPLE diagram above, we can see that the PIMPLE algorithm involved a SIMPLE-type predictor step, and a PISO-type corrector stage. The run control file variable that controls the total number of times that the algorithm goes through the SIMPLE+PISO stages is the standard numIterationsPerTimeStep variable. This value can be set as usual, but with the PIMPLE module, usually the value of the variable is a fraction of what would typically be used when running with just SIMPLE. The number of times that the PIMPLE algorithm iterates on the pressure correction equation using the PISO corrector can be controlled by the run control file variable shown below. Note: there is not default value, so you must include this in the run control file if the pimple module is loaded.

numCorrectorIterations: 1

The recommendation is to use only one corrector iteration unless cavitation equations are being solved. In that case, two corrector iterations are required for stability. Another feature that is available in the pimple module is the ability to control which equations are included in the explicit corrector step in the PISO corrector stage and can be specified in the run control file as shown below.

explicitCorrectorEquations: <cavitation, energy, turbulence>

Including cavitation includes the vapor mass fraction and NCG mass fraction equations. The energy option includes either the temperature, total enthalpy, or total energy equations depending on the form= value in the energyEquationOptions run control file variable. The turbulence keyword includes the k equation and either the epsilon or omega equations, depending on the turbulence model specified in the turbulenceEquationOptions run control file variable.

A final variable determines the form of the volume flux that is used in the corrector. It is set by the correctorVolumeFluxForm variable in the run control file and has the value of old and new. An example of the specification specification for this variable is shown below (default shown).

correctorVolumeFluxForm: new

A practical matter regarding the pimple module that user should consider is that the PIMPLE algorithm is more aggressive than the SIMPLE algorithm when solving equations, which may result in numerical instability if the PIMPLE algorithm is used for cases with bad initial pressure field guesses. An easy fix is to run a simulation with a bad initial condition using SIMPLE for several timesteps and then restart and switch to the PIMPLE module.

Output Variables

The table below shows additional field variables that are available for output in PIMPLE simulations. Default variables are output automatically and do not need to be specified in the plot_output line in the run control file.

Field Variable Output for PIMPLE Module

Variable

Description

Default

No current outputs for PIMPLE module supported