Geometry and Fields API
Geometry surfaces for stiffness embedding.
SurfacePoint
dataclass
Differential geometry data at a parametric surface point.
curvature
instance-attribute
frame
instance-attribute
jacobian
instance-attribute
metadata = field(default_factory=dict)
class-attribute
instance-attribute
metric
instance-attribute
min_radius
instance-attribute
position
instance-attribute
principal_curvatures
instance-attribute
tangent_u
instance-attribute
tangent_v
instance-attribute
u
instance-attribute
v
instance-attribute
__init__(u, v, position, tangent_u, tangent_v, metric, curvature, frame, jacobian, principal_curvatures, min_radius, metadata=dict())
__post_init__()
Surface
Bases: Protocol
Protocol for parametric shell midsurfaces.
point_at(u, v)
Return differential geometry data at parametric coordinates (u, v).
FlatPlate
dataclass
Flat plate parameterized by Cartesian coordinates (u, v).
e1 = field(default_factory=(lambda: np.array([1.0, 0.0, 0.0])))
class-attribute
instance-attribute
e2 = field(default_factory=(lambda: np.array([0.0, 1.0, 0.0])))
class-attribute
instance-attribute
label = 'flat_plate'
class-attribute
instance-attribute
origin = field(default_factory=(lambda: np.array([0.0, 0.0, 0.0])))
class-attribute
instance-attribute
__init__(origin=(lambda: np.array([0.0, 0.0, 0.0]))(), e1=(lambda: np.array([1.0, 0.0, 0.0]))(), e2=(lambda: np.array([0.0, 1.0, 0.0]))(), label='flat_plate')
__post_init__()
point_at(u, v)
Cylinder
dataclass
Circular cylinder parameterized by axial coordinate and angle (x, theta).
The local frame has e1 in the axial direction, e2 in the
circumferential direction, and n outward.
label = 'cylinder'
class-attribute
instance-attribute
length = None
class-attribute
instance-attribute
radius
instance-attribute
__init__(radius, length=None, label='cylinder')
__post_init__()
point_at(u, v)
Sphere
dataclass
Spherical surface parameterized by polar angle and azimuth (phi, theta).
The single chart excludes both poles. Use SphericalCap when a partial
spherical domain is a better model for the physical shell.
label = 'sphere'
class-attribute
instance-attribute
radius
instance-attribute
__init__(radius, label='sphere')
__post_init__()
point_at(u, v)
SphericalCap
dataclass
Spherical surface parameterized by polar angle and azimuth (phi, theta).
The pole and cap boundary are singular for the current coordinate chart and
are rejected by point_at.
half_angle_rad = np.pi
class-attribute
instance-attribute
label = 'spherical_cap'
class-attribute
instance-attribute
radius
instance-attribute
__init__(radius, half_angle_rad=np.pi, label='spherical_cap')
__post_init__()
point_at(u, v)
ConicalFrustum
dataclass
Circular conical frustum parameterized by axial coordinate and angle.
Coordinates are (x, theta). The local frame uses e1 along increasing
axial station/generator direction, e2 opposite the positive theta
tangent, and n outward. The apex is not part of the supported smooth
midsurface domain.
label = 'conical_frustum'
class-attribute
instance-attribute
length
instance-attribute
radius_end
instance-attribute
radius_start
instance-attribute
slope
property
Return dr/dx for the linear radius stiffness.
__init__(radius_start, radius_end, length, label='conical_frustum')
__post_init__()
point_at(u, v)
radius_at(u)
Return the local radius at axial coordinate u.
Ellipsoid
dataclass
Triaxial ellipsoid parameterized by polar angle and azimuth (phi, theta).
a
instance-attribute
b
instance-attribute
c
instance-attribute
label = 'ellipsoid'
class-attribute
instance-attribute
__init__(a, b, c, label='ellipsoid')
__post_init__()
point_at(u, v)
Stiffness fields and atlases.
StiffnessField
Bases: Protocol
Protocol for objects that provide an ABD stiffness over a surface.
stiffness_at(surface, u, v)
Return the ABD stiffness at parametric coordinates (u, v).
ConstantStiffnessField
dataclass
Uniform ABD stiffness bound pointwise to a surface frame.
stiffness
instance-attribute
__init__(stiffness)
stiffness_at(surface, u, v)
HomogenizedStiffnessField
dataclass
Stiffness field that builds and homogenizes a local cell at each surface point.
cache = None
class-attribute
instance-attribute
cell_factory
instance-attribute
homogenizer
instance-attribute
surface
instance-attribute
validity_context_factory = None
class-attribute
instance-attribute
__init__(surface, cell_factory, homogenizer, cache=None, validity_context_factory=None)
stiffness_at(surface, u, v)
StiffnessCache
dataclass
Mutable pointwise stiffness cache keyed by rounded parametric coordinates.
precision = 12
class-attribute
instance-attribute
size
property
__init__(precision=12, _items=dict())
__post_init__()
clear()
get(u, v)
key(u, v)
set(u, v, stiffness)
ABDAtlas
dataclass
Rectangular bilinear atlas of sampled linear ABD stiffnesses.