PhD course in CFD with OpenSource software, 2009
Students 2009
These students were the ones left to the end of the final presentation day. Click to enlarge.
Standing, left to right:
Junfeng Yang, Jelena Andric, Chen Huang, Arash Eslamdoost, Håkan Nilsson (teacher), Alexey Vdovin, Karl Jacob Maus, Niklas Järvstråt, Jan Potac
Sitting, left to right:
Aurelia Vallier, Piero Iudiciani
Missing (of those who presented):
Andreu Olivier Gonzales, Mikael Jönsson
Basic information
Final registration is 1st September 2009.
The course homepage is http://www.tfd.chalmers.se/~hani/kurser/OS_CFD_2009
If you are interested in taking the course you should contact me at hani@chalmers.se so that I can maintain an e-mail list that will be used for further information until the course starts.
Prerequisites
You should have a background in Fluid Dynamics, and ideally some CFD experience and/or a course in CFD. The course contains a lot of Linux and C++ programming. In order to be able to follow the lectures, you should make sure that you understand and can use the basic Linux commands presented here
Syllabus
The course gives an introduction to the use of OpenSource software for CFD applications. A major project work in OpenFOAM (see the short description below) forms
a large part of the course. The project may be defined according to the
student's special interests. The result of the project should be a
detailed tutorial for a specific application or library of OpenFOAM. The tutorials
will be peer-reviewed and graded by the students, and the tutorials thus
form a part of the course. The tutorials will be made available as
OpenSource, as a contribution to the OpenFOAM community. To pass the
course the student must do the project and peer-review the tutorials from
the other projects. There will also be some compulsory minor tasks.
The students will learn on the following subjects:
- CFD
- Linux
- OpenFOAM
- C++
- Doxygen
- Compilation procedures
- Debugging
- Version Control Systems
- Paraview
- VTK
- Gnuplot
- m4
- sed
- Python
- Writing reports (in this case a tutorial)
- Peer-reviewing reports
- Teach a tutorial in the form of a small workshop
- ...
OpenFOAM (Open Field Operation and Manipulation, www.openfoam.org) is developed and distributed by OpenCFD (http://www.opencfd.co.uk). OpenFOAM is an
object oriented C++ toolbox for solving various systems of partial
differential equations using the finite volume method on arbitrary control
volume shapes and configurations. It includes preprocessing (grid
generator, converters, manipulators, case setup), postprocessing (using
OpenSource Paraview), and many specialized CFD solvers are implemented.
The features in OpenFOAM are comparable to what is available in the major
commercial CFD codes. Some of the more specialized features that are
included in OpenFOAM are: sliding grid, moving meshes, two-phase flow
(Langrange, VOF, Euler-Euler) and fluid-structure interaction. The
strength of OpenFOAM is however the object-oriented approach to generating
specialized solvers, utilities and libraries, using a flexible set of C++
modules. OpenFOAM runs in parallel using automatic/manual domain
decomposition, and the parallelism is integrated at a low level so that
solvers can generally be developed without the need for any
parallel-specific coding. Due to the distribution as an OpenSource code it
is possible to gain control over the exact implementations of different
features, which is essential in research work. It also makes development
and tailoring of the code for the specific application possible. In
addition to the source code, OpenFOAM gives access to an international
community of OpenFOAM researchers through the discussion board at the
OpenFOAM home page.
Schedule and Contents
- First occasion
Workshop/Lecture
- Monday, 21/9, 9.15-17, MT13 (Map - straight ahead and one stair down)
- Tuesday, 22/9, 9.15-17, MT13
- Second occasion
Workshop/Lecture
- Monday, 5/10, 9.15-17, MT13
- Tuesday, 6/10, 9.15-17, MT13
- Third occasion
Workshop/Lecture/Supervision
- Monday, 19/10, 9.15-17, MT13
- A 'real' case-study, from scratch to validation using OpenSource software
- Setting up a case from scratch with pyFoam (a user contribution, coupling Python with OpenFOAM)
- Debugging in three ways (based on material from Dr.Fabian Peng-Kärrholm, 2007)
- Code development using Subversion
- Advanced OpenFOAM usage, taught by Olivier Petit
Mesh generation (snappyHexMesh etc.), MRFSimpleFoam, GGI...
Mesh generation
Case descriptions
Files
- Plan for next year (i.e. not part of the 2009 course):
Python Scripting for Gluing CFD Applications: A Case Study Demonstrating Automation of Grid Generation, Parameter Variation,Flow Simulation, Analysis, and Plotting by Eric Paterson. Report, Files, Book
- Compulsory project work to be handed in by 11th of December!
LaTeX report template (by Per Carlsson, 2008)
Hand in intermediate version 15th of November!!! Present at fourth occasion.
Supervision through Subversion, at /chalmers/groups/am-kurs-os2010
- Tuesday, 20/10, 9.15-17, MT13
Supervision of project work. Minimal/no additional material.
- Fourth occasion
Project presentations, and guest presentations
- Monday, 14/12, 9.15-17, MT13
- Tuesday, 15/12, 9.15-17, MT13
Guest presentations
Preliminary student-contributed tutorials
These files should at least work for OF-1.5.x, OF-1.5-dev, or OF-1.6.x at the student computers in the Mechanical Engineering building at Chalmers, at the time of the presentation days of this course.
- Junfeng Yang:
Whiplash Motion Modeling for OpenFOAM-1.5-dev
Solvers for whiplash-like motion will be developed to investigate the pressure and velocity field in the computational domain. The results will be compared with the one from commercial code (Fluent). In further study, the interaction between fluid and weak-contrain wall (or flexible wall) should be included.
Report, Presentation, Files
- Mikael Jönsson:
How to create a piston engine combustion chamber using deformable mesh
A tutorial on how to mesh a combustion chamber including cylinder, a
moving piston and ports. The icoDyMFoam/movingCone tutorial will be
thoroughly studied and described since it is used as a base.
Report (not available yet), Presentation, Files
The following will not present this year:
- Farhan Matin:
Implementation of an actuator disk
Implement an actuator disk that resembles the effect of a rotating geometry, such as a propeller or a rotating honeycomb (ercoftacConicalDiffuser).
Report, Presentation, Files
- Anne Kösters:
Dynamic mesh refinement in dieselFoam
The aim of the project is to
implement a new solver that creates a dynamic mesh refinement in the
dieselFoam application. The refinement shall happen where the lagrangian
droplets occur.
Report, Presentation, Files
- Helena Martini:
Implementation of a boundary condition which projects a patch to a pre-
defined surface
The aim is to implement a general description of a geometrical shape
of a patch that should be projected to a surface. The user should be
able to change the shape of the patch via some input parameters.
Report, Presentation, Files
- Marina Olsson:
Cavitating flow in a rotating geometry
In this project I will first describe the mixing plane
model and the cavitatingFoam model separately. The aim is to combine these
two models to simulate a cavitating flow in a rotating geometry.
Report, Presentation, Files
Final, peer-reviewed, student-contributed tutorials
These files should work for OF-1.6.x (or another version that is specifically mentioned) at the student computers in the Mechanical Engineering building at Chalmers, at the time of the presentation days of this course.
- Andreu Oliver Gonzalez:
Mesh motion alternatives
A study on different types of mesh motions carried out (considering
motions with deforming or non-deforming mesh, defining the motion in all the
points or only applying it in some of the cells).
Report, Presentation, Files
- Chen Huang:
Tutorial on implementing real gasoline property in liquids library.
This tutorial will be focused on how to add a new liquid property in
liquids library using table instead of functions. An interpolation
function on the table will also be introduced.
Report, Presentation, Files
- Alexey Vdovin:
Radiation heat transfer in OpenFoam
The aim is to study and evaluate heat transfer models implemented in OpenFoam using simple cases. Make some modifications to existing models or try to create a new one.
Report, Presentation, Files
- Jelena Andric:
Lagrangian Particle Tracking
One part of the tutorial will include detailed description of solidParticle
and solidParticleCloud classes, while the other will be focused on modifying
those to be applicable for cylinders.
Report, Presentation, solidCylinderFoam, solidCylinder, Box
- Piero Iudiciani:
A modified version of the reactingFoam tutorial
The tutorial will show how to make an unsteady simulation of an
air/methane flame on a simple geometry (either a 2D mesh of the PitzDaily
case or a coarse 3D mesh generated with snappyHexMesh). A modified version
of the reactingFoam solvers will be used.
Report, Presentation, Case, Files
- Karl Jacob Maus:
Weakly coupled fluid-structure interaction
Solvers for weakly coupled fluid-structure interaction problems are
built by combining existing solvers and methods for mesh-movement in a
generic way. Test-cases are set up for a variety of problems to be
solved.
Report, Presentation, Code, Cases
- Jan Potac:
Snowdrift development using mesh deformation approach
Inlet boundary conditions representing vertical wind and snow
flux profiles will be implemented. The mesh deformation driven by user
define
function for snow accumulation will be used to obtain the proper snow
surface.
Report, Presentation, Files
- Niklas Järvstråt:
Adding electric conduction and Joule heating to chtMultiRegionFoam
Develop a new solver for coupled electric conduction and heat transfer, based on chtMultiRegionFoam and adding the solution of the potential scalar field and the current density vector field. Joule heating will further be added to the energy equation.
Report, Presentation, Files
- Arash Eslamdoost:
Forced Roll Motion of a 2D Box and Interaction with Free-Surface
Dynamic meshing in a deforming computational domain including
free-surface would be the main object of this tutorial
Report, Presentation, Files, Movie, Movie, Movie
- Aurelia Vallier:
Descriptions and modifications of icoLagrangianFoam
The project is based on icoLagrangianFoam
The tutorial describes this solver and my contributions:
-update to version 1.6
-comparison (modifications) of equations, momentum source and drag
coefficient in icoLagrangianFoam and dieselFoam
-add function inject() to inject a cloud of particles at each time step
(user can choose the number of particles and the location of the cloud)
-add the scalarField volumeFraction to simplify the post-processing (user
don't need anymore to use foamToVTK/glyph to see the particle distribution)
Report, Presentation, Files
Project suggestions
(Most of these topics have been discussed a lot in the forum, so it should be possible to find all the answers there)
- Implement a mesh boundary condition for projecting a patch to a curved surface, implement a mesh-motion boundary condition for simulating a synthetic jet actuator for active flow control. Have a look at the work by Eysteinn, 2008. Describe all details of the implementations. Compare with experimental results. There is a report on the experimental work, by Mohammad El-Alti et al. Preliminary files (will not be made available).
- Implement a mesh motion class for simulating the Vigor wave energy converter. This includes mesh motion and free surface flow.
- Implement a mesh motion class for simulating whiplash motion and solution of the flow in a blood vane. Preliminary files. This project is already taken.
- Lagrangian Particle Tracking. Use the solidParticleCloud class, the dieselSpray class, and some files from Rasmus Hemph for particle interaction, to describe LPT in OpenFOAM and build your own specialized version.
- Fluid-Structure interaction. Describe the icoFsiFoam solver and set up test case(s). There is a test case available here, which works with OpenFOAM-1.4.1-dev. Just go to the 'fluid' directory and type: 'icoFsiFoam . . >& log&'. Search the Forum for other possible test cases, and see also the tutorials for icoStructFoam. Also some FSI slides.
- Implement an actuator disk that resembles the effect of a rotating geometry, such as a propeller or a rotatinh honeycomb (ercoftacConicalDiffuser). You can start looking at the 'fan' boundary condition. Ask me for a copy of this, this, this, this and this document, and this and this case. Also see John Bergström's PhD thesis.
- Imlement a new solidBody mesh motion class, provide an example and describe it in high detail. See interDyMFoam. Here is a whiskey glass example for 1.4.1-dev and 1.5-dev. If some of the dynamic mesh classes do not compile, please just comment them out for the moment.
- Implement a new boundary condition for dynamic meshes, where a patch is projected to some pre-defined surface. Provide examples, and describe in high detail. Test different mesh diffusion alternatives. See the work by Pirooz Moradnia 2007, and Eysteinn Helgasson 2008.
- Re-write my Fluent tutorials in MTF113 Heat Transfer for OpenFOAM, but more detailed. Note that there is a conjugate heat transfer tutorial in the development version at sourceForge:
Code:
OpenFOAM-1.4.1-dev/applications/solvers/conjugate/conjugateHeatFoam
Tutorial case:
OpenFOAM-1.4.1-dev/tutorials/conjugateHeatFoam/conjugateCavity +
heatedBlock
Literature
There is no requirement to buy any book. You have to find the information you need to solve your project and the tasks.
The C++ part of the course is based on C++ Direkt, by Jan Skansholm, Studentlitteratur, which is in Swedish. Any introductory C++ book should be fine. Anyone who is doing CFD is recommended to have the introductory book on CFD by Versteeg and Malalasekera. Another useful book is J.H. Ferziger and M. Peric Computational Methods for Fluid Dynamics 3rd ed. Springer 2002. There is also a lot to find on the Internet, for example:
More information
See the homepages of the course given 2007 and 2008 for more information. The course for 2009 will develop from the one given in 2008. You can also contact me at hani@chalmers.se.
Master Thesis propositions
The Dellenback OpenFOAM case-study (talk to Håkan)
The ERCOFTAC centrifugal pump (no longer available)
Whiplash with FEM and CFD (OpenFOAM) (no longer available)
Fluid-structure interaction in stent grafts
Vigor - wave power
Husqvarna_AB (no longer available)
Master Theses at Volvo Technology.