************************************************
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 :ref:`outputfiles` 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 :ref:`outputfiles` 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 :math:`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
.. math::
Co=\min\left(0.1,0.1 \cdot \frac{V_m}{U_m}\right)
where :math:`V_m` is the maximum impeller tip speed and :math:`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
.. math::
\gamma_i=C \left(\frac{\nu \epsilon}{k^2} \right)^{0.5}
, where:
- :math:`\gamma_i` is the fraction of voxel *i* occupied by the "fine structure"
- :math:`C` is the EDC Coefficient
- :math:`\nu` is the fluid kinematic viscosity
- :math:`\epsilon` is the energy dissipation rate
- :math:`k` is the kinetic energy.
The value of :math:`\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.