Skip to content

H5DRMPattern

H5DRMPattern

H5DRMPattern(filepath: str, factor: float, crd_scale: float, distance_tolerance: float, do_coordinate_transformation: int, transform_matrix: Optional[Sequence[float]] = None, origin: Optional[Sequence[float]] = None, **kwargs)

Bases: Pattern

OpenSees H5DRM pattern for Domain Reduction Method boundary loading.

This pattern references an HDF5-based Domain Reduction Method (DRM) dataset and configures how dataset coordinates and loads map into the analysis model, including optional coordinate transformations and transformed origin offsets.

Tcl form

pattern H5DRM <tag> "<filepath>" <factor> <crdScale> <distanceTolerance> <doCoordinateTransformation> <T00> <T01> <T02> <T10> <T11> <T12> <T20> <T21> <T22> <x00> <x01> <x02>

Note
  • The H5DRM pattern is typically used in large-scale wave propagation models to apply boundary excitations generated from external site response simulations.
  • Nodes in the finite element mesh that lie on the DRM boundary are matched with dataset points within the specified distance_tolerance.
Example
from femora.core.model import Model

model = Model()
pattern = model.pattern.h5drm(
    filepath="drmload.h5drm",
    factor=1.0,
    crd_scale=1.0,
    distance_tolerance=1.0e-6,
    do_coordinate_transformation=1,
    transform_matrix=[1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0],
    origin=[0.0, 0.0, 0.0],
)
print(pattern.tag)

Create an H5DRM pattern with coordinate mapping parameters.

Parameters:

Name Type Description Default
filepath str

Path to the H5DRM dataset file.

required
factor float

Scale factor applied to DRM forces and displacements.

required
crd_scale float

Coordinate scale factor for the dataset.

required
distance_tolerance float

Tolerance used to match DRM dataset points to mesh nodes.

required
do_coordinate_transformation int

Flag (0 or 1) controlling coordinate transformation.

required
transform_matrix Optional[Sequence[float]]

Optional 9-value sequence representing a 3x3 transformation matrix. If not supplied, T00 through T22 must be present in kwargs.

None
origin Optional[Sequence[float]]

Optional 3-value sequence representing the transformed origin coordinate. If not supplied, x00 through x02 must be present in kwargs.

None
**kwargs

Compatibility support for individual matrix or origin entries.

{}

Raises:

Type Description
ValueError

If do_coordinate_transformation is not 0 or 1, or if transform_matrix or origin sequences have invalid lengths.

KeyError

If required individual matrix/origin keys are missing from kwargs when not using sequences.