eXlibriseXtended finite element Librairies (Version June 2016)

 

Compilation

Compilation is under cmake utility. You will need to create a text file called CMakeLists.txt.

To help you to edit CMakeLists files with highlighted keywords under Ecclipse, KDevelop, Emacs or others, visit the following help

Now we will install first independant libraries upon which all libraries are based. Copy the following line in CMakeLists.txt:

cmake_minimum_required(VERSION 2.6)
project(MyProjet)
enable_testing()
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Util/cmakeUtil/ )
include(common_functions)
set(CMAKE_BUILD_TYPE Release)
#set(CMAKE_BUILD_TYPE Debug)
#set(BLAS_VENDOR OPENBLAS)
option(ENABLE_SUPERLU "use SuperLu" OFF)
option(ENABLE_TAUCS "use Taucs interface" OFF)
option(USE_OCTREE "Use Octree" OFF)
option(USE_XCRACK "Use Xcrack" OFF)
option(USE_GEOM "Use Geom" OFF)
option(USE_CGAL "use library CGAL" OFF)
option(USE_XCUT "Use Xcut" OFF)
option(USE_XTLS "Use xTLS" OFF)
add_subdirectory(Trellis)
add_subdirectory(Xfiles)
add_subdirectory(Xinterfaces)
add_subdirectory(Xtest)

Note that some options are turned to OFF for a basic installation.

Save the CMakeLists.txt file and create a build directory in the eXlibris directory.

mkdir build
cd build

inside the build directory, type:

cmake ..

and then:

inside the build directory, type:

make

compilation wil begin and the following libraries will be build (in RELEASE Version, here).

libmodel.so
libUtil.so
libAOMD.so
libXfem.so
libXext.so
libAnalyticalSolutions.so
libPhysics.so
libSolverBase.so


if Lapack and blas libraries have been found on your system, other libraires will appear:

libNonLinearSolver.so
libLapack.so

 

and the following test-cases:

for SolverInterfaces:

Lapack:
test1
NonLinearSolver:
scalarparabola
Solverbase:
xCSRVector
xDenseMatrix
xGenericSparseMatrixCopyConstructor
xGenericSparseMatrixCopyTranspose
xToDense

for Xfem :

addlayers
functional_UpdateInterpolation_2D
functional_xPhysSurfByTagging_xRefCutToAOMD_cutMeshByRef_3D_movingls
functional_xPhysSurfByTagging_xRefCutToAOMD_cutMeshByRef_3D_rarecase
functional_xRefCutToAOMD_cutMeshByRef_3D_Recursif
functional_xtensor2_eigen_computation
functional_xVector_xTensor2_xTensor4
hexQuadLevelset
lset_transform ls_propag
pointwise
simplexify
tensor4_rotation
tensor2_norms

for Xext:

circularhole

Now, we will make our first installation. Type:

make install

This should print something like this on screen:

[ 7%] Built target Util
[ 33%] Built target model
[ 53%] Built target AOMD
[ 78%] Built target Xfem
[ 83%] Built target Xext
[ 84%] Built target AnalyticalSolutions
[ 91%] Built target Physics
[ 91%] Built target Lapack
[ 91%] Built target NonLinearSolver
[ 93%] Built target SolverBase
[ 93%] Built target xCSRVector
[ 94%] Built target xDenseMatrix
[ 94%] Built target xGenericSparseMatrixCopyConstructor
[ 94%] Built target xGenericSparseMatrixCopyTranspose
[ 95%] Built target xToDense
[ 95%] Built target test1
[ 96%] Built target scalarparabola
[ 96%] Built target addlayers
[ 97%] Built target functional_UpdateInterpolation_2D
[ 97%] Built target functional_xPhysSurfByTagging_xRefCutToAOMD_cutMeshByRef_3D_movingls
[ 97%] Built target functional_xPhysSurfByTagging_xRefCutToAOMD_cutMeshByRef_3D_rarecase
[ 98%] Built target functional_xRefCutToAOMD_cutMeshByRef_3D_Recursif
[ 98%] Built target functional_xVector_xTensor2_xTensor4
[ 98%] Built target functional_xtensor2_eigen_computation
[ 99%] Built target hexQuadLevelset
[ 99%] Built target ls_propag
[ 99%] Built target lset_transform
[ 99%] Built target pointwise
[ 99%] Built target simplexify
[ 99%] Built target tensor2_norms
[100%] Built target tensor4_rotation
[100%] Built target circularhole
Install the project...
-- Install configuration: "Release"
-- Installing: /home/external/eXlibris/lib/x86_64_Linux_Release/libmodel.so
-- Installing: /home/external/eXlibris/lib/x86_64_Linux_Release/libUtil.so
-- Installing: /home/external/eXlibris/lib/x86_64_Linux_Release/libAOMD.so
-- Removed runtime path from "/home/external/eXlibris/lib/x86_64_Linux_Release/libAOMD.so"
-- Installing: /home/external/eXlibris/lib/x86_64_Linux_Release/libXfem.so
-- Installing: /home/external/eXlibris/lib/x86_64_Linux_Release/Boost_Version.info
-- Installing: /home/external/eXlibris/lib/x86_64_Linux_Release/libXext.so
-- Installing: /home/external/eXlibris/lib/x86_64_Linux_Release/libAnalyticalSolutions.so
-- Installing: /home/external/eXlibris/lib/x86_64_Linux_Release/libPhysics.so
-- Installing: /home/external/eXlibris/lib/x86_64_Linux_Release/libSolverBase.so
-- Installing: /home/external/eXlibris/lib/x86_64_Linux_Release/libLapack.so
-- Installing: /home/external/eXlibris/lib/x86_64_Linux_Release/libNonLinearSolver.so

You can see that the above build libraries will be copy in a lib/x86_64_Linux_Release directory inside your repository eXlibris. They are build in a release version to improve furthur running time. If you need a Debug version you just have to change the type as follow:

change

set(CMAKE_BUILD_TYPE Release)

by:

set(CMAKE_BUILD_TYPE Debug)

in the CMakeLists.txt file and to repeat the above operations.

cd build
cmake ..
make
make install

The librairies will be copy in lib/x86_64_Linux_Debug.

To test that all is OK, visite the test page.