# PARTICLE_SURFACE

Specifies a surface for particle tracking.

AcuSolve Command

## Syntax

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

User-given name.

## Parameters

shape (enumerated) [no default]
Shape of the surfaces in this set.
three_node_triangle or tri3
Three-node triangle.
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.
type (enumerated) [=wall]
Type of the boundary surface.
wall
Impenetrable wall.
inflow or in
Inflow surface. Currently not used..
outflow or out
Outflow surface. Currently not used.

## Description

This command specifies the surfaces (element faces) that comprise a particular kind of surface for particle tracking. Currently particle tracking is done as part of a post-processing module. The only type supported is wall, which is used by the particle tracker to prevent particles from penetrating the given surface. It is not necessary to use a PARTICLE_SURFACE command for surfaces specified in a SIMPLE_BOUNDARY_CONDITION command with type = wall, type = slip, or type = symmetry.

The particle surfaces are defined with respect to the elements of an element set. For example,
ELEMENT_SET( "interior" ) {
shape        = four_node_tet
elements     = { 1, 8, 3, 4, 9 ;
3, 3, 4, 9, 5 ;
... }
...
}
PARTICLE_SURFACE( "wall" ) {
shape        = three_node_triangle
element_set  = "interior"
surfaces     = { 1, 12, 9, 3, 4 ;
3, 52, 5, 3, 4 ; }
type         = wall
}

specifies that two surfaces of the element set "interior" are on a wall and that no particles are allowed to penetrate this wall.

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
six_node_wedge
three_node_triangle
six_node_wedge
eight_node_brick
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 has 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 wall.srf:
1 12 9 3 4
3 52 5 3 4
PARTICLE_SURFACE ( "no-slip wall" ) {
shape       = three_node_triangle
element_set = "interior"
...
}
The mixed topology form of the PARTICLE_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 PARTICLE_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"
}
surfaces    = { 1, 1, 1, 2, 4, 9 ;
2, 2, 3, 4, 6, 12 ;
3, 3, 5, 6, 8, 15 ; }
volume_set  = "prisms"
Then, a single PARTICLE_SURFACE command is defined that contains the tri and quad faces as follows:
PARTICLE_SURFACE ( "no-slip wall" ) {
...
}
The list of surface sets can also be placed in a file, such as surface_sets.srfst:
tri faces
quad faces
PARTICLE_SURFACE ( "no-slip wall" ) {
}