Commit Graph

1958 Commits

Author SHA1 Message Date
Jukka Aho 69e0f3d9e2 chore(sparse): remove unused SparseVector DOK prototype
Delete the experimental dictionary-backed sparse vector helper not wired into
the package entry manifest.

- Drop `src/sparse/sparsevectordok.jl`.
2026-05-09 18:21:34 +03:00
Jukka Aho 32e47f68b6 chore(sparse): delete duplicate CSC helper include target
Remove the standalone CSC utilities file now superseded by
`src/legacy/sparse_helpers.jl` and dropped from `sparse.jl`.

- Drop `src/sparse/sparsematrixcsc.jl`.
2026-05-09 18:21:32 +03:00
Jukka Aho d66c5f78b6 refactor(sparse): slim COO module and SPDX header
Stop pulling deleted CSC helper includes into `sparse.jl`, adopt SPDX lines,
and drop unused dense helpers that duplicated `Legacy` utilities.

- Document that `SparseMatrixCOO` is legacy-oriented vs raw assembler triplets.
- Use `resize!(..., 0)` for `empty!` and qualify `Base.append!`.
- Remove `get_nonzero_rows`/`get_nonzero_columns` and `resize_sparse` helpers from
  this file (see `src/legacy/sparse_helpers.jl`).
2026-05-09 18:21:11 +03:00
Jukka Aho 4fb3dcec7c chore(solvers): delete unused solver base stubs
Remove the standalone solver scaffolding file outside the active include graph.

- Drop `src/solvers/solvers_base.jl`.
2026-05-09 18:20:19 +03:00
Jukka Aho 59ff3be59b docs(quadrature): explain Tuple wrap in integration_points
Clarify why `integration_points` converts the quadrature `SVector` to a `Tuple`
for downstream destructuring while noting compile-time stack usage.

- Refresh comments around `default_quadrature` / `_quadrature_topology_type`.
2026-05-09 18:20:11 +03:00
Jukka Aho eddd901fa4 docs(quadrature): clarify default_quadrature overload story
Drop the unused topology×basis doc signature and align comments with the
actually implemented order/topology paths plus `_infer_basis_order`.

- Remove stale `AbstractBasis` overload documentation.
- Renumber the topology-only path as the third dispatch tier.
2026-05-09 18:19:56 +03:00
Jukka Aho d1716ab969 docs(physics): cross-link strain extraction helpers
Note that `extract_strain` consumes an existing displacement gradient, with
`compute_strain` covering the assembly path from nodal DOFs.
2026-05-09 18:15:45 +03:00
Jukka Aho 3ada6aa07d docs(physics): tidy Thermal tag docstring
Drop a duplicated example line and remove the commented-out Fluid placeholder
that suggested unfinished velocity dispatch.

- Clarify `Thermal{Dim}` wording; delete stale `Fluid{Dim}` sketch.
2026-05-09 18:15:35 +03:00
Jukka Aho 6a3c6754cb docs(physics): trim api.jl to assembler-era stubs
Replace the long `Physics{...}` narrative with short placeholders that explain
how `assemble!`/`solve!`/BC hooks are extended by assemblers or Legacy only.

- Document the kernel + assembler workflow as the active surface.
- Point Dirichlet/Neumann reservations at matrix-free BC and load value types.
- Keep generic function declarations for Legacy method attachment.
2026-05-09 18:15:34 +03:00
Jukka Aho ca9d61a700 docs(physics): refocus AbstractPhysics as a tag marker
Replace stale `Physics{...}` API docs with the actual 0.x role: a lightweight
trait root for `Elasticity`/`Thermal` tags and material dispatch, with legacy
`Physics` confined to `JuliaFEM.Legacy`.

- Shorten `AbstractPhysics` docstring and drop obsolete interface/examples.
2026-05-09 18:15:03 +03:00
Jukka Aho 60a72da1b2 chore(physics): delete legacy microkernel placeholders
Remove early microkernel scaffolding superseded by domain-local kernels.

- Drop `src/physics/microkernels.jl`.
2026-05-09 18:14:47 +03:00
Jukka Aho 0fbf08ef95 chore(physics): delete unused formulation trait stubs
Remove the superseded formulation tagging layer not included from `JuliaFEM.jl`.

- Drop `src/physics/formulations.jl`.
2026-05-09 18:14:40 +03:00
Jukka Aho 18c66a925b chore(physics): delete legacy elasticity Problem glue
Remove the unused elasticity orchestration module outside active includes.

- Drop `src/physics/elasticity.jl`.
2026-05-09 18:14:31 +03:00
Jukka Aho d66500d362 chore(physics): delete orphaned deformation gradient helpers
Remove duplicated kinematics helpers superseded by `materials/continuum_kinematics.jl`.

- Drop `src/physics/deformation_gradient.jl`.
2026-05-09 18:14:26 +03:00
Jukka Aho 2a3fc9499a chore(physics): remove Dict-based boundary condition bag
Delete the unused boundary-condition container/types file not pulled into the
package entry manifest.

- Drop `src/physics/boundary_conditions.jl`.
2026-05-09 18:14:19 +03:00
Jukka Aho ea1e6de8e9 chore(physics): delete unused assembly helper stubs
Remove legacy glue that lived outside the active `src/physics/` include list.

- Drop `src/physics/assembly_helpers.jl`.
2026-05-09 18:12:50 +03:00
Jukka Aho a5e0c3c170 chore(physics): remove legacy Physics monolith include target
Delete the Dict-era `Physics` implementation file that duplicated boundary
condition plumbing removed from the modern kernel-centric surface.

- Drop `src/physics.jl` (unused relative to `JuliaFEM.jl` includes).
2026-05-09 18:12:43 +03:00
Jukka Aho a95d917b08 fix(mesh): keyword Mesh constructor in structured Hex8 builder
Document that only structured bricks are supported here and route box mesh
construction through the keyword outer constructor.

- Clarify the `Hex8`-only structured entry point in the docstring.
- Replace positional `Mesh{Hex8}(..., sets...)` with keyword `element_sets` /
  `node_sets` arguments.
2026-05-09 18:12:20 +03:00
Jukka Aho d431b54cb6 fix(mesh): align Hex8 refinement with Mesh{N,T} constructors
Use explicit `Mesh{8, Hex8}` signatures, SPDX banner lines, and the keyword
`Mesh{T}(nodes, conn; ...)` outer constructor after the mesh core refactor.

- Update docstrings and method signatures from `Mesh{Hex8}` to `Mesh{8, Hex8}`.
- Build refined meshes via `element_sets`/`node_sets` keywords.
2026-05-09 17:39:54 +03:00
Jukka Aho 025bed90af refactor(mesh): slim Mesh core and harden surface extraction
Strip experimental permutation/coloring/ghost/named-ID baggage from the
concrete mesh type, adopt SPDX headers, and route boundary extraction through
an explicit `surface_topology` trait with clearer limitations.

- Replace the legacy banner with SPDX lines and tighten the struct/docstring to
  the fields that actually ship today.
- Drop bandwidth/permutation maps, industrial ID dictionaries, and parallel
  coloring/ghost sets from `Mesh` plus their helpers.
- Introduce `surface_topology(::Type{<:AbstractTopology})` for Tet/Hex volumes
  and guard `extract_surface` with `hasmethod` errors for unsupported solids.
- Remove `create_node_set_from_element_set!` (surface workflows should build sets
  explicitly or use topology-aware helpers later).
- Document that `extract_surface` still assumes the first `nnodes(FaceT)` nodes
  per volume element describe the boundary patch.
2026-05-09 17:38:39 +03:00
Jukka Aho a5f71c296a chore(mesh): remove standalone graph ordering helpers
Delete the LightGraphs-based RCM/coloring experiments that were not included
from `JuliaFEM.jl`.

- Drop `src/mesh/graph_ordering.jl`.
2026-05-09 17:38:15 +03:00
Jukka Aho d9779490f8 chore(mesh): delete unused gmsh_jll wrapper stub
Remove the optional Gmsh API wrapper that never shipped from the package entry
manifest.

- Drop `src/mesh/gmsh_wrapper.jl`.
2026-05-09 17:38:04 +03:00
Jukka Aho 8bdaa62fc2 chore(mesh): remove circular plate mesh generator
Delete the polar fan mesher that was not wired into `JuliaFEM.jl` includes.

- Drop `src/mesh/circular.jl` (`create_circular_plate_mesh`).
2026-05-09 17:37:50 +03:00
Jukka Aho 8f34707cf5 docs(mesh): clarify mixed topology and kernel ownership
Document that multi-topology meshes are still unsupported and replace the old
`Physics` wording with kernel-centric language about shared meshes.

- Swap the future `MixedMesh` bullet for an explicit limitation note.
- Describe mesh ownership vs kernel references for multiphysics reuse.
2026-05-09 17:37:08 +03:00
Jukka Aho 42872ffd06 docs(mesh): tighten README for current Mesh surface
Replace marketing-heavy prose with a short map of the active files, the
parametric `Mesh{N,T}` role, refinement usage, and where import/tests live now.

- Drop duplicated API inventories and speculative future-work bullets.
- Point readers at `src/io/` for ingest and `llm/design/legacy-tests/mesh/` for
  retired parallel/coloring coverage.
2026-05-09 17:36:32 +03:00
Jukka Aho 561fcfbcd0 refactor(materials): drop Type-instance forwarding for state traits
Remove the `required_state_variables(::Type{<:AbstractMaterial})` shim that
instantiated materials just to query traits; callers should pass instances or
specialize on concrete types directly.

- Delete the default `required_state_variables(::Type{T}) = …` definition from
  `traits.jl`.
2026-05-09 17:36:16 +03:00
Jukka Aho bc82a60228 feat(materials): extend compositional state-variable registry
Add typed slots for damage equivalent strain, eigenstrain, creep strain, and
indexed Chaboche backstress components so advanced models can declare IP state
without ad hoc symbols.

- Define `DamageEquivalentStrain`, `Eigenstrain`, `CreepStrain`, and
  `ChabocheAlpha{N}` with `state_variable_type` / `default_symbol` hooks.
2026-05-09 17:36:07 +03:00
Jukka Aho 98d08b6bc9 refactor(materials): dedupe PerfectPlasticity fourth-order helper
Stop defining `symmetric_identity_tensor` inside `perfect_plasticity.jl` now
that `materials/symmetric_fourth_identity.jl` provides the shared definition.

- Remove `include(\"abstract_material.jl\")`.
- Delete the local `symmetric_identity_tensor` implementation (call sites keep
  resolving against the earlier include in `JuliaFEM.jl`).
2026-05-09 17:35:41 +03:00
Jukka Aho 14f3baf24e feat(materials): wire NeoHookean traits and NamedTuple stress dispatch
Expose physics/state-variable traits for hyperelastic assembly and accept
`NamedTuple` IP states alongside `nothing` while sharing one implementation.

- Drop the stale `abstract_material.jl` include.
- Declare `supported_physics` / `required_state_variables` for 3D elasticity.
- Factor `_compute_stress_neo_hookean` and add a `compute_stress` path for
  `state_old::NamedTuple`.
- Normalize `where {T}` clauses on public stress APIs.
2026-05-09 17:35:22 +03:00
Jukka Aho 5d8a821be5 refactor(materials): drop LinearElastic abstract include and state_type
`AbstractElasticMaterial` already comes from `materials/api.jl`, and IP state
is inferred via `required_state_variables`, so drop the stale include and
`state_type` hook.

- Remove `include(\"abstract_material.jl\")` and redundant trait comments.
- Delete `state_type(::Type{LinearElastic}) = EmptyState`.
2026-05-09 17:34:38 +03:00
Jukka Aho 1482fe1b5e docs(materials): expand trait docs and align SPDX header
Replace the legacy banner with SPDX lines and document how each
`MaterialBehavior` maps to assembly and `GlobalMaterialCache`, dropping the
unused `AbstractMaterialState` / `state_type` surface in favor of
`material_state_type` NamedTuples.

- Switch the file banner to `SPDX-FileCopyrightText` /
  `SPDX-License-Identifier: MIT`.
- Remove `AbstractMaterialState`, `EmptyState`, and `state_type`; point readers
  at `material_state_type` / `required_state_variables`.
- Enlarge `StatelessConstantTangent`, `StatelessStrainDependent`, and
  `StatefulStrainDependent` docstrings with representative models, tangent
  caveats, and explicit coverage gaps.
2026-05-09 17:33:27 +03:00
Jukka Aho 1113bdfb95 docs(agents): point SPDX headers to CONTRIBUTING
Add a workflow bullet so agents keep SPDX lines in file-type-appropriate
comments and defer details to `docs/CONTRIBUTING.md`.
2026-05-09 17:32:45 +03:00
Jukka Aho 58424ca93f docs(contributing): document SPDX headers per file type
Spell out that SPDX tags must use native comments (`#` in code and TOML,
HTML comments in Markdown/Quarto) and call out formats like JSON that cannot
carry in-file blocks.

- Add an SPDX section with concrete examples and the strict-JSON caveat.
2026-05-09 17:32:29 +03:00
Jukka Aho a31ff772ba chore(materials): remove superseded material_cache.jl
Delete the older compositional cache draft now replaced by
`global_material_cache.jl` + assembler-local workspaces.

- Drop `src/materials/material_cache.jl`.
2026-05-09 17:26:40 +03:00
Jukka Aho 580b566c61 chore(materials): delete unfinished finite-strain plasticity prototype
Remove the unused multiplicative-decomposition J2 sketch that was never wired
into `JuliaFEM.jl` includes.

- Drop `src/materials/finite_strain_plasticity.jl`.
2026-05-09 17:26:31 +03:00
Jukka Aho da5eea0586 chore(materials): remove duplicate abstract material module
Delete the stale `AbstractMaterial` hierarchy file that duplicated the trait
surface now defined alongside concrete models.

- Drop `src/materials/abstract_material.jl` (unused include target).
2026-05-09 17:25:18 +03:00
Jukka Aho b06635f094 chore(legacy): delete unused modal solver stubs
Remove the standalone eigen/modal pipeline that was never reached from
`Legacy.jl`.

- Drop `src/legacy/solvers_modal.jl` (problem orchestration + Lanczos hooks).
2026-05-09 17:25:01 +03:00
Jukka Aho 0b4b06a702 chore(legacy): remove orphaned truss Problem implementation
Delete the Dict-field truss assembler that remained disconnected from the
`Legacy` entry module.

- Drop `src/legacy/problems_truss.jl`.
2026-05-09 17:24:48 +03:00
Jukka Aho df3a409d22 chore(legacy): delete unused 3D mortar Problem implementation
Remove the large projection/mapping routines that never shipped from `Legacy.jl`.

- Drop `src/legacy/problems_mortar_3d.jl`.
2026-05-09 17:24:40 +03:00
Jukka Aho 4736827495 chore(legacy): delete unused 2D mortar Problem glue
Remove the standalone mortar/contact helpers that were outside `Legacy` includes.

- Drop `src/legacy/problems_mortar.jl`.
2026-05-09 17:24:32 +03:00
Jukka Aho a3bb97c7a6 chore(legacy): remove orphaned heat Problem implementation
Delete the legacy transient heat `Problem` stack that never shipped inside the
opt-in module graph.

- Drop `src/legacy/problems_heat.jl`.
2026-05-09 17:23:50 +03:00
Jukka Aho 5b84947d06 chore(legacy): delete unused 2D elasticity Problem helpers
Remove the plane-stress/strain specialization layer that duplicated the 3D
path but stayed disconnected from `Legacy` includes.

- Drop `src/legacy/problems_elasticity_2d.jl`.
2026-05-09 17:23:36 +03:00
Jukka Aho b36da58d90 chore(legacy): remove orphaned elasticity Problem module
Delete the Dict-based continuum elasticity `Problem` implementation that was
never wired into `Legacy.jl`.

- Drop `src/legacy/problems_elasticity.jl` (assembly over legacy elements).
2026-05-09 17:23:24 +03:00
Jukka Aho b5d84d25bd chore(legacy): delete unused 3D contact Problem implementation
Remove the mortar-style 3D contact assembly path that lived outside the active
`Legacy` include list.

- Drop `src/legacy/problems_contact_3d.jl` (projection helpers + assembler glue).
2026-05-09 17:22:23 +03:00
Jukka Aho d444bd1713 chore(legacy): delete unused 2D contact Problem stub
Remove the standalone `Contact` boundary-problem implementation that was not
included from `Legacy.jl`.

- Drop `src/legacy/problems_contact.jl`.
2026-05-09 17:22:00 +03:00
Jukka Aho 97d840c616 chore(legacy): drop orphaned physics_api scaffolding
Remove the standalone abstract elasticity layer that duplicated concepts now
owned by `src/physics/` and was never included from `Legacy.jl`.

- Delete `src/legacy/physics_api.jl` (`AbstractMesh`, `AbstractMaterial`,
  formulation stubs, and helper hooks).
2026-05-09 17:21:39 +03:00
Jukka Aho a2fb782820 chore(legacy): remove unused FEMBase stub module
Delete the empty `FEMBase` compatibility shell that was never wired into
`Legacy.jl` includes.

- Drop `src/legacy/fembase_compat.jl`.
2026-05-09 17:21:26 +03:00
Jukka Aho ca1bc0b81e fix(legacy): wire Abaqus shim to Legacy surface helper
Stop re-exporting `create_surface_elements` from top-level `JuliaFEM`
(which no longer defines it) and bind the compatibility submodule against the
Legacy implementation instead.

- Replace `using JuliaFEM: create_surface_elements` with `import
  ..create_surface_elements` inside `Legacy.Abaqus`.
2026-05-09 17:20:28 +03:00
Jukka Aho c02af32e75 refactor(io): use Logging for Gmsh reader progress
Replace unconditional `println` chatter with structured `@info` events so
library callers can filter noise via the standard logging pipeline.

- Log the filename when ingest starts and emit a single summary record with
  node/element counts plus physical group keys.
2026-05-09 17:20:04 +03:00
Jukka Aho 148ad8f5ed docs(io): describe default Gmsh reader and Legacy ingest
Rewrite the module README now that Abaqus/Code_Aster stacks live behind the
opt-in Legacy flag and only Gmsh ASCII ingest ships unconditionally.

- Document `JULIAFEM_ENABLE_LEGACY=1` and `src/legacy/io/` for vendor parsers.
- Focus the file list on `gmsh_reader.jl` / `GmshReader` instead of deleted stubs.
- Trim emoji/status tables and stale usage snippets; note roadmap for a native
  `.inp` path aligned with `Mesh{T}` / `create_elements!`.
2026-05-09 17:19:45 +03:00