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

Implement the "lone phonon" method #59

Open
matthewcarbone opened this issue Oct 15, 2022 · 3 comments
Open

Implement the "lone phonon" method #59

matthewcarbone opened this issue Oct 15, 2022 · 3 comments
Labels
enhancement New feature or request major A large and significant addition or improvement
Milestone

Comments

@matthewcarbone
Copy link
Owner

One nice generalization of the MA family is allowing a phonon to be created at a larger distance away from the main cloud. This is another one of Mona/Stepan's requests and will be a very nice option for users who wish to implement a more specific type of GGCE.

Particularly, I envision that the model will be passed some extra option kwargs. For example, the new Model.add_ signature might look something like

def add_(
    self,
    coupling_type,
    phonon_frequency,
    phonon_extent,
    phonon_number,
    phonon_extent_tfd=None,
    phonon_number_tfd=None,
    coupling_strength=None,
    dimensionless_coupling_strength=None,
    phonon_index_override=None,
    secondary_phonon_extent=None,   # new!
    secondary_phonon_number=None    # new!
)

Where the parameter secondary_phonon_number will control the number of phonons that are allowed to be "farther away" (where 1 is what was initially suggested, but there's no reason we can't generalize that!), and secondary_phonon_extent will control just how far away from the main cloud these extra phonons can go.

@matthewcarbone matthewcarbone added the enhancement New feature or request label Oct 15, 2022
@matthewcarbone matthewcarbone added this to the v0.2 milestone Oct 15, 2022
@Chiffafox
Copy link
Collaborator

This looks good to me, that's the way to go! Agreed about the two key controlling parameters of number and extent of secondary phonon.

I would just add that MA has already been generalized to an arbitrary number of "lone phonons": it is part of the variational hierarchy, along with cloud size. This is the foundational reference, and this is the reference where it is formulated in the "modern" way, a.k.a. in real space -- this is actually the 2010 reference that many of our tests run against.

The general idea is that you can save yourself quite a bit of work (i.e. include way fewer configurations) by selectively allowing secondary lone phonons with some finite extent, instead of having to increase bare cloud size a lot.

@matthewcarbone
Copy link
Owner Author

Yep, others besides Mona have implemented it too. This really just boils down to modifying how we generate the original generalized_equations object.

@Chiffafox
Copy link
Collaborator

Agreed. I have personally done MA(1) by hand so far, and things get real hairy -- I can personally attest that I'd love an automated, GGCE-style approach to doing this.

@matthewcarbone matthewcarbone added the major A large and significant addition or improvement label Nov 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request major A large and significant addition or improvement
Projects
None yet
Development

No branches or pull requests

2 participants