Last modified 3 years ago Last modified on 2016-02-23 17:05:53

FalconIC

First Installation

Obtaining the source using git

This is the easiest way, as you can merge later public releases of FalconIC. To download the source in such a way that you can easily merge future updates, follow these steps:

git clone --recursive git://git.falconb.org/valkenburg/falconic_public.git

If you want another branch than master, such as latfield, then in addition execute this command:

git checkout latfield

Obtaining the source manually

Browse the git repository where you can download a zip file (look for a tiny button below the text "Download in other formats").

Compiling

Now you have a full copy of all the source.

Next, go to the source folder:

cd falconic_public/src

edit the makefile to have the correct paths to OpenMPI and FFTW (or leave as default to build them from scratch), and make:

make

or override the compiler settings:

make CC=gcc CXX=g++
make CC=clang CXX=clang++

Running FalconIC

Go to the bin folder

cd falconic_public/bin

and run FalconIC:

./FalconIC

Modifying the source

Before you modify the source to match your needs, I recommend to create a new branch in the git repository by typing (at any path inside FalconIC):

git checkout -b my_branch

Choose whatever branch name you like in stead of my_branch.

Merging new releases of FalconIC

First, commit your own modifications to your own branch:

git commit -a -m 'Type your comments about your commit here.'

Next, first checkout the master branch,

git checkout master

and then pull the latest source from the public repository:

git pull public master

The last step will be to merge into your own branch

git checkout my_branch
git merge master

and that's it. If there are merge conflicts, git will tell you and indicate the conflicts in the source files. You can modify the source files to solve the conflicts. Then you need to commit again, just like above.

If you want to find out how to undo a merge, which is no problem for git, google for a solution. Also, you may want to create a new branch from your modifications, and merge the latest release into that branch, see if it works, and only then merge into your own branch. Anything is possible.