Free/Open Source applications
                  for 
       Science and Engineering 


              P. Sugathan
                 I U A C
                  Delhi

                    
GNU Operating System
                                http://www.gnu.org


  Unix­like 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”
                             
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  open­source­
software  components  ranging  from  multiple  variations  of 
the  wildly  popular  Linux  operating  system  to 
sophisticated debugging tools.


  SourceForge.net, the  largest  open­source­software­
development  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


                                
GNU/Linux for computational use
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
                                   
Few scientific programs of general utility.
Scientific computation &  Software Development
GCC compiler
Python , Octave, Numpy/Scipy/
R statistical

Document publications
Tex/Latex/

Data visualization/Plotting
Scidavis 
Monte Carlo Simulation/ Data Analysis
 ROOT
 GEANT
                              
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.html
    http://www.byteofpyhton.info
    http://diveintopython.org




                                   
Python Use Cases
    Web and Internet Development


     Offers  wide range of choices for web development:
    Writing basic CGI scripts.
    Web application Frameworks such as Django and TurboGears.
    High­end 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:
Easy­to­use 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
GSL ­ GNU Scientific Library


The  GNU  Scientific  Library  is  a  numerical  library  for 
C/C++  that  contains  built­in  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  least­squares  fitting. 
There are over 1000 functions in total with an extensive 
test suite.


                           ftp://ftp.gnu.org/gnu/gsl/

                                
Scientific Tools for Python




  NumPy  and  SciPy  are  two  of  many  open­source 
  packages  for  scientific  computing  that  use  the  Python 
 
  programming language           
Octave
Octave  is  a  high­level  language,  primarily  intended  for 
numerical computations.
  It  provides  a  convenient  command  line  interface  for 
solving linear and non­linear 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  non­linear 
equations,  integrating  ordinary  functions,  manipulating 
polynomials,  and  integrating  ordinary  differential  and 
differential­algebraic equations.
  
                   http://www.gnu.org/software/octave/
                                
The R Project for Statistical Computing

   http://www.r­project.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  on­
                                      
 screen or on hard copy
TeX/ LaTeX : a document preparation system
A  high­quality  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.latex­project.org
OpenDX
For  visualization  tasks  from  creating 
insightful images to building complete 
applications



    OpenDX is a uniquely powerful, full­featured 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
                                 
Data Plotting 
    scidavis.sourceforge.net

    SciDAVis is a free interactive application aimed at data analysis 
    and publication­quality plotting.

    SciDAVis is similar in its field of application to proprietary Windows 
     applications like Origin




                                       
Qt GUI Designer




    The Qt Designer is a visual design tool that makes 
    designing and implementing user interfaces a lot easier
                                                          . 




                    http://doc.trolltech.com/
                                 
PovRay




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.
 
Finite Element Analysis

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
                                
Geographic Resources Analysis Support System

          http://grass.itc.it/

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. 



                                  
BRL­CAD  is  a  powerful  cross­platform  open  source  solid 
    modelling  system  that  includes  interactive  geometry 
    editing,  high­performance  ray­tracing  for  rendering  and 
    geometric  analysis,  image  and  signal­processing  tools,  a 
    system performance analysis benchmark suite, libraries for 
    robust geometric representation.



               http://brlcad.org

                                  
GEDA project

    http://www.gpleda.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.
                              
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


                                     
http://root.cern.ch

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
ROOT data visualization




                     
Source Code Repository
           http://sourceforge.net/

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 


                                
Open access E­Print archives



    http://xxx.lanl.gov


    Open  access  to  584,546  e­prints  in  Physics, 
    Mathematics, Computer Science, Biology, Finance 
    and Statistics




                              
Open Science Project




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.
                                     
Mobile Application 
      Android by google
                   http://developer.android.com/index.html


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 third­party developers 
to develop great application


                                   
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




         

Free/Open Source Software for Science & Engineering