Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Module support for higher representations #87

Open
edbennett opened this issue May 16, 2022 · 0 comments
Open

Module support for higher representations #87

edbennett opened this issue May 16, 2022 · 0 comments

Comments

@edbennett
Copy link

Even after the fix in #86, one cannot use Hadrons for many things in higher representations, as none of the modules support any inputs other than the fundamental rep.

To rectify this, most modules need to have higher-representation versions registered and instantiated.

The most obvious way I can see to achieve this is to take lines 75–80 of Global.hpp and duplicate them to create FIMPL_ADJ, FIMPL_ASY and FIMPL_SYM (or similar), and then look for every (or at least almost every) instantiation of a module using FIMPL and duplicate it for the three higher representations.

I have a prototype that takes this approach just enough to allow a spectrum computation in the adjoint rep (so editing just MSource::Z2, MAction::Wilson, MSolver::RBPrecCG, MFermion::GaugeProp, and MContraction::Meson, and referring to WilsonAdjImplR explicitly), and it does seem work (giving compatible results with HiRep's measure_spectrum using Z2SEMWall sources).

(The solution is complicated by contractions—in that case there would be a minor combinatoric explosion if every combination of representations had to be dealt with (which presumably it would need to if you wanted to allow for chimera baryons and such things). I'm not sure how best to deal with that.)

@aportelli Does that seem a reasonable starting point for an implementation? (I ask because I'm happy to implement and PR it.) Or do you prefer a different solution that I haven't spotted? (Or is there some other way that I've missed of doing this without needing to implement the template instantiations and module registrations the Hadrons source—e.g. registering my own versions of the modules? The instantiation issues I've had suggest that that won't work, but it's entirely possible that I've missed something.)

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant