3.9 Movement

This section defines the movement of the mesh. Currently only static non-conformal interfaces are supported.

3.9.1 Non-conformal meshes

Non-conformal meshes are defined using ZONES and INTERFACES. Each zone is a domain as defined in the GEOMETRY section. For a mesh to be non-conformal it must consist of at least two zones with different domain tags. These two zones can then be split by an interface where every interface is defined by two composite entities, we use LEFT and RIGHT notation to distinguish between these. Each zone must contain either the left or the right interface edge. Zones can contain multiple edges across different interfaces but must not contain both edges for the same interface. These left and right interface edges have to be geometrically identical but topologically disconnected i.e. occupy the same space physically but consist of independent geometry objects.

Non-conformal interfaces are defined enclosed in the NEKTAR tag. An example showing two non-conformal interfaces on a single mesh is below:

1<MOVEMENT> 
2    <ZONES> 
3        <FIXED ID="0" DOMAIN="D[0]" /> 
4        <FIXED ID="1" DOMAIN="D[1]" /> 
5        <FIXED ID="2" DOMAIN="D[2]" /> 
6    </ZONES> 
7    <INTERFACES> 
8        <INTERFACE NAME="First"> 
9            <LEFT  ID="0" BOUNDARY="C[0]" /> 
10            <RIGHT ID="1" BOUNDARY="C[1]"  /> 
11        </INTERFACE> 
12        <INTERFACE NAME="Second"> 
13            <LEFT  ID="1" BOUNDARY="C[2]" /> 
14            <RIGHT ID="2" BOUNDARY="C[3]"  /> 
15        </INTERFACE> 
16    </INTERFACES> 
17</MOVEMENT>

Zones must have a type specified, at the moment only ‘FIXED’ interfaces are supported however in the future there are plans to implement rotating and sliding motion using the ALE method. It is important for the zone IDs to correspond with the relevant interface IDs present on the zone, that is if there is an interface with ID 0 there must also be a zone with ID 0 too. Zone IDs must be unique but interfaces can have the same ID, e.g. in the example above zone ID 1 has two interfaces attached to it. The inclusion of an "INTERFACE NAME="..." allows for specifying a name, which is used for the debug output when the verbose flag ‘-v’ is specified. This is for user reference to ensure the non-conformal interfaces are set up correctly, and shows zone/interface IDs, number of elements in each zone and interface, and connections between each zone/interface. An example debug output for the above XML is shown below:

Movement Info: 
       Num zones: 3 
       - 0 Fixed: 8  Quadrilaterals 
       - 1 Fixed: 24 Quadrilaterals 
       - 2 Fixed: 4  Quadrilaterals 
       Num interfaces: 2 
       - "First":  0 (4 Segments) <-> 1 (6 Segments) 
       - "Second": 1 (6 Segments) <-> 2 (2 Segments)

3.9.2 Sliding Mesh

ALE method is implemented through MOVEMENT and ALEHELPER for sliding mesh with rotating and sliding motion. Zones type can be specified by ‘ROTATE’ and ’TRANSLATE’ interface. Recently, the ALE method is implemented in ADRSolver and CompressibleFlowSolver, but only support explicit time integration shceme and LDG for diffusion.

An example for the rotationg movement is shown below:

1<MOVEMENT> 
2<ZONES> 
3    <FIXED ID="0" DOMAIN="D[0]" /> 
4    <ROTATE ID="1" DOMAIN="D[1]" ORIGIN="0,0.5,0" AXIS="0,0,1" ANGVEL="100"/> 
5</ZONES> 
6<INTERFACES> 
7    <INTERFACE NAME="Circle"> 
8        <LEFT  ID="0" BOUNDARY="C[405]" /> 
9        <RIGHT ID="1" BOUNDARY="C[406]"  /> 
10    </INTERFACE> 
11</INTERFACES> 
12</MOVEMENT>

Here ORIGIN and AXIS are the origin and axis that the zone rotates about, respectively. ANGVEL is the the angular velocity of rotation with degree unit.

Another example for the translating movement is shown below:

1<MOVEMENT> 
2<ZONES> 
3    <FIXED ID="0" DOMAIN="D[0]" /> 
4    <TRANSLATE ID="1" DOMAIN="D[1]" VELOCITY="0,PI*cos(2*PI*t)" DISPLACEMENT="0,0.5*sin(2*PI*t)"/> 
5    <FIXED ID="2" DOMAIN="D[2]" /> 
6</ZONES> 
7<INTERFACES> 
8    <INTERFACE NAME="Left interface"> 
9        <LEFT  ID="0" BOUNDARY="C[405]" SKIPCHECK="TRUE"/> 
10        <RIGHT ID="1" BOUNDARY="C[406]" SKIPCHECK="TRUE"/> 
11    </INTERFACE> 
12    <INTERFACE NAME="Right interface"> 
13        <LEFT  ID="1" BOUNDARY="C[407]" SKIPCHECK="TRUE"/> 
14        <RIGHT ID="2" BOUNDARY="C[408]" SKIPCHECK="TRUE"/> 
15    </INTERFACE> 
16</INTERFACES> 
17</MOVEMENT>

Here VELOCITY and DISPLACEMENT are the translation velocity and displacement in x,y,z direction. SKIPCHECK is defined to ignore the missing coordinates found check for specific interface.