Re: [eigen] Thank you for creating Eigen!

```Hi Benoit Jacob,

> Are your doing spacetime tensors with a size of 4 along each index
> (as in Matrix4f)? Or some other fixed size? Or a runtime size (as in
> MatrixXf)?
>
> Do you use a tensor or a spinor formalism / if the latter, have you
> implemented some kind of spinor object on top of Eigen?

We are using none of the formulations you've mentioned, sorry.

The scalar-, vector-, matrix- and tensor-like objects we deal with are
the parameters of the Lagrangian density of the particle physics model
under consideration.  The components of these objects are ordinary
commuting numbers.  Thus, at the C++ level we can represent these
objects as (real or complex) fixed-size Eigen matrices,
Eigen::Matrix<double, M, N> (usually M and N are not greater than 6).
An example for such objects are the so-called Yukawa couplings, which
are complex 3x3 matrices (the Gu and Gd objects at the bottom of the
paragraph [1]).

In the end we need to solve extremely complicated boundary value
problem for these Lagrangian density parameters.  The corresponding
differential equations have the form

d Gu / d t = complicated expression (depends on Gu and Gd)
d Gd / d t = another complicated expression (same here)
... and many more equations

where the r.h.s. is a very complicated expression which involves many
hundreds of matrix multiplications, additions and traces.  And this is
where Eigen comes into play!  Not only allows us Eigen to formulate
the r.h.s. in a very elegant form, but it is able to evaluate it very
fast!  So, thanks again everyone who contributed to this incredible
algebra package!

Btw., there was one small drawback that we came across at some point:
If the matrix expressions become too complex, then the compilation
might need more memory than you have and you machine might start
swapping.  In such a case, the only solution we found was to split the
expression into pieces and finally add them together again.  But that
problem might go away in the future when compilers become smarter and
computers have more memory (more than 100 GB at least).  :)

Best regards,
Alex

[1]
https://en.wikipedia.org/wiki/Standard_Model_(mathematical_formulation)#The_Higgs_mechanism

On 10/21/2016 07:13 PM, Benoit Jacob wrote:
>
>
> 2016-10-19 6:57 GMT-04:00 Alexander Voigt
> <alexander.voigt@xxxxxxxxxxxxxxxxxxxxx
> <mailto:alexander.voigt@xxxxxxxxxxxxxxxxxxxxx>>:
>
>     Dear Eigen developers,
>
>     herewith I'd like to thank you very much creating the incredibly fast
>     and versatile Eigen package!
>
>     I am a physicist working in theoretical particle physics and I'm using
>     Eigen for one of my projects: FlexibleSUSY [1].  FlexibleSUSY is a
>     spectrum generator, a program that calculates the masses of elementary
>     particles in a very wide class of particle physics models.
>
>     For calculating the particle masses with high precision, one challenge
>     is to being able to calculate extremely complex matrix expressions
>     very efficiently (the so-called beta-functions [2]).  These matrix
>     expressions are so complicated that they usually span multiple pages
>     and they need to be evaluated tens of thousands of times.  Using
>     Eigen, we are able to evaluate these complicated expressions in an
>     incredibly short time, which gives us a big speed improvement over
>     other spectrum generators (SARAH/SPheno [3], SOFTSUSY [4]) and a high
>     speed is a premiss to study particle physics models at the LHC
>     experiment.  Interestingly, the evaluation of the matrix expressions
>     in C++ using the Eigen library is much faster than the classic matrix
>     multiplication in Fortran (using Fortran's MatMul() function).
>
>     Best regards,
>     Alexander Voigt
>
>     P.S.: One Eigen feature which we're looking forward to is rank-3 and
>     -4 tensors, which appear in some extended particle physics models.
>     Thus, we cannot easily handle such models for now due to the missing
>     support of rank-3 and -4 tensors in Eigen 3.2.
>
>
> Mostly out of curiosity :-) :
>
> Are your doing spacetime tensors with a size of 4 along each index (as
> in Matrix4f)? Or some other fixed size? Or a runtime size (as in MatrixXf)?
>
> Do you use a tensor or a spinor formalism / if the latter, have you
> implemented some kind of spinor object on top of Eigen?
>
>
>
>     P.P.S.: If you think FlexibleSUSY is relevant enough, I'd be happy if
>     it could be added to the list of "Projects using Eigen" in the section
>     "Science".
>
>     [1] https://flexiblesusy.hepforge.org
>     <https://flexiblesusy.hepforge.org>
>         https://github.com/FlexibleSUSY <https://github.com/FlexibleSUSY>
>         arXiv:1406.2319, arXiv:1609.00371
>     [2] arxiv:hep-ph/9311340, arxiv:1107.2670, arxiv:1310.7629
>     [3] http://sarah.hepforge.org/
>     [4] http://softsusy.hepforge.org/
>
>     --
>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     Dr. Alexander Voigt
>     Institute for Theoretical Particle Physics and Cosmology
>     RWTH Aachen
>     Sommerfeldstr. 14
>     52074 Aachen
>     Room: 28A408
>     Phone: +49 (0)241 80 27049 <tel:%2B49%20%280%29241%2080%2027049>
>     Fax  : +49 (0)241 80 22187 <tel:%2B49%20%280%29241%2080%2022187>
>     E-Mail: alexander.voigt@xxxxxxxxxxxxxxxxxxxxx
>     <mailto:alexander.voigt@xxxxxxxxxxxxxxxxxxxxx>
>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dr. Alexander Voigt
Institute for Theoretical Particle Physics and Cosmology
RWTH Aachen
Sommerfeldstr. 14
52074 Aachen
Room: 28A408
Phone: +49 (0)241 80 27049
Fax  : +49 (0)241 80 22187
E-Mail: alexander.voigt@xxxxxxxxxxxxxxxxxxxxx
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

```

 Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/