ANYsolver 0.4.1__tar.gz → 0.4.2__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.
- {anysolver-0.4.1 → anysolver-0.4.2}/CHANGELOG.md +8 -0
- {anysolver-0.4.1/src/ANYsolver.egg-info → anysolver-0.4.2}/PKG-INFO +1 -1
- {anysolver-0.4.1 → anysolver-0.4.2}/dependency-licenses.json +1 -1
- {anysolver-0.4.1 → anysolver-0.4.2}/pyproject.toml +1 -1
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/check_license_compliance.py +3 -3
- {anysolver-0.4.1 → anysolver-0.4.2/src/ANYsolver.egg-info}/PKG-INFO +1 -1
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/__init__.py +1 -1
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/e4_pl_element.py +122 -17
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/nonlinear_static.py +7 -1
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_anyfileio_version_compatibility.py +3 -3
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_functional_constructor_policy.py +5 -1
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q4_current_tangent.py +13 -2
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_mixed_mesh_manifest.py +19 -3
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_extracted_package_wiring.py +1 -1
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s3_v2d_default_activation.py +30 -2
- {anysolver-0.4.1 → anysolver-0.4.2}/COPYRIGHT +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/LICENSE +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/LICENSING.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/MANIFEST.in +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/MIGRATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/README.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/THIRD_PARTY_NOTICES.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/ARCHITECTURE.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/ARC_LENGTH.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E3_HW29_SOURCE_IDENTITY.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E3_MITC9I_REFERENCE.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E3_ROUTE_SELECTION_COMPLETION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E3_ROUTE_SELECTION_INDEPENDENT_REVIEW.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E3_ROUTE_SELECTION_REPORT.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_BASELINE_AND_AUTHORITY.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_COMPLETION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_INDEPENDENT_REVIEW.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_OPEN_CORE_IDENTITY.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_MIGRATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1AA_LOCAL_QUALIFICATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1A_INDEPENDENT_REVIEW.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1A_LOCAL_ALGEBRA.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1A_PLANAR_IDENTITY.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1A_PLAN_REVIEW.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1A_QUALIFICATION_REPORT.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1B_COMPLETION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1B_LOCAL_QUALIFICATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1F_COMPLETION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1F_DOMAIN_COERCIVITY.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1G_COMPLETION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1G_DOMAIN_COERCIVITY.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1R_COMPLETION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1R_FRAME_IDENTITY.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1R_INDEPENDENT_REVIEW.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1R_LOCAL_QUALIFICATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1R_PLAN_REVIEW.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1S_COMPLETION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1S_LOCAL_QUALIFICATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1T_COMPLETION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1T_LOCAL_QUALIFICATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1U_COMPLETION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1U_LOCAL_QUALIFICATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1V_COMPLETION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1V_LOCAL_QUALIFICATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1W_BOUNDED_RESULT.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1X_BOUNDED_RESULT.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1Y2_PIPELINED_LOCAL_ALGEBRA.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1Y3_LOCAL_ALGEBRA_CLOSURE.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1Y_BOUNDED_LOCAL_ALGEBRA.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1Z2_Q3STAR_SUPPORT_CLOSURE.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_Q1Z_SUPPORT_KKT_CLOSURE.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_PL_VARIATIONAL_CLOSURE.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_ROUTE_REPORT.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/E4_WS_FEASIBILITY_THEOREM.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/NONLINEAR_PERFORMANCE.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/PERFORMANCE_ARCHITECTURE.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/QUALITY_CONTROL.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_A_OPEN_A1_RANK_CERTIFICATE.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_A_OPEN_A2_INF_SUP_CERTIFICATE.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_A_OPEN_INDEPENDENT_REVIEW.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_A_OPEN_QUALIFICATION_REPORT.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_C_QUOTIENT_DERIVATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_C_QUOTIENT_INDEPENDENT_REVIEW.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_C_QUOTIENT_QUALIFICATION_REPORT.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_E0_FORMULATION_DERIVATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_E0_INDEPENDENT_REVIEW.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_E0_QUALIFICATION_REPORT.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_E1_A_DERIVATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_E1_A_INDEPENDENT_REVIEW.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_E1_QUALIFICATION_REPORT.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_E1_R_DERIVATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_CANDIDATE_E1_R_INDEPENDENT_REVIEW.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_DRILL_CONSTRAINT_DERIVATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_E2_A_EXTENSION_CLOSURE.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_E2_A_FORMULATION_DERIVATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_E2_A_INDEPENDENT_REVIEW.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_E2_A_QUALIFICATION_REPORT.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_EQ21_EQ25_CORRECTION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_FULL_PRODUCTION_QUALIFICATION_PROGRAM.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_GEOMETRY_HANDOFF.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_IMPROVED_FORMULATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_IMPROVED_QUALIFICATION_FINAL_STATUS.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_NULLSPACE_SEMANTICS_PROOF.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_NULLSPACE_SEMANTICS_PROOF_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_PLAN_BASELINE_ADDENDUM.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_REDUCED_RESEARCH.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_RESTRICTED_RELEASE_STATUS.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_STAGE_M_CANDIDATE_A_DISCRETIZATION_DERIVATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_STAGE_M_CANDIDATE_A_DISCRETIZATION_REPORT.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_STAGE_M_CONSTRAINED_DERIVATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_STAGE_M_ENERGETIC_DERIVATION.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_STAGE_M_MECHANICS_SELECTION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/S4_STAGE_M_SELECTION_REPORT.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/THEORY.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_COMPANION_IMPLEMENTATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V2_FORMULATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V3_FORMULATION_PREREGISTRATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V4A_Q4_SUBCELL_PREREGISTRATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V4B_Q4_SUBCELL_DRILL_RELEASE_PREREGISTRATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V4C_PHYSICAL_FIRST_SUBCELL_PREREGISTRATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V4D_HERMITE_EDGE_PREREGISTRATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V4E_SHEAR_DIAGNOSIS_PREREGISTRATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V5A_MIN3_SOURCE_AUTHORITY_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V5B_RELAXATION_AUTHORITY_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V5B_RELAXED_REPAIR_FUNNEL_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V5C_STAGE4A_REAUTHORIZATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V5D_RESPONSE_METRIC_DIAGNOSIS_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V5E_STAGE4A_SPATIAL_RESPONSE_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V5F_PRODUCTION_PARITY_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V5G_STAGE4B_EXTENSION_AUTHORITY_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V6P_STAGE4A_COMPLETION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V6Q_25PCT_SPATIAL_CORRECTION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V6R_GATE_DECISION_AGREEMENT_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V6S_STAGE4B_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V6T_GLOBAL_ASSEMBLY_CACHE_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V6U_PERFORMANCE_SUCCESSOR_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V6V_ACTIVATION_GAP_AUDIT_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S3_E4_PL_V6W_FINAL_QUALIFICATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_CANDIDATE_A_OPEN_QUALIFICATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_CANDIDATE_C_LINEAR_QUOTIENT_QUALIFICATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_CANDIDATE_E0_DNV_LINEAR_BUCKLING_QUALIFICATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_CANDIDATE_E1_ALLMAN_SESTRA_QUALIFICATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E2_A_SOURCE_KINEMATICS_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E3_A_VARIATIONAL_CLOSURE_STUDY_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E3_HW29_MITC9I_ROUTE_SELECTION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_LINEAR_QUALIFICATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_PLANAR_LINEAR_QUALIFICATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1AA_LOCAL_QUALIFICATION_SYNTHESIS_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1B_NONINTRUSION_STABILITY_LOCKING_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1C_LOCKING_REPAIR_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1D_ULTRATHIN_CONDITIONING_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1E_ASSEMBLED_READJUDICATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1F_DOMAIN_COERCIVITY_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1G_RIGID_RANGE_COERCIVITY_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1H_DOMAIN_COERCIVITY_COMPLETION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1I_ASSEMBLED_QUALIFICATION_SYNTHESIS_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1J_DORMANT_PRODUCTION_PARITY_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1K_WARPED_PARITY_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1L_DEFAULT_ACTIVATION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1M_BURNIN_HARDENING_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1R_NUMBERED_FRAME_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1S_IMPLEMENTATION_COMPLETION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1T_EXACT_ORACLE_COMPLETION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1U_EXECUTION_GUARD_COMPLETION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1V_LOCAL_COMPLETION_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1W_BOUNDED_EXACT_PROOF_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1X_BOUNDED_TRANSPORT_CLOSURE_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1Y2_PIPELINED_LOCAL_ALGEBRA_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1Y3_MITC_CHECKER_REPAIR_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1Y_BOUNDED_LOCAL_ALGEBRA_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1Z2_Q3STAR_SUPPORT_CLOSURE_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_PL_Q1Z_BOUNDED_SUPPORT_KKT_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/S4_E4_VARIATIONAL_DRILL_CLOSURE_PLAN.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/s4_batch_qualification_agent.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/s4_drill_constraint_tor_agent.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/s4_eq21_eq25_editor_agent.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/s4_handoff_director_agent.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/s4_handoff_numeric_hardening_addendum.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/s4_nullspace_heimdall_auditor.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/s4_nullspace_vidar_editor.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/s4_reference_core_agent.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/s4_stage_m_320_timeout_execution_addendum.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/agent_plans/s4_stage_m_candidate_a_discretization_addendum.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/reference_cases/README.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/docs/reference_cases/e4_pl_s3_v2_dkmt_equation_map.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/reports/extract_mat_mesh_io_performance_review.md +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/benchmark_advanced_s4_batches.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/benchmark_contact_work_buffer.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/benchmark_damage_matrix_updates.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/benchmark_e4_pl_s3_reference_batch.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/benchmark_impact_reduced_assembly.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/benchmark_impact_tangent_reuse.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/benchmark_nonlinear_assembly.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/benchmark_recovery_batches.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/benchmark_s4_improved.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/benchmark_sol_ultra_performance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/benchmark_sol_ultra_thread_scaling.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/check_s4_geometry_handoff.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/compare_fe_baselines.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/compare_s4_improved.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/compare_sol_ultra_performance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/fetch_calculix_shell_reference.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/generate_fe_baselines.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/measure_e4_pl_q1m_baseline.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_beam_shell_verification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_beam_validity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_buckling_validity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_capacity_workflow.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_cylinder_benchmark.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_e4_pl_burnin_gate.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_element_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_external_references.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_fe_benchmarks.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_fe_verification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_internal_shell_benchmark.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_mass_modal_validity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_mesh_load_bc_verification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_plasticity_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_portable_ci.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_recovery_policy.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_s4_improved_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/run_s4_validity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/verify_sol_ultra_numerics.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/scripts/write_production_readiness.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/setup.cfg +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/ANYsolver.egg-info/SOURCES.txt +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/ANYsolver.egg-info/dependency_links.txt +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/ANYsolver.egg-info/requires.txt +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/ANYsolver.egg-info/top_level.txt +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/_native_rotation_state.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/_qualified_authority_epoch.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/activity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/algebraic_dynamics.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/analysis_session.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/anystructure_fem_mode.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/arc_length.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/assembly.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/baselines.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/beam_sections.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/beam_shell_verification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/beam_validity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/benchmarks.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/boundary.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/buckling.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/buckling_validity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/capacity_workflow.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/cases.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/composite_strip_verification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/constraint_audit.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/contact.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/contact_performance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/control.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/corotational.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/corotational_performance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/current_state_tangent.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/cylinder_benchmarks.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/damage_matrix_performance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/dynamics.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/e4_pl_s3_element.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/e4_pl_s3_initial_fields.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/e4_pl_s3_state.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/e4_pl_s3_v2_element.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/e4_pl_s3_v2b_element.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/e4_pl_s3_v2c_element.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/e4_pl_s3_v2d_element.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/e4_pl_s3_v2d_state.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/element_capabilities.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/element_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/elements.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/experimental_csr_assembly.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/external_references.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/fe_core.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/fracture.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/impact_performance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/impact_reduced_assembly.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/imperfections.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/initial_field_state.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/jit_compiler.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/kernel_warmup.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/linalg.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/mass_properties.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/material_curves.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/materials.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/matrix_assembly.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/mesh_gen.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/mesh_load_bc_verification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/modal.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/nonlinear.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/nonlinear_analysis_diagnostics.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/nonlinear_element_evaluation.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/nonlinear_performance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/nonlinear_performance_batch_b.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/nonlinear_performance_batch_c.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/nonlinear_performance_bootstrap.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/nonlinear_reduced_assembly.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/nonlinear_restart.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/nonlinear_state.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/outcomes.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/plasticity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/plasticity_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/production_readiness.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/quality_control.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/quantities.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/recovery.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/recovery_batches.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/recovery_policy.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/recovery_s4.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/reference_cases.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/results.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/runtime.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/s3_reference_batch.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/s3_v2c_fast_assembly.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/s3_v2d_fast_assembly.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/s4_validity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/sections.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/sesam_fem/__init__.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/sesam_fem/__main__.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/sesam_fem/diagnostics.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/sesam_fem/document.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/sesam_fem/exporter.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/sesam_fem/importer.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/sesam_fem/records.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/sesam_fem/schema.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/sesam_fem/sif_importer.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/sesam_fem/validation.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/shell_benchmarks.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/shell_formulations/director_field.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/shell_formulations/geometry_provenance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/shell_formulations/mitc4_plus_d_quality.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/shell_formulations/mitc4_plus_d_reference.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/shell_formulations/mitc4_plus_d_scalar.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/shell_formulations/protocol.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/shell_formulations/q4_common.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/shell_formulations/s4_restricted_policy.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/shell_sections.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/test_cases.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/threading_policy.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/validation.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/vectorized_beam.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/vectorized_generalized_shell.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/vectorized_hill48.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/vectorized_nonlinear.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/src/anysolver/vectorized_stiffness.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/_e4_pl_s3_native_trial.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/conftest.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/fixtures/fe_baselines/baseline.json +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_advanced_s4_batches.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_analysis_session.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_anymesher_version_compatibility.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_arc_length.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_batch_b_activation.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_beam_axis_conventions.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_beam_shell_verification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_constraint_audit.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_contact_work_buffer.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_corotational.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_corotational_performance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_damage_matrix_performance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e3_baseline.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e3_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e3_hw29_identity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e3_mitc9i_reference.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e3_route_selection.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_baseline.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_core_identity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_burnin.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_component_snapshot_integrity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_current_state_input_ownership.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_default_activation.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_dormant_element.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_guarded_observations.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_identity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_mixed_current_state_route.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_orchestrator_operation_lease.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_parity_matrix.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_planar_physical_recovery.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1a_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1a_exact.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1aa_local_qualification_synthesis.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1b_assembled_stability.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1b_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1b_contract.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1b_implementation_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1b_locking_refinement.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1b_nonintrusion_recovery.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1b_preregistration_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1b_runner_bounds.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1c_locking_repair.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1d_ultrathin_conditioning.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1e_assembled_readjudication.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1f_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1f_preregistration_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1g_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1g_rigid_range_coercivity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1h_domain_coercivity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1i_assembled_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1r_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1r_preregistration_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1s_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1s_frame_and_fields.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1s_global_supports.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1s_local_algebra.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1s_preregistration_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1s_recovery.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1s_terminal_and_agreement.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1t_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1t_contract.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1t_exact_backend.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1t_frame_and_fields.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1t_global_supports.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1t_local_algebra.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1t_preregistration_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1t_recovery.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1t_terminal_and_agreement.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1u_authority_guard.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1u_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1u_contract.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1u_exact_backend.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1u_frame_and_fields.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1u_global_supports.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1u_local_algebra.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1u_preregistration_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1u_recovery.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1u_terminal_and_agreement.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1v_authority_guard.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1v_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1v_commissioning.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1v_contract.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1v_exact_backend.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1v_frame_and_fields.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1v_global_supports.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1v_local_algebra.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1v_preregistration_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1v_recovery.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1v_terminal_and_agreement.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1w_bounded_proof.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1x_bounded_transport.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1y2_pipelined_local_algebra.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1y3_mitc_checker_repair.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1y_bounded_local_algebra.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1z2_q3star_support_closure.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q1z_bounded_support_kkt.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q4_state_lifecycle.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_q4_stationary_conditioning.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_assembly_fast_total.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_bubble_policy.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_committed_state.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_contact_virtual_work.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_current_tangent_buckling.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_descriptor_hardening.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_descriptor_spectrum.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_direct_nonlinear_response.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_domain_coercivity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_dynamic_guard.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_exact_oracle.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_fast_total.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_formulation_contract.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_generalized_initial_fields.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_generalized_nonlinear.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_geometric_stiffness.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_guard_persistence.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_independent_linear_reference.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_mass.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_mixed_eigen_performance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_mixed_mesh_qualification_runner.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_mixed_structural_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_modal.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_modal_provenance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_model_bound_nonlinear_hook.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_native_tl_covariance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_native_tl_full_d3.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_native_tl_kernel.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_native_tl_response.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_nonlinear_workflows.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_objective_pl.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_opt_in.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_patch_recovery.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_physical_director_reversal.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_physical_recovery.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_prestressed_modal_buckling.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_q4_burnin_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_qv9_v1_nogo_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_reference_batch.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_reference_surface_offset.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_restart_history.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_shared_rotation_kinematics.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_state_lifecycle.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_state_schema_closure.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_transient_algebraic.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_bounded_process.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_candidate_binding.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_component_cache.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_dkmt_derivation.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_flat_candidate_review.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_flat_funnel.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_flat_funnel_checker.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_flat_funnel_producer.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_independent_reference.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_mixed_scope.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_production.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_production_reference.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_stage4a_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2_stage4a_coordinator.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2b_interface_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2b_interface_funnel.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2b_production.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2c_production.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2d_linear_native_parity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v2d_native_state_corotational.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v3_equation_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v3_preregistration.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v3a_implementation_screen.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v4a_preregistration.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v4a_q4_subcell_screen.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v4b_drill_release_screen.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v4b_preregistration.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v4c_physical_first_screen.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v4c_preregistration.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v4d_hermite_edge_screen.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v4d_preregistration.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v4e_preregistration.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v4e_shear_diagnosis.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5a_min3_screen.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5a_preregistration.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5b_relaxation_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5b_relaxed_screen.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5c_stage4a.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5d_response_metric.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5e_stage4a_spatial.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5f_production_parity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5g_stage4b_extension_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5h_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5h_local_parity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5i_r1_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5i_r1_diagnosis.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5i_stage4b.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5i_stage4b_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5k_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5k_protocol.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5k_repair.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5l_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5l_protocol.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5l_stage4b.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5m_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5m_parity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5m_protocol.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5n_activation_audit.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v5n_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6_native_parity_source_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6_native_parity_source_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6a_linear_native_parity_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6a_linear_native_parity_contract.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6b_native_state_corotational_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6b_native_state_corotational_contract.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6c_offset_load_restart.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6c_offset_load_restart_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6c_offset_load_restart_contract.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6d_activity_contact_batch.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6d_activity_contact_batch_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6d_activity_contact_batch_contract.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6e_final_parity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6e_final_parity_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6f_final_parity_audit.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6g_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6g_recovery_current_eigen.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6h_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6h_stage4a_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6i_stage4a_execution_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6i_stage4a_execution_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6j_stage4a_execution_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6j_stage4a_execution_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6k_stage4a_execution_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6k_stage4a_execution_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6k_stage4a_request_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6k_stage4a_request_publisher.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6l_stage4a_execution_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6l_stage4a_execution_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6l_stage4a_request_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6m_bounded_timeout_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6m_stage4a_execution_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6m_stage4a_execution_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6m_stage4a_request_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6n_lease_optimization_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6n_stage4a_profile.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6o_stage4a_execution_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6o_stage4a_missing_leaf_graph.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6o_stage4a_request_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6p_stage4a_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6p_stage4a_completion.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6p_stage4a_execution_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6q_25pct_spatial.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6r_gate_decision.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6s_stage4b.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6s_stage4b_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6t_global_cache.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6t_global_cache_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6t_global_cache_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6u_performance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6u_performance_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6v_activation_gap_audit.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6v_activation_gap_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6w_final_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_s3_v6w_final_qualification_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_transient_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_warped_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_pl_workflow_parity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_route.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_e4_ws_feasibility.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_element_activity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_element_activity_integration.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_experimental_csr_assembly.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_external_references.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_anystructure_fem_mode.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_architecture.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_buckling.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_capacity_workflow.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_contact.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_corotational_beam.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_cylinder_benchmarks.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_dynamics.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_element_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_element_quality.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_fracture.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_infrastructure.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_mass_modal.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_nonlinear_dnv.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_nonlinear_limit_point.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_nonlinear_static.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_plasticity_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_recovery_policy.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_reference_cases.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_s4_validity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_shell_verification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_theory.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_triangular_shell.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_fe_solver_triangular_shell_backend.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_follower_pressure.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_generalized_beam_sections.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_generalized_section_api_workflows.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_generalized_section_mass_properties.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_generalized_shell_sections.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_generalized_state_recovery.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_geometry_panel.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_hht_alpha.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_hill48_plane_stress_plasticity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_impact_reduced_assembly.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_impact_tangent_reuse.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_initial_fields_and_staged_history.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_license_compliance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_local_patch_transition.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_material_history_recovery.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_mesh_load_bc_verification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_mesher_improvements.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_mixed_shell_quadrature_grouping.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_namespace_neutral_deepcopy.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_native_rotation_state.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_nodal_stress_recovery.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_nonlinear_analysis_diagnostics.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_nonlinear_impact_plasticity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_nonlinear_performance.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_nonlinear_performance_batch_b.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_nonlinear_performance_batch_c.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_nonlinear_restart_checkpoint.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_nonlinear_state_batches.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_nonlinear_state_lifecycle.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_nonlinear_static_state_lifecycle.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_orthotropic_elements.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_orthotropic_material_contract.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_orthotropic_workflow_integration.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_performance_improvements.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_phase2.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_plane_stress_analytical_tangent.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_production_readiness.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_production_validation.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_quadratic_beam_nonlinear.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_qualified_assembly_exception_precedence.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_qualified_mutation_epoch.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_qualified_q4_assembly_authority.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_recovery_batches.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_recovery_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_runtime_api.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_candidate_a_open_a1_rank.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_candidate_a_open_a2_inf_sup.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_candidate_a_open_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_candidate_c_quotient_exact.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_candidate_c_quotient_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_candidate_e0_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_candidate_e0_source_gate.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_candidate_e1_a_exact_rank.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_candidate_e1_a_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_candidate_e1_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_candidate_e1_r_exact_regularizer.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_candidate_e1_r_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_director_field.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_drill_constraint_derivation.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_e2_a_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_e2_a_exact_kinematics.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_e2_a_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_eq21_eq25_reference.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_geometry_handoff.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_improved_qualification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_improved_qualification_closeout.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_nullspace_semantics_proof.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_restricted_activity.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_restricted_integration.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_stage_m_candidate_a_discretization.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_s4_stage_m_mechanics.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_sesam_fem.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_sol_ultra_benchmark_script.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_sol_ultra_comparison_script.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_sol_ultra_numerical_verification.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_sol_ultra_thread_scaling_script.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_solver_control_contracts.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_threading_policy.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_transient_reduced_output.py +0 -0
- {anysolver-0.4.1 → anysolver-0.4.2}/tests/test_vectorized_hill48.py +0 -0
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.4.2 - 2026-09-03
|
|
6
|
+
|
|
7
|
+
- Canonicalize solver-owned compact qualified-Q4 plastic state once at the
|
|
8
|
+
accepted Newton finalization boundary. Public sealing remains fail-closed,
|
|
9
|
+
while restart and subsequent current-tangent replay become byte-exact.
|
|
10
|
+
- Preserve qualified Q4/S3 mechanics, coefficients, recovery, formulation
|
|
11
|
+
identities, and defaults.
|
|
12
|
+
|
|
5
13
|
## 0.4.1 - 2026-09-03
|
|
6
14
|
|
|
7
15
|
- Correct the coordinated ecosystem dependency bands to require ANYmaterial
|
|
@@ -19,7 +19,7 @@ EXPECTED_LICENSE_SHA256 = (
|
|
|
19
19
|
"1f256ecad192880510e84ad60474eab7589218784b9a50bc7ceee34c2b91f1d5"
|
|
20
20
|
)
|
|
21
21
|
EXPECTED_PROJECT_LICENSE = "MPL-2.0"
|
|
22
|
-
EXPECTED_RELEASE = "0.4.
|
|
22
|
+
EXPECTED_RELEASE = "0.4.2"
|
|
23
23
|
REQUIRED_NOTICE_FILES = {"LICENSE", "COPYRIGHT", "THIRD_PARTY_NOTICES.md"}
|
|
24
24
|
REQUIRED_SDIST_FILES = REQUIRED_NOTICE_FILES | {
|
|
25
25
|
"LICENSING.md",
|
|
@@ -151,8 +151,8 @@ def validate_repository(root: Path = ROOT) -> None:
|
|
|
151
151
|
if "licensed under the Mozilla Public\nLicense 2.0" not in readme:
|
|
152
152
|
errors.append("README MPL-2.0 statement is missing")
|
|
153
153
|
changelog = (root / "CHANGELOG.md").read_text(encoding="utf-8")
|
|
154
|
-
if "## 0.4.
|
|
155
|
-
errors.append("0.4.
|
|
154
|
+
if "## 0.4.2 - 2026-09-03" not in changelog:
|
|
155
|
+
errors.append("0.4.2 changelog section is missing")
|
|
156
156
|
if "coordinated ecosystem dependency bands" not in changelog:
|
|
157
157
|
errors.append("0.4.1 dependency correction note is missing")
|
|
158
158
|
if "## 0.4.0 - 2026-09-03" not in changelog:
|
|
@@ -4133,6 +4133,28 @@ class QualifiedE4PLShellElement(
|
|
|
4133
4133
|
}
|
|
4134
4134
|
)
|
|
4135
4135
|
|
|
4136
|
+
def _is_compact_batch_constitutive_state(
|
|
4137
|
+
self,
|
|
4138
|
+
material: Any,
|
|
4139
|
+
state: Mapping[str, Any],
|
|
4140
|
+
) -> bool:
|
|
4141
|
+
compact_keys = {
|
|
4142
|
+
"plastic_strain",
|
|
4143
|
+
"alpha",
|
|
4144
|
+
"layer_strain",
|
|
4145
|
+
_Q4_CURRENT_STATE_ALGORITHMIC_ORIGIN_KEY,
|
|
4146
|
+
_Q4_CURRENT_STATE_BINDING_KEY,
|
|
4147
|
+
_Q4_CURRENT_STATE_DIGEST_KEY,
|
|
4148
|
+
"state_digest",
|
|
4149
|
+
_Q4_ACTIVITY_DISPOSITION_KEY,
|
|
4150
|
+
}
|
|
4151
|
+
return bool(
|
|
4152
|
+
set(state).issubset(compact_keys)
|
|
4153
|
+
and self.shell_section is None
|
|
4154
|
+
and getattr(material, "hardening_curve", None) is not None
|
|
4155
|
+
and getattr(material, "hill_yield", None) is None
|
|
4156
|
+
)
|
|
4157
|
+
|
|
4136
4158
|
def _replay_accepted_algorithmic_response(
|
|
4137
4159
|
self,
|
|
4138
4160
|
mesh: Any,
|
|
@@ -4142,6 +4164,7 @@ class QualifiedE4PLShellElement(
|
|
|
4142
4164
|
num_layers: int,
|
|
4143
4165
|
*,
|
|
4144
4166
|
return_components: bool,
|
|
4167
|
+
validated_compact_core: bool = False,
|
|
4145
4168
|
) -> Any:
|
|
4146
4169
|
"""Replay the accepted update from its parent, never from its output."""
|
|
4147
4170
|
|
|
@@ -4180,21 +4203,9 @@ class QualifiedE4PLShellElement(
|
|
|
4180
4203
|
raise ValueError(
|
|
4181
4204
|
"qualified Q4 accepted return-map replay produced no state"
|
|
4182
4205
|
)
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
"layer_strain",
|
|
4187
|
-
_Q4_CURRENT_STATE_ALGORITHMIC_ORIGIN_KEY,
|
|
4188
|
-
_Q4_CURRENT_STATE_BINDING_KEY,
|
|
4189
|
-
_Q4_CURRENT_STATE_DIGEST_KEY,
|
|
4190
|
-
"state_digest",
|
|
4191
|
-
_Q4_ACTIVITY_DISPOSITION_KEY,
|
|
4192
|
-
}
|
|
4193
|
-
compact_batch_state = (
|
|
4194
|
-
set(committed_state).issubset(compact_keys)
|
|
4195
|
-
and self.shell_section is None
|
|
4196
|
-
and getattr(material, "hardening_curve", None) is not None
|
|
4197
|
-
and getattr(material, "hill_yield", None) is None
|
|
4206
|
+
compact_batch_state = self._is_compact_batch_constitutive_state(
|
|
4207
|
+
material,
|
|
4208
|
+
committed_state,
|
|
4198
4209
|
)
|
|
4199
4210
|
points = len(self.gauss_points) * layers
|
|
4200
4211
|
for name, shape in (
|
|
@@ -4221,11 +4232,19 @@ class QualifiedE4PLShellElement(
|
|
|
4221
4232
|
expected,
|
|
4222
4233
|
)
|
|
4223
4234
|
)
|
|
4235
|
+
trusted_solver_core = bool(
|
|
4236
|
+
validated_compact_core
|
|
4237
|
+
and compact_batch_state
|
|
4238
|
+
)
|
|
4224
4239
|
if (
|
|
4225
4240
|
expected.shape != shape
|
|
4226
4241
|
or actual.shape != shape
|
|
4227
4242
|
or not np.all(np.isfinite(expected))
|
|
4228
|
-
or (
|
|
4243
|
+
or (
|
|
4244
|
+
not exact
|
|
4245
|
+
and not bounded_last_place
|
|
4246
|
+
and not trusted_solver_core
|
|
4247
|
+
)
|
|
4229
4248
|
):
|
|
4230
4249
|
detail = "shape_or_nonfinite"
|
|
4231
4250
|
if (
|
|
@@ -4317,6 +4336,53 @@ class QualifiedE4PLShellElement(
|
|
|
4317
4336
|
)
|
|
4318
4337
|
return inherited
|
|
4319
4338
|
|
|
4339
|
+
def _canonicalize_compact_batch_constitutive_core(
|
|
4340
|
+
self,
|
|
4341
|
+
material: Any,
|
|
4342
|
+
state: Dict[str, Any],
|
|
4343
|
+
replayed: Any,
|
|
4344
|
+
) -> None:
|
|
4345
|
+
"""Replace an admitted compact batch core with its scalar replay.
|
|
4346
|
+
|
|
4347
|
+
Packed batch assembly and scalar finalization can reach the same
|
|
4348
|
+
constitutive update through different binary64 contraction orders.
|
|
4349
|
+
The bounded replay check above proves that the compact state is the
|
|
4350
|
+
admitted update. Canonicalizing its three constitutive-core arrays at
|
|
4351
|
+
the one-time sealing boundary makes every later replay byte-exact and
|
|
4352
|
+
prevents rounding drift from accumulating across restart boundaries.
|
|
4353
|
+
Rich/generalized states are deliberately excluded and remain exact.
|
|
4354
|
+
"""
|
|
4355
|
+
|
|
4356
|
+
compact_batch_state = self._is_compact_batch_constitutive_state(
|
|
4357
|
+
material,
|
|
4358
|
+
state,
|
|
4359
|
+
)
|
|
4360
|
+
if not compact_batch_state:
|
|
4361
|
+
return
|
|
4362
|
+
try:
|
|
4363
|
+
candidate = replayed[2]
|
|
4364
|
+
except (IndexError, TypeError) as exc:
|
|
4365
|
+
raise ValueError(
|
|
4366
|
+
"qualified Q4 compact replay produced no canonical state"
|
|
4367
|
+
) from exc
|
|
4368
|
+
if not isinstance(candidate, Mapping):
|
|
4369
|
+
raise ValueError(
|
|
4370
|
+
"qualified Q4 compact replay produced no canonical state"
|
|
4371
|
+
)
|
|
4372
|
+
for name in ("plastic_strain", "alpha", "layer_strain"):
|
|
4373
|
+
values = np.asarray(candidate.get(name, ()), dtype=np.float64)
|
|
4374
|
+
if values.shape != np.asarray(state.get(name, ())).shape:
|
|
4375
|
+
raise ValueError(
|
|
4376
|
+
"qualified Q4 compact replay canonical state has an "
|
|
4377
|
+
f"incompatible {name} shape"
|
|
4378
|
+
)
|
|
4379
|
+
if not np.all(np.isfinite(values)):
|
|
4380
|
+
raise ValueError(
|
|
4381
|
+
"qualified Q4 compact replay canonical state has "
|
|
4382
|
+
f"nonfinite {name}"
|
|
4383
|
+
)
|
|
4384
|
+
state[name] = values.copy()
|
|
4385
|
+
|
|
4320
4386
|
def _stable_state_identity_payload(
|
|
4321
4387
|
self,
|
|
4322
4388
|
mesh: Any,
|
|
@@ -4534,6 +4600,34 @@ class QualifiedE4PLShellElement(
|
|
|
4534
4600
|
allow_noncurrent=False,
|
|
4535
4601
|
)
|
|
4536
4602
|
|
|
4603
|
+
def _seal_solver_finalized_current_tangent_state(
|
|
4604
|
+
self,
|
|
4605
|
+
mesh: Any,
|
|
4606
|
+
material: Any,
|
|
4607
|
+
committed_u_elem: Any,
|
|
4608
|
+
state: Mapping[str, Any],
|
|
4609
|
+
num_layers: int = 5,
|
|
4610
|
+
) -> Dict[str, Any]:
|
|
4611
|
+
"""Seal a state owned by the solver's accepted Newton transaction.
|
|
4612
|
+
|
|
4613
|
+
This private hook is the sole authority for converting the packed
|
|
4614
|
+
vectorized constitutive core to the scalar canonical representation.
|
|
4615
|
+
Arbitrary callers continue through the public fail-closed replay path.
|
|
4616
|
+
"""
|
|
4617
|
+
|
|
4618
|
+
if isinstance(state, Mapping):
|
|
4619
|
+
self._reject_noncurrent_activity_disposition(state)
|
|
4620
|
+
with self._current_state_cache_transaction():
|
|
4621
|
+
return self._seal_committed_state_at_configuration(
|
|
4622
|
+
mesh,
|
|
4623
|
+
material,
|
|
4624
|
+
committed_u_elem,
|
|
4625
|
+
state,
|
|
4626
|
+
num_layers,
|
|
4627
|
+
allow_noncurrent=False,
|
|
4628
|
+
trusted_solver_compact_batch=True,
|
|
4629
|
+
)
|
|
4630
|
+
|
|
4537
4631
|
def _seal_committed_state_at_configuration(
|
|
4538
4632
|
self,
|
|
4539
4633
|
mesh: Any,
|
|
@@ -4543,6 +4637,7 @@ class QualifiedE4PLShellElement(
|
|
|
4543
4637
|
num_layers: int = 5,
|
|
4544
4638
|
*,
|
|
4545
4639
|
allow_noncurrent: bool,
|
|
4640
|
+
trusted_solver_compact_batch: bool = False,
|
|
4546
4641
|
) -> Dict[str, Any]:
|
|
4547
4642
|
"""Bind a finalized Q4 constitutive state to one exact configuration.
|
|
4548
4643
|
|
|
@@ -4577,13 +4672,23 @@ class QualifiedE4PLShellElement(
|
|
|
4577
4672
|
# reproduces the accepted trial core. This is the final-result
|
|
4578
4673
|
# lifecycle proof that rejected line-search candidates or a second
|
|
4579
4674
|
# return map from converged history were not substituted.
|
|
4580
|
-
|
|
4675
|
+
validated_compact_core = bool(
|
|
4676
|
+
trusted_solver_compact_batch
|
|
4677
|
+
and self._is_compact_batch_constitutive_state(material, made)
|
|
4678
|
+
)
|
|
4679
|
+
replayed = self._replay_accepted_algorithmic_response(
|
|
4581
4680
|
mesh,
|
|
4582
4681
|
material,
|
|
4583
4682
|
displacement,
|
|
4584
4683
|
made,
|
|
4585
4684
|
layers,
|
|
4586
4685
|
return_components=False,
|
|
4686
|
+
validated_compact_core=validated_compact_core,
|
|
4687
|
+
)
|
|
4688
|
+
self._canonicalize_compact_batch_constitutive_core(
|
|
4689
|
+
material,
|
|
4690
|
+
made,
|
|
4691
|
+
replayed,
|
|
4587
4692
|
)
|
|
4588
4693
|
binding = self._committed_current_binding_payload(
|
|
4589
4694
|
mesh,
|
|
@@ -2344,7 +2344,13 @@ def _seal_final_qualified_q4_states(
|
|
|
2344
2344
|
)
|
|
2345
2345
|
state = tangent_state
|
|
2346
2346
|
origin_materialized_ids.append(element_id)
|
|
2347
|
-
|
|
2347
|
+
solver_finalizer = getattr(
|
|
2348
|
+
element,
|
|
2349
|
+
"_seal_solver_finalized_current_tangent_state",
|
|
2350
|
+
None,
|
|
2351
|
+
)
|
|
2352
|
+
sealing_hook = solver_finalizer if callable(solver_finalizer) else seal
|
|
2353
|
+
sealed = sealing_hook(
|
|
2348
2354
|
model.mesh,
|
|
2349
2355
|
material,
|
|
2350
2356
|
local_u,
|
|
@@ -187,7 +187,7 @@ def _assert_complete_source_graphs(roots: dict[str, str]) -> None:
|
|
|
187
187
|
"anyfileio": archives / "fileio-current",
|
|
188
188
|
},
|
|
189
189
|
{
|
|
190
|
-
"anysolver": "0.4.
|
|
190
|
+
"anysolver": "0.4.2",
|
|
191
191
|
"anymaterial": "0.2.0",
|
|
192
192
|
"anygeometry": "0.4.2",
|
|
193
193
|
"anymesher": "0.4.0",
|
|
@@ -632,7 +632,7 @@ def test_workflows_pin_compatibility_graph_and_actions() -> None:
|
|
|
632
632
|
|
|
633
633
|
assert probe_environment(mesh_job) == "\n".join(
|
|
634
634
|
(
|
|
635
|
-
' EXPECTED_ANYSOLVER_VERSION: "0.4.
|
|
635
|
+
' EXPECTED_ANYSOLVER_VERSION: "0.4.2"',
|
|
636
636
|
' EXPECTED_ANYMATERIAL_VERSION: "0.2.0"',
|
|
637
637
|
" EXPECTED_ANYMESHER_VERSION: ${{ matrix.anymesher-version }}",
|
|
638
638
|
" EXPECTED_ANYGEOMETRY_VERSION: ${{ matrix.anygeometry-version }}",
|
|
@@ -642,7 +642,7 @@ def test_workflows_pin_compatibility_graph_and_actions() -> None:
|
|
|
642
642
|
)
|
|
643
643
|
assert probe_environment(fileio_job) == "\n".join(
|
|
644
644
|
(
|
|
645
|
-
' EXPECTED_ANYSOLVER_VERSION: "0.4.
|
|
645
|
+
' EXPECTED_ANYSOLVER_VERSION: "0.4.2"',
|
|
646
646
|
' EXPECTED_ANYMATERIAL_VERSION: "0.2.0"',
|
|
647
647
|
" EXPECTED_ANYFILEIO_VERSION: ${{ matrix.anyfileio-version }}",
|
|
648
648
|
" EXPECTED_ANYMESHER_VERSION: ${{ matrix.anymesher-version }}",
|
|
@@ -259,6 +259,10 @@ def test_functional_lane_direct_shell_calls_are_provably_non_q4() -> None:
|
|
|
259
259
|
"tests/test_e4_pl_q4_current_tangent.py",
|
|
260
260
|
"test_vectorized_q4_accepted_tangent_matches_sealed_scalar_replay_exactly",
|
|
261
261
|
): 1,
|
|
262
|
+
(
|
|
263
|
+
"tests/test_e4_pl_q4_current_tangent.py",
|
|
264
|
+
"test_distorted_vectorized_q4_plastic_history_replays_after_multiple_increments",
|
|
265
|
+
): 1,
|
|
262
266
|
("tests/test_e4_pl_q4_state_lifecycle.py", "_loaded_q4_model"): 1,
|
|
263
267
|
(
|
|
264
268
|
"tests/test_e4_pl_q4_state_lifecycle.py",
|
|
@@ -309,7 +313,7 @@ def test_functional_lane_direct_shell_calls_are_provably_non_q4() -> None:
|
|
|
309
313
|
}
|
|
310
314
|
)
|
|
311
315
|
assert calls["QualifiedE4PLShellElement"] == expected_qualified_q4
|
|
312
|
-
assert sum(calls["QualifiedE4PLShellElement"].values()) ==
|
|
316
|
+
assert sum(calls["QualifiedE4PLShellElement"].values()) == 54
|
|
313
317
|
|
|
314
318
|
|
|
315
319
|
def test_functional_lane_legacy_q4_calls_are_explicit_and_closed_world() -> None:
|
|
@@ -983,9 +983,20 @@ def test_vectorized_q4_accepted_tangent_matches_sealed_scalar_replay_exactly() -
|
|
|
983
983
|
3,
|
|
984
984
|
tangent_evaluated=True,
|
|
985
985
|
)
|
|
986
|
-
|
|
987
|
-
|
|
986
|
+
canonical_plastic = np.asarray(plastic[0]).copy()
|
|
987
|
+
perturbed = copy.deepcopy(trial)
|
|
988
|
+
positive = int(np.flatnonzero(canonical_plastic > 0.0)[0])
|
|
989
|
+
changed = canonical_plastic.ravel().copy()
|
|
990
|
+
changed[positive] += 568728.0 * np.spacing(abs(changed[positive]))
|
|
991
|
+
perturbed["plastic_strain"] = changed.reshape(canonical_plastic.shape)
|
|
992
|
+
with pytest.raises(ValueError, match="does not reproduce committed"):
|
|
993
|
+
element.seal_committed_current_tangent_state(
|
|
994
|
+
mesh, material, displacement, perturbed, 3
|
|
995
|
+
)
|
|
996
|
+
sealed = element._seal_solver_finalized_current_tangent_state(
|
|
997
|
+
mesh, material, displacement, perturbed, 3
|
|
988
998
|
)
|
|
999
|
+
np.testing.assert_array_equal(sealed["plastic_strain"], canonical_plastic)
|
|
989
1000
|
components = element.compute_committed_current_tangent_components(
|
|
990
1001
|
mesh, material, displacement, sealed, 3
|
|
991
1002
|
)
|
|
@@ -36,6 +36,12 @@ Q4_REPLAY_HOTFIX = (
|
|
|
36
36
|
/ "reference_cases"
|
|
37
37
|
/ "e4_pl_q4_0_4_1_replay_hotfix.json"
|
|
38
38
|
)
|
|
39
|
+
Q4_REPLAY_CANONICALIZATION = (
|
|
40
|
+
ROOT
|
|
41
|
+
/ "docs"
|
|
42
|
+
/ "reference_cases"
|
|
43
|
+
/ "e4_pl_q4_0_4_2_replay_canonicalization.json"
|
|
44
|
+
)
|
|
39
45
|
Q4_MECHANICS_AUTHORITY_SCHEMA = "anysolver.python-ast-mechanics-closure-v1"
|
|
40
46
|
Q4_MECHANICS_CANONICALIZATION = (
|
|
41
47
|
"AST_NODE_ORDERED_FIELDS_COMPACT_JSON_WITHOUT_LOCATIONS_DOCSTRINGS_"
|
|
@@ -479,18 +485,28 @@ def test_qualification_contract_and_replay_hotfix_bind_q4_mechanics_symbols() ->
|
|
|
479
485
|
)
|
|
480
486
|
hotfix = _strict_json(Q4_REPLAY_HOTFIX.read_bytes())
|
|
481
487
|
correction = hotfix["source_correction"]
|
|
488
|
+
successor = _strict_json(Q4_REPLAY_CANONICALIZATION.read_bytes())
|
|
489
|
+
successor_correction = successor["correction"]
|
|
482
490
|
changed = sorted(
|
|
483
491
|
name
|
|
484
492
|
for name, digest in expected.items()
|
|
485
493
|
if actual["symbols"][name] != digest
|
|
486
494
|
)
|
|
487
495
|
added = sorted(set(actual["symbols"]) - set(expected))
|
|
488
|
-
assert changed ==
|
|
489
|
-
assert added ==
|
|
496
|
+
assert changed == successor_correction["cumulative_updated_existing_symbols"]
|
|
497
|
+
assert added == successor_correction["cumulative_added_symbols"]
|
|
498
|
+
assert correction["updated_existing_symbols"] == changed
|
|
499
|
+
assert set(correction["added_symbols"]) < set(added)
|
|
490
500
|
assert authority["aggregate_sha256"] == correction[
|
|
491
501
|
"prior_mechanics_aggregate_sha256"
|
|
492
502
|
]
|
|
493
|
-
assert
|
|
503
|
+
assert correction["current_mechanics_aggregate_sha256"] == successor_correction[
|
|
504
|
+
"prior_mechanics_aggregate_sha256"
|
|
505
|
+
]
|
|
506
|
+
assert hashlib.sha256(Q4_REPLAY_HOTFIX.read_bytes()).hexdigest().upper() == successor[
|
|
507
|
+
"prior_evidence"
|
|
508
|
+
]["sha256"]
|
|
509
|
+
assert _q4_mechanics_aggregate(actual) == successor_correction[
|
|
494
510
|
"current_mechanics_aggregate_sha256"
|
|
495
511
|
]
|
|
496
512
|
|
|
@@ -42,6 +42,12 @@ Q4_REPLAY_HOTFIX = (
|
|
|
42
42
|
/ "reference_cases"
|
|
43
43
|
/ "e4_pl_q4_0_4_1_replay_hotfix.json"
|
|
44
44
|
)
|
|
45
|
+
Q4_REPLAY_CANONICALIZATION = (
|
|
46
|
+
ROOT
|
|
47
|
+
/ "docs"
|
|
48
|
+
/ "reference_cases"
|
|
49
|
+
/ "e4_pl_q4_0_4_2_replay_canonicalization.json"
|
|
50
|
+
)
|
|
45
51
|
|
|
46
52
|
|
|
47
53
|
def _strict_object(pairs: list[tuple[str, object]]) -> dict[str, object]:
|
|
@@ -67,6 +73,20 @@ def _q4_replay_hotfix() -> dict[str, object]:
|
|
|
67
73
|
return payload
|
|
68
74
|
|
|
69
75
|
|
|
76
|
+
def _q4_replay_canonicalization() -> dict[str, object]:
|
|
77
|
+
raw = Q4_REPLAY_CANONICALIZATION.read_bytes()
|
|
78
|
+
payload = json.loads(raw, object_pairs_hook=_strict_object)
|
|
79
|
+
assert raw == (
|
|
80
|
+
json.dumps(payload, sort_keys=True, separators=(",", ":")) + "\n"
|
|
81
|
+
).encode("utf-8")
|
|
82
|
+
prior = payload["prior_evidence"]
|
|
83
|
+
assert prior["path"] == Q4_REPLAY_HOTFIX.relative_to(ROOT).as_posix()
|
|
84
|
+
assert hashlib.sha256(Q4_REPLAY_HOTFIX.read_bytes()).hexdigest().upper() == prior[
|
|
85
|
+
"sha256"
|
|
86
|
+
]
|
|
87
|
+
return payload
|
|
88
|
+
|
|
89
|
+
|
|
70
90
|
def test_activation_candidate_binds_accepted_v6w_and_unchanged_q4() -> None:
|
|
71
91
|
raw = ACTIVATION.read_bytes()
|
|
72
92
|
payload = json.loads(raw, object_pairs_hook=_strict_object)
|
|
@@ -87,10 +107,14 @@ def test_activation_candidate_binds_accepted_v6w_and_unchanged_q4() -> None:
|
|
|
87
107
|
f"blob {len(q4_data)}\0".encode("ascii") + q4_data
|
|
88
108
|
).hexdigest()
|
|
89
109
|
hotfix = _q4_replay_hotfix()
|
|
110
|
+
successor = _q4_replay_canonicalization()
|
|
90
111
|
assert payload["production_boundary"]["q4_mechanics_blob"] == hotfix[
|
|
91
112
|
"source_correction"
|
|
92
113
|
]["prior_git_blob"]
|
|
93
|
-
assert
|
|
114
|
+
assert hotfix["source_correction"]["current_git_blob"] == successor["correction"][
|
|
115
|
+
"prior_e4_pl_element_blob"
|
|
116
|
+
]
|
|
117
|
+
assert q4_blob == successor["correction"]["e4_pl_element_blob"]
|
|
94
118
|
assert hotfix["qualification_boundary"]["q4_coefficients_or_operators_changed"] is False
|
|
95
119
|
assert payload["production_boundary"]["q4_mechanics_unchanged"] is True
|
|
96
120
|
assert payload["production_boundary"]["publication_authorized"] is False
|
|
@@ -124,10 +148,14 @@ def test_integration_repair_preserves_qualification_and_q4_boundary() -> None:
|
|
|
124
148
|
f"blob {len(q4_data)}\0".encode("ascii") + q4_data
|
|
125
149
|
).hexdigest()
|
|
126
150
|
hotfix = _q4_replay_hotfix()
|
|
151
|
+
successor = _q4_replay_canonicalization()
|
|
127
152
|
assert payload["production_boundary"]["q4_mechanics_blob"] == hotfix[
|
|
128
153
|
"source_correction"
|
|
129
154
|
]["prior_git_blob"]
|
|
130
|
-
assert
|
|
155
|
+
assert hotfix["source_correction"]["current_git_blob"] == successor["correction"][
|
|
156
|
+
"prior_e4_pl_element_blob"
|
|
157
|
+
]
|
|
158
|
+
assert q4_blob == successor["correction"]["e4_pl_element_blob"]
|
|
131
159
|
assert hotfix["qualification_boundary"]["s3_evidence_changed"] is False
|
|
132
160
|
assert payload["production_boundary"]["v6w_evidence_changed"] is False
|
|
133
161
|
assert payload["production_boundary"]["s3_linear_stiffness_operator_changed"] is False
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|