Skip to content

Commit

Permalink
Merge branch 'master' into lattice
Browse files Browse the repository at this point in the history
  • Loading branch information
jhyeon committed Sep 19, 2013
2 parents 0ac7de9 + 10a088b commit 630ccef
Show file tree
Hide file tree
Showing 74 changed files with 23,452 additions and 3,845 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Expand Up @@ -19,5 +19,8 @@ doc/*.md5
doc/*.map
doc/*.css
doc/*.dot
doc/*.aux
doc/*.log
doc/*.toc

test/*.log
8 changes: 4 additions & 4 deletions README
Expand Up @@ -66,15 +66,15 @@ 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
--libext=".so"
--make-lib-cmd="gcc -shared -o"
--with-lib-ext=".so"
--with-make-lib-cmd="gcc -shared -o"

Example:

$ ./configure --with-models=MSSM,NMSSM \
--disable-static-libs \
--libext=".so" \
--make-lib-cmd="gcc -shared -o"
--with-lib-ext=".so" \
--with-make-lib-cmd="gcc -shared -o"

Important remark:

Expand Down
75 changes: 42 additions & 33 deletions configure
Expand Up @@ -148,7 +148,7 @@ contains() {
}

contains_not() {
# Check if string $1 contains $2
# Check if string $1 does not contain $2
if test $# -lt 2 ; then
echo "contains: Too few arguments"
return 1
Expand Down Expand Up @@ -521,6 +521,15 @@ check_models() {
fi ;;
esac
done

# test model dependencies (snmssm depends on smssm)
if contains "${MODELS}" "models/snmssm"; then
if contains_not "${MODELS}" "models/smssm"; then
message "Error: model snmssm requires model smssm"
message "Please also select the smssm"
exit 1
fi
fi
}

#_____________________________________________________________________
Expand Down Expand Up @@ -822,7 +831,7 @@ check_makelib() {
if test "x$enable_static_libs" = "xno" ; then
if test "x$makelib_cmd" = "xar" ; then
message "\n Error: $makelib_cmd cannot be used to create shared libraries!"
message " Please use --make-lib-cmd=\"gcc -shared -o\" or something similar."
message " Please use --with-make-lib-cmd=\"gcc -shared -o\" or something similar."
exit 1
fi
fi
Expand Down Expand Up @@ -897,7 +906,7 @@ enable_defines() {
if test "x$LIBEXT" = "x.a" ; then
message " Warning: library extension $LIBEXT is reserved for static libraries."
message " Please consider using .so as library extension, or similar, e.g."
message " --libext=\".so\""
message " --with-lib-ext=\".so\""
fi
fi

Expand All @@ -918,39 +927,39 @@ Usage: ./`basename $0` [options]
Options:
--help,-h Print this help message
--libext Library extension (default: $LIBEXT)
--make-lib-cmd Command to make library (default: $MAKELIB)
--version,-v Print version information
enable/disable options, prefix with either --enable- or --disable-
colors Colored output
debug Debug messages and assertions
looptools Use LoopTools to compute the loop functions
silent Suppress all command line output
colors Colored output (default: $enable_colors)
debug Debug messages and assertions (no default)
looptools Use LoopTools to compute the loop functions (default: $enable_looptools)
silent Suppress all command line output (default: $enable_silent)
static-libs Create static libraries (default: $enable_static_libs)
verbose Verbose messages
with options, prefix with --with-, enables corresponding support
algorithms Comma separated list of RG solver algorithms
(default: $ALGORITHMS)
possible values: all $available_algorithms
boost-libdir Path to search for BOOST libraries
boost-incdir Path to search for BOOST headers
eigen-incdir Path to search for Eigen headers
cxx C++ compiler (default: $CXX)
cxxflags C++ compiler flags (default: $CXXFLAGS)
fc Fortran compiler (default: $FC)
fflags Fortran compiler flags (default: $FFLAGS)
gsl-config Path to gsl-config (default: $gsl_config)
lapack-libdir Path to search for LAPACK and BLAS libraries
looptools-libdir Path to search for LoopTools libraries
looptools-incdir Path to search for LoopTools headers
math-cmd Mathematic kernel (default: $MATH)
models Comma separated list of models to be build
(default: $MODELS)
possible values: all <model1>,<model2>,...
verbose Verbose messages (default: $enable_verbose)
Package directories, compilation settings and model selection
--with-algorithms= Comma separated list of RG solver algorithms
(default: $ALGORITHMS)
possible values: all $available_algorithms
--with-boost-libdir= Path to search for BOOST libraries
--with-boost-incdir= Path to search for BOOST headers
--with-cxx= C++ compiler (default: $CXX)
--with-cxxflags= C++ compiler flags (default: $CXXFLAGS)
--with-eigen-incdir= Path to search for Eigen headers
--with-fc= Fortran compiler (default: $FC)
--with-fflags= Fortran compiler flags (default: $FFLAGS)
--with-gsl-config= Path to gsl-config (default: $gsl_config)
--with-lapack-libdir= Path to search for LAPACK and BLAS libraries
--with-lib-ext= Library extension (default: $LIBEXT)
--with-looptools-libdir= Path to search for LoopTools libraries
--with-looptools-incdir= Path to search for LoopTools headers
--with-make-lib-cmd Command to make library (default: $MAKELIB)
--with-math-cmd= Mathematic kernel (default: $MATH)
--with-models= Comma separated list of models to be build
(default: $MODELS)
possible values: all <model1>,<model2>,...
EOF
}

Expand Down Expand Up @@ -1026,13 +1035,13 @@ if test $# -gt 0 ; then
--with-fflags=*) FFLAGS=$optarg ;;
--with-gsl-config=*) gsl_config=$optarg ;;
--with-lapack-libdir=*) lapack_lib_dir=$optarg ;;
--with-lib-ext=*) LIBEXT=$optarg ;;
--with-looptools-libdir=*) looptools_lib_dir=$optarg ;;
--with-looptools-incdir=*) looptools_inc_dir=$optarg ;;
--with-make-lib-cmd=*) MAKELIB=$optarg ;;
--with-math-cmd=*) MATH=$optarg ;;
--with-models=*) MODELS=$optarg ;;
--help|-h) help; exit 0 ;;
--libext=*) LIBEXT=$optarg ;;
--make-lib-cmd=*) MAKELIB=$optarg ;;
--version|-v) version; exit 0 ;;
*) echo "Invalid option '$1'. Try $0 --help" ; exit 1 ;;
esac
Expand Down
14 changes: 14 additions & 0 deletions doc/chapters/output.tex
@@ -0,0 +1,14 @@
\section{Output}
\subsection{Files}

Explain the created C++ files and executables, and how to use them.

\subsection{Two-scale algorithm}

Explain the structure of the two-scale algorithm classes and how they
work and are plugged together.

\subsection{Lattice algorithm}

Explain the structure of the lattice algorithm classes and how they
work.
21 changes: 21 additions & 0 deletions doc/chapters/overview.tex
@@ -0,0 +1,21 @@
\section{Overview}

Explain:
\begin{itemize}
\item What is FlexibleSUSY?
\item Features, design goals
\end{itemize}

\subsection{Requirements}

\begin{itemize}
\item Mathematica 7-9
\item SARAH version 4
\item a C++11 compatible compiler (g++ 4.7.2 or higher, clang++ 3.1 or
higher)
\item a fortran compiler (gfortran etc.)
\item Eigen library version 3
\item Boost library
\item GNU scientific library
\item lapack (needed for the Lattice algorithm only)
\end{itemize}
15 changes: 15 additions & 0 deletions doc/chapters/quick_start.tex
@@ -0,0 +1,15 @@
\section{Quick start}
Create a MSSM spectrum generator
\begin{lstlisting}[language=bash]
$ ./createmodel --models=MSSM
$ ./configure --with-models=MSSM
$ make
\end{lstlisting}
Run the spectrum generator using the default parameter point
\begin{lstlisting}[language=bash]
$ ./models/MSSM/run_MSSM.x
\end{lstlisting}
Run the spectrum generator using a SLHA input file
\begin{lstlisting}[language=bash]
$ ./models/MSSM/run_MSSM.x --slha-input-file=templates/MSSM/LesHouches.in.MSSM --slha-output-file=LesHouches.out.MSSM
\end{lstlisting}
182 changes: 182 additions & 0 deletions doc/chapters/usage.tex
@@ -0,0 +1,182 @@
\section{Usage}
\subsection{Files and directories}

Explain:
\begin{itemize}
\item Soucre code directories and files
\item Model directories and files
\end{itemize}

\subsection{Basic commands}

Explain:
\begin{itemize}
\item ./createmodel
\item ./configure
\item make
\item Mathematica interface (see models/<model>/start.m)
\end{itemize}

\subsection{Model files}

Explain how to write a FlexibleSUSY model file (starting from a SARAH
model file).

A FlexibleSUSY model file is a Mathematica file, where the following
pieces are defined:

\paragraph{General model information}

\subparagraph{FSModelName}
Name of the FlexibleSUSY model.
Example (MSSM):
\begin{lstlisting}[language=Mathematica]
FSModelName = "MSSM";
\end{lstlisting}

\subparagraph{OnlyLowEnergyFlexibleSUSY} If set to True, creates a
spectrum generator without high-scale constraint, i.e.\ only a
low-scale and susy-scale constraint will be created (default: False).
In this case all model parameters, except for gauge and Yukawa
couplings are input at the susy scale. This option is similar to
\texttt{OnlyLowEnergySPheno} in SARAH/SPheno.
\\
Example:
\begin{lstlisting}[language=Mathematica]
OnlyLowEnergyFlexibleSUSY = False; (* default *)
\end{lstlisting}

\paragraph{Input and output parameters}

\subparagraph{MINPAR} This list of two-component lists defines model
input parameters and their SLHA keys. These parameters will be read
from the MINPAR block in the SLHA file.
\\
Example (MSSM):
\begin{lstlisting}[language=Mathematica]
MINPAR = { {1, m0},
{2, m12},
{3, TanBeta},
{4, Sign[\[Mu]]},
{5, Azero}
};
\end{lstlisting}

\subparagraph{EXPAR} This list of two-component lists defines further
model input parameters and their SLHA keys. These parameters will be
read from the EXTPAR block in the SLHA file.
\\
Example (E6SSM):
\begin{lstlisting}[language=Mathematica]
EXTPAR = { {61, LambdaInput},
{62, KappaInput},
{63, muPrimeInput},
{64, BmuPrimeInput},
{65, vSInput}
};
\end{lstlisting}

\subparagraph{DefaultParameterPoint} This list of two-component lists
defines default values for the model input parameters.
\\
Example (MSSM):
\begin{lstlisting}[language=Mathematica]
DefaultParameterPoint = {
{m0, 125},
{m12, 500},
{TanBeta, 10},
{Sign[\[Mu]], 1},
{Azero, 0}
};
\end{lstlisting}

\paragraph{Constraints}
Currently three constraints are supported: low-scale, susy-scale and
high-scale constraints. In FlexibleSUSY they are named as
\texttt{LowScale}, \texttt{SUSYScale} and \texttt{HighScale}. For
each constraint there is a scale definition (named after the
constraint), an initial guess for the scale (concatenation of the
constraint name and \texttt{FirstGuess}) and a list settings to be
applied at the constraint (concatenation of the constraint name and
\texttt{Input}).
\\
Example (MSSM):
\begin{lstlisting}[language=Mathematica]
(* susy-scale constraint *)
SUSYScale = Sqrt[M[Su[1]]*M[Su[6]]]; (* scale definition *)
SUSYScaleFirstGuess = Sqrt[m0^2 + 4 m12^2]; (* first scale guess *)
SUSYScaleInput = {}; (* nothing is set here *)

(* high-scale constraint *)
HighScale = g1 == g2; (* scale definition *)
HighScaleFirstGuess = 1.0 10^14; (* first scale guess *)
HighScaleInput = {
{T[Ye], Azero*Ye},
{T[Yd], Azero*Yd},
{T[Yu], Azero*Yu},
{mHd2, m0^2},
{mHu2, m0^2},
{mq2, UNITMATRIX[3] m0^2},
{ml2, UNITMATRIX[3] m0^2},
{md2, UNITMATRIX[3] m0^2},
{mu2, UNITMATRIX[3] m0^2},
{me2, UNITMATRIX[3] m0^2},
{MassB, m12},
{MassWB,m12},
{MassG, m12}
};

LowScale = SM[MZ]; (* scale definition *)
LowScaleFirstGuess = SM[MZ]; (* first scale guess *)
LowScaleInput = {
{vd, 2 MZDRbar / Sqrt[GUTNormalization[g1]^2 g1^2 + g2^2] Cos[ArcTan[TanBeta]]},
{vu, 2 MZDRbar / Sqrt[GUTNormalization[g1]^2 g1^2 + g2^2] Sin[ArcTan[TanBeta]]}
};
\end{lstlisting}

\paragraph{Initial parameter guesses} At the \texttt{LowScale} and
\texttt{HighScale} it is recommended to make an initial guess for the
model parameters. This can be done via
\begin{lstlisting}[language=Mathematica]
InitialGuessAtLowScale = {
{vd, SM[vev] Cos[ArcTan[TanBeta]]},
{vu, SM[vev] Sin[ArcTan[TanBeta]]}
};

InitialGuessAtHighScale = {
{\[Mu] , 1.0},
{B[\[Mu]], 0.0}
};
\end{lstlisting}

\begin{sidewaystable}[tb]
\centering
\begin{tabularx}{\textwidth}{>{\ttfamily}l>{\ttfamily}lX}
\toprule
variable & default value & description \\
\midrule
FSModelName & Model`Name & Name of the FlexibleSUSY model \\
OnlyLowEnergyFlexibleSUSY & False & low-energy model \\
MINPAR & \{\} & list of input parameters in SLHA MINPAR block \\
EXTPAR & \{\} & list of input parameters in SLHA EXTPAR block \\
DefaultParameterPoint & \{\} & list of default values for the input parameters \\
LowScale & SM[MZ] & Standard Model matching scale (in GeV) \\
LowScaleFirstGuess & SM[MZ] & first guess for the Standard Model matching scale (in GeV) \\
LowScaleInput & \{\} & settings applied at the low scale \\
SUSYScale & 1000 & scale of supersymmetric particle masses (in GeV) \\
SUSYScaleFirstGuess & 1000 & first guess for the susy scale (in GeV) \\
SUSYScaleInput & \{\} & settings applied at the susy scale \\
HighScale & SARAH`hyperchargeCoupling == SARAH`leftCoupling
& unification scale (in GeV) \\
HighScaleFirstGuess & $10^{14}$ & first guess for the unification scale (in GeV) \\
HighScaleInput & \{\} & settings applied at the unification scale \\
\bottomrule
\end{tabularx}
\caption{FlexibleSUSY model file variables}
\label{tab:model-file-variables}
\end{sidewaystable}

\subsection{Makefile modules}

Explain how to write a custom makefile module (module.mk) for a
FlexibleSUSY model.

0 comments on commit 630ccef

Please sign in to comment.