Files
JuliaFEM.jl/docs/book/README.md
T
Jukka Aho 626266c990 docs: Reorganize documentation into three-tier structure
**Three Manuals for Three Audiences:**

1. **User Manual** (docs/user/) - "Just Get It Done"
   - For end users, engineers, students
   - Simple, practical, step-by-step
   - Quick start, tutorials, examples, troubleshooting
   - Philosophy: Show me how to solve my problem

2. **Contributor Manual** (docs/contributor/) - "Show Me the Code"
   - For developers, contributors, advanced users
   - Technical, detailed, design rationale
   - Testing, architecture, performance, CI/CD
   - Philosophy: Explain HOW and WHY

3. **The JuliaFEM Book** (docs/book/) - "Let Me Show You How I Think"
   - For researchers, theory nerds, and Jukka
   - Comprehensive, educational, opinionated, personal
   - Math foundations, design philosophy, history, research
   - Philosophy: Mix theory, code, and personal experience

**Reorganization:**
- Moved: TESTING_PHILOSOPHY.md → contributor/testing_philosophy.md
- Moved: STATUS.md → contributor/status.md
- Moved: TEST_FIXES_NEEDED.md → contributor/test_fixes_needed.md
- Moved: lagrange_basis_functions.md → book/lagrange_basis_functions.md
- Moved: benchmarks/ → book/benchmarks/
- Created: docs/README.md (main index explaining structure)
- Created: README.md in each section explaining audience and contents
- Updated: All references in scripts and source files

**Naming:** All docs now lowercase (testing_philosophy not TESTING_PHILOSOPHY)

**Benefits:**
- Clear separation of concerns
- Users don't get overwhelmed with implementation details
- Contributors get technical depth
- Book preserves deep theory and personal insights
- Each manual optimized for its audience

**Next:** Populate each section with appropriate content
2025-11-09 04:38:28 +02:00

83 lines
2.6 KiB
Markdown

# The JuliaFEM Book
**Audience:** Advanced researchers, theory nerds, those who want to understand the "why" and "how" at a deep level. And Jukka.
This is the **JuliaFEM Bible** - a comprehensive manual mixing theory, philosophy, software design, and personal experience. It's educational, opinionated, and unapologetically deep.
## What's Here
- **Mathematical Foundations:** Lagrange basis functions, weak forms, contact mechanics
- **Design Philosophy:** Why JuliaFEM exists, what problems it solves (and doesn't)
- **Technical Vision:** Strategic mistakes from 2015-2019, lessons learned
- **Research Directions:** Experimental ideas (nodal assembly, matrix-free, etc.)
- **Personal Notes:** The journey, the failures, the "aha!" moments
- **Theory + Code:** How mathematics becomes software
## What's NOT Here
- "How do I install?" (see `docs/user/`)
- "How do I add a feature?" (see `docs/contributor/`)
- Short answers (everything here is DEEP)
## Philosophy
**"Let me show you how I think about FEM."**
This is:
- **Educational:** Teach FEM through implementation
- **Personal:** Written in Jukka's voice, reflecting 8+ years of experience
- **Opinionated:** Strong views on what works and what doesn't
- **Comprehensive:** From first principles to cutting-edge research
- **Honest:** Documents failures as much as successes
We assume you:
- Love mathematics AND programming
- Want to understand WHY, not just HOW
- Have time to read deeply
- Are curious about unconventional approaches
- Might be me, 5 years from now, trying to remember why I did this
## Structure
### Part I: Foundations
- Finite Element Method (brief review)
- Lagrange Basis Functions (deep dive)
- Assembly and Solving
- Contact Mechanics
### Part II: Software Design
- Type Stability and Performance
- Zero-Allocation Design
- Immutability and Composition
- Field System Architecture
### Part III: History and Vision
- Strategic Mistakes (2015-2019)
- Why JuliaFEM is Different
- Contact Mechanics Focus
- Laboratory Philosophy
### Part IV: Research
- Nodal Assembly (experimental)
- Matrix-Free Methods
- Automatic Differentiation
- GPU Acceleration
### Part V: The Journey
- Personal Reflections
- Lessons Learned
- Future Directions
- Open Questions
## Reading Guide
- **For Theory:** Start with Part I
- **For Design Rationale:** Start with Part II
- **For History:** Start with Part III
- **For Research Ideas:** Start with Part IV
- **For Philosophy:** Read Part V first, then everything else
---
**Start here:** [Mathematical Foundations](foundations.md) | [Strategic Mistakes](strategic_mistakes.md) | [Why JuliaFEM?](philosophy.md)