add_cst()
Add a Constant Strain Triangle (CST) membrane element - a 3-node triangular element.Syntax
Parameters
Unique identifier for the CST element.
ID of the first node.
ID of the second node.
ID of the third node.
Name of the shell section (defined with
add_shell_section()).Constitutive model for the element:
'PLANE_STRESS'- Plane stress condition (thin plates)'PLANE_STRAIN'- Plane strain condition (thick members)
Returns
Returns aMembraneTriangle object. Each node has 2 degrees of freedom (ux, uy).
Example
add_membrane_q4()
Add a 4-node bilinear quadrilateral membrane element (Q4) with 4-point integration.Syntax
Parameters
Unique identifier for the Q4 element.
ID of the first node.
ID of the second node.
ID of the third node.
ID of the fourth node.
Name of the shell section.
Constitutive model:
'PLANE_STRESS' or 'PLANE_STRAIN'.Returns
Returns aMembraneQuad4 object. Each node has 2 degrees of freedom (ux, uy).
Example
The Q4 element has poor convergence. It’s recommended to use mesh refinement or prefer Q8 elements for better accuracy.
add_membrane_q6()
Add a 4-node quadrilateral membrane element with drilling degrees of freedom (Q6) - 3 DOF per node.Syntax
Parameters
Unique identifier for the Q6 element.
ID of the first node.
ID of the second node.
ID of the third node.
ID of the fourth node.
Name of the shell section.
Constitutive model:
'PLANE_STRESS' or 'PLANE_STRAIN'.Returns
Returns aMembraneQuad6 object. Each node has 3 degrees of freedom (ux, uy, rz).
Example
This element implements the Q6 formulation from Dr. Wilson’s “Static and Dynamic Analysis of Structures” with drilling degrees of freedom.
add_membrane_q6i()
Add a 4-node quadrilateral membrane element with incompatible modes (Q6I) - similar to ETABS/SAP2000.Syntax
Parameters
Unique identifier for the Q6I element.
ID of the first node.
ID of the second node.
ID of the third node.
ID of the fourth node.
Name of the shell section.
Constitutive model:
'PLANE_STRESS' or 'PLANE_STRAIN'.Returns
Returns aMembraneQuad6I object. Each node has 2 degrees of freedom (ux, uy).
Example
The Q6I element uses the same formulation as ETABS and SAP2000, making it suitable for compatibility with those programs.
add_membrane_q8()
Add an 8-node serendipity quadrilateral membrane element (Q8) with selectable integration.Syntax
Parameters
Unique identifier for the Q8 element.
ID of the first corner node.
ID of the second corner node.
ID of the third corner node.
ID of the fourth corner node.
Name of the shell section.
Constitutive model:
'PLANE_STRESS' or 'PLANE_STRAIN'.Integration scheme:
'COMPLETE'- 9-point Gauss integration'REDUCED'- 4-point Gauss integration (reduces shear locking)
Returns
Returns aMembraneQuad8 object. Each node has 2 degrees of freedom (ux, uy).
Example
The Q8 element provides excellent convergence with a single element. Avoid over-discretization, as excessive mesh refinement can make the element overly flexible and diverge from the exact solution. Reduced integration helps mitigate parasitic shear locking.
Element Comparison
CST (3-node)
Simplest element. Constant strain field. Use for simple geometries or refined meshes.
Q4 (4-node)
Basic quadrilateral. Poor convergence - requires mesh refinement.
Q6 (4-node + drilling)
Includes rotational DOF. Based on Wilson’s formulation.
Q6I (4-node + incompatible)
Incompatible modes. Compatible with ETABS/SAP2000.
Q8 (8-node)
Higher-order element. Excellent accuracy with single element. Reduced integration available.
General Notes
Use
add_shell_section() to define thickness and material properties for membrane elements.Complete Example
Related
- add_node() - Add nodes to the model
- add_member() - Add frame/beam elements
- add_truss() - Add truss elements
