= Software required for the workshop = If you have any problems in installing these softwares, please write to optpde13@math.tifrbng.res.in {{attachment:background.jpg||font-size="0.85em",line-height="1.25em",align="right",width=350}} There will be several sessions devoted to numerical examples. All participants are advised to bring a laptop, preferably with Unix/Linux/Mac operating system. The following compilers and softwares will be very useful for the excercises and also to install some of the needed softwares. * Fortran compiler: `gfortran` is recommended. * C/C++ compiler: The GNU compilers are recommended, ''preferably version 4.6 or newer''. * Matlab Below we give instructions on how to install the necessary softwares. We will install all these softwares into the directory `$HOME/optpde13` but you may install them anywhere else you like provided you set the path correctly. I will assume that you saved all downloaded softwares into the above directory. First create this directory {{{ mkdir $HOME/optpde13 }}} I will assume that you are using the `bash` shell. All the highlighted text as above must be entered at the shell. == L-BFGS-B == L-BFGS-B is a limited-memory quasi-Newton code for bound-constrained optimization, i.e. for problems where the only constraints are of the form l<= x <= u. The current release is version 3.0. You can get the latest version [[http://www.ece.northwestern.edu/~nocedal/lbfgsb.html|here]]. {{{ cd $HOME/optpde13 tar zxvf Lbfgsb.3.0.tar.gz }}} == Tapenade == Tapenade is an automatic differentiation tool which can be obtained free of cost for academic purpose from [[http://www-sop.inria.fr/tropics/tapenade/academiclicense.php|here]]. Once you fill the form and submit it, you will receive an email with instructions on how to download and install it. Follow these instructions carefully. You will need to install a recent Java runtime environment, atleast version 7 as of now. {{{ cd $HOME/optpde13 tar xvf tapenade3.7.tar }}} Then add following entries to your` .bashrc` file {{{ export TAPENADE_HOME=$HOME/optpde13/tapenade3.7 export PATH=$TAPENADE_HOME/bin }}} Now open a new terminal and test that tapenade is in your PATH and working correctly {{{ tapenade -? }}} If everything was correct, this should show you the command line options for tapenade. == ADOL-C == The package [[https://projects.coin-or.org/ADOL-C|ADOL-C]] (Automatic Differentiation by OverLoading in C++) facilitates the evaluation of first and higher derivatives of vector functions that are defined by computer programs written in C or C++. The resulting derivative evaluation routines may be called from C/C++, Fortran, or any other language that can be linked with C. You can obtain the latest version [[http://www.coin-or.org/download/source/ADOL-C/|here]]. {{{ cd $HOME/optpde13 tar zxvf ADOL-C-2.4.1.tgz cd ADOL-C-2.4.1 ./configure --prefix=$HOME/optpde13/adolc make make install }}} == IPOPT == [[https://projects.coin-or.org/Ipopt|Ipopt]] (Interior Point OPTimizer, pronounced eye-pea-Opt) is a software package for large-scale ​nonlinear optimization. You can obtain the latest release of Ipopt from [[http://www.coin-or.org/download/source/Ipopt/|here]]. Detailed installation instructions are given [[http://www.coin-or.org/Ipopt/documentation/node10.html|here]], which is 3.11.4 at the time of writing this. {{{ cd $HOME/optpde13 tar zxvf Ipopt-3.11.4.tgz }}} We need to compile Ipopt along with atleast one of the linear solvers like ma27, ma57, ma77, ma86, pardiso, wsmp and mumps. * You can obtain an Academic license to HSL solvers from [[http://www.hsl.rl.ac.uk/ipopt/|here]]. Click on the link under '''Coin-HSL 2011'''. You have to fill up a form and wait for them to approve your request. If you are not an academic you can request a personal license which gives you the ma27 solver. Save the file as `hsl.tar` into `$HOME/optpde13`. Then do the following {{{ cd $HOME/optpde13/Ipopt-3.11.4/ThirdParty/HSL tar xvf $HOME/optpde13/hsl.tar }}} This extracts into a directory whose name may be like `coinhsl-2012.12.21`. Rename this directory {{{ mv coinhsl-2012.12.21 coinhsl }}} * If you have `wget` installed on your computer you can download MUMPS like this {{{ cd $HOME/optpde13/Ipopt-3.11.4/ThirdParty/Mumps ./get.Mumps }}} * Some of the linear solvers can make use of the matrix ordering algorithms implemented in METIS. Download metis like this {{{ cd $HOME/optpde13/Ipopt-3.11.4/ThirdParty/Metis ./get.Metis }}} * Now compile Ipopt {{{ cd $HOME/optpde13/Ipopt-3.11.4 ./configure --prefix=$HOME/optpde13/ipopt make make install }}} == deal.II == deal.II is a library that facilitates the writing of finite element programs to solve differential equations. It is recommended to install version 7.3.0 of deal.II which can be obtained from [[https://code.google.com/p/dealii/downloads/detail?name=deal.II-7.3.0.tar.gz|here]]. Detailed installation instructions can be found [[http://www.dealii.org/7.3.0/index.html|here]] and we give some basic steps below. {{{ cd $HOME/optpde13 tar zxvf deal.II-7.3.0.tar.gz cd deal.II ./configure --with-umfpack --with-blas --with-lapack make all }}} This will take some time to compile. Once it is finished, try the included examples. {{{ cd $HOME/optpde13/deal.II/examples/step-1 make ./step-1 }}} == Fenics == [[http://fenicsproject.org|Fenics]] is a software for writing FEM programs in an automated manner. You can find detailed instructions to obtain binary versions of Fenics for most common operating systems [[http://fenicsproject.org/download/|here]]. == Plotting and visualization == It is recommended to install the following tools for visualizing results. * [[http://gnuplot.info|Gnuplot]]: This can be most easily installed using your package manager. * [[https://wci.llnl.gov/codes/visit/|Visit]]: You can obtain binary package from their website. * [[http://www.paraview.org|Paraview]]: You can obtain binary package from their website.