  We introduce FlexibleSUSY, a Mathematica and C++ package, which generates a
fast, precise C++ spectrum generator for any SUSY model specified by the user.
The generated code is designed with both speed and modularity in mind, making
it easy to adapt and extend with new features. The model is specified by
supplying the superpotential, gauge structure and particle content in a SARAH
model file; specific boundary conditions e.g. at the GUT, weak or intermediate
scales are defined in a separate FlexibleSUSY model file. From these model
files, FlexibleSUSY generates C++ code for self-energies, tadpole corrections,
renormalization group equations (RGEs) and electroweak symmetry breaking (EWSB)
conditions and combines them with numerical routines for solving the RGEs and
EWSB conditions simultaneously. The resulting spectrum generator is then able
to solve for the spectrum of the model, including loop-corrected pole masses,
consistent with user specified boundary conditions. The modular structure of
the generated code allows for individual components to be replaced with an
alternative if available. FlexibleSUSY has been carefully designed to grow as
alternative solvers and calculators are added. Predefined models include the
MSSM, NMSSM, E$_6$SSM, USSM, R-symmetric models and models with right-handed
neutrinos.
