Skip to content

remove numerical instability in shock_spectrum for damp values near zero #182

@CrepeGoat

Description

@CrepeGoat

The coefficient generation functions are written to perform the verbatim calculations described in ISO 18431-4. These formulas are written in terms of the quality factor Q, which is related to the damping coefficient:
ζ = 1 / (2Q)
-> Q = 1 / (2ζ)
Notably, the damping coefficient can take any value in the range ζ ∈ [0, 1], which means the quality factor lies in the infinite range Q ∈ [1/2, ∞], which can exhibit numerical instabilities in the higher value range, i.e., when ζ -> 0.

However, because these formulas exclusively use Q as an inverted factor (1 / Q), the equations could be equivalently expressed in terms of the damping coefficient (1 / Q) = 2ζ, which would remove the numerical instabilities from computations involving near-infinite-valued Q. This would make our shock_spectrum calculations more resilient to numerical errors in the (admittedly uncommon) use case where ζ -> 0.

Metadata

Metadata

Assignees

No one assigned

    Labels

    endaq.calcRelated to `endaq.calc`enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions