Field
Model ElementField defines a force and torque acting between two markers, I and J. The force and torque can only be a function of time and the relative displacement between the I and J markers. The six components (three forces and three moments) are defined in the coordinate system of the J marker.
Class Name
Field
Description
Both linear and nonlinear relationships are supported. A nonlinear Field is defined in a user-defined subroutine called FIESUB.
Attribute Summary
Name | Property | Modifiable by command? | Designable? |
---|---|---|---|
id | Int () | ||
label | String () | Yes | |
i | Reference (Marker) | Yes | Yes |
j | Reference (Marker) | Yes | Yes |
cratio | Double (None) | Yes | Yes |
cmatrix | Double ([], count=36) | Yes | Yes |
kmatrix | Double ([], count=36) | Yes | Yes |
force | Double ([0,0,0,0,0,0], count=6) | Yes | Yes |
length | Double ([0,0,0,0,0,0], count=6) | Yes | Yes |
function | Function ("FIESUB") | Yes | |
routine | Routine () | ||
active | Bool () | Yes |
Usage
#1: Linear Field
Field (i=objMarker, j= objMarker, optional_attributes)
#2: Nonlinear Field defined in a compiled DLL
Field (i=objMarker, j= objMarker, function= userString, routine=string, optional_attributes)
#3: Nonlinear Field defined in a Python function
Field (i=objMarker, j= objMarker, function= userString, routine=functionPointer, optional_attributes)
Attributes
- i
- Reference to an existing Marker object.
- j
- Reference to an existing Marker object.
- kmatrix
- 6x6 matrix
- cmatrix
- 6x6 matrix
- cratio
- Double
- length
- List of 6 doubles
- force
- List of 6 doubles
- i
- Reference to an existing Marker object.
- j
- Reference to an existing Marker object.
- function
- String
- routine
- String
- i
- Reference to an existing Marker object.
- j
- Reference to an existing Marker object.
- function
- String
- routine
- Pointer to a callable function in Python.
- id
- Integer
- label
- String
- active
- Bool
Example
- Model the structural stiffness of a truss as shown below, with a
FORCE_FIELD.The FORCE_FIELD statement to model this element is:
<FORCE_FIELD ID = "1" I_MARKER_ID = "100" J_MARKER_ID = "200" PRELOAD_Z = "1000" CRATIO = "0.001" K11 = "1.03e4" K22 = "5.98e3" K33 = "5.98e3" K44 = "8.0e3" K55 = "8.0e2" K66 = "7.0e2" K26 = "-5.98e3" K62 = "-5.98e3" K35 = "1.02e3" K53 = "1.02e3" />
kmat = [0.0]*36
rows = [0, 1, 2, 3, 4, 5, 1, 5, 2, 4]
cols = [0, 1, 2, 3, 4, 5, 5, 1, 4, 2]
values = [1.03e4, 5.98e3, 5.98e3, 8.0e3, 8.0e2, 7.0e2, -5.98e3, -5.98e3, 1.02e3, 1.02e3]
for row, col, value in zip(rows, cols, values): kmat[row*6+col]=value
f0 = [0.0]*6
f0[2] = 1e3
# Define the truss object
truss = Field (i=mkr100, j=mkr200, cratio=0.001, kmatrix=kmat, force=f0, label="Truss modeled as a Field")
Comments
- See Properties for an explanation about what properties are, why they are used, and how you can extend these.
- For a more detailed explanation about Field, see Force: Field