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. |