Linux and Open Source in Math, Science and Engineering

  • 1,494 views
Uploaded on

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 …

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.

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,494
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
23
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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
  • 8. S&E Software Tools  3 Classes of Tools  Quick and Dirty  Spreadsheets  Mainly S&E eduction use  Matlab, Octave, Scilab  Python  Programming Tools  Fortran and C/C++  Libraries  Tools  Science & Engineering Tools  CAE – Computer Aided Engineering
  • 9. Spreadsheet One Dimensional Partial Differential Equation  Calc ∂U ∂U + U = 0 ∂t ∂x U (0) = [ 1 + sin( π x ) ] / 2 Burgers Equation  OpenOffice  LibreOffice 1st Order Euler 1.2  Gnumeric 1 0 2 4 6 8 10 12 Amplitude 0.8 0.6 0.4 0.2 0 0 0.2 0.4 0.6 0.8 1 X 1.2 1.4 1.6 1.8 2
  • 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
  • 13. gnuplot plot
  • 14. Other Plotting Software  Mainly 2D or Math functions  Matlab - $$$  matplotlib – free  graph and plot - free  3-D Contours  Tecplot - $$$  Ensight - $$$  Fieldview - $$$  Paraview – free  Visit - free  Many many more http://vtk.org/Wiki/File:ParaViewWeb-shuttle.png http://paraviewweb.kitware.com/PWShuttle/
  • 15. Scientific Python  PyLab  numpy, numeric python  Scipy, Scientific Python –  Matplotlib, Python Plotting  Traits, Interactive http://www.scipy.org/
  • 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++
  • 21. Programing and Platform Tools  Kdevelop IDE  C, C++, Python, PHP, Ruby  Eclipse  CDT  PTP  Photran
  • 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
  • 28. Text Book Using CAE Linux CAE Linux also includes good tutorials Wink
  • 29. Salome -MECA http://www.salome-platform.org/  Integrated Analysis Framework  Geometry → Grid → Solver → Visualization  User Modules  Geometry: create, edit, import/export CAD models (OpenCascade)  Mesh : mesh a CAD model using a standard meshing algorithm or any external mesher  Med : MED data files management  Post-processor : dedicated viewer (Paraview/ VTK)  YACS : supervision module  Python Scripting
  • 30. Salome- Mesh Example
  • 31. YACCS  Supervisor Module  Integrates Solvers  Optimization??
  • 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
  • 35. Thank You  pde1d.blogspot.com