Project Concepts

Installation guide

=== Download - How to get access ?

We have a public licence version for everybody who is interested to use the library. For those who are interested to contribute to the library or need latest changes in a collaboration project we provide access to the developers version.

For the communication to the users and in between them we have the mailing list: ["https://lists.math.ethz.ch/sympa/info/concepts-users"]

==== Download of a public licence version

We will provide in short time a version of the Concepts library under GPL licence at this place. ==== Download of the developers version

Access to the current developing version of Concepts is offered via the version management system git and using gitlab under request. For this contact [:People:Kersten].

If you have obtained the access details login into gitlab, the graphical user interface to git, at [:https://gitlab.math.ethz.ch/users/sign_in]] and contact [[People:Kersten] again to be added to the project.

Then, once you have been added to the project, proceed as follows.

==== First run: creation of the configuration files

Run the configuration script

<pre> cd $(CONCEPTS_DEV) ./configure </pre>

that will generate the files boost-build.jam, boost-build-modules.jam, Jamfile and project-root.jam. You also have to add the path to the (future) Concepts library writing in your =~/.profile= file

<pre>export CONCEPTS_DEV="/scratch/kersten/Concepts-Dev" export LD_LIBRARY_PATH="$CONCEPTS_DEV/libconcepts:$LD_LIBRARY_PATH"</pre>

then reload the configuration using

<pre>source ~/.profile</pre>

if your using e.g. bash on Ubuntu.

=== Pre-setup environment

The Concepts library requires the GCC compiler (version >= 4.7.x) or the LLVM compiler (version >= 3.4.x) with the support of the C++-11 standard. If this compiler is not natively available on your system, you have th preset the environment to be able to use it.

==== Pre-setup environment (Linux)

Make sure that you have administrative rights or ask your system administrator to do so. For the Linux distributions Debian or Ubuntu install the packages

<pre>gcc gfortran g++</pre>

using the packet manager if you want to use the gcc compiler, and install the packages

<pre>clang libclang-common-dev</pre>

using the packet manager if you want to use the clang compiler.

==== Pre-setup environment (MAC OS X System)

Make sure that you have administrative rights or ask your system administrator to do so.

==== Pre-setup environment (Windows 10 System, 64-bits version)

Make sure that you have administrative rights or ask your system administrator to do so. Install [https://msdn.microsoft.com/en-us/commandline/wsl/install_guide Bash on Ubuntu on Windows] then follow the Linux-related instructions. If you cannot manage to download the Ubuntu app from the Windows store, one possible solution is to run the Powershell program as an administrator and type lxrun /install.

=== Installation of tools for compilation

There are two others tools that are used during the compilation process: [http://www.boost.org/doc/tools/build/index.html Boost Build] and the coupled Bison and Flex compilers.

==== Installation of bjam

bjam is the tool used for the compilation process.

===== !! Installing packages in Debian, Ubuntu or Redhat

For the Linux distributions Debian or Ubuntu install the package <pre>libboost-tools-dev</pre>

===== !! Direct installation

The manual installation holds as follow:

==== Installation of bison and flex

===== !! Installing packages in Debian, Ubuntu or Redhat

For the Linux distributions Debian or Ubuntu install the package <pre>flex bison libfl-dev</pre>

===== !! Direct installation

The manual installation holds as follow:

If you encounters issues with bison and/or flex, you can disable then using USE_DUMMY=yes; in your configuration file.

Remark while using USE_DUMMY=yes;, there might be issues into loading .cig files.

==== Installation of python

If you want to compile the Python version of Concepts, or if you want to use the CIG mesh generator, you have to install the python (version 2.x) interpreter and subsequent libraries. This program can be installed using your package manager.

===== !! Installing packages in Debian

For the Linux distributions Debian or Ubuntu install the package

<pre>python2.7-dev libpython2.7 libboost-python-dev python-numpy python-scipy scons python-matplotlib</pre>

===== !! Manual installation

===== !! Installation of the boost.numpy package

There are two ways to obtain the boost.numpy package:

scons install --install-sandbox=. </pre>

cd Boost.Numpy git clone https://github.com/classner/SConsChecks.git scons install --install-sandbox=.</pre>

In both cases, you will have to set up the boost-build-modules.jam <pre> modules.poke : BOOSTNUMPY_PATH : /path/to/boostnumpy/usr/local/lib ; modules.poke : BOOSTNUMPY_INCLPATH : /path/to/boostnumpy/usr/local/include ; </pre>

==== !! Remarks

=== Installation of external libraries

The standard path for the libraries is either =/usr/lib=, =/usr/lib64=, or a directory parallel to the Concepts path =$(CONCEPTS_DEV)=. For example, if the Concepts path is

<pre>/scratch/kersten/Concepts-Dev</pre>

then Concepts searches for the !SuperLU library in

<pre>/usr/lib /usr/lib64 /scratch/kersten/SuperLU</pre>

To specify individual pathes, edit =$(CONCEPTS_DEV)/boost-build-modules.jam=.

On MAC OS X system, the additional path =/opt/local/lib= is added to the standard path list.

==== Required packages

The following external libraries have to be installed into the system path.

The following external libraries have to be installed

==== Additional packages

===== Compression library zlib

===== !! Installing packages in Debian

For the Linux distributions Debian or Ubuntu install the package

<pre>zlib1g-dev</pre>

or the package

<pre>lib64z1-dev</pre>

===== !! Remarks

The installed library must have the name libz.so. If the filename has a suffix of the version number, e.g. it reads libz.so.3, you need to create a symbolic link by executing <pre>sudo ln -s libz.so.3 libz.so </pre> in the directory where the library is located.

===== Parallel compiler mpi

===== !! Installing packages in Debian

For the Linux distributions Debian or Ubuntu install the packages

<pre>openmpi-bin openmpi-common libopenmpi-dev</pre>

If you are also using the Python version of Concepts, install the additional package

<pre>python-mpi4py</pre>

===== Direct solver

You can install one of the sparse solvers MUMPS, Umfpack, !SuperLU (by order of preference). Furthermore information can be found [:InstallationGuideDirectSolver:following this link].

Remark: if you plan to use Concepts to solve sparse (un)symmetric linear systems that involve complex numbers, installation of one of the sparse solvers is required.

===== Eigenvalue solver

You can install one of the eigenvalue solvers Arpack, Trilinos, Jdbsym (by order of preference). Furthermore information can be found [:InstallationGuideEigenvalueSolver:following this link].

Remark: the shift-and-invert method used by the Arpack eigenvalue solver calls implicitely either the MUMPS direct solver or the !SuperLU direct solver, depending on which solver is installed.

===== Optional libraries

These libraries are not required if you want to use Concepts, but add several features used for particular problems. Furthermore information can be found [:InstallationGuideExtraLibraries:following this link].

=== Compilation of the Concepts library

==== Errors during compilation

Remark If you get the error

<pre>don't know how to make <pbuilds/toolbox/gcc-4/debug-object(c-scanner)@3334>input.cpp<br />don't know how to make <pbuilds/toolbox/gcc-4/debug-object(c-scanner)@3329>lexer.c</pre>

during the compilation, the reason is that you're using a too old version of bjam (e.g. the verions 2011.12). We should recommend you to upgrade your version of bjam. Alternatively, you can let the first compilation run until bjam tried to create the libconceptstoolbox library, stop it, and re-run it.

Remark If you get the error

<pre>undefined reference to `zbesh_wrap'</pre>

or a similar error during the compilation, you should add the line

<pre><library>/site-config//gfortran</pre>

in the file =$(CONCEPTS_DEV)/Jamfile= just after the line requirements &lt;hardcode-dll-paths&gt;true.

== Write your first application


Read access to these pages for all, read-write access for members of ConceptsMembersGroup.