Scientific Tools for

Ryan Curtin LUG@GT

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 1/41 Goals

» Goals This presentation is intended to introduce you to the vast array Mathematical Tools of available for scientific applications that run on Electrical Engineering Tools Linux. Software is available for electrical engineering, Chemistry Tools mathematics, chemistry, physics, biology, and other fields.

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 2/41 Non-Free Mathematical Tools

» Goals  MATLAB (MathWorks)

Mathematical Tools » Non-Free Mathematical Tools » MATLAB  » Mathematica Mathematica (Wolfram Research) » » Free Mathematical Tools » GNU Octave  » mathomatic Maple (Maplesoft) »R » SAGE  Electrical Engineering Tools S-Plus (Mathsoft)

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 3/41 MATLAB

» Goals  MATLAB is a fully functional mathematics language Mathematical Tools  » Non-Free Mathematical Tools You may be familiar with it from use in classes » MATLAB » Mathematica » Maple » Free Mathematical Tools » GNU Octave » mathomatic »R » SAGE

Electrical Engineering Tools

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 4/41 Mathematica

» Goals  Worksheet-based mathematics suite Mathematical Tools  » Non-Free Mathematical Tools Linux versions can be buggy and bugfixes can be slow » MATLAB » Mathematica » Maple » Free Mathematical Tools » GNU Octave » mathomatic »R » SAGE

Electrical Engineering Tools

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 5/41 Maple

» Goals  Large mathematics suite Mathematical Tools  » Non-Free Mathematical Tools GUI mode and CLI mode available » MATLAB » Mathematica » Maple » Free Mathematical Tools » GNU Octave » mathomatic »R » SAGE

Electrical Engineering Tools

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 6/41 Free Mathematical Tools

» Goals  GNU Octave: MATLAB clone

Mathematical Tools » Non-Free Mathematical Tools » MATLAB  » Mathematica mathomatic: automatic algebraic manipulator » Maple » Free Mathematical Tools » GNU Octave  » mathomatic R: environment for statistical analysis »R » SAGE  Electrical Engineering Tools SAGE: open source mathematics toolkit

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 7/41 GNU Octave

» Goals  Open-source clone of MATLAB Mathematical Tools  » Non-Free Mathematical Tools MATLAB compatibility is mostly implemented, but » MATLAB » Mathematica differences still exist » Maple  » Free Mathematical Tools Uses for graphing » GNU Octave » mathomatic »R » SAGE

Electrical Engineering Tools

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 8/41 mathomatic

» Goals  Command-line algebraic manipulator

Mathematical Tools » Non-Free Mathematical Tools » MATLAB  » Mathematica Solves systems of quickly » Maple » Free Mathematical Tools » GNU Octave  » mathomatic Very colorful output »R » SAGE

Electrical Engineering Tools

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 9/41 R

» Goals  Open-source clone/ of S-Plus Mathematical Tools  » Non-Free Mathematical Tools Statistical analysis suite » MATLAB » Mathematica » Maple » Free Mathematical Tools » GNU Octave » mathomatic »R » SAGE

Electrical Engineering Tools

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 10/41 SAGE

» Goals  A "viable free open source alternative to Magma, Maple, Mathematical Tools Mathematica, and Matlab" » Non-Free Mathematical Tools » MATLAB  » Mathematica Modular: you can call other programs from inside SAGE » Maple  » Free Mathematical Tools Uses Python for mathematics » GNU Octave » mathomatic »R » SAGE

Electrical Engineering Tools

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 11/41 Non-free EE tools

» Goals  ModelSim: highly advanced digital circuit simulator Mathematical Tools  Cadence Virtuoso: IC development suite Electrical Engineering Tools  » Non-free EE tools Altera Quartus: HDL synthesis/simulation design tool » Free EE tools »  Xilinx ISE: HDL-based design tool for Xilinx FPGAs » gnucap » » gEDA: Introduction » gEDA: Workflow » ghdl » iverilog »GPL Cver » gtkwave » gwave » gspeakers

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 12/41 Free EE tools

» Goals  ngspice, gnucap: backend circuit simulators Mathematical Tools  ktechlab: fledgling GUI schematic input project Electrical Engineering Tools  » Non-free EE tools gEDA: fully-featured design automation suite » Free EE tools » ngspice  ghdl, freehdl: VHDL compilers and simulators » gnucap » ktechlab  » gEDA: Introduction iverilog, GPL Cver: Verilog compiler and simulator » gEDA: Workflow  » ghdl gtkwave: Waveform viewer » iverilog »GPL Cver  gwave: Waveform viewer for SPICE-like simulations » gtkwave » gwave  gspeakers: Speaker enclosure design tool » gspeakers

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 13/41 ngspice

» Goals  SPICE simulator with graphing support

Mathematical Tools

Electrical Engineering Tools  » Non-free EE tools Uses ’’ as a backend » Free EE tools » ngspice » gnucap  » ktechlab Uses gnuplot as a graphing frontend » gEDA: Introduction » gEDA: Workflow » ghdl  » iverilog Default does not contain very many devices »GPL Cver » gtkwave » gwave » gspeakers  http://ngspice.sourceforge.net/

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 14/41 gnucap

» Goals  GNU Circuit Analysis Package: general purpose circuit Mathematical Tools simulator

Electrical Engineering Tools » Non-free EE tools » Free EE tools  » ngspice Not like SPICE: designed to do true mixed-mode simulation » gnucap (analog/digital) » ktechlab » gEDA: Introduction » gEDA: Workflow » ghdl  » iverilog Mostly compatible with the SPICE language »GPL Cver » gtkwave » gwave  » gspeakers Command-line tool for use in batch mode, like SPICE

Chemistry Tools variants

Physics Tools  Other Tools http://www.gnu.org/software/gnucap/

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 15/41 ktechlab

» Goals  Digital/analog circuit simulator for basic to moderately Mathematical Tools complicated circuits

Electrical Engineering Tools » Non-free EE tools » Free EE tools  » ngspice Relatively new; version 0.3.6 is the most recent » gnucap » ktechlab » gEDA: Introduction  » gEDA: Workflow Similar in design to Cadence PSpice or NI Multisim » ghdl » iverilog (Windows-only products) »GPL Cver » gtkwave » gwave  » gspeakers Does not seem to have specific models of devices

Chemistry Tools  Physics Tools Library of generic devices seems somewhat limited, but

Other Tools useful for basic applications

Questions?  http://ktechlab.org/

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 16/41 gEDA: Introduction

» Goals  gEDA is the most prominent suite of electronic design Mathematical Tools automation tools

Electrical Engineering Tools » Non-free EE tools  » Free EE tools A massive set of applications with functionality including: » ngspice » gnucap Schematic capture » ktechlab Attribute management » gEDA: Introduction » gEDA: Workflow Bill of materials (BOM) generation » ghdl » iverilog Netlisting »GPL Cver » gtkwave Analog/digital simulation » gwave » gspeakers PCB layout Chemistry Tools  http://www.geda.seul.org Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 17/41 gEDA: Workflow

» Goals

Mathematical Tools

Electrical Engineering Tools » Non-free EE tools » Free EE tools » ngspice » gnucap » ktechlab » gEDA: Introduction » gEDA: Workflow » ghdl » iverilog »GPL Cver » gtkwave » gwave » gspeakers

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 18/41 ghdl

» Goals  Complete VHDL simulator that implements the IEEE VHDL Mathematical Tools standard Electrical Engineering Tools  » Non-free EE tools Does not support Verilog » Free EE tools  » ngspice Mostly compatible with ModelSim » gnucap » ktechlab  Does not support synthesis » gEDA: Introduction » gEDA: Workflow  » ghdl Runs from the command line; use gtkwave to look at » iverilog simulation results »GPL Cver » gtkwave  » gwave Slow development: last release (0.26) in April 2007 » gspeakers  http://ghdl.free.fr/ Chemistry Tools

Physics Tools

Other Tools  freehdl is a similar project that never got off the ground Questions?  http://freehdl.seul.org/

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 19/41 iverilog

» Goals  Verilog simulation and synthesis (to XNF files) implemented

Mathematical Tools

Electrical Engineering Tools  » Non-free EE tools One-man design team (Steven Williams), so releases are » Free EE tools » ngspice slow » gnucap » ktechlab » gEDA: Introduction  » gEDA: Workflow Project is currently relatively stable » ghdl » iverilog »GPL Cver  » gtkwave http://www.icarus.com/eda/verilog/ » gwave » gspeakers

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 20/41 GPL Cver

» Goals  Fully implemented 1995 P1364 Verilog HDL simulator

Mathematical Tools  Electrical Engineering Tools Does not do synthesis » Non-free EE tools » Free EE tools  » ngspice Has been around for longer than iverilog and has a larger » gnucap » ktechlab design team » gEDA: Introduction » gEDA: Workflow  » ghdl Releases are very slow since the project became proprietary » iverilog »GPL Cver » gtkwave » gwave  » gspeakers New project is ’CVC’; but is non-free

Chemistry Tools  http://www.pragmatic-c.com/gpl-cver/ Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 21/41 gtkwave

» Goals  GTK-based application for viewing digital waveforms

Mathematical Tools  Electrical Engineering Tools Reads many different simulation formats: LXT, LXT2, VZT, » Non-free EE tools » Free EE tools GHW, VCD, EVCD » ngspice » gnucap  » ktechlab Simple, stable (current version is 3.1.3), and easy to use » gEDA: Introduction » gEDA: Workflow  » ghdl Configurable through rc files » iverilog »GPL Cver » gtkwave  http://home.nc.rr.com/gtkwave/ » gwave » gspeakers

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 22/41 gwave

» Goals  A waveform viewer for analog waveforms, such as SPICE Mathematical Tools output

Electrical Engineering Tools » Non-free EE tools  » Free EE tools Can read output from HSpice, Spice2, Spice3, ngspice, » ngspice » gnucap CAzM, gnucap, and other binary / ASCII formats » ktechlab » gEDA: Introduction  » gEDA: Workflow A component of the gEDA suite » ghdl » iverilog  »GPL Cver Relatively stable; last release 2006-06-06 » gtkwave » gwave » gspeakers  http://www.geda.seul.org/tools/gwave/

Chemistry Tools

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 23/41 gspeakers

» Goals  Simple GTK-based application for speaker design

Mathematical Tools  Electrical Engineering Tools Development appears to have stopped; last version (0.11) » Non-free EE tools » Free EE tools released in 2004 » ngspice » gnucap  » ktechlab Driver design, enclosure design, and crossover network » gEDA: Introduction » gEDA: Workflow design » ghdl » iverilog  »GPL Cver Sometimes confusing and unpolished, but somewhat usable » gtkwave » gwave  » gspeakers Has the potential to be a great application for speaker

Chemistry Tools design... if someone finished it

Physics Tools  http://gspeakers.sourceforge.net/ Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 24/41 Chemistry tools

» Goals  chemtool: organic molecule drawing program Mathematical Tools  rasmol, pymol: molecular renderer Electrical Engineering Tools  easychem: presentation-focused chemical structure Chemistry Tools » Chemistry tools drawing program » chemtool » rasmol / pymol  openbabel: converter for molecular modeling file formats » easychem » openbabel  Physics Tools http://sal.jyu.fi/Z/2/index.shtml lists many

Other Tools chemistry programs for Linux

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 25/41 chemtool

» Goals  A small program for drawing chemical structures

Mathematical Tools Electrical Engineering Tools  Uses GTK Chemistry Tools » Chemistry tools » chemtool  » rasmol / pymol Stable; latest release 1.6.11 » easychem » openbabel

Physics Tools  Produces simple, functional chemical structures

Other Tools

Questions?  Exports eps for easy inclusion in LATEXdocuments

 http://ruby.chemie.uni-freiburg.de/~martin/chemtoo

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 26/41 rasmol / pymol

» Goals  Molecule analyzers: makes molecules easier to visualize Mathematical Tools and interpret

Electrical Engineering Tools  Chemistry Tools RasMol can convert between various color pallettes for easy » Chemistry tools » chemtool interpretation, but its power is mostly from the fairly simple » rasmol / pymol command-line interface » easychem » openbabel  Physics Tools PyMol produces images that are usually found on textbook

Other Tools covers or pages due to their intricate detail

Questions?  PyMol does not have as powerful a command-line interface as RasMol

 RasMol: http://www.openrasmol.org/  PyMol: http://pymol.sourceforge.net/

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 27/41 easychem

» Goals  Simple program designed to draw chemical molecules

Mathematical Tools  Electrical Engineering Tools Still in semi-early development: current version is 0.6 and a

Chemistry Tools new version has not appeared since early 2006 » Chemistry tools » chemtool  » rasmol / pymol http://easychem.sourceforge.net/ » easychem » openbabel

Physics Tools

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 28/41 openbabel

» Goals  A suite of several programs including conversion utilities,a Mathematical Tools ’grep’ for molecules, and other tools

Electrical Engineering Tools

Chemistry Tools  » Chemistry tools Converts over 80 different chemistry-related formats » chemtool » rasmol / pymol » easychem  » openbabel

Physics Tools http://openbabel.sourceforge.net/wiki/Main_Page

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 29/41 Physics Tools

» Goals  ROOT: large-scale data analysis tool Mathematical Tools  lightspeed: interactive OpenGL relativistic simulator Electrical Engineering Tools  jaxodraw: Java program for drawing Feynman diagrams Chemistry Tools  Physics Tools Open Dynamics Engine: industrial quality libraries for » Physics Tools articulated rigid body dynamics simulations » ROOT » lightspeed  » Open Dynamics Engine celestia: OpenGL 3D space simulator » celestia  maestro: NASA’s program to control the Spirit and Other Tools Opportunity rovers Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 30/41 ROOT

» Goals  A set of object-oriented frameworks for processing very Mathematical Tools large sets of data Electrical Engineering Tools  Designed for parallel operation on clustered systems Chemistry Tools  The language ROOT uses is ++ Physics Tools » Physics Tools  http://root.cern.ch/ » ROOT » lightspeed » Open Dynamics Engine » celestia

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 31/41 lightspeed

» Goals  Simple utility for viewing relativistic effects on geometric Mathematical Tools lattices

Electrical Engineering Tools Chemistry Tools  Can handle 3DStudio and LightWave 3D objects Physics Tools » Physics Tools » ROOT  » lightspeed Uses OpenGL to render objects » Open Dynamics Engine » celestia

Other Tools  For a given velocity, this utility displays what it would look like Questions? when relativistic effects are considered

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 32/41 Open Dynamics Engine

» Goals  Free physics SDK licensed under the BSD license

Mathematical Tools Electrical Engineering Tools  Used by many non-mainstream games, including smash hits Chemistry Tools like Amsterdam Taxi Madness, Simulator Bob, and Physics Tools » Physics Tools Shanghai Street Racer » ROOT » lightspeed » Open Dynamics Engine  » celestia Good for simulating articulated rigid body structures

Other Tools

Questions?  Emphasizes speed and stability over physical accuracy

 http://www.ode.org/

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 33/41 celestia

» Goals  OpenGL 3D space simulation

Mathematical Tools Electrical Engineering Tools  Not technically a physics tool, but it’s really cool Chemistry Tools

Physics Tools » Physics Tools  Allows you to explore space, with nice OpenGL graphics » ROOT » lightspeed » Open Dynamics Engine » celestia  http://www.shatters.net/celestia/

Other Tools

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 34/41 Other tools

» Goals  : Diagram drawing utility Mathematical Tools  kivio: KOffice flowcharting utility (similar to Visio) Electrical Engineering Tools  LAT X: typesetting utility Chemistry Tools E  Physics Tools xfig: Drawing utility  Other Tools The GIMP: GNU Image Manipulation Program » Other tools » dia  umbrello: UML modeler » kivio » LATEX » xfig » umbrello

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 35/41 dia

» Goals  GTK-based diagram drawing utility

Mathematical Tools  Electrical Engineering Tools GUI model similar to the GIMP

Chemistry Tools  Can be used for flowcharting, circuit diagrams, block Physics Tools diagrams, and other diagrams Other Tools » Other tools » dia  Large database of components you can diagram and link » kivio » LATEX together » xfig » umbrello  Questions? Exports as almost any graphics format  http://www.gnome.org/projects/dia/

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 36/41 kivio

» Goals  KOffice’s diagramming and flowcharting application

Mathematical Tools Electrical Engineering Tools  Library of diagrammable components is not very large; Chemistry Tools however, it supports Dia components Physics Tools

Other Tools  » Other tools Very similar to Dia, but GUI model is like KOffice and not the » dia » kivio GIMP » LATEX » xfig » umbrello  http://www.koffice.org/kivio/ Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 37/41 LATEX

» Goals  Typesetting language; able to produce beautiful documents

Mathematical Tools Electrical Engineering Tools  Used to make this presentation Chemistry Tools

Physics Tools  See previous presentations on LAT X: Other Tools E » Other tools http://lugatgt.org/articles/latex2/ » dia » kivio » LATEX » xfig  http://www.latex-project.org » umbrello

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 38/41 xfig

» Goals  Tool for drawing complex diagrams

Mathematical Tools Electrical Engineering Tools  Similar to Dia and Kivio, but GUI is different Chemistry Tools

Physics Tools  http://www.xfig.org Other Tools » Other tools » dia » kivio » LATEX » xfig » umbrello

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 39/41 umbrello

» Goals  -based UML modeler

Mathematical Tools Electrical Engineering Tools  Can take a series of C files and generate a UML hierarchy Chemistry Tools

Physics Tools  Somewhat buggy for very large diagrams Other Tools » Other tools » dia » kivio  http://uml.sourceforge.net/ » LATEX » xfig » umbrello

Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 40/41 Questions?

» Goals

Mathematical Tools

Electrical Engineering Tools

Chemistry Tools

Physics Tools

Other Tools

Questions? » Questions?

Ryan Curtin Getting your system to boot with initrd and initramfs - p. 41/41