Post on 20-Jan-2015
description
Free/Open Source applications for
Science and Engineering
P. SugathanI U A CDelhi
GNU Operating System
Unixlike operating systems built from a collection of libraries, applications and developer tools.
Linux kernel allocate resources and talk to the hardware.
The combination of GNU and Linux is the GNU/Linux OS used by millions.
Many variants or “distributions”
http://www.gnu.org
Popular GNU/Linux distributions
Ubuntu Debian Fedora Open SUSE Sabayon Scientific Linux Slackware ..............many more...........
What is Free Software?
Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software.
In the GNU project, the term "copyleft" is used to protect these freedoms legally for everyone.
The Free Software Foundation (FSF) is the principal organizational sponsor of the GNU Project.
www.fsf.org
Free and open source software( F/OSS)
A Community in which information will be freely exchanged
Benefits
Increase quality via community peer review Accelerate development via community contributions Dissemination of knowledge
Open Source in Science & Engineering
Science is an open process. Experimental results are published and shared with the larger community to benefit all humanity.
It makes sense that the software used for scientific computations should also be open.
FOSS advantage
Designers can choose from a variety of opensourcesoftware components ranging from multiple variations of the wildly popular Linux operating system to sophisticated debugging tools.
SourceForge.net, the largest opensourcesoftwaredevelopment site, provides free hosting to more than 230,000 registered projects, including database, security, gaming, clustering, multimedia, and VOIP (voice over Internet Protocol) offerings.
FOSS characteristics that make it popular
Customisation, licensing, hardware costs, development tools
Problems that designers cite as reasons to stay away.
Support
Fragmentation
Linux is used on desktop PCs, supercomputing clusters, embedded scientific equipment, as a programming environment for scientific programming and a myriad of other uses.
Scientific Linux(SL) is a Linux release put together by Fermilab, CERN, and various other labs and universities around the world. Its primary purpose is to reduce duplicated effort of the labs, and to have a common install base for the various experimenters.
Linux programmers can take advantage of a number of scientific libraries included in the distribution.:
www.scientificlinux.org
GNU/Linux for computational use
Scientific computation & Software DevelopmentGCC compilerPython , Octave, Numpy/Scipy/R statistical
Document publicationsTex/Latex/
Data visualization/PlottingScidavis Monte Carlo Simulation/ Data Analysis ROOT GEANT
Few scientific programs of general utility.
GCC, the GNU Compiler Collection
Includes front ends for C, C++, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...).
GCC was originally written as the compiler for the GNU OS
GNU project debugger
GDB, the GNU project debugger, allows you to see what is going on "inside" the program while it executes
Helps you catch bugs
Python: Programming tool kit
Python is a programming language created by Guido van Rossum in 1989
Lets you work more quickly and integrate your systems more effectively.
Gains in productivity and lower maintenance costs.
Highly cross platform
Python is free to use, even for commercial products.
Simple and complete by design
Python Resources
Part of many GNU/Linux distributions
Web:www.python.org
Tutorials
http://docs.pyhton.org/tut/tut.htmlhttp://www.byteofpyhton.infohttp://diveintopython.org
Python Use CasesWeb and Internet Development
Offers wide range of choices for web development:
Writing basic CGI scripts.
Web application Frameworks such as Django and TurboGears.
Highend solutions such as Zope.
Advanced content management systems such as Plone.
Database Access
Custom and ODBC interfaces to MySQL, Oracle, MS SQL Server, PostgreSQL, SybODBC, and others
Standard Database API.
Object databases such as ZODB and Durus.
Desktop GUIs
The Tk GUI development library is included with most binary distributions for Python.
wxWidgets
GTK+
Qt
Scientific and Numeric
Python is widely used in scientific and numeric computing:
Bioinformatics
Physics
Education
A superb language for teaching programming.
Python Special interest group is a good place to start
Game and 3D Graphics
Python is widely used in commercial and hobby game development:
PyGame and PyKyra are two of the game frameworks available for Python.
Network Programming
Support for lower level network programming:
Easytouse socket interface.
Twisted Python, a framework for asynchronous network programming.
Software Development
often used as a support language for software developers, for build control and management, and testing
SCons for build control.
Buildbot and Apache Gump for automated continuous compilation and testing.
Roundup or Trac for bug tracking and project management.
Python Success story
NASA: Space Shuttle Mission Design
AstraZeneca : uses python for collaborative drug discovery
ReHat : install scripts, sys admin tools
Google : Python is one of the official language
Nokia S60 smart phone
ForecastWatch.com Uses Python To Help Meteorologists
MayaVi Uses Python for Scientific Data Visualization
The GNU Scientific Library is a numerical library for C/C++ that contains builtin functionality for random numbers, statistical distributions, matrix mathematics, complex numbers, and more. The library provides a wide range of mathematical routines such as random number generators, special functions and leastsquares fitting. There are over 1000 functions in total with an extensive test suite.
GSL GNU Scientific Library
ftp://ftp.gnu.org/gnu/gsl/
NumPy and SciPy are two of many opensource packages for scientific computing that use the Python programming language
Scientific Tools for Python
http://www.gnu.org/software/octave/
Octave is a highlevel language, primarily intended for numerical computations.
It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab.
Octave has extensive tools for solving common numerical linear algebra problems, finding the roots of nonlinear equations, integrating ordinary functions, manipulating polynomials, and integrating ordinary differential and differentialalgebraic equations.
Octave
The R Project for Statistical Computing
http://www.rproject.org/
R is an integrated suite of software facilities for data manipulation, calculation and graphical display.
A suite of operators for calculations on arrays, in particular matrices,
A large, coherent, integrated collection of intermediate tools for data analysis
Graphical facilities for data analysis and display either onscreen or on hard copy
TeX/ LaTeX : a document preparation systemA highquality typesetting system designed for production of technical & scientific papers
De facto standard for communication and publication of scientific documents
Separates content creation from typesetting issues
Similar to HTML : text is marked up and processed to produce a document.
Nice features such as automatically creating properly formatted title pages and reference sections.
A TeX document is processed by the LaTeX program to produce a variety of formats, include DVI, PostScript, PDF, and HTML.
www.latexproject.org
OpenDX is a uniquely powerful, fullfeatured software package for the visualization of scientific, engineering and analytical data
Its sophisticated data model provides users with great flexibility in creating visualizations.
www.opendx.org
For visualization tasks from creating insightful images to building complete applications
OpenDX
scidavis.sourceforge.net
SciDAVis is a free interactive application aimed at data analysis and publicationquality plotting.
SciDAVis is similar in its field of application to proprietary Windows applications like Origin
Data Plotting
Qt GUI Designer
http://doc.trolltech.com/
The Qt Designer is a visual design tool that makes
designing and implementing user interfaces a lot easier.
www.povray.org
The persistence of vision raytracer a high quality tool for creating stunning 3D graphics Used to create images suitable for all stages of scientific research: investigation, diagrams for papers, and high quality images for promotional purposes.
PovRay
Elmer
Open Source Finite Element Software for Multi physical problems
Elmer includes physical models of fluid dynamics, structural mechanics, electromagnetic, heat transfer and acoustics, for example. These are described by partial differential equations which Elmer solves by the Finite Element Method (FEM).
http://www.csc.fi/english/pages/elmer
Finite Element Analysis
GRASS is free Geographic Information System (GIS) software used for geospatial data management and analysis, image processing, graphics/maps production, spatial modelling, and visualization.
Used by academic and many governmental agencies and environmental consulting companies.
Modules for management, processing, analysis and visualization of georeferenced data.
http://grass.itc.it/
Geographic Resources Analysis Support System
BRLCAD is a powerful crossplatform open source solid modelling system that includes interactive geometry editing, highperformance raytracing for rendering and geometric analysis, image and signalprocessing tools, a system performance analysis benchmark suite, libraries for robust geometric representation.
http://brlcad.org
GPL'd suite and toolkit of Electronic Design Automation tools.
Used for electrical circuit design, schematic capture, simulation, prototyping, production, analog and digital simulation, and printed circuit board (PCB) layout.
http://www.gpleda.org
GEDA project
GEANT4
Geant4 is a toolkit for the simulation of the passage of particles through matter. Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science.
http://geant4.web.cern.ch/geant4/index.shtml
The ROOT system provides a set of OO frameworks with all the functionality needed to handle and analyse large amounts of data in a very efficient way.
Included are histograming methods in an arbitrary number of dimensions, curve fitting, function evaluation, minimization, graphics and visualization classes to allow the easy setup of an analysis system that can query and process the data interactively or in batch mode
http://root.cern.ch
ROOT data visualization
SourceForge is a centralized location to download and develop free open source software.
World's largest open source software development web site.
More than 230,000 software projects have been registered
More than 2 million registered users,
Largest collection of open source tools and applications on the net.
Free Access to hosting and tools for developers
http://sourceforge.net/
Source Code Repository
http://xxx.lanl.gov
Open access to 584,546 eprints in Physics, Mathematics, Computer Science, Biology, Finance and Statistics
Open access EPrint archives
www.openscience.org
The OpenScience Project maintains a comprehensive listing of openly available scientific software packages.
Contains packages for a wide range of disciplines, including, mathematics, astronomy, anthropology, and archaeology.
It makes it easy to find software for specialized scientific fields.
Open Science Project
Mobile Application Android by google
Android is the first free, open source, and fully customizable mobile platform. Android offers a full stack: an operating system, middleware, and key mobile applications. It also contains a rich set of APIs that allows thirdparty developers to develop great application
http://developer.android.com/index.html
Computer Interfaced Science Experiments
Phoenix allows you to develop science experiments by connecting sensor / control elements to a computer and access them through software. Phoenix depends heavily on Python language.
The hardware design is freely available. The project is based on Free Software tools and the code is distributed under GNU GPL .
PHOENIX Board
http://www.iuac.res.in/~elab/phoenix/
THANK YOU