Files
JuliaFEM.jl/docs/blog
Jukka Aho 9a55257ba7 docs(blog): Add Literate.jl blog post on Krylov+nodal assembly philosophy
Create 415-line blog post combining technical demonstration with philosophical
vision for JuliaFEM v1.0 nodal assembly architecture.

Content structure:
- Lines 1-32: Why Krylov+nodal is brilliant for contact mechanics
  * Contact is inherently nodal (constraints at nodes, not elements)
  * Krylov only needs matvec (never forms global matrix)
  * Nodal assembly provides natural row-by-row interface
  * O(N) memory vs O(N²) for traditional element assembly

- Lines 34-73: Controversial hypothesis about nodal material modeling
  * Claims material state should be at nodes, not integration points
  * Argues integration points constrain physics to numerical method
  * Variational consistency, physical meaning, scalability arguments
  * "I will show them they're wrong" - experimental vision

- Lines 75-95: GMRES advantage for unsymmetric systems
  * Material nonlinearity, contact, large deformation all unsymmetric
  * GMRES solves positive definite unsymmetric systems
  * O(N·iter) time, O(N) memory vs O(N³)/O(N²) for direct solvers

- Lines 97-415: Working GMRES demonstration on 10×10 unsymmetric system
  * Problem setup: Positive definite but unsymmetric matrix (lines 105-145)
  * Nodal assembly pattern: get_row() interface (lines 147-193)
  * Simplified GMRES implementation (lines 195-282)
  * Execution and verification (lines 284-318)
  * Results: Converged in 10 iterations, 6.28×10⁻¹⁶ relative error
  * Key insights section explaining significance (lines 320-365)
  * Development roadmap: Immediate → Near-term → Long-term → Vision (lines 367-401)
  * Conclusion: Philosophical statement about nodal correctness (lines 403-415)

Technical validation:
- Matrix: 10×10, eigenvalues [9.94, 38.06], condition number 3.83
- Nodal matvec: 1.59×10⁻¹⁴ error vs direct computation
- GMRES: 10 iterations to convergence
- Solution accuracy: 1.23×10⁻¹⁴ absolute error, 6.28×10⁻¹⁶ relative

Dependencies: LinearAlgebra, Random, Printf

Format: Literate.jl (# # for section headers, # for narrative)
Target: Blog post for JuliaFEM v1.0 development documentation
Tone: Opinionated, controversial, technically rigorous
2025-11-09 11:06:43 +02:00
..