FREE_SURFACE
Specifies a free surface.
Type
AcuSolve Command
Syntax
FREE_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 FREE_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.
- surface_tension_model (string) [=none]
- User-given name of the surface tension model. If none, surface tension is not modeled.
- contact_angle_model (string) [=none]
- User-given name of the contact angle model. Used when surface_tension_model is specified. If none, the default contact angle model is used.
Description
This command specifies the surfaces (element faces) that define a free surface and imposes the appropriate nodal boundary condition on the mesh motion on those surfaces. Optional surface tension and contact angle models may also be specified.
ELEMENT_SET( "interior" ) {
shape = four_node_tet
elements = { 1, 8, 3, 4, 9 ;
3, 3, 4, 9, 5 ;
... }
...
}
FREE_SURFACE( "water surface" ) {
shape = three_node_triangle
element_set = "interior"
surfaces = { 1, 12, 9, 3, 4 ;
3, 52, 5, 3, 4 ; }
surface_tension_model = "water/air"
contact_angle_model = "water/air @ smooth aluminum"
}
specifies that two surfaces of the element set "interior" are on a free surface boundary, and that this free surface has certain properties specified by the surface_tension_model and contact_angle_model parameters.
- 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 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.
1 12 9 3 4
3 52 5 3 4
FREE_SURFACE( "water surface" ) {
shape = three_node_triangle
element_set = "interior"
surfaces = Read( "free.srf" )
...
}
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"
SURFACE_INTEGRATED_CONDITION ( "water surface" ) {
surface_sets = {"tri_faces", "quad_faces"}
...
}
tri faces
quad faces
FREE_SURFACE ( "water surface" ) {
surface_sets = Read("surface_sets.srfst")
...
}
The mixed topology version of the FREE_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.
This command also automatically creates the following nodal (Dirichlet) boundary condition on the mesh velocity for all surface nodes:
The surface_tension_model parameter provides the surface tension information to the free surface. This parameter specifies the user-given name of a SURFACE_TENSION_MODEL command. If this parameter is not given the surface tension defaults to zero. If it is given, then in addition a contact angle at the side walls of the free surface may be specified with the contact_angle_model parameter. This parameter specifies the user given name of a CONTACT_ANGLE_MODEL command. If contact_angle_model is not given, the contact angle defaults to 90 degrees. See the SURFACE_TENSION_MODEL command for details.
The momentum equation also requires a boundary condition on the free surface. Normally, a constant-pressure element boundary condition should be imposed, which is all that is needed.
The side walls of a tank, or any surface that intersects with a free surface, require special care at the intersection. If a side wall has a no-slip velocity boundary condition, then the above boundary condition on the mesh motion will prevent the free surface from moving at the corner where it meets the wall. Thus, for just these corner nodes, the no-slip condition needs to be replaced by a slip velocity boundary condition in order to allow the correct free surface motion. A slip condition on mesh displacement is typically used for the entire side wall.
In order for a free surface to be physically stable, some type of restoring force is necessary. This is usually provided by an acceleration of the reference frame, or a body force such as gravity acting towards the interior of the fluid.