refactor: Comment out old basis and problem files incompatible with new API

Commented out files using AbstractBasis{dim}:
- basis/lagrange_generated.jl (449 lines, uses AbstractBasis{1/2/3})
- basis/nurbs_segment.jl (NSeg <: AbstractBasis{1})
- basis/nurbs_surface.jl (NSurf <: AbstractBasis{2})
- basis/nurbs_solid.jl (NSolid <: AbstractBasis{3})
- basis/math.jl (jacobian, grad functions use AbstractBasis{dim})
- elements/elements_lagrange.jl (Poi1 <: AbstractBasis{0})
- elements/integrate.jl (references NSeg, Poi1, old basis types)

Commented out problem files using old Element API:
- problems_heat.jl (uses Seg2, Tri3, Quad4, element.sfields)
- problems_truss.jl (uses Seg2, Poi1, element.sfields)
- problems_elasticity.jl (uses old element types, element.sfields)
- problems_dirichlet.jl (uses old API)
- problems_mortar.jl (uses old API)
- problems_mortar_3d.jl (uses old API)

Status after this commit:
- Package loads successfully ✓
- ~70% of functionality removed (intentional)
- All 43 tests fail (expected - old API incompatible)
- Next: Regenerate basis functions for Lagrange{T,P}
- Then: Rewrite math.jl, integrate.jl, rebuild problems

Rationale: Clean break from old Dict-based, type-unstable architecture.
New GPU-ready Element requires complete rebuild of dependent code.
This commit is contained in:
Jukka Aho
2025-11-09 17:09:48 +02:00
parent f89d48a112
commit 626cc49780
+28 -22
View File
@@ -208,13 +208,19 @@ include("basis/vandermonde.jl")
# Types have "Basis" suffix to avoid conflicts with topology types
# E.g., Tri3Basis, Quad4Basis, etc. (not Tri3, Quad4 which are topology types)
include("basis/lagrange_generator.jl")
include("basis/lagrange_generated.jl") # Auto-generated by scripts/generate_lagrange_basis.jl
# OLD generated basis files - commented out during refactoring to new Lagrange{T,P} design
# include("basis/lagrange_generated.jl") # Auto-generated by scripts/generate_lagrange_basis.jl
# TODO: Regenerate for new parametric Lagrange{T,P} architecture
include("basis/nurbs.jl")
include("basis/nurbs_segment.jl")
include("basis/nurbs_surface.jl")
include("basis/nurbs_solid.jl")
include("basis/math.jl")
# OLD NURBS basis files - commented out during AbstractBasis refactoring
# These use AbstractBasis{dim} syntax which conflicts with new non-parametric AbstractBasis
# include("basis/nurbs_segment.jl") # NSeg <: AbstractBasis{1}
# include("basis/nurbs_surface.jl") # NSurf <: AbstractBasis{2}
# include("basis/nurbs_solid.jl") # NSolid <: AbstractBasis{3}
# TODO: Rewrite for new AbstractBasis (non-parametric)
# include("basis/math.jl") # Uses AbstractBasis{dim} throughout (jacobian, grad, interpolate, etc.)
# TODO: Rewrite math functions for new AbstractBasis
# Consolidate FEMBase.jl into src/ (Phase 1 continued)
# Order matters: fields → types → sparse → elements → integrate → problems → assembly
@@ -227,8 +233,8 @@ include("fembase_compat.jl")
include("sparse/sparse.jl") # SparseMatrixCOO, SparseVectorCOO
include("elements/elements.jl") # Element type and interface
include("elements/elements_lagrange.jl") # Lagrange element specifics
include("elements/integrate.jl") # Integration utilities
# include("elements/elements_lagrange.jl") # OLD - uses AbstractBasis{0} (Poi1)
# include("elements/integrate.jl") # OLD - references NSeg, Poi1, etc.
include("assembly/problems.jl") # Problem types
include("assembly/assembly.jl") # Assembly framework
include("solvers/solvers_base.jl") # Base solver types
@@ -245,19 +251,19 @@ include("graph/graph_ordering.jl")
# using AbaqusReader # Consolidated into src/readers.jl
# using AsterReader # Consolidated into src/readers.jl
# Problem types
include("problems_heat.jl")
export Heat, PlaneHeat
include("problems_truss.jl")
export Truss
include("problems_elasticity.jl")
export Elasticity
# Problem types (OLD - all reference old basis types like Seg2, Tri3, Poi1, etc.)
# include("problems_heat.jl")
# export Heat, PlaneHeat
# include("problems_truss.jl")
# export Truss
# include("problems_elasticity.jl")
# export Elasticity
# include("materials_plasticity.jl") # Requires ForwardDiff for automatic differentiation
# export plastic_von_mises
include("problems_dirichlet.jl")
export Dirichlet
# include("problems_dirichlet.jl")
# export Dirichlet
export assemble!, postprocess!
# export assemble!, postprocess!
# TODO: Consolidate vendor packages (FEMBeam, Mortar) later
# Structural elements: beams
@@ -268,11 +274,11 @@ export assemble!, postprocess!
# @reexport using MortarContact2D
# @reexport using MortarContact2DAD
include("problems_mortar.jl")
include("problems_mortar_3d.jl")
export calculate_normals, calculate_normals!, project_from_slave_to_master,
project_from_master_to_slave, Mortar, get_slave_elements,
get_polygon_clip
# include("problems_mortar.jl")
# include("problems_mortar_3d.jl")
# export calculate_normals, calculate_normals!, project_from_slave_to_master,
# project_from_master_to_slave, Mortar, get_slave_elements,
# get_polygon_clip
# include("io.jl") # Requires HDF5 and LightXML - skip for minimal deps
# export Xdmf, h5file, xmffile, xdmf_filter, new_dataitem, update_xdmf!, save!
include("solvers.jl")