Skip to content

LatticeQCDTools/mhi

Repository files navigation

mhi

Irrep Projection for Multi-Hadron Interpolators

This package is associated with the paper

W. Detmold, W. I. Jay, G. Kanwar, P. E. Shanahan, and M. L. Wagman,
"Multi-particle interpolating operators in quantum field theories with cubic symmetries."

Installation

After cloning the repo, move to the top-level directory containing setup.py. Then use pip to install the module:

$ pip install -e ./

The flag "-e" is an "editable install", which means that local changes to the code will appear when the code is run.

Usage

The most flexible usage comes from the python module. For example:

# Momenta for three particles in a boosted frame.
momenta = np.array([[1,0,0],[0,1,0], [0,0,1],])

# Compute block diagonalization for three distinguishable "pseudoscalar" operators
# Block diagonalization matrices are stored in the dict result.decomp
result = mhi.mhi(
    momenta, 
    spin_irreps=['A1m','A1m','A1m'], 
    internal_symmetry=None)
print("Case 1:", result.format(latex=True))

# Repeat the diagonalization including symmetrization associated 
# with irreps of some internal symmetry, labelled by Young diagrams.
tableaux = [
    [[1,2,3]],      # trivial irrep of S3
    [[1,2],[3]],    # standard irrep of S3
    [[1,3],[2]],
    [[1],[2],[3]],  # sign irrep of S3
]
for n, tableau in enumerate(tableaux):
    internal_symmetry = mhi.make_young_projector(tableau, n=3)
    result = mhi.mhi(momenta, spin_irreps=['A1m','A1m','A1m'], internal_symmetry=internal_symmetry)
    print(f"Case {n+2}:", result.format(latex=True))

which yields:

Case 1: $A_1 \oplus A_2 \oplus 2E$
Case 2: $A_2$
Case 3: $E$
Case 4: $E$
Case 5: $A_1$

These results arise in the case of three pions with isospin, which is discussed explicitly in the accompanying paper.

A command-line interface to the module is also provided. Example usage is describe below in Tests.

Tests

To test the command-line interface, run the command

$ python -m mhi example_input.yaml <output_name.h5> --verbose

The flag "-m" is necessary and directs python to run the module's main function. After running the main function, it is possible to test the ability to read the hdf5 file using

$ python read.py <output_name.h5>

To test the module against previously reference data in test/data, run the command

$ python test_mhi.py

About

Irrep Projection for Multi-Hadron Interpolators

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages