INTERFACE_SURFACE

Specifies an interface surface for a non-conformal mesh.

Type

AcuSolve Command

Syntax

INTERFACE_SURFACE("name") {parameters...}

Qualifier

User-given name.

Parameters

shape (enumerated) [no default]
Shape of the surfaces in this set.
three_node_triangle or tri3
Three-node triangle.
four_node_quad or quad4
Four-node quadrilateral
six_node_triangle or tri6
Six-node triangle.
element_set or elem_set (string) [no default]
User-given name of the parent element set.
surfaces (array) [no default]
List of element surfaces.
surface_sets (list) [={}]
List of surface set names (strings) to use in this command. When using this option, the connectivity, shape, and parent element of the surfaces are provided by the surface set container and it is unnecessary to specify the shape, element_set and surfaces parameters directly to the INTERFACE_SURFACE command. This option is used in place of directly specifying these parameters. In the event that both of the surface_sets and surfaces parameters are provided, the full collection of surface elements is read and a warning message is issued. The surface_sets option is the preferred method to specify the surface elements. This option provides support for mixed element topologies and simplifies pre-processing and post-processing.
split_internal_surfaces (boolean) [=off]
Option to automatically split the nodes on internal surfaces that require two boundary conditions, that is, cases that include baffles, sliding mesh or thermal interfaces.
gap_factor (real) >=0 [=1]
Nondimensional (with respect to the length of an element face) maximum gap allowed for two element faces to be in contact. No maximum if zero.
gap (real) >=0 [=0]
Dimensional maximum gap allowed for two element faces to be in contact. No maximum if zero.
crease_angle or angle real >=0 <=180 [=90]
Maximum angle between face normals allowed for two element faces to be in contact. No maximum if zero.

Description

This command defines an "interface surface" as a set of surfaces (element faces) with associated geometrical properties. Interface surfaces are used to connect pairs of elements that share (approximately) the same surface but are not conformal. That is, the corresponding element faces are not node-on-node but are in "contact." This allows "tied interface" and "sliding mesh" problems to be solved. If two interface surfaces are found to be in contact, a Discontinuous Galerkin formulation, as opposed to commonly used penalty methods, is used to form the residual on these surfaces. If an interface surface is not found to be in contact with any other interface surface, it may be subject to boundary conditions if active_type = no_interface is specified by a boundary condition command for this surface. The boundary condition commands that support this constraint are:
  • NODAL_BOUNDARY_CONDITION
  • ELEMENT_BOUNDARY_CONDITION
  • SIMPLE_BOUNDARY_CONDITION
  • TURBULENCE_WALL

See these commands for details on the active_type parameter.

AcuSolve internally combines all interface surfaces into one global set. Then each element face is checked against all the others for contact. This has three important implications:
  • There are no "master" or "slave" surfaces;
  • You do not need to (and are not allowed to) specify pairs of interface surfaces that are to be checked for contact; and
  • Element faces within a single interface surface set may be contact with each other.
The surfaces of an interface surface are defined with respect to the elements of an element set. For example,
ELEMENT_SET( "impeller region" ) {
    shape          = four_node_tet
    elements       = { ...
                       4, 2, 5, 6, 8 ;
                       5, 2, 6, 3, 5 ;
                       ... }
    ...
}
INTERFACE_SURFACE( "surface of impeller region" ) {
    shape          = three_node_triangle
    element_set    = "impeller region"
    surfaces       = { 4, 41, 2, 5, 6 ;
                       5, 51, 5, 6, 3 ; }
    gap_factor     = 0
    gap            = 0
    crease_angle   = 0
}

defines two surfaces of the element set "impeller region" as an interface surface with no constraints on finding contact surfaces.

There are two main forms of this command. The legacy version (or single topology version) of the command relies on the use of the surfaces parameter to define the surfaces. When using this form of the command, all surfaces within a given set must have the same shape, and it is necessary to include both the element_set and shape parameters in the command. shape specifies the shape of the surface. This shape must be compatible with the shape of the "parent" element set whose user-given name is provided by element_set. The element set shape is specified by the shape parameter of the ELEMENT_SET command. The compatible shapes are:
Element Shape
Surface Shape
four_node_tet
three_node_triangle
five_node_pyramid
three_node_triangle
five_node_pyramid
four_node_quad
six_node_wedge
three_node_triangle
six_node_wedge
four_node_quad
eight_node_brick
four_node_quad
ten_node_tet
six_node_triangle

The surfaces parameter contains the faces of the element set. This parameter is a multi-column array. The number of columns depends on the shape of the surface. For three_node_triangle, this parameter has five columns, corresponding to the element number (of the parent element set), a unique (within this set) surface number, and the three nodes of the element face. For four_node_quad, surfaces have six columns, corresponding to the element number, a surface number, and the four nodes of the element face. For six_node_triangle, surfaces has eight columns, corresponding to the element number, a surface number, and the six nodes of the element face. One row per surface must be given. The three, four, or six nodes of the surface may be in any arbitrary order, since they are reordered internally based on the parent element definition.

The surfaces may be read from a file. For the above example, the surfaces may be placed in a file, such as region_surface.ebc:
4 41 2 5 6
5 51 5 6 3
and read by:
INTERFACE_SURFACE( "surface of impeller region" ) {
 shape = three_node_triangle
 element_set = "flow_elements"
 surfaces = Read( "region_surface.ebc" )
...
}
The mixed topology form of the INTERFACE_SURFACE command provides a more powerful and flexible mechanism for defining the surfaces. Using this form of the command, it is possible to define a collection of surfaces that contains different element shapes. This is accomplished through the use of the surface_sets parameter. The element faces are first created in the input file using the SURFACE_SET command and are then referred to by the INTERFACE_SURFACE command. For example, a collection of triangular and quadrilateral element faces can be defined using the following SURFACE_SET commands.
SURFACE_SET( "tri faces" ) {
    surfaces       = { 1, 1, 1, 2, 4 ;
                       2, 2, 3, 4, 6 ;
                       3, 3, 5, 6, 8 ; }
    shape          = three_node_triangle
    volume_set     = "tetrahedra"
}
SURFACE_SET( "quad faces" ) {
    surfaces       = { 1, 1, 1, 2, 4, 9 ;
                       2, 2, 3, 4, 6, 12 ;
                       3, 3, 5, 6, 8, 15 ; }
    shape          = four_node_quad
    volume_set     = "prisms"
Then, a single INTERFACE_SURFACE command is defined that contains the tri and quad faces as follows:
INTERFACE_SURFACE ( "surface of impeller region" ) {
    surface_sets       = {"tri_faces", "quad_faces"}
    ...
}
The list of surface sets can also be placed in a file, such as surface_sets.srfst:
tri faces
quad faces
and read using:
INTERFACE_SURFACE ( "surface of impeller region" ) {
    surface_sets       = Read("surface_sets.srfst")
    ...
}

The mixed topology version of the INTERFACE_SURFACE command is preferred. This version provides support for multiple element topologies within a single instance of the command and simplifies pre-processing and post-processing. In the event that both the surface_sets and surfaces parameters are provided in the same instance of the command, the full collection of surface elements is read and a warning message is issued. Although the single and mixed topology formats of the commands can be combined, it is strongly recommended that they are not.

Residuals of the Discontinuous Galerkin formulation are formed at the quadrature points of the surfaces and integrated to the nodes of the element faces. The quadrature rule is inherited from the parent element set.

For each quadrature point of each interface surface element face, a search is made over all other such faces for the closest face. The original quadrature point is considered to be in contact with this face if three constraints are met:
  • The distance between the point and the face is less than gap;
  • The distance between the point and the face, normalized by the length of the face, is less than gap_factor; and
  • The angle between the normals of the face and the original face is less than crease_angle.

Each constraint is ignored if the corresponding parameter is zero. If all three parameters are zero, then there are no constraints and each quadrature point is guaranteed to be in contact with another face.

To obtain the best solution quality at the non-conformal interface, at least one layer of structured mesh with uniform height and length on both sides of the interface should be created. As shown in the example below, each side of the interface between the blue and yellow domains has one layer of boundary layer mesh of identical grid size.


Figure 1.