ANYsolver 0.1.2__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. anysolver-0.3.0/CHANGELOG.md +145 -0
  2. {anysolver-0.1.2 → anysolver-0.3.0}/LICENSE +674 -674
  3. {anysolver-0.1.2 → anysolver-0.3.0}/MANIFEST.in +9 -6
  4. {anysolver-0.1.2 → anysolver-0.3.0}/MIGRATION.md +22 -2
  5. {anysolver-0.1.2 → anysolver-0.3.0}/PKG-INFO +319 -203
  6. {anysolver-0.1.2 → anysolver-0.3.0}/README.md +266 -155
  7. {anysolver-0.1.2 → anysolver-0.3.0}/docs/ARCHITECTURE.md +370 -288
  8. {anysolver-0.1.2 → anysolver-0.3.0}/docs/ARC_LENGTH.md +167 -167
  9. anysolver-0.3.0/docs/E3_HW29_SOURCE_IDENTITY.md +141 -0
  10. anysolver-0.3.0/docs/E3_MITC9I_REFERENCE.md +160 -0
  11. anysolver-0.3.0/docs/E3_ROUTE_SELECTION_COMPLETION.md +47 -0
  12. anysolver-0.3.0/docs/E3_ROUTE_SELECTION_INDEPENDENT_REVIEW.md +221 -0
  13. anysolver-0.3.0/docs/E3_ROUTE_SELECTION_REPORT.md +93 -0
  14. anysolver-0.3.0/docs/E4_BASELINE_AND_AUTHORITY.md +20 -0
  15. anysolver-0.3.0/docs/E4_COMPLETION.md +60 -0
  16. anysolver-0.3.0/docs/E4_INDEPENDENT_REVIEW.md +253 -0
  17. anysolver-0.3.0/docs/E4_OPEN_CORE_IDENTITY.md +223 -0
  18. anysolver-0.3.0/docs/E4_PL_Q1A_INDEPENDENT_REVIEW.md +82 -0
  19. anysolver-0.3.0/docs/E4_PL_Q1A_LOCAL_ALGEBRA.md +175 -0
  20. anysolver-0.3.0/docs/E4_PL_Q1A_PLANAR_IDENTITY.md +236 -0
  21. anysolver-0.3.0/docs/E4_PL_Q1A_PLAN_REVIEW.md +113 -0
  22. anysolver-0.3.0/docs/E4_PL_Q1A_QUALIFICATION_REPORT.md +87 -0
  23. anysolver-0.3.0/docs/E4_PL_Q1R_COMPLETION.md +40 -0
  24. anysolver-0.3.0/docs/E4_PL_Q1R_FRAME_IDENTITY.md +359 -0
  25. anysolver-0.3.0/docs/E4_PL_Q1R_INDEPENDENT_REVIEW.md +120 -0
  26. anysolver-0.3.0/docs/E4_PL_Q1R_LOCAL_QUALIFICATION.md +77 -0
  27. anysolver-0.3.0/docs/E4_PL_Q1R_PLAN_REVIEW.md +153 -0
  28. anysolver-0.3.0/docs/E4_PL_Q1S_COMPLETION.md +53 -0
  29. anysolver-0.3.0/docs/E4_PL_Q1S_LOCAL_QUALIFICATION.md +90 -0
  30. anysolver-0.3.0/docs/E4_PL_Q1T_COMPLETION.md +63 -0
  31. anysolver-0.3.0/docs/E4_PL_Q1T_LOCAL_QUALIFICATION.md +105 -0
  32. anysolver-0.3.0/docs/E4_PL_Q1U_COMPLETION.md +25 -0
  33. anysolver-0.3.0/docs/E4_PL_Q1U_LOCAL_QUALIFICATION.md +13 -0
  34. anysolver-0.3.0/docs/E4_PL_Q1V_COMPLETION.md +25 -0
  35. anysolver-0.3.0/docs/E4_PL_Q1V_LOCAL_QUALIFICATION.md +15 -0
  36. anysolver-0.3.0/docs/E4_PL_Q1W_BOUNDED_RESULT.md +25 -0
  37. anysolver-0.3.0/docs/E4_PL_Q1X_BOUNDED_RESULT.md +27 -0
  38. anysolver-0.3.0/docs/E4_PL_Q1Y_BOUNDED_LOCAL_ALGEBRA.md +9 -0
  39. anysolver-0.3.0/docs/E4_PL_VARIATIONAL_CLOSURE.md +263 -0
  40. anysolver-0.3.0/docs/E4_ROUTE_REPORT.md +116 -0
  41. anysolver-0.3.0/docs/E4_WS_FEASIBILITY_THEOREM.md +100 -0
  42. anysolver-0.3.0/docs/NONLINEAR_PERFORMANCE.md +640 -0
  43. anysolver-0.3.0/docs/PERFORMANCE_ARCHITECTURE.md +194 -0
  44. anysolver-0.3.0/docs/QUALITY_CONTROL.md +102 -0
  45. anysolver-0.3.0/docs/S4_CANDIDATE_A_OPEN_A1_RANK_CERTIFICATE.md +63 -0
  46. anysolver-0.3.0/docs/S4_CANDIDATE_A_OPEN_A2_INF_SUP_CERTIFICATE.md +92 -0
  47. anysolver-0.3.0/docs/S4_CANDIDATE_A_OPEN_INDEPENDENT_REVIEW.md +79 -0
  48. anysolver-0.3.0/docs/S4_CANDIDATE_A_OPEN_QUALIFICATION_REPORT.md +89 -0
  49. anysolver-0.3.0/docs/S4_CANDIDATE_C_QUOTIENT_DERIVATION.md +131 -0
  50. anysolver-0.3.0/docs/S4_CANDIDATE_C_QUOTIENT_INDEPENDENT_REVIEW.md +104 -0
  51. anysolver-0.3.0/docs/S4_CANDIDATE_C_QUOTIENT_QUALIFICATION_REPORT.md +89 -0
  52. anysolver-0.3.0/docs/S4_CANDIDATE_E0_FORMULATION_DERIVATION.md +82 -0
  53. anysolver-0.3.0/docs/S4_CANDIDATE_E0_INDEPENDENT_REVIEW.md +86 -0
  54. anysolver-0.3.0/docs/S4_CANDIDATE_E0_QUALIFICATION_REPORT.md +90 -0
  55. anysolver-0.3.0/docs/S4_CANDIDATE_E1_A_DERIVATION.md +73 -0
  56. anysolver-0.3.0/docs/S4_CANDIDATE_E1_A_INDEPENDENT_REVIEW.md +211 -0
  57. anysolver-0.3.0/docs/S4_CANDIDATE_E1_QUALIFICATION_REPORT.md +102 -0
  58. anysolver-0.3.0/docs/S4_CANDIDATE_E1_R_DERIVATION.md +78 -0
  59. anysolver-0.3.0/docs/S4_CANDIDATE_E1_R_INDEPENDENT_REVIEW.md +205 -0
  60. anysolver-0.3.0/docs/S4_DRILL_CONSTRAINT_DERIVATION.md +211 -0
  61. anysolver-0.3.0/docs/S4_E2_A_EXTENSION_CLOSURE.md +48 -0
  62. anysolver-0.3.0/docs/S4_E2_A_FORMULATION_DERIVATION.md +242 -0
  63. anysolver-0.3.0/docs/S4_E2_A_INDEPENDENT_REVIEW.md +166 -0
  64. anysolver-0.3.0/docs/S4_E2_A_QUALIFICATION_REPORT.md +113 -0
  65. anysolver-0.3.0/docs/S4_EQ21_EQ25_CORRECTION_PLAN.md +141 -0
  66. anysolver-0.3.0/docs/S4_FULL_PRODUCTION_QUALIFICATION_PROGRAM.md +289 -0
  67. anysolver-0.3.0/docs/S4_GEOMETRY_HANDOFF.md +512 -0
  68. anysolver-0.3.0/docs/S4_IMPROVED_FORMULATION.md +513 -0
  69. anysolver-0.3.0/docs/S4_IMPROVED_QUALIFICATION_FINAL_STATUS.md +58 -0
  70. anysolver-0.3.0/docs/S4_NULLSPACE_SEMANTICS_PROOF.md +331 -0
  71. anysolver-0.3.0/docs/S4_NULLSPACE_SEMANTICS_PROOF_PLAN.md +680 -0
  72. anysolver-0.3.0/docs/S4_PLAN_BASELINE_ADDENDUM.md +68 -0
  73. anysolver-0.3.0/docs/S4_REDUCED_RESEARCH.md +201 -0
  74. anysolver-0.3.0/docs/S4_RESTRICTED_RELEASE_STATUS.md +99 -0
  75. anysolver-0.3.0/docs/S4_STAGE_M_CANDIDATE_A_DISCRETIZATION_DERIVATION.md +310 -0
  76. anysolver-0.3.0/docs/S4_STAGE_M_CANDIDATE_A_DISCRETIZATION_REPORT.md +82 -0
  77. anysolver-0.3.0/docs/S4_STAGE_M_CONSTRAINED_DERIVATION.md +77 -0
  78. anysolver-0.3.0/docs/S4_STAGE_M_ENERGETIC_DERIVATION.md +350 -0
  79. anysolver-0.3.0/docs/S4_STAGE_M_MECHANICS_SELECTION_PLAN.md +228 -0
  80. anysolver-0.3.0/docs/S4_STAGE_M_SELECTION_REPORT.md +89 -0
  81. {anysolver-0.1.2 → anysolver-0.3.0}/docs/THEORY.md +858 -700
  82. anysolver-0.3.0/docs/agent_plans/S4_CANDIDATE_A_OPEN_QUALIFICATION_PLAN.md +79 -0
  83. anysolver-0.3.0/docs/agent_plans/S4_CANDIDATE_C_LINEAR_QUOTIENT_QUALIFICATION_PLAN.md +101 -0
  84. anysolver-0.3.0/docs/agent_plans/S4_CANDIDATE_E0_DNV_LINEAR_BUCKLING_QUALIFICATION_PLAN.md +110 -0
  85. anysolver-0.3.0/docs/agent_plans/S4_CANDIDATE_E1_ALLMAN_SESTRA_QUALIFICATION_PLAN.md +115 -0
  86. anysolver-0.3.0/docs/agent_plans/S4_E2_A_SOURCE_KINEMATICS_PLAN.md +121 -0
  87. anysolver-0.3.0/docs/agent_plans/S4_E3_A_VARIATIONAL_CLOSURE_STUDY_PLAN.md +100 -0
  88. anysolver-0.3.0/docs/agent_plans/S4_E3_HW29_MITC9I_ROUTE_SELECTION_PLAN.md +123 -0
  89. anysolver-0.3.0/docs/agent_plans/S4_E4_PL_LINEAR_QUALIFICATION_PLAN.md +89 -0
  90. anysolver-0.3.0/docs/agent_plans/S4_E4_PL_PLANAR_LINEAR_QUALIFICATION_PLAN.md +95 -0
  91. anysolver-0.3.0/docs/agent_plans/S4_E4_PL_Q1R_NUMBERED_FRAME_PLAN.md +156 -0
  92. anysolver-0.3.0/docs/agent_plans/S4_E4_PL_Q1S_IMPLEMENTATION_COMPLETION_PLAN.md +491 -0
  93. anysolver-0.3.0/docs/agent_plans/S4_E4_PL_Q1T_EXACT_ORACLE_COMPLETION_PLAN.md +206 -0
  94. anysolver-0.3.0/docs/agent_plans/S4_E4_PL_Q1U_EXECUTION_GUARD_COMPLETION_PLAN.md +123 -0
  95. anysolver-0.3.0/docs/agent_plans/S4_E4_PL_Q1V_LOCAL_COMPLETION_PLAN.md +83 -0
  96. anysolver-0.3.0/docs/agent_plans/S4_E4_PL_Q1W_BOUNDED_EXACT_PROOF_PLAN.md +31 -0
  97. anysolver-0.3.0/docs/agent_plans/S4_E4_PL_Q1X_BOUNDED_TRANSPORT_CLOSURE_PLAN.md +35 -0
  98. anysolver-0.3.0/docs/agent_plans/S4_E4_PL_Q1Y_BOUNDED_LOCAL_ALGEBRA_PLAN.md +25 -0
  99. anysolver-0.3.0/docs/agent_plans/S4_E4_VARIATIONAL_DRILL_CLOSURE_PLAN.md +113 -0
  100. anysolver-0.3.0/docs/agent_plans/s4_batch_qualification_agent.md +66 -0
  101. anysolver-0.3.0/docs/agent_plans/s4_drill_constraint_tor_agent.md +34 -0
  102. anysolver-0.3.0/docs/agent_plans/s4_eq21_eq25_editor_agent.md +75 -0
  103. anysolver-0.3.0/docs/agent_plans/s4_handoff_director_agent.md +64 -0
  104. anysolver-0.3.0/docs/agent_plans/s4_handoff_numeric_hardening_addendum.md +172 -0
  105. anysolver-0.3.0/docs/agent_plans/s4_nullspace_heimdall_auditor.md +84 -0
  106. anysolver-0.3.0/docs/agent_plans/s4_nullspace_vidar_editor.md +135 -0
  107. anysolver-0.3.0/docs/agent_plans/s4_reference_core_agent.md +62 -0
  108. anysolver-0.3.0/docs/agent_plans/s4_stage_m_320_timeout_execution_addendum.md +87 -0
  109. anysolver-0.3.0/docs/agent_plans/s4_stage_m_candidate_a_discretization_addendum.md +270 -0
  110. {anysolver-0.1.2 → anysolver-0.3.0}/docs/reference_cases/README.md +35 -35
  111. {anysolver-0.1.2 → anysolver-0.3.0}/pyproject.toml +6 -1
  112. anysolver-0.3.0/reports/extract_mat_mesh_io_performance_review.md +327 -0
  113. anysolver-0.3.0/scripts/benchmark_advanced_s4_batches.py +240 -0
  114. anysolver-0.3.0/scripts/benchmark_contact_work_buffer.py +254 -0
  115. anysolver-0.3.0/scripts/benchmark_damage_matrix_updates.py +188 -0
  116. anysolver-0.3.0/scripts/benchmark_impact_reduced_assembly.py +274 -0
  117. anysolver-0.3.0/scripts/benchmark_impact_tangent_reuse.py +153 -0
  118. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/benchmark_nonlinear_assembly.py +224 -211
  119. anysolver-0.3.0/scripts/benchmark_recovery_batches.py +128 -0
  120. anysolver-0.3.0/scripts/benchmark_s4_improved.py +280 -0
  121. anysolver-0.3.0/scripts/benchmark_sol_ultra_performance.py +1566 -0
  122. anysolver-0.3.0/scripts/benchmark_sol_ultra_thread_scaling.py +982 -0
  123. anysolver-0.3.0/scripts/check_s4_geometry_handoff.py +477 -0
  124. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/compare_fe_baselines.py +45 -45
  125. anysolver-0.3.0/scripts/compare_s4_improved.py +171 -0
  126. anysolver-0.3.0/scripts/compare_sol_ultra_performance.py +689 -0
  127. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/fetch_calculix_shell_reference.py +79 -79
  128. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/generate_fe_baselines.py +29 -29
  129. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_beam_shell_verification.py +44 -44
  130. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_beam_validity.py +58 -58
  131. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_buckling_validity.py +55 -55
  132. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_capacity_workflow.py +68 -68
  133. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_cylinder_benchmark.py +4 -4
  134. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_element_qualification.py +70 -70
  135. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_external_references.py +63 -63
  136. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_fe_benchmarks.py +55 -55
  137. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_fe_verification.py +737 -737
  138. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_internal_shell_benchmark.py +4 -4
  139. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_mass_modal_validity.py +120 -120
  140. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_mesh_load_bc_verification.py +4 -4
  141. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_plasticity_qualification.py +64 -64
  142. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_recovery_policy.py +30 -30
  143. anysolver-0.3.0/scripts/run_s4_improved_qualification.py +825 -0
  144. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/run_s4_validity.py +84 -84
  145. anysolver-0.3.0/scripts/verify_sol_ultra_numerics.py +2824 -0
  146. {anysolver-0.1.2 → anysolver-0.3.0}/scripts/write_production_readiness.py +4 -4
  147. {anysolver-0.1.2 → anysolver-0.3.0}/setup.cfg +4 -4
  148. {anysolver-0.1.2 → anysolver-0.3.0}/src/ANYsolver.egg-info/PKG-INFO +319 -203
  149. anysolver-0.3.0/src/ANYsolver.egg-info/SOURCES.txt +416 -0
  150. {anysolver-0.1.2 → anysolver-0.3.0}/src/ANYsolver.egg-info/requires.txt +5 -0
  151. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/__init__.py +803 -642
  152. anysolver-0.3.0/src/anysolver/activity.py +1537 -0
  153. anysolver-0.3.0/src/anysolver/analysis_session.py +587 -0
  154. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/anystructure_fem_mode.py +1466 -942
  155. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/arc_length.py +1276 -921
  156. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/assembly.py +1210 -950
  157. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/baselines.py +303 -303
  158. anysolver-0.3.0/src/anysolver/beam_sections.py +292 -0
  159. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/beam_shell_verification.py +4544 -4529
  160. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/beam_validity.py +110 -110
  161. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/benchmarks.py +272 -272
  162. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/boundary.py +610 -598
  163. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/buckling.py +905 -508
  164. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/buckling_validity.py +91 -91
  165. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/capacity_workflow.py +431 -350
  166. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/cases.py +173 -173
  167. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/composite_strip_verification.py +1 -1
  168. anysolver-0.3.0/src/anysolver/constraint_audit.py +553 -0
  169. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/contact.py +670 -155
  170. anysolver-0.3.0/src/anysolver/contact_performance.py +270 -0
  171. anysolver-0.3.0/src/anysolver/control.py +206 -0
  172. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/corotational.py +503 -477
  173. anysolver-0.3.0/src/anysolver/corotational_performance.py +157 -0
  174. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/cylinder_benchmarks.py +1 -1
  175. anysolver-0.3.0/src/anysolver/damage_matrix_performance.py +617 -0
  176. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/dynamics.py +893 -723
  177. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/element_qualification.py +430 -430
  178. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/elements.py +4376 -2881
  179. anysolver-0.3.0/src/anysolver/experimental_csr_assembly.py +238 -0
  180. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/external_references.py +1253 -1370
  181. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/fe_core.py +376 -265
  182. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/fracture.py +620 -568
  183. anysolver-0.3.0/src/anysolver/impact_performance.py +273 -0
  184. anysolver-0.3.0/src/anysolver/impact_reduced_assembly.py +281 -0
  185. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/imperfections.py +390 -390
  186. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/jit_compiler.py +116 -108
  187. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/kernel_warmup.py +1 -1
  188. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/linalg.py +738 -618
  189. anysolver-0.3.0/src/anysolver/mass_properties.py +339 -0
  190. anysolver-0.3.0/src/anysolver/material_curves.py +52 -0
  191. anysolver-0.3.0/src/anysolver/materials.py +43 -0
  192. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/matrix_assembly.py +1028 -687
  193. anysolver-0.3.0/src/anysolver/mesh_gen.py +697 -0
  194. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/mesh_load_bc_verification.py +612 -609
  195. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/modal.py +357 -282
  196. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/nonlinear.py +325 -300
  197. anysolver-0.3.0/src/anysolver/nonlinear_analysis_diagnostics.py +395 -0
  198. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/nonlinear_performance.py +1516 -929
  199. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/nonlinear_performance_batch_b.py +952 -544
  200. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/nonlinear_performance_batch_c.py +808 -533
  201. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/nonlinear_performance_bootstrap.py +164 -120
  202. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/nonlinear_reduced_assembly.py +796 -760
  203. anysolver-0.3.0/src/anysolver/nonlinear_state.py +1573 -0
  204. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/nonlinear_static.py +2443 -1715
  205. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/plasticity.py +1278 -298
  206. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/plasticity_qualification.py +283 -283
  207. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/production_readiness.py +309 -309
  208. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/quality_control.py +1497 -1497
  209. anysolver-0.3.0/src/anysolver/quantities.py +260 -0
  210. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/recovery.py +3042 -2116
  211. anysolver-0.3.0/src/anysolver/recovery_batches.py +267 -0
  212. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/recovery_policy.py +204 -204
  213. anysolver-0.3.0/src/anysolver/recovery_s4.py +289 -0
  214. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/reference_cases.py +366 -425
  215. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/results.py +563 -557
  216. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/runtime.py +9077 -8921
  217. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/s4_validity.py +326 -326
  218. anysolver-0.3.0/src/anysolver/sections.py +67 -0
  219. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/sesam_fem/__init__.py +55 -55
  220. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/sesam_fem/__main__.py +2 -2
  221. anysolver-0.3.0/src/anysolver/sesam_fem/diagnostics.py +5 -0
  222. anysolver-0.3.0/src/anysolver/sesam_fem/document.py +39 -0
  223. anysolver-0.3.0/src/anysolver/sesam_fem/exporter.py +9 -0
  224. anysolver-0.3.0/src/anysolver/sesam_fem/importer.py +203 -0
  225. anysolver-0.3.0/src/anysolver/sesam_fem/records.py +21 -0
  226. anysolver-0.3.0/src/anysolver/sesam_fem/schema.py +35 -0
  227. anysolver-0.3.0/src/anysolver/sesam_fem/sif_importer.py +9 -0
  228. anysolver-0.3.0/src/anysolver/sesam_fem/validation.py +5 -0
  229. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/shell_benchmarks.py +367 -367
  230. anysolver-0.3.0/src/anysolver/shell_formulations/director_field.py +799 -0
  231. anysolver-0.3.0/src/anysolver/shell_formulations/geometry_provenance.py +921 -0
  232. anysolver-0.3.0/src/anysolver/shell_formulations/mitc4_plus_d_quality.py +318 -0
  233. anysolver-0.3.0/src/anysolver/shell_formulations/mitc4_plus_d_reference.py +837 -0
  234. anysolver-0.3.0/src/anysolver/shell_formulations/mitc4_plus_d_scalar.py +209 -0
  235. anysolver-0.3.0/src/anysolver/shell_formulations/protocol.py +222 -0
  236. anysolver-0.3.0/src/anysolver/shell_formulations/q4_common.py +271 -0
  237. anysolver-0.3.0/src/anysolver/shell_formulations/s4_restricted_policy.py +78 -0
  238. anysolver-0.3.0/src/anysolver/shell_sections.py +329 -0
  239. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/test_cases.py +602 -602
  240. anysolver-0.3.0/src/anysolver/threading_policy.py +431 -0
  241. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/validation.py +696 -490
  242. anysolver-0.3.0/src/anysolver/vectorized_beam.py +139 -0
  243. anysolver-0.3.0/src/anysolver/vectorized_generalized_shell.py +448 -0
  244. anysolver-0.3.0/src/anysolver/vectorized_hill48.py +956 -0
  245. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/vectorized_nonlinear.py +335 -334
  246. {anysolver-0.1.2 → anysolver-0.3.0}/src/anysolver/vectorized_stiffness.py +124 -1
  247. {anysolver-0.1.2 → anysolver-0.3.0}/tests/conftest.py +16 -16
  248. {anysolver-0.1.2 → anysolver-0.3.0}/tests/fixtures/fe_baselines/baseline.json +219 -219
  249. anysolver-0.3.0/tests/test_advanced_s4_batches.py +329 -0
  250. anysolver-0.3.0/tests/test_analysis_session.py +393 -0
  251. anysolver-0.3.0/tests/test_anyfileio_version_compatibility.py +784 -0
  252. anysolver-0.3.0/tests/test_anymesher_version_compatibility.py +255 -0
  253. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_arc_length.py +393 -252
  254. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_batch_b_activation.py +11 -11
  255. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_beam_axis_conventions.py +1 -1
  256. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_beam_shell_verification.py +302 -286
  257. anysolver-0.3.0/tests/test_constraint_audit.py +160 -0
  258. anysolver-0.3.0/tests/test_contact_work_buffer.py +201 -0
  259. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_corotational.py +398 -393
  260. anysolver-0.3.0/tests/test_corotational_performance.py +170 -0
  261. anysolver-0.3.0/tests/test_damage_matrix_performance.py +346 -0
  262. anysolver-0.3.0/tests/test_e3_baseline.py +151 -0
  263. anysolver-0.3.0/tests/test_e3_closeout.py +274 -0
  264. anysolver-0.3.0/tests/test_e3_hw29_identity.py +251 -0
  265. anysolver-0.3.0/tests/test_e3_mitc9i_reference.py +240 -0
  266. anysolver-0.3.0/tests/test_e3_route_selection.py +159 -0
  267. anysolver-0.3.0/tests/test_e4_baseline.py +239 -0
  268. anysolver-0.3.0/tests/test_e4_closeout.py +270 -0
  269. anysolver-0.3.0/tests/test_e4_core_identity.py +164 -0
  270. anysolver-0.3.0/tests/test_e4_pl_identity.py +181 -0
  271. anysolver-0.3.0/tests/test_e4_pl_q1a_authority.py +208 -0
  272. anysolver-0.3.0/tests/test_e4_pl_q1a_exact.py +344 -0
  273. anysolver-0.3.0/tests/test_e4_pl_q1r_closeout.py +257 -0
  274. anysolver-0.3.0/tests/test_e4_pl_q1r_preregistration_authority.py +327 -0
  275. anysolver-0.3.0/tests/test_e4_pl_q1s_closeout.py +388 -0
  276. anysolver-0.3.0/tests/test_e4_pl_q1s_frame_and_fields.py +117 -0
  277. anysolver-0.3.0/tests/test_e4_pl_q1s_global_supports.py +51 -0
  278. anysolver-0.3.0/tests/test_e4_pl_q1s_local_algebra.py +63 -0
  279. anysolver-0.3.0/tests/test_e4_pl_q1s_preregistration_authority.py +410 -0
  280. anysolver-0.3.0/tests/test_e4_pl_q1s_recovery.py +87 -0
  281. anysolver-0.3.0/tests/test_e4_pl_q1s_terminal_and_agreement.py +116 -0
  282. anysolver-0.3.0/tests/test_e4_pl_q1t_closeout.py +477 -0
  283. anysolver-0.3.0/tests/test_e4_pl_q1t_contract.py +124 -0
  284. anysolver-0.3.0/tests/test_e4_pl_q1t_exact_backend.py +59 -0
  285. anysolver-0.3.0/tests/test_e4_pl_q1t_frame_and_fields.py +63 -0
  286. anysolver-0.3.0/tests/test_e4_pl_q1t_global_supports.py +22 -0
  287. anysolver-0.3.0/tests/test_e4_pl_q1t_local_algebra.py +31 -0
  288. anysolver-0.3.0/tests/test_e4_pl_q1t_preregistration_authority.py +260 -0
  289. anysolver-0.3.0/tests/test_e4_pl_q1t_recovery.py +33 -0
  290. anysolver-0.3.0/tests/test_e4_pl_q1t_terminal_and_agreement.py +45 -0
  291. anysolver-0.3.0/tests/test_e4_pl_q1u_authority_guard.py +254 -0
  292. anysolver-0.3.0/tests/test_e4_pl_q1u_closeout.py +200 -0
  293. anysolver-0.3.0/tests/test_e4_pl_q1u_contract.py +407 -0
  294. anysolver-0.3.0/tests/test_e4_pl_q1u_exact_backend.py +59 -0
  295. anysolver-0.3.0/tests/test_e4_pl_q1u_frame_and_fields.py +62 -0
  296. anysolver-0.3.0/tests/test_e4_pl_q1u_global_supports.py +21 -0
  297. anysolver-0.3.0/tests/test_e4_pl_q1u_local_algebra.py +30 -0
  298. anysolver-0.3.0/tests/test_e4_pl_q1u_preregistration_authority.py +192 -0
  299. anysolver-0.3.0/tests/test_e4_pl_q1u_recovery.py +32 -0
  300. anysolver-0.3.0/tests/test_e4_pl_q1u_terminal_and_agreement.py +45 -0
  301. anysolver-0.3.0/tests/test_e4_pl_q1v_authority_guard.py +291 -0
  302. anysolver-0.3.0/tests/test_e4_pl_q1v_closeout.py +213 -0
  303. anysolver-0.3.0/tests/test_e4_pl_q1v_commissioning.py +121 -0
  304. anysolver-0.3.0/tests/test_e4_pl_q1v_contract.py +488 -0
  305. anysolver-0.3.0/tests/test_e4_pl_q1v_exact_backend.py +141 -0
  306. anysolver-0.3.0/tests/test_e4_pl_q1v_frame_and_fields.py +62 -0
  307. anysolver-0.3.0/tests/test_e4_pl_q1v_global_supports.py +21 -0
  308. anysolver-0.3.0/tests/test_e4_pl_q1v_local_algebra.py +30 -0
  309. anysolver-0.3.0/tests/test_e4_pl_q1v_preregistration_authority.py +470 -0
  310. anysolver-0.3.0/tests/test_e4_pl_q1v_recovery.py +32 -0
  311. anysolver-0.3.0/tests/test_e4_pl_q1v_terminal_and_agreement.py +45 -0
  312. anysolver-0.3.0/tests/test_e4_pl_q1w_bounded_proof.py +194 -0
  313. anysolver-0.3.0/tests/test_e4_pl_q1x_bounded_transport.py +288 -0
  314. anysolver-0.3.0/tests/test_e4_pl_q1y_bounded_local_algebra.py +185 -0
  315. anysolver-0.3.0/tests/test_e4_route.py +182 -0
  316. anysolver-0.3.0/tests/test_e4_ws_feasibility.py +139 -0
  317. anysolver-0.3.0/tests/test_element_activity.py +237 -0
  318. anysolver-0.3.0/tests/test_element_activity_integration.py +100 -0
  319. anysolver-0.3.0/tests/test_experimental_csr_assembly.py +56 -0
  320. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_external_references.py +24 -2
  321. anysolver-0.3.0/tests/test_extracted_package_wiring.py +40 -0
  322. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_anystructure_fem_mode.py +76 -1
  323. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_architecture.py +147 -147
  324. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_buckling.py +472 -270
  325. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_capacity_workflow.py +158 -116
  326. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_contact.py +806 -785
  327. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_corotational_beam.py +121 -121
  328. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_cylinder_benchmarks.py +1 -1
  329. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_dynamics.py +1 -1
  330. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_element_qualification.py +179 -179
  331. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_element_quality.py +1 -1
  332. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_fracture.py +1 -1
  333. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_infrastructure.py +644 -411
  334. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_mass_modal.py +283 -283
  335. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_nonlinear_dnv.py +308 -325
  336. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_nonlinear_limit_point.py +1 -1
  337. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_nonlinear_static.py +384 -336
  338. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_plasticity_qualification.py +164 -164
  339. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_recovery_policy.py +263 -260
  340. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_reference_cases.py +328 -322
  341. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_s4_validity.py +104 -104
  342. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_shell_verification.py +251 -251
  343. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_theory.py +388 -388
  344. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_triangular_shell.py +1 -1
  345. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_fe_solver_triangular_shell_backend.py +395 -356
  346. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_follower_pressure.py +56 -7
  347. anysolver-0.3.0/tests/test_generalized_beam_sections.py +502 -0
  348. anysolver-0.3.0/tests/test_generalized_section_api_workflows.py +218 -0
  349. anysolver-0.3.0/tests/test_generalized_section_mass_properties.py +306 -0
  350. anysolver-0.3.0/tests/test_generalized_shell_sections.py +369 -0
  351. anysolver-0.3.0/tests/test_generalized_state_recovery.py +316 -0
  352. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_geometry_panel.py +114 -114
  353. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_hht_alpha.py +1 -1
  354. anysolver-0.3.0/tests/test_hill48_plane_stress_plasticity.py +368 -0
  355. anysolver-0.3.0/tests/test_impact_reduced_assembly.py +315 -0
  356. anysolver-0.3.0/tests/test_impact_tangent_reuse.py +229 -0
  357. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_initial_fields_and_staged_history.py +85 -0
  358. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_local_patch_transition.py +570 -570
  359. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_material_history_recovery.py +68 -1
  360. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_mesh_load_bc_verification.py +1 -1
  361. anysolver-0.3.0/tests/test_mesher_improvements.py +126 -0
  362. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_nodal_stress_recovery.py +107 -107
  363. anysolver-0.3.0/tests/test_nonlinear_analysis_diagnostics.py +68 -0
  364. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_nonlinear_impact_plasticity.py +7 -1
  365. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_nonlinear_performance.py +511 -268
  366. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_nonlinear_performance_batch_b.py +122 -82
  367. anysolver-0.3.0/tests/test_nonlinear_performance_batch_c.py +758 -0
  368. anysolver-0.3.0/tests/test_nonlinear_state_batches.py +355 -0
  369. anysolver-0.3.0/tests/test_nonlinear_state_lifecycle.py +414 -0
  370. anysolver-0.3.0/tests/test_orthotropic_elements.py +780 -0
  371. anysolver-0.3.0/tests/test_orthotropic_material_contract.py +94 -0
  372. anysolver-0.3.0/tests/test_orthotropic_workflow_integration.py +689 -0
  373. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_performance_improvements.py +283 -227
  374. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_phase2.py +1 -1
  375. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_production_readiness.py +108 -108
  376. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_production_validation.py +133 -128
  377. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_quadratic_beam_nonlinear.py +148 -148
  378. anysolver-0.3.0/tests/test_recovery_batches.py +186 -0
  379. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_recovery_qualification.py +16 -0
  380. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_runtime_api.py +176 -1
  381. anysolver-0.3.0/tests/test_s4_candidate_a_open_a1_rank.py +172 -0
  382. anysolver-0.3.0/tests/test_s4_candidate_a_open_a2_inf_sup.py +225 -0
  383. anysolver-0.3.0/tests/test_s4_candidate_a_open_qualification.py +296 -0
  384. anysolver-0.3.0/tests/test_s4_candidate_c_quotient_exact.py +227 -0
  385. anysolver-0.3.0/tests/test_s4_candidate_c_quotient_qualification.py +200 -0
  386. anysolver-0.3.0/tests/test_s4_candidate_e0_closeout.py +125 -0
  387. anysolver-0.3.0/tests/test_s4_candidate_e0_source_gate.py +259 -0
  388. anysolver-0.3.0/tests/test_s4_candidate_e1_a_exact_rank.py +68 -0
  389. anysolver-0.3.0/tests/test_s4_candidate_e1_a_qualification.py +140 -0
  390. anysolver-0.3.0/tests/test_s4_candidate_e1_closeout.py +484 -0
  391. anysolver-0.3.0/tests/test_s4_candidate_e1_r_exact_regularizer.py +99 -0
  392. anysolver-0.3.0/tests/test_s4_candidate_e1_r_qualification.py +174 -0
  393. anysolver-0.3.0/tests/test_s4_director_field.py +476 -0
  394. anysolver-0.3.0/tests/test_s4_drill_constraint_derivation.py +262 -0
  395. anysolver-0.3.0/tests/test_s4_e2_a_closeout.py +341 -0
  396. anysolver-0.3.0/tests/test_s4_e2_a_exact_kinematics.py +273 -0
  397. anysolver-0.3.0/tests/test_s4_e2_a_qualification.py +238 -0
  398. anysolver-0.3.0/tests/test_s4_eq21_eq25_reference.py +535 -0
  399. anysolver-0.3.0/tests/test_s4_geometry_handoff.py +422 -0
  400. anysolver-0.3.0/tests/test_s4_improved_qualification.py +164 -0
  401. anysolver-0.3.0/tests/test_s4_improved_qualification_closeout.py +299 -0
  402. anysolver-0.3.0/tests/test_s4_nullspace_semantics_proof.py +365 -0
  403. anysolver-0.3.0/tests/test_s4_restricted_activity.py +73 -0
  404. anysolver-0.3.0/tests/test_s4_restricted_integration.py +150 -0
  405. anysolver-0.3.0/tests/test_s4_stage_m_candidate_a_discretization.py +137 -0
  406. anysolver-0.3.0/tests/test_s4_stage_m_mechanics.py +929 -0
  407. anysolver-0.3.0/tests/test_sesam_fem.py +128 -0
  408. anysolver-0.3.0/tests/test_sol_ultra_benchmark_script.py +170 -0
  409. anysolver-0.3.0/tests/test_sol_ultra_comparison_script.py +196 -0
  410. anysolver-0.3.0/tests/test_sol_ultra_numerical_verification.py +331 -0
  411. anysolver-0.3.0/tests/test_sol_ultra_thread_scaling_script.py +93 -0
  412. anysolver-0.3.0/tests/test_solver_control_contracts.py +275 -0
  413. anysolver-0.3.0/tests/test_threading_policy.py +342 -0
  414. anysolver-0.3.0/tests/test_transient_reduced_output.py +126 -0
  415. anysolver-0.3.0/tests/test_vectorized_hill48.py +544 -0
  416. anysolver-0.1.2/CHANGELOG.md +0 -63
  417. anysolver-0.1.2/docs/NONLINEAR_PERFORMANCE.md +0 -256
  418. anysolver-0.1.2/docs/QUALITY_CONTROL.md +0 -248
  419. anysolver-0.1.2/src/ANYsolver.egg-info/SOURCES.txt +0 -156
  420. anysolver-0.1.2/src/anysolver/mass_properties.py +0 -179
  421. anysolver-0.1.2/src/anysolver/material_curves.py +0 -231
  422. anysolver-0.1.2/src/anysolver/mesh_gen.py +0 -1065
  423. anysolver-0.1.2/src/anysolver/sesam_fem/diagnostics.py +0 -65
  424. anysolver-0.1.2/src/anysolver/sesam_fem/document.py +0 -814
  425. anysolver-0.1.2/src/anysolver/sesam_fem/exporter.py +0 -84
  426. anysolver-0.1.2/src/anysolver/sesam_fem/importer.py +0 -365
  427. anysolver-0.1.2/src/anysolver/sesam_fem/records.py +0 -257
  428. anysolver-0.1.2/src/anysolver/sesam_fem/schema.py +0 -107
  429. anysolver-0.1.2/src/anysolver/sesam_fem/sif_importer.py +0 -397
  430. anysolver-0.1.2/src/anysolver/sesam_fem/validation.py +0 -62
  431. anysolver-0.1.2/tests/test_mesher_improvements.py +0 -165
  432. anysolver-0.1.2/tests/test_nonlinear_performance_batch_c.py +0 -349
  433. anysolver-0.1.2/tests/test_sesam_fem.py +0 -378
  434. {anysolver-0.1.2 → anysolver-0.3.0}/src/ANYsolver.egg-info/dependency_links.txt +0 -0
  435. {anysolver-0.1.2 → anysolver-0.3.0}/src/ANYsolver.egg-info/top_level.txt +0 -0
  436. {anysolver-0.1.2 → anysolver-0.3.0}/tests/test_plane_stress_analytical_tangent.py +0 -0
@@ -0,0 +1,145 @@
1
+ # Changelog
2
+
3
+ ## Unreleased
4
+
5
+ ## 0.3.0 - 2026-08-23
6
+
7
+ - Preserve the corrected published-2025 S4 reference, nullspace proof, geometry
8
+ handoff, and qualification scaffold as dormant release evidence. The legacy
9
+ S4 remains the production default and improved-S4 activation remains
10
+ unavailable under the recorded restrictions; no gauge constraint, invented
11
+ stiffness, dispatch route, or activity-policy change is introduced.
12
+ - Widen the declared ANYfileio consumer range to `>=0.1,<0.3`, add pinned
13
+ source compatibility cells for the 0.1 and 0.2 public contracts, and align
14
+ the publication dependency gate. Installed-wheel, index-resolver, and
15
+ publication qualification remain separate release gates.
16
+ - Widen the declared ANYmesher consumer range to `>=0.1,<0.3`, add CI coverage
17
+ for pinned 0.1.0 and 0.2.1 endpoints, preserve the public neutral panel, mesh,
18
+ quality, and section contract, retain the strict 0.3 cap, and align CI and
19
+ publication dependency gates with the declared metadata.
20
+ - Complete the Sol Ultra `performance_2` campaign with qualified static/arc
21
+ persistent nonlinear state transactions, compiled canonical-curve Hill-48 batches,
22
+ orthotropic/generalized S4 kernels, revision-cached corotational block
23
+ transforms, large-selection isotropic S4 recovery, and direct reduced
24
+ elastic nonlinear-impact assembly. Unsupported formulations, curves, state
25
+ layouts, impact plastic/fiber history, small recovery selections, affine
26
+ constraints, and damage/state scopes retain explicit scalar or
27
+ full-coordinate fallbacks with reason diagnostics.
28
+ - Add conservative opt-in impact tangent/factorization reuse, compact lazy
29
+ contact records, and revision-guarded incremental damage K/M updates. A zero
30
+ reuse budget remains the full-Newton oracle; contact, convergence, plastic,
31
+ damage, deletion, time-step, and line-search changes force a refresh. Damage
32
+ plan setup is gated by projected future events and retained-memory headroom;
33
+ invalidation returns to the exact rebuild and never scales point masses.
34
+ - Add the optional caller-owned `AnalysisSession` for bounded K/M/constraint,
35
+ reduced-matrix, output-row, and factorization reuse across repeated linear,
36
+ modal, buckling, transient, and capacity work. Linear transient loads are
37
+ preprojected once and selected history output avoids full-vector
38
+ reconstruction when recovery does not require it. Explicit solver,
39
+ assembly, and recovery thread scopes remain independently controlled and are
40
+ restored after each call.
41
+ - Release 0.2.0 extraction boundary: material behavior now comes from
42
+ `ANYmaterial`, neutral geometry/meshing from `ANYmesher`, and SESAM/CalculiX
43
+ parsing and writing from `ANYfileio`. ANYsolver retains solver-specific
44
+ FEModel adapters, MPC elements, boundary interpretation, external execution,
45
+ comparisons, and the 0.2.x legacy import facades. Deterministic FE baselines
46
+ remain unchanged.
47
+ - Add dependency-free generalized section contracts: pre-integrated shell
48
+ `A/B/D/As` with membrane-bending coupling and optional areal inertia, plus a
49
+ coupled beam 6x6 stiffness and optional mass-per-length law. Generated
50
+ geometry accepts inline or named definitions; recovery exposes exact
51
+ generalized strains/resultants, nonlinear shell acceleration falls back
52
+ deterministically, and unsupported CalculiX/fiber/plastic mappings fail
53
+ closed.
54
+ - Add a dependency-free structural material contract and homogeneous
55
+ orthotropic engineering materials for shells and beams. This includes
56
+ projected shell material directions/angles, explicit orthotropic beam
57
+ torsional rigidity, generated-geometry and CalculiX shell interchange, and
58
+ deterministic fallback from isotropic accelerated kernels to general
59
+ assembly.
60
+ - Add material-axis Hill-48 shell plasticity with directional-strength
61
+ hardening, consistent tangent plus numerical oracle/fallback, stored physical
62
+ stress recovery, labelled Hill equivalent stress/utilization, orthotropic
63
+ beam-fiber longitudinal yielding, and damage/contact integration. General
64
+ anisotropy, laminates, ply failure, and shear/torsion plastic interaction
65
+ remain outside scope.
66
+ - Add an exact constant-stress analytical/CalculiX orthotropic S4 reference
67
+ deck, perfect-plastic Hill behavior when no hardening curve is supplied, and
68
+ current-strength Hill utilization with physical-stress recovery provenance.
69
+
70
+ ## 0.1.3 - 2026-07-28
71
+
72
+ - Complete the generated-geometry runtime bridge: apply configured shear force
73
+ and torsional moment, pass current-area follower pressure only to supported
74
+ nonlinear static/arc-length paths, retain the selected corotational
75
+ kinematics in arc length, and fail closed for incompatible follower paths.
76
+ Runtime prestress recovery now consumes matching committed nonlinear
77
+ histories and exposes Gauss-point membrane/bending resultants plus recovery
78
+ provenance.
79
+ - Correct nonlinear display recovery so plastic-history von Mises values use
80
+ only the return-mapped shell in-plane or beam-fiber components, while purely
81
+ elastic nonlinear states retain their full equivalent stress. Preserve
82
+ combinations with elastically reconstructed transverse shear/torsion as a
83
+ separately labelled model-scope diagnostic.
84
+ - Add the public `resolve_runtime_analysis()` contract so application GUIs can
85
+ reflect normalized nonlinear/material/control/kinematics selections without
86
+ importing private runtime helpers.
87
+
88
+ ## 0.1.2 - 2026-07-28
89
+
90
+ - Add opt-in executable CalculiX reference validation with isolated case runs,
91
+ stale-output protection, timeouts, solver version/hash provenance, ASCII
92
+ FRD/DAT parsing, tolerance-controlled comparisons, and preserved evidence
93
+ semantics. Deck-only generation remains explicitly `not_executed`; stale
94
+ non-executed legacy reports are regenerated deterministically, while invalid
95
+ executed evidence is preserved and rejected for diagnosis.
96
+ - Add current-area follower pressure and its exact, generally nonsymmetric
97
+ external-load tangent to nonlinear static and arc-length solves. Extend
98
+ shell initial-stress stiffness to the Mindlin translation/director field
99
+ using membrane, bending, and second stress moments, and add the qualified
100
+ thin-ring pressure-buckling gate.
101
+ - Add an opt-in consistent corotational tangent through the full
102
+ pull-back/frame/rotate-forward chain rule. `auto` retains the lower-cost
103
+ rotated tangent for ordinary loads and selects the consistent tangent for
104
+ follower pressure.
105
+ - Unify nonlinear stress recovery around committed shell-layer and beam-fiber
106
+ histories, matching solution displacements, objective corotational frames,
107
+ component-level provenance, and explicit elastic fallbacks. Add guarded
108
+ full-integration Q4/Q8 patch recovery that separates discontinuities and
109
+ labels its optional surface-stress L2 indicator as non-energy-norm.
110
+ - Add shell membrane/bending stress and prestrain fields plus beam-fiber
111
+ initial fields, with zero-load equilibration, immutable field provenance,
112
+ exact load-stage boundary commits, and persistent plastic history through
113
+ multi-stage displacement control.
114
+ - Replace the default finite-difference plane-stress algorithmic tangent with
115
+ the analytical consistent derivative of the discrete return map. Retain the
116
+ representable-step numerical tangent as a qualification oracle and guarded
117
+ invalid-row fallback, add a safeguarded local consistency solve with
118
+ fail-closed residual checks, and add constitutive and full-Newton
119
+ parity/performance evidence.
120
+ ## 0.1.1 - 2026-07-25
121
+
122
+ - Correct the layered-shell membrane/bending coupling tangent and keep the
123
+ accelerated plastic shell path consistent with the scalar return mapping.
124
+ - Fail closed for curved B3 members, experimental Q8R qualification, unsupported
125
+ DNV-RP-C208 thickness rows, and path-dependent staged displacement control.
126
+ - Include point masses in reported mass properties, make buckling constraints
127
+ call-order independent, and correct CalculiX gravity export.
128
+ - Remove quadratic model-construction and beam/shell coupling lookup scaling,
129
+ safely reset precomputed incoming elements, cache recovery operators and
130
+ topology signatures, defer optional acceleration imports, and use lower
131
+ PyPardiso thresholds only for compatible retained patterns.
132
+ - Preserve straight-sided B3 midpoint geometry through adaptive cylinder
133
+ refinement and reconstruct complete elastic layer states after accelerated
134
+ nonlinear solves.
135
+ - Add explicit runtime exports, generic generated-geometry API aliases, and
136
+ package-root arc-length exports.
137
+ - Adopt the pure-solver test files from ANYstructure (triangular shell
138
+ backend, local patch transition, geometry panel).
139
+
140
+ ## 0.1.0 - 2026-07-22
141
+
142
+ - Transfer the qualified beam/shell solver from ANYintelligent into its own package.
143
+ - Add the headless runtime meshing and analysis facade formerly embedded in ANYstructure.
144
+ - Publish the Python import namespace as `anysolver` without a legacy `fe_solver` shim.
145
+ - Preserve SESAM interchange, verification, qualification, benchmark, and baseline workflows.