# Simulation Configuration¶

## General Parameters¶

### Overview¶

These are general simulation parameters that control grid resolution, time-step, runtime, and data output frequency. When balancing these parameters, simultaneous consideration should be given to accuracy, precision, and performance.

### Grid spacing and timestep¶

- Dx
Domain spacing. The computed grid spacing [Model Units]

The simulation resolution is defined by the parameter “Resolution on Reference Length”. This value defines the number of lattice points that will be populated along the x-direction of the system domain. Correspondingly, the resolution of the lattice is equal to the length of the system domain in the x-direction divided by the value entered for NumPointsDomainX. Since the lattice is uniform, this resolution is used to compute the number of lattice points in the y- and z-directions.

As a rule, the lattice spacing and resolution is informed by the characteristic length scale of the system and the associated integral eddy scale. For agitated tanks, with a characteristic length scale defined by an impeller diameter, simulations should contain between 30 to 100 lattice points per impeller diameter. For pipe flow systems, simulations should contain approximately 30 to 80 lattice points per pipe diameter. For agitated tanks with inlets and outlets, the resolution should be sufficient to allow at least 5 lattice points across the smallest tank opening.

In general, for blending and residence time problems, users should specify 30 to 50 lattice points per impeller diameter to correctly capture the pumping effects of an impeller and 50 to 80 lattice points per impeller diameter to predict power numbers. To correctly capture energy dissipation, users should specify between 80 and 100 lattice points per impeller diameter. For static mixing and pipe-flow systems, users should aim for 30-50 lattice points per pipe diameter, with increasing resolution required for increasingly complex internal features. For sloshing and tank filling simulations, users should specify approximately 100 lattice points across the open tank diameter.

- Case Name
Case name used for workspace manager. [Text string]

- Dt
Simulation Time Step [Seconds].

The simulation timestep is defined by the domain spacing, the Courant number, and the reference velocity. The timestep is constant, although can be scaled should users evoke a frozen fluid model.

- Resolution on Reference Length
Number of points along the domain X edge. [Dimensionless] This value determines the domain spacing Dx and total lattice size.

Adjust this value based on:

Memory limits

Disk space limits

Analysis accuracy needs

Time constraints

Refer to the “Estimated Lattice Size” value for the resulting size.

- Estimated Lattice Size
Estimated number of lattice points, [Dimensionless]

The number of lattice points is informed by the size of the simulation domain and the domain spacing. The size of the lattice is related to the third power of “Num Points Domain X”. As such, large savings in computational runtime can be realized by even small decreases in Num Points Domain X and the associated Domain spacing.

- Freeze Fluid Time
Time at which to stop fluid integration, [Seconds]

After this time, the fluid dynamics integrator is disabled while allowing the particle and scalar field integrators to continue. This value must be greater than the Begin Time Average time. Set to -1 to disable.

- Frozen Time Scale
Time scale factor applied after freeze fluid is activated, [Dimensionless]

Once a fluid is frozen, users can elect to scale the simulation time step by this factor. Since simulation timestep stability is, in general, informed by limitations on momentum transport, it is practical for laminar systems to increase the timestep once only particle and scalar transport are to be considered.

Note that, for systems with particles, a frozen time scale that is too large will allow particles to advance beyond the simulation domain and be deleted. To prevent this behavior, the time scale should not exceed the inverse of the Courant number.

This speed scale can be particularly useful in low Reynolds number simulations, which combine steady (time-invariant) flow fields with long characteristic processing times.

As a rule, time varying particle injections and mean age calculations should begin after the field is frozen, to prevent age miscalculations across the step-increase in timestep.

- Freeze Fluid Type
Users can elect to freeze the fluid according to either

The instantaneous flow field at the “Freeze Fluid Time”

The time-averaged flow field computed over the interval between “Begin Time Average” and “Freeze Fluid Time.”

Disable. Do not freeze fluid at anytime. This is the default selection.

In general, a fluid field frozen using the instantaneous flow field will retain more spatial variation in velocity than a fluid field frozen using the time-averaged flow.

- Run Time
Simulation run time

This is the total simulation runtime. Simulation processing and data output will end after the solver has modeled this many seconds of fluid motion. [Seconds]

Increasing/decrease the length of the simulation has no effect on simulation precision. However, the simulation length must be sufficient to capture relevant process physics.

### Data Export and Printing¶

- Data Output Interval
The time interval at which text data is printed to the disk [Seconds]

Data output refers to text-only data, including forces, torques, species concentrations, system temperatures, inlet/outlet velocities, blending results, etc.

In general, text data should be output every 20-100 timesteps to properly balance the computational cost associated with printing the data with the need for sufficient temporal resolution during post-processing.

See Output Files for a complete list of the output files produced by the solver.

- Slice Output Interval
Time in seconds between VTK slice, surface, and particle output [Seconds]

Slice output refers to visual data output, including planes, particles, free surfaces, and moving surfaces. Slice data can be rendered as a movie or converted into a spreadsheet to analyze flow fields/transport.

In general, slice data should be output every 100-1000 timesteps to properly balance the computational cost associated with printing the data with the need for sufficient temporal resolution.

See Output Files for a complete list of the output files produced by the solver.

When producing real-time animations using slice, particle, or free surface data, the animation frame rate should match the Slice Output Interval value set here to produce a real-time animation.

- Volume Output Interval
Output interval of VTK volume files [Seconds]

In general, volume data should be output every 1,000-10,000 timesteps to properly balance the computational cost associated with printing the data with the need for sufficient temporal resolution.

These files can be large. To mimimize the size of these files, consider managing which data is printed to these files as discussed in the

**Output Volume**section below.- Checkpoint Interval
The interval at which to save checkpoint files [Seconds]

Checkpoint files are restart files used to recommence a simulation that ended prematurely or resume a simulation from the last timestep.

In addition to these user-specified intervals, a final checkpoint file is produced at the last simulation timestep.

Checkpoint files are binary internal files that cannot be visualized or post-processed. Data for post-processing is printed at the Data, Slice, and Volume Output Intervals.

In general, the checkpoint interval can be much larger than any output data frequency.

- Number of Check Points Kept
Number of the most result check point files to keep, [Dimensionless]

The solver retains only this number check points, in order to save disk space.

### Advanced parameters¶

- Courant Number Override
User override for Courant number, defined as \(Co = (dt / dx) * u_{max}\)

- Courant Number Option
Auto: Courant number picked by solver automatically

Override: User specifies a custom Courant number in the

`CourantNumberOverride`

field

The Courant number defines the ratio of the fluid velocity to the lattice velocity. The default Courant number for turbulent open systems with no impellers or moving internal objects is 0.03. The default Courant number for laminar open systems with no impellers or moving internal objects is 0.01. The default Courant number for closed systems with impellers is 0.1. The default for systems with impellers and inlets/outlets is

\[Co=\min\left(0.1,0.1 \cdot \frac{V_m}{U_m}\right)\]where \(V_m\) is the maximum impeller tip speed and \(U_m\) is the maximum inlet velocity.

These default parameters are based on observation and selected to balance stability with runtime.

Users can overwrite the default Courant number by selecting UserDefined from the CourantNumberOption and specifying their own value in the CourantNumberOverride field.

Important

Appropriate adjustments to the Courant number can produce decreases in runtime. For example, manuarlly adjusting the Courant number to 0.1 for a laminar open system would increase the imestep by a factor of 10 (since the default Courant would be 0.01.). This larger time step would then decrease simulation run times by a factor of 10. Note that increasing the Courant number can lead to system instabilities, however, due to the explicit nature of the time integration. As such, care should be used when adjusting this value.

For systems with hydrostatic pressure fields (free surface simulations) and open systems with significant pressure difference between inlets and outlets, users may need to reduce the Courant number by a factor of 2 to 4 to eliminate any spurious effects of fluid compressibility. Only rarely would the Courant number need to be lower than 0.001.

- Begin Time Average
Time to start recording steady state data and time-averaging VTK output, [Seconds]

M-Star CFD is a time-accurate solver. But, in addition to predicting these time-varying flow properties, the solver can time-average the results to compute the steady-state flow patterns inside the domain. By default, the time-averaging begins at the start of the simulation. Should users want to set a different time origin—perhaps a value closer to the time it takes for the system to become steady, an alternative time-origin can be specified here.

- EDC Coefficient
The Eddy Dissipation Concept (EDC) cofactor, [Dimensionless]

EDC is an approach for treating the interaction between turbulence and chemistry. Chemical reactions take place when reactants are mixed at the molecular scale, which occurs over only a fraction of the volume of the fluid inside each lattice volume. These well-mixed regions are called the “fine structure”, such that the volume of the “fine structure” divided by the voxel volume characterizes the fraction of species that can participate in a reaction. Empirically, the fine-structure is related to

\[\gamma_i=C \left(\frac{\nu \epsilon}{k^2} \right)^{0.5}\], where:

\(\gamma_i\) is the fraction of voxel

*i*occupied by the “fine structure”\(C\) is the EDC Coefficient

\(\nu\) is the fluid kinematic viscosity

\(\epsilon\) is the energy dissipation rate

\(k\) is the kinetic energy.

The value of \(\gamma_i\) at each lattice point characterizes fraction of species at each lattice point that can participate in a reaction.

EDC was developed by professor Bjorn F. Magnussen and co-workers at the Norwegian University of Science and Technology in Trondheim.