MATH-611 / 4 crédits

Enseignant: Anciaux Guillaume

Langue: Anglais

Remark: Next time: Fall 2024


Frequency

Every year

Summary

The students will acquire a solid knowledge on the processes necessary to design, write and use scientific software. Software design techniques will be used to program a multi-usage particles code, aiming at providing the link between algorithmic/complexity, optimization and program designs.

Content

Object Oriented Paradigm

C/C++ and Python programming (class, operator, template, design patterns, STL)

Programming techniques, code factorization

Pointers, memory management, data structures

Linear system solving (Eigen library)

C++/Python coupling (pybind)

Post-treatment: Paraview, numpy/scipy, matplotlib

 

Classical problems: series calculations, solar system and many-body calculation, sparse linear algebra.

 

Keywords

programming, scientific, code design, algorithm, optimization, analysis

Learning Prerequisites

Required courses

Basis in programming languages (C/Fortran)

Basic Linux knowledge is required

Important concepts to start the course

A Linux laptop is required for this class

Expected student activities

Exam: 4 evaluated homeworks

Resources

Moodle Link

Dans les plans d'études

  • Nombre de places: 40
  • Forme de l'examen: Rapport de TP (session libre)
  • Matière examinée: Scientific programming for Engineers
  • Cours: 18 Heure(s)
  • TP: 38 Heure(s)
  • Type: obligatoire
  • Nombre de places: 40
  • Forme de l'examen: Rapport de TP (session libre)
  • Matière examinée: Scientific programming for Engineers
  • Cours: 18 Heure(s)
  • TP: 38 Heure(s)
  • Type: optionnel
  • Nombre de places: 40
  • Forme de l'examen: Rapport de TP (session libre)
  • Matière examinée: Scientific programming for Engineers
  • Cours: 18 Heure(s)
  • TP: 38 Heure(s)
  • Type: optionnel

Semaine de référence

Cours connexes

Résultats de graphsearch.epfl.ch.