Files
OpenFOAM-12/etc/templates/closedVolumeRotating/README
Henry Weller da3f4cc92e fvModels, fvConstraints: Rational separation of fvOptions between physical modelling and numerical constraints
The new fvModels is a general interface to optional physical models in the
finite volume framework, providing sources to the governing conservation
equations, thus ensuring consistency and conservation.  This structure is used
not only for simple sources and forces but also provides a general run-time
selection interface for more complex models such as radiation and film, in the
future this will be extended to Lagrangian, reaction, combustion etc.  For such
complex models the 'correct()' function is provided to update the state of these
models at the beginning of the PIMPLE loop.

fvModels are specified in the optional constant/fvModels dictionary and
backward-compatibility with fvOption is provided by reading the
constant/fvOptions or system/fvOptions dictionary if present.

The new fvConstraints is a general interface to optional numerical constraints
applied to the matrices of the governing equations after construction and/or to
the resulting field after solution.  This system allows arbitrary changes to
either the matrix or solution to ensure numerical or other constraints and hence
violates consistency with the governing equations and conservation but it often
useful to ensure numerical stability, particularly during the initial start-up
period of a run.  Complex manipulations can be achieved with fvConstraints, for
example 'meanVelocityForce' used to maintain a specified mean velocity in a
cyclic channel by manipulating the momentum matrix and the velocity solution.

fvConstraints are specified in the optional system/fvConstraints dictionary and
backward-compatibility with fvOption is provided by reading the
constant/fvOptions or system/fvOptions dictionary if present.

The separation of fvOptions into fvModels and fvConstraints provides a rational
and consistent separation between physical and numerical models which is easier
to understand and reason about, avoids the confusing issue of location of the
controlling dictionary file, improves maintainability and easier to extend to
handle current and future requirements for optional complex physical models and
numerical constraints.
2021-03-07 22:45:01 +00:00

63 lines
2.5 KiB
Plaintext

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/geometry 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/fvModels
+ 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