4.4 Time and data input/output control

The OpenFOAM solvers begin all runs by setting up a database. The database controls I/O and, since output of data is usually requested at intervals of time during the run, time is an inextricable part of the database. The controlDict dictionary sets input parameters essential for the creation of the database. The keyword entries in controlDict are listed in the following sections. Only the time control and writeInterval entries are mandatory, with the database using default values for any of the optional entries that are omitted. Example entries from a controlDict dictionary are given below:

16
17application     foamRun;
18
19solver          incompressibleFluid;
20
21startFrom       latestTime;
22
23startTime       0;
24
25stopAt          endTime;
26
27endTime         0.3;
28
29deltaT          0.0001;
30
31writeControl    adjustableRunTime;
32
33writeInterval   0.01;
34
35purgeWrite      0;
36
37writeFormat     ascii;
38
39writePrecision  6;
40
41writeCompression off;
42
43timeFormat      general;
44
45timePrecision   6;
46
47runTimeModifiable yes;
48
49adjustTimeStep  yes;
50
51maxCo           5;
52
53functions
54{
55    #includeFunc patchAverage(patch=inlet, fields=(p U))
56}
57
58// ************************************************************************* //

4.4.1 Modules

solver
Choice of solver module for the simulation, e.g. incompressibleFluid
regionSolvers
Dictionary of solvers for different domain regions, e.g. heat transfer of water flowing over a plate might use the fluid and solid modules as follows:

regionSolvers
{
    water fluid;
    plate solid;
}
libs
List of additional libraries (existing on $LD_LIBRARY_PATH) to be loaded at run-time, e.g. ("libNew1.so" "libNew2.so")

4.4.2 Time control

startFrom
Controls the start time of the simulation.
  • firstTime: Earliest time step from the set of time directories.
  • startTime: Time specified by the startTime keyword entry.
  • latestTime: Most recent time step from the set of time directories.
startTime
Start time for the simulation with startFrom startTime;
stopAt
Controls the end time of the simulation.
  • endTime: Time specified by the endTime keyword entry.
  • writeNow: Stops simulation on completion of current time step and writes data.
  • noWriteNow: Stops simulation on completion of current time step and does not write out data.
  • nextWrite: Stops simulation on completion of next scheduled write time, specified by writeControl.
endTime
End time for the simulation when stopAt endTime; is specified.
deltaT
Time step of the simulation.

4.4.3 Data writing

writeControl
Controls the timing of write output to file.
  • timeStep: Writes data every writeInterval time steps.
  • runTime: Writes data every writeInterval seconds of simulated time.
  • adjustableRunTime: Writes data every writeInterval seconds of simulated time, adjusting the time steps to coincide with the writeInterval if necessary — used in cases with automatic time step adjustment.
  • cpuTime: Writes data every writeInterval seconds of CPU time.
  • clockTime: Writes data out every writeInterval seconds of real time.
writeInterval
Scalar used in conjunction with writeControl described above.
purgeWrite
Integer representing a limit on the number of time directories that are stored by overwriting time directories on a cyclic basis. For example, if the simulations starts at eqn = 5s and eqn = 1s, then with purgeWrite 2;, data is first written into 2 directories, 6 and 7, then when 8 is written, 6 is deleted, and so on so that only 2 new results directories exists at any time. To disable the purging, specify purgeWrite 0; (default).
writeFormat
Specifies the format of the data files.
  • ascii (default): ASCII format, written to writePrecision significant figures.
  • binary: binary format.
writePrecision
Integer used in conjunction with writeFormat described above, 6 by default.
writeCompression
Switch to specify whether files are compressed with gzip when written: on/off (yes/no, true/false)
timeFormat
Choice of format of the naming of the time directories.
  • fixed: eqn where the number of eqns is set by timePrecision.
  • scientific: eqn where the number of eqns is set by timePrecision.
  • general (default): Specifies scientific format if the exponent is less than -4 or greater than or equal to that specified by timePrecision.
timePrecision
Integer used in conjunction with timeFormat described above, 6 by default.
graphFormat
Format for graph data written by an application.
  • raw (default): Raw ASCII format in columns.
  • gnuplot: Data in gnuplot format.
  • csv: Comma-separated values.
  • vtk: Visualisation Toolkit (VTK) format.
  • ensight: Ensight format.

4.4.4 Other settings

beginTime
Optional entry to for cases with an unusual start time that causes inconvenient write times. With beginTime, the write times are multiples of writeInterval, starting at the beginTime. For example, if the start time of 1.52 and a writeInterval of 1, results would be written at 2.52, 3.52, …If beginTime is set to 0 (or 1), the write times would be 2, 3, etc.

Switch used by some solvers to adjust the time step during the simulation, usually according to maxCo.

adjustTimeStep
Switch used by some solvers to adjust the time step during the simulation, usually according to maxCo.
maxCo
Maximum Courant number, e.g. 0.5
runTimeModifiable
Switch for whether dictionaries, e.g.controlDict, are re-read during a simulation at the beginning of each time step, allowing the user to modify parameters during a simulation.
functions
Dictionary of functions, e.g. probes to be loaded at run-time; see examples in $FOAM_TUTORIALS
OpenFOAM v11 User Guide - 4.4 Time and data input/output control
CFD Direct