mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-09-22 18:52:16 +00:00
73ec910589
MAJOR MILESTONE: FEMBase + FEMBasis fully consolidated, JuliaFEM loads! Consolidated files: - src/elements/ (3 files): elements.jl, elements_lagrange.jl, integrate.jl - src/fields/ (1 file): fields.jl (DCTI, DVTI, DCTV, DVTV, etc.) - src/sparse/ (1 file): sparse.jl (SparseMatrixCOO, SparseVectorCOO) - src/assembly/ (2 files): problems.jl, assembly.jl - src/solvers/ (1 file): solvers_base.jl - src/analysis.jl, src/core_types.jl (Node, IP, IntegrationPoint) Changes to JuliaFEM.jl: - Added dependencies: Tensors, Calculus - Removed @reexport using FEMBase (now consolidated) - Added 20+ include statements for consolidated files - Include order: fields → core_types → fembase_compat → sparse → elements Compatibility layer: - Created fembase_compat.jl: Minimal FEMBase submodule for vendor packages - Temporarily disabled vendor-specific Mortar2D functions in solvers_modal.jl Bug fixes: - Changed i == 1 → isequal(i, 1) in integrate.jl (== operator overridden by fields) - Resolved all FEMBasis. namespace references throughout codebase Result: - ✅ JuliaFEM loads successfully on Julia 1.12.1 - ✅ 134 exported symbols (was 171 with separate FEMBase) - ✅ Core types accessible: Seg2, Quad4, Problem, AbstractProblem, etc. - ⚠️ Vendor packages show FEMBase cache warnings (expected, harmless) TODO: - Re-enable Mortar2D functions after vendor consolidation - Field system == operator override needs redesign (Phase 4) - Continue Phase 2: Consolidate remaining vendor packages
43 lines
878 B
Julia
43 lines
878 B
Julia
# This file is a part of JuliaFEM.
|
|
# License is MIT: see https://github.com/JuliaFEM/jl/blob/master/LICENSE
|
|
|
|
code = create_basis_and_eval(
|
|
:Tri3,
|
|
"3 node linear triangle element",
|
|
[
|
|
(0.0, 0.0), # N1
|
|
(1.0, 0.0), # N2
|
|
(0.0, 1.0), # N3
|
|
],
|
|
:(1 + u + v),
|
|
)
|
|
|
|
code = create_basis_and_eval(
|
|
:Tri6,
|
|
"6 node quadratic triangle element",
|
|
[
|
|
(0.0, 0.0), # N1
|
|
(1.0, 0.0), # N2
|
|
(0.0, 1.0), # N3
|
|
(0.5, 0.0), # N4
|
|
(0.5, 0.5), # N5
|
|
(0.0, 0.5), # N6
|
|
],
|
|
:(1 + u + v + u^2 + u*v + v^2),
|
|
)
|
|
|
|
code = create_basis_and_eval(
|
|
:Tri7,
|
|
"7 node quadratic triangle element (has middle node)",
|
|
[
|
|
(0.0, 0.0), # N1
|
|
(1.0, 0.0), # N2
|
|
(0.0, 1.0), # N3
|
|
(0.5, 0.0), # N4
|
|
(0.5, 0.5), # N5
|
|
(0.0, 0.5), # N6
|
|
(1/3, 1/3), # N7
|
|
],
|
|
:(1 + u + v + u^2 + u*v + v^2 + u^2*v^2),
|
|
)
|