Advancing Teaching and Research with Python
|
|
- Barbra Ford
- 5 years ago
- Views:
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 Hans Petter Langtangen 1,2 Mikael Mortensen 3,1 Center for Biomedical Computing Simula Research Laboratory 1 Dept. of Informatics, University of
More informationThe 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 informationThe 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 informationFinite 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 informationFEniCS 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 informationFEniCS 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 informationNumerical 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 informationModeling 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 informationIntroduction 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 informationHomework 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 Random Remarks... Robert Cimrman & Eduard Rohan & others Department of Mechanics & New Technologies Research Centre University of West Bohemia Plzeň, Czech Republic PANM
More informationThe 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 informationFinite 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 informationIntroduction 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 informationI. 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 informationFEniCS, 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 informationSolving 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 informationDiscretization 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 informationvon 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 informationNotater: 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 informationSolving 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 informationA 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 informationModule 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 informationImplementing 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 informationGETTING 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 informationFinite 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 informationFinite 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 informationExpressive 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 informationPython & 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 informationAlgorithms 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 informationScripting 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 informationFEniCS 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 informationPhysics 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 informationLinear 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 informationComputational 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 informationFundamentals 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 informationSolving 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 informationMassively 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 informationTime-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 informationStudy 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 informationStudy 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 informationIntroduction 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 informationDepartment 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 informationApplications 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 informationDiscrete 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 informationNUMERICAL 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 informationFinite 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 informationIntroduction 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 informationSolving 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 informationJointly 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 informationPractical 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 informationPractical 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 informationSolving 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 informationA 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 informationLECTURE # 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 informationTMA4220: 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 informationNumerical 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 informationMATH 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 informationAutomating 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 informationAn 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 informationChapter 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 informationIntroduction 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 informationNumPy 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 informationFEniCS 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 informationUSE 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 informationFluid 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 informationOn 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 informationComputational 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 informationThe 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 informationApplication 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 informationage 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 informationA 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 informationShape 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 informationLecture 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 informationIMPACTS 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 informationWELL 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 informationpyoptfem 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 informationSpace 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 informationCOMPUTATIONAL 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 informationNeural 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 informationShenfun - 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 informationChapter 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 informationMarching 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 informationAn 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 informationOutline 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 informationMath 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 informationGenerating 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 informationdu(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 informationES205 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 informationNumerik 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 information182 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 informationCS 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 informationQuTiP: 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 informationFOUNDATION 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 informationPreface. 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 informationModule 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 informationUniversity 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 informationChapter 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 informationSolving 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 informationIntroduction 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