ElasticSection
ElasticSection
ElasticSection(user_name: str = 'Unnamed', *, E: float, A: float, Iz: float, Iy: Optional[float] = None, G: Optional[float] = None, J: Optional[float] = None)
Bases: Section
Linear-elastic section defined by explicit geometric and material constants.
This section represents a linear beam-column cross-section. Unlike most
other Femora sections, it does not reference a Material object; instead,
it takes material moduli (E, G) and geometric properties (A, I, J) directly
as constructor arguments.
Tcl form
- 2D:
section Elastic <tag> <E> <A> <Iz> - 3D:
section Elastic <tag> <E> <A> <Iz> <Iy> <G> <J>
Note
- This section is strictly linear. For nonlinear behavior, use FiberSection or UniaxialSection.
- When using this section in a 3D model, you must provide all six parameters (E, A, Iz, Iy, G, J). OpenSees usually expects either 3 or 6 values for the Elastic section command.
Tip
- Use this section for preliminary modeling or when physical section dimensions are unknown but aggregate properties (like equivalent stiffness) are available.
Example
from femora.core.model import Model
import femora.components.section.beam # noqa: F401
model = Model()
sec_2d = model.section.beam.elastic(
user_name="Beam2D",
E=29000.0,
A=10.0,
Iz=150.0,
)
sec_3d = model.section.beam.elastic(
user_name="Column3D",
E=29000.0,
A=26.5,
Iz=999.0,
Iy=150.0,
G=11200.0,
J=2.5,
)
print(sec_3d.tag)
Create an ElasticSection with validated geometric properties.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_name
|
str
|
User-specified name for the section. |
'Unnamed'
|
E
|
float
|
Young's modulus. |
required |
A
|
float
|
Cross-sectional area. |
required |
Iz
|
float
|
Second moment of area about the local z-axis. |
required |
Iy
|
Optional[float]
|
Optional second moment of area about the local y-axis (for 3D). |
None
|
G
|
Optional[float]
|
Optional shear modulus (for 3D). |
None
|
J
|
Optional[float]
|
Optional torsional constant (for 3D). |
None
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If parameters are not numeric or if essential values (E, A, Iz) are non-positive. |
Methods:
get_area
Return the cross-sectional area.
Returns:
| Type | Description |
|---|---|
float
|
Area value. |
get_Iy
Return the second moment of area about the local y-axis.
Returns:
| Type | Description |
|---|---|
float
|
Iy value, or 0.0 if not defined. |
get_Iz
Return the second moment of area about the local z-axis.
Returns:
| Type | Description |
|---|---|
float
|
Iz value. |