Advancing Teaching and Research with Python

Size: px
Start display at page:

Download "Advancing Teaching and Research with Python"

Transcription

1 Advancing Teaching and Research with Python Hans Petter Langtangen Center for Biomedical Computing (CBC) at Simula Research Laboratory Dept. of Informatics, University of Oslo EuroSciPy 2010

2 Teaching Research Discussion

3 1 Teaching 2 Research 3 Discussion

4 How modern is science education, really? Observations: Strong focus on IT in education: mostly for communication but minor impact on the scientific content of courses Mismatch between computers in research/industry and education! Our goals: Use numerics, programming and simulation from day 1 Create the future science courses

5 How modern is science education, really? Observations: Strong focus on IT in education: mostly for communication but minor impact on the scientific content of courses Mismatch between computers in research/industry and education! Our goals: Use numerics, programming and simulation from day 1 Create the future science courses

6 How modern is science education, really? Observations: Strong focus on IT in education: mostly for communication but minor impact on the scientific content of courses Mismatch between computers in research/industry and education! Our goals: Use numerics, programming and simulation from day 1 Create the future science courses

7 We are implementing a major reform in science education Where: University of Oslo First semester: Classical calculus Numerical calculus Scientific computer programming Second semester: Vector calculus w/numerics Linear algebra w/numerics Mechanics w/simulation Third semester: More calculus algebra w/numerics Science courses w/simulation

8 We are implementing a major reform in science education Where: University of Oslo First semester: Classical calculus Numerical calculus Scientific computer programming Second semester: Vector calculus w/numerics Linear algebra w/numerics Mechanics w/simulation Third semester: More calculus algebra w/numerics Science courses w/simulation

9 We are implementing a major reform in science education Where: University of Oslo First semester: Classical calculus Numerical calculus Scientific computer programming Second semester: Vector calculus w/numerics Linear algebra w/numerics Mechanics w/simulation Third semester: More calculus algebra w/numerics Science courses w/simulation

10 We are implementing a major reform in science education Where: University of Oslo First semester: Classical calculus Numerical calculus Scientific computer programming Second semester: Vector calculus w/numerics Linear algebra w/numerics Mechanics w/simulation Third semester: More calculus algebra w/numerics Science courses w/simulation

11 We are implementing a major reform in science education Where: University of Oslo First semester: Classical calculus Numerical calculus Scientific computer programming Second semester: Vector calculus w/numerics Linear algebra w/numerics Mechanics w/simulation Third semester: More calculus algebra w/numerics Science courses w/simulation

12 We are implementing a major reform in science education Where: University of Oslo First semester: Classical calculus Numerical calculus Scientific computer programming Second semester: Vector calculus w/numerics Linear algebra w/numerics Mechanics w/simulation Third semester: More calculus algebra w/numerics Science courses w/simulation

13 Why Python and not Matlab, C++ or Java?

14 Why Python and not Matlab, C++ or Java?

15 Popularity of major programming languages 20 Ratings in percent (TIOBE Index, April 2010) C Java C++ PHP VB C# Python Perl JavaScript

16 Python is a convenient programming environment

17 Python is a convenient programming environment

18 Python is a convenient programming environment

19 Python is a convenient programming environment

20 Python is a convenient programming environment

21 Python is a convenient programming environment

22 Python is a convenient programming environment

23 Python is a convenient programming environment

24 A new introductory programming course for science What we teach: Python programming: Matlab-style numerical programming Java/C++-style programming with classes Examples on basic numerical methods (differentiation, integration, ODEs) Examples on applications to physics, finance, biology,...

25 A new introductory programming course for science Course material: Book written for the course Slides for the lectures A large collection of exercises (most with solutions) Multiple choice tests A Python-based computing platform

26 How far do we go in this course? The final compulsory project: mü +f( u)+s(u) = F(t), u(0) = U 0, u(0) = V 0 For example, pendulum with air resistance: mü C D A u u +mg sin(u) = F(t), u(0) = U 0, u(0) = 0 Tasks: Matlab-style implementation Visualization: u(t), u(t), u vs. u Class-style implementation (class Problem, Solver, Viz) Class hierarchy for choices of f, s and F e.g., f( u) = 0, or β u, or 1 2 C D A u u

27 Experience with Python for teaching Ideal choice as first computing language Natural transition from Matlab-style to Java/C++-style Compared to Matlab: improved program structure, abstraction, code reuse, mathematical understanding Excellent student critiques

28 Programming is understanding Problem: make a new data type for polynomials >>> p1 = Polynomial({0: 1, 1: -1}) # 1 - x >>> p2 = Polynomial({1: 1, 4: -6, 5: -1}) # x - 6x^4 - x^5 >>> p3 = p1 + p2 >>> p4 = p1*p2 >>> print p4 x - x^2-6x^4 + 5x^5 + x^6 The add function is given Task: implement the multiply function ( ) M N c i x i d j x j i=0 j=0 Recall: everybody is drilled in polynomial multiplication, (1 x)(1 6x 4 x 5 ) =...

29 Programming is understanding Problem: make a new data type for polynomials >>> p1 = Polynomial({0: 1, 1: -1}) # 1 - x >>> p2 = Polynomial({1: 1, 4: -6, 5: -1}) # x - 6x^4 - x^5 >>> p3 = p1 + p2 >>> p4 = p1*p2 >>> print p4 x - x^2-6x^4 + 5x^5 + x^6 The add function is given Task: implement the multiply function ( ) M N c i x i d j x j i=0 j=0 Recall: everybody is drilled in polynomial multiplication, (1 x)(1 6x 4 x 5 ) =...

30 Programming is understanding Problem: make a new data type for polynomials >>> p1 = Polynomial({0: 1, 1: -1}) # 1 - x >>> p2 = Polynomial({1: 1, 4: -6, 5: -1}) # x - 6x^4 - x^5 >>> p3 = p1 + p2 >>> p4 = p1*p2 >>> print p4 x - x^2-6x^4 + 5x^5 + x^6 The add function is given Task: implement the multiply function ( ) M N c i x i d j x j i=0 j=0 Recall: everybody is drilled in polynomial multiplication, (1 x)(1 6x 4 x 5 ) =...

31 1 Teaching 2 Research 3 Discussion

32 Python + compiled loops = high-performance computing 2 u = (k(x,y) u) with finite differences t2 Implementation arith. harm. Pure Fortran scipy.weave Instant f2py Cython Vectorized code (slices) Plain Python

33 Some scientific software projects for large-scale simulation General FE PDE solution: FEniCS, General FE PDE solution: PyADH, General FV PDE solution: FiPy, Discontinuous Galerkin FE PDE solver: hedge, mathema.tician.de/software/hedge Quantum mechanics: GPAW, wiki.fysik.dtu.dk/gpaw N-body dynamics: pnbody, obswww.unige.ch/ revaz/pnbody

34 FEniCS: write simulator in Python, autogenerate C++ Specify equation/model as a(u,v) = L(v) in Python Running this Python code generates specialized C++ code, linked to general C++ libraries Result: specialized application Generality + efficiency!

35 FEniCS example: The Poisson equation 2 u = f Variational forms: Implementation: a(u,v) = L(v) a(v,u) = v udx Ω L(v) = vf dx V = FunctionSpace(mesh, Lagrange, 1) v = TestFunction(V) u = TrialFunction(V) f = Expression( sin(x[0])*cos(x[1]) ) a = inner(grad(v), grad(u))*dx L = v*f*dx u = VariationalProblem(a, L).solve() Ω

36 FEniCS example: The Poisson equation 2 u = f Variational forms: Implementation: a(u,v) = L(v) a(v,u) = v udx Ω L(v) = vf dx V = FunctionSpace(mesh, Lagrange, 1) v = TestFunction(V) u = TrialFunction(V) f = Expression( sin(x[0])*cos(x[1]) ) a = inner(grad(v), grad(u))*dx L = v*f*dx u = VariationalProblem(a, L).solve() Ω

37 FEniCS example: The Poisson equation 2 u = f Variational forms: Implementation: a(u,v) = L(v) a(v,u) = v udx Ω L(v) = vf dx V = FunctionSpace(mesh, Lagrange, 1) v = TestFunction(V) u = TrialFunction(V) f = Expression( sin(x[0])*cos(x[1]) ) a = inner(grad(v), grad(u))*dx L = v*f*dx u = VariationalProblem(a, L).solve() Ω

38 Example of an autogenerated element matrix routine

39 FEniCS example: Stokes problem (1) Differential equations: 2 u + p = f u = 0 Variational forms: a((v,q),(u,p)) = L((v,q)) where a((v,q),(u,p)) = v u v p +q udx Ω L((v,q)) = v f dx Ω

40 FEniCS example: Stokes problem (2) Implementation: V = VectorFunctionSpace(mesh, "Lagrange", 2) Q = FunctionSpace(mesh, "Lagrange", 1) W = V * Q # Taylor-Hood mixed finite element v, q = TestFunctions(W) u, p = TrialFunctions(W) f = Constant((0, 0)) a = (inner(grad(v), grad(u)) - div(v)*p + q*div(u))*dx L = inner(v, f)*dx

41 Comparing math and code for the Stokes problem Key mathematical formulas: a((v,q),(u,p)) = L((v,q)) = Corresponding code: Ω Ω v u v p +q udx v f dx a = (inner(grad(v), grad(u)) - div(v)*p + q*div(u))*dx L = inner(v, f)*dx

42 RANS turbulence modeling Models: Navier-Stokes LES One-equation k-ǫ, k-ω, v 2 -f Reynolds stress models Structure-based turbulence Flexibility: Compare models Hand-tuned linearization Coupled vs. segregated solution Picard vs. Newton iteration

43 Examples on RANS equations u t +u u = 1 p +ν 2 u+f u u u = 0 u u = 2 k2 1 ǫ 2 ( u+ ut )+ 2 3 ki k t +u k = (ν k k)+p k ǫ D, ǫ t +u ǫ = (ν ǫ ǫ)+(c ǫ1 P k C ǫ2 f 2 ǫ) ǫ k +E ǫ = 2νs : s, s = 1 2 ( u +( u ) T ) ν k = ν + ν T σ k...

44 Solving PDEs: equation and code Variational form: Code: F k = (u k,v k )+((ν k ) k, v k )+((P k ),v k ) (ǫ k k,v k ) (D,v k ) F_k = - inner(dot(u, grad(k)), v_k)*dx \ - nu_k_*inner(grad(k), grad(v_k))*dx \ + P_k_*v_k*dx \ - e_*k/k_*v_k*dx - D_*v_k*dx

45 The Python part of FEniCS is growing

46 mpi4py can parallelize Python codes High-level interface to MPI: Arbitrary Python objects can be sent via MPI Efficient treatment of arrays Can parallelize black-box legacy codes via domain decomposition Older alternatives: pypar, PyMPI

47 Parallelizing legacy codes (1) We had an old F77 code for solving the Boussinesq wave equations for tsunami simulation: η t + q = 0 ( 1 η q = (H +αη) φ+ǫh 6 t 1 3 φ t + α 2 φ φ+η ǫ ( 2 H H φ t ) H φ H ) + ǫ 6 H2 2 φ t = 0 The code applies sophisticated numerics in tricky code that would be hard to parallelize

48 Parallelizing legacy codes (2) Ideas: Apply overlapping domain decomposition for parallelizing the mathematical problem - code that algorithm in Python Let Python call the old F77 code as subdomain solver, fed with right boundary conditions No modifications of the old F77 code All parallelization outside, in Python Speedup results: # cores wall time speedup time steps, cells python 2.6, numpy 1.3, pypar 2.1.4

49 Parallelizing legacy codes (2) Ideas: Apply overlapping domain decomposition for parallelizing the mathematical problem - code that algorithm in Python Let Python call the old F77 code as subdomain solver, fed with right boundary conditions No modifications of the old F77 code All parallelization outside, in Python Speedup results: # cores wall time speedup time steps, cells python 2.6, numpy 1.3, pypar 2.1.4

50 Parallelizing legacy codes (2) Ideas: Apply overlapping domain decomposition for parallelizing the mathematical problem - code that algorithm in Python Let Python call the old F77 code as subdomain solver, fed with right boundary conditions No modifications of the old F77 code All parallelization outside, in Python Speedup results: # cores wall time speedup time steps, cells python 2.6, numpy 1.3, pypar 2.1.4

51 1 Teaching 2 Research 3 Discussion

52 Installing Python and all its modules can be a nightmare Manual install: jungle of packages, platforms, OS versions... Enthought distribution pythonxy.com (Win) Sage Ubuntu/Debian: apt-get install... Run Ubuntu dual boot or VirtualBox

53 Installing Python and all its modules can be a nightmare Manual install: jungle of packages, platforms, OS versions... Enthought distribution pythonxy.com (Win) Sage Ubuntu/Debian: apt-get install... Run Ubuntu dual boot or VirtualBox

54 Installing Python and all its modules can be a nightmare Manual install: jungle of packages, platforms, OS versions... Enthought distribution pythonxy.com (Win) Sage Ubuntu/Debian: apt-get install... Run Ubuntu dual boot or VirtualBox

55 Python has a potentially very clean syntax for math r S k = νexp ( C 2 ) 2 σ 3/2 sin(kx) S_k = self.nu*np.exp(-self.parameters[ C_2 ] \ *(pow(self.radius,2)/self.parameters[ sigma ]**(3.0/2.0))) \ *np.sin(self.parameters[ wavenumber ]*x) S_k = nu*exp(-c_2*r**2/sigma**(3./2))*sin(k*x) Same variable names in code as in mathematics Introduce local variables, before formulas, to strip off self, dicts, etc. for name in self.parameters: exec(name + = + str(self.parameters[name])) The from module import * import is not that evil?

56 Python has a potentially very clean syntax for math r S k = νexp ( C 2 ) 2 σ 3/2 sin(kx) S_k = self.nu*np.exp(-self.parameters[ C_2 ] \ *(pow(self.radius,2)/self.parameters[ sigma ]**(3.0/2.0))) \ *np.sin(self.parameters[ wavenumber ]*x) S_k = nu*exp(-c_2*r**2/sigma**(3./2))*sin(k*x) Same variable names in code as in mathematics Introduce local variables, before formulas, to strip off self, dicts, etc. for name in self.parameters: exec(name + = + str(self.parameters[name])) The from module import * import is not that evil?

57 Python has a potentially very clean syntax for math r S k = νexp ( C 2 ) 2 σ 3/2 sin(kx) S_k = self.nu*np.exp(-self.parameters[ C_2 ] \ *(pow(self.radius,2)/self.parameters[ sigma ]**(3.0/2.0))) \ *np.sin(self.parameters[ wavenumber ]*x) S_k = nu*exp(-c_2*r**2/sigma**(3./2))*sin(k*x) Same variable names in code as in mathematics Introduce local variables, before formulas, to strip off self, dicts, etc. for name in self.parameters: exec(name + = + str(self.parameters[name])) The from module import * import is not that evil?

58 Python has a potentially very clean syntax for math r S k = νexp ( C 2 ) 2 σ 3/2 sin(kx) S_k = self.nu*np.exp(-self.parameters[ C_2 ] \ *(pow(self.radius,2)/self.parameters[ sigma ]**(3.0/2.0))) \ *np.sin(self.parameters[ wavenumber ]*x) S_k = nu*exp(-c_2*r**2/sigma**(3./2))*sin(k*x) Same variable names in code as in mathematics Introduce local variables, before formulas, to strip off self, dicts, etc. for name in self.parameters: exec(name + = + str(self.parameters[name])) The from module import * import is not that evil?

59 Python has a potentially very clean syntax for math r S k = νexp ( C 2 ) 2 σ 3/2 sin(kx) S_k = self.nu*np.exp(-self.parameters[ C_2 ] \ *(pow(self.radius,2)/self.parameters[ sigma ]**(3.0/2.0))) \ *np.sin(self.parameters[ wavenumber ]*x) S_k = nu*exp(-c_2*r**2/sigma**(3./2))*sin(k*x) Same variable names in code as in mathematics Introduce local variables, before formulas, to strip off self, dicts, etc. for name in self.parameters: exec(name + = + str(self.parameters[name])) The from module import * import is not that evil?

60 How can we make Python take off in science? Make better documentation and many more examples (numpy, scipy, f2py, Cython,...) Make all Matlab commands available Support unified interfaces to ODE solvers, linear algebra, optimization, random numbers, visualization, etc. Point to real-world high-performance applications Help people to get started

61 Quick summary of what I have covered... Python for teaching is excellent! Try it! Python for PDE solution provides a new generation of simulation software Still some non-resolved issues...

Flexible Specification of Large Systems of Nonlinear PDEs

Flexible Specification of Large Systems of Nonlinear PDEs Flexible Specification of Large Systems of Nonlinear PDEs Hans Petter Langtangen 1,2 Mikael Mortensen 3,1 Center for Biomedical Computing Simula Research Laboratory 1 Dept. of Informatics, University of

More information

The FEniCS Project Philosophy, current status and future plans

The FEniCS Project Philosophy, current status and future plans The FEniCS Project Philosophy, current status and future plans Anders Logg logg@simula.no Simula Research Laboratory FEniCS 06 in Delft, November 8-9 2006 Outline Philosophy Recent updates Future plans

More information

The FEniCS Project. Anders Logg. Simula Research Laboratory / University of Oslo. Det Norske Veritas

The FEniCS Project. Anders Logg. Simula Research Laboratory / University of Oslo. Det Norske Veritas The FEniCS Project Anders Logg Simula Research Laboratory / University of Oslo Det Norske Veritas 2011 05 11 The FEniCS Project Free Software for Automated Scientific Computing C++/Python library Initiated

More information

Finite Element Code Generation: Simplicity, Generality, Efficiency

Finite Element Code Generation: Simplicity, Generality, Efficiency : Simplicity, Generality, Efficiency Simula Research Laboratory SCSE 07 Uppsala, August 15 2007 Acknowledgments: Martin Sandve Alnæs, Johan Hoffman, Johan Jansson, Claes Johnson, Robert C. Kirby, Matthew

More information

FEniCS Course. Lecture 1: Introduction to FEniCS. Contributors Anders Logg André Massing

FEniCS Course. Lecture 1: Introduction to FEniCS. Contributors Anders Logg André Massing FEniCS Course Lecture 1: Introduction to FEniCS Contributors Anders Logg André Massing 1 / 30 What is FEniCS? 2 / 30 FEniCS is an automated programming environment for differential equations C++/Python

More information

FEniCS Course. Lecture 1: Introduction to FEniCS. Contributors Anders Logg André Massing

FEniCS Course. Lecture 1: Introduction to FEniCS. Contributors Anders Logg André Massing FEniCS Course Lecture 1: Introduction to FEniCS Contributors Anders Logg André Massing 1 / 15 What is FEniCS? 2 / 15 FEniCS is an automated programming environment for differential equations C++/Python

More information

Numerical methods for the Navier- Stokes equations

Numerical methods for the Navier- Stokes equations Numerical methods for the Navier- Stokes equations Hans Petter Langtangen 1,2 1 Center for Biomedical Computing, Simula Research Laboratory 2 Department of Informatics, University of Oslo Dec 6, 2012 Note:

More information

Modeling and Experimentation: Compound Pendulum

Modeling and Experimentation: Compound Pendulum Modeling and Experimentation: Compound Pendulum Prof. R.G. Longoria Department of Mechanical Engineering The University of Texas at Austin Fall 2014 Overview This lab focuses on developing a mathematical

More information

Introduction to Numerical Methods for Variational Problems

Introduction to Numerical Methods for Variational Problems Introduction to Numerical Methods for Variational Problems Hans Petter Langtangen 1,2 Kent-Andre Mardal 3,1 1 Center for Biomedical Computing, Simula Research Laboratory 2 Department of Informatics, University

More information

Homework 4 in 5C1212; Part A: Incompressible Navier- Stokes, Finite Volume Methods

Homework 4 in 5C1212; Part A: Incompressible Navier- Stokes, Finite Volume Methods Homework 4 in 5C11; Part A: Incompressible Navier- Stokes, Finite Volume Methods Consider the incompressible Navier Stokes in two dimensions u x + v y = 0 u t + (u ) x + (uv) y + p x = 1 Re u + f (1) v

More information

(Multiscale) Modelling With SfePy

(Multiscale) Modelling With SfePy (Multiscale) Modelling With SfePy Random Remarks... Robert Cimrman & Eduard Rohan & others Department of Mechanics & New Technologies Research Centre University of West Bohemia Plzeň, Czech Republic PANM

More information

The FEniCS Project. Anders Logg. Simula Research Laboratory University of Oslo NOTUR / 34

The FEniCS Project. Anders Logg. Simula Research Laboratory University of Oslo NOTUR / 34 The FEniCS Project Anders Logg Simula Research Laboratory University of Oslo NOTUR 2011 2011 05 23 1 / 34 What is FEniCS? 2 / 34 FEniCS is an automated programming environment for differential equations

More information

Finite Difference Computing with PDEs - A Modern Software Approach

Finite Difference Computing with PDEs - A Modern Software Approach iv Oct 1, 016 Finite Difference Computing with PDEs - A Modern Software Approach Hans Petter Langtangen 1, Svein Linge 3,1 1 Center for Biomedical Computing, Simula Research Laboratory Department of Informatics,

More information

Introduction to Numerical Methods for Variational Problems

Introduction to Numerical Methods for Variational Problems Introduction to Numerical Methods for Variational Problems Hans Petter Langtangen 1,2 Kent-Andre Mardal 3,1 1 Center for Biomedical Computing, Simula Research Laboratory 2 Department of Informatics, University

More information

I. Numerical Computing

I. Numerical Computing I. Numerical Computing A. Lectures 1-3: Foundations of Numerical Computing Lecture 1 Intro to numerical computing Understand difference and pros/cons of analytical versus numerical solutions Lecture 2

More information

FEniCS, part IV: Generating a model

FEniCS, part IV: Generating a model FEniCS, part IV: Generating a model M. M. Sussman sussmanm@math.pitt.edu Office Hours: 11:10AM-12:10PM, Thack 622 May 12 June 19, 2014 1 / 54 Topics Vortex shedding Background Implementation 2 / 54 Topics

More information

Solving PDEs in Minutes - The FEniCS Tutorial Volume I

Solving PDEs in Minutes - The FEniCS Tutorial Volume I Hans Petter Langtangen, Anders Logg Solving PDEs in Minutes - The FEniCS Tutorial Volume I Sep 19, 2016 Springer Email: hpl@simula.no. Center for Biomedical Computing, Simula Research Laboratory and Department

More information

Discretization of PDEs and Tools for the Parallel Solution of the Resulting Systems

Discretization of PDEs and Tools for the Parallel Solution of the Resulting Systems Discretization of PDEs and Tools for the Parallel Solution of the Resulting Systems Stan Tomov Innovative Computing Laboratory Computer Science Department The University of Tennessee Wednesday April 4,

More information

von Kàrmàn vortex street FEniCS, part IV: Generating a model Clouds Discussed in FEniCS book Fluid flow past an obstacle is not steady

von Kàrmàn vortex street FEniCS, part IV: Generating a model Clouds Discussed in FEniCS book Fluid flow past an obstacle is not steady von Kàrmàn vortex street FEniCS, part IV: Generating a model Fluid flow past an obstacle is not steady M. M. Sussman sussmanm@math.pitt.edu Office Hours: 11:10AM-12:10PM, Thack 622 May 12 June 19, 2014

More information

Notater: INF3331. Veronika Heimsbakk December 4, Introduction 3

Notater: INF3331. Veronika Heimsbakk December 4, Introduction 3 Notater: INF3331 Veronika Heimsbakk veronahe@student.matnat.uio.no December 4, 2013 Contents 1 Introduction 3 2 Bash 3 2.1 Variables.............................. 3 2.2 Loops...............................

More information

Solving an elasto-plastic model using DOLFIN

Solving an elasto-plastic model using DOLFIN Solving an elasto-plastic model using DOLFIN TTI 2005 Johan Jansson johanjan@math.chalmers.se Chalmers University of Technology Solving an elasto-plastic model using DOLFIN p. Overview Motivation Previous

More information

A FEniCS Tutorial (November 16, 2009)

A FEniCS Tutorial (November 16, 2009) A FEniCS Tutorial (November 16, 2009) H. P. Langtangen 1,2 1 Center for Biomedical Computing, Simula Research Laboratory 2 Department of Informatics, University of Oslo This document is in a preliminary

More information

Module 5 : Linear and Quadratic Approximations, Error Estimates, Taylor's Theorem, Newton and Picard Methods

Module 5 : Linear and Quadratic Approximations, Error Estimates, Taylor's Theorem, Newton and Picard Methods Module 5 : Linear and Quadratic Approximations, Error Estimates, Taylor's Theorem, Newton and Picard Methods Lecture 14 : Taylor's Theorem [Section 141] Objectives In this section you will learn the following

More information

Implementing a k-ε Turbulence Model in the FEniCS Finite Element Programming Environment

Implementing a k-ε Turbulence Model in the FEniCS Finite Element Programming Environment Implementing a k-ε urbulence Model in the FEniCS Finite Element Programming Environment Kristian Valen-Sendstad 1,3 1 Simula School of Research and Innovation e mail: kvs@simula.no Mikael Mortensen 2,

More information

GETTING STARTED WITH FENICS

GETTING STARTED WITH FENICS GETTING STARTED WITH FENICS DOUGLAS N. ARNOLD 1. A first program in FEniCS 1.1. The boundary value problem. As a first problem we consider the Neumann boundary value problem: (1) u + u = f in, u = 0 on,

More information

Finite Difference Computing with Exponential Decay Models

Finite Difference Computing with Exponential Decay Models Finite Difference Computing with Exponential Decay Models Hans Petter Langtangen 1,2 1 Center for Biomedical Computing, Simula Research Laboratory 2 Department of Informatics, University of Oslo This text

More information

Finite Elements. Colin Cotter. January 15, Colin Cotter FEM

Finite Elements. Colin Cotter. January 15, Colin Cotter FEM Finite Elements January 15, 2018 Why Can solve PDEs on complicated domains. Have flexibility to increase order of accuracy and match the numerics to the physics. has an elegant mathematical formulation

More information

Expressive Environments and Code Generation for High Performance Computing

Expressive Environments and Code Generation for High Performance Computing Expressive Environments and Code Generation for High Performance Computing Garth N. Wells University of Cambridge SIAM Parallel Processing, 20 February 2014 Collaborators Martin Alnæs, Johan Hake, Richard

More information

Python & Numpy A tutorial

Python & Numpy A tutorial Python & Numpy A tutorial Devert Alexandre School of Software Engineering of USTC 13 February 2012 Slide 1/38 Table of Contents 1 Why Python & Numpy 2 First steps with Python 3 Fun with lists 4 Quick tour

More information

Algorithms for Uncertainty Quantification

Algorithms for Uncertainty Quantification Technische Universität München SS 2017 Lehrstuhl für Informatik V Dr. Tobias Neckel M. Sc. Ionuț Farcaș April 26, 2017 Algorithms for Uncertainty Quantification Tutorial 1: Python overview In this worksheet,

More information

Scripting Languages Fast development, extensible programs

Scripting Languages Fast development, extensible programs Scripting Languages Fast development, extensible programs Devert Alexandre School of Software Engineering of USTC November 30, 2012 Slide 1/60 Table of Contents 1 Introduction 2 Dynamic languages A Python

More information

FEniCS Course. Lecture 0: Introduction to FEM. Contributors Anders Logg, Kent-Andre Mardal

FEniCS Course. Lecture 0: Introduction to FEM. Contributors Anders Logg, Kent-Andre Mardal FEniCS Course Lecture 0: Introduction to FEM Contributors Anders Logg, Kent-Andre Mardal 1 / 46 What is FEM? The finite element method is a framework and a recipe for discretization of mathematical problems

More information

Physics 584 Computational Methods

Physics 584 Computational Methods Physics 584 Computational Methods Introduction to Matlab and Numerical Solutions to Ordinary Differential Equations Ryan Ogliore April 18 th, 2016 Lecture Outline Introduction to Matlab Numerical Solutions

More information

Linear Algebra. PHY 604: Computational Methods in Physics and Astrophysics II

Linear Algebra. PHY 604: Computational Methods in Physics and Astrophysics II Linear Algebra Numerical Linear Algebra We've now seen several places where solving linear systems comes into play Implicit ODE integration Cubic spline interpolation We'll see many more, including Solving

More information

Computational Methods for Nonlinear Systems

Computational Methods for Nonlinear Systems Computational Methods for Nonlinear Systems Cornell Physics 682 / CIS 629 James P. Sethna Christopher R. Myers Computational Methods for Nonlinear Systems Graduate computational science laboratory course

More information

Fundamentals of Computational Science

Fundamentals of Computational Science Fundamentals of Computational Science Dr. Hyrum D. Carroll August 23, 2016 Introductions Each student: Name Undergraduate school & major Masters & major Previous research (if any) Why Computational Science

More information

Solving Partial Differential Equations with Python - Tentative application to Rogue Waves

Solving Partial Differential Equations with Python - Tentative application to Rogue Waves Solving Partial Differential Equations with Python - Tentative application to Rogue Waves Sergio Manzetti 1,2 1. Institute for Cellular and Molecular Biology, Uppsala University, Uppsala, Sweden. 2. Fjordforsk

More information

Massively parallel electronic structure calculations with Python software. Jussi Enkovaara Software Engineering CSC the finnish IT center for science

Massively parallel electronic structure calculations with Python software. Jussi Enkovaara Software Engineering CSC the finnish IT center for science Massively parallel electronic structure calculations with Python software Jussi Enkovaara Software Engineering CSC the finnish IT center for science GPAW Software package for electronic structure calculations

More information

Time-dependent variational forms

Time-dependent variational forms Time-dependent variational forms Hans Petter Langtangen 1,2 1 Center for Biomedical Computing, Simula Research Laboratory 2 Department of Informatics, University of Oslo Oct 30, 2015 PRELIMINARY VERSION

More information

Study guide: Generalizations of exponential decay models

Study guide: Generalizations of exponential decay models Study guide: Generalizations of exponential decay models Hans Petter Langtangen 1,2 Center for Biomedical Computing, Simula Research Laboratory 1 Department of Informatics, University of Oslo 2 Sep 13,

More information

Study guide: Generalizations of exponential decay models. Extension to a variable coecient; Crank-Nicolson

Study guide: Generalizations of exponential decay models. Extension to a variable coecient; Crank-Nicolson Extension to a variable coecient; Forward and Backward Euler Study guide: Generalizations of exponential decay models Hans Petter Langtangen 1,2 Center for Biomedical Computing, Simula Research Laboratory

More information

Introduction to Python

Introduction to Python Introduction to Python Luis Pedro Coelho luis@luispedro.org @luispedrocoelho European Molecular Biology Laboratory Lisbon Machine Learning School 2015 Luis Pedro Coelho (@luispedrocoelho) Introduction

More information

Department of Chemical Engineering University of California, Santa Barbara Spring Exercise 2. Due: Thursday, 4/19/09

Department of Chemical Engineering University of California, Santa Barbara Spring Exercise 2. Due: Thursday, 4/19/09 Department of Chemical Engineering ChE 210D University of California, Santa Barbara Spring 2012 Exercise 2 Due: Thursday, 4/19/09 Objective: To learn how to compile Fortran libraries for Python, and to

More information

Applications of Wolfram Mathematica in the Theoretical Mechanics

Applications of Wolfram Mathematica in the Theoretical Mechanics WDS'12 Proceedings of Contributed Papers, Part III, 88 92, 2012. ISBN 978-80-7378-226-9 MATFYZPRESS Applications of Wolfram Mathematica in the Theoretical Mechanics R. Kusak Charles University in Prague,

More information

Discrete Projection Methods for Incompressible Fluid Flow Problems and Application to a Fluid-Structure Interaction

Discrete Projection Methods for Incompressible Fluid Flow Problems and Application to a Fluid-Structure Interaction Discrete Projection Methods for Incompressible Fluid Flow Problems and Application to a Fluid-Structure Interaction Problem Jörg-M. Sautter Mathematisches Institut, Universität Düsseldorf, Germany, sautter@am.uni-duesseldorf.de

More information

NUMERICAL INVESTIGATION OF BUOY- ANCY DRIVEN FLOWS IN TIGHT LATTICE FUEL BUNDLES

NUMERICAL INVESTIGATION OF BUOY- ANCY DRIVEN FLOWS IN TIGHT LATTICE FUEL BUNDLES Fifth FreeFem workshop on Generic Solver for PDEs: FreeFem++ and its applications NUMERICAL INVESTIGATION OF BUOY- ANCY DRIVEN FLOWS IN TIGHT LATTICE FUEL BUNDLES Paris, December 12 th, 2013 Giuseppe Pitton

More information

Finite Elements with Symbolic Computations and Code Generation

Finite Elements with Symbolic Computations and Code Generation Finite Elements with Symbolic Computations and Code Generation August 15, 2007 Outline We will focus on creating/assembling matrices based on FEM Manual implementation of the integrand/variational form

More information

Introduction to numerical computations on the GPU

Introduction to numerical computations on the GPU Introduction to numerical computations on the GPU Lucian Covaci http://lucian.covaci.org/cuda.pdf Tuesday 1 November 11 1 2 Outline: NVIDIA Tesla and Geforce video cards: architecture CUDA - C: programming

More information

Solving PDEs in Python The FEniCS Tutorial I

Solving PDEs in Python The FEniCS Tutorial I SIMULA SPRINGER BRIEFS ON COMPUTING 3 Hans Petter Langtangen Anders Logg Solving PDEs in Python The FEniCS Tutorial I Simula SpringerBriefs on Computing Volume 3 Editor-in-chief Aslak Tveito, Fornebu,

More information

Jointly Learning Python Programming and Analytic Geometry

Jointly Learning Python Programming and Analytic Geometry Jointly Learning Python Programming and Analytic Geometry Cristina-Maria Păcurar Abstract The paper presents an original Python-based application that outlines the advantages of combining some elementary

More information

Practical Bioinformatics

Practical Bioinformatics 4/24/2017 Resources Course website: http://histo.ucsf.edu/bms270/ Resources on the course website: Syllabus Papers and code (for downloading before class) Slides and transcripts (available after class)

More information

Practical Information

Practical Information MA2501 Numerical Methods Spring 2018 Norwegian University of Science and Technology Department of Mathematical Sciences Semester Project Practical Information This project counts for 30 % of the final

More information

Solving PDEs with freefem++

Solving PDEs with freefem++ Solving PDEs with freefem++ Tutorials at Basque Center BCA Olivier Pironneau 1 with Frederic Hecht, LJLL-University of Paris VI 1 March 13, 2011 Do not forget That everything about freefem++ is at www.freefem.org

More information

A Glimpse at Scipy FOSSEE. June Abstract This document shows a glimpse of the features of Scipy that will be explored during this course.

A Glimpse at Scipy FOSSEE. June Abstract This document shows a glimpse of the features of Scipy that will be explored during this course. A Glimpse at Scipy FOSSEE June 010 Abstract This document shows a glimpse of the features of Scipy that will be explored during this course. 1 Introduction SciPy is open-source software for mathematics,

More information

LECTURE # 0 BASIC NOTATIONS AND CONCEPTS IN THE THEORY OF PARTIAL DIFFERENTIAL EQUATIONS (PDES)

LECTURE # 0 BASIC NOTATIONS AND CONCEPTS IN THE THEORY OF PARTIAL DIFFERENTIAL EQUATIONS (PDES) LECTURE # 0 BASIC NOTATIONS AND CONCEPTS IN THE THEORY OF PARTIAL DIFFERENTIAL EQUATIONS (PDES) RAYTCHO LAZAROV 1 Notations and Basic Functional Spaces Scalar function in R d, d 1 will be denoted by u,

More information

TMA4220: Programming project - part 1

TMA4220: Programming project - part 1 TMA4220: Programming project - part 1 TMA4220 - Numerical solution of partial differential equations using the finite element method The programming project will be split into two parts. This is the first

More information

Numerical Solutions of Partial Differential Equations

Numerical Solutions of Partial Differential Equations Numerical Solutions of Partial Differential Equations Dr. Xiaozhou Li xiaozhouli@uestc.edu.cn School of Mathematical Sciences University of Electronic Science and Technology of China Introduction Overview

More information

MATH 829: Introduction to Data Mining and Analysis Linear Regression: old and new

MATH 829: Introduction to Data Mining and Analysis Linear Regression: old and new 1/15 MATH 829: Introduction to Data Mining and Analysis Linear Regression: old and new Dominique Guillot Departments of Mathematical Sciences University of Delaware February 10, 2016 Linear Regression:

More information

Automating the Finite Element Method

Automating the Finite Element Method Automating the Finite Element Method Anders Logg logg@tti-c.org Toyota Technological Institute at Chicago Johan Hoffman, Johan Jansson, Claes Johnson, Robert C. Kirby, Matthew Knepley, Ridgway Scott Simula

More information

An introduction to plotting data

An introduction to plotting data An introduction to plotting data Eric D. Black California Institute of Technology v2.0 1 Introduction Plotting data is one of the essential skills every scientist must have. We use it on a near-daily basis

More information

Chapter 0. Preliminaries. 0.1 Things you should already know

Chapter 0. Preliminaries. 0.1 Things you should already know Chapter 0 Preliminaries These notes cover the course MATH45061 (Continuum Mechanics) and are intended to supplement the lectures. The course does not follow any particular text, so you do not need to buy

More information

Introduction to numerical projects

Introduction to numerical projects Introduction to numerical projects Here follows a brief recipe and recommendation on how to write a report for each project. Give a short description of the nature of the problem and the eventual numerical

More information

NumPy 1.5. open source. Beginner's Guide. v g I. performance, Python based free open source NumPy. An action-packed guide for the easy-to-use, high

NumPy 1.5. open source. Beginner's Guide. v g I. performance, Python based free open source NumPy. An action-packed guide for the easy-to-use, high NumPy 1.5 Beginner's Guide An actionpacked guide for the easytouse, high performance, Python based free open source NumPy mathematical library using realworld examples Ivan Idris.; 'J 'A,, v g I open source

More information

FEniCS Course. Lecture 8: A posteriori error estimates and adaptivity. Contributors André Massing Marie Rognes

FEniCS Course. Lecture 8: A posteriori error estimates and adaptivity. Contributors André Massing Marie Rognes FEniCS Course Lecture 8: A posteriori error estimates and adaptivity Contributors André Massing Marie Rognes 1 / 24 A priori estimates If u H k+1 (Ω) and V h = P k (T h ) then u u h Ch k u Ω,k+1 u u h

More information

USE OF MATLAB TO UNDERSTAND BASIC MATHEMATICS

USE OF MATLAB TO UNDERSTAND BASIC MATHEMATICS USE OF MATLAB TO UNDERSTAND BASIC MATHEMATICS Sanjay Gupta P. G. Department of Mathematics, Dev Samaj College For Women, Punjab ( India ) ABSTRACT In this paper, we talk about the ways in which computer

More information

Fluid Mechanics Prof. S.K. Som Department of Mechanical Engineering Indian Institute of Technology, Kharagpur

Fluid Mechanics Prof. S.K. Som Department of Mechanical Engineering Indian Institute of Technology, Kharagpur Fluid Mechanics Prof. S.K. Som Department of Mechanical Engineering Indian Institute of Technology, Kharagpur Lecture - 49 Introduction to Turbulent Flow part -II Good morning I welcome you all to this

More information

On Schemes for Exponential Decay

On Schemes for Exponential Decay On Schemes for Exponential Decay Hans Petter Langtangen 1,2 Center for Biomedical Computing, Simula Research Laboratory 1 Department of Informatics, University of Oslo 2 Sep 24, 2015 1.0 0.8 numerical

More information

Computational Methods for Nonlinear Systems

Computational Methods for Nonlinear Systems Computational Methods for Nonlinear Systems Cornell Physics 682 / CIS 629 Chris Myers Computational Methods for Nonlinear Systems Graduate computational science laboratory course developed by Myers & Sethna

More information

The integrating factor method (Sect. 1.1)

The integrating factor method (Sect. 1.1) The integrating factor method (Sect. 1.1) Overview of differential equations. Linear Ordinary Differential Equations. The integrating factor method. Constant coefficients. The Initial Value Problem. Overview

More information

Application of Chimera Grids in Rotational Flow

Application of Chimera Grids in Rotational Flow CES Seminar Write-up Application of Chimera Grids in Rotational Flow Marc Schwalbach 292414 marc.schwalbach@rwth-aachen.de Supervisors: Dr. Anil Nemili & Emre Özkaya, M.Sc. MATHCCES RWTH Aachen University

More information

age for ^^Undergraduates Gregory V. Bard Providence, Rhode Island AMERICAN MATHEMATICAL SOCIETY

age for ^^Undergraduates Gregory V. Bard Providence, Rhode Island AMERICAN MATHEMATICAL SOCIETY age for ^^Undergraduates Gregory V. Bard AMERICAN MATHEMATICAL SOCIETY Providence, Rhode Island Contents Preface: How to Use This Book xv Acknowledgements xix Chapter 1. Welcome to Sage! 1 1.1. Using Sage

More information

A note on accurate and efficient higher order Galerkin time stepping schemes for the nonstationary Stokes equations

A note on accurate and efficient higher order Galerkin time stepping schemes for the nonstationary Stokes equations A note on accurate and efficient higher order Galerkin time stepping schemes for the nonstationary Stokes equations S. Hussain, F. Schieweck, S. Turek Abstract In this note, we extend our recent work for

More information

Shape Optimization Tutorial

Shape Optimization Tutorial Shape Optimization Tutorial By Stephan Schmidt Exercise 1. The first exercise is to familiarise with Python and FEniCS. We can use the built-in FEniCS tutorial to implement a small solver for the Laplacian

More information

Lecture 8: Fast Linear Solvers (Part 7)

Lecture 8: Fast Linear Solvers (Part 7) Lecture 8: Fast Linear Solvers (Part 7) 1 Modified Gram-Schmidt Process with Reorthogonalization Test Reorthogonalization If Av k 2 + δ v k+1 2 = Av k 2 to working precision. δ = 10 3 2 Householder Arnoldi

More information

IMPACTS OF SIGMA COORDINATES ON THE EULER AND NAVIER-STOKES EQUATIONS USING CONTINUOUS/DISCONTINUOUS GALERKIN METHODS

IMPACTS OF SIGMA COORDINATES ON THE EULER AND NAVIER-STOKES EQUATIONS USING CONTINUOUS/DISCONTINUOUS GALERKIN METHODS Approved for public release; distribution is unlimited IMPACTS OF SIGMA COORDINATES ON THE EULER AND NAVIER-STOKES EQUATIONS USING CONTINUOUS/DISCONTINUOUS GALERKIN METHODS Sean L. Gibbons Captain, United

More information

WELL POSEDNESS OF PROBLEMS I

WELL POSEDNESS OF PROBLEMS I Finite Element Method 85 WELL POSEDNESS OF PROBLEMS I Consider the following generic problem Lu = f, where L : X Y, u X, f Y and X, Y are two Banach spaces We say that the above problem is well-posed (according

More information

pyoptfem Documentation

pyoptfem Documentation pyoptfem Documentation Release V0.0.6 F. Cuvelier November 09, 2013 CONTENTS 1 Presentation 3 1.1 Classical assembly algorithm (base version).............................. 6 1.2 Sparse matrix requirement........................................

More information

Space time finite element methods in biomedical applications

Space time finite element methods in biomedical applications Space time finite element methods in biomedical applications Olaf Steinbach Institut für Angewandte Mathematik, TU Graz http://www.applied.math.tugraz.at SFB Mathematical Optimization and Applications

More information

COMPUTATIONAL THERMODYNAMICS

COMPUTATIONAL THERMODYNAMICS COMPUTATIONAL THERMODYNAMICS Johan Hoffman and Claes Johnson www.bodysoulmath.org, www.fenics.org, www.icarusmath.com Claes Johnson KTH p. 1 PERSPECTIVE: Three Periods CLASSICAL 1600-1900 MODERN 1900-2000

More information

Neural Networks Teaser

Neural Networks Teaser 1/11 Neural Networks Teaser February 27, 2017 Deep Learning in the News 2/11 Go falls to computers. Learning 3/11 How to teach a robot to be able to recognize images as either a cat or a non-cat? This

More information

Shenfun - automating the spectral Galerkin method

Shenfun - automating the spectral Galerkin method Shenfun - automating the spectral Galerkin method Mikael Mortensen a arxiv:1708.03188v1 [physics.comp-ph] 10 Aug 2017 Abstract a Department of Mathematics, Division of Mechanics, University of Oslo With

More information

Chapter 9b: Numerical Methods for Calculus and Differential Equations. Initial-Value Problems Euler Method Time-Step Independence MATLAB ODE Solvers

Chapter 9b: Numerical Methods for Calculus and Differential Equations. Initial-Value Problems Euler Method Time-Step Independence MATLAB ODE Solvers Chapter 9b: Numerical Methods for Calculus and Differential Equations Initial-Value Problems Euler Method Time-Step Independence MATLAB ODE Solvers Acceleration Initial-Value Problems Consider a skydiver

More information

Marching on the BL equations

Marching on the BL equations Marching on the BL equations Harvey S. H. Lam February 10, 2004 Abstract The assumption is that you are competent in Matlab or Mathematica. White s 4-7 starting on page 275 shows us that all generic boundary

More information

An Overview of Impellers, Velocity Profile and Reactor Design

An Overview of Impellers, Velocity Profile and Reactor Design An Overview of s, Velocity Profile and Reactor Design Praveen Patel 1, Pranay Vaidya 1, Gurmeet Singh 2 1 Indian Institute of Technology Bombay, India 1 Indian Oil Corporation Limited, R&D Centre Faridabad

More information

Outline Python, Numpy, and Matplotlib Making Models with Polynomials Making Models with Monte Carlo Error, Accuracy and Convergence Floating Point Mod

Outline Python, Numpy, and Matplotlib Making Models with Polynomials Making Models with Monte Carlo Error, Accuracy and Convergence Floating Point Mod Outline Python, Numpy, and Matplotlib Making Models with Polynomials Making Models with Monte Carlo Error, Accuracy and Convergence Floating Point Modeling the World with Arrays The World in a Vector What

More information

Math Boot Camp Functions and Algebra

Math Boot Camp Functions and Algebra Fall 017 Math Boot Camp Functions and Algebra FUNCTIONS Much of mathematics relies on functions, the pairing (relation) of one object (typically a real number) with another object (typically a real number).

More information

Generating Equidistributed Meshes in 2D via Domain Decomposition

Generating Equidistributed Meshes in 2D via Domain Decomposition Generating Equidistributed Meshes in 2D via Domain Decomposition Ronald D. Haynes and Alexander J. M. Howse 2 Introduction There are many occasions when the use of a uniform spatial grid would be prohibitively

More information

du(l) 5 dl = U(0) = 1 and 1.) Substitute for U an unspecified trial function into governing equation, i.e. dx + = =

du(l) 5 dl = U(0) = 1 and 1.) Substitute for U an unspecified trial function into governing equation, i.e. dx + = = Consider an ODE of te form: Finite Element Metod du fu g d + wit te following Boundary Conditions: U(0) and du(l) 5 dl.) Substitute for U an unspecified trial function into governing equation, i.e. ^ U

More information

ES205 Analysis and Design of Engineering Systems: Lab 1: An Introductory Tutorial: Getting Started with SIMULINK

ES205 Analysis and Design of Engineering Systems: Lab 1: An Introductory Tutorial: Getting Started with SIMULINK ES205 Analysis and Design of Engineering Systems: Lab 1: An Introductory Tutorial: Getting Started with SIMULINK What is SIMULINK? SIMULINK is a software package for modeling, simulating, and analyzing

More information

Numerik 2 Motivation

Numerik 2 Motivation Numerik 2 Motivation P. Bastian Universität Heidelberg Interdisziplinäres Zentrum für Wissenschaftliches Rechnen Im Neuenheimer Feld 368, D-69120 Heidelberg email: Peter.Bastian@iwr.uni-heidelberg.de April

More information

182 George Street Providence, RI 02912, U.S.A.

182 George Street   Providence, RI 02912, U.S.A. Curriculum Vitae Guang Lin CONTACT INFORMATION Division of Applied Mathematics Phone: 401-863-3694 Box F, Brown University glin@dam.brown.edu 182 George Street http://www.dam.brown.edu/people/glin/, U.S.A.

More information

CS 453X: Class 1. Jacob Whitehill

CS 453X: Class 1. Jacob Whitehill CS 453X: Class 1 Jacob Whitehill How old are these people? Guess how old each person is at the time the photo was taken based on their face image. https://www.vision.ee.ethz.ch/en/publications/papers/articles/eth_biwi_01299.pdf

More information

QuTiP: Quantum Toolbox in Python. Circuit-QED

QuTiP: Quantum Toolbox in Python. Circuit-QED Lecture on QuTiP: Quantum Toolbox in Python with case studies in Circuit-QED Robert Johansson RIKEN In collaboration with Paul Nation Korea University 1 Content Introduction to QuTiP Case studies in circuit-qed

More information

FOUNDATION COURSES REQUIRED OF ALL MAJORS:

FOUNDATION COURSES REQUIRED OF ALL MAJORS: 2014-15 Pre-Combined Plan Curriculum Guide for Wittenberg University Students Admission into the binary program with The Fu Foundation School of Engineering and Applied Science at Columbia University requires

More information

Preface. Figures Figures appearing in the text were prepared using MATLAB R. For product information, please contact:

Preface. Figures Figures appearing in the text were prepared using MATLAB R. For product information, please contact: Linear algebra forms the basis for much of modern mathematics theoretical, applied, and computational. The purpose of this book is to provide a broad and solid foundation for the study of advanced mathematics.

More information

Module III: Partial differential equations and optimization

Module III: Partial differential equations and optimization Module III: Partial differential equations and optimization Martin Berggren Department of Information Technology Uppsala University Optimization for differential equations Content Martin Berggren (UU)

More information

University of Texas-Austin - Integration of Computing

University of Texas-Austin - Integration of Computing University of Texas-Austin - Integration of Computing During 2001-2002 the Department of Chemical Engineering at UT-Austin revamped the computing thread in its curriculum in order to strengthen student

More information

Chapter 6. Finite Element Method. Literature: (tiny selection from an enormous number of publications)

Chapter 6. Finite Element Method. Literature: (tiny selection from an enormous number of publications) Chapter 6 Finite Element Method Literature: (tiny selection from an enormous number of publications) K.J. Bathe, Finite Element procedures, 2nd edition, Pearson 2014 (1043 pages, comprehensive). Available

More information

Solving Partial Differential Equations Numerically. Miklós Bergou with: Gary Miller, David Cardoze, Todd Phillips, Mark Olah

Solving Partial Differential Equations Numerically. Miklós Bergou with: Gary Miller, David Cardoze, Todd Phillips, Mark Olah Solving Partial Dierential Equations Numerically Miklós Bergou with: Gary Miller, David Cardoze, Todd Phillips, Mark Olah Overview What are partial dierential equations? How do we solve them? (Example)

More information

Introduction to Python

Introduction to Python Introduction to Python Luis Pedro Coelho Institute for Molecular Medicine (Lisbon) Lisbon Machine Learning School II Luis Pedro Coelho (IMM) Introduction to Python Lisbon Machine Learning School II (1

More information