1

Next: Mesh creation script Up: Merging meshes Previous: Merging meshes   Contents   Index

Cyclic patches

The wheel-inlet and wheel-volute interface patches wheel_inlet and wheel_outlet come in pairs, there is one in every of the two regions. See the table below:

Table: Cyclic interface patches.
  region
(r)2-4 interface inflow wheel volute
inflow-wheel wheel_inlet_1_ami wheel_inlet_2_ami  
wheel-volute   wheel_outlet_1_ami wheel_outlet_2_ami
       

The patches connect the regions through the AMI mechanism (Arbitrary Mesh Interface), which maps values between the patches by interpolation. Unlike the mixing plane methodology there is no additional averaging (i.e. other than numerical roundoff errors). This may slightly harm the steady-state results, but leads to more accurate time-dependent simulation.

Though very useful, cyclic patches may be also a little cumbersome to work with, particularly when the mesh changes. A mesh change can have several forms: adaptive refinement, solid body motion or simply parallel decomposition. To avoid complications in pairing algorithm it is best to keep the patches intact. In this tutorial we expect half of the patches to rotate, which will not deform them. The only problem can arise in the decomposition combined with the relative movement of the partner patches. We avoid it by requesting that the parallel decomposition leaves both whole partner patches “on the same processor”, i.e. in the same independent decomposed section of the mesh. The corresponding system/decomposeParDict will look this way:

 

numberOfSubdomains 2;

method scotch;

singleProcessorFaceSets
(
    (wheel_inlet1 0)
    (wheel_inlet2 0)
    (wheel_outlet1 1)
    (wheel_outlet2 1)
);

The dictionary singleProcessorFaceSets contains pairs “face set”, “processor”. We will create the face sets from the respective patches by topoSet. The corresponding action list is stored in system/topoSetDict.ami:

 

actions
(
    {
        name    wheel_inlet1;
        type    faceSet;
        action  new;
        source  patchToFace;
        sourceInfo
        {
            name "wheel_inlet_1_ami";
        }
    }
    {
        name    wheel_inlet2;
        type    faceSet;
        action  new;
        source  patchToFace;
        sourceInfo
        {
            name "wheel_inlet_2_ami";
        }
    }
    {
        name    wheel_outlet1;
        type    faceSet;
        action  new;
        source  patchToFace;
        sourceInfo
        {
            name "wheel_outlet_1_ami";
        }
    }
    {
        name    wheel_outlet2;
        type    faceSet;
        action  new;
        source  patchToFace;
        sourceInfo
        {
            name "wheel_outlet_2_ami";
        }
    }
);

The programs are run by the sequence
# topoSet -dict system/topoSetDict.ami
# decomposePar