# 6.1 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 Table 6.1. Only the time control and writeInterval entries are truly compulsory, with the database taking default values indicated by  in Table 6.1 for any of the optional entries that are omitted.

 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. Time step control adjustTimeStep yes/no† to adjust time step according to maximum Courant number in transient simulation. maxCo Maximum Courant number allowed. maxDeltaT Maximum time step allowed in transient simulation. 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. Example of , and purgeWrite 2;: data written into 2 directories, 6 and 7, before returning to write the data at 8  in 6, data at 9  into 7, etc. To disable the time directory limit, specify purgeWrite 0;† For steady-state solutions, results from previous iterations can be continuously overwritten by specifying purgeWrite 1; writeFormat Specifies the format of the data files. - ascii† ASCII format, written to writePrecision significant figures. - binary Binary format. writePrecision Integer used in conjunction with writeFormat described above, 6† by default writeCompression Specifies the compression of the data files. - uncompressed No compression.† - compressed gzip compression. timeFormat Choice of format of the naming of the time directories. - fixed where the number of s is set by timePrecision. - scientific where the number of s is set by timePrecision. - general† 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† Raw ASCII format in columns. - gnuplot Data in gnuplot format. - xmgr Data in Grace/xmgr format. - jplot Data in jPlot format. Data reading runTimeModifiable yes†/no switch for whether dictionaries, e.g.controlDict, are re-read by OpenFOAM at the beginning of each time step. Run-time loadable functionality libs List of additional libraries (on $LD_LIBRARY_PATH) to be loaded at run-time, e.g.( "libUser1.so" "libUser2.so" ) functions List of functions, e.g. probes to be loaded at run-time; see examples in$FOAM_TUTORIALS † denotes default entry if associated keyword is omitted. Table 6.1: Keyword entries in the controlDict dictionary.

Example entries from a controlDict dictionary are given below:

17
18application     icoFoam;
19
20startFrom       startTime;
21
22startTime       0;
23
24stopAt          endTime;
25
26endTime         0.5;
27
28deltaT          0.005;
29
30writeControl    timeStep;
31
32writeInterval   20;
33
34purgeWrite      0;
35
36writeFormat     ascii;
37
38writePrecision  6;
39
40writeCompression off;
41
42timeFormat      general;
43
44timePrecision   6;
45
46runTimeModifiable true;
47
48
49// ************************************************************************* //