Vous êtes sur la page 1sur 15

Applied Computation 274

Computational Fluid Dynamics


Lecturer: Dr. David Knezevic

Logistics
Lectures: Tuesday, Thursday 10am11:30am
My email: dknezevic@seas.harvard.edu
Syllabus, lecture slides, assignments are (or will be) on website
http://iacs-courses.seas.harvard.edu/courses/ac274/
[Some lecture material will be on the whiteboard, and wont be on
the website]
Will use the AC274 iSite dropbox for assignment submission
http://isites.harvard.edu/k102009

2 / 15

Logistics

My office: Cruft 402


Office hours: Tuesday 11:30am 1pm, Cruft 403
TF: Philip Mocz (pmocz@fas.harvard.edu)
(We will organize sections as semester progresses)
Well use Piazza to provide a discussion forum, sign up via link on
AC274 website

3 / 15

Overview
This course is about understanding and implementing
powerful numerical methods for CFD

We will not focus on detailed descriptions/derivations of physical


models
We will mostly take well established fluids models (e.g. Euler
equations or Navier-Stokes equations) as given
Prerequisites: Calculus, linear algebra, programming experience1
Also: Some familiarity with numerical methods for PDEs (e.g.
finite difference methods) would be helpful
1

You will have to do quite a lot of coding!


4 / 15

Programming
I recommend programming in MATLAB in this course. Why
MATLAB?
I

Widely used, very convenient: Wide range of numerical


algorithms and graphics capabilities available under one roof

Interpreted language, no need for tedious compilation


(cf. C/C++/Fortran)

High-level language, clear mathematical syntax = easier to


learn, easier to do interesting things

Everyone should have access to MATLAB (free download from


Harvard)

5 / 15

Programming
Main drawback of MATLAB is computational efficiency:
interpreted language = less efficient than compiled languages
Nevertheless, MATLAB is sufficient for 1D and (many) 2D CFD
problems
For our purposes, convenience of MATLAB is far more important
than the extra gain in efficiency from using, say, C++ or Fortran
Allows us to focus on the key mathematical and algorithmic issues
in CFD
After taking this course, if youre interested in more heavy duty
CFD for research, you may want to use:
I

open source (OpenFOAM, libMesh, deal.II, DUNE, FEniCS)

commercial packages (ANSYS, Star-CCM+, Abaqus)


6 / 15

Programming
We will assume that you have MATLAB experience, to the level of
(for example) AM205
Question: Can a different language, e.g. Python or C, be used for
programming assignments?
Answer: In general, I am not opposed to other languages, as long
as the following constraints are honored:
I

TFs must be able to very easily execute any code that you
submit2

When working in groups, all group members must be


comfortable with the choice of language

The onus is on you to make sure that this is the case


7 / 15

Syllabus
Unit 0: Overview of CFD
Unit I: Hyperbolic Conservation Laws
I Finite volume method
I Discontinuous Galerkin finite element method
I Linear and nonlinear conservation laws
I Scalar and vector problems
I Physical models (acoustics, shallow water, Euler equations)
I Shocks
Unit II: Viscous Flows
I Continuous Galerkin Finite element method
I Potential flow
I Convection-diffusion problems and boundary layers
I Mixed finite elements and Stokes equation
I Navier-Stokes equation
8 / 15

Assessment: Homework Assignments


Homework assignments (to be completed individually) will be given
during the semester, account for 65% of the final grade3
Homework assignments will involve both programming and
theory/mathematics, submit written report and code
Unless there are extenuating circumstances, late submissions will
not be accepted
Code should be written clearly and commented thoroughly
TFs should be able to easily run your code and reproduce your
figures

Each point on each assignment counts equally towards your final grade
9 / 15

Group Work
You will do the first assignment individually, but at some point I
will assign you to groups for subsequent assignments
You will then work as a group to produce generic CFD library
code which you will continually enhance during the semester
Hence its in your own interest to make sure that your groups
library code is written clearly, well-documented, easily extensible!
Group members will use library code to complete the homework
assignments individually

10 / 15

Group Work

API: Application Programming Interface (function names,


arguments etc used to interact with the library code)
11 / 15

Group Work

I recommend Academic Computings git4 repository to enable


productive collaborative software development:
https://code.seas.harvard.edu
ACS will give a tutorial on how to use git and code.seas
effectively...

git is a version control system, originally designed for development of the


linux kernel
12 / 15

Assessment: Final Project

Final project will be done in your group, and will be worth 35% of
your final grade, due near end of semester (exact date TBD)
The project will give you an opportunity to extend your groups
library code to implement an advanced topic, such as:
I

Limiters, shock capturing

Mesh motion with ALE, or immersed boundary methods

A posteriori error analysis and adaptive mesh refinement

Stabilization schemes (SUPG, least-squares, subgrid viscosity)

Free-surface or two-phase flows

13 / 15

Assessment: Final Project

For the final project:


I

Each group will meet with me to get approval for their project
topic

All group members will get the same grade for the final project

As a group: Submit a written report, source code, and any


other supporting materials you like (e.g. animations)

14 / 15

Text books

There is no official text book for this course, we will use material
from several books, including:

15 / 15

Vous aimerez peut-être aussi