Files
JuliaFEM.jl/src/basis/lagrange_triangles.jl
T
Jukka Aho 7b6fcfdaf5 feat: Copy FEMBasis.jl files to src/basis/ (Phase 1 start)
- Create src/basis/ directory structure
- Copy all FEMBasis.jl source files verbatim:
  - abstract.jl: AbstractBasis type definition and interface
  - create_basis.jl: Metaprogramming for basis generation
  - lagrange_*.jl: All Lagrange element bases (Seg, Quad, Tri, Tet, Hex, Wedge, Pyr)
  - nurbs*.jl: NURBS basis functions
  - math.jl: jacobian, grad, interpolate functions
  - subs.jl, vandermonde.jl: Symbolic/mathematical utilities

Strategy: Copy first, integrate later (safest approach)
Next: Integrate into src/JuliaFEM.jl module
2025-11-08 09:02:40 +02:00

43 lines
887 B
Julia

# This file is a part of JuliaFEM.
# License is MIT: see https://github.com/JuliaFEM/FEMBasis.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),
)