Linux and Open Source in Math, Science and Engineering

  • Upload
    pde1d

  • View
    1.775

  • Download
    6

Embed Size (px)

DESCRIPTION

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.

Citation preview

  • 1. Linux and Open Source in Math, Science and EngineeringDr. 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 ShelvesThe name Beowulf originally referred to a specific computer built in 1994 by Thomas Sterling and Donald Becker at NASA.Photo by Mukarram Ahmadhttp://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 500Fastest Computers in the World use Linux 1.2% Use MS Windows The Network is the ComputerSun'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 CalcU U + U = 0 t xU (0) = [ 1 + sin( x ) ] / 2 Burgers Equation OpenOffice LibreOffice1st Order Euler 1.2 Gnumeric1 0 2 4 6 8 10 12Amplitude0.8 0.6 0.4 0.2 0 00.20.40.60.81 X1.21.41.61.82 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 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 morehttp://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, Interactivehttp://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()@interactenvironment PARI/GP Maxima scipy, matplolib R singular Everything Open Source MathBetter than MATLAB Arbitrary Precision, Faster, Object Oriented Programming, Symbolic Algebra, OPEN SOURCE 18. Maxima Symbolic Math Maxima is adescendent of Macsyma Mathmatica and Maple are cousins Written in lisp wxMaxima wxwidgets gui version 19. Octave GNU Octave is a high-level interpretedlanguage, 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 gslComplex Numbers Special Functions Permutations BLAS Support Eigensystems Quadrature Quasi-Random Sequences Discrete Wavelet Transforms Simulated Annealing Chebyshev Approximation Discrete Hankel TransformsRoots of Polynomials Vectors and Matrices Sorting Linear Algebra Fast Fourier Transforms Random Numbers Random Distributions Histograms Monte Carlo Integration Differential Equations Numerical DifferentiationBasis 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) AMDOpenCL 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 LanguagesR 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. CAELinuxhttp://www.caelinux.comLinux 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 LinuxCAE 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 TexMacshttps://market.android.com/details? id=com.funmath.mathscript 35. Thank You pde1d.blogspot.com