Does anyone have any advice on how to recompile the ALPS/looper package to support XYZ two-spin interactions (in addition to the already supported XXZ two-spin interactions)? A former student used the ALPS/looper packages support of XXZ two-spin interactions to carry out QMC calculations of the magnetic-field-dependent phase boundary for a S = 1/2 Heisenberg system with weak easy-plane (XY) anisotropy. Unfortunately for us, experiments experiments now reveal that the experimental system has a weak but non-negligible biaxial asymmetry within the XY plane itself, necessitating the calculation of XYZ two-spin interactions that distinguish between X and Y. See background below for details, if curious.
The Todo laboratory webpage for ALPS/Looper — see http://todo.issp.u-tokyo.ac.jp/en/projects/alps-looper?set_language=en/ — notes that the application can be recompiled to provide support for XYZ two-spin interactions but I haven't yet figured out how that can be done (nor how it would be re-integrated into the full ALPS package).
I would appreciate any guidance this group can provide!
Best Regards,
Nat Fortune
background: A colleague of mine used the ALPS/looper package to carry out QMC calculations of the magnetic-field-dependent phase boundary for a S = 1/2 Heisenberg system with weak easy-plane (XY) anisotropy. He did this by setting the spin-Hamiltonian parameters Jz/Jxy = 0.995. This corresponds to $\frac{\Delta}{J} = 0.005$, where the Hamiltonian is given by the following equation:
\begin{equation} H = J \sum_{nn}[S_{i}^{x} S_{j}^{x}+ S_{i}^{y} S_{j}^{y} + ( 1 -\Delta ) S_{i}^{z} S_{j}^{z}] + J_{\perp}\sum_{i,i'} \boldsymbol{S}_{i} \cdot \boldsymbol{S}_{i'}-g \mu_B \boldsymbol{H}\cdot \sum_{j}\boldsymbol{S}_j \label{eq:Xiao2009Hamiltonian} \end{equation} and the first summation is over nearest neighbors, the second summation links each spin to its counterparts in adjacent layers, and the third summation includes all spins.
Unfortunately for us, experiments now reveal that the experimental system we want to model is better described by a biaxial asymmetry within the XY plane, where $\Delta = 0.003$ would be replaced by $\Delta_{z} = 0.003$ and $\Delta_{y} = 0.0003$, where the Hamiltonian is given by the following equation:
\begin{equation} H = J \sum_{i,j}[S_{i}^{x} S_{j}^{x}+ ( 1 -\Delta_y ) S_{i}^{y} S_{j}^{y} + ( 1 -\Delta_z ) S_{i}^{z} S_{j}^{z}] -g \mu_B \boldsymbol{H}\cdot \sum_{j}\boldsymbol{S}_j + J_{\perp}\sum_{i,i'} \boldsymbol{S}_{i} \cdot \boldsymbol{S}_{i'} \label{eq:NewHamiltonian} \end{equation}
Dear Nat,
All you have to do is just rewriting line 52 in applications/qmc/looper/loop_config.h
typedef looper::local_graph<> loop_graph_t;
as
typedef looper::local_graph<looper::site_graph_type, looper::xyz_bond_graph_type> loop_graph_t;
Please note that the code for generic XYZ model has not been well tested as that for XXZ models. So I strongly recommend you to carefully compare the results for small lattices with those from exact diagonalization before starting production run for larger lattices.
Best, Synge
On 2013/12/03, at 23:16, Nathanael Fortune nfortune@smith.edu wrote:
Does anyone have any advice on how to recompile the ALPS/looper package to support XYZ two-spin interactions (in addition to the already supported XXZ two-spin interactions)? A former student used the ALPS/looper packages support of XXZ two-spin interactions to carry out QMC calculations of the magnetic-field-dependent phase boundary for a S = 1/2 Heisenberg system with weak easy-plane (XY) anisotropy. Unfortunately for us, experiments experiments now reveal that the experimental system has a weak but non-negligible biaxial asymmetry within the XY plane itself, necessitating the calculation of XYZ two-spin interactions that distinguish between X and Y. See background below for details, if curious.
The Todo laboratory webpage for ALPS/Looper ― see http://todo.issp.u-tokyo.ac.jp/en/projects/alps-looper?set_language=en/ ― notes that the application can be recompiled to provide support for XYZ two-spin interactions but I haven't yet figured out how that can be done (nor how it would be re-integrated into the full ALPS package).
I would appreciate any guidance this group can provide!
Best Regards,
Nat Fortune
background: A colleague of mine used the ALPS/looper package to carry out QMC calculations of the magnetic-field-dependent phase boundary for a S = 1/2 Heisenberg system with weak easy-plane (XY) anisotropy. He did this by setting the spin-Hamiltonian parameters Jz/Jxy = 0.995. This corresponds to $\frac{\Delta}{J} = 0.005$, where the Hamiltonian is given by the following equation:
\begin{equation} H = J \sum_{nn}[S_{i}^{x} S_{j}^{x}+ S_{i}^{y} S_{j}^{y} + ( 1 -\Delta ) S_{i}^{z} S_{j}^{z}] + J_{\perp}\sum_{i,i'} \boldsymbol{S}_{i} \cdot \boldsymbol{S}_{i'}-g \mu_B \boldsymbol{H}\cdot \sum_{j}\boldsymbol{S}_j \label{eq:Xiao2009Hamiltonian} \end{equation} and the first summation is over nearest neighbors, the second summation links each spin to its counterparts in adjacent layers, and the third summation includes all spins.
Unfortunately for us, experiments now reveal that the experimental system we want to model is better described by a biaxial asymmetry within the XY plane, where $\Delta = 0.003$ would be replaced by $\Delta_{z} = 0.003$ and $\Delta_{y} = 0.0003$, where the Hamiltonian is given by the following equation:
\begin{equation} H = J \sum_{i,j}[S_{i}^{x} S_{j}^{x}+ ( 1 -\Delta_y ) S_{i}^{y} S_{j}^{y} + ( 1 -\Delta_z ) S_{i}^{z} S_{j}^{z}] -g \mu_B \boldsymbol{H}\cdot \sum_{j}\boldsymbol{S}_j + J_{\perp}\sum_{i,i'} \boldsymbol{S}_{i} \cdot \boldsymbol{S}_{i'} \label{eq:NewHamiltonian} \end{equation}
-- Professor Nathanael Fortune, Ph.D. Department of Physics 315 McConnell Hall 44 College Lane Smith College Northampton MA 01063
nfortune@smith.edu (413) 585-3980 (office) (413) 585-3919 (lab) http://www.smith.edu/physics/
"The great tragedy of Science ― the slaying of a beautiful hypothesis by an ugly fact." T.H. Huxley
comp-phys-alps-users@lists.phys.ethz.ch