Commit Graph

2036 Commits

Author SHA1 Message Date
Jukka Aho cac893ca98 docs(test): add top-level test tree README
Describe how topic `runtests.jl` files mirror `src/` and how to filter suites.

- Point contributors at ARGS topic filtering via `test/runtests.jl`.
2026-05-09 18:37:01 +03:00
Jukka Aho 086bc061d0 docs(topology): add module README for reference shapes
Outline topology types, aliases, and downstream consumers (`Mesh`, basis).

- Provide quick navigation for contributors touching shape definitions.
2026-05-09 18:36:33 +03:00
Jukka Aho 3788199791 docs(quadrature): add module README for integration rules
Summarize quadrature entry points and how they pair with topology/basis code.

- Document Gauss families and extension hooks at a glance.
2026-05-09 18:36:32 +03:00
Jukka Aho 3788067fa6 feat(mesh): add pyramid facet connectivity maps
Support lowest-order facet metadata on `Pyr5` meshes.

- Introduce `Pyr5FacetMaps` parallel to hex/tet facet helpers.
2026-05-09 18:36:14 +03:00
Jukka Aho 48ebc9bf4d feat(mesh): add wedge facet connectivity maps
Extend facet-map machinery to `Wedge6`/`Wedge15` skeletons.

- Add `Wedge6FacetMaps` builders aligned with topology reference numbering.
2026-05-09 18:36:14 +03:00
Jukka Aho 261b145b92 feat(mesh): add Hex8 facet connectivity maps
Track global facet topology metadata for hex meshes used by face-based DOFs.

- Introduce `Hex8FacetMaps` construction helpers and orientation bookkeeping.
2026-05-09 18:36:14 +03:00
Jukka Aho cbf19a0800 feat(mesh): add Tet4/Tet10 facet connectivity maps
Provide edge/face global IDs and orientation hints for lowest-order facet DOFs on tets.

- Introduce `Tet4FacetMaps` plus builders consumed by DOF handlers.
2026-05-09 18:36:14 +03:00
Jukka Aho a1cf26fa98 feat(legacy): add Legacy.jl entry module
Wire optional loading of historical Problems, fields, solvers, and Abaqus IO after
the modern core is defined.

- Gate includes on `JULIAFEM_ENABLE_LEGACY` from `JuliaFEM.jl`.
2026-05-09 18:35:49 +03:00
Jukka Aho 05308161bf docs(legacy): describe opt-in Legacy module scope
Document what ships behind `JULIAFEM_ENABLE_LEGACY=1` and how includes are ordered.

- Summarize Dict fields, Problems/Solvers, and Abaqus IO relocation.
2026-05-09 18:35:49 +03:00
Jukka Aho 598b216b63 feat(legacy/io): restore optional Abaqus example downloader
Reintroduce environment-driven downloads for tutorial `.inp` decks behind Legacy.

- Implement `abaqus_download` with URL/dir env hooks.
2026-05-09 18:35:34 +03:00
Jukka Aho f397e950e4 feat(legacy/io): add surface-element extraction tables
Provide side-mapping helpers that convert solid connectivity to boundary facets.

- Add static face maps plus `create_surface_elements` Dict APIs.
2026-05-09 18:35:34 +03:00
Jukka Aho 013d67fbef feat(legacy/io): vendor Abaqus model AST types
Restore mutable `Model`/`Mesh` Dict containers for `.inp` ingestion.

- Include section parsers and state machine helpers from the historical reader.
2026-05-09 18:35:34 +03:00
Jukka Aho 75902d50d4 feat(legacy/io): vendor Abaqus mesh parser tables
Bring back element-code dispatch and mesh scanning for Dict-based meshes.

- Add `parse_mesh.jl` consumed by `abaqus_read_mesh`.
2026-05-09 18:35:33 +03:00
Jukka Aho e8a0da5c13 feat(legacy/io): add Abaqus keyword registration globals
Restore mutable keyword registry used by the `.inp` parser inside Legacy.

- Implement `register_abaqus_keyword` / `is_abaqus_keyword_registered`.
2026-05-09 18:35:33 +03:00
Jukka Aho e15a97fcfe feat(legacy): add sparse LinearSystem assembly container
Introduce the legacy augmented-system representation used by `Solver`/`Analysis`.

- Track stiffness blocks, constraint matrices, and RHS assembly scratch.
2026-05-09 18:35:23 +03:00
Jukka Aho 6de42a599a feat(legacy): add Poi1/Lagrange element constructors
Provide legacy `Element` factories with Dict-backed geometry fields.

- Implement `elements_lagrange.jl` hooks expected by Abaqus glue and Problems.
2026-05-09 18:35:23 +03:00
Jukka Aho d13f1ec998 feat(legacy): restore Dict-based DCTI/DVTI field containers
Bundle FEMBase-style discrete fields (`DCTI`, `DVTI`, time-variant Dict backs)
inside `JuliaFEM.Legacy`.

- Add constructors, interpolation hooks, and mutation helpers used by old Problems.
2026-05-09 18:35:23 +03:00
Jukka Aho d6c36ade04 feat(legacy): add CSC sparse helpers for linear-system path
Move `get_nonzero_rows`, resizing utilities, and related helpers into the opt-in
Legacy stack for solver wiring.

- Provide CSC-only helpers consumed by `legacy/solvers.jl` / `linear_system.jl`.
2026-05-09 18:35:22 +03:00
Jukka Aho 955b59c839 feat(materials): add element-wise scalar diffusion coefficient cache
Support piecewise-constant per-element κ fields for nonlinear diffusion assembly.

- Implement `ElementWiseScalarDiffusion` behavior trait and evaluation hooks.
2026-05-09 18:34:41 +03:00
Jukka Aho cd60d89407 feat(materials): add hydraulic conductivity for Darcy flow
Wire `HydraulicConductivity` into potential-based Darcy kernels.

- Provide permeability-driven flux linearizations with documented traits.
2026-05-09 18:34:40 +03:00
Jukka Aho 5b99a7a427 feat(materials): add moisture diffusion conductivity tag
Introduce `MoistureDiffusivity` for scalar moisture transport kernels.

- Declare physics traits and constant diffusion tensors/scalars as appropriate.
2026-05-09 18:34:40 +03:00
Jukka Aho ac3675cd3c feat(materials): add thermal conductivity material law
Provide Fourier heat flux linear map with `HeatKernel` trait hooks.

- Implement `HeatConductivity` constants and stress/tangent analogues for diffusion.
2026-05-09 18:34:40 +03:00
Jukka Aho 9d533353ee feat(materials): add eigenstrain-augmented linear elasticity
Support prescribed eigenstrain tensors updated outside `compute_stress`.

- Add `LinearElasticWithEigenstrain` and matching state-variable declarations.
2026-05-09 18:34:40 +03:00
Jukka Aho 13b6c67597 feat(materials): add Norton–Bailey creep coupled to elasticity
Introduce explicit creep strain increment updates with elastic tangent returns.

- Wire `CreepStrain` state requirements and trait classification.
2026-05-09 18:34:40 +03:00
Jukka Aho 5adc180f2f feat(materials): add Chaboche nonlinear kinematic hardening J2 model
Extend J₂ plasticity with Armstrong–Frederick backstress slots using compositional state tags.

- Add `ChabocheJ2Plasticity` plus `compute_stress` integration.
2026-05-09 18:34:40 +03:00
Jukka Aho c19b0aaf00 feat(materials): add scalar damage wrapper on linear elasticity
Provide staggered scalar damage evolution with explicit tangent omissions documented in traits.

- Implement `ScalarDamageLinearElastic` stress/tangent updates.
2026-05-09 18:34:39 +03:00
Jukka Aho ccc2f113b2 feat(materials): add St. Venant–Kirchhoff J2 finite-strain plasticity
Combine Green–Lagrange kinematics with J₂ return mapping on the elastic predictor.

- Override `continuum_kinematics` and declare required IP state variables.
2026-05-09 18:33:56 +03:00
Jukka Aho ea506e2b14 feat(materials): add J2 isotropic hardening plasticity
Introduce classic radial-return J₂ plasticity with NamedTuple IP state.

- Wire traits, consistent tangent assembly, and `compute_stress` updates.
2026-05-09 18:33:56 +03:00
Jukka Aho cf5a29aed3 feat(materials): add Mooney–Rivlin, Yeoh, and Gent hyperelastic laws
Provide additional `StatelessStrainDependent` models alongside Neo-Hookean.

- Implement strain-energy densities and `compute_stress` bridges for common hyperelastic forms.
2026-05-09 18:33:56 +03:00
Jukka Aho dff07f812e feat(materials): add orthotropic linear elasticity model
Implement rotation-aware orthotropic Hooke law with trait hooks for continuum assembly.

- Add `OrthotropicLinearElastic` plus stress/tangent evaluation utilities.
2026-05-09 18:33:56 +03:00
Jukka Aho b93faf8624 feat(materials): add GlobalMaterialCache and material_state_type
Implement the NamedTuple-backed integration-point workspace used across kernels,
including zero-state construction, getters/setters, and trait-driven sizing.

- Introduce `GlobalMaterialCache{StateType}` with paired current/old IP state matrices.
- Wire `material_state_type`, `create_global_material_cache`, and helpers that map
  `required_state_variables` into concrete state tuples.
2026-05-09 18:33:08 +03:00
Jukka Aho b185f65ad5 feat(quadrature): integrate basis degree into quadrature selection
Add `basis_quadrature_order` and an `integration_points(topology, basis)` overload
so assembly can match Gauss rules to `Lagrange{P}` / `Serendipity{P}` instead of
inferring order only from topology node counts.

- Delegate rule choice to `default_quadrature(T, ord)` with `ord` from the basis.
2026-05-09 18:32:52 +03:00
Jukka Aho 06eb9864a7 feat(materials): add continuum kinematics trait tags
Introduce `SmallStrainKinematics` vs `GreenLagrangeKinematics` hooks so
`update_material_cache!` can pick the strain measure per material.

- Define `AbstractContinuumKinematics`, concrete tags, and default
  `continuum_kinematics(::AbstractMaterial)` dispatch.
2026-05-09 18:32:40 +03:00
Jukka Aho ec8efd52dd feat(materials): add symmetric fourth-order identity helper
Provide the Lamé-style symmetric identity tensor builder shared by elastoplastic
material implementations.

- Add `symmetric_identity_tensor()` returning `SymmetricTensor{4,3}` with SPDX header.
2026-05-09 18:32:29 +03:00
Jukka Aho 2f6715a025 chore(test): delete fundamentals quad4 validation tutorial script
Remove legacy single-element validation tutorial.

- Drop `validation_1element_quad4.jl`.
2026-05-09 18:31:43 +03:00
Jukka Aho a0cffd9146 chore(test): delete fundamentals Gmsh recipe tutorial script
Remove companion recipe script for retired Gmsh tutorial.

- Drop `reading_gmsh_meshes_recipe.jl`.
2026-05-09 18:31:42 +03:00
Jukka Aho 72c1d607f4 chore(test): remove fundamentals tutorial Gmsh mesh fixture
Delete bundled `.msh` asset for removed tutorial script.

- Drop `reading_gmsh_meshes.msh`.
2026-05-09 18:31:42 +03:00
Jukka Aho 534889f985 chore(test): delete fundamentals Gmsh reading tutorial script
Remove stale tutorial harness superseded by `test/io/test_gmsh_reader.jl`.

- Drop `reading_gmsh_meshes.jl`.
2026-05-09 18:31:42 +03:00
Jukka Aho cceb56849b chore(test): delete fundamentals creating_elements tutorial script
Remove obsolete tutorial referencing retired element constructors.

- Drop `creating_elements.jl`.
2026-05-09 18:31:42 +03:00
Jukka Aho 684974b18e chore(test): delete fundamentals basis_functions tutorial script
Remove legacy tutorial code under `test/tutorials/` (historical API).

- Drop `basis_functions.jl`.
2026-05-09 18:31:42 +03:00
Jukka Aho a3f3ee9401 chore(test): delete strain-based validation regression
Remove obsolete strain validation harness.

- Drop `test/validation/test_strain_based.jl`.
2026-05-09 18:31:16 +03:00
Jukka Aho 2e6f83dd0a chore(test): drop elasticity helper validation suite
Remove unused helper verification tests.

- Delete `test/validation/test_elasticity_helpers.jl`.
2026-05-09 18:31:16 +03:00
Jukka Aho 43dc646ae0 chore(test): remove minimal cantilever validation test
Delete retired cantilever benchmark tied to old APIs.

- Drop `test/validation/test_cantilever_minimal.jl`.
2026-05-09 18:31:16 +03:00
Jukka Aho 91cb53b012 chore(test): delete legacy topology smoke suite
Remove redundant topology reference coordinate checks.

- Drop `test/topology/test_topology.jl`.
2026-05-09 18:31:16 +03:00
Jukka Aho 17ea9c32a2 chore(test): drop topology integration regression
Remove stale topology/quadrature coupling tests.

- Delete `test/topology/test_integration.jl`.
2026-05-09 18:31:15 +03:00
Jukka Aho 295b26b411 chore(test): drop unused solver postprocess tet4.inp fixture 2026-05-09 18:30:55 +03:00
Jukka Aho 2d07bd8dd5 chore(test): drop unused mortar 3D tet4.inp fixture 2026-05-09 18:30:55 +03:00
Jukka Aho 620806dd14 chore(test): drop unused mortar 3D tet10.inp fixture 2026-05-09 18:30:55 +03:00
Jukka Aho a736df3c5f chore(test): drop unused contact 3D tet4.inp fixture 2026-05-09 18:30:54 +03:00
Jukka Aho 1392563766 chore(test): drop unused contact 3D tet10.inp fixture 2026-05-09 18:30:54 +03:00