<meshing>
During meshing, ultraFluidX discretizes the volumetric simulation domain into cubic elements (“voxels”) for which the flow field is computed. The <meshing> category specifies the main parameters for the volume meshing and the refinement zones.
<meshing> - <general>
The <general> category contains the following parameters:
- <coarsest_mesh_size>
- Specifies the coarsest size (edge length) of the voxels in that ultraFluidX uses to discretize the domain. Higher resolution than the coarsest mesh size in regions of interest is specified via the <refinement> category.
- <mesh_preview>
- Default = false
- <mesh_export>
- Default = false
- <mesh_source_file>
- (Optional) Specifies the path to a mesh source file. If specified, ultraFluidX skips the meshing step and read in the mesh topology from the specified mesh source file instead. Generally, only mesh source files that were written by the same version of ultraFluidX (by setting <mesh_export> to true) can be used.
- <refinement_level_transition_layers>
- Default = 4
<meshing> - <refinement>
Refinement zones are specified via the <refinement> category.
Possible sub-categories are <box>,
<offset> and <custom> and they
all share the parameter <refinement_level> that specifies
the refinement of the zone with regards to the coarsest level. With each additional
level the coarsest mesh size (corresponding to level 0) is divided by 2. In general,
the voxel size of the nth refinement level is defined as:
Where
is the voxel size at the coarsest refinement level.
- <box>
- This category contains all refinement zones with cuboid shape, it can
have an arbitrary number of children named
<box_instance> with the following
parameters:
- <name>
- (Optional) Name of the instance.
- <refinement_level>
- Refinement level of the instance with regards to the coarsest level.
- <bounding_box>
- Bounding box of the instance, must be specified via the child parameters <x_min>, <x_max>, <y_min>, <y_max>, <z_min> and <z_max> in .
- <offset>
- This category contains all refinement zones that are an offset of the
whole surface mesh or a specific part. It can have an arbitrary number
of children named <offset_instance> with the
following parameters:
- <name>
- Name of the instance (optional).
- <refinement_level>
- Refinement level of the instance with regards to the coarsest level.
- <normal_distance>
- Distance of the offset to the surface, that is, the
effective “thickness” of the zone. Specified in
.Note: A minimum number of 4 voxels will always be applied, unless a different value is specified via the refinement level transition layer, in which case that quantity will be used.
- <parts>
- If the offset is not applied to the whole surface mesh, an arbitrary number of individual parts can be specified via the child parameter <name> within the <parts> category. The specified names must exactly match the respective part names in the STL file.
- <custom>
- This category contains all refinement zones that are specified via a volume with arbitrary shape contained in the STL file. Any volume that you want to use for custom refinement needs to be identified as a separate “solid” within the STL file, and the name of this solid needs to be passed to ultraFluidX in the <parts> - <name> section.
<meshing> - <overset>
This category contains all parameters needed to define a moving overset grid region.
- <rotating> - <rotating_instance>
- In these grid regions, a local frame of reference is defined and the
surface geometry and voxels are rotated each timestep according to the
specified rotational speed.Note: The rotating volume must be axisymmetric.CAUTION: All geometry parts inside the moving mesh region will rotate with the mesh. Care is needed at the interface when setting up a rotating volume in the vicinity of geometry parts. Refer to separate setup recommendations.