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 -
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
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
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
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
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