Plates¶
Plates in Pynite can capture both out-of-plane (bending & shear) behavior and in-plane (membrane) behavior. There are two types of plates available to work with in Pynite, each with its own advantages and disadvantages.
Rect Plate Elements¶
Rect plate elements must be rectangular. Trying to make them any other shape will invalidate the analysis. These elements are based on a 12-term polynomial formulation for out-of-plane bending. This leads to accurate out-of-plane bending and shear stress results as long as the plates are not overly thick.
Quad Plate elements¶
Quad plate elements do not have to be rectangular. They can be generic quadrilaterals. These elements are isoparametric elements based on the DKMQ formulation, and are well suited to thick and thin plates. Pynite “smoothes” plate stress results when displaying contours, which averages stresses from all plates connecting at a node.
In-Plane (Membrane) Stresses¶
In-plane stresses (tension, compression, and in-plane shear) are accurate for both elements. The formulations for both the Rect element and the Quad element is based on an isoparametric formulation that is pretty accurate.
Orthotropic behavior¶
One useful feature in Pynite is the ability to model orthotropic behavior in plates. This allows the user to specify a stiffness modification factor kx_mod and ky_mod for each direction of a plate. This can be very useful for modeling stiffness reductions due to cracked concrete. A stiffness reduction factor of 0.35 would reduce the axial stiffness in the local y-direction by 65%.
Note that right now the stiffness modification factor is always applied in the plate’s local axes. If a surface contains plates with unaligned local axes it probably doesn’t make sense to use this feature.
Meshing¶
Pynite provides several meshing functions to help generate some commonly used basic meshes like rectangles, cylinders and cones. Duplicate/coincident nodes and plates generated by meshes are automatically merged when a model is solved.
Quick Start¶
from Pynite import FEModel3D
model = FEModel3D()
model.add_material('Conc', E=3_600_000.0, G=1_500_000.0, nu=0.2, rho=0.150)
# Define rectangle corners in the XY plane
n1 = model.add_node('N1', 0, 0, 0)
n2 = model.add_node('N2', 10, 0, 0)
n3 = model.add_node('N3', 10, 8, 0)
n4 = model.add_node('N4', 0, 8, 0)
# Add a rectangular plate (thickness = 0.5)
p1 = model.add_plate('P1', n1, n2, n3, n4, t=0.5, material_name='Conc', kx_mod=1.0, ky_mod=1.0)
# Edge supports along the west edge
model.def_support('N1', support_DZ=True)
model.def_support('N4', support_DZ=True)
# Uniform surface pressure (downward)
model.add_plate_surface_pressure('P1', pressure=-0.05, case='D')
model.add_load_combo('D', {'D': 1.0})
model.analyze_linear()
# Sample results at plate center (local coordinates x=width/2, y=height/2)
mx, my, mxy = model.plates['P1'].moment(x=5.0, y=4.0, local=True, combo_name='D').flatten()
qx, qy = model.plates['P1'].shear(x=5.0, y=4.0, local=True, combo_name='D').flatten()
sx, sy, txy = model.plates['P1'].membrane(x=5.0, y=4.0, local=True, combo_name='D').flatten()
Creating Plates and Quads¶
Rectangular plate:
FEModel3D.add_plate(name, i_node, j_node, m_node, n_node, t, material_name, kx_mod=1.0, ky_mod=1.0)General quad:
FEModel3D.add_quad(name, i_node, j_node, m_node, n_node, t, material_name, kx_mod=1.0, ky_mod=1.0)
Notes¶
Plate local axes are defined by the node ordering (i → j → m → n); choose a consistent winding.
Orthotropic modifiers
kx_modandky_modreduce in-plane stiffness in the plate’s local x/y directions.For Quad elements, sampling uses isoparametric coordinates
(xi, eta) ∈ [-1, 1]instead of local lengths.
Loading¶
Rectangular plate pressure:
FEModel3D.add_plate_surface_pressure(plate_name, pressure, case='Case 1')Quad surface pressure:
FEModel3D.add_quad_surface_pressure(quad_name, pressure, case='Case 1')
Results Access¶
Rectangles: sample at local coordinates (
x,y) from i-node. - Bending moments:moment(x, y, local=True, combo_name='Combo')→[Mx, My, Mxy]- Shears:shear(x, y, local=True, combo_name='Combo')→[Qx, Qy]- Membrane:membrane(x, y, local=True, combo_name='Combo')→[Sx, Sy, Txy]Quads: sample at isoparametric (
xi,eta) ∈ [-1, 1]. - Bending moments:moment(xi, eta, local=True, combo_name='Combo')- Shears:shear(xi, eta, local=True, combo_name='Combo')- Membrane:membrane(xi, eta, local=True, combo_name='Combo')
API Cross-Links¶
Rectangular plate class:
Plate3DQuadrilateral class:
Quad3D