Jukka Aho
0182fc7566
docs(git): add tracked AI commit workflow prompt
...
Introduce `.github/prompts/commit.prompt.md` as the contributor-facing description
of how assistants should stage, review, propose, and record commits.
- Document defaults: one file per commit, rare justified pairs, no blanket `git add`.
- Describe optional `.githooks/pre-commit` cap at two staged paths.
- Require reading the full `git diff --staged` (no truncation) before messaging.
- Spell out approval-before-commit flow and Conventional Commits subject lines.
- Scale the body to the patch: short summaries for small edits; large or
multi-concern diffs need grouped, substantive bullets so history stays readable.
- Keep checklist items aligned with that depth expectation.
2026-05-09 16:44:31 +03:00
Jukka Aho
3af1067aeb
feat(dofs): add type-stable DOFHandler implementation
...
Introduce `DOFHandler{M,S,NF}` with flat `field_starts::NTuple{NF,Vector{Int}}`
per field and entity id, optional `facet_maps` for Edge/Face unknowns, running
`total_dofs`, and a `dof_connectivity` slot populated after element creation.
Reserve `DOFManager` as a backward-compatible alias.
Construction and layout:
- Number DOFs in field-declaration order; within each field walk entities in id
order (nodes, cells, or facet ids) using compile-time `dof_size` widths.
- Auto-build `AbstractFacetConnectivityMaps` for Hex8/Hex20/Tet4/Tet10/Wedge6/Pyr5
when the DOFSet references Edge or Face; error on unsupported mesh/topology pairs.
Mixed-field helpers:
- `global_field_ranges` — contiguous global index ranges per declared field,
checked against `handler.total_dofs`.
- `global_facet_dof` — first global DOF for a Face-owned field given facet gid.
- `saddle_point_blocks` / `saddle_point_matrix_blocks` — named views or CSC
subblocks for two-field `u`/`p`-style matrices using those ranges.
Hot path:
- `@generated _make_element_dofs` emits an `NTuple{N,UInt64}` from handler tables:
Vertex via element connectivity, Cell via element id, Edge/Face via
`elem_edge_gid` / `elem_face_gid`; assert emitted length matches `N`.
- `create_elements!` builds the handler, fills `Vector{Element{K,P,S,N}}`, assigns
DOFs with `_make_element_dofs`, then replaces `handler.dof_connectivity` via
`build_dof_connectivity`. Support `Element{K,P,S}` with inferred `N`, and wrap a
bare single `DOF{Q,E}` into a one-field DOFSet.
Legacy-oriented utilities:
- `get_node_dofs` collects Vertex-field DOFs for one node (allocating helper).
- `get_element_ids` resolves ids from `mesh.element_sets` by name or symbol.
2026-05-09 16:42:13 +03:00
Jukka Aho
2afd7a856a
refactor(dofs): slim dof_connectivity.jl to builders + DOFHandler overload
...
Move struct definitions to dof_connectivity_types.jl; drop GPU matrix layout;
use DOFHandler in docs and convenience build_dof_connectivity overload.
2026-05-09 16:35:59 +03:00
Jukka Aho
0f1a1f2f4c
feat(dofs): split DOF connectivity structs into dof_connectivity_types.jl
...
Add DOFElementConnection/DOFConnectivity definitions and empty-placeholder ctor
for handlers before create_elements!.
2026-05-09 16:35:44 +03:00
Jukka Aho
3a1c931021
docs(dofs): remove stale performance_analysis markdown
...
Drop superseded DOF extraction benchmark narrative from src/dofs/docs.
2026-05-09 16:34:36 +03:00
Jukka Aho
f56c9f2d11
docs(dofs): refresh api.jl DOF docstrings for @DOFSet
...
Align module docs with flat dof_indices, LICENSE.md link, and NamedTuple caveat.
2026-05-09 16:34:16 +03:00
Jukka Aho
ef38a28fb2
docs(dofs): rewrite README for DOFHandler and matrix-free connectivity
...
Replace outdated DOFManager/@Fields prose with current files, create_elements!,
facet-DOF notes, and assembler pointers.
2026-05-09 16:34:03 +03:00
Jukka Aho
abd21331c9
docs(basis): fix LICENSE URL in vandermonde.jl header
2026-05-09 16:33:46 +03:00
Jukka Aho
a43ae90891
docs(basis): fix LICENSE URL in subs.jl header
2026-05-09 16:33:39 +03:00
Jukka Aho
c9d806a946
feat(basis): add reference RT0 vector fields for Tet4 and Hex8
...
Add Whitney-type tet face basis and hex tensor-product face constants for Piola push-forward.
2026-05-09 16:33:27 +03:00
Jukka Aho
852ee67f79
refactor(basis): remove legacy plate_elements DKT basis module
...
Delete AbstractPlateBasis/DKT definitions from basis/; plate handling moves elsewhere.
2026-05-09 16:33:16 +03:00
Jukka Aho
29a01c1156
refactor(basis): remove NSurf NURBS surface basis
...
Drop unmaintained tensor-product surface NURBS tied to removed NURBS helpers.
2026-05-09 16:33:05 +03:00
Jukka Aho
3af6d35503
refactor(basis): remove NSolid NURBS volume basis
...
Drop unmaintained tensor-product solid NURBS tied to removed NURBS helpers.
2026-05-09 16:32:57 +03:00
Jukka Aho
d3f6e96393
refactor(basis): remove NSeg NURBS segment basis
...
Delete unmaintained nurbs_segment.jl tied to removed NURBS helpers.
2026-05-09 16:32:26 +03:00
Jukka Aho
f20e095a9c
refactor(basis): remove unused NURBS recursion stub
...
Drop standalone nurbs.jl helper not wired into the current basis pipeline.
2026-05-09 16:32:18 +03:00
Jukka Aho
0b22b324b8
feat(basis): add reference Tet4 Whitney Nédélec edge helpers
...
Introduce nedelec_whitney_tet_reference and hierarchical slot-2 enrichment
using barycentric gradients on the linear reference tetrahedron.
2026-05-09 16:32:05 +03:00
Jukka Aho
947dbaa625
refactor(src): remove math.jl
...
src/basis/math.jl | 255 ------------------------------------------------------ 1 file changed, 255 deletions(-)
2026-05-09 16:30:39 +03:00
Jukka Aho
038d115d8a
refactor(src): update basis_generator.jl
...
src/basis/basis_generator.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
2026-05-09 16:30:39 +03:00
Jukka Aho
1f87d1d21a
refactor(src): update basis_generated.jl
...
src/basis/basis_generated.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
2026-05-09 16:30:39 +03:00
Jukka Aho
1c5fbd00a6
refactor(src): update api.jl
...
src/basis/api.jl | 43 ++++++++----------------------------------- 1 file changed, 8 insertions(+), 35 deletions(-)
2026-05-09 16:30:39 +03:00
Jukka Aho
80d0cde05f
refactor(src): update README.md
...
src/basis/README.md | 1554 ++++----------------------------------------------- 1 file changed, 114 insertions(+), 1440 deletions(-)
2026-05-09 16:30:39 +03:00
Jukka Aho
028c4e6a2c
refactor(src): remove cpu.jl
...
src/backend/cpu.jl | 261 ----------------------------------------------------- 1 file changed, 261 deletions(-)
2026-05-09 16:30:38 +03:00
Jukka Aho
dce7affae8
refactor(src): remove abstract.jl
...
src/backend/abstract.jl | 241 ------------------------------------------------ 1 file changed, 241 deletions(-)
2026-05-09 16:30:38 +03:00
Jukka Aho
707940181b
refactor(src): remove scatter_to_triplets.jl
...
src/assemblers/scatter_to_triplets.jl | 63 ----------------------------------- 1 file changed, 63 deletions(-)
2026-05-09 16:30:38 +03:00
Jukka Aho
04a5b6015b
refactor(src): remove scatter_to_force.jl
...
src/assemblers/scatter_to_force.jl | 37 ------------------------------------- 1 file changed, 37 deletions(-)
2026-05-09 16:30:38 +03:00
Jukka Aho
5d8af1e862
refactor(src): remove scatter_blocks_to_triplets_symmetric_manually_unrolled.jl
...
...ocks_to_triplets_symmetric_manually_unrolled.jl | 124 --------------------- 1 file changed, 124 deletions(-)
2026-05-09 16:30:38 +03:00
Jukka Aho
20d4b46f5e
refactor(src): remove scatter_blocks_to_triplets_symmetric_direct.jl
...
.../scatter_blocks_to_triplets_symmetric_direct.jl | 115 --------------------- 1 file changed, 115 deletions(-)
2026-05-09 16:30:37 +03:00
Jukka Aho
9a04a32d2b
refactor(src): remove scatter_blocks_to_triplets_symmetric.jl
...
.../scatter_blocks_to_triplets_symmetric.jl | 101 --------------------- 1 file changed, 101 deletions(-)
2026-05-09 16:30:37 +03:00
Jukka Aho
7095d8597e
refactor(src): remove scatter_blocks_to_triplets.jl
...
src/assemblers/scatter_blocks_to_triplets.jl | 78 ---------------------------- 1 file changed, 78 deletions(-)
2026-05-09 16:30:37 +03:00
Jukka Aho
6fdb2fac29
refactor(src): remove scatter_blocks_to_force.jl
...
src/assemblers/scatter_blocks_to_force.jl | 54 ------------------------------- 1 file changed, 54 deletions(-)
2026-05-09 16:30:37 +03:00
Jukka Aho
8cf3222d05
feat(src): add partitioning.jl
...
src/assemblers/partitioning.jl | 462 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 462 insertions(+)
2026-05-09 16:30:36 +03:00
Jukka Aho
4edf8301b1
feat(src): add partitioned_matvec.jl
...
src/assemblers/partitioned_matvec.jl | 276 +++++++++++++++++++++++++++++++++++ 1 file changed, 276 insertions(+)
2026-05-09 16:30:36 +03:00
Jukka Aho
c8add0befa
feat(src): add packed_layout.jl
...
src/assemblers/packed_layout.jl | 597 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 597 insertions(+)
2026-05-09 16:30:36 +03:00
Jukka Aho
1b702c22eb
feat(src): add microkernel.jl
...
src/assemblers/microkernel.jl | 144 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+)
2026-05-09 16:30:36 +03:00
Jukka Aho
a6c39ab1cb
feat(src): add preconditioners.jl
...
src/assemblers/matrix_free/preconditioners.jl | 817 ++++++++++++++++++++++++++ 1 file changed, 817 insertions(+)
2026-05-09 16:30:36 +03:00
Jukka Aho
db933c9ba1
feat(src): add operator.jl
...
src/assemblers/matrix_free/operator.jl | 303 +++++++++++++++++++++++++++++++++ 1 file changed, 303 insertions(+)
2026-05-09 16:30:35 +03:00
Jukka Aho
f9eda10278
feat(src): add mpc.jl
...
src/assemblers/matrix_free/mpc.jl | 336 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 336 insertions(+)
2026-05-09 16:30:35 +03:00
Jukka Aho
20b405429a
feat(src): add loads.jl
...
src/assemblers/matrix_free/loads.jl | 716 ++++++++++++++++++++++++++++++++++++ 1 file changed, 716 insertions(+)
2026-05-09 16:30:35 +03:00
Jukka Aho
8ac04798a0
feat(src): add eigensolve.jl
...
src/assemblers/matrix_free/eigensolve.jl | 288 +++++++++++++++++++++++++++++++ 1 file changed, 288 insertions(+)
2026-05-09 16:30:35 +03:00
Jukka Aho
956020de73
feat(src): add dirichlet.jl
...
src/assemblers/matrix_free/dirichlet.jl | 405 ++++++++++++++++++++++++++++++++ 1 file changed, 405 insertions(+)
2026-05-09 16:30:35 +03:00
Jukka Aho
3f9ba65f5e
feat(src): add README.md
...
src/assemblers/matrix_free/README.md | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+)
2026-05-09 16:30:35 +03:00
Jukka Aho
35bdac5b37
refactor(src): remove material_cache.jl
...
src/assemblers/material_cache.jl | 782 --------------------------------------- 1 file changed, 782 deletions(-)
2026-05-09 16:30:34 +03:00
Jukka Aho
2e01dfc329
refactor(src): remove kernel_interface.jl
...
src/assemblers/kernel_interface.jl | 649 ------------------------------------- 1 file changed, 649 deletions(-)
2026-05-09 16:30:34 +03:00
Jukka Aho
8e2217ca8c
feat(src): add halo_exchange.jl
...
src/assemblers/halo_exchange.jl | 204 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 204 insertions(+)
2026-05-09 16:30:34 +03:00
Jukka Aho
05d9a2b335
refactor(src): remove geometry_cache.jl
...
src/assemblers/geometry_cache.jl | 239 --------------------------------------- 1 file changed, 239 deletions(-)
2026-05-09 16:30:33 +03:00
Jukka Aho
036f805e41
refactor(src): remove element_cache.jl
...
src/assemblers/element_cache.jl | 120 ---------------------------------------- 1 file changed, 120 deletions(-)
2026-05-09 16:30:33 +03:00
Jukka Aho
8bab229d88
refactor(src): remove element_based_csc.jl
...
src/assemblers/element_based_csc.jl | 375 ------------------------------------ 1 file changed, 375 deletions(-)
2026-05-09 16:30:33 +03:00
Jukka Aho
c19465662c
refactor(src): remove element_based_coo.jl
...
src/assemblers/element_based_coo.jl | 461 ------------------------------------ 1 file changed, 461 deletions(-)
2026-05-09 16:30:33 +03:00
Jukka Aho
1b2f5f1738
feat(src): add scatter_blocks_to_triplets_symmetric_direct.jl
...
.../scatter_blocks_to_triplets_symmetric_direct.jl | 115 +++++++++++++++++++++ 1 file changed, 115 insertions(+)
2026-05-09 16:30:33 +03:00
Jukka Aho
387abbb83c
feat(src): add scatter_blocks_to_force.jl
...
.../element_based/scatter_blocks_to_force.jl | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+)
2026-05-09 16:30:32 +03:00