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.
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
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