PDE Software has changed from the 1990s to 2005
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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