File: README

package info (click to toggle)
openfoam 4.1%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 163,028 kB
  • ctags: 58,990
  • sloc: cpp: 830,760; sh: 10,227; ansic: 8,215; xml: 745; lex: 437; awk: 194; sed: 91; makefile: 77; python: 18
file content (134 lines) | stat: -rw-r--r-- 4,289 bytes parent folder | download | duplicates (5)
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.