Truss - Linear truss 3D element with analytical integration (pyfe3d.truss
)#
Note
The BeamC
element is recommended because of the better
physical representation.
Note
The Truss
element does not support linear buckling
analysis.
- class pyfe3d.truss.Truss#
Truss 3D element for axial- and torsion-only behavior
Nodal connectivity for the truss element:
______ --> u ->>- rx 1 2
Note
The
BeamC
is recommended because of the better physical representation.- Attributes:
- eid,int
Element identification number.
- pid,int
Property identification number.
- length,double
Element length.
- r11, r12, r13, r21, r22, r23, r31, r32, r33double
Rotation matrix from local to global coordinates.
- c1, c2int
Position of each node in the global stiffness matrix.
- n1, n2int
Node identification number.
- init_k_KC0, init_k_Mint
Position in the arrays storing the sparse data for the structural matrices.
- probe,
TrussProbe
object Pointer to the probe.
Methods
update_KC0
(self, long[, long[, double[, ...)Update sparse vectors for linear constitutive stiffness matrix KC0
update_M
(self, long[, long[, double[, ...)Update sparse vectors for mass matrix M
update_length
(self)Update element length
update_probe_ue
(self, double[)Update the local displacement vector of the probe of the element
update_probe_xe
(self, double[)Update the 3D coordinates of the probe of the element
update_rotation_matrix
(self, double[)Update the rotation matrix of the element
- c1#
c1: ‘int’
- c2#
c2: ‘int’
- eid#
eid: ‘int’
- init_k_KC0#
init_k_KC0: ‘int’
- init_k_M#
init_k_M: ‘int’
- length#
length: ‘double’
- n1#
n1: ‘int’
- n2#
n2: ‘int’
- pid#
pid: ‘int’
- probe#
probe: pyfe3d.truss.TrussProbe
- r11#
r11: ‘double’
- r12#
r12: ‘double’
- r13#
r13: ‘double’
- r21#
r21: ‘double’
- r22#
r22: ‘double’
- r23#
r23: ‘double’
- r31#
r31: ‘double’
- r32#
r32: ‘double’
- r33#
r33: ‘double’
- update_KC0(self, long[::1] KC0r, long[::1] KC0c, double[::1] KC0v, BeamProp prop, int update_KC0v_only=0) void #
Update sparse vectors for linear constitutive stiffness matrix KC0
- Parameters:
- KC0rnp.array
Array to store row positions of sparse values
- KC0cnp.array
Array to store column positions of sparse values
- KC0vnp.array
Array to store sparse values
- prop
BeamProp
object Beam property object from where the stiffness and mass attributes are read from.
- update_KC0v_onlyint
The default
0
means that the row and column indicesKC0r
andKC0c
should also be updated. Any other value will only update the stiffness matrix valuesKC0v
.
- update_M(self, long[::1] Mr, long[::1] Mc, double[::1] Mv, BeamProp prop, int mtype=0) void #
Update sparse vectors for mass matrix M
For the
Truss
element, the inertial termsintrho
,intrhoy
,intrhoz
,intrhoy2
andintrhoz2
of the beam property are important.- Parameters:
- Mrnp.array
Array to store row positions of sparse values
- Mcnp.array
Array to store column positions of sparse values
- Mvnp.array
Array to store sparse values
- mtypeint, optional
0 for consistent mass matrix using method from Brockman 1987 1 for lumped mass matrix using method from Brockman 1987
- update_length(self) void #
Update element length
- update_probe_ue(self, double[::1] u) void #
Update the local displacement vector of the probe of the element
Note
The
probe
attribute objectTrussProbe
is updated, not the element object.- Parameters:
- uarray-like
Array with global displacements, for a total of \(M\) nodes in the model, this array will be arranged as: \(u_1, v_1, w_1, {r_x}_1, {r_y}_1, {r_z}_1, u_2, v_2, w_2, {r_x}_2, {r_y}_2, {r_z}_2, ..., u_M, v_M, w_M, {r_x}_M, {r_y}_M, {r_z}_M\).
- update_probe_xe(self, double[::1] x) void #
Update the 3D coordinates of the probe of the element
Note
The
probe
attribute objectTrussProbe
is updated, not the element object.- Parameters:
- xarray-like
Array with global nodal coordinates, for a total of \(M\) nodes in the model, this array will be arranged as: \(x_1, y_1, z_1, x_2, y_2, z_2, ..., x_M, y_M, z_M\).
- update_rotation_matrix(self, double[::1] x) void #
Update the rotation matrix of the element
Attributes
r11,r12,r13,r21,r22,r23,r31,r32,r33
are updated, corresponding to the rotation matrix from local to global coordinates.The element coordinate system is determined, identifying the \(ijk\) components of each axis: \({x_e}_i, {x_e}_j, {x_e}_k\); \({y_e}_i, {y_e}_j, {y_e}_k\); \({z_e}_i, {z_e}_j, {z_e}_k\).
- Parameters:
- xarray-like
Array with global nodal coordinates, for a total of \(M\) nodes in the model, this array will be arranged as: \(x_1, y_1, z_1, x_2, y_2, z_2, ..., x_M, y_M, z_M\).
- class pyfe3d.truss.TrussData#
Used to allocate memory for the sparse matrices.
- Attributes:
KC0_SPARSE_SIZE
intKC0_SPARSE_SIZE: ‘int’
M_SPARSE_SIZE
intM_SPARSE_SIZE: ‘int’
- KC0_SPARSE_SIZE#
KC0_SPARSE_SIZE: ‘int’
- M_SPARSE_SIZE#
M_SPARSE_SIZE: ‘int’