Files
OpenFOAM-12/etc/templates/closedVolumeRotating
Henry Weller 6c8732df5b dictionary: Set the default scoping syntax to 'slash'
The new optional 'slash' scoping syntax is now the default and provides a more
intuitive and flexible syntax than the previous 'dot' syntax, corresponding to
the common directory/file access syntax used in UNIX, providing support for
reading entries from other dictionary files.

In the 'slash' syntax
    '/' is the scope operator
    '../' is the parent dictionary scope operator
    '!' is the top-level dictionary scope operator

Examples:

    internalField 3.4;

    active
    {
        type            fixedValue;
        value.air       $internalField;
    }

    inactive
    {
        type            anotherFixedValue;

        value           $../active/value.air;
        anotherValue    $!active/value.air;

        sub
        {
            value           $../../active/value.air;
            anotherValue    $!active/value.air;
        }
    }

    "U.*"
    {
        solver GAMG;
    }

    e.air
    {
        $U.air;
    }

    external
    {
        value $testSlashDict2!active/value.air;
    }

    active2
    {
        $testSlashDict2!active;
    }

If there is a part of the keyword before the '!' then this is taken to be the
file name of the dictionary from which the entry will be looked-up using the
part of the keyword after the '!'.  For example given a file testSlashDict containing

    internalField 5.6;

    active
    {
        type            fixedValue;
        value.air       $internalField;
    }

entries from it can be read directly from another file, e.g.

    external
    {
        value $testSlashDict2!active/value.air;
    }

    active2
    {
        $testSlashDict2!active;
    }

    which expands to

    external
    {
        value           5.6;
    }

    active2
    {
        type            fixedValue;
        value.air       5.6;
    }

These examples are provided in applications/test/dictionary.

The the default syntax can be changed from 'slash' to 'dot' in etc/controlDict
to revert to the previous behaviour:

OptimisationSwitches
{
.
.
.
    // Default dictionary scoping syntax
    inputSyntax slash;  // Change to dot for previous behaviour
}

or within a specific dictionary by adding the entry

See applications/test/dictionary/testDotDict.
2020-07-23 20:36:51 +01:00
..

Overview
========
+ Template case for rotating geometry flow for a closed geometry
+ Can be used for MRF or AMI simulations
+ Setup to run the simpleFoam solver for MRF, pimpleDyMFoam for AMI
+ The case is designed to be meshed with snappyHexMesh
+ snappyHexMesh is setup to use 3 trisurface files
  + fixed.obj: CAD of the stationary geometry
  + rotating.obj: CAD of the rotating geometry
  + rotatingZone.obj: CAD of surface bounding the rotating region
+ Copy the *.obj files to the constant/triSurface directory
+ The fixed.obj should contain an inlet and outlet region to create the relevant
  patches in the mesh

Background Mesh
===============
+ The blockMeshDict file contains a configuration for a cylindrical background
  mesh aligned along the z-axis
+ The mesh includes a core box-shaped block and inner and outer cylinders
+ The backgroundMesh subdictionary includes key geometric parameters of the mesh
+ The inner cylinder relates to the rotatingZone.obj
+ The outer cyliner relates to the external boundary, e.g. fixed.obj
+ Set the radii of inner and outer cylinders to ~2% larger than respective OBJ
  files
+ Set background mesh density with boxCells, inCells, outCells and zCells
+ Run blockMesh
+ NOTE: An alternative blockMeshDict-box file exists if the user wants a regular
  box-shaped background mesh, similar to set up in the inflowOutflow template

Features
========
+ Run surfaceFeatures to extract features for explicit feature capturing

Castellated Mesh
================
+ run snappyHexMesh to obtain a castellatedMesh
+ Review the mesh; modify refinement levels and regenerate the mesh as required
  (levels are set in refinementSurfaces and refinementRegions)

Snapped Mesh
============
+ In snappyHexMeshDict, set castellatedMesh off; snap on;
+ Run the snapping phase of snappyHexMesh
+ Review the mesh

Layers
======
+ To add layers to the mesh along wall boundary patches...
+ Switch on addLayers; switch snap off;
+ Run snappyHexMesh
+ The number of layers can be changed by modifying nSurfaceLayers

Initialisation
==============
+ Initialise the field files in the 0 directory
+ Set the viscosity in constant/transportProperties
+ Rotating properties are set in constant/rotatingZoneProperties
  + For MRF, this file is included from system/fvOptions
  + For AMI, this file is included from constant/dynamicMeshDict
+ Ensure settings are appropriate in controlDict, fvSchemes, fvSolution, for
  relevant simulation; for AMI, in particular, ensure that deltaT, ddtSchemes
  and relaxationFactors are set for transient simulation