Covers a brief history of Open Source Math, Science and Engineering Software on Linux. A look at the software tools currently available for mathematical analysis and plotting for math science and engineering. Presented at 2011 Ohio LinuxFest.
Linux and Open Source in Math, Science and Engineering
1. Linux and Open Source in Math,
Science and Engineering
Dr. Doug Davis (3D)
pde1d.blogspot.com
2. Agenda
ī A bit of history
ī Where we are
ī Visualization
ī Math
ī Engineering
ī Science
Watt's steam engine at the lobby of the Higher
Technical School of Industrial Engineering of Madrid
Wikimedia Commons
3. A bit of History
ī Computers originally for Computing
ī Unix developed for telephone system
Human computers
in the NACA High
Speed Flight
Station "Computer
Room", Dryden
Flight Research
Center Facilities
WikiMedia Commons
4. 1960s and 70s
ī Mainframe era
ī IBM, CDC, Cray, Burroughs Corporation, DEC,
NCR, General Electric, Honeywell, RCA, and
UNIVAC
ī Fortran Programs
ī Hollerith Cards
ī Beginnings of interactive programing
Thomas J. Watson, Sr. was fired several times by John
Henry Patterson the owner of NCR in Dayton, Ohio. So
he went to work for Computing-Tabulating-Recording
Company (CTR) which became IBM under his
leadership
5. 1980 and 90s
ī Early PC and MAC
ī 2D AutoCAD
ī Graphic Engineering Workstations
ī 3D graphics
ī High price
ī High performance
ī Unix variants
6. 2000s
This is a picture of the TinyHPC Beowulf cluster
ī Beowulf cluster
ī MPI ā Message
Passing Interface
ī PVM ā Parallel
Virtual Machine
ī COW ā Cluster of
Workstations
ī LOBOS ā Lots Of
Boxes On Shelves
The name Beowulf originally
referred to a specific computer
built in 1994 by Thomas
Sterling and Donald Becker at
NASA.
Photo by Mukarram Ahmad
http://en.wikipedia.org/wiki/File:Tinyhpc.jpg
Instructions for building a Low cost Beowulf
(cir. 2000) http://www.clustercompute.com/
7. Today
ī Top500.org
ī 91% of 500
Fastest
Computers in
the World use
Linux
ī 1.2% Use MS
Windows
ī The Network is
the Computer
Sun's John Gage ā CNET June 9,
2008
10. One Killer Feature of Linux
for S&E in My Opinion Anyway
ī GPM - gpm provides mouse cut-and-paste
services
ī Highlight, then mouse middle click, to paste
selected text
ī Fast and simple way to transfer numbers
between programs
ī Command line file names,
ī ls ā <command> ā double clickā middle click
ī With OO Calc can transfer whole text tables
ī eMail and web addresses
ī Works with vi, kwrite, gedit, OO writer, etc.
11. Plotting
āThe purpose of computing is insight, not numbers.ā
R.W.Hamming, Numerical Methods for Scientiust and Engineers, Dover Publications
ī Gnuplot
ī Fit function
ī Plot data or functions
ī Fast script running
ī Paraview
ī 3D
ī Filter Tree View
ī Many Commercial Options
ī Tecplot, Fieldview,
EnSight
12. gnuplot
ī plot and splot main commands
ī > help plot
ī > help set
ī set terminal and set output for plot file output
ī text data in columns
ī default white-space separators
ī > set datafile separator ','
ī quotes for file name in plot command
ī no titles in file
ī two blank lines separate index number
ī user functions
ī > sinc(x) = sin(pi*x)/(pi*x)
ī multiple error bars
16. Sage
ī SAGE Math
ī www.sagemath.org
ī Author Video on Why Open Source
"I am a
cool
multiedge
graph with
loops"
http://www.sagemath.org/tour-graphics.html
17. Sagemath.org
ī Python
>>> notebook()
@interact
environment
ī PARI/GP
ī Maxima
ī scipy, matplolib
īR
ī singular
ī Everything Open
Source Math
Better than MATLAB ā Arbitrary Precision, Faster, Object Oriented
Programming, Symbolic Algebra, OPEN SOURCE
18. Maxima
ī Symbolic Math
ī Maxima is a
descendent of
Macsyma
ī Mathmatica and
Maple are
cousins
ī Written in lisp
ī wxMaxima ā
wxwidgets gui
version
19. Octave
ī GNU Octave is a high-level interpreted
language, primarily intended for numerical
computations.
ī Most compatible with Matlab
ī Can run many .m files
ī Octave Forge
ī Examples and tools
ī http://octave.sourceforge.net/
http://www.gnu.org/software/octave/index.html
20. Programing
ī A Much Bigger Learning Curve
ī May be needed for better understanding
ī Efficiency ā Faster computations
ī Many Libraries
ī Fortran or C/C++
22. Math Libraries
ī Linear Algebra
ī Fast Fourier Transform
ī GSL ā Gnu Scientific Library
ī C functions, with many wrappers
ī info gsl
Complex Numbers
Special Functions
Permutations
BLAS Support
Eigensystems
Quadrature
Quasi-Random Sequences
Discrete Wavelet Transforms
Simulated Annealing
Chebyshev Approximation
Discrete Hankel Transforms
Roots of Polynomials
Vectors and Matrices
Sorting
Linear Algebra
Fast Fourier Transforms
Random Numbers
Random Distributions
Histograms
Monte Carlo Integration
Differential Equations
Numerical Differentiation
Basis splines
IEEE Floating-Point
Physical Constants
Minimization
Least-Squares Fitting
Root-Finding
Interpolation
N-Tuples
Series Acceleration
Statistics
23. Other Math Libraries
ī AMD Core Math Library (ACML)
ī Fortran
ī Supports 6 compilers on Linux and 2 on
Windows
ī AMD Accelerated Parallel Processing Math
Libraries (APPML)
ī AMD
OpenCL GPUs
ī IntelĀ® Math Kernel Library (IntelĀ® MKL)
ī Fortran and C
24. High Performance Libraries
ī PETSC ā PDE library
ī Dakota - Optimization
ī Trilinos - object-oriented software framework
ī Paraview ā 3-D Visualization Tool
ī VTK ā 3-D Visualization Library
ī HDF5 ā Hierarchical Data Facility
ī NetCDF ā Network Common Data Form
25. Other Languages
īR
ī Statistics Language Package
ī This means data analysis
ī Good plotting facilities
ī Powerful Non-Linear Regression
ī Java
ī JScience ā http://jscience.org/
ī Java Scientific Library
-http://www.ee.ucl.ac.uk/~mflanaga/java/
26. Engineering Tools
ī Linux weakness is lack of popular CAD
ī Most geometry engines work under Linux
ī ACIS, Granite, OpenCascade
ī Some Linux Cad Packages
ī QCAD ā 2D ā Free , GPL
ī VariCAD - ~$700 ā free trial - varicad.com
ī BricsCAD - $$ - http://www.bricsys.com
ī Graphite One CAD - ~$2000 for 3-D
ī freeCAD ā sourceforge.net/projects/free-cad/
ī Some Light 3D for Grid Generators
ī CUBIT, SalomĆØ
27. CAELinux
http://www.caelinux.com
Linux Distribution Focused on Computer Aided Engineering
CAELinux is an installable LiveDVD Linux distribution based on Ubuntu 10.04 LTS 64 bit
Pre-post processors & CAD: Salome_Meca 2010, Salome 5.1.3, GMSH 2.4, Netgen ,
Tetgen, enGrid, Discretizer / Discretizer::Setup, Paraview, OpenDX, CGX, QCad,
FreeCAD, SagCAD, ElmerGUI / ElmeFront / ElmerGrid
Finite Element solvers: Salome_Meca 2010, Code_Aster STA10.1, Elmer v5.5 , Calculix
2.1, Impact 0.76, Dynela, Fenics
Computationnal Fluid Dynamics: OpenFOAM v1.7, Gerris flow solver and GFSView,
Code-Saturne 2.0 with CFD analysis wizard and tutorial , Elmer Solver, air foil and airplane
analysis tools (Xfoil, Javafoil, AVL, Datcom+)
Multibody dynamics : MBDyn with its Blender interface and EasyAnim
3D bio-medical image processing: ITK-Snap, Image J, Voxel_Mesher
Mathematics: GNU Octave +QtOctave, Scilab, wxMaxima, R & Rkward, Gnuplot, Latex,
Labplot, g3data, Scipy.
Is provided with interactive flash tutorials, videos as well as examples to start learning how
to use the included open-source softwares for realistic simulation
32. OpenFOAM
http://www.openfoam.com/
ī Arbitrary Polyhedral Cell Field Solver
ī Separate Solvers for Different Problems
ī Really a framework
ī OpenCFD Ltd. acquired by SGI
An extensive set of OpenFOAM solvers has evolved
(and is forever growing) that are available to users.
OpenFOAM is used mainly for CFD but has found use
in other areas such as stress analysis,
electromagnetics and finance because it is
fundamentally a tool for solving partial differential
equations rather than a CFD package in the traditional
sense.
33. Catalogs of Programs
ī SAL ā Scientific Applications for Linux
ī http://www.sai.msu.su/sal/sal2.shtml
ī Search-able reference to many programs
ī Very Old ā Last update May 2001
ī Netlib - Netlib is a collection of mathematical
software, papers, and databases
ī http://www.netlib.org/
ī 160+ packages and catagories
34. Other
ī Latest Linux Kernel adding
more Real Time functions
ī Process Control
Requirement
ī Mathscript for Android
(SymPy)
ī TeX Live -
ī Kile, Texmaker and Lyx
ī KDE Cantor
ī GNU TexMacs
https://market.android.com/details?
id=com.funmath.mathscript