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_OpenMPif set toON, theeasifemBaselibrary is built withOpenMPwith shared memory parallelization.- The default value is
ON - You can set this option by using
--D USE_OpenMP:BOOL=ON.
- If
CMAKE_BUILD_TYPEis set toRelease, then highly optimized version ofeasifemBaseis built without any debugging facility. - If
CMAKE_BUILD_TYPEis 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_LIBSis 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_PLPLOTis set toON, thenPlPlotlibrary will be used for plotting figures. If you have set this option toONthen make sure you have downloadedPlPlotlibrary while building system requirements. - In case
USE_PlPLOTis set toOFF, thenPlPlotlibrary will not be used for plotting figures. In this case, plotting may not be possible fromeasifemlibrary. - 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_PREFIXis aPATHoption, which specifies the location of file system whereeasifemBaselibrary 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_BLAS95is set toON, then FORTRAN-95 interface toBLASlibrary will be used. In external packages if you have installedBLAS95library, 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_LAPACK95is set toON, then FORTRAN-95 interface toLAPACKlibrary will be used. In external packages if you have installedLAPACK95library, 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_FFTWis set toON, thenFFTWlibrary will be used for Fast Fourier Transform.FFTWstands for Fast Fourier Library in the West. In external packages if you have installedFFTWlibrary, 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_GTKis set toON, thenGTKlibrary will be used for making Graphic User Interfaces. In external packages if you have installedgtk4library, 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_ARPACKis set toON, thenARPACKlibrary will be used for computing eigenvalues and eigenvectors of sparse matrices. In external packages if you have installedarpacklibrary, 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_SUPERLUis set toON, thensuperlulibrary will be used for linear solver. In external packages if you have installedsuperlulibrary, 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_LISis set toON, thenLISlibrary will be used for solving system of linear equations by using iterative methods. In external packages if you have installedlislibrary, 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_PARPACKis set toON, then parallelARPACKlibrary calledPARPACKwill be used for computing the eigenvalues and eigenvectors of large sparse matrices. In external packages if you have installedparpacklibrary, 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_METISis set toON, thenMETISlibrary will be used for graph partitioning. In external packages if you have installedmetislibrary, 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_SUPERLUis set toON, thensuperlulibrary will be used for linear solver. In external packages if you have installedsuperlulibrary, 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_Int32is 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_Real64is 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