ANYsolver 0.1.3__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 (435) hide show
  1. {anysolver-0.1.3 → anysolver-0.3.0}/CHANGELOG.md +106 -41
  2. {anysolver-0.1.3 → anysolver-0.3.0}/LICENSE +674 -674
  3. {anysolver-0.1.3 → anysolver-0.3.0}/MANIFEST.in +9 -6
  4. {anysolver-0.1.3 → anysolver-0.3.0}/MIGRATION.md +22 -2
  5. {anysolver-0.1.3 → anysolver-0.3.0}/PKG-INFO +319 -228
  6. {anysolver-0.1.3 → anysolver-0.3.0}/README.md +239 -153
  7. {anysolver-0.1.3 → anysolver-0.3.0}/docs/ARCHITECTURE.md +337 -281
  8. {anysolver-0.1.3 → 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.3 → anysolver-0.3.0}/docs/THEORY.md +830 -692
  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.3 → anysolver-0.3.0}/docs/reference_cases/README.md +35 -35
  111. {anysolver-0.1.3 → 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.3 → 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.3 → 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.3 → anysolver-0.3.0}/scripts/fetch_calculix_shell_reference.py +79 -79
  128. {anysolver-0.1.3 → anysolver-0.3.0}/scripts/generate_fe_baselines.py +29 -29
  129. {anysolver-0.1.3 → anysolver-0.3.0}/scripts/run_beam_shell_verification.py +44 -44
  130. {anysolver-0.1.3 → anysolver-0.3.0}/scripts/run_beam_validity.py +58 -58
  131. {anysolver-0.1.3 → anysolver-0.3.0}/scripts/run_buckling_validity.py +55 -55
  132. {anysolver-0.1.3 → anysolver-0.3.0}/scripts/run_capacity_workflow.py +68 -68
  133. {anysolver-0.1.3 → anysolver-0.3.0}/scripts/run_cylinder_benchmark.py +4 -4
  134. {anysolver-0.1.3 → anysolver-0.3.0}/scripts/run_element_qualification.py +70 -70
  135. {anysolver-0.1.3 → anysolver-0.3.0}/scripts/run_external_references.py +63 -63
  136. {anysolver-0.1.3 → anysolver-0.3.0}/scripts/run_fe_benchmarks.py +55 -55
  137. {anysolver-0.1.3 → anysolver-0.3.0}/scripts/run_fe_verification.py +737 -737
  138. {anysolver-0.1.3 → anysolver-0.3.0}/scripts/run_internal_shell_benchmark.py +4 -4
  139. {anysolver-0.1.3 → anysolver-0.3.0}/scripts/run_mass_modal_validity.py +120 -120
  140. {anysolver-0.1.3 → anysolver-0.3.0}/scripts/run_mesh_load_bc_verification.py +4 -4
  141. {anysolver-0.1.3 → anysolver-0.3.0}/scripts/run_plasticity_qualification.py +64 -64
  142. {anysolver-0.1.3 → 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.3 → 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.3 → anysolver-0.3.0}/scripts/write_production_readiness.py +4 -4
  147. {anysolver-0.1.3 → anysolver-0.3.0}/setup.cfg +4 -4
  148. {anysolver-0.1.3 → anysolver-0.3.0}/src/ANYsolver.egg-info/PKG-INFO +319 -228
  149. anysolver-0.3.0/src/ANYsolver.egg-info/SOURCES.txt +416 -0
  150. {anysolver-0.1.3 → anysolver-0.3.0}/src/ANYsolver.egg-info/requires.txt +5 -0
  151. {anysolver-0.1.3 → 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.3 → anysolver-0.3.0}/src/anysolver/anystructure_fem_mode.py +1419 -948
  155. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/arc_length.py +1276 -921
  156. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/assembly.py +1210 -950
  157. {anysolver-0.1.3 → 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.3 → anysolver-0.3.0}/src/anysolver/beam_shell_verification.py +4544 -4529
  160. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/beam_validity.py +110 -110
  161. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/benchmarks.py +272 -272
  162. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/boundary.py +610 -598
  163. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/buckling.py +905 -508
  164. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/buckling_validity.py +91 -91
  165. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/capacity_workflow.py +431 -350
  166. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/cases.py +173 -173
  167. {anysolver-0.1.3 → 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.3 → 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.3 → 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.3 → 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.3 → anysolver-0.3.0}/src/anysolver/dynamics.py +893 -723
  177. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/element_qualification.py +430 -430
  178. {anysolver-0.1.3 → 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.3 → anysolver-0.3.0}/src/anysolver/external_references.py +1253 -1370
  181. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/fe_core.py +376 -265
  182. {anysolver-0.1.3 → 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.3 → anysolver-0.3.0}/src/anysolver/imperfections.py +390 -390
  186. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/jit_compiler.py +116 -108
  187. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/kernel_warmup.py +1 -1
  188. {anysolver-0.1.3 → 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.3 → 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.3 → anysolver-0.3.0}/src/anysolver/mesh_load_bc_verification.py +612 -609
  195. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/modal.py +357 -282
  196. {anysolver-0.1.3 → 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.3 → anysolver-0.3.0}/src/anysolver/nonlinear_performance.py +1516 -929
  199. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/nonlinear_performance_batch_b.py +952 -544
  200. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/nonlinear_performance_batch_c.py +808 -533
  201. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/nonlinear_performance_bootstrap.py +164 -120
  202. {anysolver-0.1.3 → 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.3 → anysolver-0.3.0}/src/anysolver/nonlinear_static.py +2443 -1715
  205. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/plasticity.py +1278 -298
  206. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/plasticity_qualification.py +283 -283
  207. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/production_readiness.py +309 -309
  208. {anysolver-0.1.3 → 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.3 → anysolver-0.3.0}/src/anysolver/recovery.py +2919 -2078
  211. anysolver-0.3.0/src/anysolver/recovery_batches.py +267 -0
  212. {anysolver-0.1.3 → 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.3 → anysolver-0.3.0}/src/anysolver/reference_cases.py +366 -425
  215. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/results.py +563 -557
  216. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/runtime.py +8904 -8883
  217. {anysolver-0.1.3 → 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.3 → anysolver-0.3.0}/src/anysolver/sesam_fem/__init__.py +55 -55
  220. {anysolver-0.1.3 → 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.3 → 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.3 → 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.3 → 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.3 → anysolver-0.3.0}/src/anysolver/vectorized_nonlinear.py +335 -334
  246. {anysolver-0.1.3 → anysolver-0.3.0}/src/anysolver/vectorized_stiffness.py +124 -1
  247. {anysolver-0.1.3 → anysolver-0.3.0}/tests/conftest.py +16 -16
  248. {anysolver-0.1.3 → 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.3 → anysolver-0.3.0}/tests/test_arc_length.py +393 -252
  254. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_batch_b_activation.py +11 -11
  255. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_beam_axis_conventions.py +1 -1
  256. {anysolver-0.1.3 → 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.3 → 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.3 → 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.3 → anysolver-0.3.0}/tests/test_fe_solver_architecture.py +147 -147
  323. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_buckling.py +472 -270
  324. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_capacity_workflow.py +158 -116
  325. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_contact.py +806 -785
  326. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_corotational_beam.py +121 -121
  327. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_cylinder_benchmarks.py +1 -1
  328. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_dynamics.py +1 -1
  329. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_element_qualification.py +179 -179
  330. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_element_quality.py +1 -1
  331. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_fracture.py +1 -1
  332. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_infrastructure.py +644 -411
  333. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_mass_modal.py +283 -283
  334. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_nonlinear_dnv.py +308 -325
  335. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_nonlinear_limit_point.py +1 -1
  336. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_nonlinear_static.py +384 -336
  337. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_plasticity_qualification.py +164 -164
  338. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_recovery_policy.py +263 -260
  339. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_reference_cases.py +328 -322
  340. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_s4_validity.py +104 -104
  341. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_shell_verification.py +251 -251
  342. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_theory.py +388 -388
  343. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_triangular_shell.py +1 -1
  344. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_triangular_shell_backend.py +395 -356
  345. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_follower_pressure.py +56 -7
  346. anysolver-0.3.0/tests/test_generalized_beam_sections.py +502 -0
  347. anysolver-0.3.0/tests/test_generalized_section_api_workflows.py +218 -0
  348. anysolver-0.3.0/tests/test_generalized_section_mass_properties.py +306 -0
  349. anysolver-0.3.0/tests/test_generalized_shell_sections.py +369 -0
  350. anysolver-0.3.0/tests/test_generalized_state_recovery.py +316 -0
  351. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_geometry_panel.py +114 -114
  352. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_hht_alpha.py +1 -1
  353. anysolver-0.3.0/tests/test_hill48_plane_stress_plasticity.py +368 -0
  354. anysolver-0.3.0/tests/test_impact_reduced_assembly.py +315 -0
  355. anysolver-0.3.0/tests/test_impact_tangent_reuse.py +229 -0
  356. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_initial_fields_and_staged_history.py +85 -0
  357. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_local_patch_transition.py +570 -570
  358. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_mesh_load_bc_verification.py +1 -1
  359. anysolver-0.3.0/tests/test_mesher_improvements.py +126 -0
  360. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_nodal_stress_recovery.py +107 -107
  361. anysolver-0.3.0/tests/test_nonlinear_analysis_diagnostics.py +68 -0
  362. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_nonlinear_impact_plasticity.py +7 -1
  363. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_nonlinear_performance.py +511 -268
  364. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_nonlinear_performance_batch_b.py +120 -81
  365. anysolver-0.3.0/tests/test_nonlinear_performance_batch_c.py +758 -0
  366. anysolver-0.3.0/tests/test_nonlinear_state_batches.py +355 -0
  367. anysolver-0.3.0/tests/test_nonlinear_state_lifecycle.py +414 -0
  368. anysolver-0.3.0/tests/test_orthotropic_elements.py +780 -0
  369. anysolver-0.3.0/tests/test_orthotropic_material_contract.py +94 -0
  370. anysolver-0.3.0/tests/test_orthotropic_workflow_integration.py +689 -0
  371. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_performance_improvements.py +283 -227
  372. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_phase2.py +1 -1
  373. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_production_readiness.py +108 -108
  374. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_production_validation.py +133 -128
  375. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_quadratic_beam_nonlinear.py +148 -148
  376. anysolver-0.3.0/tests/test_recovery_batches.py +186 -0
  377. anysolver-0.3.0/tests/test_s4_candidate_a_open_a1_rank.py +172 -0
  378. anysolver-0.3.0/tests/test_s4_candidate_a_open_a2_inf_sup.py +225 -0
  379. anysolver-0.3.0/tests/test_s4_candidate_a_open_qualification.py +296 -0
  380. anysolver-0.3.0/tests/test_s4_candidate_c_quotient_exact.py +227 -0
  381. anysolver-0.3.0/tests/test_s4_candidate_c_quotient_qualification.py +200 -0
  382. anysolver-0.3.0/tests/test_s4_candidate_e0_closeout.py +125 -0
  383. anysolver-0.3.0/tests/test_s4_candidate_e0_source_gate.py +259 -0
  384. anysolver-0.3.0/tests/test_s4_candidate_e1_a_exact_rank.py +68 -0
  385. anysolver-0.3.0/tests/test_s4_candidate_e1_a_qualification.py +140 -0
  386. anysolver-0.3.0/tests/test_s4_candidate_e1_closeout.py +484 -0
  387. anysolver-0.3.0/tests/test_s4_candidate_e1_r_exact_regularizer.py +99 -0
  388. anysolver-0.3.0/tests/test_s4_candidate_e1_r_qualification.py +174 -0
  389. anysolver-0.3.0/tests/test_s4_director_field.py +476 -0
  390. anysolver-0.3.0/tests/test_s4_drill_constraint_derivation.py +262 -0
  391. anysolver-0.3.0/tests/test_s4_e2_a_closeout.py +341 -0
  392. anysolver-0.3.0/tests/test_s4_e2_a_exact_kinematics.py +273 -0
  393. anysolver-0.3.0/tests/test_s4_e2_a_qualification.py +238 -0
  394. anysolver-0.3.0/tests/test_s4_eq21_eq25_reference.py +535 -0
  395. anysolver-0.3.0/tests/test_s4_geometry_handoff.py +422 -0
  396. anysolver-0.3.0/tests/test_s4_improved_qualification.py +164 -0
  397. anysolver-0.3.0/tests/test_s4_improved_qualification_closeout.py +299 -0
  398. anysolver-0.3.0/tests/test_s4_nullspace_semantics_proof.py +365 -0
  399. anysolver-0.3.0/tests/test_s4_restricted_activity.py +73 -0
  400. anysolver-0.3.0/tests/test_s4_restricted_integration.py +150 -0
  401. anysolver-0.3.0/tests/test_s4_stage_m_candidate_a_discretization.py +137 -0
  402. anysolver-0.3.0/tests/test_s4_stage_m_mechanics.py +929 -0
  403. anysolver-0.3.0/tests/test_sesam_fem.py +128 -0
  404. anysolver-0.3.0/tests/test_sol_ultra_benchmark_script.py +170 -0
  405. anysolver-0.3.0/tests/test_sol_ultra_comparison_script.py +196 -0
  406. anysolver-0.3.0/tests/test_sol_ultra_numerical_verification.py +331 -0
  407. anysolver-0.3.0/tests/test_sol_ultra_thread_scaling_script.py +93 -0
  408. anysolver-0.3.0/tests/test_solver_control_contracts.py +275 -0
  409. anysolver-0.3.0/tests/test_threading_policy.py +342 -0
  410. anysolver-0.3.0/tests/test_transient_reduced_output.py +126 -0
  411. anysolver-0.3.0/tests/test_vectorized_hill48.py +544 -0
  412. anysolver-0.1.3/docs/NONLINEAR_PERFORMANCE.md +0 -256
  413. anysolver-0.1.3/docs/QUALITY_CONTROL.md +0 -255
  414. anysolver-0.1.3/src/ANYsolver.egg-info/SOURCES.txt +0 -156
  415. anysolver-0.1.3/src/anysolver/mass_properties.py +0 -179
  416. anysolver-0.1.3/src/anysolver/material_curves.py +0 -231
  417. anysolver-0.1.3/src/anysolver/mesh_gen.py +0 -1065
  418. anysolver-0.1.3/src/anysolver/sesam_fem/diagnostics.py +0 -65
  419. anysolver-0.1.3/src/anysolver/sesam_fem/document.py +0 -814
  420. anysolver-0.1.3/src/anysolver/sesam_fem/exporter.py +0 -84
  421. anysolver-0.1.3/src/anysolver/sesam_fem/importer.py +0 -365
  422. anysolver-0.1.3/src/anysolver/sesam_fem/records.py +0 -257
  423. anysolver-0.1.3/src/anysolver/sesam_fem/schema.py +0 -107
  424. anysolver-0.1.3/src/anysolver/sesam_fem/sif_importer.py +0 -397
  425. anysolver-0.1.3/src/anysolver/sesam_fem/validation.py +0 -62
  426. anysolver-0.1.3/tests/test_mesher_improvements.py +0 -165
  427. anysolver-0.1.3/tests/test_nonlinear_performance_batch_c.py +0 -349
  428. anysolver-0.1.3/tests/test_sesam_fem.py +0 -378
  429. {anysolver-0.1.3 → anysolver-0.3.0}/src/ANYsolver.egg-info/dependency_links.txt +0 -0
  430. {anysolver-0.1.3 → anysolver-0.3.0}/src/ANYsolver.egg-info/top_level.txt +0 -0
  431. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_fe_solver_anystructure_fem_mode.py +0 -0
  432. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_material_history_recovery.py +0 -0
  433. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_plane_stress_analytical_tangent.py +0 -0
  434. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_recovery_qualification.py +0 -0
  435. {anysolver-0.1.3 → anysolver-0.3.0}/tests/test_runtime_api.py +0 -0
@@ -1,7 +1,72 @@
1
- # Changelog
2
-
1
+ # Changelog
2
+
3
3
  ## Unreleased
4
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
+
5
70
  ## 0.1.3 - 2026-07-28
6
71
 
7
72
  - Complete the generated-geometry runtime bridge: apply configured shear force
@@ -23,20 +88,20 @@
23
88
  ## 0.1.2 - 2026-07-28
24
89
 
25
90
  - Add opt-in executable CalculiX reference validation with isolated case runs,
26
- stale-output protection, timeouts, solver version/hash provenance, ASCII
27
- FRD/DAT parsing, tolerance-controlled comparisons, and preserved evidence
28
- semantics. Deck-only generation remains explicitly `not_executed`; stale
29
- non-executed legacy reports are regenerated deterministically, while invalid
30
- executed evidence is preserved and rejected for diagnosis.
31
- - Add current-area follower pressure and its exact, generally nonsymmetric
32
- external-load tangent to nonlinear static and arc-length solves. Extend
33
- shell initial-stress stiffness to the Mindlin translation/director field
34
- using membrane, bending, and second stress moments, and add the qualified
35
- thin-ring pressure-buckling gate.
36
- - Add an opt-in consistent corotational tangent through the full
37
- pull-back/frame/rotate-forward chain rule. `auto` retains the lower-cost
38
- rotated tangent for ordinary loads and selects the consistent tangent for
39
- follower pressure.
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.
40
105
  - Unify nonlinear stress recovery around committed shell-layer and beam-fiber
41
106
  histories, matching solution displacements, objective corotational frames,
42
107
  component-level provenance, and explicit elastic fallbacks. Add guarded
@@ -53,28 +118,28 @@
53
118
  fail-closed residual checks, and add constitutive and full-Newton
54
119
  parity/performance evidence.
55
120
  ## 0.1.1 - 2026-07-25
56
-
57
- - Correct the layered-shell membrane/bending coupling tangent and keep the
58
- accelerated plastic shell path consistent with the scalar return mapping.
59
- - Fail closed for curved B3 members, experimental Q8R qualification, unsupported
60
- DNV-RP-C208 thickness rows, and path-dependent staged displacement control.
61
- - Include point masses in reported mass properties, make buckling constraints
62
- call-order independent, and correct CalculiX gravity export.
63
- - Remove quadratic model-construction and beam/shell coupling lookup scaling,
64
- safely reset precomputed incoming elements, cache recovery operators and
65
- topology signatures, defer optional acceleration imports, and use lower
66
- PyPardiso thresholds only for compatible retained patterns.
67
- - Preserve straight-sided B3 midpoint geometry through adaptive cylinder
68
- refinement and reconstruct complete elastic layer states after accelerated
69
- nonlinear solves.
70
- - Add explicit runtime exports, generic generated-geometry API aliases, and
71
- package-root arc-length exports.
72
- - Adopt the pure-solver test files from ANYstructure (triangular shell
73
- backend, local patch transition, geometry panel).
74
-
75
- ## 0.1.0 - 2026-07-22
76
-
77
- - Transfer the qualified beam/shell solver from ANYintelligent into its own package.
78
- - Add the headless runtime meshing and analysis facade formerly embedded in ANYstructure.
79
- - Publish the Python import namespace as `anysolver` without a legacy `fe_solver` shim.
80
- - Preserve SESAM interchange, verification, qualification, benchmark, and baseline workflows.
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.