Warning: Undefined array key 1 in /home/np29546/public_html/elmerice/wiki/inc/auth.php on line 78
Warning: Cannot modify header information - headers already sent by (output started at /home/np29546/public_html/elmerice/wiki/inc/auth.php:78) in /home/np29546/public_html/elmerice/wiki/inc/auth.php on line 431
Warning: Cannot modify header information - headers already sent by (output started at /home/np29546/public_html/elmerice/wiki/inc/auth.php:78) in /home/np29546/public_html/elmerice/wiki/inc/Action/Export.php on line 104
Warning: Cannot modify header information - headers already sent by (output started at /home/np29546/public_html/elmerice/wiki/inc/auth.php:78) in /home/np29546/public_html/elmerice/wiki/inc/Action/Export.php on line 104
Warning: Cannot modify header information - headers already sent by (output started at /home/np29546/public_html/elmerice/wiki/inc/auth.php:78) in /home/np29546/public_html/elmerice/wiki/inc/Action/Export.php on line 104
====== Compilation with Cmake ======
===== Download =====
Elmer/Ice can be retrieved through the whole Elmer package via [[https://github.com/elmercsc/elmerfem|GitHub]]. From the shell of a system that has git installed, the command
git clone git://www.github.com/ElmerCSC/elmerfem -b elmerice elmerice
creates a local copy of the repository, directly linking the local elmerice branch to the one of the repository on GitHub (this seems to be necessary in less recent git-versions). Mind that in some occasions you might have to use the ''https'' instead of the ''git'' protocol.
Please, bear in mind that there are different branches in this repository. The Elmer development branch, ''devel'', usually does not contain the latest Elmer/Ice developments. In order to be sure to have an Elmer/Ice development that doesn't interfere with the main Elmer branch development, we created a branch named ''elmerice''. In order to check, which branch one is in, one can give the command
git status
Or, for a more concise view of your current branch (starred) and other local branches you can run
git branch -a
In order to change (if not already in) into the ''elmerice'' branch, one has to type
git checkout elmerice
If you have made a bare clone (i.e., without the ''-b elmerice elmerice'' option), there is a chance this command may leave you in the default (devel) branch without returning an error, so make sure to check your branch again. If you are still not in the elmerice branch and you are familiar with git you can make a local branch tracking the remote elmerice branch
git checkout --track origin/elmerice
===== Building Elmer/Ice =====
Elmer/Ice - in contrary to the earlier autotools version - is best built alongside the main Elmer using cmake. Consequently, the prerequisites match those needed for building Elmer in the first instance:
* A Fortran 90 compiler
* (GNU) Make
* cmake
In order to have Elmer/Ice automatically build alongside Elmer, add the following option to the cmake build command:
-DWITH_ElmerIce:BOOL=TRUE
The following script can act as a guideline to compile Elmer with Elmer/Ice included:
#!/bin/bash
CMAKE=cmake
# Installation directory (set these!)
TIMESTAMP=$(date +"%m-%d-%y")
ELMER_REV="Elmer_devel_${TIMESTAMP}"
ELMERSRC="/path/to/Elmer/Source/elmerice"
BUILDDIR="$ELMERSRC/builddir"
IDIR="/usr/local/$ELMER_REV"
# next line is optional
#TOOLCHAIN="/path/to/your/own/toolchainfile/yourtoolchainfile.cmake"
echo "Building Elmer from within " ${BUILDDIR}
echo "using following toolchain file " ${TOOLCHAIN}
echo "installation into " ${IDIR}
cd ${BUILDDIR}
pwd
ls -ltr
echo $CMAKE $ELMERSRC
# you can add a -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN,
# if you have a toolchain file declared
$CMAKE $ELMERSRC \
-DCMAKE_INSTALL_PREFIX=$IDIR \
-DCMAKE_C_COMPILER=/path/to/compiler/executable \
-DCMAKE_Fortran_COMPILER=/path/to/compiler/executable \
-DWITH_MPI:BOOL=TRUE \
-DWITH_Mumps:BOOL=TRUE \
-DWITH_Hypre:BOOL=TRUE \
-DWITH_Trilinos:BOOL=FALSE \
-DWITH_ELMERGUI:BOOL=FALSE \
-DWITH_ElmerIce:BOOL=TRUE
# change the -j4 to the number of available cores on your system
make -j4 && sudo make install
# this automatically links /usr/local/Elmer-devel to your new built
sudo rm /usr/local/Elmer-devel
sudo ln -s $IDIR /usr/local/Elmer-devel
On standard Linux systems the ''CMAKE_C_COMPILER'' will be set to ''/usr/bin/gcc'' and ''CMAKE_Fortran_COMPILER'' to ''/usr/bin/gfortran''.
Hint: if you need to use ''sudo''-rights to install, sometimes the ''-E'' option is in order to redirect the current environment to the process.
===== Usage =====
To use the Elmer/Ice Solvers and User functions, simply modify your sif files to point on the //ElmerIceSolvers// and //ElmerIceUSF// object files:
Procedure = File "ElmerIceSolvers" "NameSolver"
where ''NameSolver'' is the name of the solver you want to execute.
===== License =====
The complete tree ''elmerice'' is released under GPL 2 (or later), just like the rest of the code. The main difference of the ''elmerice'' subdirectory (in each branch) with respect to the rest of Elmer is that for Elmer/Ice the intellectual property lies not with CSC, but with the community. In short that means that no non-GPL branch can be derived from anyone (including CSC). This also means, that Elmer/Ice code has to stay within the ''elmerice'' tree.