HΦ  3.2.0
Pyrochlore.c File Reference

Standard mode for the pyrochlore lattice. More...

#include "StdFace_vals.h"
#include "StdFace_ModelUtil.h"
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <complex.h>
#include <string.h>
+ Include dependency graph for Pyrochlore.c:

Go to the source code of this file.

Functions

void StdFace_Pyrochlore (struct StdIntList *StdI)
 Setup a Hamiltonian for the Pyrochlore structure. More...
 

Detailed Description

Standard mode for the pyrochlore lattice.

Definition in file Pyrochlore.c.

Function Documentation

◆ StdFace_Pyrochlore()

void StdFace_Pyrochlore ( struct StdIntList StdI)

Setup a Hamiltonian for the Pyrochlore structure.

Author
Mitsuaki Kawamura (The University of Tokyo)

(1) Compute the shape of the super-cell and sites in the super-cell

(2) check & store parameters of Hamiltonian

(3) Set local spin flag (StdIntList::locspinflag) and the number of sites (StdIntList::nsite)

(4) Compute the upper limit of the number of Transfer & Interaction and malloc them.

(5) Set Transfer & Interaction

Parameters
[in,out]StdI

Definition at line 33 of file Pyrochlore.c.

References StdIntList::a, StdIntList::Cell, StdIntList::D, StdIntList::direct, StdIntList::Gamma, StdIntList::h, StdIntList::J, StdIntList::J0, StdIntList::J0All, StdIntList::J0p, StdIntList::J0pAll, StdIntList::J1, StdIntList::J1All, StdIntList::J1p, StdIntList::J1pAll, StdIntList::J2, StdIntList::J2All, StdIntList::J2p, StdIntList::J2pAll, StdIntList::JAll, StdIntList::Jpp, StdIntList::JppAll, StdIntList::K, StdIntList::length, StdIntList::locspinflag, StdIntList::model, StdIntList::mu, StdIntList::NCell, StdIntList::nsite, StdIntList::NsiteUC, StdIntList::phase, StdIntList::S2, StdFace_Coulomb(), StdFace_FindSite(), StdFace_GeneralJ(), StdFace_Hopping(), StdFace_HubbardLocal(), StdFace_InitSite(), StdFace_InputCoulombV(), StdFace_InputHopp(), StdFace_InputSpin(), StdFace_InputSpinNN(), StdFace_MagField(), StdFace_MallocInteractions(), StdFace_NotUsed_c(), StdFace_NotUsed_d(), StdFace_NotUsed_i(), StdFace_NotUsed_J(), StdFace_PrintGeometry(), StdFace_PrintVal_d(), StdFace_PrintVal_i(), StdFace_PrintXSF(), StdIntList::t, StdIntList::t0, StdIntList::t0p, StdIntList::t1, StdIntList::t1p, StdIntList::t2, StdIntList::t2p, StdIntList::tau, StdIntList::tp, StdIntList::tpp, StdIntList::U, StdIntList::V, StdIntList::V0, StdIntList::V0p, StdIntList::V1, StdIntList::V1p, StdIntList::V2, StdIntList::V2p, and StdIntList::Vp.

Referenced by StdFace_main().

36 {
37  int isite, jsite, isiteUC, ntransMax, nintrMax;
38  int iL, iW, iH, kCell;
39  FILE *fp;
40  double complex Cphase;
41  double dR[3];
42 
46  fp = fopen("lattice.xsf", "w");
47 
48  StdI->NsiteUC = 4;
49 
50  fprintf(stdout, " @ Lattice Size & Shape\n\n");
51 
52  StdFace_PrintVal_d("a", &StdI->a, 1.0);
53  StdFace_PrintVal_d("Wlength", &StdI->length[0], StdI->a);
54  StdFace_PrintVal_d("Llength", &StdI->length[1], StdI->a);
55  StdFace_PrintVal_d("Hlength", &StdI->length[2], StdI->a);
56  StdFace_PrintVal_d("Wx", &StdI->direct[0][0], 0.0);
57  StdFace_PrintVal_d("Wy", &StdI->direct[0][1], 0.5 * StdI->length[0]);
58  StdFace_PrintVal_d("Wz", &StdI->direct[0][2], 0.5 * StdI->length[0]);
59  StdFace_PrintVal_d("Lx", &StdI->direct[1][0], 0.5 * StdI->length[1]);
60  StdFace_PrintVal_d("Ly", &StdI->direct[1][1], 0.0);
61  StdFace_PrintVal_d("Lz", &StdI->direct[1][2], 0.5 * StdI->length[1]);
62  StdFace_PrintVal_d("Hx", &StdI->direct[2][0], 0.5 * StdI->length[2]);
63  StdFace_PrintVal_d("Hy", &StdI->direct[2][1], 0.5 * StdI->length[2]);
64  StdFace_PrintVal_d("Hz", &StdI->direct[2][2], 0.0);
65 
66  StdFace_PrintVal_d("phase0", &StdI->phase[0], 0.0);
67  StdFace_PrintVal_d("phase1", &StdI->phase[1], 0.0);
68  StdFace_PrintVal_d("phase2", &StdI->phase[2], 0.0);
69 
70  StdFace_InitSite(StdI, fp, 3);
71  StdI->tau[0][0] = 0.0; StdI->tau[0][1] = 0.0; ; StdI->tau[0][2] = 0.0;
72  StdI->tau[1][0] = 0.5; StdI->tau[1][1] = 0.0; ; StdI->tau[1][2] = 0.0;
73  StdI->tau[2][0] = 0.0; StdI->tau[2][1] = 0.5; ; StdI->tau[2][2] = 0.0;
74  StdI->tau[3][0] = 0.0; StdI->tau[3][1] = 0.0; ; StdI->tau[3][2] = 0.5;
78  fprintf(stdout, "\n @ Hamiltonian \n\n");
79  StdFace_NotUsed_d("K", StdI->K);
80  StdFace_PrintVal_d("h", &StdI->h, 0.0);
81  StdFace_PrintVal_d("Gamma", &StdI->Gamma, 0.0);
82 
83  if (strcmp(StdI->model, "spin") == 0 ) {
84  StdFace_PrintVal_i("2S", &StdI->S2, 1);
85  StdFace_PrintVal_d("D", &StdI->D[2][2], 0.0);
86  StdFace_InputSpinNN(StdI->J, StdI->JAll, StdI->J0, StdI->J0All, "J0");
87  StdFace_InputSpinNN(StdI->J, StdI->JAll, StdI->J1, StdI->J1All, "J1");
88  StdFace_InputSpinNN(StdI->J, StdI->JAll, StdI->J2, StdI->J2All, "J2");
89  StdFace_InputSpinNN(StdI->J, StdI->JAll, StdI->J0p, StdI->J0pAll, "J0'");
90  StdFace_InputSpinNN(StdI->J, StdI->JAll, StdI->J1p, StdI->J1pAll, "J1'");
91  StdFace_InputSpinNN(StdI->J, StdI->JAll, StdI->J2p, StdI->J2pAll, "J2'");
92 
93  StdFace_NotUsed_d("mu", StdI->mu);
94  StdFace_NotUsed_d("U", StdI->U);
95  StdFace_NotUsed_c("t", StdI->t);
96  StdFace_NotUsed_c("t0", StdI->t0);
97  StdFace_NotUsed_c("t1", StdI->t1);
98  StdFace_NotUsed_c("t2", StdI->t2);
99  StdFace_NotUsed_c("t'", StdI->tp);
100  StdFace_NotUsed_c("t0'", StdI->t0p);
101  StdFace_NotUsed_c("t1'", StdI->t1p);
102  StdFace_NotUsed_c("t2'", StdI->t2p);
103  StdFace_NotUsed_c("t''", StdI->tpp);
104  StdFace_NotUsed_d("V", StdI->V);
105  StdFace_NotUsed_d("V0", StdI->V0);
106  StdFace_NotUsed_d("V1", StdI->V1);
107  StdFace_NotUsed_d("V'", StdI->Vp);
108  }/*if (strcmp(StdI->model, "spin") == 0 )*/
109  else {
110  StdFace_PrintVal_d("mu", &StdI->mu, 0.0);
111  StdFace_PrintVal_d("U", &StdI->U, 0.0);
112  StdFace_InputHopp(StdI->t, &StdI->t0, "t0");
113  StdFace_InputHopp(StdI->t, &StdI->t1, "t1");
114  StdFace_InputHopp(StdI->t, &StdI->t2, "t2");
115  StdFace_InputHopp(StdI->t, &StdI->t0p, "t0'");
116  StdFace_InputHopp(StdI->t, &StdI->t1p, "t1'");
117  StdFace_InputHopp(StdI->t, &StdI->t2p, "t2'");
118  StdFace_InputCoulombV(StdI->V, &StdI->V0, "V0");
119  StdFace_InputCoulombV(StdI->V, &StdI->V1, "V1");
120  StdFace_InputCoulombV(StdI->V, &StdI->V2, "V2");
121  StdFace_InputCoulombV(StdI->V, &StdI->V0p, "V0'");
122  StdFace_InputCoulombV(StdI->V, &StdI->V1p, "V1'");
123  StdFace_InputCoulombV(StdI->V, &StdI->V2p, "V2'");
124 
125  StdFace_NotUsed_J("J0", StdI->J0All, StdI->J0);
126  StdFace_NotUsed_J("J1", StdI->J1All, StdI->J1);
127  StdFace_NotUsed_J("J2", StdI->J2All, StdI->J2);
128  StdFace_NotUsed_J("J0'", StdI->J0pAll, StdI->J0p);
129  StdFace_NotUsed_J("J1'", StdI->J1pAll, StdI->J1p);
130  StdFace_NotUsed_J("J2'", StdI->J2pAll, StdI->J2p);
131  StdFace_NotUsed_J("J''", StdI->JppAll, StdI->Jpp);
132  StdFace_NotUsed_d("D", StdI->D[2][2]);
133 
134  if (strcmp(StdI->model, "hubbard") == 0 ) {
135  StdFace_NotUsed_i("2S", StdI->S2);
136  StdFace_NotUsed_J("J", StdI->JAll, StdI->J);
137  }/*if (strcmp(StdI->model, "hubbard") == 0 )*/
138  else {
139  StdFace_PrintVal_i("2S", &StdI->S2, 1);
140  StdFace_InputSpin(StdI->J, StdI->JAll, "J");
141  }/*if (model != "hubbard")*/
142 
143  }/*if (model != "spin")*/
144  fprintf(stdout, "\n @ Numerical conditions\n\n");
149  StdI->nsite = StdI->NsiteUC * StdI->NCell;
150  if (strcmp(StdI->model, "kondo") == 0 ) StdI->nsite *= 2;
151  StdI->locspinflag = (int *)malloc(sizeof(int) * StdI->nsite);
152 
153  if(strcmp(StdI->model, "spin") == 0 )
154  for (isite = 0; isite < StdI->nsite; isite++) StdI->locspinflag[isite] = StdI->S2;
155  else if(strcmp(StdI->model, "hubbard") == 0 )
156  for (isite = 0; isite < StdI->nsite; isite++) StdI->locspinflag[isite] = 0;
157  else
158  for (iL = 0; iL < StdI->nsite / 2; iL++) {
159  StdI->locspinflag[iL] = StdI->S2;
160  StdI->locspinflag[iL + StdI->nsite / 2] = 0;
161  }
165  if (strcmp(StdI->model, "spin") == 0 ) {
166  ntransMax = StdI->nsite * (StdI->S2 + 1/*h*/ + 2 * StdI->S2/*Gamma*/);
167  nintrMax = StdI->NCell * (StdI->NsiteUC/*D*/ + 12/*J*/ + 0/*J'*/ + 0/*J''*/)
168  * (3 * StdI->S2 + 1) * (3 * StdI->S2 + 1);
169  }
170  else {
171  ntransMax = StdI->NCell * 2/*spin*/ * (2 * StdI->NsiteUC/*mu+h+Gamma*/ + 24/*t*/ + 0/*t'*/ + 0/*t''*/);
172  nintrMax = StdI->NCell * (StdI->NsiteUC/*U*/ + 4 * (12/*V*/ + 0/*V'*/ + 0/*V''*/));
173 
174  if (strcmp(StdI->model, "kondo") == 0) {
175  ntransMax += StdI->nsite / 2 * (StdI->S2 + 1/*h*/ + 2 * StdI->S2/*Gamma*/);
176  nintrMax += StdI->nsite / 2 * (3 * StdI->S2 + 1) * (3 * StdI->S2 + 1);
177  }
178  }
179 
180  StdFace_MallocInteractions(StdI, ntransMax, nintrMax);
184  for (kCell = 0; kCell < StdI->NCell; kCell++){
185 
186  iW = StdI->Cell[kCell][0];
187  iL = StdI->Cell[kCell][1];
188  iH = StdI->Cell[kCell][2];
189  /*
190  (1) Local term
191  */
192  isite = StdI->NsiteUC * kCell;
193  if (strcmp(StdI->model, "kondo") == 0) isite += StdI->nsite / 2;
194 
195  if (strcmp(StdI->model, "spin") == 0) {
196  for (isiteUC = 0; isiteUC < StdI->NsiteUC; isiteUC++) {
197  StdFace_MagField(StdI, StdI->S2, -StdI->h, -StdI->Gamma, isite + isiteUC);
198  StdFace_GeneralJ(StdI, StdI->D, StdI->S2, StdI->S2, isite + isiteUC, isite + isiteUC);
199  }/*for (isiteUC = 0; isiteUC < StdI->NsiteUC; isiteUC++)*/
200  }/*if (strcmp(StdI->model, "spin") == 0 )*/
201  else {
202  for (isiteUC = 0; isiteUC < StdI->NsiteUC; isiteUC++) {
203  StdFace_HubbardLocal(StdI, StdI->mu, -StdI->h, -StdI->Gamma, StdI->U, isite + isiteUC);
204  }/*for (isiteUC = 0; isiteUC < StdI->NsiteUC; isiteUC++)*/
205 
206  if (strcmp(StdI->model, "kondo") == 0) {
207  jsite = StdI->NsiteUC * kCell;
208  for (isiteUC = 0; isiteUC < StdI->NsiteUC; isiteUC++) {
209  StdFace_GeneralJ(StdI, StdI->J, 1, StdI->S2, isite + 3, jsite + isiteUC);
210  StdFace_MagField(StdI, StdI->S2, -StdI->h, -StdI->Gamma, jsite + isiteUC);
211  }/*for (isiteUC = 0; isiteUC < StdI->NsiteUC; isiteUC++)*/
212  }/*if (strcmp(StdI->model, "kondo") == 0 )*/
213  }/*if (strcmp(StdI->model, "spin") != 0 )*/
214  /*
215  (2) Intra-Cell along W
216  */
217  StdFace_FindSite(StdI, iW, iL, iH, 0, 0, 0, 0, 1, &isite, &jsite, &Cphase, dR);
218 
219  if (strcmp(StdI->model, "spin") == 0 ) {
220  StdFace_GeneralJ(StdI, StdI->J0, StdI->S2, StdI->S2, isite, jsite);
221  }/*if (strcmp(StdI->model, "spin") == 0 )*/
222  else {
223  StdFace_Hopping(StdI, Cphase * StdI->t0, isite, jsite, dR);
224  StdFace_Coulomb(StdI, StdI->V0, isite, jsite);
225  }
226  /*
227  (3) Intra-Cell along L
228  */
229  StdFace_FindSite(StdI, iW, iL, iH, 0, 0, 0, 0, 2, &isite, &jsite, &Cphase, dR);
230 
231  if (strcmp(StdI->model, "spin") == 0) {
232  StdFace_GeneralJ(StdI, StdI->J1, StdI->S2, StdI->S2, isite, jsite);
233  }/*if (strcmp(StdI->model, "spin") == 0 )*/
234  else {
235  StdFace_Hopping(StdI, Cphase * StdI->t1, isite, jsite, dR);
236  StdFace_Coulomb(StdI, StdI->V1, isite, jsite);
237  }
238  /*
239  (4) Intra-Cell along H
240  */
241  StdFace_FindSite(StdI, iW, iL, iH, 0, 0, 0, 0, 3, &isite, &jsite, &Cphase, dR);
242 
243  if (strcmp(StdI->model, "spin") == 0) {
244  StdFace_GeneralJ(StdI, StdI->J2, StdI->S2, StdI->S2, isite, jsite);
245  }/*if (strcmp(StdI->model, "spin") == 0 )*/
246  else {
247  StdFace_Hopping(StdI, Cphase * StdI->t2, isite, jsite, dR);
248  StdFace_Coulomb(StdI, StdI->V2, isite, jsite);
249  }
250  /*
251  (5) Intra-Cell along L-H
252  */
253  StdFace_FindSite(StdI, iW, iL, iH, 0, 0, 0, 2, 3, &isite, &jsite, &Cphase, dR);
254 
255  if (strcmp(StdI->model, "spin") == 0) {
256  StdFace_GeneralJ(StdI, StdI->J0p, StdI->S2, StdI->S2, isite, jsite);
257  }/*if (strcmp(StdI->model, "spin") == 0 )*/
258  else {
259  StdFace_Hopping(StdI, Cphase * StdI->t0p, isite, jsite, dR);
260  StdFace_Coulomb(StdI, StdI->V0p, isite, jsite);
261  }
262  /*
263  (6) Intra-Cell along H-W
264  */
265  StdFace_FindSite(StdI, iW, iL, iH, 0, 0, 0, 3, 1, &isite, &jsite, &Cphase, dR);
266 
267  if (strcmp(StdI->model, "spin") == 0) {
268  StdFace_GeneralJ(StdI, StdI->J1p, StdI->S2, StdI->S2, isite, jsite);
269  }/*if (strcmp(StdI->model, "spin") == 0 )*/
270  else {
271  StdFace_Hopping(StdI, Cphase * StdI->t1p, isite, jsite, dR);
272  StdFace_Coulomb(StdI, StdI->V1p, isite, jsite);
273  }
274  /*
275  (7) Intra-Cell along W-L
276  */
277  StdFace_FindSite(StdI, iW, iL, iH, 0, 0, 0, 1, 2, &isite, &jsite, &Cphase, dR);
278 
279  if (strcmp(StdI->model, "spin") == 0) {
280  StdFace_GeneralJ(StdI, StdI->J2p, StdI->S2, StdI->S2, isite, jsite);
281  }/*if (strcmp(StdI->model, "spin") == 0 )*/
282  else {
283  StdFace_Hopping(StdI, Cphase * StdI->t2p, isite, jsite, dR);
284  StdFace_Coulomb(StdI, StdI->V2p, isite, jsite);
285  }
286  /*
287  (8) Inter-Cell along W
288  */
289  StdFace_FindSite(StdI, iW, iL, iH, 1, 0, 0, 1, 0, &isite, &jsite, &Cphase, dR);
290 
291  if (strcmp(StdI->model, "spin") == 0) {
292  StdFace_GeneralJ(StdI, StdI->J0, StdI->S2, StdI->S2, isite, jsite);
293  }/*if (strcmp(StdI->model, "spin") == 0 )*/
294  else {
295  StdFace_Hopping(StdI, Cphase * StdI->t0, isite, jsite, dR);
296  StdFace_Coulomb(StdI, StdI->V0, isite, jsite);
297  }
298  /*
299  (9) Inter-Cell along L
300  */
301  StdFace_FindSite(StdI, iW, iL, iH, 0, 1, 0, 2, 0, &isite, &jsite, &Cphase, dR);
302 
303  if (strcmp(StdI->model, "spin") == 0) {
304  StdFace_GeneralJ(StdI, StdI->J1, StdI->S2, StdI->S2, isite, jsite);
305  }/*if (strcmp(StdI->model, "spin") == 0 )*/
306  else {
307  StdFace_Hopping(StdI, Cphase * StdI->t1, isite, jsite, dR);
308  StdFace_Coulomb(StdI, StdI->V1, isite, jsite);
309  }
310  /*
311  (10) Inter-Cell along H
312  */
313  StdFace_FindSite(StdI, iW, iL, iH, 0, 0, 1, 3, 0, &isite, &jsite, &Cphase, dR);
314 
315  if (strcmp(StdI->model, "spin") == 0) {
316  StdFace_GeneralJ(StdI, StdI->J2, StdI->S2, StdI->S2, isite, jsite);
317  }/*if (strcmp(StdI->model, "spin") == 0 )*/
318  else {
319  StdFace_Hopping(StdI, Cphase * StdI->t2, isite, jsite, dR);
320  StdFace_Coulomb(StdI, StdI->V2, isite, jsite);
321  }
322  /*
323  (11) Inter-Cell along L-H
324  */
325  StdFace_FindSite(StdI, iW, iL, iH, 0, -1, 1, 3, 2, &isite, &jsite, &Cphase, dR);
326 
327  if (strcmp(StdI->model, "spin") == 0) {
328  StdFace_GeneralJ(StdI, StdI->J0p, StdI->S2, StdI->S2, isite, jsite);
329  }/*if (strcmp(StdI->model, "spin") == 0 )*/
330  else {
331  StdFace_Hopping(StdI, Cphase * StdI->t0p, isite, jsite, dR);
332  StdFace_Coulomb(StdI, StdI->V0p, isite, jsite);
333  }
334  /*
335  (12) Intra-Cell along H-W
336  */
337  StdFace_FindSite(StdI, iW, iL, iH, 1, 0, -1, 1, 3, &isite, &jsite, &Cphase, dR);
338 
339  if (strcmp(StdI->model, "spin") == 0) {
340  StdFace_GeneralJ(StdI, StdI->J1p, StdI->S2, StdI->S2, isite, jsite);
341  }/*if (strcmp(StdI->model, "spin") == 0 )*/
342  else {
343  StdFace_Hopping(StdI, Cphase * StdI->t1p, isite, jsite, dR);
344  StdFace_Coulomb(StdI, StdI->V1p, isite, jsite);
345  }
346  /*
347  (13) Intra-Cell along W-L
348  */
349  StdFace_FindSite(StdI, iW, iL, iH, -1, 1, 0, 2, 1, &isite, &jsite, &Cphase, dR);
350 
351  if (strcmp(StdI->model, "spin") == 0) {
352  StdFace_GeneralJ(StdI, StdI->J2p, StdI->S2, StdI->S2, isite, jsite);
353  }/*if (strcmp(StdI->model, "spin") == 0 )*/
354  else {
355  StdFace_Hopping(StdI, Cphase * StdI->t2p, isite, jsite, dR);
356  StdFace_Coulomb(StdI, StdI->V2p, isite, jsite);
357  }
358  }/*for (kCell = 0; kCell < StdI->NCell; kCell++)*/
359 
360  fclose(fp);
361  StdFace_PrintXSF(StdI);
362  StdFace_PrintGeometry(StdI);
363 }/*void StdFace_Pyrochlore*/
void StdFace_PrintVal_i(char *valname, int *val, int val0)
Print a valiable (integer) read from the input file if it is not specified in the input file (=214748...
double V2
Anisotropic Coulomb potential (1st), input parameter.
Definition: StdFace_vals.h:83
double complex t2p
Anisotropic hopping (2nd), input parameter.
Definition: StdFace_vals.h:71
double J[3][3]
Isotropic, diagonal/off-diagonal spin coupling (1st Near.), input parameter Jx, Jy, Jz, Jxy, etc.
Definition: StdFace_vals.h:112
void StdFace_GeneralJ(struct StdIntList *StdI, double J[3][3], int Si2, int Sj2, int isite, int jsite)
Treat J as a 3*3 matrix [(6S + 1)*(6S&#39; + 1) interactions].
void StdFace_HubbardLocal(struct StdIntList *StdI, double mu0, double h0, double Gamma0, double U0, int isite)
Add intra-Coulomb, magnetic field, chemical potential for the itenerant electron. ...
double D[3][3]
Coefficient for input parameter D. Only D[2][2] is used.
Definition: StdFace_vals.h:145
double J1p[3][3]
Isotropic, diagonal/off-diagonal spin coupling (2nd Near.), input parameter J1&#39;x, J1&#39;y...
Definition: StdFace_vals.h:128
void StdFace_PrintGeometry(struct StdIntList *StdI)
Print geometry of sites for the pos-process of correlation function.
void StdFace_InputHopp(double complex t, double complex *t0, char *t0name)
Input hopping integral from the input file, if it is not specified, use the default value(0 or the is...
double J1[3][3]
Isotropic, diagonal/off-diagonal spin coupling (1st Near.), input parameter J1x, J1y, J1z, J1xy, etc. or set in StdFace_InputSpinNN().
Definition: StdFace_vals.h:125
double J2p[3][3]
Isotropic, diagonal/off-diagonal spin coupling (2nd Near.), input parameter J2&#39;x, J2&#39;y...
Definition: StdFace_vals.h:137
void StdFace_Hopping(struct StdIntList *StdI, double complex trans0, int isite, int jsite, double *dR)
Add Hopping for the both spin.
double complex t
Nearest-neighbor hopping, input parameter.
Definition: StdFace_vals.h:62
void StdFace_MallocInteractions(struct StdIntList *StdI, int ntransMax, int nintrMax)
Malloc Arrays for interactions.
double JAll
Isotropic, diagonal spin coupling (1st Near.), input parameter J.
Definition: StdFace_vals.h:88
int S2
Total spin |S| of a local spin, input from file.
Definition: StdFace_vals.h:236
int NsiteUC
Number of sites in the unit cell. Defined in the beginning of each lattice function.
Definition: StdFace_vals.h:53
void StdFace_InputSpin(double Jp[3][3], double JpAll, char *Jpname)
Input spin-spin interaction other than nearest-neighbor.
double J1All
Anisotropic, diagonal spin coupling (1st Near), input parameter J1.
Definition: StdFace_vals.h:98
double V0p
Anisotropic Coulomb potential (2nd), input parameter.
Definition: StdFace_vals.h:78
void StdFace_InitSite(struct StdIntList *StdI, FILE *fp, int dim)
Initialize the super-cell where simulation is performed.
double V2p
Anisotropic Coulomb potential (2nd), input parameter.
Definition: StdFace_vals.h:84
double complex tpp
3rd-nearest hopping, input parameter
Definition: StdFace_vals.h:73
char model[256]
Name of model, input parameter.
Definition: StdFace_vals.h:60
void StdFace_NotUsed_J(char *valname, double JAll, double J[3][3])
Stop HPhi if variables (real) not used is specified in the input file (!=NaN).
double Gamma
Transvars magnetic field, input parameter.
Definition: StdFace_vals.h:148
double JppAll
Isotropic, diagonal spin coupling (3rd Near), input parameter J&#39;&#39;.
Definition: StdFace_vals.h:110
double V1
Anisotropic Coulomb potential (1st), input parameter.
Definition: StdFace_vals.h:80
double J0All
Anisotropic, diagonal spin coupling (1st Near), input parameter J0.
Definition: StdFace_vals.h:92
double J0[3][3]
Isotropic, diagonal/off-diagonal spin coupling (1st Near.), input parameter J0x, J0y, J0z, J0xy, etc. or set in StdFace_InputSpinNN().
Definition: StdFace_vals.h:116
double U
On-site Coulomb potential, input parameter.
Definition: StdFace_vals.h:74
double complex t0p
Anisotropic hopping (2nd), input parameter.
Definition: StdFace_vals.h:65
int ** Cell
[StdIntList][3] The cell position in the fractional coordinate. Malloc and Set in StdFace_InitSite()...
Definition: StdFace_vals.h:51
double phase[3]
Boundary phase, input parameter phase0, etc.
Definition: StdFace_vals.h:154
double J0pAll
Anisotropic, diagonal spin coupling (2nd Near), input parameter J0&#39;.
Definition: StdFace_vals.h:94
double length[3]
Anisotropic lattice constant, input parameter wlength, llength, hlength.
Definition: StdFace_vals.h:37
int * locspinflag
[StdIntList::nsite] LocSpin in Expert mode, malloc and set in each lattice file.
Definition: StdFace_vals.h:162
double complex tp
2nd-nearest hopping, input parameter
Definition: StdFace_vals.h:63
double Jpp[3][3]
Isotropic, diagonal/off-diagonal spin coupling (3rd Near.), input parameter J&#39;&#39;x, J&#39;&#39;y...
Definition: StdFace_vals.h:143
double complex t1
Anisotropic hopping (1st), input parameter.
Definition: StdFace_vals.h:67
double V
Off-site Coulomb potential (1st), input parameter.
Definition: StdFace_vals.h:75
double complex t0
Anisotropic hopping (1st), input parameter.
Definition: StdFace_vals.h:64
double direct[3][3]
The unit direct lattice vector. Set in StdFace_InitSite().
Definition: StdFace_vals.h:42
void StdFace_MagField(struct StdIntList *StdI, int S2, double h, double Gamma, int isite)
Add longitudinal and transvars magnetic field to the list.
void StdFace_NotUsed_d(char *valname, double val)
Stop HPhi if a variable (real) not used is specified in the input file (!=NaN).
double V0
Anisotropic Coulomb potential (1st), input parameter.
Definition: StdFace_vals.h:77
void StdFace_Coulomb(struct StdIntList *StdI, double V, int isite, int jsite)
Add onsite/offsite Coulomb term to the list StdIntList::Cinter and StdIntList::CinterIndx, and increase the number of them (StdIntList::NCinter).
void StdFace_InputCoulombV(double V, double *V0, char *V0name)
Input off-site Coulomb interaction from the input file, if it is not specified, use the default value...
double complex t1p
Anisotropic hopping (2nd), input parameter.
Definition: StdFace_vals.h:68
double complex t2
Anisotropic hopping (1st), input parameter.
Definition: StdFace_vals.h:70
double mu
Chemical potential, input parameter.
Definition: StdFace_vals.h:61
void StdFace_PrintVal_d(char *valname, double *val, double val0)
Print a valiable (real) read from the input file if it is not specified in the input file (=NaN)...
int NCell
The number of the unit cell in the super-cell (determinant of StdIntList::box). Set in StdFace_InitSi...
Definition: StdFace_vals.h:49
double Vp
Off-site Coulomb potential (2nd), input parameter.
Definition: StdFace_vals.h:76
double J1pAll
Anisotropic, diagonal spin coupling (2nd Near), input parameter J1&#39;.
Definition: StdFace_vals.h:100
void StdFace_NotUsed_c(char *valname, double complex val)
Stop HPhi if a variable (complex) not used is specified in the input file (!=NaN).
int nsite
Number of sites, set in the each lattice file.
Definition: StdFace_vals.h:161
double J2All
Anisotropic, diagonal spin coupling (1st Near), input parameter J2.
Definition: StdFace_vals.h:104
void StdFace_NotUsed_i(char *valname, int val)
Stop HPhi if a variable (integer) not used is specified in the input file (!=2147483647, the upper limt of Int).
void StdFace_PrintXSF(struct StdIntList *StdI)
Print lattice.xsf (XCrysDen format)
double h
Longitudinal magnetic field, input parameter.
Definition: StdFace_vals.h:147
double a
The lattice constant. Input parameter.
Definition: StdFace_vals.h:36
void StdFace_FindSite(struct StdIntList *StdI, int iW, int iL, int iH, int diW, int diL, int diH, int isiteUC, int jsiteUC, int *isite, int *jsite, double complex *Cphase, double *dR)
Find the index of transfer and interaction.
double J2[3][3]
Isotropic, diagonal/off-diagonal spin coupling (1st Near.), input parameter J2x, J2y, J2z, J2xy, etc. or set in StdFace_InputSpinNN().
Definition: StdFace_vals.h:134
double J2pAll
Anisotropic, diagonal spin coupling (2nd Near), input parameter J2&#39;.
Definition: StdFace_vals.h:106
double ** tau
Cell-internal site position in the fractional coordinate. Defined in the beginning of each lattice fu...
Definition: StdFace_vals.h:55
double J0p[3][3]
Isotropic, diagonal/off-diagonal spin coupling (2nd Near.), input parameter J0&#39;x, J0&#39;y...
Definition: StdFace_vals.h:119
void StdFace_InputSpinNN(double J[3][3], double JAll, double J0[3][3], double J0All, char *J0name)
Input nearest-neighbor spin-spin interaction.
double V1p
Anisotropic Coulomb potential (2nd), input parameter.
Definition: StdFace_vals.h:81
double K
4-spin term. Not used.
Definition: StdFace_vals.h:149
+ Here is the call graph for this function:
+ Here is the caller graph for this function: