Commit Graph

6 Commits

Author SHA1 Message Date
Jukka Aho d5fe01b745 docs(geometry): link strain helpers and fix LICENSE URL
Update the SPDX banner to `LICENSE.md` and cross-reference `extract_strain`
from the small-strain docstring so readers know where gradients are consumed.
2026-05-09 17:08:54 +03:00
Jukka Aho fc7ce7ec5b docs(geometry): refresh Jacobian doc examples for current APIs
Bring the inline examples in `compute_jacobian` / `physical_derivatives`
docstrings in line with parametrized reference topologies and `Lagrange{1}`,
and drop a broken cross-reference to external tensor types.

- Point the SPDX banner at `LICENSE.md` on the default branch.
- Use `Triangle{3}` / `Tetrahedron{4}` instances with `Lagrange{1}` in the
  derivative snippets.
- Replace the `[Tensor](@ref)` bullet with an explicit note that tensors come
  from the **Tensors.jl** dependency.
- Illustrate quadrature iteration from a concrete `Tri3()` topology handle.
2026-05-09 17:08:41 +03:00
Jukka Aho 7ed78e9f5e feat(geometry): add Piola push-forward helpers for curl/div fields
Implement covariant and contravariant Piola maps using Tensors.jl Jacobians.
2026-05-09 16:59:58 +03:00
Jukka Aho fd4dc1cb28 fix(geometry): update jacobian docstring to use coords field
Update documentation example to use coords field instead of ξ field
from QuadraturePoint, matching the API change.
2025-12-12 23:41:34 +02:00
Jukka Aho c40fcdbb91 feat(geometry): Add strain computation function
- Implement compute_strain() for small strain tensor calculation
- Zero allocation with NTuple inputs and Tensors.jl
- Type stable (@inferred passes)
- Complete test suite with 4 test cases (uniaxial, shear, rigid body, performance)
- Performance validated: 0 allocations, ~110ns median
- Add to test suite in runtests.jl
- Export from JuliaFEM module

Resolves user story #0001
2025-11-12 02:19:45 +02:00
Jukka Aho bb68e9de84 feat(geometry): Add Jacobian computation with Tensors.jl
New file src/geometry/jacobian.jl implementing geometric transformations:
- compute_jacobian(X, dN_dξ) computes J = ∂x/∂ξ using tensor products
- physical_derivatives(J, dN_dξ) transforms derivatives to physical space
- Full Tensors.jl integration with Vec and Tensor types
- Zero-allocation tuple-based API for performance
- AbstractVector overloads for compatibility
- Comprehensive docstrings with 2D/3D examples
- 169 lines with mathematical definitions and usage patterns
2025-11-12 00:55:10 +02:00