Skip to content

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.

Methods:

estimate_fiber_count

estimate_fiber_count() -> int

Calculate the total number of fibers in this patch.

Returns:

Type Description
int

Total fiber count.