Installation of EASIFEM on Linux Machine
Setup
Before installation of easifem we should setup a simple working environment for the library. This means that we need to set some environment variables and install some packages. The procedure is given below.
If you are not comfortable with setting up environment variables and installing packages on Linux then you should use the setup.py
script. This will do most of the things automatically. If there is any issue with this script then you can raise the issue on github, and I will try to overcome the issue.
python3 setup.py
The script asks you two questions:
Do you want to automatically Install external packages? 'yes' or 'no' [Y/n]:
If you want the script to download following pacakages, then type yes
else type no
.
- curl
- git
- gcc-10
- gfortran-10
- python-3
- python3-pip
- lapack
- cmake
- gmsh
- gnuplot
The next question that you need to answer is
Do you want to automatically set environment variables? 'yes' or 'no' [Y/n]:
If you want the script to set the environment variable then press
yes
elseno
. This would be enough, and you can jump to install section.
However, if you like to see and set the available options by yourself then follow the following instruction.
Install packages
Update linux by using following commands.
sudo apt update
apt list --upgradable
sudo apt upgrade
sudo apt install -y curl
sudo apt install -y git
sudo apt install -y gcc-10
sudo apt install -y gfortran-10
sudo apt install -y python3
sudo apt install -y python3-pip
sudo apt install -y liblapack-dev
sudo apt install -y openmpi-bin libopenmpi-dev
sudo apt install -y cmake
sudo apt install -y gmsh
sudo apt install -y gnuplot
gnuplot
andgmsh
are relatively big programs. You can ignore their installation if you want.
Set environment variables
Step 1: Go to home directory by using the following command, and check the existance of .bashrc
cd ~
ls ~/.bashrc
If .bashrc
file does not exists then you will receive an error message something like following.
ls: cannot access '.bashrc': No such file or directory
We can create the .bashrc
by following commands.
touch ~/.bashrc
Step 2 Create ~/.easifemrc
Similarly we will also create the another file ~/.easifemrc
.
touch ~/.easifemrc
Step 3 Editing ~/.easifemrc
Now we will add some important lines into ~/.easifemrc
to make our life easier while installing the library.
Open the ~/.easifemrc
in your favorite editor and add following lines.
#!/bin/sh
easifem_prefix=${HOME}
export EASIFEM_BASE=${easifem_prefix}/.easifem/base/
export EASIFEM_EXTPKGS=${easifem_prefix}/.easifem/extpkgs/
mkdir -p ${EASIFEM_EXTPKGS}
mkdir -p ${EASIFEM_BASE}
Step 4 Specifying alias for latest fortran and C/C++ compilers
easifemBase
has been tested using gfortran-10
. It is better to compiler easifemBase
using latest compilers. Therefore, one needs to define following alias for compiler in .easifemrc
export CC=/usr/bin/gcc-10
export CXX=/usr/bin/g++-10
export CPP=/usr/bin/cpp-10
export LD=/usr/bin/gcc-10
export FC=/usr/bin/gfortran-10
alias c++=/usr/bin/c++-10
alias g++=/usr/bin/g++-10
alias gcc=/usr/bin/gcc-10
alias cpp=/usr/bin/cpp-10
alias ld=/usr/bin/gcc-10
alias cc=/usr/bin/gcc-10
alias gfortran=/usr/bin/gfortran-10
- The 1st line specifies the path where easifem package will be installed, it is better to specify home the home directory
- The 2nd and 3rd should not be changed, these env-vars are needed in
CMakeLists.txt
file. - The 4th and the 5th lines create directories, do not change it
Step 5 Edit .bashrc
Now that we have added useful commands to our .easifemrc
, we can bring those changes in our .bashrc
by adding following lines in .bashrc
#!/bin/sh
source ~/.easifemrc
Step 6 Restart the shell
Now we restart the shell to bring following changes.
source ~/.bashrc