The old homepage for version 2.0 can be found here. The website will be remodelled once the new version 3.0 goes online.
Genesis Version 3.0 - Beta
The next verison of Genesis is almost ready to be released. However I make the code available in advance so that I can react on the feedback from the users. There might be several little and bigger bugs still in the code I haven't caught. Any feedback is very welcome.
New Features of Genesis 1.3 - Version 3.0
List of changes:
Genesis - Version 3.2.2 - Beta: zip-archive
Postprocessor for HDF5 outputfiles with Matlab: gzip-archive
Bug - Report
Beta 3.0.1: Particle dumps and output was writing x-coordinates for y plane as well. Fixed.
Beta 3.0.3: Output of dataset "z" in group "lattice" had zeros for IPHSTY larger than one. Fixed.
Beta 3.0.5: Importing external distribution with IONE4ONE option was producing incorrect results and some segmentation errors. Fixed
Beta 3.1.1: Importing external distribution with harmonic conversion didn't work in steady-state regime because genesis forces a mismatch of the slice length by setting ZSEP to unity.
Beta 3.1.1: When importing external PARTFILE in ione4one simulation the current was limited to CURPEAK in the main input deck despite the current value in the particle file. fixed.
Beta 3.2.1: The warning that output has not been selected for NHARM=1 has been removed
Beta 3.2.1: In steady state ZSEP was forced to be set to one, resulting in a warning that the ration ZSEP/DELZ is not an integer. For steady state ZSEP is now set to DELZ and has no further impact on steady state simulations
Beta 3.2.1: The calculation of slippage were wrong when DELZ and ZSEP aren't identical. This could result in steady-state like behaviour in time-dependent simulations. The bug has been fixed
Beta 3.2.1: In MPI runs, each node were filling up the slippage field while only the root node is using.This could lead to a very large memory consumption beyond the availability on computer nodes. Now only the root node is fillingup the record which holds the slippage field. Note that some native FORTRAN compiler do preallocate any array and that despite not usingit the memory is reserved for each node.
Beta 3.2.2: A bug has been removed which suppressed slippage in long undulator towards the end.
Genesis is written in Fortran and C++ and requires the libraries for HDF5 and MPI. All the communication and HDF5 input/output is done in C++. The Fortran part does not see any of the advanced libraries.
Step 1 - Compilation of the Fortran Code
All Fortran source code needs to be compiled into object files, typically using the -c option of the compiler. The source code can be found inthe directory src/FORTRAN.
Step 2 - Compilation of the Source Code
Same with the C++ code. The source can be found in src/C++ src/C++/Output src/C++/Input and src/C++/Util. The include files can be found in include/. The compile requires also the definition of some macros, namely HARMMAX=7, NZMAX=10000 and GENESIS_VERSION=3.0 The value of HARMMAX and NZMAX can be chosen smaller for a smaller footprint int he memory but it might be easier to exceed the limitation in simulation.
Step 3 - Linking
The C++ and Fortran object code need to be linked together as well as the external libraries, which are namely the MPI extension for C++ and the FortrantoC wrapper as well as the external libraries for MPI and HDF5.
In the distribution a Makefile is supplied which is working for a specific implementation of the Gnu compiler, openmpi and hdf5 implementation. It might not work on all system but it is the best guideline to compile Genesis.
A web-based forum has been created at:
where users and developer can report bugs, exchange information, request help etc. Feel free to register there to keep updated with the latest development of Genesis
Sven Reiche, Villigen 6/29/12