ANSYS ICEM CFD™ Prism Parameter input

prism parameter_file [-basic]

The contents of the parameter_file are described below.
 

Command line options

-basic
    Enables only the processing of basic geometry. This causes the mesher to check for the "TETRA_A" license. Basic geometry includes only untrimmed quadratic surfaces and trimmed linear surfaces.

Parameter file contents

Required

input_file tetra_mesh

   tetra_mesh is then name of the domain file that contains the tetra mesh.

output_file prism_mesh

    prism_mesh is the name of the domain file that will contain the prism/tetra mesh.

surface_file tetin_file

    tetin_file is the name of the tetin file that was used to create tetra_mesh
 
 

One of the following is required for each family growing prisms.

family family_name [ direction x y z ] [ max_height max_height] [ total_height total_height ]  [ ratio ratio ] [ ratio_multiplier ratio_multiplier ] [ ratio_max ratio_max ] [ n_layers n_layers ] [ height height ]

    For each family from which prisms should grow there should be a line "family family_name". Following that are optional arguments. All of these arguments cause properties of the prism mesh to be applied just to that family. For instance if height is specified for a particular family then the height of the prisms growing from the triangles in that family will be specified.
    When a triangle is trying to determine the height of the prism it should grow, it looks first to the surface on which it lies. If that surface has a specified height (in the tetin file most likely) it will use that value. Then it looks to the family that it belongs to. If the family parameter line for that family has a height then it will use that height. Then it looks to the global height setting.  If that is not set in smoothly interpolates the height of neighboring triangles.

Growth laws

law { linear | exponential | hyperbolic }
    This specifies the law used in the spacing of the prism layers. For exponential, if the first layer is h wide the second layer will be rh wide and the third will be r^2 h and so on. If the law is linear and the first layer is h and the second layer is h + d then the third layer will be h + 2h and the fourth will be h + 3d. d is not specified directly. It is computed from the via r = (h + d)/h. For hyperbolic the initial height is taken from height the final height is taken from max_height and the length of the offset is taken from total_height .

Three of { height, ratio, total height; n layers } must be specified at each node on the surface. The values can be specified globally using the parameters below; on each family using family parameter; or each surface, curve or prescribed point using the corresponding options in the tetin_file. If no value is specified at a point then it will be smoothly interpolated from neighboring points. Thus the minimum requirement is each point is connected through prism triangles to some point that has three of height, ratio, total height and number of layers specified.

height height

    height is the height of the initial prism layer.

ratio ratio

   ratio is the ratio of the second layer thickness to the first layer thickness.

n_layers n_layers

    n_layers is the number of prism layers to generate.

total_height total_height

    total_height is the total height of all prism layers taken together.

max_height max_height

    max_height is the maximum height of any individual prism layer.

ratio_multiplier multiplier

    If this value is specified then instead of the prism layers being h, rh, r^2 h ... the prism layers will be
h; rh; r^2mh; r^3m^2 h ..  .

ratio_max ratio_max

    If ratio_multiplier and ratio_max are specified then the prism layers will have thickness h rh r^2mh r^3m^2h ...

r^(n-2)* min(r*m^(n-3), rmax)*h .
 

Transition layer to tetrahedra


prism_height_limit val
    If a value > 0.0 is specified then the ratio is adjusted so that the height of the final layer is prism_height_limit  times the size of the triangle at the top of the final layer.

max_prism_height_ratio|max_aspect_ratio val
    If a value > 0.0 is specified then the number of layers is adjusted so that the height of the final layer is max_prism_height_ratio times the size of the triangle at the top of the final layer.

refine_prism_boundary 0|1|on|off
    With this parameter on, after all prisms are generated, extra nodes are added in the tetrahedral region above the prisms to ensure good quality tetrahedra. Defaults to on.

auto_reduction 0|1|on|off
    With this parameter on, when PRISM is two opposing layers of prisms run into each other the
height of the prism layer is reduced to avoid the collision. With the parameter off, prism generation
is stopped for the colliding prisms and pyramids are generated. Default is off.
 
 

Prism smoothing


triangle_quality { laplace | height_over_base | skewness | min_angle | max_angle | inscribed_ratio | inscribed_area }

    This command sets the type of triangle quality metric that will be used to smooth the triangles that are extruding the prisms as well as the top of each prism layer. Strictly speaking "laplace" is not a quality metric but rather a smoothing algorithm. However it does seem to give the most visually pleasing triangle meshes.

ortho_weight ortho_weight

    If the triangle_quality metric is laplace then the prism smoothing algorithm works as follows: At each iteration the top level of the current layer of prisms is smoothed as a triangle mesh. This gives a new location for each node. If this were the whole algorithm each layer would not be much lined up with the previous layer and the mesh would not be very orthogonal in the direction perpendicular to the surface. Thus, the new locations are averaged with the orthogonal offset of the previous layer. A value of .5 for ortho_weight is a simple average. 0.0 means that the mesh is just a result of the triangle smoothing algorithm. 1.0 means that the mesh is just an orthogonal offset of the previous layer.  If the prism quality is below .3 at a node then the element quality optimization algorithm is used instead of the laplace smoothing algorithm.

fillet fillet_ratio

    The top of each layer of prisms sits on an imaginary offset surface from the original surface. Where the initial surface is convex the top layer naturally forms a fillet of radius equal to the offset. In concave areas a sharp angle will form even if the original surface is smooth. If fillet_ratio is > 0.0 then the mesher will modify the offset surface so that in concave areas a fillet of radius equal to the offset_distance * fillet_ratio  is formed. In places where prisms are growing from both sides this means that the maximum_offset *2 *  (1 + fillet_ratio) < distance_between_opposite_surfaces.

max_prism_angle max_prism_angle

    In places where the initial offset surface forms a large convex angle this parameter determines how the prism mesh will behave. On a flat surface each surface edge sees a dihedral angle of 180 degrees. At a concave edge the value is < 180 . At at  a convex corner the value is > 180. The two prisms growing from this edge will have internal angles that add up to this value. On the trailing edge of a wing the surface dihedral angle may approach 360 degrees an thus the prism internal angles will approach 180 degrees. On the edge of a zero thickness sheet the dihedral angle will be exactly 360 degrees and the prisms will degenerate as they wrap around the edge.  To deal with this PRISM can detach the to prisms and the edge and insert pyramid elements into the space. The max_prism_angle tells PRISM when to start doing this splitting. A value of 180 says don't ever separate the prisms and don't create pyramids. A value of 170 degrees says that when the dihedral angle is 340 degrees (the not meshed region, the object in CFD, will occupy 20 degrees) then the prisms should be separated. Only values > 140 degrees are accepted.

    Max_prism_angle is also used where one triangle is extruding a prism and an adjacent triangle is not. Here, if the dihedral angle exceeds max_prism_angle then pyramids are used to separate the prism from the non-prism-growing triangle.

extend_pyramids 0|1|on|off
    With this parameter on, at sharp edges (e.g. trailing edges of wings), prisms are extruded right up to the sharp edge and terminated with pyramids with no face on the surface. With the parameter off the pyramids are generated on the surface at the sharp edge. Default is on.

min_prism_quality min_prism_quality

    If the prism quality is less than this value, then the prism mesher will start sticking tetrahedra. Sticking a tet means that the tetrahdra instead of being pushed in front of the prisms is marked to be stuck underneath the advancing layer of prisms. This is especially useful when two prism layers run into each other from opposite directions. After many tetrahedra a stuck the two prism layers are joined by the tetrahedra and can then grow as a single front. Min_prism_quality will not do anything productive in convex areas.

prism_threshold
max_jump_factor max_jump_factor
    If the jump in the height from 1 node to another is > max_jump_factor, prism exits without generating a mesh. Default 2.0.

max_size_ratio max_size_ratio
    If max_size_ratio > 0.0 and f the prism layers are growing into a region where the tetrahedra are smaller than1.0/max_ratio_ratio times the size of the prisms the prisms will stop growing at that place. This prevents the prism mesher from creating a mesh with large prisms growing up to opposing small prisms without a nice transition region. Default value is 0.0

area_power
    Obsolete.

smoothing_steps n_steps
    Default 12. The maximum number of iterations of prism marching direction smoothing. Generally speaking the number of smoothing steps in equal to the this.

min_smoothing_steps n_steps
    Default 6. In some cases if the quality is not getting better the marching direction smoothing will terminate early. This sets a minimum number of smoothing steps.
 
 

Growing into the orphan region

    into_orphan

    Generally, PRISM extrudes prisms into the tetrahedral region. It can be made to extrude prisms away from the tetrahedra if this parameter is used.

new_volume family_name
    Generally the created prisms have the same material id as the tetrahedra that they replace. If the user wishes the material id ( family ) of the prisms to be different he can use this command.

top_family family_name
    When growing into the prism mesh the interface between prisms and tetrahedra is not flagged with any triangles. However, if growing into the orphan region or if the user wishes when growing into the tetra region the triangles at the tops of the prisms can be created. They will be placed into this family.

side_family family_name
    When growing into the orphan region the exposed quad sides of the prisms need to be covered with quad elements. They will be placed in this family.

delete_base_triangles
    Generally, the triangle from which the prisms are grow are left along. With this option they are deleted after the prisms have been constructed.

delete_standalone 0|1|on|off
    Defaults to 1 (on) . If this is on then triangles not connected to any volume elements are deleted. When set to 0 (off) the triangles are kept.

Specifying directions

boundary family_name [ direction x y z ]
    Generally, prism tries to make the marching direction as orthogonal as possible to the starting triangles. However, it might be desirable to specify an exact direction. With this this option the vertices at the boundary of family_name triangles will have the specified marching direction.

do_not_allow_sticking
    If prism cannot smooth the marching directions to make a valid prism mesh it will stick the tetrahedra attached to the triangle where the bad prism would have been created. With this option, PRISM will simply exit if it cannot create a valid prism mesh.

Output

max_binary_tetin value
    Obsolete.

n_tetra_smoothing_steps n_steps
    After creating the prism mesh the tetrahedral elements will have a lower quality. The tetra smoother will be run with this many iterations to improve the quality.

tetra_smooth_limit value
    The tetra smoother will smooth elements up to but not exceeding this value.

intermediate_write 0|1
    Generally, after creating each prism layer, PRISM will write out the intermediate result mesh. If intermediate_write is invoked with 0 , the PRISM will only write out the mesh after all layers are complete.

graphics [-host name ]
    Turns of graphic debugging of the prism mesher.
 

Parallelism


n_processors n_processors
    This tells prism to utilize n_processors on a shared memory multi-processing meshing. The mesh generated will differ slightly depending on the number of processes used. However, each time the mesher is run will n_processors it should create exactly the same mesh. To reproduce the behaviour of a multi-processing machine on a single processor set n_processors to the value used on the multi-processor.

parallel_verbose 0|1|on|off
    With the parameter on debug information about parallelism is printed.
 

Misc.

print_memory_usage
    This turns on messages that give information on the amount of memory used. Default is off.

checksum 0|1|on|off
    With this paramter on various checksums are printed during the prism run. These can be compared to verify that two prisms runs are exactly the same. This is useful for debugging parallel runs. Default is off.