Skip to content

Commit

Permalink
Merge branch 'development' into feature-2.0-lambda-ewsb-solvers
Browse files Browse the repository at this point in the history
Conflicts:
	src/fixed_point_iterator.hpp
  • Loading branch information
Alexander Voigt authored and Alexander Voigt committed Sep 19, 2016
2 parents cc94ff2 + c6ccb57 commit c3f0bd0
Show file tree
Hide file tree
Showing 191 changed files with 10,682 additions and 695 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Expand Up @@ -44,6 +44,7 @@ model_files/SMNoRGEs export-ignore
model_files/TensorCoupling export-ignore
model_files/THDMIIMSSMBCApprox export-ignore
model_files/HGTHDMIIMSSMBCApprox export-ignore
model_files/SMtower export-ignore

models/fmssm export-ignore
models/fmssmn export-ignore
Expand Down
11 changes: 10 additions & 1 deletion AUTHORS
@@ -1,4 +1,13 @@
Core developers
===============

Peter Athron peter.athron@coepp.org.au
Jae-hyeon Park jae.park@uv.es
Jae-hyeon Park jhpark@kias.re.kr
Dominik Stöckinger Dominik.Stoeckinger@tu-dresden.de
Alexander Voigt Alexander.Voigt@desy.de

Contributors
============

Dylan Harries
Tom Steudtner
77 changes: 75 additions & 2 deletions ChangeLog
@@ -1,4 +1,60 @@
Flexiblesusy-1.5.2 [not released yet]
FlexibleSUSY-1.7.0 [September, 19 2016]

* Feature: FlexibleSUSY is now able to generate custom spectrum
generators using the FlexibleEFTHiggs method described in
[arXiv:1609.00371]. The following FlexibleEFTHiggs example models
are provided: CMSSMtower, MSSMtower, MSSMNoFVtower, NMSSMtower,
NUHMSSMalttower, MRSSMtower, E6SSMtower. A documentation of the
new model file options to create a custom FlexibleEFTHiggs spectrum
generator can be found in doc/html/FlexibleEFTHiggs.html .

* Feature: FlexibleSUSY now provides a Mathematica interface for the
generated spectrum generators. For each model, an example
Mathematica script

models/<model>/run_<model>.m

is generated, which illustrates the usage. The documentation of
the Mathematica interface and several examples can be found in
FlexibleSUSY's HTML documentation. Please see the section
"Creating the soucre code documentation" in the README file for a
description about how to generate the documentation.

* Change: The configure options for creating dynamic libraries and
statically linked executable have been changed. By default, static
FlexibleSUSY libraries and dynamically linked executables are
created.

To generate shared FlexibleSUSY libraries, run

$ ./configure --enable-shared-libs ...

To generate statically linked executables, run

$ ./configure --enable-static ...

Please refer to the README file for more information.

* Bugfix (commit 39f8d36): Fix segfault when multi-threading is used
in statically linked executables.

* Bugfix (commit 3126ac1): Catch NaNs from inside the MSSM 2L Higgs
mass routines of Pietro Slavich.

* Bugfix (commit b6db614): Correcting 2-loop self energy O(alpha_t^2)
in the Standard Model. Before, Eq. (20) of arxiv:1205.6497 has
been used. However, this is incorrect, because it includes 2-loop
contributions from the momentum iteration of the 1-loop self
energy, which would be double counted, because FlexibleSUSY already
does a momentum iteration of the 1-loop self energy. To fix this,
Eq. (20) of arxiv:1504.05200 has been used, which does not include
these 2-loop pieces.

FlexibleSUSY-1.6.1 [August, 28 2016]

* Bugfix (commit db67c81): Fix compilation with --disable-threads .

FlexibleSUSY-1.6.0 [August, 27 2016]

* Feature (commit 4e9ef56): Allow user to access the beta-functions
of the model parameters on the r.h.s. of the constraints. BETA[p]
Expand All @@ -25,6 +81,16 @@ Flexiblesusy-1.5.2 [not released yet]
* Feature (commits 98bc536, e8fd56a): Speed up of the RG running in
models with very complicated beta functions.

* Change (commit 728b5ea): `make clean' no longer removes generated
source files to avoid the need to re-generate them. To remove the
generated files use either

$ make clean-<model>-src # deletes generated files for <model>

or

$ make clean-generated # deletes all generated files

* Bugfix (commit a5342eb): Avoid non-portable use of sed in
createmodel. This fixes `make install-src' on Mac.

Expand All @@ -33,7 +99,14 @@ Flexiblesusy-1.5.2 [not released yet]
mass routines of P. Slavich call calculate_spectrum() at the same
time.

Flexiblesusy-1.5.1 [July, 12 2017]
* Bugfix (commit 0d08b99): Do not try to generate non-squared unit
matrices for beta function expressions that must be splitted.
Non-squared unit matrices did appear for non-squared matrix-valued
parameters, as for example T[hE] in the SE6SSM.

Thanks to Dylan Harries.

FlexibleSUSY-1.5.1 [July, 12 2016]

* Bugfix (commit 63f5361): Fix numerical instability of SOFTSUSY's B1
function in parameter regions with p << m1,m2 and m1 close to m2.
Expand Down
122 changes: 98 additions & 24 deletions README
Expand Up @@ -210,28 +210,31 @@ 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
you need to pass the --enable-shared-libs option to the ./configure
script. The default file name extension for the shared libraries as
well as the command to build the libraries can be overwritten using
the

--disable-static-libs
--with-lib-ext=".so"
--with-make-lib-cmd="gcc -shared -o"
--with-shared-lib-ext=
--with-shared-lib-cmd=

When using Intel compilers, replace `gcc' by `icc' or `icpc'.
parameters. For example, when Intel compilers should be used, replace
`gcc' by `icc' or `icpc'.

Example:

$ ./configure --with-models=MSSM,NMSSM \
--disable-static-libs \
--with-lib-ext=".so" \
--with-make-lib-cmd="gcc -shared -o"
$ ./configure --with-models=CMSSM,NMSSM \
--enable-shared-libs \
--with-shared-lib-ext=".so" \
--with-shared-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
location, the executables will no longer find the libraries, because
the libraries are now at another place. To make the executables find
the libraries again, you have to relink them via

$ make clean-executables
$ make allexec
Expand All @@ -240,20 +243,38 @@ have to rebuild them via
Statically linked executables
=============================

External libraries can be statically linked to the spectrum generator
executables by setting linker specific flags in LDFLAGS. On some
systems additional libraries have to be linked to the executables in
such cases. In FlexibleSUSY such additional libraries can be
specified in the variable LDLIBS.
External libraries can be linked statically to the spectrum generator
executables by passing --enable-static to configure.

Example (using g++ on Debian Jessie):

$ ./configure --with-models=CMSSM --enable-static

If --enable-static is used, the following linker flags and additional
libraries will be used:

LDFLAGS = -static
LDLIBS = -ldl

These linker specific flags and additional libraries can be
overwritten using

--with-static-ldflags=
--with-static-ldlibs=

Example:

$ ./configure --with-models=CMSSM \
--with-ldflags="-static" \
--with-ldlibs="-lquadmath"
--enable-static \
--with-static-ldflags="-static" \
--with-static-ldlibs="-lquadmath -ldl"

This will create a standalone executable which does not depend on
dynamic libraries.
In case of dynamic linking, the options

--with-shared-ldflags=
--with-shared-ldlibs=

must be used to set LDFLAGS and LDLIBS.


Looptools
Expand Down Expand Up @@ -348,30 +369,83 @@ the above example) and an executable (addons/<addon>/run.x in the
above example).


Mathematica interface
=====================

FlexibleSUSY can be called from within Mathematica using Wolfram's
LibraryLink. By default, FlexibleSUSY creates a LibraryLink library
for each spectrum genreator. The generated library can be found in
models/<model>/<model>_librarylink.so, where <model> is the model
name.

Example for the CMSSM:

Get["models/CMSSM/CMSSM_librarylink.m"];

(* Create a handle to a model given the input parameters.
See Options[FSCMSSMOpenHandle] for all default options. *)
handle = FSCMSSMOpenHandle[
fsSettings -> { precisionGoal -> 1.*^-4 },
fsSMParameters -> { Mt -> 173.3 },
fsModelParameters -> {
m0 -> 125, m12 -> 500, TanBeta -> 10, SignMu -> 1, Azero -> 0 }
];

(* calculate pole mass spectrum *)
FSCMSSMCalculateSpectrum[handle]

(* calculate observables *)
FSCMSSMCalculateObservables[handle]

(* close the model handle *)
FSCMSSMCloseHandle[handle];

For each model, FlexibleSUSY creates an example Mathematica script
which illustrates the use of the Mathematica interface. The generated
example can be found in

models/<model>/run_<model>.m

which can be run for example as

$ math -run "<< \"models/<model>/run_<model>.m\""

Before running it, the model parameters in the script should be set to
reasonable values. More advanced examples can be found in the
FlexibleSUSY documentation.

Note: In order to compile the library, Mathematica must be installed.
To disable the LibraryLink interface, configure with
--disable-librarylink .


Cleaning
========

There are several make targets to remove generated files, compiled
object files, libraries or executables:

$ make clean # deletes all .d .o .a .x and generated files
$ make clean # deletes all .d .o .a .x files

$ make distclean # calls `make clean' and deletes in addition
$ make distclean # does `clean' and `clean-generated'
# and deletes in addition:
# Makefile flexiblesusy-config config.*
# config/list_sarah_model_files.sh

$ make clean-dep # deletes all .d files

$ make clean-executables # deletes all .x files

$ make clean-generated # deletes generated files

$ make clean-lib # deletes all libraries

$ make clean-obj # deletes all .o files

For each model <model> or addon there are specific clean targets to
remove model-specific files:

$ make clean-<model> # deletes .d .o .a .x and generated files
$ make clean-<model> # deletes .d .o .a .x files

$ make distclean-<model> # same as `make clean-<model>'

Expand Down
4 changes: 2 additions & 2 deletions addons/GM2Calc/module.mk
Expand Up @@ -65,7 +65,7 @@ EXEGM2Calc_EXE := \
$(patsubst %.cpp, %.x, $(filter %.cpp, $(EXEGM2Calc_SRC)))

LIBGM2Calc := \
$(DIR)/lib$(MODNAME)$(LIBEXT)
$(DIR)/lib$(MODNAME)$(MODULE_LIBEXT)

LIBGM2Calc_INSTALL_DIR := $(INSTALL_DIR)/$(DIR)

Expand Down Expand Up @@ -109,7 +109,7 @@ endif
$(LIBGM2Calc_DEP) $(EXEGM2Calc_DEP) $(LIBGM2Calc_OBJ) $(EXEGM2Calc_OBJ): CPPFLAGS += $(EIGENFLAGS) $(BOOSTFLAGS)

$(LIBGM2Calc): $(LIBGM2Calc_OBJ)
$(MAKELIB) $@ $^
$(MODULE_MAKE_LIB_CMD) $@ $^

$(DIR)/%.x: $(DIR)/%.o $(LIBGM2Calc) $(LIBFLEXI) $(LIBLEGACY)
$(CXX) -o $@ $(call abspathx,$^)
Expand Down
4 changes: 2 additions & 2 deletions addons/test_call_tsil/module.mk
Expand Up @@ -39,7 +39,7 @@ EXEtest_call_tsil_EXE := \
$(patsubst %.f, %.x, $(filter %.f, $(EXEtest_call_tsil_SRC)))

LIBtest_call_tsil := \
$(DIR)/lib$(MODNAME)$(LIBEXT)
$(DIR)/lib$(MODNAME)$(MODULE_LIBEXT)

LIBtest_call_tsil_INSTALL_DIR := \
$(INSTALL_DIR)/$(DIR)
Expand Down Expand Up @@ -101,7 +101,7 @@ $(LIBtest_call_tsil_DEP) $(EXEtest_call_tsil_DEP) $(LIBtest_call_tsil_OBJ) $(EXE
endif

$(LIBtest_call_tsil): $(LIBtest_call_tsil_OBJ)
$(MAKELIB) $@ $^
$(MODULE_MAKE_LIB_CMD) $@ $^

$(EXEtest_call_tsil_EXE): $(EXEtest_call_tsil_OBJ) $(LIBtest_call_tsil) $(LIBFLEXI) $(LIBLEGACY) $(filter-out -%,$(LOOPFUNCLIBS))
$(CXX) -o $@ $(call abspathx,$^) $(filter -%,$(LOOPFUNCLIBS)) $(GSLLIBS) $(BOOSTTHREADLIBS) $(THREADLIBS) $(LAPACKLIBS) $(BLASLIBS) $(TSILLIBS) $(FLIBS)
Expand Down
12 changes: 6 additions & 6 deletions config/Makefile.customized-betas.in
Expand Up @@ -8,7 +8,7 @@ ENABLE_FFLITE := @ENABLE_FFLITE@
ENABLE_LOOPTOOLS := @ENABLE_LOOPTOOLS@
ENABLE_THREADS := @ENABLE_THREADS@

LIBEXT := @LIBEXT@
MODULE_LIBEXT := @MODULE_LIBEXT@

MODEL := CMSSM

Expand All @@ -25,10 +25,10 @@ INCFLEXI := -I$(FLEXIDIR)
INCLEGACY := -I$(LEGACYDIR)
INCFFLITE := -I$(FFLITEDIR)
INCSLHAEA := -I$(SLHAEADIR)
LIBMODEL := $(MODELDIR)/lib$(MODEL)$(LIBEXT)
LIBFLEXI := $(FLEXIDIR)/libflexisusy$(LIBEXT)
LIBLEGACY := $(LEGACYDIR)/liblegacy$(LIBEXT)
LIBFFLITE := $(FFLITEDIR)/libfflite$(LIBEXT)
LIBMODEL := $(MODELDIR)/lib$(MODEL)$(MODULE_LIBEXT)
LIBFLEXI := $(FLEXIDIR)/libflexisusy$(MODULE_LIBEXT)
LIBLEGACY := $(LEGACYDIR)/liblegacy$(MODULE_LIBEXT)
LIBFFLITE := $(FFLITEDIR)/libfflite$(MODULE_LIBEXT)

# Variables for compilation
CXX := @CXX@
Expand Down Expand Up @@ -154,7 +154,6 @@ showbuild:
@echo "FFLAGS = $(FFLAGS)"
@echo "FLIBS = $(FLIBS)"
@echo "FOR_DEP_GEN = $(FOR_DEP_GEN)"
@echo "LIBEXT = $(LIBEXT)"
@echo "BLASLIBS = $(BLASLIBS)"
@echo "BOOSTTESTLIBS = $(BOOSTTESTLIBS)"
@echo "BOOSTTHREADLIBS = $(BOOSTTHREADLIBS)"
Expand All @@ -165,6 +164,7 @@ showbuild:
@echo "LAPACKLIBS = $(LAPACKLIBS)"
@echo "LOOPFUNCFLAGS = $(LOOPFUNCFLAGS)"
@echo "LOOPFUNCLIBS = $(LOOPFUNCLIBS)"
@echo "MODULE_LIBEXT = $(MODULE_LIBEXT)"
@echo "SQLITELIBS = $(SQLITELIBS)"
@echo "SQLITEFLAGS = $(SQLITEFLAGS)"
@echo "THREADLIBS = $(THREADLIBS)"
Expand Down

0 comments on commit c3f0bd0

Please sign in to comment.