Welcome to the CFD Framework documentation. This page provides a comprehensive guide to all available documentation.
- README - Project overview and quick start
- Building - Build instructions for all platforms
- Examples - Example programs and usage patterns
- API Reference - Complete API documentation
- Solvers - Numerical methods and performance
- Architecture - Design principles and patterns
| Document | Description | Audience |
|---|---|---|
| README | Quick start, installation, basic usage | All users |
| Building | Detailed build instructions, platform-specific notes | Developers |
| Examples | Example programs with code walkthrough | All users |
| Document | Description | Audience |
|---|---|---|
| API Reference | Complete function and type reference | Developers |
| Solvers | Numerical methods, algorithms, performance | Researchers, advanced users |
| Architecture | Design principles, patterns, best practices | Contributors |
| Document | Description | Audience |
|---|---|---|
| Validation | Benchmark results and validation | Researchers |
| SIMD Optimization | AVX2/NEON implementation details | Performance engineers |
- Start with README for project overview
- Follow building instructions
- Run minimal example
- Explore other examples
Estimated time: 30 minutes to first simulation
- Read API Reference for function documentation
- Study Examples for usage patterns
- Review Solvers for solver selection
- Check Error Handling patterns
Key resources:
- Read Solvers Performance
- Study SIMD Optimization Analysis
- Review Backend Performance
- Run performance_comparison
Key resources:
- Study Numerical Methods
- Review Validation Results
- Check Lid-Driven Cavity benchmark
- Read Linear Solvers
Key resources:
- Read Architecture for design principles
- Study Backend Abstraction
- Review Cross-Backend Checklist
- Follow File Organization
Key resources:
- Solver Families - Euler vs Projection
- Linear Solvers - Jacobi, SOR, CG, BiCGSTAB
- Boundary Conditions - Dirichlet, Neumann, periodic
- Convergence Theory
- Backend Performance - CPU, SIMD, OpenMP, CUDA
- SIMD Optimization - AVX2/NEON details
- Memory Layout - Cache-friendly patterns
- Performance Benchmarks
- Design Principles - Core architectural decisions
- Zero-Branch Dispatch - Function pointer pattern
- Error Handling - Status codes and thread safety
- Modular Libraries - CMake targets
- Lid-Driven Cavity - Ghia benchmark
- Taylor-Green Vortex - Analytical validation
- Math Test Plan - Math subsystem coverage and gap analysis
- Testing Patterns - Test suite organization
// Initialization
cfd_status_t cfd_init(void);
void cfd_cleanup(void);
// Simulation
simulation_data* init_simulation(size_t nx, size_t ny, size_t nz,
double xmin, double xmax,
double ymin, double ymax,
double zmin, double zmax);
simulation_data* init_simulation_with_solver(size_t nx, size_t ny, size_t nz,
double xmin, double xmax,
double ymin, double ymax,
double zmin, double zmax,
const char* solver_type);
cfd_status_t run_simulation_step(simulation_data* sim_data);
cfd_status_t run_simulation_solve(simulation_data* sim_data);
void free_simulation(simulation_data* sim_data);
// Output
void simulation_write_outputs(simulation_data* sim_data, int step);
void simulation_register_output(simulation_data* sim_data, output_field_type field_type,
int interval, const char* prefix);
// Error handling
const char* cfd_get_last_error(void);
const char* cfd_get_error_string(cfd_status_t status);Full reference: API Reference
...build the library?
- Windows: See Windows Quick Build
- Linux/macOS: See Linux/macOS Quick Build
- With CUDA: See CUDA Support
...run a simple simulation?
- See minimal_example.c
- Or Basic Usage in README
...choose the right solver?
- See Choosing a Solver
- Or Decision Tree
...handle errors?
...optimize performance?
...add a new solver?
...validate my results?
- Chorin, A.J. (1968) - Projection method foundation
- Ghia et al. (1982) - Lid-driven cavity benchmark
- Ferziger & Peric - CFD methods textbook
- Saad, Y. - Iterative linear solvers
Full bibliography: Solvers - References
- ParaView - VTK visualization (https://www.paraview.org/)
- VisIt - Scientific visualization (https://visit.llnl.gov/)
- CMake - Build system (https://cmake.org/)
- CUDA Toolkit - GPU programming (https://developer.nvidia.com/cuda-toolkit)
See Architecture Guide for:
- Design principles to follow
- Code organization patterns
- Testing conventions
- Cross-backend implementation checklist
Current documentation corresponds to:
- Version: 0.1.x
- Status: Pre-release (approaching v1.0)
- Last Updated: 2025-02-07
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: your.email@example.com
- README.md - Project overview
- Building.md - Build instructions
- Examples.md - Example programs
- API Reference.md - API documentation
- Solvers.md - Numerical methods
- Architecture.md - Design principles
- Validation/ - Benchmark validation
- SIMD Optimization Analysis
- AVX2 Alignment Bug Fix
- ROADMAP.md - Development roadmap
- CLAUDE.md - Development guidelines
- .claude/commands/ - Development tools
Navigation: