forked from Expander/FlexibleSUSY
Creates spectrum generators for supersymmetric models
License
kerwinhui/FlexibleSUSY
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
FlexibleSUSY provides Mathematica and C++ code to create spectrum generators for non-minimal supersymmetric models. Requirements ============ * C++ compiler (g++ >= 4.6.0 or clang++ >= 3.1) * Fortran compiler (gfortran, ifort) * Mathematica (version 7.0 or higher) * SARAH (version 4.0 or higher) http://sarah.hepforge.org * Boost (version 1.36.0 or higher) http://www.boost.org * Eigen 3 (version 3.1 or higher) http://eigen.tuxfamily.org * GNU scientific library http://www.gnu.org/software/gsl/ * Lapack / Blas http://www.netlib.org/lapack/ Optional: * Looptools (version 2.8 or higher) http://www.feynarts.de/looptools/ How to create a model ===================== 0. Before you setup a FlexibleSUSY model, you have to provide a SARAH model file. The SARAH model file must be loadable via SARAH's Start[] function: $ math In[]:= Needs["SARAH`"] In[]:= Start["<model>"] Here <model> is the name of your model (e.g. MSSM, NMSSM, etc.). Note, that there are already plenty of pre-installed model files under SARAH/Models/ that can be used. 1. Setup a FlexibleSUSY model $ ./createmodel --name=<model> See `./createmodel --help' for more details. Afterwards there will be * a model directory models/<model>/ * a makefile module models/<model>/module.mk * a Mathematica start script models/<model>/start.m * and a FlexibleSUSY model file models/<model>/FlexibleSUSY.m To modify the model details, please edit the FlexibleSUSY model file models/<model>/FlexibleSUSY.m . 2. Create the Makefile and register your model $ ./configure --with-models=<model> Use `./configure --with-models=all' to build all available models. See `./configure --help' for more options. 3. Compile $ make When `make' is executed, Mathematica is called and generates the C++ code for the spectrum generator. All C++ source files are written to models/<model>/ . Afterwards this C++ code will be compiled and a user example spectrum generator models/<model>/run_<model>.x will be created. Example ======= $ ./createmodel --name=NMSSM $ ./configure --with-models=NMSSM $ make $ ./models/NMSSM/run_NMSSM.x Creating only the source code files -- no compilation ===================================================== If you want to only create the C++ source files for your model, but do not want to compile the code, you can use the --disable-compile configure option: $ ./configure --with-models=MSSM --disable-compile $ make Here, configure will not check for installed compilers or libraries. It will only check for Mathematica and SARAH. The execution of `make' will stop as soon as all C++ source code files are generated. Compile only ============ If you want to only compile already created the C++ source files for your model, you can use the --disable-meta configure option: $ ./configure --with-models=MSSM --disable-meta $ make Here, configure will only check for installed compilers or libraries. It will not check for Mathematica and SARAH. Warning: Please make sure all C++ source files of your model are available in the model directory models/<model>/ . Otherwise the compilation will fail. Dynamic libraries ================= If you want to create dynamic libraries (instead of static libraries) you have to pass all the following options to the ./configure script --disable-static-libs --with-lib-ext=".so" --with-make-lib-cmd="gcc -shared -o" Example: $ ./configure --with-models=MSSM,NMSSM \ --disable-static-libs \ --with-lib-ext=".so" \ --with-make-lib-cmd="gcc -shared -o" Important remark: The libraries are linked to the executables with _absolute_ paths. This means that, if you move the package directory to another location, the executables will no longer work, because the libraries are now at another place. To make the executables work again, you have to rebuild them via $ make clean-executables $ make allexec Looptools ========= It is possible to use Looptools (http://www.feynarts.de/looptools/) for calculating the loop functions, instead of using Softsusy's loop functions. To enable Looptools configure via $ ./configure --enable-looptools To use the Looptools library and header files from a specific directory configure via $ ./configure --enable-looptools \ --with-looptools-incdir="/path/to/looptools/build/" \ --with-looptools-libdir="/path/to/looptools/build/" Note: Looptools 2.8 or higher is required. Versions <= 2.7 will fail to build with the following compiler error message (or similar): In file included from models/MSSM/MSSM_two_scale_model.cpp:28:0: /usr/include/clooptools.h:67:28: error: conflicting declaration ‘typedef struct std::complex<double> Complex’ In file included from src/utils.h:15:0, from src/rge.h:17, from models/MSSM/MSSM_two_scale_soft_parameters.hpp:24, from models/MSSM/MSSM_two_scale_model.hpp:25, from models/MSSM/MSSM_two_scale_model.cpp:21: src/mycomplex.h:17:7: error: ‘class Complex’ has a previous declaration as ‘class Complex’
About
Creates spectrum generators for supersymmetric models
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published