# SURFACE_OUTPUT

Specifies output parameters for a boundary surface.

AcuSolve Command

## Syntax

SURFACE_OUTPUT("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.
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 this 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.
integrated_output_frequency or intg_freq (integer) >=0 [=1]
Time step frequency at which to output integrated surface quantities. If zero, this option is ignored.
integrated_output_time_interval or intg_intv (real) >=0 [=0]
Time frequency at which to output integrated surface quantities. If zero, this option is ignored.
statistics_output_frequency or stat_freq (integer) >=0 [=1]
Time step frequency at which to output statistics of surface nodal quantities. If zero, this option is ignored.
statistics_output_time_interval or stat_intv (real) >=0 [=0]
Time frequency at which to output statistics of surface nodal quantities. If zero, this option is ignored.
nodal_output_frequency or nodal_freq (integer) >=0 [=0]
Time step frequency at which to output surface quantities at the nodes of the surface. If zero, this option is ignored.
nodal_output_time_interval or nodal_intv (real) >=0 [=0]
Time frequency at which to output surface quantities at the nodes of the surface. If zero, this option is ignored.
num_saved_states or save (integer) >=0 [=0]
Number of solution steps to retain on disk. If zero, all are kept.

## Description

This command specifies a set of boundary surfaces (element faces) whose surface quantities are to be output. For example,
ELEMENT_SET( "duct" ) {
shape                            = eight_node_brick
elements                         = { 1, 1, 2, 4, 3, 11, 12, 14, 13 ;
2, 3, 4, 6, 5, 13, 14, 16, 15 ;
... }
...
}
SURFACE_OUTPUT( "lower wall" ) {
element_set                      = "duct"
surfaces                         = { 1, 101, 1, 3, 11, 13 ;
2, 102, 3, 5, 13, 15 ; }
integrated_output_frequency      = 2
integrated_output_time_interval  = 15.5
nodal_output_frequency           = 100
nodal_output_time_interval       = 0
}

defines an element boundary having two surfaces of the element set "duct". In this example, two types of surface quantities are output. The integrals of the surface quantities are output at the end of every other time step, every 15.5 units of run time and at the last time step. The surface quantities are also output for each node of the surface every 100 time steps and at the last time step.

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 lower_wall.srf:
1 101 1 3 11 13
2 102 3 5 13 15

SURFACE_OUTPUT( "lower wall" ) {
element_set   = "duct"
surfaces      = Read( "lower_wall.srf" )
...
}
The mixed topology form of the SURFACE_OUTPUT 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 SURFACE_OUTPUT 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 ; }
volume_set      = "prisms"
Then, a single SURFACE_OUTPUT command is defined that contains the tri and quad faces as follows:
SURFACE_OUTPUT ( "lower wall" ) {
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
SURFACE_OUTPUT ( "lower wall" ) {
...
}

The mixed topology version of the SURFACE_OUTPUT 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.

Once the surface quantities have been written to disk, they can be translated to other formats using the AcuTrans program and other post-processing modules; see the AcuSolve Programs Reference Manual for details.

If either integrated_output_frequency or integrated_output_time_interval is non-zero, the integrals of the surface quantities will be output at the end of the run. If both are zero, no integrated quantity is written to disk.

Similarly, if either nodal_output_frequency or nodal_output_time_interval is non-zero, the nodal quantities of an output surface will be output at the end of the run. If both are zero, no nodal quantity is written to disk.

Run times may not coincide with integrated_output_time_interval or nodal_output_time_interval. In these cases, the corresponding data are output for every time step which passes through a multiple of output_time_interval or nodal_output_time_interval.

The surface does not have to lie on an outer boundary of the problem; it is allowed to be an "interior" surface. However, you are responsible for ensuring that all the interior elements specified in surface are on the same side of the interior surface. Otherwise, inappropriate cancellation will occur. Surface output quantities calculated for interior surfaces will be conservative, just as they are for exterior boundaries.

The num_saved_states parameter indicates the number of surface output steps to save. Once the (num_saved_states + 1)th step is written, the first one is removed. When running in parallel, once all files are written (in parallel), then the old ones are removed (in parallel). Note that this parameter only applies to surface_nodal_output. It does not apply to surface integrated quantities.