Difference between revisions of "Programming"

From OpenFOAM Wiki
Jump to navigation Jump to search
 
(18 intermediate revisions by 3 users not shown)
Line 6: Line 6:
  
 
'''Complete Programming Courses'''
 
'''Complete Programming Courses'''
* [https://wiki.openfoam.com/Programming_by_Kenneth_Hoste_and_Hrvoje_Jasak Hoste and Jasak video series] on programming.
+
 
* [https://wiki.openfoam.com/Programming_by_Hakan_Nilsson Nilsson's collection] of programming tutorials.
 
* [https://wiki.openfoam.com/Tips_by_Gerhard_Holzinger Tips by Gerhard Holzinger] Source Code and Programming (Chapter IX).
 
  
 
'''C++'''
 
'''C++'''
* [https://wiki.openfoam.com/Basics_of_C%2B%2B_by_Hakan_Nilsson Basics of C++] by Hakan Nilsson.
+
 
 +
 
 +
'''Complete model implementation'''
 +
 
 +
 
  
 
'''Intro: Compilation and Testing'''
 
'''Intro: Compilation and Testing'''
* [https://wiki.openfoam.com/Programming_by_Robert_Lee Lee's compact introduction] to compilation using existing code.
+
* [https://wiki.openfoam.com/Programming_by_Ferras,_Fernandes_and_Nobrega Ferras et al.] describe solver implementation, compilation, and testing.
* The [https://wiki.openfoam.com/Programming_by_Stefan_Radl tutorials by Stefan Radl] provide details on compilation and basic testing of new code.
 
* [https://wiki.openfoam.com/Programming_by_Ferras,_Fernandes_and_Nobrega Ferras et al.] describe solver implementatiob, compilation, and testing.
 
  
 
'''Implementation of Initial and Boundary Conditions'''
 
'''Implementation of Initial and Boundary Conditions'''
* [https://wiki.openfoam.com/Programming1 Guerrero] describes how to implement and test BCs using codeStream.
+
 
* [https://wiki.openfoam.com/Programming2 Guerrero] describes field initialization using codeStream.
 
* This [https://wiki.openfoam.com/Programming_boundary_conditions_by_Gavin_Tabor tutorial by Gavin Tabor] covers the implementation of custom boundary conditions.
 
  
 
'''Customizing solvers'''
 
'''Customizing solvers'''
 
* [https://wiki.openfoam.com/Programming_by_Henrik_Rusche Rusche's introduction to programming] details on version control with git, the build system and customizing solvers.
 
* [https://wiki.openfoam.com/Programming_by_Henrik_Rusche Rusche's introduction to programming] details on version control with git, the build system and customizing solvers.
* [https://wiki.openfoam.com/Programming_by_Alexander_Vakhrushev Vakhrushev's slides] illustrate how to modify a solver.
 
* [https://wiki.openfoam.com/Thermodynamic_class_by_Isabelle_Choquet Isabelle Choquet and Håkan Nilsson] teaches how to implement new thermophysical model and additional transport equation.
 
* Gavin Tabor describes in [https://wiki.openfoam.com/Simulating_chocolate_by_Gavin_Tabor this tutorial] how to customize solver and implement a new constitutive model.
 
* [https://wiki.openfoam.com/Code_development_by_Tobias_Holzmann Holzmann] shows how to systematically build, analyze and build your own code in this tutorial.
 
  
 
'''Debugging'''
 
'''Debugging'''
 
* See the list of tools by [https://wiki.openfoam.com/Debugging_by_Stefan_Radl Stefan Radl] to get an overview of debugging tools.
 
* See the list of tools by [https://wiki.openfoam.com/Debugging_by_Stefan_Radl Stefan Radl] to get an overview of debugging tools.
 +
 +
Check the [https://wiki.openfoam.com/Programming_archive '''Archive'''] section for more (however not fully up to date) programming tutorials.
 +
  
 
=Further reading=
 
=Further reading=
 
* Håkan Nilsson's collection [http://www.tfd.chalmers.se/~hani/kurser/OS_CFD/] comprises several reports that cover programming topics.
 
* Håkan Nilsson's collection [http://www.tfd.chalmers.se/~hani/kurser/OS_CFD/] comprises several reports that cover programming topics.

Latest revision as of 09:09, 20 March 2024

One of the most relevant capabilities of OpenFOAM the possibility of creating new solvers and features, required for specific needs, which are done with Programming. You can find below a list of tutorials that covers Programming in OpenFOAM.

Go back to Collection by topic.

Programming

Complete Programming Courses


C++


Complete model implementation


Intro: Compilation and Testing

  • Ferras et al. describe solver implementation, compilation, and testing.

Implementation of Initial and Boundary Conditions


Customizing solvers

Debugging

  • See the list of tools by Stefan Radl to get an overview of debugging tools.

Check the Archive section for more (however not fully up to date) programming tutorials.


Further reading

  • Håkan Nilsson's collection [1] comprises several reports that cover programming topics.