You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Recently I have been attempting to implement a new ClusterSubspace that includes correlation functions that also span collinear magnetic degrees of freedom - a ChemoMagneticSubspace. This is for studying a system that contains a cation sublattice with both magnetic and non-magnetic cation species.
At the moment, my idea is to generate two sets of orbits, spanning the chemical and magnetic site-spaces, respectively. The chemical site space is the more conventional one that includes each species and their various oxidation states (eg Li, Ni3, Ni4). The magnetic site-space would span up- and down-spins of magnetic species only (eg Ni3(up), Ni3(down), Ni4(up), Ni4(down)). My thought is that by creating these chemical and magnetic orbits separately, I can continue to utilize most of the code that is used to generate and evaluate correlation functions and orbits. Different cutoffs and basis sets can then be set for the chem. and mag. correlation functions. In principle, there should be correlation functions containing coupled chem. and mag. terms (see Decolvenaere et. al., PRM 2019), however this would lead to more complex models and appears harder to implement.
The overall Hamiltonian would thus be E(chem.) + E(mag.) + E(Ewald) (if we include an electrostatic external term).
Some major challenges:
The "global" site space (eg Li, Ni3(up), Ni3(down), Ni4(up), Ni4(down)) is different from the "chemical" site space (Li, Ni3, Ni4). This leads to complications in how to evaluate the chemical and magnetic correlation functions, as in this example case, the chemical correlation functions should read Ni3(up) and Ni3(down) as the same species (Ni3). As I understand it, the indexing of the species in the site-space is crucial towards evaluating correlation functions, as the index is used to retrieve values matrix elements of the correlation tensors, which are the cluster functions evaluated at a specific cluster configuration. Thus, to retain this code structure, there will need to be a mapping of species indices from the "global" to "chemical" and "magnetic" site spaces.
Solution: create functionality that translates the occupancy array from "global" site space to "chemical" site space. Make separate evaluators for chemical and magnetic correlation functions, and append them to make the total correlation vector.
What to do if non-magnetic species show up when evaluating magnetic correlation functions? This is problematic because the non-magnetic species is not in the domain of magnetic functions!
Solution: generate magnetic correlation functions by using a Pott's indicator basis for the entire subspace, including magnetic and nonmagnetic species. Then remove the bit combos that contains decorations with non-magnetic species. Therefore the cluster function would evaluate to 0 when the cluster contains a non-magnetic term, killing all contributions from these species. By doing this, we can recover an Ising-like model that only spans magnetic dofs. More formally, it would be a redundant Pott's subspace spanning all magnetic dofs.
Current status and to-do
Made a new ChemoMagneticSubspace class that can generate chemical and magnetic orbits. The correlation vectors appear to be incorrect though, need to further troubleshoot. The evaluators always include the empty cluster term, which I need to get rid of for one of them.
In the future, for GCMC simulations, will need to alter how the composition is evaluated, as it may be more convenient to count composition of chemical species (spin agnostic). Unclear if charge-neutral table-flip method would be affected by these changes.
I am attempting to write this code in a branch that is currently incomplete. Would appreciate comments and suggestions about any of this! Especially @lbluque@qchempku2017 since you guys know the code inside-out!
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Recently I have been attempting to implement a new ClusterSubspace that includes correlation functions that also span collinear magnetic degrees of freedom - a ChemoMagneticSubspace. This is for studying a system that contains a cation sublattice with both magnetic and non-magnetic cation species.
At the moment, my idea is to generate two sets of orbits, spanning the chemical and magnetic site-spaces, respectively. The chemical site space is the more conventional one that includes each species and their various oxidation states (eg Li, Ni3, Ni4). The magnetic site-space would span up- and down-spins of magnetic species only (eg Ni3(up), Ni3(down), Ni4(up), Ni4(down)). My thought is that by creating these chemical and magnetic orbits separately, I can continue to utilize most of the code that is used to generate and evaluate correlation functions and orbits. Different cutoffs and basis sets can then be set for the chem. and mag. correlation functions. In principle, there should be correlation functions containing coupled chem. and mag. terms (see Decolvenaere et. al., PRM 2019), however this would lead to more complex models and appears harder to implement.
The overall Hamiltonian would thus be E(chem.) + E(mag.) + E(Ewald) (if we include an electrostatic external term).
Some major challenges:
The "global" site space (eg Li, Ni3(up), Ni3(down), Ni4(up), Ni4(down)) is different from the "chemical" site space (Li, Ni3, Ni4). This leads to complications in how to evaluate the chemical and magnetic correlation functions, as in this example case, the chemical correlation functions should read Ni3(up) and Ni3(down) as the same species (Ni3). As I understand it, the indexing of the species in the site-space is crucial towards evaluating correlation functions, as the index is used to retrieve values matrix elements of the correlation tensors, which are the cluster functions evaluated at a specific cluster configuration. Thus, to retain this code structure, there will need to be a mapping of species indices from the "global" to "chemical" and "magnetic" site spaces.
Solution: create functionality that translates the occupancy array from "global" site space to "chemical" site space. Make separate evaluators for chemical and magnetic correlation functions, and append them to make the total correlation vector.
What to do if non-magnetic species show up when evaluating magnetic correlation functions? This is problematic because the non-magnetic species is not in the domain of magnetic functions!
Solution: generate magnetic correlation functions by using a Pott's indicator basis for the entire subspace, including magnetic and nonmagnetic species. Then remove the bit combos that contains decorations with non-magnetic species. Therefore the cluster function would evaluate to 0 when the cluster contains a non-magnetic term, killing all contributions from these species. By doing this, we can recover an Ising-like model that only spans magnetic dofs. More formally, it would be a redundant Pott's subspace spanning all magnetic dofs.
Current status and to-do
Made a new ChemoMagneticSubspace class that can generate chemical and magnetic orbits. The correlation vectors appear to be incorrect though, need to further troubleshoot. The evaluators always include the empty cluster term, which I need to get rid of for one of them.
In the future, for GCMC simulations, will need to alter how the composition is evaluated, as it may be more convenient to count composition of chemical species (spin agnostic). Unclear if charge-neutral table-flip method would be affected by these changes.
I am attempting to write this code in a branch that is currently incomplete. Would appreciate comments and suggestions about any of this! Especially @lbluque @qchempku2017 since you guys know the code inside-out!
Beta Was this translation helpful? Give feedback.
All reactions