PDE Software has changed from the 1990s to 2005

33
PDE Software has changed from the 1990s to 2005 Fewer scientists program If they program, they often prefer Matlab The problems get more complex: multi–physics/domain/scale/institutional/code More high-quality/mature software libraries exist – no need to reinvent the wheel Legacy codes are here to stay – could we integrate them in new systems as black boxes? Scientists want the numerics in problem solving environments

Transcript of PDE Software has changed from the 1990s to 2005

Page 1: PDE Software has changed from the 1990s to 2005

PDE Software has changed from the 1990s to 2005

Fewer scientists program

If they program, they often prefer Matlab

The problems get more complex:multi–physics/domain/scale/institutional/code

More high-quality/mature software libraries exist– no need to reinvent the wheel

Legacy codes are here to stay – could we integrate them innew systems as black boxes?

Scientists want the numerics in problem solving environments

Page 2: PDE Software has changed from the 1990s to 2005

PDE Software has changed from the 1990s to 2005

Fewer scientists program

If they program, they often prefer Matlab

The problems get more complex:multi–physics/domain/scale/institutional/code

More high-quality/mature software libraries exist– no need to reinvent the wheel

Legacy codes are here to stay – could we integrate them innew systems as black boxes?

Scientists want the numerics in problem solving environments

Page 3: PDE Software has changed from the 1990s to 2005

PDE Software has changed from the 1990s to 2005

Fewer scientists program

If they program, they often prefer Matlab

The problems get more complex:multi–physics/domain/scale/institutional/code

More high-quality/mature software libraries exist– no need to reinvent the wheel

Legacy codes are here to stay – could we integrate them innew systems as black boxes?

Scientists want the numerics in problem solving environments

Page 4: PDE Software has changed from the 1990s to 2005

PDE Software has changed from the 1990s to 2005

Fewer scientists program

If they program, they often prefer Matlab

The problems get more complex:multi–physics/domain/scale/institutional/code

More high-quality/mature software libraries exist– no need to reinvent the wheel

Legacy codes are here to stay – could we integrate them innew systems as black boxes?

Scientists want the numerics in problem solving environments

Page 5: PDE Software has changed from the 1990s to 2005

PDE Software has changed from the 1990s to 2005

Fewer scientists program

If they program, they often prefer Matlab

The problems get more complex:multi–physics/domain/scale/institutional/code

More high-quality/mature software libraries exist– no need to reinvent the wheel

Legacy codes are here to stay – could we integrate them innew systems as black boxes?

Scientists want the numerics in problem solving environments

Page 6: PDE Software has changed from the 1990s to 2005

PDE Software has changed from the 1990s to 2005

Fewer scientists program

If they program, they often prefer Matlab

The problems get more complex:multi–physics/domain/scale/institutional/code

More high-quality/mature software libraries exist– no need to reinvent the wheel

Legacy codes are here to stay – could we integrate them innew systems as black boxes?

Scientists want the numerics in problem solving environments

Page 7: PDE Software has changed from the 1990s to 2005

Current views on PDE Software at Simula

Software tools must be programmable at all levels

Users can program with a Matlab-like syntax (Python)

Problem solving environment = set of Python modules

”Standard operations” are performed by ”standard libraries”:LAPACK, PETSc, Trilinos, ML, Hypre, Vtk, ...

Solve PDE systems by connecting individual PDE solvers

Potential users have 10 min attention span– requires strong focus on build/install and documentation

Page 8: PDE Software has changed from the 1990s to 2005

Current views on PDE Software at Simula

Software tools must be programmable at all levels

Users can program with a Matlab-like syntax (Python)

Problem solving environment = set of Python modules

”Standard operations” are performed by ”standard libraries”:LAPACK, PETSc, Trilinos, ML, Hypre, Vtk, ...

Solve PDE systems by connecting individual PDE solvers

Potential users have 10 min attention span– requires strong focus on build/install and documentation

Page 9: PDE Software has changed from the 1990s to 2005

Current views on PDE Software at Simula

Software tools must be programmable at all levels

Users can program with a Matlab-like syntax (Python)

Problem solving environment = set of Python modules

”Standard operations” are performed by ”standard libraries”:LAPACK, PETSc, Trilinos, ML, Hypre, Vtk, ...

Solve PDE systems by connecting individual PDE solvers

Potential users have 10 min attention span– requires strong focus on build/install and documentation

Page 10: PDE Software has changed from the 1990s to 2005

Current views on PDE Software at Simula

Software tools must be programmable at all levels

Users can program with a Matlab-like syntax (Python)

Problem solving environment = set of Python modules

”Standard operations” are performed by ”standard libraries”:LAPACK, PETSc, Trilinos, ML, Hypre, Vtk, ...

Solve PDE systems by connecting individual PDE solvers

Potential users have 10 min attention span– requires strong focus on build/install and documentation

Page 11: PDE Software has changed from the 1990s to 2005

Current views on PDE Software at Simula

Software tools must be programmable at all levels

Users can program with a Matlab-like syntax (Python)

Problem solving environment = set of Python modules

”Standard operations” are performed by ”standard libraries”:LAPACK, PETSc, Trilinos, ML, Hypre, Vtk, ...

Solve PDE systems by connecting individual PDE solvers

Potential users have 10 min attention span– requires strong focus on build/install and documentation

Page 12: PDE Software has changed from the 1990s to 2005

Current views on PDE Software at Simula

Software tools must be programmable at all levels

Users can program with a Matlab-like syntax (Python)

Problem solving environment = set of Python modules

”Standard operations” are performed by ”standard libraries”:LAPACK, PETSc, Trilinos, ML, Hypre, Vtk, ...

Solve PDE systems by connecting individual PDE solvers

Potential users have 10 min attention span– requires strong focus on build/install and documentation

Page 13: PDE Software has changed from the 1990s to 2005

Example on connecting single-PDE components

Build turbulent flow solvers from PDE components

Basic idea: solve PDE systems by operator splitting

Can also split an implicit formulation by block preconditioning

Navier-Stokes solver: Stokes solver, advection solver

k-ε model: N-S solver, convection-diffusion-reaction solvers

The same idea is applies to RANS/URANS, LES, DNS,elliptic relaxation models (and PDE systems in general)

Goal

Composing turbulent flow solvers is like composing matrix-basedalgorithms in Matlab

Page 14: PDE Software has changed from the 1990s to 2005

Example on connecting single-PDE components

Build turbulent flow solvers from PDE components

Basic idea: solve PDE systems by operator splitting

Can also split an implicit formulation by block preconditioning

Navier-Stokes solver: Stokes solver, advection solver

k-ε model: N-S solver, convection-diffusion-reaction solvers

The same idea is applies to RANS/URANS, LES, DNS,elliptic relaxation models (and PDE systems in general)

Goal

Composing turbulent flow solvers is like composing matrix-basedalgorithms in Matlab

Page 15: PDE Software has changed from the 1990s to 2005

Current software initatives at Simula

FAMMS: automatic PDE code verification

Swiginac: symbolic math in Python

PYSE: finite difference stencils in Python

Symbolic ”FIAT” (finite element basis functions)

SciPy extensions for sparse matrices

Anyplot: generic Matlab-like interface to curve plotting

Plans for Anyviz (for scalar and vector fields over grids)

How to write efficient PDE solvers in Python?(PETSc, ML, FEniCS, Diffpack)

Parallelizing legacy codes via Python

Multi-physics/domain/scale and parallelization via domaindecomposition

Page 16: PDE Software has changed from the 1990s to 2005

Current software initatives at Simula

FAMMS: automatic PDE code verification

Swiginac: symbolic math in Python

PYSE: finite difference stencils in Python

Symbolic ”FIAT” (finite element basis functions)

SciPy extensions for sparse matrices

Anyplot: generic Matlab-like interface to curve plotting

Plans for Anyviz (for scalar and vector fields over grids)

How to write efficient PDE solvers in Python?(PETSc, ML, FEniCS, Diffpack)

Parallelizing legacy codes via Python

Multi-physics/domain/scale and parallelization via domaindecomposition

Page 17: PDE Software has changed from the 1990s to 2005

Current software initatives at Simula

FAMMS: automatic PDE code verification

Swiginac: symbolic math in Python

PYSE: finite difference stencils in Python

Symbolic ”FIAT” (finite element basis functions)

SciPy extensions for sparse matrices

Anyplot: generic Matlab-like interface to curve plotting

Plans for Anyviz (for scalar and vector fields over grids)

How to write efficient PDE solvers in Python?(PETSc, ML, FEniCS, Diffpack)

Parallelizing legacy codes via Python

Multi-physics/domain/scale and parallelization via domaindecomposition

Page 18: PDE Software has changed from the 1990s to 2005

Current software initatives at Simula

FAMMS: automatic PDE code verification

Swiginac: symbolic math in Python

PYSE: finite difference stencils in Python

Symbolic ”FIAT” (finite element basis functions)

SciPy extensions for sparse matrices

Anyplot: generic Matlab-like interface to curve plotting

Plans for Anyviz (for scalar and vector fields over grids)

How to write efficient PDE solvers in Python?(PETSc, ML, FEniCS, Diffpack)

Parallelizing legacy codes via Python

Multi-physics/domain/scale and parallelization via domaindecomposition

Page 19: PDE Software has changed from the 1990s to 2005

Current software initatives at Simula

FAMMS: automatic PDE code verification

Swiginac: symbolic math in Python

PYSE: finite difference stencils in Python

Symbolic ”FIAT” (finite element basis functions)

SciPy extensions for sparse matrices

Anyplot: generic Matlab-like interface to curve plotting

Plans for Anyviz (for scalar and vector fields over grids)

How to write efficient PDE solvers in Python?(PETSc, ML, FEniCS, Diffpack)

Parallelizing legacy codes via Python

Multi-physics/domain/scale and parallelization via domaindecomposition

Page 20: PDE Software has changed from the 1990s to 2005

Current software initatives at Simula

FAMMS: automatic PDE code verification

Swiginac: symbolic math in Python

PYSE: finite difference stencils in Python

Symbolic ”FIAT” (finite element basis functions)

SciPy extensions for sparse matrices

Anyplot: generic Matlab-like interface to curve plotting

Plans for Anyviz (for scalar and vector fields over grids)

How to write efficient PDE solvers in Python?(PETSc, ML, FEniCS, Diffpack)

Parallelizing legacy codes via Python

Multi-physics/domain/scale and parallelization via domaindecomposition

Page 21: PDE Software has changed from the 1990s to 2005

Current software initatives at Simula

FAMMS: automatic PDE code verification

Swiginac: symbolic math in Python

PYSE: finite difference stencils in Python

Symbolic ”FIAT” (finite element basis functions)

SciPy extensions for sparse matrices

Anyplot: generic Matlab-like interface to curve plotting

Plans for Anyviz (for scalar and vector fields over grids)

How to write efficient PDE solvers in Python?(PETSc, ML, FEniCS, Diffpack)

Parallelizing legacy codes via Python

Multi-physics/domain/scale and parallelization via domaindecomposition

Page 22: PDE Software has changed from the 1990s to 2005

Current software initatives at Simula

FAMMS: automatic PDE code verification

Swiginac: symbolic math in Python

PYSE: finite difference stencils in Python

Symbolic ”FIAT” (finite element basis functions)

SciPy extensions for sparse matrices

Anyplot: generic Matlab-like interface to curve plotting

Plans for Anyviz (for scalar and vector fields over grids)

How to write efficient PDE solvers in Python?(PETSc, ML, FEniCS, Diffpack)

Parallelizing legacy codes via Python

Multi-physics/domain/scale and parallelization via domaindecomposition

Page 23: PDE Software has changed from the 1990s to 2005

Current software initatives at Simula

FAMMS: automatic PDE code verification

Swiginac: symbolic math in Python

PYSE: finite difference stencils in Python

Symbolic ”FIAT” (finite element basis functions)

SciPy extensions for sparse matrices

Anyplot: generic Matlab-like interface to curve plotting

Plans for Anyviz (for scalar and vector fields over grids)

How to write efficient PDE solvers in Python?(PETSc, ML, FEniCS, Diffpack)

Parallelizing legacy codes via Python

Multi-physics/domain/scale and parallelization via domaindecomposition

Page 24: PDE Software has changed from the 1990s to 2005

Current software initatives at Simula

FAMMS: automatic PDE code verification

Swiginac: symbolic math in Python

PYSE: finite difference stencils in Python

Symbolic ”FIAT” (finite element basis functions)

SciPy extensions for sparse matrices

Anyplot: generic Matlab-like interface to curve plotting

Plans for Anyviz (for scalar and vector fields over grids)

How to write efficient PDE solvers in Python?(PETSc, ML, FEniCS, Diffpack)

Parallelizing legacy codes via Python

Multi-physics/domain/scale and parallelization via domaindecomposition

Page 25: PDE Software has changed from the 1990s to 2005

Example: tsunami simulation (the Dec 26, 2004 event)

−2000 −1000 0 1000

0

1000

2000

−0.2

−0.125

−0.05

0.025

0.1

0.175

0.25

0.325

0.4

0.475

0.55

−2000 −1000 0 1000

0

1000

2000

Page 26: PDE Software has changed from the 1990s to 2005

Multi-physics/domain/code via domain decomposition

−6000 −4000 −2000 0 1000−2581

−2000

−1000

0

1000

2000

0

0.678

1.36

2.03

2.71

3.39

4.07

4.75

5.43

6.1

6.78

−6000 −4000 −2000 0 1000−2581

−2000

−1000

0

1000

2000

200.4 300 331.8629.2

700

768

200.4 300 331.8629.2

700

768

p1

p2 p3

p4

Dispersive (Boussinesq) equations

Nonlinear shallow water eqs.

Page 27: PDE Software has changed from the 1990s to 2005

Multi-physics/domain/code via domain decomposition

−6000 −4000 −2000 0 1000−2581

−2000

−1000

0

1000

2000

0

0.678

1.36

2.03

2.71

3.39

4.07

4.75

5.43

6.1

6.78

−6000 −4000 −2000 0 1000−2581

−2000

−1000

0

1000

2000

200.4 300 331.8629.2

700

768

200.4 300 331.8629.2

700

768

p1

p2 p3

p4

Finite difference legacy code

New finite element code

Page 28: PDE Software has changed from the 1990s to 2005

Summary: Simula ↔ FEniCS

We see FEniCS as a good place to publish software

The FEniCS modules (FIAT, FFC, Sieve, ...) looks verypromising

We are interested in the flow software and methods

We have experience with writing generic PDE software(code, documentation, users, industry)

We work on challenging applications

We have experience with publishing, conferences andworkshops in the ”PDE software” field

Page 29: PDE Software has changed from the 1990s to 2005

Summary: Simula ↔ FEniCS

We see FEniCS as a good place to publish software

The FEniCS modules (FIAT, FFC, Sieve, ...) looks verypromising

We are interested in the flow software and methods

We have experience with writing generic PDE software(code, documentation, users, industry)

We work on challenging applications

We have experience with publishing, conferences andworkshops in the ”PDE software” field

Page 30: PDE Software has changed from the 1990s to 2005

Summary: Simula ↔ FEniCS

We see FEniCS as a good place to publish software

The FEniCS modules (FIAT, FFC, Sieve, ...) looks verypromising

We are interested in the flow software and methods

We have experience with writing generic PDE software(code, documentation, users, industry)

We work on challenging applications

We have experience with publishing, conferences andworkshops in the ”PDE software” field

Page 31: PDE Software has changed from the 1990s to 2005

Summary: Simula ↔ FEniCS

We see FEniCS as a good place to publish software

The FEniCS modules (FIAT, FFC, Sieve, ...) looks verypromising

We are interested in the flow software and methods

We have experience with writing generic PDE software(code, documentation, users, industry)

We work on challenging applications

We have experience with publishing, conferences andworkshops in the ”PDE software” field

Page 32: PDE Software has changed from the 1990s to 2005

Summary: Simula ↔ FEniCS

We see FEniCS as a good place to publish software

The FEniCS modules (FIAT, FFC, Sieve, ...) looks verypromising

We are interested in the flow software and methods

We have experience with writing generic PDE software(code, documentation, users, industry)

We work on challenging applications

We have experience with publishing, conferences andworkshops in the ”PDE software” field

Page 33: PDE Software has changed from the 1990s to 2005

Summary: Simula ↔ FEniCS

We see FEniCS as a good place to publish software

The FEniCS modules (FIAT, FFC, Sieve, ...) looks verypromising

We are interested in the flow software and methods

We have experience with writing generic PDE software(code, documentation, users, industry)

We work on challenging applications

We have experience with publishing, conferences andworkshops in the ”PDE software” field