Skip to content

Latest commit

 

History

351 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computational Fluid Dynamics (CFD) Resources

CFD Resources Banner

License: MIT Contributions Welcome GitHub Stars PRs Welcome

A structured resource for learning, implementing, and applying computational fluid dynamics

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 StartDocumentationResearchCodeContribute


Vision and Scope

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.

Purpose and Audience

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

Educational Philosophy

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:

  1. Theory-practice integration: Concepts are connected to mathematical foundations, implementation details, and practical consequences.
  2. Iterative learning: Material is organized so readers can revisit topics at increasing levels of depth.
  3. Interdisciplinary context: Connections are made between CFD and adjacent fields such as optimization, machine learning, high-performance computing, and applied mechanics.
  4. Modern relevance: The content includes current topics such as physics-informed learning, surrogate models, reduced-order modeling, and scalable computation.
  5. Community development: Contributions are welcome from practitioners, researchers, students, and educators.

Repository Statistics

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

How to Use This Repository

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.

Learning Pathways and Navigation

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.

Path 1: Academic Foundation for Students and Researchers

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

Path 2: Industrial Practitioner

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

Path 3: Machine Learning and AI Integration

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

Path 4: Quick Start

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

Advanced Research Topics

Current Developments in CFD

The repository includes material on advanced and emerging topics that are increasingly relevant in research and industrial practice:

Artificial Intelligence and Machine Learning

  • 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

High-Performance Computing

  • 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

Numerical Methods

  • 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

Specialized Flow Phenomena

  • 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

Data-Driven Approaches

  • 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

Contributing

Contributions are welcome from researchers, engineers, educators, and students. High-quality additions should improve accuracy, clarity, reproducibility, or coverage.

How to Contribute

  1. Fork this repository
  2. Create a feature branch (git checkout -b feature/YourContribution)
  3. Make your changes with clear, descriptive commits
  4. Test your additions and ensure documentation is updated
  5. Push to your fork (git push origin feature/YourContribution)
  6. Open a Pull Request with detailed description

Contribution Guidelines

  • 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

Types of Contributions Welcome

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

Quality Standards

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.

Recognition and Credits

All contributors are acknowledged in our Contributors page. Significant contributions may be highlighted in release notes and documentation.


Content Organization

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:

Boundary Layer Phenomena:

Internal Flows:

Turbulence Analysis:

Compressible Flows:

Multiphase & Surface Tension:

Fundamentals & Dimensionless Numbers:

Flow Visualization & Kinematics:

Numerical Methods:

Statistical & Molecular:

Design Space Exploration:

Complete simulation setups from problem definition to results

Simulation cases

Classical CFD Benchmarks:

External Flow Problems:

Complex Phenomena:

Heat Transfer:

Fluid Dynamics Simulator:

Interdisciplinary Applications:

Statistical Physics:

Creative Applications:

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

Getting Started

Prerequisites and Skill Assessment

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

Quick Start Guide: First Two Weeks

Week 1: Foundation Building

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

Week 2: Hands-On Application

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

Recommended Learning Sequence

For Complete Beginners:

  1. Start with Fluid Mechanics Fundamentals
  2. Read Dimensional Analysis - understand Reynolds number
  3. Run 1D Heat Equation to see numerics in action
  4. Try Lid-Driven Cavity as first CFD problem
  5. Learn ParaView for visualization
  6. Explore Finite Volume Methods for industry-standard approach

For Students with Fluid Mechanics Background:

  1. Review Governing Equations
  2. Deep dive into Turbulence Theory
  3. Study Finite Volume Methods in detail
  4. Implement Backward-Facing Step
  5. Analyze results with Visualization Scripts
  6. Explore POD Analysis for data-driven methods

For Practicing Engineers:

  1. Review CFD Methods Overview to understand solver internals
  2. Master Gmsh for custom geometries
  3. Study industry-relevant cases in Manual Projects
  4. Automate workflows with Scripts
  5. Learn Advanced Turbulence Modeling
  6. Explore Optimization Methods for design

For ML/AI Practitioners:

  1. Quick CFD overview: Fundamentals
  2. Understand Navier-Stokes Equations
  3. Learn POD/ROM for dimensionality reduction
  4. Study Machine Learning Notes
  5. Implement Physics-Informed Neural Networks
  6. Apply to Optimization Problems

Key Features and Differentiators

Comprehensive Coverage

  • 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

Educational Design

  • 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

Practical Applicability

  • 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

Research-Grade Content

  • 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

Community Focus

  • 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

Troubleshooting and FAQ

Common issues and solutions

Getting Started Problems

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.

Technical Issues

Q: My simulation diverges. What should I check? A: Common causes (in order of frequency):

  1. Time step too large (reduce by 10x and try)
  2. Boundary conditions incorrect or conflicting
  3. Initial conditions far from solution
  4. Mesh quality poor (high skewness, aspect ratio)
  5. Numerical scheme inappropriate for the problem

Q: Results don't match theory/experiments. Why? A: Systematic debugging:

  1. Verify geometry and mesh are correct
  2. Check boundary conditions carefully
  3. Ensure proper units and scaling
  4. Verify convergence (residuals, monitors)
  5. Compare turbulence model predictions
  6. Assess if flow regime matches assumptions

Q: Simulation runtime is too long. How can I improve performance? A:

  1. Start with coarser mesh, refine only where needed
  2. Use symmetry to reduce domain size
  3. Choose efficient solver settings (multigrid, etc.)
  4. Parallelize (MPI) if available
  5. Consider steady-state instead of transient if appropriate
  6. Use better initial guess (from similar case)

Conceptual Questions

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:

  1. Run simulation on your mesh
  2. Refine mesh (2x points in each direction)
  3. Compare key results (drag, pressure, etc.)
  4. If <1-2% difference, original mesh is acceptable
  5. 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!

References and Further Reading

A curated, categorized collection of more than 80 resources spanning textbooks, research papers, online courses, code repositories, and visualization tools.

Essential Online Resources

Interactive Learning Platforms:

Validation & Benchmark Databases:

Academic Repositories:


Essential Textbooks

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

Key Research Papers

Machine Learning in CFD (The Future)

Future Directions & Vision

Historical & Classical References


Code Repositories and Open Source Projects

Educational Implementations (Learn by Doing)

Finite Element Resources

Project Showcases


Video Learning Resources

University-Level Courses (Structured Learning)

Numerical Methods Fundamentals

Specialized Topics


License

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.


Acknowledgments

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.


Contact and Support

Questions, suggestions, or collaboration requests


Support This Project

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

Building a comprehensive CFD learning resource

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

Back to Top


"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."

About

This repo is a work in progress aimed at gathering useful open-source resources for CFD engineers in one place. It includes notes, scripts, and tutorials for tools like ParaView, Gmsh, and more. The idea is to make it easier to find and use solid, practical materials without digging through scattered sources.

Resources

Stars

52 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages