Model.hm_collisiongetconfig#
- Model.hm_collisiongetconfig(options)#
Converts keywords into a numerical value for the configuration of the collision detection module. The returned value is used for the config argument to
Model.hm_collisioninit()orModel.collisioncheck2_temp().- Parameters:
options (hwStringList) –
A list with available keywords that this function can take. The following inputs are applicable to
Model.hm_collisioninit()orModel.collisioncheck2_temp():intersect_planar
If listed, consider coplanar facets which are partially/fully overlapping, within a given tolerance defined by
Model.hm_collisoininit(), as intersected.If not listed, do not consider these planar intersections (default for opcode engine). This is ignored by the collirad engine.
penetrat_min_overlap
If listed, consider only penetrations between two facets if they have an overlap greater than a given tolerance defined by
Model.hm_collisioninit()(not compatible with the collirad engine).If not listed, such penetrations are even reported if a node of one of the facets penetrates exactly onto the edge of the other facet (default).
This is ignored if any of the options
edge_penetration,midside_nodesorsplit_quadsare used inModel.hm_collisionentitycreate().The following inputs are applicable to
Model.hm_collisioninit()only:collirad
If listed, switches to the collirad collision detection engine, which is mainly based on Radioss algorithms, and provides an automatic fix.
If not listed, the default opcode collision detection engine is used, which supports some additional options, but does not support an automatic fix.
The following inputs are applicable to
Model.collisioncheck2_temp()only:constant_gap
If listed, the thickness argument of
Model.collisioncheck2_temp()is used as a constant/uniform thickness. This is equivalent to passingthickness_type0 toModel.hm_collisionentitycreate().If not listed, the thickness argument of
Model.collisioncheck2_temp()is used as a multiplier for the element thickness when using the collirad engine, or ignored when using the opcode engine.edge2edge
If listed, edge-to-edge penetrations are considered. This is equivalent to the
edge_penetrationflag inModel.hm_collisionentitycreate().If not listed, only node-to-surface penetrations are considered.
flat_boundary_shell_edge
If listed, configures the collirad penetration check to flatten the secondary nodes and main edges along shell external boundaries.
This is ignored for the opcode engine.
intersections
If listed, intersections are checked.
intersections_no_edge_on_face
If listed, configures the collirad intersection check to not report facet edges lying flush on facet faces as intersections.
This is ignored for the opcode engine.
neighborhood
If listed, configures the collirad penetration check to ignore penetrations of neighboring elements due to thicknesses being greater than element sizes. This corresponds to using the Iremgap 2 option in Radioss contact interfaces.
This is also equivalent to adding 100 to thickness_type for
Model.hm_collisionentitycreate().If not listed, such undesired penetrations may be reported, but the check is faster.
This is ignored for the opcode engine.
penetrations
If listed, penetrations are checked.
restrict_segment_gaps_to_element_sizes
If listed, configures the collirad penetration check to restrict main and secondary thicknesses to the minimum of element sizes.
This is equivalent to adding 1000 to the
thickness_typeargument forModel.hm_collisionentitycreate(). This option overrides the option thick_reduction if both are listed. This is ignored for the opcode engine.self
If listed, include self checks in
Model.collisioncheck2_temp(). This is equivalent to theself_checkflag inModel.hm_collisioncheck().If not listed, self checks are not included (not compatible with the collirad engine).
thick_reduction
If listed, configures the collirad penetration check to restrict the thicknesses of the elements to 40% of their size each. This also avoids undesired penetrations of neighboring elements due to thicknesses being greater than element sizes. This corresponds to the behavior of some Radioss contacts.
This is equivalent to adding 200 to the thickness_type argument for
Model.hm_collisionentitycreate().Ignored for the opcode engine.
- Returns:
hwReturnStatus- Status objectHmQueryResult- Result object containing the output values:config (int)
Example#
Configure the collision detection for planar intersections#import hm import hm.entities as ent model = hm.Model() _, result = model.hm_collisiongetconfig(options=["intersect_planar"]) config = result.config model.hm_collisioninit(config=config)