Spring - 3D spring element with constant stiffnesses (pyfe3d.spring
)#
- class pyfe3d.spring.Spring#
Spring 3D beam element with constant stiffnesses
Note
The default behaviour assumes that the local coordinate system is aligned with the global coordinate system
- Attributes:
- eid,int
Element identification number.
- kxe, kye, kze: double
Translational stiffnesses in the element coordinate system.
- krxe, krye, krzedouble
Rotational stiffnesses in the element coordinate system.
- r11, r12, r13, r21, r22, r23, r31, r32, r33double
Rotation matrix from local to global coordinates. By default it assumes that the element is aligned with the global coordinate system.
- vxyi, vxyj, vxykdouble
Components of a vector on the \(XY\) plane of the element coordinate system, defined using global coordinates.
- c1, c2int
Position of each node in the global stiffness matrix.
- n1, n2int
Node identification number.
- init_k_KC0, init_k_KG, init_k_Mint
Position in the arrays storing the sparse data for the structural matrices.
Methods
update_KC0
(self, long[, long[, double[, ...)Update sparse vectors for linear constitutive stiffness matrix KC0
update_probe_ue
(self, double[)Update the local displacement vector of the probe of the element
update_rotation_matrix
(self, double xi, ...)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_KG#
init_k_KG: ‘int’
- init_k_M#
init_k_M: ‘int’
- krxe#
krxe: ‘double’
- krye#
krye: ‘double’
- krze#
krze: ‘double’
- kxe#
kxe: ‘double’
- kye#
kye: ‘double’
- kze#
kze: ‘double’
- n1#
n1: ‘int’
- n2#
n2: ‘int’
- probe#
probe: pyfe3d.spring.SpringProbe
- 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, 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
- 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_probe_ue(self, double[::1] u) void #
Update the local displacement vector of the probe of the element
Note
The
probe
attribute objectSpringProbe
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_rotation_matrix(self, double xi, double xj, double xk, double vxyi, double vxyj, double vxyk) 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:
- xi, xj, xkdouble
Components, in global coordinates, of the element x-axis.
- vxyi, vxyj, vxykdouble
Components, in global coordinates, of a vector on the \(XY\) plane of the element coordinate system.
- vxyi#
vxyi: ‘double’
- vxyj#
vxyj: ‘double’
- vxyk#
vxyk: ‘double’
- class pyfe3d.spring.SpringData#
Used to allocate memory for the sparse matrices.
- Attributes:
- KC0_SPARSE_SIZE,int
KC0_SPARSE_SIZE = 72
- KG_SPARSE_SIZE,int
KG_SPARSE_SIZE = 0
- M_SPARSE_SIZE,int
M_SPARSE_SIZE = 0
- KC0_SPARSE_SIZE#
KC0_SPARSE_SIZE: ‘int’
- KG_SPARSE_SIZE#
KG_SPARSE_SIZE: ‘int’
- M_SPARSE_SIZE#
M_SPARSE_SIZE: ‘int’
- class pyfe3d.spring.SpringProbe#
Probe used for local coordinates, local displacements, local stresses etc
- Attributes:
- xe,array-like
Array of size
NUM_NODES*DOF//2=6
containing the nodal coordinates in the element coordinate system, in the following order \({x_e}_1, {y_e}_1, {z_e}_1, {x_e}_2, {y_e}_2, {z_e}_2\).- ue,array-like
Array of size
NUM_NODES*DOF=12
containing the element displacements in the following order \({u_e}_1, {v_e}_1, {w_e}_1, {{r_x}_e}_1, {{r_y}_e}_1, {{r_z}_e}_1, {u_e}_2, {v_e}_2, {w_e}_2, {{r_x}_e}_2, {{r_y}_e}_2, {{r_z}_e}_2\).
- ue#
ue: ‘double[::1]’
- xe#
xe: ‘double[::1]’