mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-09-27 04:10:54 +00:00
4cf1cda237
- Deleted: src/quadrature/gltet.jl (67 lines, old zip-based API)
- Created: src/quadrature/gl_tetrahedra.jl (160 lines, modern type-based API)
Key improvements:
- QuadraturePoint{3} with Vec{3} coordinates (not tuples)
- SVector return types (zero allocation)
- @inline directives for performance
- Comprehensive documentation with warnings
- Four rules from 1-point to 15-point (degrees 1-4)
Implemented rules:
- GaussLegendre{1}(): 1 point (centroid, degree 1)
- GaussLegendre{2}(): 4 points (degree 2, symmetric placement)
- GaussLegendre{4}(): 15 points (degree 4, all weights positive)
Technical details:
- Reference tetrahedron: vertices at (0,0,0), (1,0,0), (0,1,0), (0,0,1)
- All weights sum to 1/6 (volume of reference tetrahedron)
- Parametric domain constraint: ξ + η + ζ ≤ 1
- Legacy Val{:GLTET*} compatibility maintained
Warning documented:
- GaussLegendre{3}() has negative weight at centroid (-2/15)
- May cause numerical issues, GaussLegendre{2}() or {4}() recommended
Net: +93 lines (added extensive documentation, modern types, and safety warnings)