PCL Reference Manual > Finite Element Functions > Modify Action
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX''">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX''">   
Modify Action
This section is used to describe some of the functions used to modify elements and nodes in a finite element model.
del_2n_edge_for_all_elm
(node_prefer_to_del_id, node_prefer_to_keep_id, consider_geometry, reason_why_not)
Description:
 
 
This function deletes an element edge for all Tet/Tri/Bar elements using it.
Input:
 
 
INTEGER
node_prefer_to_del_id
This value specifies the Patran node id for deletion. This should be the one you prefer to delete.
INTEGER
node_prefer_to_keep_id
This value specifies the Patran node id for deletion. This should be the one you prefer to keep.
INTEGER
consider_geometry
This value specifies the options : 1 (TRUE) if you wish to consider geometry, otherwise, 0 (FALSE).
STRING [VIRTUAL]
reason_why_not
This value specifies the virtual string containing : "" for this string if the edge was deleted. Otherwise (string length greater than 0), this string holds the reason why it cannot be deleted.
Output:
 
 
INTEGER
<Return Value>
This function returns a value of 0 if no error occurred.
   
fem_conn_fastener_prop_modify
(name, diameter, kti, kri, mass, mcid, mflag, id)
Description:
 
 
This function modifies a fastener connector property record in the database.
Input:
 
 
STRING[]
name
The name of the connector property.
REAL
diameter
The connector diameter.
REAL(3)
kti
Stiffness values in directions 1 to 3.
REAL (3)
kri
Rotation stiffness values in directions 1 to 3.
REAL
mass
The lumped mass of the fastener.
INTEGER
mcid
The element stiffness coordinate system (-1 = use element coordinate system).
INTEGER
mflag
Defines whether the coordinate system specified for mcid is absolute (1) or relative (0).
Output:
 
 
INTEGER
id
The ID of the new connector property.
INTEGER
<Return Value>
This function returns a value of 0 if successful.
Error Conditions:
 
DbDuplicateEntry
DbMaterialNotFound
   
fem_conn_property_get
(name, type, mat, rvals, ivals, id)
Description:
 
 
This function modifies a connector property record in the database.
Input:
 
 
STRING[]
name
The name of the connector property.
Output:
 
 
STRING[]
type
The type of connector property (General, Spot Weld).
STRING[]
mat
Name of the reference material property.
REAL()
rvals
Real property values (diameter, Idmin, Idmax, etc.).
INTEGER()
ivals
Integer property values.
INTEGER
id
The ID of the new connector property.
INTEGER
<Return Value>
This function returns a value of 0 if successful.
Error Conditions:
 
DbRegionNotFound
DbPropValNotFound
DbMaterialNotFound
   
fem_conn_property_modify
(name, type, mat, rvals, ivals, id)
Description:
 
 
This function modifies a connector property record in the database.
Input:
 
 
STRING[]
name
The name of the connector property.
STRING[]
type
The type of connector property (Generl, Spot Weld).
STRING[]
mat
Name of the reference material property.
REAL()
rvals
Real property values (diameter, Idmin, Idmax, etc.).
INTEGER()
ivals
Integer property values.
Output:
 
 
INTEGER
id
The ID of the connector property.
INTEGER
<Return Value>
This function returns a value of 0 if successful.
Error Conditions:
 
DbRegionNotFound
DbPropValNotFound
DbMaterialNotFound
   
fem_conn_spotweld_modify
(id, pname, method, fmt, gs, ga, gb, pata, patb, sptyp)
Description:
 
 
This function modifies spot weld connectors (usually one at a time).
Input:
 
 
INTEGER
id
The starting id for the new connector(s).
STRING[]
pname[]
The connector property name.
STRING[]
method
The connector creation method (Projection or Axis).
STRING[]
fmt
The weld format (ELPAT, PARTPAT, ALIGN, ELEMID, or GRIDID).
STRING[]
gs
List of connector locations (nodeds or xyz).
STRING[]
ga
List of surface A pierce nodes.
STRING[]
gb
List of surface B pierce nodes.
STRING[]
pata
List of surface A patch identifiers.
STRING[]
patb
List of surface B patch identifiers.
STRING[]
sptyp
Surface patch types (GRIDID format only).
Q4Q8 = quad4/quad8, Q4T6 = quad4/tri6, etc.
Output:
 
 
INTEGER
<Return Value>
This function returns a value of 0 if successful.
Error Conditions:
 
MSG_FEM_CONN_ZERO_DIAM
MSG_FEM_CONN_GS_OR_GA_REQD
MSG_FEM_CONN_ALIGN_GA_GB_REQD
MSG_FEM_CONN_PATA_PATB_REQD
MSG_FEM_CONN_BAD_POINT_PATCH
MSG_FEM_CONN_GS_NODE_ID_REQD
MSG_FEM_CONN_PROP_NOT_FOUND
   
fem_conn_spotweld_prop_modify
(name, mat, diameter, imset, id)
Description:
 
 
This function modifies a spot weld connector property record in the database.
Input:
 
 
STRING[]
name
The name of the connector property.
STRING[]
mat
Name of the reference material property.
REAL
diameter
The connector diameter.
INTEGER
imset
The M-Set flag (0=OFF, 1=ON).
Output:
 
 
INTEGER
id
The ID of the new connector property.
INTEGER
<Return Value>
This function returns a value of 0 if successful.
Error Conditions:
 
DbDuplicateEntry
DbMaterialNotFound
   
fem_mod_elem_reverse
(element_select, elements_reversed)
Description:
 
 
This function will reverse the connectivity of the specified elements, reversing the direction of the normal vector for those elements.
Input:
 
 
STRING
element_select[]
This value specifies a selection of element identifiers to be used for the elements being reversed.
Output:
 
 
STRING
elements_reversed[VIRTUAL]
 
 
This value returns a description of the elements which were reversed.
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error.
Error Conditions:
 
See the Status Messages for information on any error values returned by this function.
Remarks:
This function is used in the implementation of the “Finite Elements” switch bar form that is displayed when the action is set to “Modify”, the object is set to “Element”, and the method is set to “Reverse”.
Space is internally allocated for the string returned by the output value elements_reversed. It is the responsibility of the calling function to free the allocated string storage space.
Example:
Please see fem_mod_elem_reverse.
   
fem_mod_elem_separate
(element_select, node_select, seperation_option, keep_association, num_nodes, nodes_created)
Description:
 
 
This function will separate elements at the specified nodes, edges or faces.
Input:
 
 
STRING
element_select[]
This value specifies a selection of element identifiers to be used for the elements being separated. Element edges and faces can also be specified with this value.
STRING
node_select[]
This value specifies a selection of nodes identifying where the elements will be separated.
INTEGER
seperation_option
This value specifies the method used to separate elements from nodes. See the remarks below for more information.
LOGICAL
keep_association
This value specifies, when set to TRUE, that new nodes that are created will maintain an association to the model geometry.
Output:
 
 
INTEGER
num_nodes
This value returns the number of nodes created.
STRING
nodes_created[VIRTUAL]
 
 
This value returns a description of the nodes created.
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error.
Error Conditions:
 
See the Status Messages for information on any error values returned by this function.
Remarks:
This function is used in the implementation of the “Finite Elements” switch bar form that is displayed when the action is set to “Modify”, the object is set to “Element”, and the method is set to “Separate”.
Space is internally allocated for the string returned by the output value nodes_created. It is the responsibility of the calling function to free the allocated string storage space.
The integer input value seperation_option can have the following values:
 
Value
Description
 
 
 
 
1
Separate elements at the nodes specified by the input value node_select.
 
2
Separate elements at the element edges specified by the input value element_select.
 
3
Separate element faces at the element faces specified in the input value element_select.
 
4
Separate element faces at the free element edges specified in the input value element_select.
 
5
Separate element faces at the free element faces specified in the input value element_select.
Example:
Please see fem_mod_elem_separate.
   
fem_mod_quad_split_nm
(pattern, auto_manual, element_select, orientation_element, num_selected, num_orientation, num_nodes_created, num_elems_created, num_nodes_deleted, num_elems_deleted, nodes_created, elements_created, nodes_deleted, elements_deleted)
Description:
 
 
This function will split quadrilateral elements in a specified pattern using a selection of elements as input.
Input:
 
 
STRING
pattern[]
This value specifies the pattern into which the quadrilateral elements will be split and should always be set to “nm_quad”.
STRING
auto_manual[]
This value specifies, when set to “Manual”, that the number of entities in the input value element_select be counted to determine how many orientation edges will be needed. This value can accept two values “Auto” or “Manual” and should be set to “Auto” if the input values num_selected and num_orientation equal each other.
STRING
element_select[]
This value specifies a selection of quadrilateral elements to be split.
STRING
orientation_element[]
This value specifies a selection of elements that are used to specify the orientation of the elements to be split.
INTEGER
num_selected
This value specifies the number of elements described in the input value element_select.
INTEGER
num_orientation
This value specifies the number of element edges described in the input value orientation_element.
Output:
 
 
INTEGER
num_nodes_created
This value returns the number of nodes created.
INTEGER
num_elems_created
This value returns the number of elements created.
INTEGER
num_nodes_deleted
This value returns the number of nodes deleted.
INTEGER
num_elems_deleted
This value returns the number of elements deleted.
STRING
nodes_created[VIRTUAL]
 
 
This value returns a description of the created nodes.
STRING
elements_created[VIRTUAL]
 
 
This value returns a description of the created elements.
STRING
nodes_deleted[VIRTUAL]
 
 
This value returns a description of the deleted nodes.
STRING
elements_deleted[VIRTUAL]
 
 
This value returns a description of the deleted elements.
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error.
 
Error Conditions:
 
See the Status Messages for information on any error values returned by this function.
Remarks:
This function is used in the implementation of the “Finite Elements” switch bar form that is displayed when the action is set to “Modify”, the object is set to “Quad”, and the method is set to “Split”.
Space is internally allocated for the string returned by the output values nodes_created, elements_created, nodes_deleted, and elements_deleted. It is the responsibility of the calling function to free the allocated string storage space.
Example:
Please see fem_mod_quad_split_nm.
   
fem_modify_nodes
(node_select, new_node_id, ref_coord_frame, anly_coord_frame, point_select, modify_options, nodes_modified)
Description:
 
 
This function will modify specified node attributes.
Input:
 
 
STRING
node_select[]
This value specifies a selection of nodes to be modified.
STRING
new_node_id[]
This value specifies a selection of node identifiers to be assigned to the modified nodes.
STRING
ref_coord_frame[]
This value specifies an identifier for the reference coordinate frame assigned to the modified nodes.
STRING
anly_coord_frame[]
This value specifies an identifier for the analysis coordinate frame assigned to the modified nodes.
STRING
point_select
This value specifies a selection of points to which the modified nodes will be moved.
INTEGER
modify_options(10)
This value specifies the manner in which the node attributes will be modifies. Each offset in the array of values can be set to 1 to cause the attribute to be modified or to 0 so that the attribute is not modified. See the remarks below for more information.
Output:
 
 
STRING
nodes_modified[VIRTUAL]
 
 
This value returns a description of the modified nodes.
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error.
Error Conditions:
 
See the Status Messages for information on any error values returned by this function.
Remarks:
This function is used in the implementation of the “Finite Elements” switch bar form that is displayed when the action is set to “Modify”, the object is set to “Node”, and the method is set to “Edit”, or “Move”.
Space is internally allocated for the string returned by the output value nodes_modified. It is the responsibility of the calling function to free the allocated string storage space.
The input value modify_options uses the offsets of the array in the following manner:
 
 
Offset
Description
 
 
 
 
1
Modify the id values of the nodes.
 
2
Modify the analysis coordinate frame to which the nodes are assigned.
 
3
Modify the reference coordinate frame to which the nodes are assigned.
 
4
Modify the association of the nodes. This option is currently not implemented.
 
5
Modify the location of the nodes.
 
6
Not used.
 
7
Not used.
 
8
Not used.
 
9
Not used.
 
10
Not used.
Example:
Please see fem_modify_nodes.
   
fem_modify_nodes_offset
(transformation_type, ref_coord_frame, vector_direction, magnitude, reverse_direction, node_select, nodes_modified)
Description:
 
 
This function will move nodes by a specified vector distance.
Input:
 
 
LOGICAL
transformation_type
This value specifies, when set to TRUE, that the move will be curvilinear in the reference coordinate system. If this value is set to FALSE, a cartesian move in the reference coordinate frame will take place.
STRING
ref_coord_frame[]
This value specifies an identifier for the reference coordinate frame in which the move will take place.
STRING
vector_direction[]
This value specifies a vector that defines the direction in which the nodes will be moved. This vector does not affect the distance that the move will take, only the direction.
STRING
magnitude[]
This value specifies how far the nodes will be moved. This argument is ignored if “transformation_type” is set to TRUE.
LOGICAL
reverse_direction
This value specifies, when set to TRUE, that the direction of the input value vector_direction be reversed.
STRING
node_select[]
This value specifies a selection of nodes to be modified.
Output:
 
 
STRING
nodes_modified[VIRTUAL]
 
 
This value will return a description of the nodes that have been modified.
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error.
Error Conditions:
 
See the Status Messages for information on any error values returned by this function.
Remarks:
This function is used in the implementation of the “Finite Elements” switch bar form that is displayed when the action is set to “Modify”, the object is set to “Node”, and the method is set to “Offset”.
Space is internally allocated for the string returned by the output value nodes_modified. It is the responsibility of the calling function to free the allocated string storage space.
Example:
Please see fem_modify_nodes_offset.
   
fem_modify_elems
(new_element_id, new_shape, new_element_type, current_node_select, new_node_select, element_select, modify_options, elements_modified)
Description:
 
 
This function will modify the specified element attributes.
Input:
 
 
STRING
new_element_id[]
This value specifies a selection of new element identifiers to be assigned to the modifies elements.
STRING
new_shape[]
This value specifies a new element shape to assign to the modified elements. See the remarks below for more information. This value is currently not used.
STRING
new_element_type[]
This value specifies a new element topology to assign to the modified elements. See the remarks below for more information.
STRING
current_node_select[]
This value is a selection of nodes describing the current element nodes to be modified.
STRING
new_node_select[]
This value is a selection of nodes describing the new element nodes to which the modified elements will be assigned.
STRING
element_select[]
This value specifies a selection of elements to be modified.
INTEGER
modify_options(10)
This value specifies the manner in which the node attributes will be modifies. Each offset in the array of values can be set to 1 to cause the attribute to be modified or to 0 so that the attribute is not modified. See the remarks below for more information.
Output:
 
 
STRING
elements_modified[VIRTUAL]
 
 
This value returns a description of the modified elements.
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error.
Error Conditions:
 
See the Status Messages for information on any error values returned by this function.
 
 
Remarks:
This function is used in the implementation of the “Finite Elements” switch bar form that is displayed when the action is set to “Modify”, the object is set to “Element”, and the method is set to “Edit”.
Space is internally allocated for the string returned by the output value elements_modified. It is the responsibility of the calling function to free the allocated string storage space.
The input value new_shape can be assigned the following values:
 
 
Point
Bar
Tria
 
Quad
Tet
Wed
 
Hex
Any
 
The input value new_element_type can be assigned the following values:
 
 
Point
Quad9
Hex21
 
Bar2
Quad12
Hex26
 
Bar3
Quad16
Hex27
 
Bar4
Tet4
Hex32
 
Tria3
Tet5
Hex64
 
Tria4
Tet10
Wedge6
 
Tria6
Tet11
Wedge7
 
Tria7
Tet14
Wedge15
 
Tria9
Tet15
Wedge16
 
Tria13
Tet16
Wedge20
 
Quad4
Hex8
Wedge21
 
Quad5
Hex9
Wedge24
 
Quad8
Hex20
Wedge52
The input value modify_options uses the offsets of the array in the following manner:
 
 
Offset
Description
 
 
 
 
1
Modify the id values of the elements.
 
2
Modify the topology of the elements.
 
3
Modify the association of the elements. This option is currently not implemented.
 
4
Modify the connectivity of the elements.
 
5
Not used.
 
6
Not used.
 
7
Not used.
 
8
Not used.
 
9
Not used.
 
10
Not used.
Example:
Please see fem_modify_elems.
 
   
fem_modify_mpc_nodal
(mpc_id, constant, num_terms, dependency_flag, coefficient, node_select, degrees_of_freedom)
Description:
 
 
This function will modify a multi-point constraint which is associated to the specified nodes.
Input:
 
 
INTEGER
mpc_id
This value specifies the id for the multi-point constraint to be modified.
REAL
constant
This value specifies the constant term for the multi-point constraint.
INTEGER
num_terms
This value specifies the number of terms defined for the multi-point constraint.
LOGICAL
dependency_flag(num_terms)
 
 
This value specifies the dependency state for each term of the multi-point constraint. The term will be dependent if the value in dependency_flag is set to TRUE and will be independent if the array value is set to FALSE.
REAL
coefficient(num_terms)
 
 
This value specifies the coefficient used with each term.
STRING
node_select[](num_terms)
 
 
This value specifies a selection of nodes associated with each term.
STRING
degrees_of_freedom[](num_terms)
 
 
This value specifies the degrees of freedom for each term.
Output:
 
 
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error.
Error Conditions:
 
See the Status Messages for information on any error values returned by this function.
Remarks:
This function is used in the implementation of the “Finite Elements” switch bar form that is displayed when the action is set to “Modify”, and the object is set to “MPC”.
Example:
Please see fem_modify_mpc_nodal.
   
fem_modify_mpc_nodal2
(mpc_id, constant, num_terms, dependency_flag, coefficient, node_select, degrees_of_freedom)
Description:
 
 
This function will modify a multi-point constraint which is associated to the specified nodes.
Input:
 
 
INTEGER
mpc_id
This value specifies the id for the multi-point constraint to be modified.
REAL
constant
This value specifies the constant term for the multi-point constraint.
INTEGER
num_terms
This value specifies the number of terms defined for the multi-point constraint.
LOGICAL
dependency_flag(num_terms)
 
 
This value specifies the dependency state for each term of the multi-point constraint. The term will be dependent if the value in dependency_flag is set to TRUE and will be independent if the array value is set to FALSE.
STRING
coefficient(num_terms)
 
 
This value specifies the coefficient used with each term.
STRING
node_select[](num_terms)
 
 
This value specifies a selection of nodes associated with each term.
STRING
degrees_of_freedom[](num_terms)
 
 
This value specifies the degrees of freedom for each term.
Output:
 
 
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error.
Error Conditions:
 
See the Status Messages for information on any error values returned by this function.
Remarks:
This function is used in the implementation of the “Finite Elements” switch bar form that is displayed when the action is set to “Modify,” and the object is set to “MPC.”
Example:
None
   
fem_mod_bar_split
(element_select, num_nodes_created, num_elems_created, num_nodes_deleted, num_elems_deleted, nodes_created, elements_created, nodes_deleted, elements_deleted)
Description:
 
 
This function will split a set of bars in two.
Input:
 
 
STRING
element_select[]
This value specifies a selection of bars to be split.
Output:
 
 
INTEGER
num_nodes_created
This value returns the number of nodes created.
INTEGER
num_elems_created
This value returns the number of elements created.
INTEGER
num_nodes_deleted
This value returns the number of nodes deleted.
INTEGER
num_elems_deleted
This value returns the number of elements deleted.
STRING
nodes_created[VIRTUAL]
 
 
This value returns a description of the created nodes.
STRING
elements_created[VIRTUAL]
 
 
This value returns a description of the created elements.
STRING
nodes_deleted[VIRTUAL]
 
 
This value returns a description of the deleted nodes.
STRING
elements_deleted[VIRTUAL]
 
 
This value returns a description of the deleted elements.
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error.
Error Conditions:
 
See the Status Messages for information on any error values returned by this function.
Remarks:
This function is used in the implementation of the “Finite Elements” switch bar form that is displayed when the action is set to “Modify”, the object is set to “Bar”, and the method is set to “Split”.
Space is internally allocated for the string returned by the output values nodes_created, elements_created, nodes_deleted, and elements_deleted. It is the responsibility of the calling function to free the allocated string storage space.
Example:
Please see fem_mod_bar_split.
   
fem_mod_tria_split
(pattern, auto_manual, element_select, orientation_node, num_nodes_created, num_elems_created, num_nodes_deleted, num_elems_deleted, nodes_created, elements_created, nodes_deleted, elements_deleted)
Description:
 
 
This function will split triangular elements in a specified pattern using a selection of elements and nodes as input.
Input:
 
 
STRING
pattern[]
This value specifies the pattern into which the triangular elements will be split. See the remarks below for more information.
STRING
auto_manual[]
This value specifies, when set to “Manual”, that the number of entities in the input value element_select be counted to determine how many orientation edges will be needed. This value can accept two values “Auto” or “Manual” and the “Manual” setting is active only when the input value pattern is set to either “2_tria” or “Mixed”.
STRING
element_select[]
This value specifies a selection of triangular elements to be split.
STRING
orientation_node[]
This value specifies a selection of nodes that are used to specify the orientation of the nodes in the elements to be split.
Output:
 
 
INTEGER
num_nodes_created
This value returns the number of nodes created.
INTEGER
num_elems_created
This value returns the number of elements created.
INTEGER
num_nodes_deleted
This value returns the number of nodes deleted.
INTEGER
num_elems_deleted
This value returns the number of elements deleted.
STRING
nodes_created[VIRTUAL]
 
 
This value returns a description of the created nodes.
STRING
elements_created[VIRTUAL]
 
 
This value returns a description of the created elements.
STRING
nodes_deleted[VIRTUAL]
 
 
This value returns a description of the deleted nodes.
STRING
elements_deleted[VIRTUAL]
 
 
This value returns a description of the deleted elements
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error.
Error Conditions:
 
See the Status Messages for information on any error values returned by this function.
Remarks:
This function is used in the implementation of the “Finite Elements” switch bar form that is displayed when the action is set to “Modify”, the object is set to “Tria”, and the method is set to “Split”.
Space is internally allocated for the string returned by the output values nodes_created, elements_created, nodes_deleted, and elements_deleted” It is the responsibility of the calling function to free the allocated string storage space.
The input value pattern can have the following values:
 
 
2_tria
Mixed
 
3_tria
3_quad
 
4_tria
 
Example:
Please see fem_mod_tria_split.
   
fem_mod_quad_split
(pattern, auto_manual, element_select, orientation_node, orientation_element, num_nodes_created, num_elems_created, num_nodes_deleted, num_elems_deleted, nodes_created, elements_created, nodes_deleted, elements_deleted)
Description:
 
 
This function will split quadrilateral elements in a specified pattern using a selection of elements and nodes as input.
Input:
 
 
STRING
pattern[]
This value specifies the pattern into which the quadrilateral elements will be split. See the remarks below for more information.
STRING
auto_manual[]
This value specifies, when set to “Manual”, that the number of entities in the input values orientation_node and orientation_element be counted. The number of entities in the input value orientation_node will be counted when the input value pattern is set “2_tria” or “3_quad”. The number of entities in the input value orientation_element will be counted when the input value pattern is set to “2_quad” pr “3_tria”. This value can accept two values, “Auto” or “Manual”.
STRING
element_select[]
This value specifies a selection of quadrilateral elements to be split.
STRING
orientation_node[]
This value specifies a selection of nodes that are used to specify the orientation of the nodes in the elements to be split.
STRING
orientation_element[]
This value specifies a selection of element edges that are used to specify the orientation of the elements to be split.
Output:
 
 
INTEGER
num_nodes_created
This value returns the number of nodes created.
INTEGER
num_elems_created
This value returns the number of elements created.
INTEGER
num_nodes_deleted
This value returns the number of nodes deleted.
INTEGER
num_elems_deleted
This value returns the number of elements deleted.
STRING
nodes_created[VIRTUAL]
 
 
This value returns a description of the created nodes.
STRING
elements_created[VIRTUAL]
 
 
This value returns a description of the created elements.
STRING
nodes_deleted[VIRTUAL]
 
 
This value returns a description of the deleted nodes.
STRING
elements_deleted[VIRTUAL]
 
 
This value returns a description of the deleted elements.
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error.
 
Error Conditions:
 
See the Status Messages for information on any error values returned by this function.
Remarks:
This function is used in the implementation of the “Finite Elements” switch bar form that is displayed when the action is set to “Modify”, the object is set to “Quad”, and the test is set to “Split”.
Space is internally allocated for the string returned by the output values nodes_created, elements_created, nodes_deleted, and elements_deleted. It is the responsibility of the calling function to free the allocated string storage space.
The input value pattern can have the following values:
 
 
2_quad
2_tria
 
3_quad
3_tria
 
4_quad
4_tria
Example:
Please see fem_mod_quad_split.
improve_mesh_2
(input_data_qtt, ac_input_data, mesh_is_acceptable, worst_tet_iter_info, elem_qual_val_min_old, elem_qual_val_min_new, elem_improved_qtt, reason_why_not)
Description:
 
 
This function allows users to improve a Tet mesh for Jacobian values.
Input:
 
 
INTEGER
input_data_qtt
This value specifies the quantity of input data strings in ac_input_data.
STRING[]()
ac_input_data
This value specifies the input data items. The format for each data item is : IDENTIFIER=VALUE. For more information on each of these items, see the description below where the string is found and its value passed to a distinct variable.
Output:
 
 
LOGICAL
mesh_is_acceptable
This value will be set to TRUE if the mesh is acceptable; FALSE if otherwise.
INTEGER
worst_tet_iter_info
This value returns the information on the number of iterations performed. Possible values :
Positive (Good) : The quantity of iterations performed before running out of elements which could be fixed.
Negative (Bad) : The quantity of iterations performed before an interruption occurred. One may re-submit this function in the later case.
REAL
elem_qual_val_min_old
Old (before mesh improvements) minimum normalized global element quality found in the mesh.
REAL
elem_qual_val_min_new
New (after mesh improvements) minimum normalized global element quality found in the mesh.
INTEGER
elem_improved_qtt
This value returns the quantity of elements which were not acceptable, and which were improved. Note that this may include new elements which were not in the original mesh, as multiple passes are performed on the mesh.
STRING [VIRTUAL]
reason_why_not
This value indicates the reason why a mesh improvement could not be attempted: Null string: A mesh enhancement was attempted. String length greater than 0: Reason why a mesh enhancement could not be attempted.
INTEGER
<Return Value>
This function returns a value of 0 if no error occurred.
Remarks:
ac_input_data input examples:
 
Identifier
Typical Value, Description.
HardNode_LpStr
"Node 1:5". List processor string for hard nodes ( not to be modified )
SolidAndElem_LpStr
"Solid 1 Elm 1:#". List processor string for the ele­ments to be considered for a potential improvement. Not only the elements to be improved, but surround­ing elements must be supplied as this function will need to modify them. This list of elements may par­tially fill a geometric entity, or span across geometric bound­aries.
Elements do not all have to be associated to geometry.
When geometric entities are supplied, the associated elements will be considered in addition of those explicitly supplied.
Dump_FN_FEM_Original
"". File name to dump the p3->Aries original mesh to. Empty string if dump not desired.
Dump_FN_FEM_Final
"". File name to dump the p3->Aries final mesh to. Empty string if dump not desired.
CR_Tet_NASTRAN_Verify
"TRUE". TRUE if we wish to consider the "NAS­TRAN Tet Collapse Ratio" criterion as a possible criti­cal quality criterion. FALSE otherwise.
CR_Tet_NASTRAN_ValAccept
"0.01". For the "NASTRAN Tet Collapse Ratio" crite­rion. Value which is acceptable. Worse is not accept­able.
CR_Tet_NASTRAN_Weight
"1.0". For the "NASTRAN Tet Collapse Ratio" crite­rion. The value supplied will dictate the weight of this criterionwith respect to the others.
CR_Tet_NASTRAN_PowerExp
"1.0". For the "NASTRAN Tet Collapse Ratio" crite­rion. This value is the power exponent to be applied to the normalized calculated value for this criterion. Typical values :
1.0 : Linear variation of the normalized value (-1.0 is the worst normalized value, 0.0 is the accep­tance, 1.0 is the best possible normalized value) with the (still) normalized value consid­ered for a weighted ponderation.
Above 1.0 : Increases the effect of being far from 0.0.
Under 1.0 : Decreases the effect of being far from 0.0.
DihedralMax_Tet_Verify
"FALSE". TRUE if we wish to consider the "Tet Max­imum Dihedral Angle" criterion as a possible critical quality criterion. FALSE otherwise.
DihedralMax_Tet_ValAccept
"0.0". For the "Tet Maximum Dihedral Angle" crite­rion. Value which is acceptable. Worse is not accept­able.
DihedralMax_Tet_Weight
"1.0". For the "Tet Maximum Dihedral Angle" crite­rion. The value supplied will dictate the weight of this criterionwith respect to the others.
DihedralMax_Tet_PowerExp
"1.0". For the "Tet Maximum Dihedral Angle" crite­rion. See CR_Tet_NASTRAN_PowerExp.
JacobianMinScaled_Verify
"TRUE". TRUE if we wish to consider the "Mini­mum Element Scaled Jacobian" criterion as a possible critical quality criterion. FALSE otherwise.
JacobianMinScaled_ValAccept
"1.0E-6". For the "Minimum Element Scaled Jacobian" crite­rion. Value which is acceptable. Worse is not accept­able.
JacobianMinScaled_Weight
"1.0". For the "Minimum Element Scaled Jacobian" criterion. The value supplied will dictate the weight of this cri­terionwith respect to the others.
JacobianMinScaled_PowerExp
"1.0". For the "Minimum Element Scaled Jacobian" criterion. See CR_Tet_NASTRAN_PowerExp.
JacobianMinScaled_ElemOrder
"-1". Element shape function polynomial order.
1 : Linear
2 : Quadratic
3 : Cubic
4 : Quartic
5 : Quintic
Here is the list of supported polynomial orders for each element shape :
Point : Any (only 1 gauss point will be consid­ered).
Bar : 1 through 19
Tri : 1 through 5
Quad : 1 through 19
Tet : 1 through 3
Wedge : 1 through 5
Hex : 1 through 19
0..N : Order will be used as specified.
-1 (or any value less than 0 ): The elem_order will be set to :
0 : For Point1.
1 : For Bar2, Tri3, Quad4, Tet4, Wedge6, Hex8.
2 : For Bar3, Tri6, Quad8, Tet10, Wedge15, Hex20.
3 : For Bar4, Tri9, Quad12, Tet16, Wedge24, Hex32.
Thus providing an accuracy sufficient for the element topology.
JacobianMinScaled_Para1dGpQttCrit
"1". Criterion for determining the quantity of Gauss-Legendre quadrature integration points along a 1D parametric direction.
0 : This function will establish a sufficient number of Gauss-Legendre quadrature integration points such that the accuracy (or error) of the quadrature will be for a polynomial one degree higher than the element order (p) :
p : element polynomial shape function order.
O(h^q) : Order of the error of the quadra­ture (subsequent integration).
Thus, to have a precision of the order O(h^p) the error order O(h^q) must be :
q >= p+1
1 : Select the number of points based on a simple common usage rule :
*p_gauss_point_qtt = elem_order + 1 ;
This criterion will have no influence on directions parallel to a triangular face of a Tri/Tet/Wedge element.
JacobianMinScaled_ConsGpNodeAll
"2". In order to establish the minimum/maximum element scaled Jacobian, consider :
0 : Only the Gauss-Legendre quadrature integra­tion points.
1 : Only the nodal positions.
2 : Both the Gauss-Legendre quadrature integra­tion points and nodal positions.
ElemQual_CalcMode
"0". This relates to the mode of combination of the individual criterions to form an element global crite­rion value.
0 : Worst applicable specific criterion normalized value. Use specific criterion ponderation parameters :
CR_Tet_NASTRAN_Weight
CR_Tet_NASTRAN_PowerExp
DihedralMax_Tet_Weight
DihedralMax_Tet_PowerExp
JacobianMin_Weight
JacobianMin_PowerExp
for establishing the worst criterion normalized value. But when establishing the global ele­ment quality normalized value only the *_PowerExp (not the *_Weight ) is used to keep the range of normalized value to be within -1..1.
1 : Ponderated value of all applicable criterions. Use specific criterion ponderation parameters :
CR_Tet_NASTRAN_Weight
CR_Tet_NASTRAN_PowerExp
DihedralMax_Tet_Weight
DihedralMax_Tet_PowerExp
JacobianMin_Weight
JacobianMin_PowerExp
for establishing the worst criterion normalized value as a ponderation of all applicable criteri­ons.
ElemQual_Point_MultFactor
"1.0". For Point elements. The value supplied is a multiplication factor of an element's overall normal­ized quality value according to its topology. Values supplied should be : 0 < X <= 1.0 .
ElemQual_Point_PowerExp
"1.0". For Point elements. This value is the power exponent to be applied to an element's overall nor­malized quality value according to its topology. Typ­ical values :
1.0 : Linear variation of the normalized value (-1.0 is the worst normalized value, 0.0 is the accep­tance, 1.0 is the best possible normalized value) with the (still) normalized value consid­ered for a weighted ponderation.
Above 1.0 : Increases the effect of being far from 0.0.
Under 1.0 : Decreases the effect of being far from 0.0.
ElemQual_Bar_MultFactor
"1.0". For Bar elements. See ElemQual_Point_MultFactor.
ElemQual_Bar_PowerExp
"1.0". For Bar elements. See ElemQual_Point_PowerExp.
ElemQual_Tri_MultFactor
"1.0". For Tri elements. See ElemQual_Point_MultFactor
ElemQual_Tri_PowerExp
"1.0". For Tri elements. See ElemQual_Point_PowerExp.
ElemQual_Quad_MultFactor
"1.0". For Quad elements. See ElemQual_Point_MultFactor
ElemQual_Quad_PowerExp
"1.0". For Quad elements. See ElemQual_Point_PowerExp.
ElemQual_Tet_MultFactor
"1.0". For Tet elements. See ElemQual_Point_MultFactor
ElemQual_Tet_PowerExp
"1.0". For Tet elements. See ElemQual_Point_PowerExp.
ElemQual_Wedge_MultFactor
"1.0". For Wedge elements. See ElemQual_Point_MultFactor
ElemQual_Wedge_PowerExp
"1.0". For Wedge elements. See ElemQual_Point_PowerExp.
ElemQual_Hex_MultFactor
"1.0". For Hex elements. See ElemQual_Point_MultFactor
ElemQual_Hex_PowerExp
"1.0". For Hex elements. See ElemQual_Point_PowerExp.
Mesh_BadElemClusterLayerQtt
“-1”. Options:
-1 : Consider the whole mesh, not just clusters.
0 : Reduce the supplied elements list to only the bad ones.
N : Reduce the supplied elements list to only the bad ones and N layers of element (in supplied list) around them.
Mesh_AssumePerfectMesh
"1". Options :
1 : (TRUE) if we assume a perfect Aries mesh integrity : No loose references...
0 : (FALSE) otherwise, and all loose reference ver­ifications will be performed at the cost of reducing performance. Setting assume_perfect_mesh=0 for large models (10k or more) can multiply the overall time (estab­lishing mesh data structure + fixing flat Tets) by a factor of 5.
Mesh_TrackFeEntLife
"0". Options :
1 : (TRUE) if we wish to track finite element entity (node/element) creation and destruction (hence life). 4 files will be created in the current directory where Patran is launched : DebugNodeNew.txt DebugNodeDel.txt DebugElemNew.txt DebugElemDel.txt . Those files will hold references to node/ele­ments by using their memory adress and node coordinates (but no id). Note that node coordi­nates can change due to projection onto geo­metric entities. To compare these files, first sort them. This can be a valuable tool for find­ing memory leaks.
0 : (FALSE) otherwise. No files created.
Mesh_ConsiderGeometry
"1". Set to 1 (TRUE) if we wish to consider and respect geometric boundaries. New elements will be associated to geometry. 0 (FALSE) otherwise, in which case the new elements will not be associated to geometry.
Mesh_MeshFillsSameDimGeom
"0". Set to 1 (TRUE) if the mesh fills one or many geometries of the same dimensionality. In this case, there also should be elements in the supplied list without an associated geometry, and the supplied list of elements must fill geometries of the same dimen­sionality (solids in this case). 0 (FALSE) otherwise.
Mesh_WorstElemIterMax
"-1". This serves to establish the maximum count of iteration for modifying the mesh for each worst ele­ment found:
-2 : No limit on iterations.
-1 : No preset value. This will be automatically established.
0 : Only evaluate the state of the mesh perform no modification.
0<N : Accomplish N iterations for the worst ele­ment found. A status on the mesh will be sup­plied N+1 times.
Mesh_GeomOriginForNodeProj
"1". Origin of associated geometry :
0 : If no projection of nodal coordinates should be performed. Otherwise (greater than 0) to spec­ify how the geometry reference was created (p_geom->id) in order to select the proper pro­jection functions.
1 : Created from Patran geometric entities.
2 : Created by the TE (Topology Engine). This is the case for meshes created with the Aries (also known as Hybrid mesher.
Mesh_EdgeDelMeshSpaceCheck
"1". This only applies for edges on the mesh bound­ary without an associated geometry of lower order than that of the mesh. Options :
0 : Do not consider mesh space (length/area/vol­ume) variations.
1 : Prevent mesh space reduction due to an edge deletion.
2 : Prevent mesh space increase due to an edge deletion.
3 : Prevent mesh space reduction/increase due to an edge deletion.
Mesh_ElemToleranceRatio
"0.03". Tolerance ratio value for considering a spatial match as a fraction of the longest edge of the element.
Mesh_PostMod_LinEdgeInBadJacElem
"0". This is a flag for handling the remaining bad Jacobian elements at the end of the process (after the last improvement iteration cycle). Options :
0 : Do not linearize edges of elements which are unfixable, or elements which are bad after we reached maximum iterations.
1 : Linearize...
Mesh_ElemMaxImprvAttempts
"-1". Maximum number of attempts allowed for an element before accepting defeat to improve it.. Options :
-1 : No limit on attempts.
0<N : Maximum number of attempts allowed.
Mesh_ElemMaxGenerationLevel
"-1". Maximum number of generations levels (child of...) allowed for an element after which it will no longer be considered for improvement. Original elements have a generation level of 0. Options :
-1 : No limit on the number of generation levels.
0<N : Maximum number of generation levels.
Mesh_AllowLocElemTolRatio
"1". Options :
1 : (TRUE) to allow this function to find another value for Mesh_ElemToleranceRatio for individual element which can not be fixed with the value supplied. This is recom­mended.
0 : (FALSE) otherwise.
Mesh_HistSesInfoLevel
"0". This will control the level of information sent to the history window and session file during the improvement processl. The levels are :
0 : No information.
1 : For each iteration or major step, provide a 1 line status.
2 : (same as 1) + Give more details, such as the rea­son why Tet elements can not be improved.
Mesh_SaveOnlyMaxDimMesh
"1". Options :
1 : TRUE if we only want to save to Patran database the element of the same dimensional­ity as the highest element dimensionality in the mesh, and their associated nodes.
0: FALSE otherwise.
 
 
xample:
modify_mesh_seed
(curve_list, input_option, num_elem, ratio, length1, length2)
Description:
 
 
This function allows users to modify the mesh seed on a curve from type to another. For example, a one way bias seeded edge can be converted to tabular. Users can modify seed on only one curve at a time.
Input:
 
 
STRING
curve_list[VIRTUAL]
This value specifies a list of curves or edges on which mesh seeds need to be modified.
INTEGER
input_option
This value specifies the input option. Valid values are: 1 = uniform mesh seed with num_elem inputs, 3 = one-way-biased mesh seed with num_elem and ratio inputs, and 5 = two-way-biased mesh seed with num_elem and ratio inputs.
INTEGER
num_elem
This value specifies the number of elements for the curve.
REAL
ratio
This value specifies the ratio between the last element and the first. (length2/length1)
REAL
length1
This value specifies the length of the first element.
REAL
length2
This value specifies the length of the last element.
Output:
 
 
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error.
Error Conditions:
 
See the Status Messages for information on any error values returned by this function.
Please see modify_mesh_seed.
modify_mesh_seed_tabular
(curve_list, coord_type, num_nodes, node_locs, point_list)
Description:
 
 
This function will delete elements from the database and the graphics window.
Input:
 
 
STRING
curve_list[VIRTUAL]
This value specifies a list of curves or edges on which mesh seeds need modified.
STRING
coord_type[VIRTUAL]
This value specifies the coordinate type. Valid values are: ``Arc Length’’ and``Parametric’’.
INTEGER
num_nodes
This value specifies the number of nodes in the table. (including 0.0 and 1.0)
REAL
node_locs(VIRTUAL)
This value specifies the node location values. (should be in [0.0, 1.0])
STRING
point_list[VIRTUAL]
This value specifies the list of point locations.
Output:
 
 
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error.
Error Conditions:
 
See the Status Messages for information on any error values returned by this function.
Example:
Please see modify_mesh_seed_tabular.
  
refine_mesh_1
( node_lp_str, edge_length_max, consider_geometry, reason_why_not )
Description:
 
 
This function will split all element edges which are longer than a specified value using the specified node vertices.
Input:
 
 
STRING
node_lp_str
This value specifies a list processor string identifying nodes used as element edge vertices. This string is used to identify valid element edges to be considered for splitting.
REAL
edge_length_max
This value specifies, when positive, the desired maximum edge length. A negative value will be used to specify a fraction and can have a value between 0.0 and 0.1. The absolute value of the negative input will be used to take the fraction of the longest element edge using node vertices amongst the supplied nodes.
INTEGER
consider_geometry
This value when set to one will specify the consideration of geometry. New nodes will be projected and associated with the appropriate geometry. New elements will be associated to geometry. When this value is set to zero, geometry will be ignored.
Output:
 
 
REAL
edge_length_max
This value will return the maximum edge length used to split element edges.
STRING
reason_why_not[VIRTUAL]
 
 
This value will return an empty string if the function completes normally. Otherwise if the function fails this string will specify the reason the operation could not be completed.
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error.
Error Conditions:
 
This function may return a nonzero value if an error occurs.
Remarks:
This function is applicable to Linear/Quadratic/Cubic Bar/Tri/Tet meshes. The supported element topologies are : Bar2, Bar3, Bar4, Tri3, Tri6, Tri9, Tet4, Tet10, Tet16. Bar/Tri/Tet elements will be simultaneously modified when they share edges or faces. This process is iterative, and each step re-establishes the "next" longest edge to be split, considering the edge splits in the previous steps.
split_2n_edge_for_all_elm
(node_a_id, node_b_id, param_pos, consider_geometry, reason_why_not)
Description:
 
 
This function will split an element edge for all Tet/Tri/Bar elements using it.
Input:
 
 
INTEGER
node_a_id
This value specifies the Patran first edge vertex node id.
INTEGER
node_b_id
This value specifies the Patran second edge vertex node id.
REAL
param_pos
This value specifies the parametric position for split. Values range from 0.0 (1st node) to 1.0 (2nd node).
INTEGER
consider_geometry
This value specifies the options : 1 (TRUE) if you wish to consider geometry; 0 (FALSE) otherwise.
STRING [VIRTUAL]
reason_why_not
This value specifies the virtual string containing : "" for this string if the edge was split. Otherwise (string length greater than 0), this string holds the reason why it could not be split.
Output:
 
 
INTEGER
<Return Value>
This function returns a value of 0 if no error occurred.
split_3n_face_for_all_elm
(node_a_id, node_b_id, node_c_id, a_area_coors, consider_geometry, reason_why_not)
Description:
 
 
This function will split an element triangular face for all Tet/Tri elements using it.
Input:
 
 
INTEGER
node_a_id
This value specifies the Patran first triangular face vertex node id.
INTEGER
node_b_id
This value specifies the Patran second triangular face vertex node id.
INTEGER
node_c_id
This value specifies the Patran third triangular face vertex node id.
REAL
a_area_coors
This value specifies the area coordinate parametric position. Values range from 0.0 to 1.0. The sum of the 3 is equal to 1. The coordinates are normally called L1/L2/L3, where each value is equal to the smaller triangle area formed by the mid point and the triangle edge opposite of the corner, divided by the area of the whole triangle.
INTEGER
consider_geometry
This value specifies the options : 1 (TRUE) if we wish to consider geometry; 0 (FALSE) otherwise.
STRING [VIRTUAL]
reason_why_not
This value specifies the virtual string containing : "" for this string if the edge was split. Otherwise (string length greater than 0) this string holds the reason why we could not split it.
Output:
 
 
INTEGER
<Return Value>
This function returns a value of 0 if no error occurred.
str_from_real_signif_digit
(value_real, significant_digit_qtt, digits_before_decimal_qtt_max, leading_0_after_decimal_qtt_max, accept_non_0_int_simplification, c_value_real)
Description:
 
 
This function will split an element edge for all Tet/Tri/Bar elements using it.
Input:
 
 
REAL
value_real
This value specifies the numerical value.
INTEGER
significant_digit_qtt
This value specifies the quantity of significant digits (must be equal or greater to 1). 4 is typical.
INTEGER
digits_before_decimal_qtt_max
 
 
This value specifies the maximum number of digits before the decimal point. 5 is typical.
INTEGER
leading_0_after_decimal_qtt_max
 
 
This value specifies the maximum number of "0" after the decimal point before the 1st significant digit. 3 is typical
INTEGER
accept_non_0_int_simplification
 
 
This value specifies the options (0 is typical) :
1 (TRUE) Case where we wish to consider an integer notation for non-zero values that could be expressed in a floating point notation. This simplification will only occur if the value is exactly equal to its rounded integer value. Note : Be aware that this kind of output may easily vary according to the precision of the numerical value.
0 (FALSE) otherwise. This is recommended for the stability of the output string values.
Output:
 
 
STRING [64 ]
c_value_real
This value returns the string of characters representing the numerical value.
INTEGER
<Return Value>
This function returns a value of 0 if no error occurred.