Prev Next

@(@\newcommand{\B}[1]{ {\bf #1} } \newcommand{\R}[1]{ {\rm #1} } \newcommand{\W}[1]{ \; #1 \; }@)@This is dismod_at-20221105 documentation: Here is a link to its current documentation .
Installing dismod_at in Unix

System Requirements
     C++ Compiler
     Fortran Compiler
     git
     cmake
     pkg-config
     python3
     sqlite3
     gsl
     suitesparse
Download dismod_at.git
Paths
     Adding to a Path
     PKG_CONFIG_PATH
     LD_LIBRARY_PATH
     PATH
     PYTHONPATH
Special Requirements
     run_cmake.sh
     eigen
     ipopt
     cppad
     cppad_mixed
dismod_at
     Setup
     Cmake Command
     Build
     Test
     Install
Example

System Requirements
The following programs are required by dismod_at and should have standard system installs:

C++ Compiler
The dismod_at program can be compiled by any C++98 compliant compiler; e.g., g++. (Note that a C++11 compiler would be better.)

Fortran Compiler
A fortran compiler is required by ipopt which in turn is required by dismod_at.

git
The git program, a source code version control system, is required by dismod_at.

cmake
The cmake program, which installs other programs, is required by dismod_at.

pkg-config
The pkg-config program must be installed.

python3
The python3 , programming language. The packages listed in the standard library are assumed to be present. You need to have the following additional python packages: numpy, matplotlib, scipy, build.

sqlite3
The http://sqlite.org/ library, version 3.7.11 (released on 2012-03-20) or higher; see sqlite releases . Note that the development headers are required; e.g., on Fedora or Red-Hat one needs to install sqlite-devel.

gsl
gsl , the gnu scientific library. Note that the development headers are required; e.g., on Fedora or Red-Hat one needs to install gsl-devel.

suitesparse
The suitesparse sparse matrix package. Note that the development headers are required; e.g., on Fedora or Red-Hat one needs to install suitesparse-devel.

Download dismod_at.git
After installing the requirements above, use the following command to get the current version of dismod_at:
   git clone https://github.com/bradbell/dismod_at.git dismod_at.git
   cd dismod_at.git
You can determine the git_hash and version number corresponding to this checkout of the master branch using the commands:
   git show-ref | grep 'refs/heads/master'
   grep '^SET(dismod_at_version' CMakeLists.txt
You can checkout an old version corresponding to a specific git_hash , and check its version number, using the commands:
   git checkout -q 
git_hash
   grep '^SET(dismod_at_version' CMakeLists.txt

Paths
This discussion is intended to help with the install of the special requirements and dismod_at (see below).

Adding to a Path
The instructions below may require you to add to a path_name . Use the command
   echo $
path_name
to see if your initial path is empty. If it is empty, use the command
   export 
path_name=directory
to add directory to the path. If it is non-empty, use
   export 
path_name="$path_name:directory"
to add directory to the path.

PKG_CONFIG_PATH
After sqlite3 and gsl are installed the following commands should work:
 
   pkg-config sqlite3 --modversion
   pkg-config gsl     --modversion
If one of them fails, a corresponding directory is missing from the PKG_CONFIG_PATH environment variable. If prefix is the prefix where gsl was installed, the command
   find -L 
prefix -name gsl.pc 2> /dev/null
should find the directory where gsl.pc is located. After cppad_mixed is installed (see below), the following command should work:
   pkg-config 
pkg --modversion
where pkg is any of the special requirements below. (There is one exception, the eigen package uses eigen3 for pkg above.) If one of these commands fails,
   find -L 
dismod_at_prefix -name pkg.pc 2> /dev/null
should find the directory where pkg.pc is located; see dismod_at_prefix .

LD_LIBRARY_PATH
The library locations are set at link time using cmake's always full rpath commands. Hence, it should not be necessary to set LD_LIBRARY_PATH in order for dismod_at to work.

PATH
After you install dismod_at (see below) you should be able to execute the command
   dismod_at
from any directory. If you get the error dismod_at: command not found, you will need to add the binary install directory to you path. Use the following command to find it:
   find -L 
dismod_at_prefix -name dismod_at 2> /dev/null
see dismod_at_prefix .

PYTHONPATH
After you install dismod_at you should be able to execute the following commands:
   
python3
   import dismod_at
   quit()
where python3 is your python3 executable . If you get the error No module named 'dismod_at', you will need to add the directory where the module is installed to your python path. Use the following command to find it:
   find -L 
dismod_at_prefix -name site-packages 2> /dev/null

Special Requirements
The packages listed below are required by dismod_at and may not have standard system installs

run_cmake.sh
The settings in bin/run_cmake.sh are used by the scripts that install the special requirements. You must first change these settings to the appropriate values for your system before running the install scripts below:

eigen
The eigen linear algebra package. The script bin/get_cppad_mixed.sh (see below) includes an install of eigen.

ipopt
The Ipopt optimization package. The script bin/get_cppad_mixed.sh (see below) includes an install of ipopt.

cppad
The cppad C++ algorithmic differentiation package. The script bin/get_cppad_mixed.sh (see below) includes an install of cppad.

cppad_mixed
The cppad_mixed C++ random effects modeling package. Starting in the dismod_at.git directory, the command
   bin/get_cppad_mixed.sh
can be used to install eigen, ipopt, and cppad_mixed. This script also serves as an example of how to install cppad_mixed.

dismod_at
The steps above should only need to be executed once, not for each new version of dismod_at (unless the release_notes say otherwise). The steps below will need to be executed each time you install a new version of dismod_at:

Setup
The file bin/run_cmake.sh has setting that you should change so they correspond to your machine.

Cmake Command
After changing bin/run_cmake.sh to work for your system, in the dismod_at.git directory execute the following command:
 
   bin/run_cmake.sh
The script also serves as an example of how to install dismod_at.

Build
The following command is option and will just build the executable program build/devel/dismod_at:
 
   cd build
   make
   cd ..

Test
The following commands are optional and will, build the dismod_at executable, build the examples and tests, and run the examples, correctness tests, and speed tests:
 
   cd build
   make check
   make speed
   cd ..
Some of the tests use different random number simulations each time they are run. If you get a correctness check failure during a make check or make speed, try running the make command again. If you get the same correctness check fails twice in a row, there probably is a problem and you should get help from the dismod_at development team.

Install
The following command will, build the dismod_at library and executable if necessary, and install dismod_at:
 
   cd build
   make install install_python
   cd ..

Example
The file example_install.sh contains an example install of dismod_at. The section get_started contains a list of examples and tests of using dismod_at. These tests are run as part of the make check command above.
Input File: omh/install/unix.omh