Changelog
Source:NEWS.md
newmark 1.1.0
Bug fixes
-
inst/CITATION: replaceutils::packageVersion("newmark")withmeta$Versionso the citation file evaluates correctly when the package is not yet installed (CRAN pre-test failure). -
inst/WORDLIST: add 135 domain-specific terms (author surnames, technical vocabulary, package-internal identifiers) sospelling::spell_check_package()exits clean. AddLanguage: en-USto DESCRIPTION.
Documentation
Vignettes rebuilt for fidelity to the implemented code and the underlying paper (Verri Kozlowski 2026, working). Hallucinated cross-references to deleted articles,
oqt-pipeline terminology leaking intonewmarkprose, and inconsistent function-name references were removed.New vignette
dynamic-site-responsedocuments the dsra-side methodology merged intonewmark1.1.0: Ishihara (1996) small-strain shear-modulus model, Gazetas & Dakoulas (1985) inhomogeneous truncated shear-beam fundamental period, synthetic-profile generation viagetSiteProperties()/geSiteTable(), and the ASCE 7-22 site-class utilitiesVs30toSID()/SIDtoVs30().pipelinevignette rewritten as a function-level overview of the four library workflows (dynamic site response, hazard import, displacement curves, seismic coefficient), with a single top-of-file note that orchestration on a hazard grid (looping scenarios, persisting tables) is the consumer’s responsibility.ensemble-formulationvignette now states the inverse-problem formulation explicitly, documents the BM19 near-fault PGV > 115 cm s⁻¹ correction and theNFCD100/D50 selector, and lists the operational defaults (Monte Carlo size, k_y grid, reported quantiles) that the package and downstream consumers share.newmark-quickstartvignette: stale links to deleted articles removed;Next stepsrewritten as in-packagevignette()and?fnnamereferences.
Improvements (no behavioural change)
-
interpolateSaTable()andbuildQSpline()now emit a descriptivewarning()when called on a UHS table with duplicate(Tn, p)rows, pointing the user to the standard disaggregation key(siteID, ID, Vs30, TR). R’s crypticregularize.values: collapsing to unique 'x' valueswarning is suppressed in favour of the new message — it is replaced, not stacked on top. Numerical behaviour is unchanged: duplicate rows are still silently collapsed viastats::approx/stats::splinefunties = "mean". SoT-validated bit-identical on clean fixtures (5/5 direct + 36/36 pipeline) and byte-equal output on duplicated input.
Internal renames (no public API change)
- Private helpers
.summarizeDn(),.summarizeDnDraws(),.aggregateWeighted()parameterp.valsrenamed topVals. Producer.sampleDnScenario()returns the list element under the new keypVals(wasp.vals). ConsumersfitDnCurve()andfitDnModel()updated to read.sample$pVals. All references are intra-package; no exported symbol changes signature. SoT-validated (Stage B helpers direct identity 3/3; Stage C swap-in-place viaassignInNamespaceover the 6 affected functions running the full fitDnCurve grid 216/216, both bit-identical).
Breaking changes
getDnKy()parameters renamed for STYLE.md compliance:ky.n→kyN,p.ref→pRef. Output is bit-identical for any call that uses the defaults or passes the args by position. Callers that passed by name must update the keyword. No live caller in the ecosystem (oqt, research scripts, MCP server, skill templates) was found to pass these by name; the rename is a clean keyword change. SoT-validated (Stage A direct identity 27/27 across 3 fixtures × 3 Ts × 3 kyN values; Stage C swap-in-place viaassignInNamespace216/216 across the full fitDnCurve pipeline).-
fitDnCurve()no longer acceptsNS.draws. The parameter was a partial-retention knob (filterdrawsto the firstNS.drawsrealisations) that no caller used; every observed call site setNS.draws = NS. The defaultNS.draws = 0Lproduceddraws = NULL, which silently brokeinvertDnDraws()for callers who followed the README pattern.drawsis now always returned as a populateddata.table(or an emptydata.tablewith the four canonical columns when no model produces output, replacing the priorNULLcorner-case return).Migration: drop
NS.draws = ...from anyfitDnCurve()call. Output forNS.draws = NScallers (the universal pattern) is bit-identical (verified across vignette + 2 real UHSTable fixtures × 3 seeds × 2 NS × 3 Ts × 2 NFC × 2 weight sets).