snappyHexMeshConfig.C File Reference

Preconfigures blockMeshDict, surfaceFeaturesDict and snappyHexMeshDict files based on the case surface geometry files. More...

Go to the source code of this file.

Detailed Description

Preconfigures blockMeshDict, surfaceFeaturesDict and snappyHexMeshDict files based on the case surface geometry files.

Original source file snappyHexMeshConfig.C

Starting from a standard OpenFOAM case, this utility locates surface geometry files, e.g. OBJ, STL format, in the constant/geometry directory. It writes out the configuration files for mesh generation with snappyHexMesh based on assumptions which can be overridden by options on the command line.

The utility processes the surface geometry files, attempting to anticipate their intended purpose, trying in particular to recognise whether the domain represents an external or internal flow. If there is a surface which is closed, and is either single or surrounds all other surfaces, then it is assumed that it forms the external boundary of an internal flow. This assumption is overridden if the bounds of the background mesh are specified using the '-bounds' option and they are more than 50% larger than the surface bounds.

Surfaces which form boundaries of the domain may contain named regions that are intended to become patches in the final mesh. Any surface region whose name begins with 'inlet' or 'outlet' will become a patch of the same name in the final mesh. On an external surface (for an internal flow), regions can be identified as inlets and outlets using the '-inletRegions' and '-outletRegions' options, respectively. When either option specifies a single region, the resulting patch name will be specifically 'inlet' or 'outlet', respectively. Surfaces which are contained within the domain, which do not surround or intersect other surfaces, are assumed by default to be wall patches. Any closed surface which surrounds another (but not an external surface) is used to form a cellZone within the mesh. Any surface can be specifically identified as a cellZone with the '-cellZones' option, with the additional '-baffles' and '-rotatingZones' options available to assign a surface to a more specific use.

The background mesh for snappyHexMesh is a single block generated by blockMesh, configured using a blockMeshDict file. The block bounds are automatically calculated, but can be overridden by the '-bounds' option. The number of cells is calculated to produce a fairly small prototype mesh. The cell density can be overridden by the '-nCells' option or can be scaled up by an integer factor using the '-refineBackground' option. When the background mesh is required to form patches in the final mesh, e.g. for an external flow, the user can specify the names and types of the patches corresponding to the six block faces using options such as '-xMinPatch', '-xMaxPatch', etc. The name and type of the default patch, formed from block faces which are not configured, can also be specified with the '-defaultPatch' option. The utility provides placeholder entries for all block faces unless the '-clearBoundary' option is used. A special '-cylindricalBackground' option generates a cylindrical background mesh, oriented along the z-axis along x = y = 0.

The snappyHexMesh configuration is generated automatically, applying a set of defaults to the main configuration parameters. By default, implicit feature capturing is configured. Explicit feature capturing can alternatively be selected with the '-explicitFeatures' option, when an additional surfaceFeaturesDict file is written for the user to generate the features files with the surfaceFeatures utility. Refinement levels can be controlled with a range of options including: '-refinementLevel' for the baseline refinement level; '-refinementSurfaces' for levels on specific surfaces; '-refinementRegions' for levels inside specific surfaces; '-refinementBoxes' for quick, box-shaped refinement regions specified by min and max bounds; '-refinementDists' for distance-based refinement; and '-nCellsBetweenLevels' to control the transition between refinement levels. A '-layers' option controls additional layers of cells at specified surfaces. The insidePoint parameter is set to '(0 0 0)' by default but can be overridden using the '-insidePoint' option. There is an alternative '-insidePoints' option to specify multiple insidePoints to mesh multiple disconnected mesh regions.

Usage
snappyHexMeshConfig [OPTIONS]

Options:

  • -baffles <list>
    Surfaces that form baffles, e.g. 'helical'
  • -bounds <box>
    Bounding box of the mesh, e.g. '(-10 -5 0) (10 5 10)'
  • -cellZones <list>
    Surfaces that form cellZones, e.g. 'porousZone heatSource'
  • -clearBoundary,
    Do not set default patch entries, i.e. xMin, xMax, yMin, etc...
  • -closedDomain
    Domain does not contain inlets or outlets
  • -cylindricalBackground
    Generate a cylindrical background mesh aligned with the z-axis
  • -defaultPatch <entry>
    Name and type of default patch, '(<name> <type>)'
  • -explicitFeatures,
    Use explicit feature capturing, default is implicit
  • -firstLayerThickness <value>
    Specify the thickness of the near wall cells for layer addition
  • -inletRegions <list>
    Inlet regions on an external surface, e.g. 'inletA inletB'
  • -insidePoint <point>
    Point location inside the region of geometry to be meshed
  • -insidePoints <list>
    Point locations inside geometry to be meshed, e.g. '(0 0 0) (0 1 0)'
  • -layerExpansionRatio <value>
    Specify the expansion ratio between layers, default 1.2
  • -layers <entry>
    Number of layers on specified surfaces, e.g. '(car 3) (ground 4)'
  • -minDimCells <cells>
    Number of cells in the shortest direction, e.g. 10
  • -nCells <cells>
    Number of cells in each direction, e.g. '(10 20 30)'
  • -nCellsBetweenLevels <int>
    Number of cells at successive refinement levels, default 3
  • -noBackground
    Do not write a blockMeshDict file
  • -outletRegions <list>
    Outlet regions on an external surface, e.g. 'outletA outletB'
  • -refineBackground <int>
    Integer multiplier for the number of cells (>= 1)
  • -refinementBoxes <entry>
    Refinement boxes specified by '(<min> <max> <level>) (...) '
  • -refinementDists <entry>
    Refinement distance specified by '( (<surface> <dist> <level>) (...) )'
  • -refinementLevel <int>
    Refinement level used by snappyHexMesh, default 2
  • -refinementRegions <entry>
    Refinement regions specified by '(<surface> <level>) (...)'
  • -region <name>
    Specify alternative mesh region
  • -rotatingZones <list>
    Surfaces that form rotatingZones, e.g. 'rotatingZone'
  • -surface <file>
    Single surface geometry file for meshing
  • -surfaceLevels <entry>
    Refinement level at specified surfaces, e.g. '(pipe 2) (baffles 1)'
  • -xMinPatch (-xMaxPatch, -yMinPatch, etc...) <entry>
    Name and type of the xMin (xMax, yMin, etc...) patch, '(<name> <type>)'

Definition in file snappyHexMeshConfig.C.