QuadrilateralPatch
QuadrilateralPatch
QuadrilateralPatch(material: Union[int, str, Material], num_subdiv_ij: int, num_subdiv_jk: int, vertices: List[Tuple[float, float]])
Bases: PatchBase
Quadrilateral patch for fiber sections.
This class defines a four-sided region in a fiber section. The region is discretized into a grid of quadrilateral fibers.
Tcl form
patch quad <matTag> <numSubdivIJ> <numSubdivJK> <yI> <zI> <yJ> <zJ> <yK> <zK> <yL> <zL>
Attributes:
| Name | Type | Description |
|---|---|---|
num_subdiv_ij |
Number of subdivisions along the first edge (I-J). |
|
num_subdiv_jk |
Number of subdivisions along the second edge (J-K). |
|
vertices |
List of 4 (y, z) vertex coordinates in counter-clockwise order. |
Example
from femora.core.model import Model
import femora.components.section.fiber # noqa: F401
model = Model()
mat = model.material.uniaxial.elastic(user_name="Core", E=3600.0)
section = model.section.fiber.section(user_name="QuadPatchSection")
section.add_quadrilateral_patch(
material=mat,
num_subdiv_ij=4,
num_subdiv_jk=4,
vertices=[(0, 0), (10, 0), (10, 10), (0, 10)],
)
print(section.tag)
Create a QuadrilateralPatch with validated vertices.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
material
|
Union[int, str, Material]
|
Uniaxial material reference (object, tag, or name). |
required |
num_subdiv_ij
|
int
|
Subdivisions along the first direction. |
required |
num_subdiv_jk
|
int
|
Subdivisions along the second direction. |
required |
vertices
|
List[Tuple[float, float]]
|
Exactly 4 vertex coordinates as (y, z) pairs. |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If vertices count is not 4 or if parameters are not numeric. |