PCL and Customization > Accessing the Patran Database > Loads
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX''">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX''">   
Loads
Evaluation of Loads on Finite Element Entities
Before exporting load and boundary condition information, Patran should be instructed to re-evaluate all loads. Loads should always be evaluated from within Patran (i.e., from PCL) because loads applied to native Unigraphics geometry cannot be accurately evaluated from external programs. The loads should be re-evaluated for every analysis in case mesh or load definitions changed since the last load evaluation. The function to evaluate all loads within a database is described below.
.
loadsbcs_eval_all
( )
 
Output:
 
 
INTEGER
<Return Value>
If zero, the function is returning a valid load case name. If non-zero, there are no more load case names to return. This function should be called until a non_zero status is returned.
Notes:
Since this function should only be called from within Patran, it is only PCL callable.
Exportation of Load Data
Now that the load cases to translate have been determined and have retrieved all the internal IDs of the loads associated with these load cases, export the load data itself. First, determine the type of load. The <load_type> argument coming from “db_get_lbc” or “db_get_lbc_new” should be sufficient for determining the type of load and how the load should be translated, but if more details about the load type definition is desired, can call “db_get_lbc_type_defn_by_id” or “db_get_lbc_defn”. These functions are described below.
“db_get_lbc” has been superseded by “db_get_lbc_new”. “db_get_lbc_new” must be used if any of its additional arguments are required to define your LBC.
.  
db_get_lbc
( <load_id>, <load_name>, <load_type>, <application_type>, <elem_dimension>, <coord_id>, <dynamic_flag> )
 
Input:
 
 
INTEGER
<load_id>
The internal ID of the load of interest.
Output:
 
 
CHARACTER STRING
 
 
<load_name>
The external name used to reference this load.
INTEGER
<load_type>
The internal ID of this load type. See db_create_lbc_type_defn, 555 for the meaning of this ID.
INTEGER
<application_type>
A code specifying what type of entities this load is applied to and how the load is applied:
1 = load applied to nodes
2 = load applied to elements and constant over the element.
3 = load applied to elements and varying over the element.
INTEGER
<elem_dimension>
The dimensionality of the loaded elements:
1 = line element
2 = surface elements
3 = solid elements
INTEGER
<coord_id>
The ID of the coordinate frame along which the loads are acting. Zero means acting in the global system or not appropriate for this load.
INTEGER
<dynamic_flag>
A flag specifying whether this load is constant with respect to time or frequency (0) or varies with respect to time or frequency (1).
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.
Notes:
The C name differs. It is DbFGetLbc.
int DbFGetLbc ( load_id, load_name, load_type, application_type, elem_dimension, coord_id,
                              dynamic_flag )
int 	load_id
char 	*load_name
int 	*load_type
int 	*application_type
int 	*elem_dimension
int 	*coord_id
int 	*dynamic_flag
 
db_get_lbc_id_for_type
(lbc_type_count, lbc_type_name, lbc_count, lbc_id)
Description:
 
 
This function finds the Load/BC ids for the given Load/BC type names.
Input:
 
 
INTEGER
lbc_type_count
This value specifies the number of Load/BC types.
STRING
lbc_type_name[]()
This array specifies the Load/BC type names. Example : [“Displacement”, ”Pressure”, “Convection”, “Distributed Load”, “Temperature”].
Output:
 
 
INTEGER
lbc_count
This value returns the number of Load/BC.
INTEGER
lbc_id()
This array returns the Load/BC ids.
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate an error.
Error Conditions:
 
-1
This is an internal error status condition. There is no corresponding status message in the message database.
Remarks:
Memory is allocated for the output variable within this function. If memory was allocated prior to the call, it is released prior to re-allocation. Therefore, if this function is used within a loop, there is no need to release the memory of the output variable.
Example:
INTEGER status, lbc_type_count, lbc_count, lbc_id(VIRTUAL), i_lbc
STRING lbc_type_name[31](10)
 
lbc_type_count = 1
lbc_type_name(1) = “Temperature”
status = db_get_lbc_id_for_type(lbc_type_count, lbc_type_name, @
            lbc_count, lbc_id)
IF (0 < status) THEN
   msg_to_form(status, 4, 0, 0, 0.0, ““)
ELSE
   IF (0 > status) THEN
      /* Error information already displayed */
   ELSE
      write_line(“lbc_count =”, lbc_count)
      FOR (i_lbc = 1 TO lbc_count)
         write_line(“lbc_id(“, i_lbc, ”) =”, lbc_id(i_lbc))
      END FOR
   END IF
END IF
 
db_get_lbc_var_value
(lbc_name, lbc_var_name, lbc_var_component, eval_at_time, eval_at_frequency, which_ar, fem_count, fem_type, fem_id, fem_face_or_edge_id, fem_node_pos, fem_val)
Description:
 
 
This function evaluates the finite element entity Load/BC variable values for the given Load/BC name and Load/BC variable name.
Input:
 
 
STRING
lbc_name[]
This value specifies the Load/BC name.
STRING
lbc_var_name[]
This value specifies the Load/BC variable name. Example : [”Bot Surf Pressure”, “Translations <T1 T2 T3>”, “Temperature”].
INTEGER
lbc_var_component
This value specifies the component of the data to extract (values can range from 1 to 3) this value is ignored in the case the data is scalar.
REAL
eval_at_time
This value specifies the time value used for field evaluation.
REAL
eval_at_frequency
This value specifies the frequency value used for field evaluation.
STRING
which_ar[]
This value specifies the string containing digits matching the desired potential application regions ids. Ex: If you want to recover possible content of 2 first application region: “12”. To recover content of 1st application region only: “1”. One can speficy more ids than actually exist: “12345”.
Output:
 
 
INTEGER
fem_count
This value returns the number of finite element entities.
INTEGER
fem_type(
VIRTUAL)
This array returns the finite element entity types :
123 (DbTblNode) : for a node.
124 (DbTblElem) : for a element.
153 (DbTblElemFace) : for a element face (values can range from 1 to 6).
154 (DbTblElemEdge) : for a element edge (values can range from 1 to 12).
INTEGER
fem_id(VIRTUAL)
This array returns the node or element id.
INTEGER
fem_face_or_edge_id( VIRTUAL)
This array returns the element face or edge id.
INTEGER
fem_node_pos(
VIRTUAL)
This array returns the element node position. Will vary between 0 (not applicable) up to the maximum quantity of nodes for this element type. When greater than 0, we have a element variable Load/BC.
REAL
fem_val(VIRTUAL)
This array returns the finite element entity value. Evaluated for spatial dependant field, time dependant field, frequency dependant field if necessary.
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate an error.
Error Conditions:
 
-1
This is an internal error status condition. There is no corresponding status message in the message database.
Remarks:
Memory is allocated for the output variables within this function. If memory was allocated prior to the call, it is released prior to re-allocation. Therefore, if this function is used within a loop, there is no need to release the memory of the output variable.
Example:
INTEGER status, lbc_var_component, fem_count, fem_type(VIRTUAL), @
        fem_id(VIRTUAL), fem_face_or_edge_id(VIRTUAL), @
        fem_node_pos(VIRTUAL, i_fem
STRING lbc_name[31], lbc_var_name[31], which_ar[5]
REAL eval_at_time, eval_at_frequency, fem_val(VIRTUAL)
 
lbc_name = “my_temperature_lbc”
lbc_var_name = “Temperature”
lbc_var_component = 0   /* scalar data */
eval_at_time = 0.0
eval_at_frequency = 0.0
which_ar = “12”
status = db_get_lbc_var_value(lbc_name, lbc_var_name, @
            lbc_var_component, eval_at_time, eval_at_frequency, @
            which_ar, fem_count, fem_type, fem_id, @
            fem_face_or_edge_id, fem_node_pos, fem_val)
IF (0 < status) THEN
   msg_to_form(status, 4, 0, 0, 0.0, ““)
ELSE
   IF (0 > status) THEN
      /* Error information already displayed */
   ELSE
      write_line(“fem_count =”, fem_count)
      FOR (i_fem = 1 TO fem_count)
         write_line(“fem_type(“, i_fem, ”) =”, fem_type(i_fem))
         write_line(“fem_id(“, i_fem, ”) =”, fem_id(i_fem))
         write_line(“fem_face_or_edge_id(“, i_fem, ”) =”, @
                    fem_face_or_edge_id(i_fem))
         write_line(“fem_node_pos(“, i_fem, ”) =”, @
                    fem_node_pos(i_fem))
         write_line(“fem_val(“, i_fem, ”) =”, fem_val(i_fem))
      END FOR
   END IF
END IF
  
db_get_lbc_new
(<load_id>, <load_name>, <application_type>, <load_type>, <target_elem_dim>, <dyn_flag>, <cid_flag>, <scale_factor>, <geo_fem>, <app_reg_couple>, <app_reg_order>, <equiv_flag>, <acid_mod>)
 
Input:
 
 
INTEGER
<load_id>
The internal ID of the load of interest.
Output:
 
 
CHAR
<load_name>[31]
The external name used to reference this load.
INTEGER
<application_type>
A code specifying what type of entities this load is applied to and how the load is applied.
1 = load applied to nodes
2 = load applied to elements and constant over the element
3 = load applied to elements and varying over the element
INTEGER
<load_type>
The internal ID of this load type. See db_create_lbc_type_defn, 555 for the meaning of this ID.
INTEGER
<target_elem_dim>[3]
 
 
The dimensionality of the loaded elements for application regions 1 and 2:
1 = line element
2 = surface elements
3 = solid elements
target_elem_dim[3] is currently unused, but must
be allocated.
INTEGER
<dyn_flag>
A flag specifying whether this load is constant with respect to time or frequency (0) or varies with respect to time or frequency (1).
INTEGER
<cid_flag>
Used to indicate whether an alternate coordinate system is allowed; 0=global, >0 alt coord, -1=use implied local coord.
REAL
<scale_factor>
Load/BC set scale factor.
INTEGER
<geo_fem>[3]
Specifies whether this lbc was originally applied to geometry or fem for each application region. For release 1.4, entity types in multiple application regions are restricted to all geometry or all fem in both regions. 0=geometry, 1=fem.
geo_fem[3] is currently unused, but must be allocated.
INTEGER
<app_reg_couple>
Multiple application region coupling action.
INTEGER
<app_reg_order>
Multiple application region order option.
INTEGER
<equiv_flag>
Flag used to prevent equivalencing between nodes in multiple application regions. Not yet implemented at release 1.4.
0 = equivalencing allowed
1 = equivalencing not allowed
INTEGER
<acid_mod>
Flag used to indicate that this lbc requires the analysis coordinate frame for nodes in its application region to be modified. Not yet implemented at release 1.4.
0 = analysis coordinate frame modification required
1 = analysis coordinate frame modification not required
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.
Notes:
The C name differs. It is DbGetLbc_New.
int DbGetLbc_New (load_id, load_name, application_type, load_type, target_elem_dim, dyn_flag, cid_flag, scale_factor, geo_fem, app_reg_couple, app_reg_order, equiv_flag, acid_mod)
int 	load_id
char 	*load_name
int	*application_type
int 	*load_type
int 	*target_elem_dim
int 	*dyn_flag
int 	*cid_flag
float	*scale_factor
int	*geo_fem
int	*app_region_couple
int	*app_region_order,
int	*equiv_flag
int	*acid_mod
An example of a PCL function which evaluates all loads before spawning an external forward translator is given below.
 
my_spawn
( )
INTEGER status
status = loadsbcs_eval_all()
status = db_commit_raw()
status = utl_process_spawn ( “my_forward_translator argument_1 argument_2”, TRUE )
IF ( utl_process_error ( status ) ) THEN
	utl_display_process_error( status, 3 )
END IF
status = db_start_transaction_raw()
END FUNCTION
 
db_get_lbc_type_defn_by_id
( <load_type_id>, <load_type_name>, <analy_type_id>,
<applic_type>, <glob_flag>, <coord_flag>, <graph_sym>, <scal_vect>, <null_vect>, <num_analy_codes>, <analy_code_ids>, <def_color>, <color_box>, <anchor> )
 
Input:
 
 
INTEGER
<load_type_id>
The ID of the load type of interest.
Output:
 
 
CHARACTER STRING
 
 
<load_type_name>
The name of this load type.
INTEGER
<analy_type_id>
Flag specifying the analysis type.
INTEGER
<applic_type>
Flag specifying the effect of this load type:
0 = Body Load
1 = Boundary Load
INTEGER
<glob_flag
Flag specifying whether the load has global application or not:
0 = Only application region affected
1 = Global load: affects everything
INTEGER
<coord_flag>
Flag specifying whether the load can be oriented in a given local frame or not:
0 = No local frame orientation allowed
1 = Local frame orientation accepted
INTEGER
<graph_sym>
Flag specifying what graphic symbol should be used for this load type. Refer to Table 7‑1 for definition of the graphics symbols.
INTEGER
<scal_vect>
Flag specifying the data form of the load:
0 = scalar
1 = vector
INTEGER
<null_vect>
Flag specifying whether blank components of a vector load are to be interpreted as zeroes (as with forces) or nulls (as with displacements):
0 = interpret blank components as zeroes
1 = interpret blank components as nulls
INTEGER
<num_analy_codes>
The number of analysis codes in which this load type is applicable
INTEGER ARRAY
 
 
<analy_code_ids
The <num_analy_codes> IDs of all the analysis codes for which this load type is valid. The value of <num_analy_codes> (and, the size of this array) cannot be derived. An array size of 1000 should be sufficient.
INTEGER
<def_color>
Flag specifying the default color to be used for this load type. Refer to Table 7‑2 for color definitions.
INTEGER
<color_box>
The number of the color box to be used to modify the load type color. Must range from 601 to 640 and be unique for a given analysis code. Refer to Table 7‑3 for IDs used by Patran.
INTEGER
<anchor>
Flag which specifies the anchor style for vector load types:
1 = anchor at base
2 = anchor at tip
3 = anchor at middle
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.
Notes:
The C name differs. It is DbFGetLbcTypeDefnById.
int DbFGetLbcTypeDefnById ( load_type_id, load_type_name, analy_type_id, applic_type,
	glob_flag, coord_flag, graph_sym, scal_vect, null_vect,
	 num_analy_codes, analy_code_ids, def_color, color_box, anchor )
int 	load_type_id
char 	*load_type_name
int 	*analy_type_id
int 	*applic_type
int 	*glob_flag
int 	*coord_flag
int 	*graph_sym
int 	*scal_vect
int 	*null_vect
int 	*num_analy_codes
int 	analy_code_ids[ ]
int 	*def_color
int 	*color_box
int 	*anchor
 
 
db_get_lbc_defn
(<lbc_type_id>, <lbc_type_name>, <lbc_option_name>, <lbc_class>, <lbc_form>, <global_bc_flag>, <cid_flag>, <scalar_vector>, <null_vector_flag>, <default_color>, <colorbox_id>, <num_app_regions>, <no_data_flag>, <input_data_pcl>, <app_region_pcl>, <target_elem_display>, <dyn_data_form>, <acid_mod>, <equiv_flag>)
 
Note:  
db_get_lbc_defn will replace db_get_lbc_type_defn. This routine will be used to retrieve data for (1) form display, (2) Load/BC set data manipulation, and (3) Load/BC graphical display.
 
Input:
 
 
INTEGER
<lbc_type_id>
Lbc type id, e.g. Displacement id = 6
Output:
 
 
CHAR
<lbc_type_name>[31}
Lbc type name, e.g. "Displacement". See Table 7‑4 for the load ID’s currently being used by Patran.
INTEGER
<lbc_class>
Flag specifying the analysis type.
0 = Structural
1 = Thermal
2 = Fluid Dynamics
INTEGER
<lbc_form>
Flag specifying the effect of this load type:
0 = Body Load
1 = Boundary Load
INTEGER
<global_bc_flag>
Flag specifying whether the load has global application or not:
0 = Only application region affected
1 = Global load: affects everything
INTEGER
<cid_flag>
Flag specifying whether an alternate coordinate system is allowed:
0 = No local frame orientation allowed
1 = Local frame orientation accepted
-1 = Local coord frame implied
INTEGER
<scalar_vector>
Flag specifying the data form of the load:
0 = scalar
1 = vector
INTEGER
<null_vector_flag>
Flag specifying whether blank components of a vector load are to be interpreted as zeroes (as with forces) or nulls (as with displacements):
0 = interpret blank components as zeroes
1 = interpret blank components as nulls
INTEGER
<default_color>
Flag specifying the default color to be used for this load type. Refer to Table 7‑2 for color definitions.
INTEGER
<colorbox_id>
The number of the color box to be used to modify the load type color. Must range from 601 to 640 and be unique for a given analysis code. Refer to Table 7‑3 for IDs used by Patran.
INTEGER
<num_app_regions>
Flag specifying the number of application regions; 0 thru 2.
INTEGER
<no_data_flag>
Flag specifying whether any input data is required:
0 = input data required
1 = no input data required
CHAR
<input_data_pcl>[31]
PCL classname for customized input data form. If blank, standard form is used.
CHAR
<app_region_pcl>[31]
PCL classname for customized select application region form. If blank, standard form is used.
INTEGER
<target_elem_display>
Flag which disables display of Target Element Menu. Note: This can only be used if customized PCL is specified.
0 = do not disable
1 = disable
INTEGER
<dyn_data_form>
Flag specifying whether to use double input data form width for dynamic lbcs:
0 = do not use double width form
1 = use double width form
INTEGER
<acid_mod>
Flag specifying whether this lbc requires the analysis coordinate frame for nodes in its application region to be modified. (Not yet implemented.)
0 = analysis coordinate frame modification required
1 = analysis coordinate frame modification not required
INTEGER
<equiv_flag>
Flag used to prevent equivalencing between nodes in multiple application regions. (Not yet implemented.)
0 = equivalencing allowed
1 = equivalencing not allowed
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.
Notes:
The C name differs. It is DbGetLbcDefn.
int DbGetLbcDefn( load_type_id, load_type_name, load_option_name, class, form,
	glob_flag, coord_flag,  scal_vect, null_vect, def_color, color_box,
	num_app_regions, no_data_flag, input_data_pcl, app_region_pcl,
	target_element_display, dyn_data_form, acid_mod, equiv_flag )
int 	load_type_id
char 	*load_type_name
int 	*load_option_name
int 	*class
int 	*form
int 	*glob_flag
int 	*coord_flag
int 	*scal_vect
int 	*null_vect
int 	*def_color
int 	*color_box
int	*num_app_regions
int	*no_data_flag
char	*input_data_pcl
char	*app_region_pcl
int	*target_element_display
int	*dyn_data_form
int	*acid_mod
int	*equiv_flag
A “get all”/”get next” methodology is used to extract the actual load values. First, call a “get all” function which merely prepares for extraction of the data. Then, make a “get next” call, getting one data value per call, until a non-zero return status is received from the “get next” function (which means that all data values have been extracted). Upon the last call, no valid data will be returned: all data was extracted in the previous calls.
To determine the number of data values associated with a load (possibly for memory allocation purposes), use the following function.
 
db_get_lbc_fem_count
( <load_id>, <num_values> )
 
Input:
 
 
INTEGER
<load_id>
The internal ID of the load of interest.
Output:
 
 
INTEGER
<num_values>
The number of data values associated with the specified load.
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.
Notes:
The C name differs. It is DbFGetLbcFemCount.
int DbFGetLbcFemCount ( load_id, num_values )
 int 	load_id
 int 	*num_values
The load data extraction calls are split into categories according to data type (scalar or vector) and load type (static or dynamic). The functions for static scalar loads are described below. First, make a call to the “get all” function.
Each load has one or more variables associated with it. For example, a force typically has two variables associated with it: a translational vector (F1, F2, F3) and a rotational vector (M1, M2, M3). To distinguish between the different load variables, a load variable id is used. The first variable assigned to a load type will be assigned the load variable id of one, the next, two, and so on. Typically, the translational vector would be assigned to the “Force” load type prior to the rotational vector and thus in our example (F1, F2, F3) would be assigned load variable id 1 and (M1, M2, M3), load variable id 2. But, this is merely a function of the order in which the load variables were defined via the db_create_elem_lbc_var_defn and db_create_nodal_lbc_var_defn functions described in Modifying the Database Using PCL (Ch. 7).
 
lbc_get_one_app_reg_str
(lbc_id, which_ar, add_ass_fem, app_reg_content)
Description:
 
 
This function gets the application region for the given Load/BC id.
Input:
 
 
INTEGER
lbc_id
This value specifies the Load/BC id.
STRING
which_ar[]
This value specifies the string holding digits matching the desired potential application regions ids. Ex: If you want to recover possible content of 2 first application region: “12”. To recover content of 1st application region only: “1”. One can speficy more ids than actually exist: “12345”.
INTEGER
add_ass_fem
This value specifies 1 (TRUE) if we wish to recover associated FEM entities which may not be specified in the application region. This can be usefull to get the FEM entities associated to the geometric entities specified in the application regions. 0 (FALSE) otherwise.
Output:
 
 
STRING
app_reg_content[
VIRTUAL]
This value returns a list processor string of entities in the selected application region ids and associated FEM entities (if desired).
INTEGER
<Return Value>
This function returns a value of 0 when executed successfully and a non zero value to indicate an error.
Error Conditions:
 
-1
This is an internal error status condition. There is no corresponding status message in the message database.
Remarks:
Memory is allocated for the output variable within this function. If memory was allocated prior to the call, it is released prior to re-allocation. Therefore, if this function is used within a loop, there is no need to release the memory of the output variable.
Example:
INTEGER status, lbc_id, add_ass_fem
STRING which_ar[10], app_reg_content[VIRTUAL]
 
lbc_id = 1
which_ar = “12”
add_ass_fem = 1   /* TRUE */
status = lbc_get_one_app_reg_str(lbc_id, which_ar, add_ass_fem, @
            app_reg_content)
IF (0 < status) THEN
   msg_to_form(status, 4, 0, 0, 0.0, ““)
ELSE
   IF (0 > status) THEN
      /* Error information already displayed */
   ELSE
      write_line(“app_reg_content =”, app_reg_content)
   END IF
END IF
The following are tables which will relate the meaning of load variable ids for the load types defined internally by MSC.
Nodal Load Types
ID
Load Type
<load_variable_id>
1
2
6
Displacement
translation vector <T1 T2 T3>
rotation vector <R1 R2 R3>
7
Forces
force vector <F1 F2 F3>
moment vector <M1 M2 M3>
9
Temperature
temperature
 
11
Initial displacement
translation vector <T1 T2 T3>
rotation vector <R1 R2 R3>
12
Initial velocity
translation velocity <v1 v2 v3>
rotational velocity <w1 w2 w3>
13
Velocity
translational velocity <v1 v2 v3>
rotational velocity <w1 w2 w3>
14
Acceleration
translational acceleration <A1 A2 A3>
rotation acceleration <a1 a2 a3>
15
Thermal temperature
temperature
 
18
Heat source
heat source
 
19
Initial temperature
temperature
 
Elemental Load Types
ID
Load Type
Variability
Element Dimensionality
<load_variable_id>
1
2
3
4
1
Incompressible inflow
constant load (<variability>=2)
2d elements (<elem_dir>=2)
velocity
<u v w>
pressure
 
 
1
Incompressible inflow
constant load (<variability>=2)
3d elements (<elem_dir>=3)
velocity
<u v w>
pressure
 
 
2
Incompressible outflow
constant load (<variability>2)
2d elements (<elem_dir>=2)
pressure
 
 
 
2
Incompressible outflow
constant load (<variability>2)
3d elements (<elem_dir>=3)
pressure
 
 
 
3
Incompressible open flow
constant load (<variability>2)
2d elements (<elem_dir>=2)
value
 
 
 
3
Incompressible open flow
constant load (<variability>2)
3d elements (<elem_dir>=3)
value
 
 
 
4
Incompressible solid wall
constant load (<variability>2)
2d elements (<elem_dir>=2)
value
 
 
 
4
Incompressible solid wall
constant load (<variability>2)
3d elements (<elem_dir>=3)
value
 
 
 
5
Symmetry
constant load (<variability>2)
3d elements (<elem_dir>=3)
value
 
 
 
8
Pressure
constant load (<variability>2)
2d elements (2)
top surface pressure
bottom surface pressure
edge pressure
 
8
Pressure
constant load (<variability>2)
3d elements (<elem_dir>=3)
face pressure
 
 
 
8
Pressure
variable load (<variability>3)
2d elements (<elem_dir>=2)
top surface pressure
bottom surface pressure
edge pressure
 
8
Pressure
variable load (<variability>3)
3d elements (<elem_dir>=3)
face pressure
 
 
 
9
Temperature
constant load (<variability>2)
1d elements (<elem_dir>=1)
temperature
 
 
 
9
Temperature
constant load (<variability>2)
2d elements (<elem_dir>=2)
temperature
 
 
 
9
Temperature
constant load (<variability>2)
3d elements (<elem_dir>=3)
temperature
 
 
 
9
Temperature
variable load (<variability>3)
1d elements (<elem_dir>=1)
centroid temperature
cross section axis 1 gradient
cross section axis 2 gradient
 
9
Temperature
variable load (<variability>3)
2d elements (<elem_dir>=2)
top surface temperature
bottom surface temperature
 
 
9
Temperature
variable load (<variability>3)
3d elements (<elem_dir>=3)
temperature
 
 
 
10
Inertial load
constant load (<variability>2)
1d elements (<elem_dir>=1)
translational acceleration <A1 A2 A3>
rotational velocity <w1 w2 w3>
rotational acceleration <a1 a2 a3>
 
10
Inertial load
constant load (<variability>2)
2d elements (<elem_dir>=2)
translational acceleration <a1 a2 a3>
rotational velocity <w1 w2 w3>
rotational acceleration <a1 a2 a3>
 
10
Inertial load
constant load (<variability>2)
3d elements (<elem_dir>=3)
translational acceleration <A1 A2 A3>
rotational velocity <w1 w2 w3>
rotational acceleration <a1 a2 a3>
 
16
Convection
constant load (<variability>2)
2d elements (<elem_dir>=2)
top surface convection
bottom surface convection
edge convection
ambient temperature
16
Convection
constant load (<variability>2)
3d elements (<elem_dir>=3)
convection
ambient temperature
 
 
16
Convection
variable load (<variability>3)
2d elements (<elem_dir>=2)
top surface convection
bottom surface convection
edge convection
ambient temperature
16
Convection
variable load (<variability>3)
3d elements (<elem_dir>=3)
convection
ambient temperature
 
 
17
Heat flux
constant load (<variability>2)
2d elements (<elem_dir>=2)
top surface heat flux
bottom surface heat flux
edge heat flux
 
17
Heat flux
constant load (<variability>2)
3d elements (<elem_dir>=3)
heat flux
 
 
 
17
Heat flux
variable load (<variability>2)
2d elements (<elem_dir>=3)
top surface heat flux
bottom surface heat flux
edge heat flux
 
17
Heat flux
variable load (<variability>2)
3d elements (<elem_dir>=3)
heat flux
 
 
 
18
Heat source
constant load (<variability>2)
2d elements (<elem_dir>=2)
heat source
 
 
 
18
Heat source
constant load (<variability>2)
3d elements (<elem_dir>=3)
heat source
 
 
 
21
Compressible inflow
constant load (<variability>2)
2d elements (<elem_dir>=2)
velocity
<u v w>
pressure
absolute temperature
 
21
Compressible inflow
constant load (<variability>2)
3d elements (<elem_dir>=3)
velocity
<u v w>
pressure
absolute temperature
 
22
Compressible outflow
constant load (<variability>2)
2d elements (<elem_dir>=2)
velocity
<u v w>
pressure
absolute temperature
 
22
Compressible outflow
constant load (<variability>2)
3d elements (<elem_dir>=3)
velocity
<u v w>
pressure
absolute temperature
 
23
Ccompressible open flow
constant load (<variability>2)
2d elements (<elem_dir>=2)
velocity
<u v w>
pressure
absolute temperature
 
23
Compressible open flow
constant load (<variability>2)
3d elements (<elem_dir>=3)
velocity
<u v w>
pressure
absolute temperature
 
24
Compressible solid wall
constant load (<variability>2)
2d elements (<elem_dir>=2)
temperature
heat flux
 
 
24
Compressible solid wall
constant load (<variability>2)
3d elements (<elem_dir>=3)
temperature
heat flux
 
 
 
db_get_all_fem_ss_by_id
( <load_id> )
 
Input:
 
 
INTEGER
<load_id>
The internal ID of the load of interest.
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.
Notes:
The C name differs. It is DbFGetAllFemSSbyId.
int DbFGetAllFemSSbyId ( load_id )
int 	load_id
Then, call the “get next” function until a non-zero return status is received.
 
db_get_next_fem_ss_by_id
( <load_var_id>, <entity_type>, <entity_id>, <sub_entity_id>,<load_value>, <scale_factor>, <node_position>, <region_type> )
 
Output:
 
 
INTEGER
<load_var_id>
The ID of the load variable as described above.
INTEGER
<entity_type>
A flag specifying the entity type to which this load is applied:
123 = node
124 = element
153 = element face
154 = element edge
INTEGER
<entity_id>
The ID of the element or node.
INTEGER
<sub_entity_id>
The ID of the element face or edge. Zero if inappropriate.
REAL
<load_value>
The value of the load at this point in space.
REAL
<scale_factor>
The value of the scale factor applied to this load.
INTEGER
<node_position>
The number of the node at which this load value applies. Appropriate for variable loads only. If there is only one value for an element, <node_position> will be zero.
INTEGER
<region_type>
The number of the region type. Will be one for all loads which only have one application region like forces and pressures. Will be one or more for multi-application region loads such as sliding friction.
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.
Notes:
The C name differs. It is DbFGetNextFemSSbyId.
int DbFGetNextFemSSbyId ( load_var_id, entity_type, entity_id, sub_entity_id, load_value, scale_factor, node_position, region_type )
int 	*load_var_id
int 	*entity_type
int 	*entity_id
int 	*sub_entity_id
float 	*load_value
float 	*scale_factor
int 	*node_position
int 	*region_type
The “get all”/”get next” functions used for static vector loads are as follows. First, make a call to the “get all” function.
 
db_get_all_fem_sv_by_id
( <load_id> )
 
Input:
 
 
INTEGER
<load_id>
The internal ID of the load of interest.
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.
Notes:
The C name differs. It is DbFGetAllFemSVbyId.
int DbFGetAllFemSVbyId ( load_id )
int 	load_id
Then, call the “get next” function until a non-zero return status is received.
 
db_get_next_fem_sv_by_id
( <load_var_id>, <entity_type>, <entity_id>, <sub_entity_id>, <load_value>, <null_vector>, <scale_factor>, <node_position>, <region_type> )
 
Output:
 
 
INTEGER
<load_var_id>
The ID of the load variable as described above.
INTEGER
<entity_type>
A flag specifying the entity type to which this load is applied:
123 = node
124 = element
153 = element face
154 = element edge
INTEGER
<entity_id>
The ID of the element or node.
INTEGER
<sub_entity_id>
The ID of the element face or edge. Zero if inappropriate.
REAL ARRAY
<load_value>
The values of the three components of the vector load at this point in space.
INTEGER ARRAY
 
 
<null_vector>
An array of null flags for the three components of the vector. -1 means the component field was left blank; 0 means that data was entered into the component field.
REAL
<scale_factor>
The value of the scale factor applied to this load.
INTEGER
<node_position>
The number of the node at which this load value applies. Appropriate for variable loads only. If there is only one value for an element, <node_position> will be zero.
INTEGER
<region_type>
The number of the region type. Will be one for all loads which only have one application region like forces and pressures. Will be one or more for multi-application region loads such as sliding friction.
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.
Notes:
The C name differs. It is DbFGetNextFemSVbyId.
int DbFGetNextFemSVbyId ( load_var_id, entity_type, entity_id, sub_entity_id, load_value , null_vector, scale_factor, node_position, region_type )
int 	*load_var_id
int 	*entity_type
int 	*entity_id
int 	*sub_entity_id
float 	load_value [3]
int 	null_vector [3]
float 	*scale_factor
int 	*node_position
int 	*region_type
The “get all”/”get next” functions used for dynamic scalar loads are as follows. First, make a call to the “get all” function
db_get_all_fem_ds_by_id
( <load_id> )
 
Input:
 
 
INTEGER
<load_id>
The internal ID of the load of interest.
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.
Notes:
The C name differs. It is DbFGetAllFemDSbyId.
int DbFGetAllFemDSbyId ( load_id )
int	load_id 
Then, call the “get next” function until a non-zero return status is received.
db_get_next_fem_ds_by_id
( <load_var_id>, <entity_type>, <entity_id>, <sub_entity_id>, <load_value>, <dynamic_field>, <scale_factor>, <node_position>, <region_type> )
 
Output:
 
 
INTEGER
<load_var_id>
The ID of the load variable as described above.
INTEGER
<entity_type>
A flag specifying the entity type to which this load is applied:
123 = node
124 = element
153 = element face
154 = element edge
INTEGER
<entity_id>
The ID of the element or node.
INTEGER
<sub_entity_id>
The ID of the element face or edge. Zero if inappropriate.
REAL
<load_value>
The value of the load at this point in space.
INTEGER
<dynamic_field>
The ID of the field expressing the time of frequency dependence of the load. Zero implies that the load is constant over time or frequency.
REAL
<scale_factor>
The value of the scale factor applied to this load.
INTEGER
<node_position>
The number of the node at which this load value applies. Appropriate for variable loads only. If there is only one value for an element, <node_position> will be zero.
INTEGER
<region_type>
The number of the region type. Will be one for all loads which only have one application region like forces and pressures. Will be one or more for multi-application region loads such as sliding friction.
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.
Notes:
The C name differs. It is DbFGetNextFemDSbyId.
int DbFGetNextFemDSbyId ( load_var_id, entity_type, entity_id, sub_entity_id, load_value, dynamic_field, scale_factor, node_position, region_type )
int 	*load_var_id
int 	*entity_type
int 	*entity_id
int 	*sub_entity_id
float 	*load_value
int 	*dynamic_field
float 	*scale_factor
int 	*node_position
int 	*region_type
The “get all”/”get next” functions used for dynamic vector loads are as follows. First, make a call to the “get all” function.
 
db_get_all_fem_dv_by_id
( <load_id> )
 
Input:
 
 
INTEGER
<load_id>
The internal ID of the load of interest.
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.
Notes:
The C name differs. It is DbFGetAllFemDVbyId.
int DbFGetAllFemDVbyId ( load_id )
int 	load_id
Then, call the “get next” function until a non-zero return status is received
.
db_get_next_fem_dv_by_id
( <load_var_id>, <entity_type>, <entity_id>, <sub_entity_id>, <load_value>, <dynamic_field>, <null_vector>, <scale_factor>, <node_position>, <region_type> )
 
Output:
 
 
INTEGER
<load_var_id>
The ID of the load variable as described above.
INTEGER
<entity_type>
A flag specifying the entity type to which this load is applied:
123 = node
124 = element
153 = element face
154 = element edge
INTEGER
<entity_id>
The ID of the element or node.
INTEGER
<sub_entity_id>
The ID of the element face or edge. Zero if inappropriate.
REAL ARRAY
<load_value>
The values of the three components of the vector load at this point in space.
INTEGER ARRAY
 
 
<dynamic_field>
The three IDs of the fields referenced to express the time or frequency dependence of each of the vector components. Zero implies that the value for that component is constant over time or frequency.
INTEGER ARRAY
 
 
<null_vector>
An array of null flags for the three components of the vector. -1 means the component field was left blank; 0 means that data was entered into the component field.
REAL
<scale_factor>
The value of the scale factor applied to this load.
INTEGER
<node_position>
The number of the node at which this load value applies. Appropriate for variable loads only. If there is only one value for an element, <node_position> will be zero.
INTEGER
<region_type>
The number of the region type. Will be one for all loads which only have one application region like forces and pressures. Will be one or more for multi-application region loads such as sliding friction.
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.
Notes:
The C name differs. It is DbFGetNextFemDVbyId.
int DbFGetNextFemDVbyId ( load_var_id, entity_type, entity_id, sub_entity_id,
	load_value , dynamic_field, null_vector, scale_factor, node_position,
	 region_type )
int 	*load_var_id
int 	*entity_type
int 	*entity_id
int 	*sub_entity_id
float 	load_value [3]
int 	dynamic_field [3]
int 	null_vector [3]
float 	*scale_factor
int 	*node_position
int 	*region_type
  
db_get_lbc_fem_data
( <lbc_id>, <num_entities>, <entity_type>, <entity_id>, <entity_subid>, <node_position>, <app_region_id>, <nvar>, <variable_ids>, <data_type>, <scalar_vector>, <dynamic_flag>, <integer_value>, <real_value>, <field_id>, <node_ids>, <dyn_field_ids> )
 
Output:
 
 
INTEGER
<lbc_id>
The internal ID of the load of interest.
INTEGER
<num_entities>
Number of entities times the number of node positions.
INTEGER
<entity_type>[]
Entity types:
123 = node
124 = element
153 = element face
154 = element edge
INTEGER
<entity_id>[]
The ID of the element or node.
INTEGER
<entity_subid>[]
The ID of the element face or edge. Zero if inappropriate.
INTEGER
<node_position>
Entity node positions. The number of the node at which this load value applies. Appropriate for variable loads only. If there is only one value for an element, the node position will be zero.
INTEGER
<app_region_id>[]
Input data variable ids for each variable.
INTEGER
<nvar>[]
The number of input variables for each entity.
INTEGER
<variable_ids>[][nvar]
 
 
Input data variable ids for each variable.
INTEGER
<data_type>[][nvar]
 
 
Data types for each variable. Valid types are:
0 = real/field
1 = integer
3 = real value
7 = field id
5 = node id
INTEGER
<scalar_vector>[][nvar]
 
 
Scalar or vector flag for each variable:
0 = scalar
1 = vector
INTEGER
<dynamic_flag>[][nvar]
 
 
Indicates if there are dynamic fields for each variable:
0 = no dynamic fields
1 = dynamic fields
INTEGER
<integer_value>[][nvar]
 
 
Integer values for each variable.
REAL
<real_value>[][invar][3]
 
 
Real values for each variable.
INTEGER
<field_id>[][nvar][3]
 
 
Fields ids for each variable.
INTEGER
<node_ids>[][nvar]
 
 
Node ids for each variable.
INTEGER
<dyn_field_ids>[][nvar][3]
 
 
Dynamic field ids for each variable.
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.
Notes:
See Patran Element Library (Ch. 15) in the Reference Manual - Part III for the definitions of the face and edge IDs. Most analysis codes specify face or edge loads with analysis code specific edge or face IDs, with node numbering or node IDs. The description of the face and edge IDs in the Element Library will allow the development of a mapping between Patran’s edge and face IDs and the analysis code’s method for specifying these types of loads. The Patran convention is that edge and face loads are always positive inward. For more on the exportation or evaluation of data fields, review Data Fields, 643.
Importation of Load Data
There are four steps to adding a load or boundary condition to a Patran database.
1. Define the load.
2. Assign a global attributes to the load.
3. Assign effected entities to the load.
4. Create a finite element/node table which contains the value applied to each and every effected finite element/node.
 
db_create_lbc_new
(<lbc_name>, <lbc_category>, <lbc_type_id>, <target_elem_dim>, <dyn_flag>, <cid_flag>, <scale_factor>, <geo_fem>, <app_region_couple>, <app_region_order>, <equiv_flag>, <acid_mod>, <lbc_id>)
 
Input:
 
 
CHAR
<lbc_name>[31]
The external name used to reference this load.
INTEGER
<lbc_category>
A code specifying what type of entities this load is applied to and how the load is applied.
1 = load applied to nodes
2 = load applied to elements and constant over the element
3 = load applied to elements and varying over the element
INTEGER
<lbc_type_id>
The ID of the load type of this load. See Table 7‑4 for the load ID’s currently being used by Patran.
INTEGER
<target_elem_dim>[3]
 
 
The dimensionality of the loaded elements for each application region. Set target_elem_dim[2] to zero if only one application region. Set target_elem_dim[3] to zero (not currently being used).
1 = line element
2 = surface element
3 = solid element
INTEGER
<dyn_flag>
A flag specifying whether this load is constant with respect to time or frequency (0) or varies with respect to time or frequency (1).
INTEGER
<cid_flag>
Used to indicate whether an alternate coordinate system is allowed; 0=global, >0 alt coord, -1=use implied local coord
REAL
<scale_factor>
Load set scale factor
INTEGER
<geo_fem>[3]
A flag specifying whether this lbc was originally applied to geometry or fem for each application region. Set geo_fem[2] to zero if only one application region. Set geo_fem[3] to zero (not currently being used).
0 = geometry
1 = fem
INTEGER
app_region_couple
 
 
Multiple application region coupling action. Used for multiple application region LBCs only. Meaning of value is determined by application. Set to zero if only one application region.
INTEGER
app_region_order
 
 
Multiple application region order option. Used for multiple application region LBCs only. Meaning of value is determined by application. Set to zero if only one application region.
INTEGER
<equiv_flag>
Used to prevent equivalencing between nodes in multiple application regions:
0 = don’t prevent
1 = prevent
INTEGER
<acid_mod>
Flag which says that this lbc requires the analysis coordinate frame for nodes to be modified:
0 = don’t modify
1 = modify
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.
Notes:
The C prototype for this function is:
   int DbCreateLbc_New
      (
      char	 *  lbc_name,
      int 	 lbc_category,
      int 	 lbc_type_id,
      int 	 *  target_elem_dim,
      int 	 dyn_flag,
      int 	 cid_flag,
      double	 scale_factor,
      int	 *  geo_fem,
      int	 app_region_couple,
      int	 app_region_order,
      int	 equiv_flag,
      int	 acid_mod,
      int	 *  lbc_id
      );
The function used to define the global properties for a static vector load is as follows:
 
db_create_lbc_sv
( <load_id>, <num_variables>, <variable_ids>, <real_values>, <spatial_fields>, <null_flags>, <scale_factors> )
 
Note:  
This function is still usable, but obsolete. Use db_create_lbc_input_data, 733 instead.
 
Input:
 
 
INTEGER
<load_id>
The internal ID of the load of interest.
INTEGER
<num_variables>
The number of load variables defined for this load.
INTEGER ARRAY
 
 
<variable_ids>
The IDs of the <num_variables> load variables defined for this load. See db_create_nodal_lbc_var_defn, 559 and db_create_elem_lbc_var_defn, 558 for details about the load variable IDs.
REAL ARRAY
<real_values>
The values for the 3 components for each of the <num_variables> load variables. If a corresponding spatial field reference exists, this load value is meaningless.
INTEGER ARRAY
 
 
<spatial_fields>
The spatially varying field references for the 3 components for each of the <num_variables> load variables. Zero signifies that there is no spatial variance in the load and the corresponding <real_values> value should be used. If there is a spatial field reference, the corresponding <real_values> value should be ignored.
INTEGER ARRAY
 
 
<null_flags>
The null component flags for the 3 components for each of the <num_variables> load variables. -1 means that no data was filled in for that vector component, whereas 0 means that data was input for the corresponding vector component.
REAL ARRAY
<scale_factors>
The <num_variables> scale factors to be applied to each of the load variables.
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.
Notes:
The C name differs. It is DbFCreateLbcSV.
int DbFCreateLbcSV ( load_id, num_variables, variable_ids, real_values, spatial_fields, null_flags, scale_factors )
int 	load_id
int 	num_variables
int 	variable_ids [ ]
float 	real_values [ ][3]
int 	spatial_fields [ ][3]
int 	null_flags [ ][3]
float 	scale_factors [ ]
 
db_create_lbc_input_data
( <lbc_id>, <variable_id>, <data_type>, <scalar_or_vector>, <dynamic_flag>, <eval_flag>, <integer_value>,<char_value>, <real_value>, <field_id>, <dyn_field_id>, app_region_ids>, <node_id> )
 
Input:
 
 
INTEGER
<lbc_id>
The internal ID of the load.
INTEGER
variable_id
Input data variable id assigned when db is stuffed for this lbc_type_id. See lbc_defn_create.lbc_var_defn, 565.
INTEGER
data_type
Specifies datatype for this databox:
0 = real/field
1 = integer
3 = real value
7 = field id
5 = node id
INTEGER
scalar_vector
If this is a real number/field then this flag indicates whether it is scalar or vector:
0 = scalar
1 = vector
INTEGER
dynamic_flag
Specifies static or dynamic load:
0 = static
1 = dynamic
INTEGER
eval_flag
Used to determine if the data requires evaluation (the data type is a field). If the data for this variable is constant then no evaluation is needed.
0 = evaluation not required
1 = evaluation required
INTEGER
integer_value
The value of the integer variable if data_type is integer.
CHAR
char_value[31]
The character string if data_type is character.
REAL
real_value[3]
The real values (1 if scalar, 3 if vector) if data_type is real/field. If scalar, set real[2] and [3] to zero.
INTEGER
field_id[3]
The field ids (1 if scalar, 3 if vector) if data_type is real/field. If scalar, set field_id[2] and [3] to zero.
INTEGER
dyn_field_id[3]
The dynamic field ids (1 if scalar, 3 if vector) if data_type is real/field. If scalar, set dyn_field_id[2] and [3] to zero.
INTEGER
app_region_ids[3]
The application region ids to which the load is to be applied. Set app_region_ids[3] to zero (not currently being used). The load need not be applied to both application regions. Always set app_region_ids[1] to the first loaded application region. Always set app_region_ids[2] to the second loaded application region, or zero if only one application region is loaded.
INTEGER
node_id
The node id if data_type is node.
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.
Notes:
The C name differs. It is DbCreateLbcInputData.
int DbCreateLbcInputData( lbc_id, variable_id, data_type, scalar_or_vector, dynamic_flag, eval_flag, integer_value, char_value, real_value, field_id, dyn_field_id, app_region_ids, node_id )
int	lbc_id
int	variable_id
int	data_type
int	scalar_or_vector
int	dynamic_flag
int	eval_flag
int	integer_value
char	*char_value
float	*real_value
int	*field_id
int	*dyn_field_id
int	*app_region_ids
int	node_id 
In order to define all the members of the application region upon which the load is acting, the following function must be used.
.
db_create_lbc_app_region
( <load_id>, <region_type>, <entity_type>, <entity_id>, <sub_entity_id> )
 
Input:
 
 
INTEGER
<load_id>
The internal ID of the load.
INTEGER
<region_type>
A code specifying the region type:
1 = the standard application region
INTEGER
<entity_type>
A code specifying the type of entity the load was originally applied to:
1 = point
2 = curve
3 = surface
4 = solid
123 = node
124 = element
153 = face of element
154 = edge of element
INTEGER
<entity_id>
The ID of the main entity, i.e., a point, curve, surface, solid, node or element ID.
INTEGER
<sub_entity_id>
The ID of the sub entity ID, i.e., a element face or element edge ID.
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.
Notes:
The C name differs. It is DbFCreateLbcAppRegion.
int DbFCreateLbcAppRegion ( load_id, region_type, entity_type, entity_id, sub_entity_id )
int 	load_id
int 	region_type
int 	entity_type
int 	entity_id
int 	sub_entity_id
 
db_create_bulk_lbc_app_region_n
( <lbc_id>, <app_region_id>, <count>, <entity_type>, <entity_id>, <entity_subid>, <app_region_set> )
 
Input:
 
 
INTEGER
<lbc_id>
 
INTEGER
<app_region_id>
 
INTEGER
<count>
 
INTEGER
<entity_type>[count]
 
 
A code specifying the type of entity the load was originally applied to:
1 = point
2 = curve
3 = surface
4 = solid
123 = node
124 = element
153 = face of element
154 = edge of element
INTEGER
<entity_id>[count}
The ID of the main entity, i.e., a point, curve, surface, solid, node or element ID.
INTEGER
<entity_subid>[count]
 
 
The ID of the sub entity ID, i.e., a element face or element edge ID.
INTEGER
<app_region_set>[count]
 
 
Used for two application regions only. If there is more than one set of entities in the application region then this denotes which set they belong to. Input 0 if only one application region
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.
Notes:
The C name differs. It is DbCreateBulkLbcAppRegion_New.
int DbCreateBulkLbcAppRegion_New( lbc_id, app_region_id, count, entity_type, entity_id, entity_subid, app_region_set )
int	lbc_id
int	app_region_id
int	count
int	*entity_type
int	*entity_id
int	*entity_subid
int	*app_region_set
The fourth step in creating loads in the database is to create the finite element/node table which will contain the values of the load for each loaded finite element or node. The functions which create the finite element/node tables are grouped according to data type and variability of the load just like the functions which define the global properties of a load. The function which builds the finite element/node table for static scalar loads is described below
db_create_fem_ss
( <load_id>, <num_points>, <variable_ids>, <entity_types>, <entity_ids>, <sub_entity_ids>, <real_values>, <scale_factors>, <nodal_positions>, <region_types> )
 
Input:
 
 
INTEGER
<load_id>
The internal ID of this load.
INTEGER
<num_points>
The number of data points defined for this load.
INTEGER ARRAY
 
 
<variable_ids>
The <num_points> load variable IDs for all the data points.
INTEGER ARRAY
 
 
<entity_types>
The entity type codes for each of the data points:
123 = node
124 = element
153 = element face
154 = element edge
INTEGER ARRAY
 
 
<entity_ids>
The IDs of the main loaded entity (node or element ID) for all the data points.
INTEGER ARRAY
 
 
<sub_entity_ids>
The IDs of the loaded sub entities (element edge or face numbers) for all the data points. Zero if not applicable.
REAL ARRAY
<real_values>
The real values of the load for all the data points. The scale factors should incorporated into this value.
REAL ARRAY
<scale_factors>
The original scale factors applied to all the data points. These factors should already be incorporated into the <real_values> array, so these values are somewhat redundant.
INTEGER ARRAY
 
 
<nodal_positions>
The type of region being loaded. Always 1, for now.
INTEGER ARRAY
 
 
<region_types>
The type of region being loaded. Always 1, for now.
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.
Notes:
The C name differs. It is DbFCreateFemSS.
int DbFCreateFemSS ( load_id, num_points, variable_ids, entity_types, entity_ids, sub_entity_ids, real_values, scale_factors, nodal_positions, region_types )
int 	load_id
int 	num_points
int 	variable_ids [ ]
int 	entity_types [ ]
int 	entity_ids [ ]
int 	sub_entity_ids [ ]
float 	real_values [ ]
float 	scale_factors [ ]
int 	nodal_positions [ ]
int 	region_types [ ]
The function which builds the finite element/node table for static vector loads is described below.
 
db_create_fem_sv
( <load_id>, <num_points>, <variable_ids>, <entity_types>, <entity_ids>, <sub_entity_ids>, <real_values>, <null_flags>, <scale_factors>, <nodal_positions>, <region_types> )
 
Input:
 
 
INTEGER
<load_id>
The internal ID of this load.
INTEGER
<num_points>
The number of data points defined for this load.
INTEGER ARRAY
 
 
<variable_ids>
The <num_points> load variable IDs for all the data points.
INTEGER ARRAY
 
 
<entity_types>
The entity type codes for each of the data points:
123 = node
124 = element
153 = element face
154 = element edge
INTEGER ARRAY
 
 
<entity_ids>
The IDs of the main loaded entity (node or element ID) for all the data points.
INTEGER ARRAY
 
 
<sub_entity_ids>
The IDs of the loaded sub entities (element edge or face numbers) for all the data points. Zero if not applicable.
REAL ARRAY
<real_values>
The real values of the 3 components of the load for all the data points. The scale factors should incorporated into this value.
INTEGER ARRAY
 
 
<null_flags>
A flag for each of the 3 components of load for all the data points specifying whether data was input for that component (0) or the component was left blank (-1).
REAL ARRAY
<scale_factors>
The original scale factors applied to all the data points. These factors should already be incorporated into the <real_values> array, so these values are somewhat redundant.
INTEGER ARRAY
 
 
<nodal_positions>
The node numbering expressing where the particular values are being applied. Zero if the load is constant over the element or the load is being applied directly to nodes.
INTEGER ARRAY
 
 
<region_types>
The type of region being loaded. Always 1, for now.
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.
Notes:
The C name differs. It is DbFCreateFemSV.
int DbFCreateFemSV ( load_id, num_points, variable_ids, entity_types, entity_ids, sub_entity_ids, real_values, null_flags, scale_factors, nodal_positions, region_types )
int 	load_id
int 	num_points
int 	variable_ids [ ]
int 	entity_types [ ]
int 	entity_ids [ ]
int 	sub_entity_ids [ ]
float 	real_values [ ][3]
int 	null_flags [ ][3]
float 	scale_factors [ ]
int 	nodal_positions [ ]
int 	region_types [ ]
The function which builds the finite element/node table for dynamic scalar loads is described below.
 
db_create_fem_ds
( <load_id>, <num_points>, <variable_ids>, <entity_types>, <entity_ids>, <sub_entity_ids>, <real_values>, <dynamic_fields>, <scale_factors>, <nodal_positions>, <region_types> )
  
Input:
 
 
INTEGER
<load_id>
The internal ID of the load.
INTEGER
<num_points>
The number of data points defined for this load.
INTEGER ARRAY
 
 
<variable_ids>
The <num_points> load variable IDs for all the data points.
INTEGER ARRAY
 
 
<entity_types>
The entity type codes for each of the data points:
123 = node
124 = element
153 = element face
154 = element edge
INTEGER ARRAY
 
 
<entity_ids>
The IDs of the main loaded entity (node or element ID) for all the data points.
INTEGER ARRAY
 
 
<sub_entity_ids>
The IDs of the loaded sub entities (element edge or face numbers) for all the data points. Zero if not applicable.
REAL ARRAY
<real_values>
The real values of the load for all the data points. The scale factors should incorporated into this value.
INTEGER ARRAY
 
 
<dynamic_fields>
The dynamic field references for all the data points. Zero implies that the load is constant over time or frequency.
REAL ARRAY
<scale_factors>
The original scale factors applied to all the data points. These factors should already be incorporated into the <real_values> array, so these values are somewhat redundant.
INTEGER ARRAY
 
 
<nodal_positions>
The node numbering expressing where the particular values are being applied. Zero if the load is constant over the element or the load is being applied directly to nodes.
INTEGER ARRAY
 
 
<region_types>
The type of region being loaded. Always 1, for now.
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.
Notes:
The C name differs. It is DbFCreateFemDS.
int DbFCreateFemDS ( load_id, num_points, variable_ids, entity_types, entity_ids, sub_entity_ids, real_values, dynamic_fields, scale_factors, nodal_positions, region_types )
int 	load_id
int 	num_points
int 	variable_ids [ ]
int 	entity_types [ ]
int 	entity_ids [ ]
int 	sub_entity_ids [ ]
float 	real_values [ ]
int 	dynamic_fields [ ]
float 	scale_factors [ ]
int 	nodal_positions [ ]
int 	region_types [ ]
The function which builds the finite element/node table for dynamic vector loads is described below.
 
db_create_fem_dv
( <load_id>, <num_points>, <variable_ids>, <entity_types>, <entity_ids>, <sub_entity_ids>, <real_values>, <dynamic_fields>, <null_flags>, <scale_factors>, <nodal_positions>, <region_types> )
 
Input:
 
 
INTEGER
<load_id>
The internal ID of the load.
INTEGER
<num_points>
The number of data points defined for this load.
INTEGER ARRAY
 
 
<variable_ids>
The <num_points> load variable IDs for all the data points.
INTEGER ARRAY
 
 
<entity_types>
The entity type codes for each of the data points:
123 = node
124 = element
153 = element face
154 = element edge
INTEGER ARRAY
 
 
<entity_ids>
The IDs of the main loaded entity (node or element ID) for all the data points.
INTEGER ARRAY
 
 
<sub_entity_ids>
The IDs of the loaded sub entities (element edge or face numbers) for all the data points. Zero if not applicable.
REAL ARRAY
<real_values>
The real values of the 3 components of the load for all the data points. The scale factors should incorporated into this value.
INTEGER ARRAY
 
 
<dynamic_fields>
The dynamic field references for the 3 components of the load for all the data points. Zero implies that the component of the data point load is constant with respect to time or frequency.
 
 
INTEGER ARRAY
 
 
<null_flags>
A flag for each of the 3 components of load for all the data points specifying whether data was input for that component (0) or the component was left blank (-1).
 
 
 
INTEGER ARRAY
 
 
<region_types>
The type of region being loaded. Always 1, for now.
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.
Notes:
The C name differs. It is DbFCreateFemDV.
int DbFCreateFemDV ( load_id, num_points, variable_ids, entity_types, entity_ids, sub_entity_ids, real_values, dynamic_fields, null_flags, scale_factors, nodal_positions, region_types )
int 	load_id
int 	num_points
int 	variable_ids [ ]
int 	entity_types [ ]
int 	entity_ids [ ]
int 	sub_entity_ids [ ]
float 	real_values [ ][3]
int 	dynamic_fields [ ][3]
int 	null_flags [ ][3]
float 	scale_factors [ ]
int n	nodal_positions [ ]
int 	region_types [ ]
  
db_create_lbc_fem_data
( <lbc_id>, <num_ent>, <entity_type>, <entity_id>, <entity_subid>, <node_position>, <app_region_id>, <nvar>, <variable_id>, <data_type>, <scalar_vector>, <dynamic_flag>, <integer_value>, <real_value>, <dyn_field_id> )
 
Input:
 
 
INTEGER
<lbc_id>
The internal ID of this load.
INTEGER
<num_ent>
Number of entities times the number of node positions in each app region.
INTEGER
<entity_type>[
The entity type codes for each of the data points:
123 = node
124 = element
153 = element face
154 = element edge
INTEGER
<entity_id>[ ]
The IDs of the main loaded entity (node or element ID) for all the data points.
INTEGER
<entity_subid>[ ]
The IDs of the loaded sub entities (element edge or face numbers) for all the data points. Zero if not applicable.
INTEGER
<node_position>[ ]
The node numbering expressing where the particular values are being applied. Zero if the load is constant over the element or the load is being applied directly to nodes.
INTEGER
<app_region_id>
The application Region id for each entity.
INTEGER
<nvar>
The number of input variables for each application region entity.
INTEGER
<variable_id>[][nvar]
 
 
Input data variable IDs.
INTEGER
<data_type>[ ][nvar]
 
 
Data type for each variable. Valid types are:
0 = real/field
1 = integer
3 = real value
7 = field id
5 = node id
INTEGER
<scalar_vector>[ ][nvar]
 
 
Scalar or vector flag.
0 = scalar
1 = vector
INTEGER
<dynamic_flag>[ ][nvar]
 
 
Indicates if there are dynamic fields.
0 = no dynamic fields
1 = dynamic fields
INTEGER
<integer_value>[ ][nvar]
 
 
Integer values.
REAL
<real_value>[ ][nvar][3]
 
 
Real values. 3 values are required. For scalar, put scalar in 1st position and zeros in 2 and 3.
INTEGER
<dyn_field_id>[ ][nvar][3]
 
 
Dynamic field ids. 3 values are required. For scalar, put scalar in 1st position and zeros in 2 and 3.
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.
Notes:
The C name differs. It is DbCreateLbcFemData.
int DbCreateLbcFemData( lbc_id, num_ent, entity_type, entity_id, entity_subid, node_position, app_region_id, nvar, variable_id, data_type, scalar_vector, dynamic_flag, integer_value, real_value, dyn_field_id )
int	lbc_id
int	num_ent
int	*entity_type
int	*entity_id
int	*entity_subid
int	*node_position
int	*app_region_id
int	*nvar
int	*variable_id
int	*data_type
int	*scalar_vector
int	*dynamic_flag
int	*integer_value
float	*real_value
int	*dyn_field_id 
 
db_create_lbc_fem_data_2reg
( <lbc_id>, <num_ent>, <entity_type>, <entity_id>, <entity_subid>, <node_position>, <app_region_id>, <app_reg_set_order>, <app_region_set>, <fem_set_id>, <nvar>, <variable_id>, <data_type>, <scalar_vector>, <dynamic_flag>, <integer_value>, <real_value>, <dyn_field_id> )
 
Input:
 
 
INTEGER
<lbc_id>
The internal ID of this load.
INTEGER
<num_ent>
Number of entities times the number of node positions in each app region.
INTEGER
<entity_type>
The entity type codes for each of the data points:
123 = node
124 = element
153 = element face
154 = element edge
INTEGER
<entity_id>[]
The IDs of the main loaded entity (node or element ID) for all the data points.
INTEGER
<entity_subid>[]
The IDs of the loaded sub entities (element edge or face numbers) for all the data points. Zero if not applicable.
INTEGER
<node_position>[]
The node numbering expressing where the particular values are being applied. Zero if the load is constant over the element or the load is being applied directly to nodes.
INTEGER
<app_region_id>[]
The application Region id for each entity.
INTEGER
<app_reg_set_order>[]
 
 
The application Region set order for each entity.
INTEGER
<app_region_set>[]
The application Region set number for each entity.
INTEGER
<fem_set_id>[]
The fem set id for each entity.
INTEGER
<nvar>
The number of input variables for each application region entity.
INTEGER
<variable_id>[ ][nvar]
Input data variable IDs.
INTEGER
<data_type>[ ][nvar]
Data type for each variable. Valid types are:
0 = real/field
1 = integer
3 = real value
7 = field id
5 = node id
INTEGER
<scalar_vector>[ ][nvar]
 
 
Scalar or vector flag.
0 = scalar
1 = vector
INTEGER
<dynamic_flag>[ ][nvar]
 
 
Indicates if there are dynamic fields.
0 = no dynamic fields
1 = dynamic fields
INTEGER
<integer_value>[ ][nvar]
 
 
Integer values.
REAL
<real_value>[ ][nvar][3]
 
 
Real values. 3 values are required. For scalar, put scalar
in 1st position and zeros in 2 and 3.
INTEGER
<dyn_field_id>[ ][nvar][3]
 
 
Dynamic field ids. 3 values are required. For scalar, put scalar in 1st position and zeros in 2 and 3.
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.
Notes:
The C name differs. It is DbCreateLbcFemData2Reg.
int DbCreateLbcFemData2Reg( lbc_id, num_ent, entity_type, entity_id, entity_subid, node_position, app_region_id, app_reg_set_order, app_region_set, fem_set_id, nvar, variable_id, data_type, scalar_vector, dynamic_flag, integer_value, real_value, dyn_field_id )
int	lbc_id
unsigned int	num_ent
int	*entity_type
int	*entity_id
int	*entity_subid
int	*node_position
int	*app_region_id
int	*app_reg_set_order
int	*app_region_set
int	*fem_set_id
unsigned int	*nvar
int	*variable_id
int	*data_type
int	*scalar_vector
int	*dynamic_flag
int	*integer_value
float	*real_value
int	*dyn_field_id
Lastly, the user must assign the newly created load to the appropriate load case. The function listed below will perform this operation
.
db_add_lbc_to_load_case
( <load_case_id>, <load_id>, <priority_code>)
  
Input:
 
 
INTEGER
<load_case_id>
The internal ID of the load case to which the specified load is to be added. See Load Cases, 692 for more about the load case ID.
INTEGER
<load_id>
The internal ID of the load of interest.
INTEGER
<priority_code>
A flag specifying the priority of this load within this load case. Zero specifies that all loads are additive. Otherwise, when more than one load of a given type is applied to a given entity, (e.g., node or element), the load with the highest <priority_code> value overwrites all other same-type loads for that entity.
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.
Notes:
The C name differs. It is DbFAddLbcToLoadCase.
int DbFAddLbcToLoadCase ( load_case_id, load_id, priority_code )
 int 	load_case_id
 int 	load_id
 int 	priority_code
For more on the importation of spatial or dynamic data field, refer to the Data Fields, 643. Remember that all face or edge loads are inward positive unless the load type can be oriented along a user specified coordinate frame, in which case the load would be oriented in global or along the specified coordinate frame.
   
db_modify_lbc_name
( old_name, new_name )
 
Description:
 
 
This function renames an LBC.
Input:
 
 
STRING[32]
old_name
LBC name to be modified.
STRING[32]
new_name
New LBC name.
Output:
 
 
INTEGER
<Return Value>
0=success, otherwise failure.