This repository provides a structured collection of notes, examples, scripts, tutorials, and references for Computational Fluid Dynamics (CFD). It is designed for learners and practitioners who want to connect the physical theory of fluid flow with numerical methods, software workflows, simulation practice, and modern data-driven techniques.
Quick Start • Documentation • Research • Code • Contribute
This repository is a community-driven resource for Computational Fluid Dynamics (CFD) education, implementation, and applied research. It serves as a structured learning environment, a practical implementation reference, and a curated gateway to important CFD literature, workflows, and tools.
The repository consolidates theory notes, implementation examples, visualization tools, simulation cases, and external references into a coherent progression. It is designed to support several audiences:
- Students beginning their study of fluid mechanics and numerical simulation
- Researchers developing, comparing, or validating computational methods
- Engineers applying CFD to practical design, analysis, and validation problems
- Machine learning practitioners exploring physics-informed and data-driven methods
- Educators assembling structured teaching material, examples, and exercises
CFD is not only a collection of equations and algorithms. It is a synthesis of physics, mathematics, numerical analysis, computer science, and engineering judgment. The repository is organized around the following principles:
- Theory-practice integration: Concepts are connected to mathematical foundations, implementation details, and practical consequences.
- Iterative learning: Material is organized so readers can revisit topics at increasing levels of depth.
- Interdisciplinary context: Connections are made between CFD and adjacent fields such as optimization, machine learning, high-performance computing, and applied mechanics.
- Modern relevance: The content includes current topics such as physics-informed learning, surrogate models, reduced-order modeling, and scalable computation.
- Community development: Contributions are welcome from practitioners, researchers, students, and educators.
| Category | Count | Description |
|---|---|---|
| Theory Documents | 103+ | Comprehensive markdown documents covering all aspects of CFD |
| Python Scripts | 57+ | Ready-to-use implementations and visualizations |
| Simulation Examples | 15+ | Complete simulation setups from basic to advanced |
| Algorithm Implementations | 9+ | Core computational algorithms with detailed explanations |
| Visualization Scripts | 30+ | Professional plotting and analysis tools |
| External References | 80+ | Curated links to papers, books, courses, and tools |
| Topics Covered | 50+ | From fundamentals to specialized advanced topics |
This repository can support several workflows:
- Self-study curriculum: Follow one of the learning pathways and work through the recommended notes, scripts, and examples in sequence.
- Course companion: Use the notes as reference material and the scripts as demonstrations, assignments, or validation exercises.
- Engineering reference: Consult the practice guides, numerical method notes, and troubleshooting sections when setting up or reviewing CFD workflows.
- Research starting point: Use the advanced topics, references, and algorithms as entry points into areas such as turbulence modeling, model reduction, optimization, and physics-informed machine learning.
The material is intentionally modular. Readers can begin with fundamentals, move directly into simulations, or focus on specific tools such as Gmsh, ParaView, or Python-based analysis.
Use the pathways below to choose a route through the material based on your background and goals. The timelines are approximate and can be adapted for course schedules, self-study, or project-driven learning.
Timeline: 6-12 months| Prerequisites: Calculus, Linear Algebra, Basic Programming
Week 1-4: Fluid Mechanics Fundamentals → Conservation Laws → Dimensional Analysis
Week 5-8: Navier-Stokes Equations → Boundary Conditions → Analytical Solutions
Week 9-12: Finite Difference Methods → Stability Analysis → Basic 1D Problems
Week 13-16: Finite Volume Methods → 2D Simulations → Turbulence Introduction
Week 17-20: Advanced Discretization → Complex Geometries → Mesh Generation
Week 21-24: Turbulence Modeling → RANS/LES → Practical Applications
Beyond: Specialized Topics → Research Problems → Novel Methods
Timeline: 3-6 months| Prerequisites: Engineering Background, CFD Software Experience
Week 1-2: Quick Theory Refresh → Key Dimensionless Numbers → Common Pitfalls
Week 3-4: Meshing Best Practices → Boundary Condition Selection → Solver Settings
Week 5-6: Turbulence Model Selection → Wall Functions → Y+ Calculations
Week 7-8: Convergence Strategies → Result Validation → Post-Processing
Week 9-10: Industry-Specific Applications → Case Studies → Optimization
Week 11-12: Advanced Topics → Custom Functions → Automation Workflows
Timeline: 4-8 months| Prerequisites: Machine Learning, Python, CFD Basics
Week 1-3: CFD Fundamentals for ML → Data Generation → Feature Engineering
Week 4-6: Physics-Informed Neural Networks (PINNs) → Implementation → Training
Week 7-9: Surrogate Modeling → ROM Techniques → POD/DMD Methods
Week 10-12: ML-Enhanced Turbulence → RANS Closures → LES Subgrid Models
Week 13-16: Shape Optimization → Generative Design → Topology Optimization
Beyond: Research Frontiers → Novel Architectures → Industry Applications
Timeline: 4-8 weeks| Prerequisites: Basic Physics, Programming Interest
Week 1: What is CFD? → Simple Examples → Visualization Introduction
Week 2: Basic Equations → Flow Patterns → Hands-on Simulations
Week 3: Software Tools → ParaView/Gmsh → Running Your First Simulation
Week 4: Practical Problems → Learning Resources → Next Steps
The repository includes material on advanced and emerging topics that are increasingly relevant in research and industrial practice:
- Physics-Informed Neural Networks (PINNs): Embedding physical laws directly into neural network architectures for solving PDEs
- Deep Learning for Turbulence: Using CNNs and GANs to model subgrid-scale turbulence in LES
- Reinforcement Learning: Adaptive flow control and optimization strategies
- Graph Neural Networks: For unstructured mesh processing and solution prediction
- Operator Learning: Neural operators (DeepONet, FNO) for learning solution operators
- Generative Models: VAEs and GANs for design space exploration and flow field generation
- GPU Acceleration: CUDA-based CFD solvers and acceleration techniques
- Parallel Computing: MPI, OpenMP, and hybrid parallelization strategies
- Cloud Computing: Scalable CFD workflows on AWS, Azure, and GCP
- Quantum Computing: Exploratory quantum algorithms for fluid dynamics
- Exascale Computing: Preparing for next-generation supercomputers
- Meshless Methods: SPH, meshless Galerkin, and particle-based approaches
- High-Order Methods: Spectral methods, DG, and HDG for accuracy
- Adaptive Methods: hp-refinement, AMR, and error-driven adaptation
- Multiscale Methods: HMM, heterogeneous multiscale methods
- Immersed Boundary Methods: For complex moving geometries
- Cut-Cell Methods: Cartesian grid methods for complex boundaries
- Multiphase Flows: VOF, Level Set, Phase Field methods
- Reacting Flows: Combustion modeling, chemical kinetics coupling
- Fluid-Structure Interaction: Two-way coupling, aeroelasticity
- Microfluidics: Low Reynolds number phenomena, electrokinetics
- Rarefied Gas Dynamics: DSMC, kinetic theory approaches
- Non-Newtonian Fluids: Viscoelastic, thixotropic, and complex rheology
- Model Order Reduction: POD, DMD, balanced truncation
- Sparse Identification: SINDy for discovering governing equations
- Bayesian Methods: Uncertainty quantification and inverse problems
- Transfer Learning: Domain adaptation for CFD applications
- Active Learning: Intelligent sampling for expensive simulations
Contributions are welcome from researchers, engineers, educators, and students. High-quality additions should improve accuracy, clarity, reproducibility, or coverage.
- Fork this repository
- Create a feature branch (
git checkout -b feature/YourContribution) - Make your changes with clear, descriptive commits
- Test your additions and ensure documentation is updated
- Push to your fork (
git push origin feature/YourContribution) - Open a Pull Request with detailed description
- Documentation: Use clear, technical language with proper mathematical notation (LaTeX where appropriate)
- Code: Include comments, validation examples, and performance considerations
- Formatting: Follow existing structure and markdown conventions
- References: Cite sources and provide links to supporting material
- Quality: Ensure accuracy through peer review and testing
- Accessibility: Write for international audiences, avoid jargon without explanation
| Category | Examples | Impact Level |
|---|---|---|
| Bug Fixes | Equation corrections, code errors, broken links | Critical |
| Content | New tutorials, expanded explanations, case studies | High |
| Code | New algorithms, optimizations, implementations | High |
| Examples | Practical demonstrations, validation cases | Medium |
| Tools | Scripts, integrations, workflow improvements | Medium |
| Translations | Multilingual content, accessibility | Medium |
| Visualizations | Plots, diagrams, animations | Medium |
| References | New papers, books, courses, resources | Low |
Contributions should be technically correct, reproducible, and useful to readers with different backgrounds. When adding new material, include enough context to explain why the topic matters, what assumptions are being made, how the method is implemented, and how the result can be checked. For code contributions, prefer clear structure, documented inputs and outputs, reproducible examples, and validation against analytical solutions, benchmark cases, or trusted references where possible.
All contributors are acknowledged in our Contributors page. Significant contributions may be highlighted in release notes and documentation.
The repository is organized into notes, practice material, scripts, simulations, and external references. Each section supports a different mode of learning: conceptual study, hands-on implementation, software workflow development, or further reading.
Theoretical foundations — More than 103 documents covering CFD theory, applied fluid mechanics, numerical methods, and related computational approaches.
Coverage across more than 15 major topic areas
Fluid mechanics topics
- Continuum Hypothesis: When and why we treat fluids as continuous media
- Conservation Principles: Mass, momentum, and energy in fluid systems
- Mathematical Framework: Vector calculus, tensors, and field theory
- Material vs. Spatial Description: Lagrangian and Eulerian perspectives
- Control Volume Analysis: Integral and differential forms
- Navier-Stokes Equations: Complete derivation from first principles
- Continuity Equation: Mass conservation in differential form
- Momentum Equations: Newton's second law for fluids
- Energy Equation: First law of thermodynamics for moving fluids
- Constitutive Relations: Stress-strain relationships for various fluids
- Simplified Forms: Euler equations, Stokes flow, potential flow
- Buckingham Pi Theorem: Systematic approach to dimensionless groups
- Dimensionless Numbers: Reynolds, Mach, Froude, Prandtl, and dozens more
- Similarity Theory: Physical and mathematical similarity
- Scaling Laws: From laboratory to full-scale applications
- Model Testing: Wind tunnel and water channel experiments
- Viscosity: Dynamic and kinematic, temperature dependence
- Surface Tension: Capillary effects, wetting phenomena
- Compressibility: Equation of state, speed of sound
- Thermal Properties: Conductivity, specific heat, expansion
- Non-Newtonian Behavior: Shear-thinning, shear-thickening, viscoelasticity
- Hydrostatic Pressure: Pressure variation in static fluids
- Buoyancy: Archimedes' principle and applications
- Stability: Floating bodies, metacentric height
- Pressure Measurement: Manometers and pressure gauges
- Surfaces Under Pressure: Forces on submerged surfaces
- Velocity Fields: Eulerian vs. Lagrangian descriptions
- Streamlines, Pathlines, Streaklines: Flow visualization concepts
- Vorticity and Circulation: Rotational aspects of flow
- Deformation Tensor: Strain rate and rotation rate
- Reynolds Transport Theorem: Moving control volumes
- Potential Flow Theory: Velocity potential and stream function
- Elementary Solutions: Uniform flow, sources, sinks, doublets, vortices
- Superposition: Building complex flows from simple solutions
- Bernoulli's Equation: Energy conservation in inviscid flows
- Airfoil Theory: Thin airfoil theory, Kutta condition
- Complex Analysis: Conformal mapping for 2D flows
- Boundary Layer Theory: Prandtl's revolutionary concept
- Laminar Boundary Layers: Blasius solution, Falkner-Skan flows
- Boundary Layer Separation: Adverse pressure gradients
- Drag Analysis: Friction drag, pressure drag, form drag
- Exact Solutions: Couette flow, Poiseuille flow, Stokes flow
- Internal Flows: Fully developed pipe and channel flows
- Gas Dynamics: Thermodynamics of high-speed flows
- Shock Waves: Normal shocks, oblique shocks, expansion waves
- Isentropic Flow: Nozzles and diffusers
- Fanno Flow: Adiabatic flow with friction
- Rayleigh Flow: Frictionless flow with heat transfer
- Supersonic Aerodynamics: Mach cones, wave drag
- Nature of Turbulence: Characteristics and causes
- Reynolds Decomposition: Mean and fluctuating components
- Turbulent Kinetic Energy: Production, transport, dissipation
- Energy Cascade: Richardson's concept, Kolmogorov theory
- Statistical Description: Correlations, spectra, structure functions
- Modeling Approaches: RANS, LES, DNS - when to use each
- Pipe Flow: Friction factors, Moody diagram
- Network Analysis: Multiple pipes, junctions
- Minor Losses: Bends, valves, fittings
- Pumps and Fans: Performance curves, system curves
- Ventilation: HVAC applications
- Fluid-Structure Interaction: Vortex-induced vibration, flutter
- Multiphase Flows: Gas-liquid, liquid-solid interactions
- Microfluidics: Lab-on-a-chip, electrokinetics
- Geophysical Flows: Atmospheric and oceanic circulation
- Biological Flows: Blood flow, respiratory systems
- Environmental Flows: Pollution dispersion, river hydraulics
Engineering applications and design methodologies
Engineering discipline integration
- Control Systems: Feedback loops for flow control, active flow management
- Dynamics: Vibration analysis, modal testing, dynamic response
- Fluid Loading: Pressure distributions, force calculations, moment analysis
- Mechanical Systems: Component design, optimization, failure analysis
- Statics: Equilibrium, free body diagrams, stress analysis
- Strength of Materials: Material selection, fatigue, fracture mechanics
- Transportation: Vehicle aerodynamics, marine hydrodynamics, railway applications
Data-driven and physics-informed approaches to fluid mechanics
AI and machine learning integration in CFD
- Physics-Informed Neural Networks (PINNs): Embedding PDEs in loss functions
- Neural Network Architectures: CNNs for spatial data, RNNs for temporal sequences
- Flow Pattern Recognition: Unsupervised learning for turbulent structures
- Geometry Optimization: AI-driven shape optimization and generative design
- Reduced Order Modeling: Autoencoders, variational autoencoders
- Automotive Aerodynamics: ML for drag reduction and downforce optimization
- Surrogate Modeling: Fast approximations of expensive simulations
- Active Learning: Intelligent sampling strategies for parameter spaces
Computational methods and algorithm implementation
Numerical methods coverage
Comparative analysis of major discretization approaches, when to use each method, advantages and limitations
- Grid generation and stencil operations
- Central, forward, backward differences
- Accuracy and stability analysis
- Explicit vs. implicit schemes
- Applications to simple geometries
- Variational formulations and weak forms
- Element types and shape functions
- Assembly of global matrices
- Galerkin and Petrov-Galerkin methods
- Applications to complex geometries
- Conservation-based discretization
- Flux calculation and reconstruction
- SIMPLE, SIMPLER, PISO algorithms
- Pressure-velocity coupling
- Industry-standard approach in CFD
- Kinetic theory foundations
- Collision and streaming steps
- Boundary conditions in LBM
- Advantages for complex geometries
- Parallel implementation
- SVD-based mode extraction
- Energy-optimal basis functions
- Modal decomposition of flow fields
- Reduced order model construction
- Galerkin projection methods
- POD-Galerkin approach
- Dynamic mode decomposition (DMD)
- Real-time simulation capabilities
- Gaussian processes and kriging
- Radial basis functions
- Response surface methodologies
- Uncertainty quantification
Tutorials, software guides, and implementation examples
The practice section connects theory to implementation through tutorials for standard CFD and scientific computing tools.
Computational meshing topics
- Introduction to Gmsh: Installation, interface overview, basic concepts
- Volume Mesh Generation: Tetrahedral, hexahedral, hybrid meshes
- Mesh Quality Metrics: Skewness, aspect ratio, orthogonality
- Advanced Techniques: Boundary layers, refinement regions, anisotropic meshing
- Scripting: Automating mesh generation with .geo files
- Integration: Exporting meshes for OpenFOAM, Fluent, SU2
Post-processing topics
- ParaView Introduction: Interface navigation, basic operations
- External Package Integration: Custom filters and plugins
- Advanced Visualization: Streamlines, isosurfaces, volume rendering
- Quantitative Analysis: Line plots, histogram, statistical tools
- Animation: Time-series visualization, camera paths
- Python Scripting: Automating visualization workflows
- High-Quality Rendering: Publication-ready images
Detailed end-to-end project implementations, from problem definition to validated results:
- Flow over cylinders with vortex shedding analysis
- Lid-driven cavity benchmark validation
- Airfoil analysis at various angles of attack
- Heat exchanger optimization studies
- Turbulent pipe flow comparisons
Step-by-step guides for the world's most popular open-source CFD software (coming soon)
Comprehensive guide to the CFD software landscape (coming soon)
Computational tools, algorithms, simulations, and visualizations
The scripts provide reusable implementations and examples for numerical methods, post-processing, visualization, and complete simulation workflows.
Mathematical and computational implementations
Available algorithms
| Algorithm | Description | Applications |
|---|---|---|
| Correlation Functions | Spatial and temporal correlations | Turbulence statistics, pattern analysis |
| Kriging Interpolation | Gaussian process regression | Surrogate modeling, optimization |
| SVD Image Compression | Singular value decomposition | Data compression, feature extraction |
| POD Analysis | Proper orthogonal decomposition | Modal analysis, ROM construction |
| Snapshot POD | Efficient POD for large datasets | Flow field decomposition |
| Radial Basis Functions | RBF interpolation and approximation | Mesh morphing, optimization |
| Condition Number Analysis | Matrix conditioning assessment | Numerical stability, kriging |
- Theoretical background and mathematical formulation
- Well-commented, modular implementation
- Validation against analytical/benchmark solutions
- Visualization of results
- Performance considerations and optimization tips
Plotting and analysis tools with more than 30 scripts
Visualization suite
Aerodynamics & External Flows:
- Airfoil Profile Analysis - Geometry and pressure distribution
- Airfoil Angle of Attack Studies - Performance curves
- Drag Coefficient Prediction - Validation cases
- Mean Pressure Coefficient - Surface pressure plots
Boundary Layer Phenomena:
- Boundary Layer Velocity Profiles - u+ vs y+
- Laminar vs Turbulent Boundary Layers - Comparison
- Flow Separation Analysis - Separation prediction
- Boundary Layer Problems - Classic solutions
Internal Flows:
- Laminar vs Turbulent Pipe Flow - Friction factors
- Flow Rate in Pipes - Moody diagram applications
Turbulence Analysis:
- Turbulent Flow Statistics - Reynolds stresses
- POD Modes Visualization - Energy-ranked modes
- POD Modes and Temporal Coefficients - Time evolution
- POD Analysis for Flow Fields - Complete workflow
- Time-Averaged Velocity Field - Mean flow extraction
- Longitudinal Velocity Fluctuations - Turbulence intensity
Compressible Flows:
- Compressible vs Incompressible - Mach number effects
- Nozzle Flow Analysis - Isentropic relations
Multiphase & Surface Tension:
- Meniscus Behavior - Capillary effects
- Pressure Difference Across Droplet - Young-Laplace
- Ship Hull in Water - Wave resistance
Fundamentals & Dimensionless Numbers:
- Froude Number Analysis - Free surface flows
- Velocity Layers and Viscosity - Rheology
- Archimedes Principle - Buoyancy demonstration
Flow Visualization & Kinematics:
- Eulerian vs Lagrangian Flows - Description comparison
- Mean Velocity Magnitude - Vector field visualization
Numerical Methods:
- Grid Convergence Studies - Mesh independence
- Residual Variation - Convergence monitoring
Statistical & Molecular:
- Probability Distribution of N₂ Molecules - Kinetic theory
Design Space Exploration:
- Design Space Distribution - Parameter studies
Complete simulation setups from problem definition to results
Simulation cases
Classical CFD Benchmarks:
- Lid-Driven Cavity: The CFD "Hello World" - Validation of incompressible solvers
- Backward-Facing Step: Flow separation and reattachment
External Flow Problems:
- Flow Past Cylinder (Eulerian): Vortex shedding, Strouhal number
- Cylinder Flow (Lattice Boltzmann): LBM implementation
Complex Phenomena:
- Kelvin-Helmholtz Instability: Shear layer instabilities
- Rayleigh-Bénard Convection: Natural convection, pattern formation
- Vortex Shedding & Pathlines: Unsteady visualization
Heat Transfer:
- 1D Heat & Wave Equations: Fundamental PDE solutions
- 2D Wave Simulation: Wave propagation
Fluid Dynamics Simulator:
- Real-Time Fluid Simulator: Interactive visualization
Interdisciplinary Applications:
- Charged Particle in Magnetic Field: Runge-Kutta methods
- Schrödinger Equation: Quantum mechanics analogy
Statistical Physics:
- Ising Model: Phase transitions
- Bak-Tang-Wiesenfeld Sandpile: Self-organized criticality
Creative Applications:
- Laplace Equation Maze Solver: Potential flow in complex domains
Each simulation includes:
- Problem description and physical significance
- Learning objectives
- Setup instructions and parameter files
- Numerical method details
- Post-processing scripts
- Validation data and expected results
- Extensions and research directions
Core knowledge requirements
Mathematics (Essential):
- Vector Calculus: Gradients, divergence, curl, line/surface integrals
- Differential Equations: ODEs, PDEs, classification of PDEs
- Linear Algebra: Matrices, eigenvalues, SVD, norms
- Numerical Analysis: Truncation error, stability, convergence
Physics (Essential):
- Classical Mechanics: Newton's laws, conservation principles
- Thermodynamics: First/second laws, equations of state
- Fluid Mechanics: Basic concepts, Bernoulli, viscosity
Programming (Recommended):
- Python: NumPy, SciPy, Matplotlib basics
- MATLAB: Or compatible alternatives (Octave, Julia)
- Version Control: Git fundamentals for collaboration
Software (Will Learn):
- ParaView: Scientific visualization (we'll teach you)
- Gmsh: Mesh generation (tutorials provided)
- Text Editor/IDE: VS Code, PyCharm, or similar
Day 1-2: Understanding the Basics
Read: Fluid Mechanics Fundamentals (./notes/fluid_mechanics/intro.md)
Learn: What is CFD? When do we need it? What can it do?
Goal: Understand continuum hypothesis and conservation laws
Day 3-4: Mathematical Framework
Read: Governing Equations introduction
Learn: Navier-Stokes equations conceptually
Goal: Recognize the equations, understand each term physically
Exercise: Identify terms in simple flow problems
Day 5-7: First Computational Experience
Install: Python, NumPy, Matplotlib
Run: Simple 1D heat equation script (./scripts/simulations/1d_heat_and_wave_equations/)
Visualize: Temperature evolution over time
Goal: See how equations become code become solutions
Day 8-9: Visualization Tools
Install: ParaView (free, powerful)
Follow: ParaView Introduction (./practice/paraview/intro.md)
Load: Example dataset, create streamlines
Goal: Visualize flow fields professionally
Day 10-12: Your First Complete Simulation
Run: Lid-driven cavity (./scripts/simulations/lid_driven_cavity/)
Understand: Problem setup, boundary conditions
Analyze: Velocity profiles, vortex formation
Goal: Complete simulation start-to-finish
Validate: Compare against benchmark data
Day 13-14: Consolidation & Next Steps
Review: What you've learned
Plan: Choose your learning pathway
Engage: Join CFD communities, ask questions
Document: Your learning journey
For Complete Beginners:
- Start with Fluid Mechanics Fundamentals
- Read Dimensional Analysis - understand Reynolds number
- Run 1D Heat Equation to see numerics in action
- Try Lid-Driven Cavity as first CFD problem
- Learn ParaView for visualization
- Explore Finite Volume Methods for industry-standard approach
For Students with Fluid Mechanics Background:
- Review Governing Equations
- Deep dive into Turbulence Theory
- Study Finite Volume Methods in detail
- Implement Backward-Facing Step
- Analyze results with Visualization Scripts
- Explore POD Analysis for data-driven methods
For Practicing Engineers:
- Review CFD Methods Overview to understand solver internals
- Master Gmsh for custom geometries
- Study industry-relevant cases in Manual Projects
- Automate workflows with Scripts
- Learn Advanced Turbulence Modeling
- Explore Optimization Methods for design
For ML/AI Practitioners:
- Quick CFD overview: Fundamentals
- Understand Navier-Stokes Equations
- Learn POD/ROM for dimensionality reduction
- Study Machine Learning Notes
- Implement Physics-Informed Neural Networks
- Apply to Optimization Problems
- 103+ Theory Documents: Every concept explained from first principles to advanced applications
- 57+ Python Scripts: Production-ready, validated implementations
- 30+ Visualization Tools: Professional-quality plots and animations
- 15+ Complete Simulations: From setup to validated results
- 9+ Core Algorithms: Mathematical implementations with theory
- Progressive Complexity: Carefully ordered from basics to cutting-edge research
- Multiple Learning Styles: Theory, code, visualizations, hands-on projects
- Cross-Referenced: Navigate seamlessly between related concepts
- Validated Content: Benchmarked against literature and standard cases
- Active Maintenance: Regular updates with latest developments
- Industry-Standard Tools: ParaView, Gmsh, OpenFOAM integration
- Real-World Problems: Not just toy examples, actual engineering challenges
- Performance Optimized: Efficient implementations with profiling
- Reproducible Results: Complete documentation for every script
- Extensible Codebase: Modular design for easy customization
- Latest Developments: ML/AI integration, modern numerical methods
- Literature Connected: 80+ references to papers, books, courses
- Novel Methods: Cutting-edge techniques not in textbooks
- Open Problems: Guidance on current research frontiers
- Citation Ready: Properly formatted, academically rigorous
- Open Source: MIT license, use anywhere for any purpose
- Collaborative: Contributions welcome from all skill levels
- Diverse Perspectives: Global community of contributors
- Supportive: Detailed docs, examples, troubleshooting guides
- Growing: New content added regularly based on community needs
Common issues and solutions
Q: I'm overwhelmed. Where should I actually start? A: Begin with the Fundamentals, then run the Lid-Driven Cavity simulation. This provides a manageable first step before deeper study.
Q: I don't have a strong math background. Can I still learn CFD? A: Yes, but it will take more time. Start with the fundamentals and use online resources (Khan Academy, MIT OpenCourseWare) to fill gaps as needed. Focus on physical understanding first.
Q: What programming language should I use? A: Python is recommended for beginners (used in this repo). MATLAB is also common in academia. For production CFD, C/C++ and Fortran are standard but not necessary for learning.
Q: My simulation diverges. What should I check? A: Common causes (in order of frequency):
- Time step too large (reduce by 10x and try)
- Boundary conditions incorrect or conflicting
- Initial conditions far from solution
- Mesh quality poor (high skewness, aspect ratio)
- Numerical scheme inappropriate for the problem
Q: Results don't match theory/experiments. Why? A: Systematic debugging:
- Verify geometry and mesh are correct
- Check boundary conditions carefully
- Ensure proper units and scaling
- Verify convergence (residuals, monitors)
- Compare turbulence model predictions
- Assess if flow regime matches assumptions
Q: Simulation runtime is too long. How can I improve performance? A:
- Start with coarser mesh, refine only where needed
- Use symmetry to reduce domain size
- Choose efficient solver settings (multigrid, etc.)
- Parallelize (MPI) if available
- Consider steady-state instead of transient if appropriate
- Use better initial guess (from similar case)
Q: What's the difference between RANS, LES, and DNS? A:
- DNS (Direct Numerical Simulation): Resolves all relevant turbulence scales. It is highly accurate for appropriate problem settings, but computationally expensive and primarily used in research.
- LES (Large Eddy Simulation): Resolves large eddies and models smaller scales. It can provide detailed unsteady information, but generally requires substantially more computation than RANS.
- RANS (Reynolds-Averaged Navier-Stokes): Models turbulence effects through averaged equations. It is widely used in industry because it balances accuracy, robustness, and cost.
Q: Which turbulence model should I use? A: Quick guide:
- k-ε: General purpose, external flows, high Reynolds number
- k-ω SST: Boundary layers, separation, most versatile
- Spalart-Allmaras: Aerospace, external aerodynamics
- LES: Unsteady, complex geometries, when RANS fails When in doubt, start with k-ω SST.
Q: How do I know if my mesh is good enough? A: Perform mesh independence study:
- Run simulation on your mesh
- Refine mesh (2x points in each direction)
- Compare key results (drag, pressure, etc.)
- If <1-2% difference, original mesh is acceptable
- Always check mesh quality metrics (skewness < 0.85, aspect ratio < 100)
Q: What's Y+ and why does everyone talk about it? A: Y+ is a dimensionless wall distance. Critical for turbulence modeling:
- Y+ < 1: Resolve viscous sublayer (best accuracy, expensive)
- 30 < Y+ < 300: Use wall functions (industry standard)
- 1 < Y+ < 30: "Buffer layer" - avoid this range!
A curated, categorized collection of more than 80 resources spanning textbooks, research papers, online courses, code repositories, and visualization tools.
Interactive Learning Platforms:
- CFD Python: 12 Steps to Navier-Stokes by Lorena Barba - A widely used hands-on introduction to CFD through Python, structured in incremental steps.
- CFD General Principles by CFD Direct - Fundamental concepts explained by the makers of OpenFOAM
- Scientific Computing by Chasnov - Complete theoretical foundations with clear explanations
Validation & Benchmark Databases:
- NASA Turbulence Modeling Resource - A major database for turbulence model validation cases
- Wall-Modeled Large Eddy Simulation Resource - Comprehensive WMLES database and guidelines
- Airfoil Tools Database - Extensive airfoil geometry and performance data
- NWTF Experimental Database - Airbus Wind Tunnel Dataset on RAE2822 transonic aerofoil
Academic Repositories:
- DepositOnce - TU Berlin - Academic repository with cutting-edge CFD research
- National Committee for Fluid Mechanics Film Series - Classic educational films, timeless fluid mechanics visualization
Foundational CFD Theory (Start Here)
| Book | Authors | Best For | Level |
|---|---|---|---|
| Computational Fluid Dynamics: The Basics with Applications | John D. Anderson | Comprehensive introduction, aerospace emphasis | Beginner-Intermediate |
| An Introduction to Computational Fluid Dynamics: The Finite Volume Method | H.K. Versteeg & W. Malalasekera | Industry-standard FVM approach, very clear | Beginner-Intermediate |
| Computational Methods for Fluid Dynamics | Ferziger, Peric & Street | Advanced, comprehensive, graduate-level | Advanced |
| Book | Authors | Best For | Level |
|---|---|---|---|
| Numerical Heat Transfer and Fluid Flow | Suhas V. Patankar | Classic text, SIMPLE algorithm, still relevant | Intermediate |
| Computational Fluid Dynamics: Principles and Applications | J. Blazek | Industrial CFD, practical guidelines | Intermediate-Advanced |
| Book | Authors | Best For | Level |
|---|---|---|---|
| Data-Driven Science and Engineering | J. Nathan Kutz | ML for dynamical systems, POD, DMD | Intermediate-Advanced |
| Machine Learning Control | Steven L. Brunton & Bernd R. Noack | ML for flow control, cutting-edge | Advanced |
Machine Learning in CFD (The Future)
-
Machine Learning for Fluid Dynamics: An Overview Comprehensive review of ML applications in fluid mechanics. Essential reading for anyone entering the field.
-
Machine Learning-Based CFD Simulations: A Review State-of-the-art analysis, models, open threats, and future tactics. 2022 comprehensive survey.
-
Physics-Informed Neural Networks: A Deep Learning Framework for Solving Forward and Inverse Problems The foundational PINN paper by Raissi, Perdikaris & Karniadakis. Revolutionized scientific ML.
-
Machine Learning in CFD - Recent Advances 2023 update on ML integration in computational fluid dynamics.
-
Nature Reviews - GK High-impact review paper on computational methods
Future Directions & Vision
- CFD of the Future: Year 2025 and Beyond Expert perspectives on where the field is heading. Insightful predictions on AI, HPC, uncertainty quantification.
Historical & Classical References
- Pratt & Whitney: The Aircraft Engine and Its Operation (1949) Classic engineering reference showing the foundations of aerospace CFD applications.
Educational Implementations (Learn by Doing)
-
Machine Learning and Simulation by Ceyron Excellent integration of ML techniques with physics simulations. Clean code, great documentation.
-
NVIDIA Modulus Airfoil Optimization Modern GPU-accelerated CFD with AI. Shows the cutting edge of physics-informed ML.
Finite Element Resources
-
Introductory Finite Elements - EAFIT Comprehensive FEM course materials with Python implementations.
-
Dolfin X FEM Tutorial Modern FEM with FEniCS/DolfinX. Excellent for complex geometries and multiphysics.
Project Showcases
- David Penner's CFD Projects Inspiring portfolio of practical CFD applications and visualizations.
University-Level Courses (Structured Learning)
-
MIT Lecture Series on CFD Academic-level instruction from one of the world's premier aerospace programs.
-
Computational Fluid Dynamics - ME615 IIT Mandi Complete university CFD course. Theory, numerics, applications - all covered systematically.
-
Qiqi Wang's CFD Lectures MIT professor's extensive collection. Advanced numerical analysis, deep mathematical insights.
-
The Perić Lectures on CFD Industry perspective from a leading contributor to commercial CFD development.
Numerical Methods Fundamentals
-
Numerical Methods by Hand Understanding algorithms by working through them manually. Builds deep intuition.
-
Mechanics Problems Solved by Hand Analytical problem-solving techniques. Valuable for validation and understanding.
-
Postcard Professor's Solution Methods Step-by-step problem solving across various mechanics topics.
-
Additional Hand Solutions More worked examples across fluid mechanics and applied mathematics.
-
Theoretical Mechanics and Numerical Methods Channel Various topics from theoretical mechanics to computational methods.
Specialized Topics
-
Data-Driven Methods for Science and Engineering Seminar Cutting-edge seminars on ML, ROM, and modern computational methods.
-
Gentle Introduction to Fluid Concepts Visual, intuitive explanations of complex fluid phenomena. Excellent for beginners.
This project is licensed under the MIT License - see the LICENSE file for full details.
What this means:
- Free to use for any purpose (personal, educational, commercial)
- Free to modify and create derivative works
- Free to distribute original or modified versions
- Attribution required: Credit the original authors
- No warranty: Provided "as is" without guarantees
This ensures the content remains open and accessible for educational and research purposes worldwide.
This repository stands on the shoulders of giants. We are deeply grateful to:
- The Global CFD Community: Researchers, engineers, and educators who generously share knowledge
- Academic Institutions: Universities worldwide advancing CFD science and educating future practitioners
- Open-Source Contributors: Developers of OpenFOAM, ParaView, Python scientific stack, and countless other tools
- Textbook Authors: Who have distilled complex concepts into accessible learning materials
- Pioneering Researchers: From Navier and Stokes to modern ML practitioners, advancing the field
- Direct Contributors: Everyone who has submitted PRs, reported issues, or suggested improvements
Special recognition to foundational works:
- Ludwig Prandtl's boundary layer theory (1904)
- The SIMPLE algorithm by Patankar & Spalding (1972)
- Direct Numerical Simulation pioneers (1970s-1980s)
- Large Eddy Simulation development (1980s-1990s)
- Recent Physics-Informed Neural Networks revolution (2017-present)
This repository builds upon decades of collective research and development in computational fluid dynamics. Every concept, method, and insight has a rich history we strive to honor and preserve.
Questions, suggestions, or collaboration requests
- Bug Reports: Open an issue with details
- Feature Requests: Propose enhancements with use cases
- Collaboration: Open a discussion for projects
- Direct Contact: Create an issue for private matters (will move to email if needed)
If this repository has helped you, please:
- Star the repository to show support and boost visibility
- Share with colleagues and students
- Provide feedback through issues or discussions
- Contribute back to help others on their journey
Maintained by the global CFD community
Last Updated: December 2024 Content: 103+ theory docs, 57+ scripts, 15+ simulations, 80+ references Global Reach: Used by students and professionals worldwide
"In CFD, as in engineering practice, mastery develops through consistent work across theory, implementation, validation, and interpretation. This repository is intended to support that process."
