qf-solver 0.2.0a0__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.
- qf_solver-0.2.0a0/CHANGELOG.md +477 -0
- qf_solver-0.2.0a0/CITATION.cff +12 -0
- qf_solver-0.2.0a0/LICENSE +199 -0
- qf_solver-0.2.0a0/LICENSE-DOCS +16 -0
- qf_solver-0.2.0a0/MANIFEST.in +11 -0
- qf_solver-0.2.0a0/NOTICE +8 -0
- qf_solver-0.2.0a0/PKG-INFO +327 -0
- qf_solver-0.2.0a0/README.md +268 -0
- qf_solver-0.2.0a0/THIRD_PARTY_LICENSES.md +31 -0
- qf_solver-0.2.0a0/examples/beam2_cantilever.json +31 -0
- qf_solver-0.2.0a0/examples/frictional_contact_plane.json +32 -0
- qf_solver-0.2.0a0/examples/frictionless_contact_plane.json +17 -0
- qf_solver-0.2.0a0/examples/frictionless_contact_surface.json +16 -0
- qf_solver-0.2.0a0/examples/invalid_inverted_tet4.json +23 -0
- qf_solver-0.2.0a0/examples/mitc3_laminate_harmonic.json +30 -0
- qf_solver-0.2.0a0/examples/mitc3_modal_cantilever.json +24 -0
- qf_solver-0.2.0a0/examples/mitc3_newmark_cantilever.json +34 -0
- qf_solver-0.2.0a0/examples/mitc3_shell_static.json +28 -0
- qf_solver-0.2.0a0/examples/mitc4_dynamic_multicomponent.json +48 -0
- qf_solver-0.2.0a0/examples/mitc4_harmonic_cantilever.json +34 -0
- qf_solver-0.2.0a0/examples/mitc4_laminate_static.json +46 -0
- qf_solver-0.2.0a0/examples/mitc4_modal_cantilever.json +30 -0
- qf_solver-0.2.0a0/examples/mitc4_newmark_cantilever.json +39 -0
- qf_solver-0.2.0a0/examples/mitc4_shell_static.json +26 -0
- qf_solver-0.2.0a0/examples/rbe2_rigid_arm.json +18 -0
- qf_solver-0.2.0a0/examples/spring_mass_oscillator.json +40 -0
- qf_solver-0.2.0a0/examples/tet10_orthotropic_newmark.json +57 -0
- qf_solver-0.2.0a0/examples/tet10_orthotropic_static.json +37 -0
- qf_solver-0.2.0a0/examples/tet10_static.json +35 -0
- qf_solver-0.2.0a0/examples/tet4_body_force.json +33 -0
- qf_solver-0.2.0a0/examples/tet4_compression.json +33 -0
- qf_solver-0.2.0a0/examples/tet4_dynamic_free_vibration.json +29 -0
- qf_solver-0.2.0a0/examples/tet4_dynamic_sdof_free_vibration.json +30 -0
- qf_solver-0.2.0a0/examples/tet4_dynamic_tabulated_load.json +32 -0
- qf_solver-0.2.0a0/examples/tet4_elastoplastic_static.json +35 -0
- qf_solver-0.2.0a0/examples/tet4_geometric_nonlinear_static.json +19 -0
- qf_solver-0.2.0a0/examples/tet4_harmonic_response.json +24 -0
- qf_solver-0.2.0a0/examples/tet4_harmonic_sdof_response.json +25 -0
- qf_solver-0.2.0a0/examples/tet4_modal_unit.json +24 -0
- qf_solver-0.2.0a0/examples/tet4_nonlinear_static.json +29 -0
- qf_solver-0.2.0a0/examples/tet4_orthotropic_modal.json +32 -0
- qf_solver-0.2.0a0/examples/tet4_orthotropic_static.json +31 -0
- qf_solver-0.2.0a0/examples/tet4_pressure.json +30 -0
- qf_solver-0.2.0a0/examples/tet4_static.json +26 -0
- qf_solver-0.2.0a0/examples/tet4_transient_dynamic.json +28 -0
- qf_solver-0.2.0a0/pyproject.toml +139 -0
- qf_solver-0.2.0a0/qualification/benchmarks.json +178 -0
- qf_solver-0.2.0a0/qualification/campaign.json +423 -0
- qf_solver-0.2.0a0/qualification/demonstrations.json +34 -0
- qf_solver-0.2.0a0/qualification/formulas.json +738 -0
- qf_solver-0.2.0a0/qualification/requirements.json +708 -0
- qf_solver-0.2.0a0/requirements/baseline-large-linux.txt +5 -0
- qf_solver-0.2.0a0/requirements/baseline-standard.txt +33 -0
- qf_solver-0.2.0a0/setup.cfg +4 -0
- qf_solver-0.2.0a0/src/mitc4/__init__.py +19 -0
- qf_solver-0.2.0a0/src/mitc4/benchmarks.py +183 -0
- qf_solver-0.2.0a0/src/mitc4/cli.py +115 -0
- qf_solver-0.2.0a0/src/mitc4/constants.py +11 -0
- qf_solver-0.2.0a0/src/mitc4/convergence.py +282 -0
- qf_solver-0.2.0a0/src/mitc4/element.py +312 -0
- qf_solver-0.2.0a0/src/mitc4/geometry.py +43 -0
- qf_solver-0.2.0a0/src/mitc4/locking.py +274 -0
- qf_solver-0.2.0a0/src/mitc4/material.py +63 -0
- qf_solver-0.2.0a0/src/mitc4/mesh.py +71 -0
- qf_solver-0.2.0a0/src/mitc4/model.py +179 -0
- qf_solver-0.2.0a0/src/mitc4/verification.py +287 -0
- qf_solver-0.2.0a0/src/mitc4/visualization.py +80 -0
- qf_solver-0.2.0a0/src/qf_solver.egg-info/PKG-INFO +327 -0
- qf_solver-0.2.0a0/src/qf_solver.egg-info/SOURCES.txt +346 -0
- qf_solver-0.2.0a0/src/qf_solver.egg-info/dependency_links.txt +1 -0
- qf_solver-0.2.0a0/src/qf_solver.egg-info/entry_points.txt +4 -0
- qf_solver-0.2.0a0/src/qf_solver.egg-info/requires.txt +43 -0
- qf_solver-0.2.0a0/src/qf_solver.egg-info/top_level.txt +2 -0
- qf_solver-0.2.0a0/src/solveur/__init__.py +94 -0
- qf_solver-0.2.0a0/src/solveur/api/__init__.py +131 -0
- qf_solver-0.2.0a0/src/solveur/api/public.py +538 -0
- qf_solver-0.2.0a0/src/solveur/benchmarks/__init__.py +16 -0
- qf_solver-0.2.0a0/src/solveur/benchmarks/beam.py +169 -0
- qf_solver-0.2.0a0/src/solveur/benchmarks/catalog.py +106 -0
- qf_solver-0.2.0a0/src/solveur/benchmarks/demonstrations.py +322 -0
- qf_solver-0.2.0a0/src/solveur/benchmarks/dynamic.py +158 -0
- qf_solver-0.2.0a0/src/solveur/benchmarks/gmsh_factory.py +273 -0
- qf_solver-0.2.0a0/src/solveur/benchmarks/nonlinear.py +149 -0
- qf_solver-0.2.0a0/src/solveur/benchmarks/runner.py +70 -0
- qf_solver-0.2.0a0/src/solveur/benchmarks/shell.py +287 -0
- qf_solver-0.2.0a0/src/solveur/benchmarks/solid.py +406 -0
- qf_solver-0.2.0a0/src/solveur/benchmarks/solid_extended.py +358 -0
- qf_solver-0.2.0a0/src/solveur/benchmarks/support.py +175 -0
- qf_solver-0.2.0a0/src/solveur/benchmarks/types.py +48 -0
- qf_solver-0.2.0a0/src/solveur/cli/__init__.py +1 -0
- qf_solver-0.2.0a0/src/solveur/cli/benchmark.py +35 -0
- qf_solver-0.2.0a0/src/solveur/cli/large.py +348 -0
- qf_solver-0.2.0a0/src/solveur/cli/main.py +348 -0
- qf_solver-0.2.0a0/src/solveur/cli/mesh.py +33 -0
- qf_solver-0.2.0a0/src/solveur/cli/standard.py +182 -0
- qf_solver-0.2.0a0/src/solveur/cli/verification.py +219 -0
- qf_solver-0.2.0a0/src/solveur/cli/vnv.py +39 -0
- qf_solver-0.2.0a0/src/solveur/contact/__init__.py +5 -0
- qf_solver-0.2.0a0/src/solveur/contact/entities.py +102 -0
- qf_solver-0.2.0a0/src/solveur/contact/slip_root.py +338 -0
- qf_solver-0.2.0a0/src/solveur/contact/solver.py +700 -0
- qf_solver-0.2.0a0/src/solveur/core/__init__.py +1 -0
- qf_solver-0.2.0a0/src/solveur/core/analysis.py +89 -0
- qf_solver-0.2.0a0/src/solveur/core/assembler.py +306 -0
- qf_solver-0.2.0a0/src/solveur/core/audit.py +682 -0
- qf_solver-0.2.0a0/src/solveur/core/audit_checks.py +418 -0
- qf_solver-0.2.0a0/src/solveur/core/constraints.py +325 -0
- qf_solver-0.2.0a0/src/solveur/core/dofs.py +61 -0
- qf_solver-0.2.0a0/src/solveur/core/dynamic.py +641 -0
- qf_solver-0.2.0a0/src/solveur/core/dynamic_checkpoint.py +101 -0
- qf_solver-0.2.0a0/src/solveur/core/dynamic_controls.py +153 -0
- qf_solver-0.2.0a0/src/solveur/core/dynamic_history.py +144 -0
- qf_solver-0.2.0a0/src/solveur/core/dynamic_reduction.py +361 -0
- qf_solver-0.2.0a0/src/solveur/core/errors.py +57 -0
- qf_solver-0.2.0a0/src/solveur/core/geometric_nonlinear.py +200 -0
- qf_solver-0.2.0a0/src/solveur/core/geometric_nonlinear_controls.py +25 -0
- qf_solver-0.2.0a0/src/solveur/core/harmonic.py +210 -0
- qf_solver-0.2.0a0/src/solveur/core/linear_methods.py +256 -0
- qf_solver-0.2.0a0/src/solveur/core/linear_policy.py +212 -0
- qf_solver-0.2.0a0/src/solveur/core/material_state.py +61 -0
- qf_solver-0.2.0a0/src/solveur/core/modal.py +395 -0
- qf_solver-0.2.0a0/src/solveur/core/model.py +287 -0
- qf_solver-0.2.0a0/src/solveur/core/nonlinear.py +700 -0
- qf_solver-0.2.0a0/src/solveur/core/nonlinear_checkpoint.py +206 -0
- qf_solver-0.2.0a0/src/solveur/core/nonlinear_controls.py +174 -0
- qf_solver-0.2.0a0/src/solveur/core/qualification.py +321 -0
- qf_solver-0.2.0a0/src/solveur/core/rbe.py +173 -0
- qf_solver-0.2.0a0/src/solveur/core/result_serialization.py +51 -0
- qf_solver-0.2.0a0/src/solveur/core/results.py +256 -0
- qf_solver-0.2.0a0/src/solveur/core/router.py +39 -0
- qf_solver-0.2.0a0/src/solveur/core/solver.py +216 -0
- qf_solver-0.2.0a0/src/solveur/documentation/__init__.py +2 -0
- qf_solver-0.2.0a0/src/solveur/documentation/server.py +112 -0
- qf_solver-0.2.0a0/src/solveur/elements/__init__.py +1 -0
- qf_solver-0.2.0a0/src/solveur/elements/beam/__init__.py +6 -0
- qf_solver-0.2.0a0/src/solveur/elements/beam/beam2.py +181 -0
- qf_solver-0.2.0a0/src/solveur/elements/discrete.py +122 -0
- qf_solver-0.2.0a0/src/solveur/elements/registry.py +72 -0
- qf_solver-0.2.0a0/src/solveur/elements/shell/__init__.py +1 -0
- qf_solver-0.2.0a0/src/solveur/elements/shell/frames.py +36 -0
- qf_solver-0.2.0a0/src/solveur/elements/shell/mitc3.py +342 -0
- qf_solver-0.2.0a0/src/solveur/elements/shell/mitc3_condensation.py +43 -0
- qf_solver-0.2.0a0/src/solveur/elements/shell/mitc4.py +21 -0
- qf_solver-0.2.0a0/src/solveur/elements/solid/__init__.py +1 -0
- qf_solver-0.2.0a0/src/solveur/elements/solid/common.py +44 -0
- qf_solver-0.2.0a0/src/solveur/elements/solid/quadrature.py +93 -0
- qf_solver-0.2.0a0/src/solveur/elements/solid/tet10.py +275 -0
- qf_solver-0.2.0a0/src/solveur/elements/solid/tet4.py +106 -0
- qf_solver-0.2.0a0/src/solveur/elements/solid/tet4_total_lagrangian.py +114 -0
- qf_solver-0.2.0a0/src/solveur/elements/solid/tet4_total_lagrangian_batch.py +162 -0
- qf_solver-0.2.0a0/src/solveur/io/__init__.py +9 -0
- qf_solver-0.2.0a0/src/solveur/io/audit_markdown.py +373 -0
- qf_solver-0.2.0a0/src/solveur/io/checkpoint_common.py +17 -0
- qf_solver-0.2.0a0/src/solveur/io/constraint_schema.py +151 -0
- qf_solver-0.2.0a0/src/solveur/io/contact_schema.py +92 -0
- qf_solver-0.2.0a0/src/solveur/io/csv_writer.py +118 -0
- qf_solver-0.2.0a0/src/solveur/io/discrete_schema.py +153 -0
- qf_solver-0.2.0a0/src/solveur/io/dynamic_checkpoint.py +75 -0
- qf_solver-0.2.0a0/src/solveur/io/evidence_verifier.py +194 -0
- qf_solver-0.2.0a0/src/solveur/io/evidence_writer.py +138 -0
- qf_solver-0.2.0a0/src/solveur/io/json_reader.py +48 -0
- qf_solver-0.2.0a0/src/solveur/io/json_writer.py +15 -0
- qf_solver-0.2.0a0/src/solveur/io/laminate_schema.py +96 -0
- qf_solver-0.2.0a0/src/solveur/io/load_schema.py +151 -0
- qf_solver-0.2.0a0/src/solveur/io/manifest.py +193 -0
- qf_solver-0.2.0a0/src/solveur/io/model_writer.py +158 -0
- qf_solver-0.2.0a0/src/solveur/io/nonlinear_checkpoint.py +76 -0
- qf_solver-0.2.0a0/src/solveur/io/schema.py +700 -0
- qf_solver-0.2.0a0/src/solveur/io/schema_values.py +55 -0
- qf_solver-0.2.0a0/src/solveur/io/vtu_writer.py +179 -0
- qf_solver-0.2.0a0/src/solveur/large/__init__.py +46 -0
- qf_solver-0.2.0a0/src/solveur/large/assembler.py +194 -0
- qf_solver-0.2.0a0/src/solveur/large/audit.py +204 -0
- qf_solver-0.2.0a0/src/solveur/large/benchmark.py +294 -0
- qf_solver-0.2.0a0/src/solveur/large/campaign.py +277 -0
- qf_solver-0.2.0a0/src/solveur/large/distributed_model.py +426 -0
- qf_solver-0.2.0a0/src/solveur/large/dofs.py +25 -0
- qf_solver-0.2.0a0/src/solveur/large/evidence.py +55 -0
- qf_solver-0.2.0a0/src/solveur/large/generator.py +143 -0
- qf_solver-0.2.0a0/src/solveur/large/io.py +199 -0
- qf_solver-0.2.0a0/src/solveur/large/materials.py +26 -0
- qf_solver-0.2.0a0/src/solveur/large/matrix_free.py +156 -0
- qf_solver-0.2.0a0/src/solveur/large/memory.py +78 -0
- qf_solver-0.2.0a0/src/solveur/large/model.py +82 -0
- qf_solver-0.2.0a0/src/solveur/large/mpi_diagnostics.py +93 -0
- qf_solver-0.2.0a0/src/solveur/large/optimization.py +283 -0
- qf_solver-0.2.0a0/src/solveur/large/partitioning.py +277 -0
- qf_solver-0.2.0a0/src/solveur/large/postprocess.py +328 -0
- qf_solver-0.2.0a0/src/solveur/large/profiling.py +240 -0
- qf_solver-0.2.0a0/src/solveur/large/qualification.py +262 -0
- qf_solver-0.2.0a0/src/solveur/large/readiness.py +179 -0
- qf_solver-0.2.0a0/src/solveur/large/runtime.py +108 -0
- qf_solver-0.2.0a0/src/solveur/large/solver.py +524 -0
- qf_solver-0.2.0a0/src/solveur/large/tet4_batch.py +141 -0
- qf_solver-0.2.0a0/src/solveur/large/tuning.py +199 -0
- qf_solver-0.2.0a0/src/solveur/large/verification.py +273 -0
- qf_solver-0.2.0a0/src/solveur/loads/__init__.py +5 -0
- qf_solver-0.2.0a0/src/solveur/loads/entities.py +132 -0
- qf_solver-0.2.0a0/src/solveur/loads/integration.py +376 -0
- qf_solver-0.2.0a0/src/solveur/materials/__init__.py +27 -0
- qf_solver-0.2.0a0/src/solveur/materials/beam.py +42 -0
- qf_solver-0.2.0a0/src/solveur/materials/composite.py +128 -0
- qf_solver-0.2.0a0/src/solveur/materials/factory.py +173 -0
- qf_solver-0.2.0a0/src/solveur/materials/failure.py +190 -0
- qf_solver-0.2.0a0/src/solveur/materials/laminate.py +280 -0
- qf_solver-0.2.0a0/src/solveur/materials/orthotropic.py +221 -0
- qf_solver-0.2.0a0/src/solveur/materials/shell.py +5 -0
- qf_solver-0.2.0a0/src/solveur/materials/solid.py +224 -0
- qf_solver-0.2.0a0/src/solveur/mesh/__init__.py +1 -0
- qf_solver-0.2.0a0/src/solveur/mesh/constraint_validation.py +32 -0
- qf_solver-0.2.0a0/src/solveur/mesh/contact_validation.py +74 -0
- qf_solver-0.2.0a0/src/solveur/mesh/entities.py +13 -0
- qf_solver-0.2.0a0/src/solveur/mesh/gmsh_importer.py +578 -0
- qf_solver-0.2.0a0/src/solveur/mesh/gmsh_reader.py +148 -0
- qf_solver-0.2.0a0/src/solveur/mesh/gmsh_types.py +81 -0
- qf_solver-0.2.0a0/src/solveur/mesh/quality.py +225 -0
- qf_solver-0.2.0a0/src/solveur/mesh/topology.py +11 -0
- qf_solver-0.2.0a0/src/solveur/mesh/validation.py +686 -0
- qf_solver-0.2.0a0/src/solveur/mesh/validation_helpers.py +111 -0
- qf_solver-0.2.0a0/src/solveur/paths.py +34 -0
- qf_solver-0.2.0a0/src/solveur/post/__init__.py +6 -0
- qf_solver-0.2.0a0/src/solveur/post/audit.py +88 -0
- qf_solver-0.2.0a0/src/solveur/post/harmonic_shell.py +325 -0
- qf_solver-0.2.0a0/src/solveur/post/shell_results.py +226 -0
- qf_solver-0.2.0a0/src/solveur/post/stress.py +609 -0
- qf_solver-0.2.0a0/src/solveur/verification/__init__.py +1 -0
- qf_solver-0.2.0a0/src/solveur/verification/analytical_references.py +56 -0
- qf_solver-0.2.0a0/src/solveur/verification/calculix_composite.py +309 -0
- qf_solver-0.2.0a0/src/solveur/verification/calculix_composite_conical_cutout.py +341 -0
- qf_solver-0.2.0a0/src/solveur/verification/calculix_composite_conical_ply_stress.py +220 -0
- qf_solver-0.2.0a0/src/solveur/verification/calculix_curved_composite.py +452 -0
- qf_solver-0.2.0a0/src/solveur/verification/calculix_curved_orientation.py +465 -0
- qf_solver-0.2.0a0/src/solveur/verification/calculix_j2.py +287 -0
- qf_solver-0.2.0a0/src/solveur/verification/calculix_mitc3.py +206 -0
- qf_solver-0.2.0a0/src/solveur/verification/calculix_mitc3_curved_composite.py +472 -0
- qf_solver-0.2.0a0/src/solveur/verification/calculix_mitc3_laminate_ply_stress.py +299 -0
- qf_solver-0.2.0a0/src/solveur/verification/calculix_mitc4_conical_cutout.py +281 -0
- qf_solver-0.2.0a0/src/solveur/verification/calculix_nafems.py +213 -0
- qf_solver-0.2.0a0/src/solveur/verification/calculix_tet10.py +216 -0
- qf_solver-0.2.0a0/src/solveur/verification/calculix_tl_structural.py +396 -0
- qf_solver-0.2.0a0/src/solveur/verification/calculix_total_lagrangian.py +254 -0
- qf_solver-0.2.0a0/src/solveur/verification/campaign.py +632 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_beam2.py +118 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_beam2_modal.py +128 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_beam2_newmark.py +265 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_beam2_transverse.py +272 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_contact.py +247 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_contact_additional.py +662 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_contact_folded.py +118 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_contact_folded_search.py +107 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_contact_tet4.py +155 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_discrete.py +299 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_friction_contact.py +282 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_j2.py +299 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_mitc3.py +335 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_mitc3_dynamic.py +270 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_mitc3_hemisphere.py +438 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_mitc3_laminate_dynamic.py +346 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_mitc4_conical_cutout.py +272 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_mitc4_laminate_dynamic.py +444 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_nafems.py +130 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_rbe.py +142 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_tet10_dynamic.py +481 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_tet10_j2_complex.py +376 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_tet10_j2_structural.py +353 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_tet4_dynamic.py +28 -0
- qf_solver-0.2.0a0/src/solveur/verification/code_aster_tl_structural.py +510 -0
- qf_solver-0.2.0a0/src/solveur/verification/composite_analytic.py +286 -0
- qf_solver-0.2.0a0/src/solveur/verification/composite_conical_cutout.py +170 -0
- qf_solver-0.2.0a0/src/solveur/verification/composite_curved_assembly.py +397 -0
- qf_solver-0.2.0a0/src/solveur/verification/composite_nafems.py +391 -0
- qf_solver-0.2.0a0/src/solveur/verification/composite_ply_stress.py +301 -0
- qf_solver-0.2.0a0/src/solveur/verification/composite_structural.py +361 -0
- qf_solver-0.2.0a0/src/solveur/verification/contact_additional_models.py +266 -0
- qf_solver-0.2.0a0/src/solveur/verification/contact_additional_oracle.py +123 -0
- qf_solver-0.2.0a0/src/solveur/verification/contact_campaign.py +81 -0
- qf_solver-0.2.0a0/src/solveur/verification/contact_deformable_master.py +145 -0
- qf_solver-0.2.0a0/src/solveur/verification/contact_master_surface.py +314 -0
- qf_solver-0.2.0a0/src/solveur/verification/contact_tet4_master.py +196 -0
- qf_solver-0.2.0a0/src/solveur/verification/dynamic_family_campaign.py +324 -0
- qf_solver-0.2.0a0/src/solveur/verification/elastica.py +61 -0
- qf_solver-0.2.0a0/src/solveur/verification/external_correlation.py +248 -0
- qf_solver-0.2.0a0/src/solveur/verification/frictional_contact.py +253 -0
- qf_solver-0.2.0a0/src/solveur/verification/frictional_contact_structural.py +163 -0
- qf_solver-0.2.0a0/src/solveur/verification/frictionless_contact_structural.py +294 -0
- qf_solver-0.2.0a0/src/solveur/verification/j2_material.py +491 -0
- qf_solver-0.2.0a0/src/solveur/verification/j2_methods.py +158 -0
- qf_solver-0.2.0a0/src/solveur/verification/j2_step_sensitivity.py +172 -0
- qf_solver-0.2.0a0/src/solveur/verification/j2_structural.py +233 -0
- qf_solver-0.2.0a0/src/solveur/verification/large_petsc_scipy.py +173 -0
- qf_solver-0.2.0a0/src/solveur/verification/linear_solver_comparison.py +145 -0
- qf_solver-0.2.0a0/src/solveur/verification/mechanical.py +5 -0
- qf_solver-0.2.0a0/src/solveur/verification/mesh_checks.py +5 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc3_campaign.py +416 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc3_dynamic_extended.py +471 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc3_laminate_dynamic.py +376 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc3_models.py +369 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc3_refined.py +347 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_campaign.py +605 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_conical_cutout.py +271 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_harmonic.py +294 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_harmonic_broadband.py +383 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_harmonic_condensation.py +301 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_harmonic_nafems.py +513 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_laminate_dynamic.py +372 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_laminate_layups.py +148 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_modal.py +254 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_modal_extended.py +692 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_modal_external.py +262 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_modal_plate.py +310 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_newmark.py +270 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_newmark_broadband.py +377 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_newmark_extended.py +356 -0
- qf_solver-0.2.0a0/src/solveur/verification/mitc4_newmark_operational.py +508 -0
- qf_solver-0.2.0a0/src/solveur/verification/orthotropic_additional_stress.py +243 -0
- qf_solver-0.2.0a0/src/solveur/verification/orthotropic_complex_mesh.py +297 -0
- qf_solver-0.2.0a0/src/solveur/verification/orthotropic_convergence.py +230 -0
- qf_solver-0.2.0a0/src/solveur/verification/orthotropic_external.py +378 -0
- qf_solver-0.2.0a0/src/solveur/verification/orthotropic_modal_dynamic.py +363 -0
- qf_solver-0.2.0a0/src/solveur/verification/orthotropic_performance.py +193 -0
- qf_solver-0.2.0a0/src/solveur/verification/orthotropic_singularity_vnv.py +591 -0
- qf_solver-0.2.0a0/src/solveur/verification/orthotropic_solid.py +219 -0
- qf_solver-0.2.0a0/src/solveur/verification/singularity_stress.py +133 -0
- qf_solver-0.2.0a0/src/solveur/verification/tet10.py +176 -0
- qf_solver-0.2.0a0/src/solveur/verification/tet10_geometry_quadrature.py +248 -0
- qf_solver-0.2.0a0/src/solveur/verification/tet10_mass_modal_loads.py +299 -0
- qf_solver-0.2.0a0/src/solveur/verification/tet10_near_incompressible.py +270 -0
- qf_solver-0.2.0a0/src/solveur/verification/tet10_structural_convergence.py +552 -0
- qf_solver-0.2.0a0/src/solveur/verification/tet4_tl_buckling_refinement.py +179 -0
- qf_solver-0.2.0a0/src/solveur/verification/tet4_total_lagrangian.py +149 -0
- qf_solver-0.2.0a0/src/solveur/verification/tet4_total_lagrangian_assembly.py +335 -0
- qf_solver-0.2.0a0/src/solveur/verification/tet4_total_lagrangian_buckling.py +325 -0
- qf_solver-0.2.0a0/src/solveur/verification/tet4_total_lagrangian_postbuckling.py +295 -0
- qf_solver-0.2.0a0/src/solveur/verification/tet4_total_lagrangian_steps.py +141 -0
- qf_solver-0.2.0a0/src/solveur/verification/tet4_total_lagrangian_stress.py +236 -0
- qf_solver-0.2.0a0/src/solveur/verification/torsion_stress_probe.py +441 -0
- qf_solver-0.2.0a0/src/solveur/verification/total_lagrangian_structural.py +237 -0
- qf_solver-0.2.0a0/src/solveur/verification/traceability.py +398 -0
- qf_solver-0.2.0a0/src/solveur/verification/transient_modal_oracle.py +115 -0
- qf_solver-0.2.0a0/src/solveur/verification/vnv_benchmark_import.py +397 -0
- qf_solver-0.2.0a0/src/solveur/verification/vnv_manifest.py +55 -0
- qf_solver-0.2.0a0/src/solveur/verification/vnv_report.py +241 -0
- qf_solver-0.2.0a0/src/solveur/verification/vnv_runner.py +391 -0
- qf_solver-0.2.0a0/src/solveur/verification/vnv_schema.py +407 -0
- qf_solver-0.2.0a0/src/solveur/verification/vnv_torsion_import.py +516 -0
- qf_solver-0.2.0a0/src/solveur/verification/vnv_types.py +124 -0
- qf_solver-0.2.0a0/src/solveur/verification/vnv_visualization.py +231 -0
- qf_solver-0.2.0a0/src/solveur/version.py +17 -0
|
@@ -0,0 +1,477 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.2.0a0 - 2026-08-13
|
|
4
|
+
|
|
5
|
+
Cette version alpha est la premiere publication open source preparee de
|
|
6
|
+
QF_solver. Le code est sous Apache-2.0 et la documentation ainsi que les
|
|
7
|
+
exemples originaux sont sous CC BY 4.0. Les fonctionnalites marquees
|
|
8
|
+
`experimental` ou `research` restent hors de toute revendication de
|
|
9
|
+
qualification et doivent etre utilisees avec une revue mecanique adaptee.
|
|
10
|
+
|
|
11
|
+
- Ajout des informations d'auteur, de citation et de licence.
|
|
12
|
+
- Ajout de l'inventaire des dependances et des regles de redistribution.
|
|
13
|
+
- Conservation des niveaux de maturite et des limites de validation existants.
|
|
14
|
+
- Gel du perimetre alpha avec decisions Owner tracees pour TET4/TET10/MITC3
|
|
15
|
+
en modal, Newmark et harmonique, BEAM2 dynamique et entites discretes.
|
|
16
|
+
- Inclusion des preuves Owner recentes MITC3+ multicouche courbe a orientation
|
|
17
|
+
projetee et TET10 J2 structurel, en conservant leur statut experimental borne.
|
|
18
|
+
- La campagne MITC4 multicouche dynamique est acceptee par l'Owner pour un
|
|
19
|
+
usage engineering experimental borne; la tentative modale a 10 000 QUAD4
|
|
20
|
+
conserve une reserve numerique explicite.
|
|
21
|
+
- Adoption d'un layout `src/` pour isoler le paquet installable du repertoire
|
|
22
|
+
de travail. Le noyau MITC4 historique reste dans `src/mitc4` et l'API
|
|
23
|
+
generaliste dans `src/solveur`.
|
|
24
|
+
- Deplacement du conteneur PETSc/MPI dans `tools/containers/large`; Docker
|
|
25
|
+
reste une aide de reproductibilite optionnelle et ne fait pas partie du
|
|
26
|
+
runtime standard.
|
|
27
|
+
- Reduction de la wheel aux sources, exemples et registres d'execution. Le
|
|
28
|
+
manuel, les tests et les decisions de revue restent publics dans le depot
|
|
29
|
+
GitHub et ne sont pas dupliques dans les archives PyPI.
|
|
30
|
+
|
|
31
|
+
### Documentation technique
|
|
32
|
+
|
|
33
|
+
- Ajout d'un contrat documentaire uniforme par element et methode.
|
|
34
|
+
- Ajout des pages direct, CG, MINRES, GMRES, BiCGSTAB et arc-length.
|
|
35
|
+
- Ajout de figures BEAM2, ressort-masse et RBE2 regenerees par l'API.
|
|
36
|
+
- Ajout d'un registre `pending_owner_review` qui interdit d'assimiler une
|
|
37
|
+
demonstration documentee a une qualification.
|
|
38
|
+
- Ajout des formulations forte/faible TET4, TET10, MITC4 et BEAM2, de leurs
|
|
39
|
+
matrices de tests et des sous-chapitres BEAM2.
|
|
40
|
+
- Le dossier PDF compose les equations LaTeX et controle automatiquement un
|
|
41
|
+
minimum de dix pages pour chaque formulation elementaire principale.
|
|
42
|
+
|
|
43
|
+
### Consolidation de l'alpha
|
|
44
|
+
|
|
45
|
+
- Consolidation du manuel technique, des cartes de contraintes et deformations,
|
|
46
|
+
des contrats de chargement, des convergences et des vues
|
|
47
|
+
QF_solver/reference. La decision documentaire Owner est enregistree sans
|
|
48
|
+
effet automatique sur les maturites mecaniques.
|
|
49
|
+
- Ajout d'une couverture machine-readable de 33 couples element-analyse,
|
|
50
|
+
sept contrats de chargement et douze familles de methodes.
|
|
51
|
+
- Ajout de `pypdf==6.10.0` a l'extra et a la baseline documentaire. La
|
|
52
|
+
decouverte de Pandoc et MiKTeX utilise `PATH`, des variables QF_solver ou
|
|
53
|
+
l'API portable des repertoires utilisateur, sans chemin de poste dans les
|
|
54
|
+
sources. L'audit public repasse a `649` fichiers et `0` constat.
|
|
55
|
+
- Enregistrement de l'Owner review MITC3+ statique lineaire en
|
|
56
|
+
`accepted_for_bounded_engineering_use` le 1er aout 2026.
|
|
57
|
+
- Ajout d'une matrice machine-readable element/analyse distinguant capacite
|
|
58
|
+
implementee, verification automatique, Owner review et domaines non
|
|
59
|
+
supportes. Elle met en evidence les campagnes dynamiques encore manquantes.
|
|
60
|
+
|
|
61
|
+
- Ajout du benchmark MITC3+ de l'hemisphere pince a ouverture `18 deg`, six
|
|
62
|
+
raffinements et reconstruction des quatre quadrants. Au niveau fin,
|
|
63
|
+
QF_solver/Code_Aster DKT differe de `0,0927 %`, le champ nodal de `0,1536 %`
|
|
64
|
+
et QF_solver se situe a `0,5912 %` de la reference publiee `0,0924`.
|
|
65
|
+
- Ajout des figures separees de geometrie, convergence, deformees comparees et
|
|
66
|
+
champ Code_Aster, ainsi que du patch de flexion explicite
|
|
67
|
+
`kappa_x/kappa_y/kappa_xy`.
|
|
68
|
+
|
|
69
|
+
- Correction de l'interpolation de cisaillement MITC3+ : le facteur `2/3`
|
|
70
|
+
multiplie desormais tout le premier groupe de l'equation (17) de Lee, Lee
|
|
71
|
+
et Bathe. Le patch de cisaillement constant atteint `1,81e-16` et la
|
|
72
|
+
baseline precedente est marquee `SUPERSEDED`.
|
|
73
|
+
- Ajout des raffinements MITC3+ Scordelis-Lo `20 000` triangles et cylindre
|
|
74
|
+
pince `19 600` triangles, avec erreurs respectives `0,4044 %` et
|
|
75
|
+
`2,0899 %`, champs, courbes, manifestes et PDF d'Owner review.
|
|
76
|
+
- Optimisation de l'assemblage des charges distribuees par contributions
|
|
77
|
+
creuses locales, supprimant un vecteur global intermediaire par charge.
|
|
78
|
+
- Regeneration des correlations MITC3+ : ecart de flexion Code_Aster DKT
|
|
79
|
+
`0,007116 %`; CalculiX S3 reste un temoin negatif a `113,086 %`.
|
|
80
|
+
- Ajout de `VNV-J2-CODEASTER-VMIS-ISOT-LINE-004`, seconde implementation
|
|
81
|
+
externe J2 executee avec Code_Aster 18.1.0 epingle. La conversion
|
|
82
|
+
`D_SIGM_EPSI=E H/(E+H)` est explicite; contrainte, plasticite equivalente,
|
|
83
|
+
contraintes laterales et homogeneite passent a la precision machine.
|
|
84
|
+
- Fermeture de `VNV-ORTHOTROPIC-SINGULAR-STRESS-005` sur huit raffinements,
|
|
85
|
+
jusqu'a `237 358` TET4, avec recuperation compacte ponderee par volume,
|
|
86
|
+
correlation Code_Aster bloquante et comparaison nodale CalculiX diagnostique.
|
|
87
|
+
- Ajout de trois modeles de contact demandes en Owner review : coin a deux
|
|
88
|
+
normales, rampe facettisee et bloc TET4 deformable a deux esclaves.
|
|
89
|
+
- Ajout de deux pieces orthotropes de contrainte, encoche arrondie et double
|
|
90
|
+
trou, avec cinq raffinements, cartes `S11` et correlation Code_Aster.
|
|
91
|
+
- Enregistrement de l'Owner review des contraintes singulieres en
|
|
92
|
+
`accepted_with_recommendations`, datee du 29 juillet 2026.
|
|
93
|
+
- Ajout de `VNV-CONTACT-CODEASTER-ADDITIONAL-009` : dix paliers sur le coin,
|
|
94
|
+
la rampe et le bloc TET4. Deux courbes sont confondues; le bloc passe sur la
|
|
95
|
+
branche fermee; son raffinement a `768` TET4 abaisse l'ecart de transition
|
|
96
|
+
de `5,2565 %` a `4,3400 %`, sous le seuil Owner review de `5 %`.
|
|
97
|
+
- Ajout de `VNV-CONTACT-CODEASTER-ADDITIONAL-H10K-010` : confirmation du
|
|
98
|
+
bloc deformable sur `9 984` TET4. QF_solver et Code_Aster donnent un ecart
|
|
99
|
+
maximal de courbe de `3,3029e-12 %`; la decision Contact V1 est enregistree
|
|
100
|
+
`accepted_for_bounded_engineering_use`.
|
|
101
|
+
- Fermeture de la baseline Windows de preparation V1 : `926` tests passent,
|
|
102
|
+
le profil engineering est PASS, le site regenere `625` artefacts, l'audit
|
|
103
|
+
public analyse `579` fichiers sans constat et l'archive prospective en
|
|
104
|
+
exporte `407` sans inclure les instructions de travail internes.
|
|
105
|
+
- Correction de l'execution directe de `scripts/release_readiness.py` et ajout
|
|
106
|
+
d'un test CLI. Le verdict reste volontairement `NOT_READY` jusqu'au choix de
|
|
107
|
+
licence, au gel de l'arbre Git et au tag `0.2.0`.
|
|
108
|
+
|
|
109
|
+
- Preparation de publication open source : URLs de projet packagees, contrat
|
|
110
|
+
de stabilite API, guide de contribution, politique de securite, support,
|
|
111
|
+
modele de pull request, formulaires GitHub et checklist de publication.
|
|
112
|
+
La licence reste volontairement `Proprietary` jusqu'a une decision explicite
|
|
113
|
+
du proprietaire du projet.
|
|
114
|
+
|
|
115
|
+
- Ouverture de P6.1 avec la lamelle orthotrope plane `OrthotropicLamina`, les
|
|
116
|
+
transformations `Q/Qbar`, les controles de positivite et les preuves
|
|
117
|
+
analytiques `0/90/+/-45 deg`.
|
|
118
|
+
- Ajout de la theorie classique des stratifies avec plis et interfaces,
|
|
119
|
+
matrices `A/B/D`, resultantes, inversion generalisee et contraintes aux
|
|
120
|
+
faces de chaque pli; preuves `[0]`, `[0/90]s`, `[+45/-45]s` et `[0/90]`.
|
|
121
|
+
- Ajout du materiau `shell_laminate` dans MITC4 statique avec couplage `B`,
|
|
122
|
+
cisaillement transverse `G13/G23`, contraintes par pli, exemple JSON et
|
|
123
|
+
controles d'objectivite, coque facettisee et shear locking.
|
|
124
|
+
- Ajout des indicateurs non degradants contrainte/deformation maximale,
|
|
125
|
+
Tsai-Hill et Tsai-Wu, avec facteurs de reserve et synthese du pli critique.
|
|
126
|
+
- Ajout de `VNV-COMP-ANALYTIC-001`: six oracles analytiques, enveloppes de
|
|
127
|
+
rupture, rapport Markdown et manifeste SHA-256.
|
|
128
|
+
- Ajout de `VNV-COMP-STRUCTURAL-CONVERGENCE-002`: membrane et flexion de
|
|
129
|
+
stratifies sur sept niveaux de maillage, avec separation explicite entre
|
|
130
|
+
oracle analytique applicable et stabilisation d'un panneau couple.
|
|
131
|
+
- Ajout de `VNV-COMP-CALCULIX-S8R-003`: correlation externe reelle entre
|
|
132
|
+
MITC4 et CalculiX 2.20 S8R composite, avec ecart fin de fleche `0,0310 %`.
|
|
133
|
+
- Ajout de `VNV-COMP-NAFEMS-R0031-CODEASTER-004`: benchmark NAFEMS R0031/1
|
|
134
|
+
execute avec QF_solver MITC4 et Code_Aster 18.1.0 DST/DSQ sur cinq maillages
|
|
135
|
+
jusqu'a `5 120` elements; ecarts fins sur `UZ(E)` de `0,458 %` et `0,710 %`,
|
|
136
|
+
avec increments finaux inferieurs a `0,1 %`.
|
|
137
|
+
- Ajout de `VNV-COMP-CONICAL-CUTOUT-PLY-STRESS-CALCULIX-S8R-012` :
|
|
138
|
+
correlation de contraintes par pli sur une couronne conique a distance
|
|
139
|
+
normalisee du bord libre. L'ecart L2 fin QF_solver/CalculiX S8R est
|
|
140
|
+
`0,298 %`; `S13`, pics de bord libre et delaminage restent hors scope.
|
|
141
|
+
- Ajout de la specification future `orthotropic_3d` pour TET4/TET10, avec
|
|
142
|
+
orientations, sorties, programme V&V et limites explicites.
|
|
143
|
+
- Implementation `research` de `orthotropic_3d` et
|
|
144
|
+
`composite_orthotropic_3d` pour TET4/TET10, avec repere global ou
|
|
145
|
+
`e1/e2_hint`, sorties dans les axes globaux/materiau et exemples JSON.
|
|
146
|
+
- Ajout de `VNV-ORTHOTROPIC-SOLID-KERNEL-001`: loi, tractions,
|
|
147
|
+
cisaillements, objectivite, energie, patchs affines et modes rigides
|
|
148
|
+
`SPEC-COMP-SOLID-001..005` PASS.
|
|
149
|
+
- Ajout de `VNV-ORTHOTROPIC-SOLID-EXTERNAL-002`: deux geometries 3D maillees
|
|
150
|
+
complexes, eprouvette perforee et equerre, comparees sur maillage identique
|
|
151
|
+
a Code_Aster 18.1.0 TETRA4 et CalculiX 2.20 C3D4. Les six controles de
|
|
152
|
+
deplacement et contrainte passent; `SPEC-COMP-SOLID-007` est couvert.
|
|
153
|
+
- Ajout de `VNV-ORTHOTROPIC-SOLID-CONVERGENCE-003`: convergence hors axes sur
|
|
154
|
+
quatre maillages TET4/TET10 et reference TET10 fine. Le TET10 atteint
|
|
155
|
+
`0,292 %`; le TET4 converge mais conserve `21,66 %` d'ecart en flexion.
|
|
156
|
+
- Ajout de `VNV-ORTHOTROPIC-ISOTROPIC-NONREGRESSION-004` et mise en cache de
|
|
157
|
+
la matrice isotrope : equivalence numerique sous `2,50e-16`, ratios temps et
|
|
158
|
+
memoire sous `1,25`. Les specifications `001..008` sont couvertes.
|
|
159
|
+
|
|
160
|
+
### TET4 total lagrangien structurel V2
|
|
161
|
+
|
|
162
|
+
- Ajout du post-traitement fini par element : `F`, Green-Lagrange, PK2,
|
|
163
|
+
Cauchy, energie et `det(F)`.
|
|
164
|
+
- Ajout des campagnes `VNV-TET4-TL-STRESS-005`,
|
|
165
|
+
`VNV-TET4-TL-BUCKLING-EULER-006` et
|
|
166
|
+
`VNV-TET4-TL-POSTBUCKLING-007`.
|
|
167
|
+
- Ajout d'une recherche de charge critique par tangente precontrainte et d'un
|
|
168
|
+
suivi arc-length creux sans matrice augmentee dense.
|
|
169
|
+
- Ajout des rapports Markdown, PNG et manifestes SHA-256 associes; statut
|
|
170
|
+
`research`, en attente d'une nouvelle revue mecanique.
|
|
171
|
+
- Correlation externe CalculiX `2.20` C3D4 sur contrainte finie et flambement
|
|
172
|
+
propre: ecart Cauchy `1,17e-7` et ecart de charge critique fine `0,035 %`.
|
|
173
|
+
- Correlation externe Code_Aster `18.1.0` TETRA4 sur PK2 et colonne imparfaite:
|
|
174
|
+
ecarts `8,54e-5` et `1,69e-9`; flambement propre solide marque non applicable
|
|
175
|
+
pour l'operateur `RIGI_GEOM` au lieu d'utiliser une formulation differente.
|
|
176
|
+
- Ajout du chemin public `geometric_nonlinear_static` pour TET4 homogene sous
|
|
177
|
+
charges nodales mortes, avec Newton complet, sorties finies et maturite
|
|
178
|
+
`research` bloquee par le profil qualification.
|
|
179
|
+
- Ajout du point de flambement `VNV-TET4-TL-BUCKLING-H5-010` a `98 304` TET4:
|
|
180
|
+
erreur Euler `1,896 %`, accord CalculiX `0,0343 %` et revue structurelle V2
|
|
181
|
+
`accepted_with_recommendations` par Quentin Farinazzo.
|
|
182
|
+
- Demarrage de la consolidation TET10 avec selection de quadrature : Hammer a
|
|
183
|
+
4 points sur geometrie droite, Duffy positive a 64 points sur geometrie
|
|
184
|
+
courbe et controle du Jacobien sur 35 points avant assemblage.
|
|
185
|
+
- Ajout de `VNV-TET10-GEOMETRY-QUADRATURE-011` : erreur matricielle courbe
|
|
186
|
+
`7,51e-7` face a Duffy ordre 8, amelioration superieure a quatre ordres de
|
|
187
|
+
grandeur face a Hammer et rejet controle des geometries inversees.
|
|
188
|
+
- Ajout de `VNV-TET10-STRUCTURAL-CONVERGENCE-012` sur 24 calculs TET4/TET10:
|
|
189
|
+
patch de traction au bruit machine, erreur de flexion TET10 `1,179 %`,
|
|
190
|
+
erreur de rotation de torsion `0,00250 %` et erreur de contrainte `0,991 %`.
|
|
191
|
+
- Extension du chargement coherent de torsion aux faces quadratiques T6 avec
|
|
192
|
+
correction discrete de resultante et conservation du couple a `2,27e-16`.
|
|
193
|
+
- Ajout de `VNV-TET10-MASS-MODAL-LOADS-013` : masse courbe, pression T6,
|
|
194
|
+
recuperation nodale et premier couple modal verifies; ecart frequentiel
|
|
195
|
+
maximal `0,434 %` et residu propre `9,74e-11`.
|
|
196
|
+
- Ajout de `VNV-TET10-CALCULIX-C3D10-014` sur un arbre courbe strictement
|
|
197
|
+
identique : ecarts QF_solver/CalculiX de `6,84e-5` sur le champ complet et
|
|
198
|
+
`6,45e-5` sur la rotation terminale.
|
|
199
|
+
- Ajout de `VNV-TET10-NEAR-INCOMPRESSIBLE-015` : a `nu=0,499`, le TET10
|
|
200
|
+
conserve `94,83 %` de la compliance de Timoshenko contre `8,48 %` pour le
|
|
201
|
+
TET4 temoin; l'incompressibilite exacte reste hors scope.
|
|
202
|
+
- Ajout de la revue mecanique TET10 lineaire en PDF autonome de 11 pages, avec
|
|
203
|
+
catalogue des modeles et sept figures incorporees sans lien externe.
|
|
204
|
+
- Validation interne TET10 lineaire `accepted_with_recommendations` par Quentin
|
|
205
|
+
Farinazzo le `2026-07-18`; campagne finale sur pieces complexes et
|
|
206
|
+
correlations multi-solveurs differee avant acceptation totale.
|
|
207
|
+
- Centralisation des quadratures triangulaires positives T3/T6 dans le module
|
|
208
|
+
solide commun, utilise par les charges et les oracles V&V.
|
|
209
|
+
|
|
210
|
+
### Validation modale MITC4
|
|
211
|
+
|
|
212
|
+
- Ajout des etudes analytiques `VNV-MITC4-MODAL-CANTILEVER-002` et
|
|
213
|
+
`VNV-MITC4-MODAL-PLATE-003` avec convergence h, MAC, residus et
|
|
214
|
+
orthogonalite masse.
|
|
215
|
+
- Verification des dix premiers modes de Navier, y compris trois paires
|
|
216
|
+
propres doubles comparees par sous-espaces.
|
|
217
|
+
- Publication automatique des courbes, de la deformee et des tableaux dans le
|
|
218
|
+
site technique hors ligne.
|
|
219
|
+
- Ajout de sondes temporelles Newmark optionnelles et de
|
|
220
|
+
`VNV-MITC4-NEWMARK-FREE-002`: historique cosinus, convergence d'ordre deux,
|
|
221
|
+
retour de periode, energie et residu dynamique.
|
|
222
|
+
- Ajout de `VNV-MITC4-NEWMARK-DAMPED-FORCED-003` avec decroissance amortie,
|
|
223
|
+
puissance dissipative, force modale sinusoidale et deux solutions fermees.
|
|
224
|
+
- Ajout de la reponse harmonique MITC4 avec condensation/reconstruction
|
|
225
|
+
complexe du drilling, limite statique, amplitude, phase, resonance et
|
|
226
|
+
sensibilite a l'amortissement dans `VNV-MITC4-HARMONIC-MODAL-001`.
|
|
227
|
+
- Demonstration et implementation du complement de Schur harmonique exact
|
|
228
|
+
pour `C=alpha*M+beta*K`, incluant charge directe `RZ`, `rayleigh_beta > 0`
|
|
229
|
+
et comparaison au systeme complexe complet dans
|
|
230
|
+
`VNV-MITC4-HARMONIC-CONDENSATION-002`.
|
|
231
|
+
- Le scope `mitc4-modal` est `candidate`; la revue mecanique doit etre refaite
|
|
232
|
+
et une revue independante reste obligatoire avant qualification externe.
|
|
233
|
+
|
|
234
|
+
### Non-linearite, dynamique et grand modele
|
|
235
|
+
|
|
236
|
+
- correction de la recherche lineaire non lineaire aux passages par charge
|
|
237
|
+
nulle par normalisation avec la charge de reference;
|
|
238
|
+
- validation et journalisation des pas adaptatifs, avec plafond explicite des
|
|
239
|
+
coupures et tests de reduction, croissance, rollback et erreurs d'entree;
|
|
240
|
+
- ajout de `VNV-J2-NONLINEAR-METHODS-004`: accord Newton complet/Armijo sur la
|
|
241
|
+
reponse axiale et caracterisation de l'echec de Newton modifie en inversion
|
|
242
|
+
plastique;
|
|
243
|
+
- ajout du checkpoint/restart non lineaire NPZ atomique avec deplacements,
|
|
244
|
+
facteur de charge, etats J2 committes, empreinte physique et preuve
|
|
245
|
+
d'identite entre calcul continu et repris;
|
|
246
|
+
- ajout des diagnostics incrementaux non lineaires: corrections, travaux
|
|
247
|
+
interne/externe trapezoidaux, desequilibre, coupures et commit;
|
|
248
|
+
- ajout de `VNV-J2-STEP-SENSITIVITY-005` sur `12/24/48` increments avec
|
|
249
|
+
comparaison des retournements et de l'etat final;
|
|
250
|
+
- ajout du noyau de recherche TET4 total lagrangien Saint-Venant-Kirchhoff,
|
|
251
|
+
avec objectivite, energie et tangente consistante verifiees;
|
|
252
|
+
- extension de `VNV-TET4-TL-ASSEMBLY-002` a
|
|
253
|
+
`192/648/1536/5184/12288/24000` elements: invariants assembles `PASS`,
|
|
254
|
+
variation finale de fleche `3,81 %` et ecart elastica `6,91 %`;
|
|
255
|
+
- ajout de `VNV-TET4-TL-STEPS-004`: identite de la fleche avec `6/10/12/24`
|
|
256
|
+
increments a `8,10e-16` relatif; minimum technique `6`, valeur recommandee
|
|
257
|
+
et valeur par defaut `10`;
|
|
258
|
+
- ajout de `VNV-TET4-TL-CALCULIX-003` sur six maillages identiques C3D4;
|
|
259
|
+
ecart maximal de fleche QF_solver/CalculiX `1,86e-7` relatif;
|
|
260
|
+
- ajout d'un oracle d'elastica Euler sous charge morte et de courbes de
|
|
261
|
+
convergence/deformee pour la revue mecanique;
|
|
262
|
+
- vectorisation de la force et tangente TET4-TL avec cache de la geometrie de
|
|
263
|
+
reference; les trois anciens niveaux sont acceleres d'environ `28,8x` sur la
|
|
264
|
+
machine de campagne;
|
|
265
|
+
- ajout d'une evaluation de force interne TET4-TL sans construction inutile
|
|
266
|
+
de la tangente pendant la recherche lineaire;
|
|
267
|
+
- ajout au plan P6 du futur perimetre composites: orthotropie, theorie des
|
|
268
|
+
stratifies, MITC4 multicouche, criteres de rupture et campagne V&V;
|
|
269
|
+
- ajout de `postprocess-large`: contraintes, deformations, von Mises, volumes
|
|
270
|
+
et energies TET4 ecrits par blocs HDF5 avec checkpoint atomique et reprise;
|
|
271
|
+
- preuve sur `477 042` TET4: reprise apres `131 072` elements, environ
|
|
272
|
+
`536k elements/s` et accord energetique solveur/post-traitement `4,14e-13`;
|
|
273
|
+
- ajout de `benchmark-large --restart-from`, avec validation SHA-256 du modele
|
|
274
|
+
et lecture de la tranche de deplacement possedee par chaque rang; reprise
|
|
275
|
+
PETSc quatre rangs en zero iteration et ecart de deplacement nul;
|
|
276
|
+
- ajout de `petsc-tuning-report` et de cinq presets GAMG/Hypre executes dans
|
|
277
|
+
des processus MPI separes sur bloc, poutre et plaque;
|
|
278
|
+
- campagne de quinze calculs `PASS`, ecart deplacement maximal `1,96e-11`;
|
|
279
|
+
GAMG seuil `0.01` gagne `18,0/5,3/7,3 %`, mais GAMG par defaut est conserve
|
|
280
|
+
car le seuil de gain `10 %` n'est pas atteint sur toutes les topologies;
|
|
281
|
+
- ajout de `petsc-profile-report` et d'une campagne `-Action profile` sur bloc,
|
|
282
|
+
poutre et plaque a environ 254k DDL, avec journaux `-log_view`, rapports
|
|
283
|
+
JSON/Markdown, manifeste et diagnostics des communications/evenements;
|
|
284
|
+
- campagne PETSc quatre rangs multi-topologie `PASS`: `49/161/136` iterations
|
|
285
|
+
et `1,96/6,24/5,11 s` dans `KSPSolve`; le setup GAMG reste voisin de
|
|
286
|
+
`0,55-0,61 s` et le defaut n'est pas modifie;
|
|
287
|
+
- ajout de `large-preconditioners` et `large-scaling-report`, avec comparaison
|
|
288
|
+
des deplacements par blocs, rapports JSON/Markdown et preuves SHA-256;
|
|
289
|
+
- comparaison 1M/4 rangs GAMG contre Hypre/BoomerAMG: accord `3,40e-12`, GAMG
|
|
290
|
+
retenu car plus rapide et plus leger sur le cas mesure;
|
|
291
|
+
- activation tracee du repartitionnement des grilles grossieres GAMG a partir
|
|
292
|
+
de quatre rangs et separation des temps setup/iterations KSP;
|
|
293
|
+
- campagne de scalabilite faible 1/2/4 rangs, classee `WARNING` avec une
|
|
294
|
+
efficacite minimale de `41,6 %`;
|
|
295
|
+
- lecture PETSc multi-rangs par hyperslabs HDF5, connectivite locale et table
|
|
296
|
+
compacte des noeuds references, sans replication des grands tableaux;
|
|
297
|
+
- sortie distribuee `displacements.bin` par MPI-IO collectif, sans
|
|
298
|
+
rassemblement sur le rang racine, avec metadonnees, controle de taille et
|
|
299
|
+
manifeste SHA-256;
|
|
300
|
+
- executions distribuees `PASS` sur quatre rangs a `1 029 000` DDL en
|
|
301
|
+
`25,30 s` et `3 000 000` DDL en `64,00 s`, avec residus inferieurs a
|
|
302
|
+
`1,1e-18`;
|
|
303
|
+
- ajout d'un runtime Docker PETSc/MPI epingle, avec `mpi4py 4.1.2`,
|
|
304
|
+
PETSc/`petsc4py 3.25.1` et `h5py 3.13.0`;
|
|
305
|
+
- correction du backend PETSc multi-rangs : partition contigue des elements,
|
|
306
|
+
matrice/vecteur distribues, Dirichlet homogene symetrique et rassemblement
|
|
307
|
+
des deplacements uniquement sur le rang racine;
|
|
308
|
+
- execution `PASS` des jalons `107 811` et `1 029 000` DDL sur deux rangs,
|
|
309
|
+
avec residus `1,82e-15` et `5,22e-15` et preuves SHA-256;
|
|
310
|
+
- vectorisation batchee des gradients, matrices `B` et rigidites TET4, avec
|
|
311
|
+
gains d'assemblage `x10,36` a 100k et `x2,88` a 1M sans ecart numerique;
|
|
312
|
+
- assemblage PETSc BAIJ par blocs nodaux `3x3`, conversion AIJ avant GAMG et
|
|
313
|
+
execution `PASS` du cas 3M en `88,68 s` avec residu `9,00e-19`;
|
|
314
|
+
- scalabilite forte 1/2/4 rangs sur 1M, avec acceleration maximale `1,65` et
|
|
315
|
+
efficacite quatre rangs `41,18 %`;
|
|
316
|
+
- ajout de `large-campaign` pour planifier ou executer une serie TET4
|
|
317
|
+
`100k/1M/3M+`, avec readiness par niveau, rapports JSON/Markdown, preuve
|
|
318
|
+
SHA-256 et distinction explicite entre montee en taille et scalabilite MPI;
|
|
319
|
+
- ajout de la telemetrie RSS processus en complement de `tracemalloc` pour les
|
|
320
|
+
benchmarks grands modeles;
|
|
321
|
+
- extension de `VNV-MITC4-MODAL-CODEASTER-DKQ-004` a dix modes sur `32x32`:
|
|
322
|
+
ecart maximal QF/Code_Aster `1,609 %`, MAC minimal `0,999998493`;
|
|
323
|
+
- ajout de `VNV-MITC4-MODAL-EXTENDED-005`: structure assemblee libre-libre,
|
|
324
|
+
coque cylindrique distordue et `eigsh` sur `7011` DDL actifs, tous `PASS`;
|
|
325
|
+
- ajout d'une grille de revue modale independante qui doit etre signee par une
|
|
326
|
+
personne autre que l'auteur avant qualification externe;
|
|
327
|
+
- gel du scope dynamique sur la masse coherente; les formulations `lumped` et
|
|
328
|
+
`concentrated` sont documentees hors scope et rejetees explicitement;
|
|
329
|
+
- tentative de validation interne du scope `mitc4-modal` par Quentin Farinazzo
|
|
330
|
+
le `2026-07-16`, decision provisoire `accepted_with_recommendations`;
|
|
331
|
+
- ajout des histoires Newmark independantes par contribution de charge, du
|
|
332
|
+
calage de Rayleigh sur deux cibles modales et de leur tracabilite;
|
|
333
|
+
- ajout de `VNV-MITC4-NEWMARK-OPERATIONAL-006`: superposition, decroissance
|
|
334
|
+
analytique et identite calcul continu/reprise checkpoint `PASS`;
|
|
335
|
+
- validation mecanique interne du scope `mitc4-transient-dynamic` par Quentin
|
|
336
|
+
Farinazzo le `2026-07-16`, decision `accepted_with_recommendations`, revue
|
|
337
|
+
Markdown/PDF et registre machine-readable controles;
|
|
338
|
+
- ajout de `VNV-MITC4-NEWMARK-BROADBAND-004`: impulsion demi-sinus, chirp,
|
|
339
|
+
table arbitraire, contraintes transitoires de face, bilan d'energie et
|
|
340
|
+
convergence temporelle face a un oracle modal par exponentielle de matrice;
|
|
341
|
+
- ajout de la correlation locale Code_Aster `18.1.0` DKQ transitoire sur le
|
|
342
|
+
meme maillage `8x8`: correlations `0,9543` en `UZ` et `0,9560` en `S11`,
|
|
343
|
+
ecarts de pic `5,20 %` et `10,51 %`, verdict `PASS`;
|
|
344
|
+
- ajout des lois `half_sine_pulse` et `linear_chirp`, de leur validation
|
|
345
|
+
stricte et des sondes `history_shell_stress_probes`;
|
|
346
|
+
- gel par SHA-256 des six preuves harmoniques dans
|
|
347
|
+
`qualification/baselines/mitc4_harmonic_2026-07-15.json`; la baseline code
|
|
348
|
+
reste candidate jusqu'a un commit Git propre;
|
|
349
|
+
- ajout de la correlation locale Code_Aster `18.1.0` DKQ sur NAFEMS 13H:
|
|
350
|
+
ecarts QF_solver de `3,364 %` en frequence, `1,900 %` en deplacement et
|
|
351
|
+
`3,272 %` en contrainte `S11`, avec verdict `PASS`;
|
|
352
|
+
- ajout du runner Docker epingle, du maillage ASTER, de la reconstruction
|
|
353
|
+
testee de `S11`, du rapport Markdown et de la figure comparative;
|
|
354
|
+
- ajout des contraintes harmoniques complexes MITC4 `S11/S22/S12`, avec reel,
|
|
355
|
+
imaginaire, amplitude et phase par face, element et frequence;
|
|
356
|
+
- correlation `S11` NAFEMS 13H: `30,819 MPa` pour QF_solver, ecarts `1,477 %`
|
|
357
|
+
a Abaqus S4R, `1,412 %` a S4, `2,626 %` a NAFEMS et `3,730 %` a Navier;
|
|
358
|
+
- decision interne du scope harmonique MITC4 portee a
|
|
359
|
+
`accepted_with_recommendations` par Quentin Farinazzo le `2026-07-15`;
|
|
360
|
+
- ajout de `VNV-MITC4-HARMONIC-BROADBAND-003`: excitation decentree de
|
|
361
|
+
`0,1-16 Hz`, quatre familles de resonance et comparaison plein champ a une
|
|
362
|
+
superposition complete de `175` modes, avec erreur maximale `2,411e-7`;
|
|
363
|
+
- ajout de `VNV-MITC4-HARMONIC-NAFEMS13H-004`: reproduction du Test 13H
|
|
364
|
+
publie par Abaqus/Standard, avec ecarts S4R de `2,442 %` en amplitude et
|
|
365
|
+
`0,866 %` en frequence;
|
|
366
|
+
- ajout d'une fiche de revue harmonique controlee, techniquement prete mais
|
|
367
|
+
explicitement non signee et `pending`;
|
|
368
|
+
- ajout d'une correlation externe controlee avec la table Abaqus/Standard S4R
|
|
369
|
+
publiee pour le cylindre pince, incluant provenance, limites, rapport et PNG;
|
|
370
|
+
- ajout de la masse coherente MITC4, incluant masse surfacique et inerties
|
|
371
|
+
rotatoires Reissner-Mindlin sans inertie artificielle de drilling;
|
|
372
|
+
- ajout d'une condensation objective des directions de drilling sans masse,
|
|
373
|
+
avec reconstruction des six ddl pour le modal et Newmark;
|
|
374
|
+
- ajout des scopes `mitc4-modal` et `mitc4-transient-dynamic`, de deux formules
|
|
375
|
+
controlees et des exemples CLI/API associes;
|
|
376
|
+
- ajout de `VNV-MITC4-SHEAR-LOCKING-001`: 160 calculs epaisseur, maillage et
|
|
377
|
+
distorsion, erreur fine maximale `2,08 %` et Q4 verrouillant temoin;
|
|
378
|
+
- ajout des convergences MITC4 Cook, Scordelis-Lo et cylindre pince, avec six
|
|
379
|
+
niveaux Cook (`4,52 %` a `64x64`) et cinq niveaux Scordelis-Lo (`0,31 %`) et
|
|
380
|
+
cylindre pince (`7,26 %`);
|
|
381
|
+
- extension Cook a `64x64` et point isole `200x200` (40 000 elements), montrant
|
|
382
|
+
une reponse stabilisee vers `0,2515` et declenchant une revue de reference;
|
|
383
|
+
- justification de `drilling_scale=1e-4` par une sensibilite de `1e-6` a
|
|
384
|
+
`1e-2`, avec variation de plateau maximale `9,50e-6`;
|
|
385
|
+
- ajout du runner `scripts/run_mitc4_vnv.py`, de rapports Markdown, PNG et
|
|
386
|
+
manifeste de preuves; correlation Abaqus a maillage identique maintenue en attente;
|
|
387
|
+
- ajout de la sonde de contrainte de torsion h9 a `105 529` TET4, soit
|
|
388
|
+
`4,007` fois h8, avec assemblage creux chunked, CG/Jacobi et manifeste;
|
|
389
|
+
- passage de l'erreur globale L2 de contrainte de `29,06 %` a `18,89 %`,
|
|
390
|
+
sous un seuil engineering borne de `20 %` pour l'arbre circulaire lisse;
|
|
391
|
+
- ajout des PNG h9 QF_solver/Saint-Venant pour la deformee, le von Mises et
|
|
392
|
+
l'ecart de contrainte, publies automatiquement dans le site apres controle
|
|
393
|
+
SHA-256;
|
|
394
|
+
- ajout de l'etude V&V TET4 de torsion sur huit maillages, avec champs
|
|
395
|
+
QF_solver/Saint-Venant comparables, PNG, VTU, empreintes et Markdown;
|
|
396
|
+
- ajout de `import_torsion_vnv_study` et du cas torsion a
|
|
397
|
+
`vnv-import-benchmark`;
|
|
398
|
+
- decision interne de torsion portee a `accepted` apres la sonde h9, avec
|
|
399
|
+
maintien explicite des pics ponctuels et singularites hors domaine accepte;
|
|
400
|
+
- ajout du lanceur `qf-solver-docs` / `scripts/serve_docs.py`, limite a
|
|
401
|
+
`127.0.0.1`, pour ouvrir le manuel dans le navigateur systeme sans lien
|
|
402
|
+
local cliquable dans une interface de developpement;
|
|
403
|
+
- suppression des badges de statut parasites dans la navigation et
|
|
404
|
+
renforcement du contraste du titre principal.
|
|
405
|
+
|
|
406
|
+
### Identite QF_solver et benchmarks mailles
|
|
407
|
+
|
|
408
|
+
- Adoption de l'identite publique `QF_solver`, distribution `qf-solver`, CLI
|
|
409
|
+
`qf-solver` et lanceur `qf_solver.py`.
|
|
410
|
+
- Conservation temporaire de `solveur-ef` et `main_solveur.py` avec
|
|
411
|
+
avertissement de deprecation jusqu'a 0.3.0.
|
|
412
|
+
- Ajout de l'import Gmsh MSH 4.1 ASCII/binaire, groupes physiques, charges,
|
|
413
|
+
remappage deterministe et rapport d'import SHA-256.
|
|
414
|
+
- Ajout du catalogue controle de huit benchmarks structures mailles et des
|
|
415
|
+
commandes `benchmarks` et `benchmark`.
|
|
416
|
+
- Ajout des pages individuelles, deformees, champs, criteres et artefacts MSH,
|
|
417
|
+
JSON et VTU regeneres pour les huit benchmarks.
|
|
418
|
+
- Decoupage des formulations TET4, TET10 et MITC4 en cinq chapitres chacune.
|
|
419
|
+
- Correction de l'ordre des deux dernieres aretes TET10 lors de l'import Gmsh.
|
|
420
|
+
- Correction critique de la transformation des gradients TET10 de
|
|
421
|
+
$J^{-1}$ vers $J^{-T}$, protegee par un patch test oblique.
|
|
422
|
+
|
|
423
|
+
### Durcissement P0
|
|
424
|
+
|
|
425
|
+
- Ajout du site technique MkDocs Material hors ligne, organise par fondements,
|
|
426
|
+
elements, solveurs, demonstrations, verification et reference.
|
|
427
|
+
- Migration du manuel theorique monolithique vers 79 pages controlees et un
|
|
428
|
+
registre documentaire machine-readable; l'ancien chemin devient une
|
|
429
|
+
redirection de compatibilite.
|
|
430
|
+
- Ajout d'une campagne documentaire reproductible generant deformees, courbes,
|
|
431
|
+
tableaux, modeles, resultats et manifeste SHA-256 depuis l'API publique.
|
|
432
|
+
- Ajout de MathJax local, du profil de construction `engineering` et du gate
|
|
433
|
+
`qualification` exigeant revision Git et revues documentaires approuvees.
|
|
434
|
+
- Ajout des controles documentaires et visuels responsifs sous Playwright.
|
|
435
|
+
- Ajout de la tracabilite executable de 18 formules TET4, TET10 et MITC4 vers
|
|
436
|
+
exigences, sections, fonctions, tests et references.
|
|
437
|
+
- Ajout d'une convergence h TET4 calculee sur quatre maillages Gmsh, avec
|
|
438
|
+
ordre observe, monotonie, erreur fine et residus comme criteres executables.
|
|
439
|
+
- Separation du statut numerique et de `RunVerdict`, avec codes de sortie
|
|
440
|
+
stables `0`, `2`, `3`, `4`, `5`.
|
|
441
|
+
- Ajout du registre machine-readable des exigences et de la readiness par
|
|
442
|
+
scope.
|
|
443
|
+
- Passage du manifeste de preuve en v2, compatible en lecture avec v1.
|
|
444
|
+
- Correction de la tangente algorithmique J2 et du post-traitement TET10
|
|
445
|
+
chemin-dependant.
|
|
446
|
+
- Rejet explicite des singularites, valeurs non finies et parametres
|
|
447
|
+
dynamiques instables.
|
|
448
|
+
- Ajout de la CI Windows/Linux Python 3.10/3.13, couverture de branches,
|
|
449
|
+
typage progressif et baselines verrouillees.
|
|
450
|
+
- Ajout d'une factorisation LU sparse reutilisable pour Newmark et suppression
|
|
451
|
+
de la conversion dense de la masse initiale.
|
|
452
|
+
- Passage du modal par defaut a `eigsh` et ajout de la garde
|
|
453
|
+
`dense_modal_max_dofs` avant `eigh`.
|
|
454
|
+
- Remplacement de la masse concentree TET10 par une masse coherente integree.
|
|
455
|
+
- Ajout des controles TET10 de noeuds d'arete et de jacobiens echantillonnes.
|
|
456
|
+
- Ajout de l'extrapolation nodale elastique TET10 et de la campagne
|
|
457
|
+
`verify-tet10` avec patch, energie et convergence.
|
|
458
|
+
- Ajout des chargements repartis coherents TET4/TET10/MITC4: pesanteur,
|
|
459
|
+
force volumique, pression, traction de surface et traction de bord MITC4.
|
|
460
|
+
- Ajout du bilan force/moment par contribution dans les resultats et l'audit,
|
|
461
|
+
avec validation stricte, exemple CLI/API et tests analytiques.
|
|
462
|
+
|
|
463
|
+
## 0.1.0 - qualification-ready baseline
|
|
464
|
+
|
|
465
|
+
- Ajout des profils de verification `quick`, `engineering`, `strict` et
|
|
466
|
+
`qualification`.
|
|
467
|
+
- Ajout du dossier de preuve `evidence` via CLI et API.
|
|
468
|
+
- Ajout du resume `qualification_summary` dans les resultats JSON.
|
|
469
|
+
- Ajout des metadonnees auditables: version solveur, schema JSON, unites,
|
|
470
|
+
profil de verification, maturite et niveau de preuve.
|
|
471
|
+
- Ajout de la matrice de qualification dans `docs/qualification_matrix.md`.
|
|
472
|
+
|
|
473
|
+
## Politique de version
|
|
474
|
+
|
|
475
|
+
- `patch`: correction sans changement volontaire de schema ou de resultat.
|
|
476
|
+
- `minor`: nouvelle fonctionnalite compatible.
|
|
477
|
+
- `major`: changement de schema, d'API ou de comportement numerique attendu.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
message: "If you use QF_solver, please cite the software and its release version."
|
|
3
|
+
type: software
|
|
4
|
+
title: "QF_solver"
|
|
5
|
+
version: "0.2.0-alpha"
|
|
6
|
+
date-released: 2026-08-13
|
|
7
|
+
license: "Apache-2.0"
|
|
8
|
+
authors:
|
|
9
|
+
- family-names: "Farinazzo"
|
|
10
|
+
given-names: "Quentin"
|
|
11
|
+
repository-code: "https://github.com/emptiesvoid-cloud/QF_solver"
|
|
12
|
+
abstract: "White-box finite-element solver for controlled mechanical studies."
|