Easifem Base
note
Before installing the easifemBase
library please make sure that you have installed
Building from sourceβ
EASIFEM CLI (recommended method)β
You can install easifemBase
by using the command line application.
easifem install base
Using CMakeβ
EASIFEM uses CMake build system. To manually install easifem
from the source we need to perform following tasks.
- Download the source code from git repository.
- Configuration the project by using CMake.
- Build by using CMake.
- Install by using CMake.
Download the source code from git repository by using one of the methods:
- Git+https
- Git+ssh
- GitHub CLI
- β’
git clone https://github.com/vickysharma0812/easifem-base.git base
git clone git@github.com:vickysharma0812/easifem-base.git base
gh repo clone vickysharma0812/easifem-base base
After downloading the source code, enter the source directory π, and make a build directory.
cd base
mkdir ./build
To configure the easifemBase
library you can define following variables:
Variable | Type | Options | Default |
---|---|---|---|
USE_OpenMP | BOOL | ON , OFF | ON |
CMAKE_BUILD_TYPE | STRING | Release , Debug | Release |
BUILD_SHARED_LIBS | BOOL | ON , OFF | ON |
USE_PLPLOT | BOOL | ON , OFF | ON |
CMAKE_INSTALL_PREFIX | PATH | Please specify | $EASIFEM_BASE |
USE_BLAS95 | BOOL | ON , OFF | ON |
USE_LAPACK95 | BOOL | ON , OFF | ON |
USE_FFTW | BOOL | ON , OFF | ON |
USE_GTK | BOOL | ON , OFF | OFF |
USE_ARPACK | BOOL | ON , OFF | ON |
USE_SUPERLU | BOOL | ON , OFF | ON |
USE_LIS | BOOL | ON , OFF | ON |
USE_PARPACK | BOOL | ON , OFF | OFF |
USE_METIS | BOOL | ON , OFF * | OFF |
USE_Int32 | BOOL | ON , OFF | ON |
USE_Real64 | BOOL | ON , OFF | ON |
Click here to know about the configuration options π
- USE_OpenMP
- CMAKE_BUILD_TYPE
- BUILD_SHARED_LIBS
- USE_PLPLOT
- β’
USE_OpenMP
if set toON
, theeasifemBase
library is built withOpenMP
with shared memory parallelization.- The default value is
ON
- You can set this option by using
--D USE_OpenMP:BOOL=ON
.
- If
CMAKE_BUILD_TYPE
is set toRelease
, then highly optimized version ofeasifemBase
is built without any debugging facility. - If
CMAKE_BUILD_TYPE
is set toDebug
, then some optimization is removed to allow debugging. - The default value is
Release
- You can set this option by using
--D CMAKE_BUILD_TYPE:STRING=Release
.
- If
BUILD_SHARED_LIBS
is set toON
, then position independent code (PIC) shared library will be built. Otherwise, a static library will be built. - The default value is
ON
- You can set this option by using
--D BUILD_SHARED_LIBS:BOOL=ON
.
- If
USE_PLPLOT
is set toON
, thenPlPlot
library will be used for plotting figures. If you have set this option toON
then make sure you have downloadedPlPlot
library while building system requirements. - In case
USE_PlPLOT
is set toOFF
, thenPlPlot
library will not be used for plotting figures. In this case, plotting may not be possible fromeasifem
library. - The default value is
ON
- You can set this option by using
--D USE_PLPLOT:BOOL=ON
.
- CMAKE_INSTALL_PREFIX
- USE_BLAS95
- USE_LAPACK95
- USE_FFTW
- β’
CMAKE_INSTALL_PREFIX
is aPATH
option, which specifies the location of file system whereeasifemBase
library will be installed. If you have set the environment variables correctly then you can specify it to$EASIFEM_BASE
, which is given by$EASIFEM_INSTALL_DIR/easifem/base/
- You can set this option by using
--D CMAKE_INSTALL_PREFIX:PATH=$EASIFEM_BASE
.
- If
USE_BLAS95
is set toON
, then FORTRAN-95 interface toBLAS
library will be used. In external packages if you have installedBLAS95
library, then you can set this option toON
, otherwise set it toOFF
. - The default value is
ON
- You can set this option by using
--D USE_BLAS95:BOOL=ON
.
- If
USE_LAPACK95
is set toON
, then FORTRAN-95 interface toLAPACK
library will be used. In external packages if you have installedLAPACK95
library, then you can set this option toON
, otherwise set it toOFF
. - The default value is
ON
- You can set this option by using
--D USE_LAPACK95:BOOL=ON
.
- If
USE_FFTW
is set toON
, thenFFTW
library will be used for Fast Fourier Transform.FFTW
stands for Fast Fourier Library in the West. In external packages if you have installedFFTW
library, then you can set this option toON
, otherwise set it toOFF
. - The default value is
ON
- You can set this option by using
--D USE_FFTW:BOOL=ON
.
- USE_GTK
- USE_ARPACK
- USE_SUPERLU
- USE_LIS
- β’
- If
USE_GTK
is set toON
, thenGTK
library will be used for making Graphic User Interfaces. In external packages if you have installedgtk4
library, then you can set this option toON
, otherwise set it toOFF
. - The default value is
OFF
- You can set this option by using
--D USE_GTK:BOOL=OFF
.
- If
USE_ARPACK
is set toON
, thenARPACK
library will be used for computing eigenvalues and eigenvectors of sparse matrices. In external packages if you have installedarpack
library, then you can set this option toON
, otherwise set it toOFF
. - The default value is
ON
- You can set this option by using
--D USE_ARPACK:BOOL=ON
.
- If
USE_SUPERLU
is set toON
, thensuperlu
library will be used for linear solver. In external packages if you have installedsuperlu
library, then you can set this option toON
, otherwise set it toOFF
. - The default value is
ON
- You can set this option by using
--D USE_SUPERLU:BOOL=ON
.
- If
USE_LIS
is set toON
, thenLIS
library will be used for solving system of linear equations by using iterative methods. In external packages if you have installedlis
library, then you can set this option toON
, otherwise set it toOFF
. - The default value is
ON
- You can set this option by using
--D USE_LIS:BOOL=ON
.
- USE_PARPACK
- USE_METIS
- USE_SUPERLU
- USE_Int32
- USE_Real64
- β’
- If
USE_PARPACK
is set toON
, then parallelARPACK
library calledPARPACK
will be used for computing the eigenvalues and eigenvectors of large sparse matrices. In external packages if you have installedparpack
library, then you can set this option toON
, otherwise set it toOFF
. - The default value is
OFF
- You can set this option by using
--D USE_PARPACK:BOOL=OFF
.
- If
USE_METIS
is set toON
, thenMETIS
library will be used for graph partitioning. In external packages if you have installedmetis
library, then you can set this option toON
, otherwise set it toOFF
. - The default value is
OFF
- You can set this option by using
--D USE_METIS:BOOL=OFF
.
- If
USE_SUPERLU
is set toON
, thensuperlu
library will be used for linear solver. In external packages if you have installedsuperlu
library, then you can set this option toON
, otherwise set it toOFF
. - The default value is
ON
- You can set this option by using
--D USE_SUPERLU:BOOL=ON
.
- If
USE_Int32
is set toON
, then 32-bit integer numbers will be used as default integers. Please do not set this toOFF
. - The default value is
ON
- You can set this option by using
--D USE_Int32:BOOL=ON
.
- If
USE_Real64
is set toON
, then 64-bit real numbers will be used as default real numbers. Please do not set this toOFF
. - The default value is
ON
- You can set this option by using
--D USE_Int32:BOOL=ON
.
An example of configuration step is given below:
export EASIFEM_BASE=${HOME}/.local/easifem/base
cmake -G "Ninja" -S ./ -B ./build \
-D USE_OpenMP:BOOL=ON \
-D CMAKE_BUILD_TYPE:STRING=Release \
-D BUILD_SHARED_LIBS:BOOL=ON \
-D USE_PLPLOT:BOOL=ON \
-D CMAKE_INSTALL_PREFIX:PATH=${EASIFEM_BASE} \
-D USE_BLAS95:BOOL=ON \
-D USE_LAPACK95:BOOL=ON \
-D USE_FFTW:BOOL=ON \
-D USE_GTK:BOOL=OFF \
-D USE_ARPACK:BOOL=ON \
-D USE_PARPACK:BOOL=OFF \
-D USE_LIS:BOOL=ON \
-D USE_METIS:BOOL=OFF \
-D USE_Int32:BOOL=ON \
-D USE_Real64:BOOL=ON
After configuration, you can build and install the library by using:
cmake --build ./build --target --install