Repository navigation
OQ-VMTK v1.2.0 Release - #49
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release v1.2.0: Latest stable version of OQ-VMTK
This PR prepares v1.2.0, the first stable release of OQ-VMTK. It also contains the corrections made in response to the peer-review comments on the companion EQ Spectra paper.
Release housekeeping
1.2.0inopenquake/vmtk/__init__.pyandCITATION.cff.CHANGELOG.mdis rewritten as a singlev1.2.0entry. This version is the starting point of the changelog.pip config set global.timeout 100, as an alternative to--timeout=100.slfgenerator: the deprecated pydanticvalidatoris replaced byfield_validator(pydantic v2).Functionality in this release
calibrationcalibrate_model()derives storey force–deformation properties of MDOF stick-and-mass models from SDOF capacity curves, using a power-law or eigenvector first-mode shape and a soft-storey option. It has no OpenSees dependency.modellerimcalculatorimselectionpostprocessorcalculate_riskcomputes AADP and AALR.slfgeneratorplotterutilitiesThere are 13 demo notebooks covering the full workflow, including the new
EQSpectraExample. It is the electronic supplement to the paper's illustrative case study.Updates since
v1.1.1Analysis and collapse detection (
modeller)do_nrha_analysisanddo_nrha_analysis_sequences: collapse detection relied only oneleResponse, which can freeze once a spring fails, so a run could report "ANALYSIS SUCCESSFUL" with absurd drifts. Both methods now also cross-check the nodal inter-storey displacement against the MinMax limit at every step, and they check both X and Y deformation under bidirectional loading.do_spo_analysishad no collapse detection and could silently report success after the base shear decayed to about zero. It now has the same checks as the CPO method and returns aconv_indexflag.minmax_multiplierargument had no effect on when collapse was reported. It is now applied consistently.push_dirwas ignored in some checks and recordings, so pushover in directions 2 and 3 inspected the wrong DOF. It now usespush_dir - 1.pinching4_paramsadding more flexibility for users to define their own calibrated pinching4 parameters instead of only relying on the hard-coded default parameters, and the collapse bound throughminmax_multiplier. Defaults are unchanged.Intensity measures (
imcalculator)Fragility and vulnerability (
postprocessor)calculate_average_annual_lossandcalculate_average_annual_damage_probabilityare merged into onecalculate_risk. The integration logic is unchanged.Storey loss functions (
slfgenerator)Component IDinstead of row position. Previouslyvalidate_ds_dependencesilently mismatched components whenever IDs weren't1..nin row order.scipy.stats.truncnorminstead of a rejection loop. This removes a possible infinite loop and runs about 100× faster.generate()now returns empirical percentiles.Plotting and demos
plot_slf_modelnow overlays multiple keys on one set of axes. Before, only the last key was drawn.NonlinearTimeHistoryAnalysisnow correctly reports collapse.PushoverAnalysisuses a displacement target that stays in the well-behaved range.Breaking changes (relative to v1.1.x)
calibrationAPI is replaced bycalibrate_model(). The 5-tuple return is unchanged, butmetadatais reduced togamma_real,is_sos,is_frameandstorey_heights.slfgeneratoroutput keys change:slf_16th,slfandslf_84thare added, anderror_max,error_cumand the fitted-regression keys are removed. The primary curve is now the median, not the mean.highpass_hz=Noneto restore plain integration.Testing