1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
oscillatingInletACMI2D
This tutorial case gives an example of the Arbitrarily Coupled Mesh Interface
(ACMI) usage. The mesh is composed of two mesh regions: an inlet channel which
oscillates in the +/- Y-direction, and a fixed mesh region.
Each ACMI patch requires the specification of a 'non-overlapping' patch. In
this example, the non-overlapping patches are described as walls, e.g. taken
from the constant/polyMesh/boundary file:
1. First ACMI patch pair applied to the inlet channel outlet
ACMI1_couple
{
type cyclicACMI;
nFaces 40;
startFace 43720;
matchTolerance 0.0001;
transform noOrdering;
neighbourPatch ACMI2_couple;
nonOverlapPatch ACMI1_blockage;
}
ACMI1_blockage
{
type wall;
nFaces 40;
startFace 43680;
}
1. Second ACMI patch pair applied to the fixed mesh region inlet
ACMI2_couple
{
type cyclicACMI;
nFaces 96;
startFace 43856;
matchTolerance 0.0001;
transform noOrdering;
neighbourPatch ACMI1_couple;
nonOverlapPatch ACMI2_blockage;
}
ACMI2_blockage
{
type wall;
nFaces 96;
startFace 43760;
}
In the above, the ACMI1_blockage and ACMI1_couple patches occupy the same space,
with duplicate points, edges and faces. The ACMI2_blockage and ACMI2_couple
patches are created similarly.
The duplicate patches are initially created using the createBaffles utility.
Firstly, the original (non-duplicated) patch faces are collected into zones
using the topoSet utility.
Note: when specifying the ACMI patch-pairs, the coupled patch must be specified
before its associated non-overlapping patch.
Each ACMI/non-overlapping patch pair is specified using a master-slave approach.
However, since we are generating boundary patches (which are always master
patches) the slave patches are simply defined using 'dummy' entries, e.g.:
type faceZone;
zoneName couple1Faces;
patches
{
// create cyclic ACMI patch
master
{
//- Master side patch
name ACMI1_couple;
type cyclicACMI;
matchTolerance 0.0001;
neighbourPatch ACMI2_couple;
nonOverlapPatch ACMI1_blockage;
transform noOrdering;
}
slave // dummy entries only
{
//- Slave side patch
name ACMI1_couple;
type patch;
}
// create blockage patch
master2
{
//- Master side patch
name ACMI1_blockage;
type wall;
}
slave12 // dummy entries only
{
//- Slave side patch
name ACMI1_blockage;
type wall;
}
}
Boundary conditions must then be applied to all geometric patches in the usual,
manner, and the cases can be executed in parallel (as shown when running the
Allrun-parallel script) without any speacial treatment, i.e. the case set-up is
the same as when operating in serial mode.
checkMesh
---------
checkMesh will see the 'duplicate' boundary faces but does not know about
the area factors so will complain:
***Boundary openness (-0.0103092 2.3845e-17 3.80774e-17) possible hole in boundary description.
***Open cells found, max cell openness: 0.333333, number of open cells 136
<<Writing 136 non closed cells to set nonClosedCells
As long as these non-closed cells are on the ACMI they can be ignored.
paraFoam
--------
- display: it will not display the outside of the ACMI, there will be a hole.
- cuttingPlanes: they leave out the duplicate faces (i.e. the cells on
the ACMI patches)
- interpolation: the interpolation does not take into account the
area-weights on the ACMI.
pointFields
-----------
Same as paraFoam: the interpolation does not take into account the
area-weights on the ACMI.
|