French Forest Sector Model (FFSM++)

Laboratoire d'Economie Forestière - LEF - Nancy, France

User Tools

Site Tools


en:dev:development

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:dev:development [2020/07/30 15:54]
Antonello Lobianco [ColPack]
en:dev:development [2024/04/30 15:00] (current)
Antonello Lobianco [Ipopt]
Line 8: Line 8:
 This section contains detailed instructions on how to get and install the IDE and all the necessary prerequisites, in both Windows or Linux environment. For the former, third party libraries (IPOPT, Adol-C, ColPack) are already available within the FFSM source code repository, so the instruction for their installation refers only to the case that a new version of them is released and the user want to upgrade to it.\\ This section contains detailed instructions on how to get and install the IDE and all the necessary prerequisites, in both Windows or Linux environment. For the former, third party libraries (IPOPT, Adol-C, ColPack) are already available within the FFSM source code repository, so the instruction for their installation refers only to the case that a new version of them is released and the user want to upgrade to it.\\
  
-===== Linux (Ubuntu 20.04) =====+:!:  NOTE: It's many years we don't try the Windows procedure, so it is likely to be obsolete. We strongly suggest to use FFSM in Linux, eventually using a virtual machine or the Windows Subsystem for Linux (WSL). 
 + 
 +===== Linux (Ubuntu 22.04) =====
  
 //See older revisions of this page for older Ubuntu systems and for tips to solving some errors no longer occurring in Ubuntu 18.04 and 16.10.// //See older revisions of this page for older Ubuntu systems and for tips to solving some errors no longer occurring in Ubuntu 18.04 and 16.10.//
Line 14: Line 16:
 The following packages and their prerequisites should be installed: The following packages and their prerequisites should be installed:
 <code bash> <code bash>
-sudo apt-get install qt5-default qt5-qmake qtcreator libatlas-base-dev gfortran zlib1g-dev libboost-all-dev+sudo apt-get install build-essential gfortran gcc g++ gcc-12  
 +sudo apt-get install libtool git patch wget pkg-config 
 +sudo apt-get install zlib1g-dev libboost-all-dev  libblas-dev liblapack-dev liblapack64-dev libmetis-dev libatlas-base-dev 
 +sudo apt-get install qtbase5-dev qtbase5-dev-tools qtchooser qt5-qmake qtcreator 
 +</code> 
 + 
 +(not all are likely to be necessary, we just tried successfully this combination) 
 + 
 +Create a folder for installing the various FFSM dependencies. Here we use `~/programs`: 
 + 
 +<code bash> 
 +cd ~ 
 +mkdir programs 
 +cd programs
 </code> </code>
  
 ==== Ipopt ==== ==== Ipopt ====
-  * Downolad Ipopt (Ipopt-3.XX.X.tgz) from http://www.coin-or.org/download/source/Ipopt/ and extract it to somewhere where there is no spaces in the path. + 
-  * In the extracted directory move to ThirdParty and for {Metis|Mumps|ASL} go in their subfolder and run "./get.{Metis|Mumps|ASL}". This will download and extract them to a place that the ipopt configure will automatically find them+Ipopt is the solver engine used by FFSMItself it uses several libraries. The procedure describe below installs all the "third partiesIPOPT libraries and finally IPOPT itself
-  For using the HSL linear solver (optional, as it requires a free academic licence, but way faster than MUMS) go to http://www.hsl.rl.ac.uk/ipopt/ and download "Coin-HSL Full (Stable)", "Source". Wait for the email with the link and then unzip, rename and move the archive as to be ThirdParty/HSL/coinhsl  + 
-  * Create a build directory, move there and from there type:<code bash> +For using the HSL linear solver (optional, as it requires a free academic licence, but way faster than MUMS) go to http://www.hsl.rl.ac.uk/ipopt/ and download "Coin-HSL Full (Stable)", "Source". Wait for the email with the link and then unzip, rename and move the archive as to be `~/programs/Ipopt/ThirdParty/HSL/coinhsl`  
-../configure --with-blas="-L/usr/lib/atlas-base/atlas -lblas" --with-lapack="-L/usr/lib/atlas-base/atlas -llapack" --prefix="/usr" 'CXXFLAGS=-O3' 'CFLAGS=-O3'+ 
 +<code bash> 
 +mkdir Ipopt 
 +cd Ipopt 
 +wget https://github.com/coin-or/Ipopt/archive/refs/tags/releases/3.14.16.tar.gz 
 +tar -xzf 3.14.16.tar.gz 
 + 
 +cd ~/programs/Ipopt 
 +git clone https://github.com/coin-or-tools/ThirdParty-ASL.git 
 +cd ThirdParty-ASL 
 +./get.ASL 
 +./configure
 make make
 sudo make install sudo make install
 +cd ..
 +git clone https://github.com/coin-or-tools/ThirdParty-HSL
 +cd ThirdParty-HSL
 +[extract the HSL archive as `~/programs/Ipopt/ThirdParty/HSL/coinhsl`]
 +./configure
 +make
 +sudo make install
 +cd ../Ipopt-releases-3.14.16/
 +mkdir build
 +cd build
 +../configure --prefix="/usr" 'CXXFLAGS=-O3' 'CFLAGS=-O3'
 +make
 +sudo make install
 +cd ../../..
 </code> </code>
  
Line 31: Line 71:
   * Needed ColPack >= 1.0.8   * Needed ColPack >= 1.0.8
   * Type:<code bash>   * Type:<code bash>
-sudo apt-get install libtool +git clone https://github.com/CSCsw/ColPack.git  # Download ColPack as ~/programs/ColPack
-git clone https://github.com/CSCsw/ColPack.git  # Download ColPack+
 cd ColPack                                       # ColPack Root Directory cd ColPack                                       # ColPack Root Directory
 git checkout 10b780b52a25c6ccef3d2abc12055ee85b7e8667 # checkout a version know to works git checkout 10b780b52a25c6ccef3d2abc12055ee85b7e8667 # checkout a version know to works
Line 39: Line 78:
 make make
 sudo make install sudo make install
 +cd ..
 </code> </code>
  
Line 44: Line 84:
 ==== ADOL-C ==== ==== ADOL-C ====
  
-  * Download ADOL-C (ADOL-C-2.X.X.tgz) from http://www.coin-or.org/download/source/ADOL-C/ 
   * Type:<code bash>   * Type:<code bash>
 +mkdir ADOL-C
 +cd ADOL-C
 +wget https://www.coin-or.org/download/source/ADOL-C/ADOL-C-2.7.2.zip
 +unzip ADOL-C-2.7.2.zip
 +cd ADOL-C-2.7.2/
 ./configure --enable-docexa --enable-addexa --enable-sparse --prefix=/usr 'CXXFLAGS=-O3' 'CFLAGS=-O3' ./configure --enable-docexa --enable-addexa --enable-sparse --prefix=/usr 'CXXFLAGS=-O3' 'CFLAGS=-O3'
 make make
 sudo make install sudo make install
 +</code>
 +
 +==== Symlinks ====
 +
 +  * On 64 bits Linux, symlink all libadoc.* libraries from /usr/lib64 to /usr/lib:<code bash>
 +cd /usr/lib
 +sudo ln -s ../lib64/libadolc.la . 
 +sudo ln -s ../lib64/libadolc.so .
 +sudo ln -s ../lib64/libadolc.so.2 .
 +sudo ln -s ../lib64/libadolc.so.2.1.0 .
 +sudo ln -s ../lib64/libadolc.so.2.2.0 .
 +</code>
 +  * Make a symlink in the include system directory to the new name of coin (coin-or):<code bash>
 +cd /usr/include
 +sudo ln -s coin-or coin
 </code> </code>
  
en/dev/development.1596117261.txt.gz · Last modified: 2020/07/30 15:54 by Antonello Lobianco