EDP-IM: bilinear system with analytical backbone

Predicts strength-ratio and ductility demand curves for a bilinear SDOF using the Shahnazaryan-O’Reilly method. Backbone parameters are defined directly as key-value pairs — no external file needed.

Corresponds to test_batch with method="shahnazaryan-oreilly".

Running the example

from djura.vulnerability_modeller.backbone import Backbone
from djura.edp_im.predict import edp_im, edp_im_batch

# Single building
backbone_params = {
    "damping": 0.075,
    "ductility": 3,
    "hardening_ratio": 0.05,
    "period": 1.0,
    "ductility_f": 8,
}

backbone = Backbone(backbone_params, "backbone", "bilin").backbone

result = edp_im({
    "method": "shahnazaryan-oreilly",
    "hysteresis": "bilin",
    "im_type": "sa",
    "backboneMethod": "backbone",
    "backbone": backbone,
})

print("Status:", result["status"])

Multiple buildings can be processed in one call with edp_im_batch:

result = edp_im_batch([
    {
        "hysteresis": "bilin",
        "im_type": "sa",
        "method": "shahnazaryan-oreilly",
        "backboneMethod": "backbone",
        "backbone": {
            "damping": 0.02,
            "ductility": 3,
            "ductility_f": 6,
            "hardening_ratio": 0.05,
            "period": 1.0,
        },
    },
    {
        "hysteresis": "bilin",
        "im_type": "sa",
        "method": "shahnazaryan-oreilly",
        "backboneMethod": "backbone",
        "backbone": {
            "damping": 0.03,
            "ductility": 3,
            "ductility_f": 6,
            "hardening_ratio": 0.02,
            "period": 0.5,
        },
    },
])

print("Success IDs:", result["success_ids"])
print("Failure IDs:", result["failure_ids"])

Supported methods

The method key selects the R-mu-T relationship used to convert spectral acceleration to ductility demand. Available options:

  • "shahnazaryan-oreilly" — ML-based, recommended for general use

  • "ec8" — Eurocode 8

  • "krawinkler_nassar"

  • "miranda"

  • "newmark_hall"

  • "vidic"

  • "guerrini"