You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-ups from the review of #205 (merged): cleanup and efficiency items, none of which affect correctness of the merged feature. Full detail in #205 (comment) (item 8 and the collapsed "Minor notes").
Deduplicate multi-domain restart validation (src/simulation.jl:233). process_multidomain_restart! re-implements the index-range/step-count checks and snapshot-time read from process_restart!, and _material_models_used string-mirrors the block→material→model resolution to duplicate the J2-plasticity abort that SolidMechanics() already enforces per subdomain. Extract a shared read_restart_snapshot_time(mesh, index) helper and drop the mirrored J2 pre-check; this also removes the double YAML parse and double Exodus open per subdomain at startup.
Apply the Mfc correction unconditionally (src/time_integrator.jl:268). It is currently gated on model.restarted/trust_schwarz, so a fresh run with nonzero prescribed boundary acceleration at t=0 still gets the old, uncorrected initial acceleration — the code comment itself explains why that's wrong. On an at-rest start the correction term vanishes, so applying it always changes nothing there and removes the restart special case.
Move fixed/schwarz_fixed/trusted_fixed construction into the else branch of initialize(::Newmark, ...) — it currently allocates and sweeps BC maps on every non-restart initialization that never uses the result.
Remove the write-only subparams["_is_subdomain"] = true (src/simulation.jl:515) — nothing reads it.
Release params["restart_info"] after model construction — the full 3×N snapshot matrices currently stay alive for the whole run alongside the model's own copies (doubled again for a ROM's internal FOM model).
Rewrite the hardcoded stress-discrepancy assertions as upper bounds (test/single-ahead-clamped-opinf-fom-restart.jl:86, test/single-ahead-clamped-opinf-rom-restart.jl:123). @test err_abs ≈ 6.055e-6 atol = 1.0e-5 has atol larger than the target, so it is effectively err < ~1.7e-5 written as an equality; a plain @test err_abs < tol is clearer and less platform-brittle (see the macOS loosening in 906e044).
Reuse the restart example YAMLs in the FOM-FOM Schwarz restart test (test/schwarz-ahead-overlap-dynamic-clamped-single-gaussian-fom-fom-restart.jl:93) instead of ~180 inlined lines that duplicate them; the sibling ROM test's copy-and-patch pattern keeps test and example from diverging. Also consider disabling CSV output in single-ahead-clamped-opinf-fom-restart.jl the way its siblings do.
Consider a supports_restart trait instead of the RESTART_SUPPORTED_MODEL_TYPES string table (src/simulation.jl:31), which must be kept in sync with create_model() by hand.
Follow-ups from the review of #205 (merged): cleanup and efficiency items, none of which affect correctness of the merged feature. Full detail in #205 (comment) (item 8 and the collapsed "Minor notes").
src/simulation.jl:233).process_multidomain_restart!re-implements the index-range/step-count checks and snapshot-time read fromprocess_restart!, and_material_models_usedstring-mirrors the block→material→model resolution to duplicate the J2-plasticity abort thatSolidMechanics()already enforces per subdomain. Extract a sharedread_restart_snapshot_time(mesh, index)helper and drop the mirrored J2 pre-check; this also removes the double YAML parse and double Exodus open per subdomain at startup.src/time_integrator.jl:268). It is currently gated onmodel.restarted/trust_schwarz, so a fresh run with nonzero prescribed boundary acceleration at t=0 still gets the old, uncorrected initial acceleration — the code comment itself explains why that's wrong. On an at-rest start the correction term vanishes, so applying it always changes nothing there and removes the restart special case.fixed/schwarz_fixed/trusted_fixedconstruction into theelsebranch ofinitialize(::Newmark, ...)— it currently allocates and sweeps BC maps on every non-restart initialization that never uses the result.subparams["_is_subdomain"] = true(src/simulation.jl:515) — nothing reads it.params["restart_info"]after model construction — the full 3×N snapshot matrices currently stay alive for the whole run alongside the model's own copies (doubled again for a ROM's internal FOM model).test/single-ahead-clamped-opinf-fom-restart.jl:86,test/single-ahead-clamped-opinf-rom-restart.jl:123).@test err_abs ≈ 6.055e-6 atol = 1.0e-5hasatollarger than the target, so it is effectivelyerr < ~1.7e-5written as an equality; a plain@test err_abs < tolis clearer and less platform-brittle (see the macOS loosening in 906e044).test/schwarz-ahead-overlap-dynamic-clamped-single-gaussian-fom-fom-restart.jl:93) instead of ~180 inlined lines that duplicate them; the sibling ROM test's copy-and-patch pattern keeps test and example from diverging. Also consider disabling CSV output insingle-ahead-clamped-opinf-fom-restart.jlthe way its siblings do.supports_restarttrait instead of theRESTART_SUPPORTED_MODEL_TYPESstring table (src/simulation.jl:31), which must be kept in sync withcreate_model()by hand.