AcuSif

Split a set of nodes into multiple sets and create new geometry files.

acuSif [options]

Type

AcuSolve Preparatory Program

Description

AcuSif is a utility program that splits a set of nodes into multiple sets and creates new geometry files. These files are saved to a directory specified by target_directory.

All the nodes specified by split_node_file are not necessarily split. AcuSif takes every node in this "candidate" list and finds all the elements from connectivity_file_list connected to it. This subset of elements are connected to each other by the surfaces they share. The subset is then further divided into groups where each group consists of elements connected to each other, but not by surfaces that are entirely made up of candidate nodes. For every group, except the first group, a duplicate node, of the node considered, is introduced and used for that group.

This algorithm can give unexpected results, especially at corners. For example, consider a tetrahedral mesh and a candidate list of nodes that forms a right circular cylinder within that mesh. The goal is to split all the elements inside the cylinder from those outside. However, in the corners there likely will be many tetrahedra that consist completely of nodes from the candidate list. These will be split off from the others. In this case the solution is to eliminate the corners from the candidate list by performing the split in two passes: in the first pass just the nodes from the bottom and top of the cylinder are used for the candidate list, and in the second pass the circular wall nodes are used.

Alternatively, split_surface_file instead of split_node_file may be used. The two parameters are mutually exclusive. In this case a list of surfaces in the usual format is provided in the specified file. The algorithm is essentially the same as above, but is more robust since it does not suffer from the corner problem. However, if multiple surfaces are to be split off, usually because each surface can be associated with only one element set, then this executable must be executed multiple times, once per surface.

In the following, the full name of each option is followed by its abbreviated name and its type. For a general description of option specifications, see Command Line Options and Configuration Files. See below for more individual option details:

help or h (boolean)
If set, the program prints a usage message and exits. The usage message includes all available options, their current values, and the place where each option is set.
problem or pb (string)
The name of the problem. This is used to generate file names.
coordinates_file or crd (string)
Nodal coordinates file name. The file must contain four columns: node number and x, y, z coordinates. If coordinates_file is set to _auto, problem.crd and problem.crd.B are assumed.
connectivity_file_list or cnn (string)
Comma-separated list of connectivity files. The shape of the elements is extracted from the number of columns in each file. The elements are assumed to be 4-node tetrahedra if the file has 5 columns; 5-node pyramids if 6 columns; 6-node wedges if 7 columns; 8-node bricks if 9 columns; and 10-node tetrahedra if 11 columns. If _auto, all files of the form problem*.cnn and problem*.cnn.B are assumed.
surface_file_list or srf (string)
Comma-separated list of surface connectivity files. If _none, no surface files are split; if _auto, all files of the form problem*.ebc, problem*.ebc.B, problem*.srf and problem*.srf.B are assumed.
surface_node_file_list or node (string)
Comma-separated list of surface node files. If _none, no surface node files are split; if _auto, all files of the form problem*.nbc and problem*.nbc.B are assumed.
split_node_file or snodes (string)
Candidate split node file. Single column file of nodes. If _none, no split node file is used.
split_surface_file or ssrf (string)
Candidate split surface file. File format is elementId, surfaceId, node1,..., nodeN, where N is the number of nodes in the corresponding element face. If _none, no split surface file is used.
output_period_nodes or opbc (boolean)
If set, split nodes are output as a periodic boundary condition file named problem.sif.pbc.
output_split_surfaces or osrf (boolean)
If set, split surfaces are output as surface connectivity files with names of the form problem.sif.*.srf.
output_shell_elements or oshl (boolean)
If set, split surfaces are output as shell element files with names of the form problem.sif.*.cnn.
external_surface_shell or eshl (boolean)
If set, external surfaces are output as shell element sets.
target_directory or tdir (string)
Name of the directory to place new files.
verbose or v (integer)
Set the verbose level for printing information to the screen. Each higher verbose level prints more information. If verbose is set to 0, or less, only warning and error messages are printed. If verbose is set to 1, basic processing information is printed in addition to warning and error messages. This level is recommended. verbose levels greater than 1 provide information useful only for debugging.

Examples

acuSif -pb channel -crd channel.crd -cnn channel.cnn -srf channel_wall.srf \
-node channel_wall.nbc -snode split.nod
Alternatively place the options in the configuration file Acusim.cnf as:
problem= channel
coordinates_file= channel.crd
connectivity_file_list= channel.cnn
surface_file_list= channel_wall.srf
surface_node_file_list= channel_wall.nbc
split_node_file= split.nod
and issue the command:
acuSif

If output_period_nodes is set, the pairs of nodes that came from a split node are saved into a file.

If output_split_surfaces is set, then the new surfaces created by the split are output. One surface is created for each side of the split. Different surface files are also created for each element set that is involved.

If output_shell_elements is set, then the pairs of new surfaces created by the split are used to create new shell elements and are then output into a file.