# <simulation>

The <simulation> category specifies the main parameters of the simulation like the number of iterations, and the file containing the surface mesh or the fluid material.

## <simulation> - <general>

The <general> category contains the following parameters:
<num_coarsest_iterations>
Defines the number of iterations at the coarsest refinement level. The physical time per coarsest iteration depends on the material parameters and the Mach factor.
<mach_factor>
Specifies the scaling factor for the Mach number (1.0 = Mach-matched simulation). The time step increases linearly with this factor. With a value of 2.0, for example, the simulation runs approximately twice as fast for the same simulated physical time.
Note: ultraFluidX is using a weak compressible LBM formulation, which is only valid up to approximately Ma = 0.4, so consider the maximum velocity that may occur in your simulation when setting this parameter to not exceed this limit.
Default = 1.0
<moving_ground>
The wind tunnel ground is a no-slip wall with zero velocity by default. If it should be moving with <reference_velocity> instead, the parameter must be set to true. If belts are specified (<boundary_conditions>), only the belts will move, not the whole ground.
<rotating_wheels>
By specifying this parameter, all rotating boundary conditions (<boundary_conditions>) can be switched on or off at once. If set to false, all entries in the <rotating> category will be effectively ignored.
<boundary_layer_suction>
Specifies if a part of the wind tunnel ground starting from the inlet to <boundary_layer_suction_xpos> should be treated as a slip wall, instead of a no-slip wall.
<boundary_layer_suction_xpos>
Specifies the x-coordinate (in $\left[\text{m}\right]$), where the slip wall will end, if <boundary_layer_suction> is set to true.
<reference_velocity>
The reference velocity (specified in $\left[\frac{\text{m}}{\text{s}}\right]$) is used as velocity at the inlet. It is also used as wall velocity for any belts (if specified) or for the whole wind tunnel ground and for the calculation of the aerodynamic coefficients.

## <simulation> - <geometry>

The <geometry> category contains the following parameters:
<source_file> or <source_files> - <name>
Specifies the path to the source file(s) that contain(s) the tessellated surface mesh. The source file(s) must be in ASCII STL format and all surface normals must point outwards, that is, from solid to fluid. ultraFluidX assumes that the STL file is specified in $\left[\text{m}\right]$ and all other coordinates for bounding boxes, probe locations, etc. are based on the coordinate system of the STL.
While <source_file> (without an additional <name> parameter) is used for cases where the complete surface is available in a single STL file, the category <source_files> allows to specify more than one input file, each filename being indicated under the parameter <name>.
Warning: If parameters, <source_file> and <source_files> are specified simultaneously, the run will stop.
<baffle_parts>
(Optional) Specifies all parts which are fully two-dimensional, each part with this property must be identified via the child parameter <name>. This property should be set for parts which do not form a closed volume together with other parts and which are expected to be connected to fluid regions on both sides. Virtual Wind Tunnel for ultraFluidX will then internally create a duplicate of each of the parts with the appendix “_inv” and inverted triangle normals to be able to assign proper pressure and wall shear stress values to both sides of the part.
CAUTION:
Only specify this property for the baffle part; otherwise, unwanted side effects might occur.
<surface_mesh_optimization> - <triangle_splitting>
Specifies the triangle splitting to increase the accuracy of the calculation of aerodynamics forces that act on the surfaces. Either global or local splitting can be selected. The default setting is global, controlled by the following child parameters:
<active>
(Global) Switch that activates the triangle splitting.
Default = True
<max_relative_edge_length>
This factor multiplies the voxel size connected to the geometric part to compute the splitting threshold. Setting this factor to zero makes the variable inactive. Negative values are corrected to zero. If this parameter and <max_absolute_edge_length> are both greater than zero, the smaller value per part has precedence.
<max_absolute_edge_length>
Absolute threshold (in [m]) of splitting. Default values is set to zero and hence inactive. Negative values are corrected to zero. If this parameter and <max_relative_edge_length> are both greater than zero, the smaller value per part has precedence.
Alternatively, the triangle splitting can be activated only on certain parts of the geometry with the <triangle_splitting_instance> category with the following parameters:
<name>
(Optional) Name of the instance.
<active>
Same as the global parameter but for local setting; has precedence over global setting.
<max_relative_edge_length>
Same as the global parameter but for local setting; has precedence over global setting.
<max_absolute_edge_length>
Same as the global parameter but for local setting; has precedence over global setting.
<parts>
Specify the parts on which the local settings of the splitting are applied via the child parameter <name>. Several parts can be specified via repeated usage of <name> to assign the local settings to all of them. Part names must be valid and not repeated in the same or other instances, or the run stops.
Note: Old triangle splitting parameters are still supported. However, the new triangle splitting category has precedence over it.
<triangle_plinth>
ultraFluidX automatically creates a plinth in regions where single voxels would be squeezed between the wind tunnel ground and, for example, the tire of a car by treating such single voxels as solid. If <triangle_plinth> is set to true, the corresponding surface triangles of these solid voxels will be created to properly visualize the behavior and to increase the accuracy of the calculation of aerodynamic forces in that region.
<domain_bounding_box>
The bounding box of the simulation domain, must be specified via the child parameters <x_min>, <x_max>, <y_min>, <y_max>, <z_min> and <z_max> in $\left[\text{m}\right]$.
ultraFluidX currently needs the domain size in each direction to be a multiple of four of the <coarsest_mesh_size>. Therefore, the bounding box is automatically enlarged in +x-direction, +z-direction and symmetrically in y-direction if the requirement is not met.

## <simulation> - <material>

The <material> category is used to describe the properties of the fluid material that should be assumed for the simulation, for example, air, and contains the following parameters:
<density>
Density $\rho$ of the material $\left[\frac{\text{kg}}{{\text{m}}^{\text{3}}}\right]$.
<dynamic_viscosity>
Dynamic viscosity $\mu$ of the material $\left[\frac{\text{kg}}{\text{(s}·\text{m)}}\right]$.
<temperature>
Temperature (T) of the material $\left[\text{K}\right]$.
<specific_gas_constant>
Specific gas constant (R) of the material $\left[\frac{\text{J}}{\text{kg}\cdot \text{K}}\right]$.

## <simulation> - <wall_modeling>

ultraFluidX allows you to specify the handling of near wall regions of the flow using the following parameters:
<wall_model> (GWF, WangMoin, off)
This parameter specifies the way in which information (velocity, pressure) tracked at the donor position is processed to determine the wall shear stress. Available options:
GWF (Default)[1]
WangMoin[2]
off
<coupling> (two-way, one-way, off)
This parameter determines what is done with the information generated by the wall model.
two-way coupling (Default)
The wall shear stress determined using the wall model is used as an input value for the computation of the velocity at the first near wall voxel.
one-way coupling
The flow in the first near wall cell is derived not via the wall shear stress, but based on information of the donor position used by the wall model; while the wall shear stress, determined by wall model is only used for the force calculations near the wall.
off
Information from the wall model is not used in the flow field computations. Instead, a no-slip boundary condition is used and the wall shear stress is computed from flow field information.
It is possible to specify the way in which pressure gradients along the wall should be considered by the wall model.
off
The wall model will not consider pressure gradients present in the mean flow field and determine the wall shear stress neglecting the respective pressure-gradient term.
Consider only negative and positive pressure gradients in direction of the flow, respectively.
full
Takes any pressure gradient near the wall into account.

## <simulation> - <wall_model_variant>

You can specify different wall model settings than the global default (specified via <simulation> - <wall_modeling>) on different parts of the vehicle.

For this purpose, an arbitrary number of such different wall model settings can be specified as children of <wall_model_variant> via <wall_model_variant_instance>, each with the following parameters:
<name>
Name of the instance, so that it can be referenced in the respective <rotating_instance> or <static_instance> to which it should be applied (mandatory).
<wall_model> (GWF, WangMoin, off)
See above in <simulation> - <wall_modeling>.
<coupling> (two-way, one-way, off)
See above in <simulation> - <wall_modeling>.