21 #include "StdFace_vals.hpp" 22 #include "StdFace_ModelUtil.hpp" 34 struct StdIntList *StdI
37 int isite, jsite, isiteUC, kCell, ntransMax, nintrMax;
40 std::complex<double> Cphase;
46 fp = fopen(
"lattice.gp",
"w");
50 fprintf(stdout,
" @ Lattice Size & Shape\n\n");
64 StdI->tau[0][0] = 0.0; StdI->tau[0][1] = 0.0; StdI->tau[0][2] = 0.0;
65 StdI->tau[1][0] = 0.5; StdI->tau[1][1] = 0.0; StdI->tau[1][2] = 0.0;
66 StdI->tau[2][0] = 0.0; StdI->tau[2][1] = 0.5; StdI->tau[2][2] = 0.0;
70 fprintf(stdout,
"\n @ Hamiltonian \n\n");
76 if (strcmp(StdI->model,
"spin") == 0 ) {
131 if (strcmp(StdI->model,
"hubbard") == 0 ) {
141 fprintf(stdout,
"\n @ Numerical conditions\n\n");
146 StdI->nsite = StdI->NsiteUC * StdI->NCell;
147 if (strcmp(StdI->model,
"kondo") == 0 ) StdI->nsite *= 2;
148 StdI->locspinflag = (
int *)malloc(
sizeof(
int) * StdI->nsite);
150 if (strcmp(StdI->model,
"spin") == 0 )
151 for (isite = 0; isite < StdI->nsite; isite++) StdI->locspinflag[isite] = StdI->S2;
152 else if (strcmp(StdI->model,
"hubbard") == 0 )
153 for (isite = 0; isite < StdI->nsite; isite++) StdI->locspinflag[isite] = 0;
155 for (iL = 0; iL < StdI->nsite / 2; iL++) {
156 StdI->locspinflag[iL] = StdI->S2;
157 StdI->locspinflag[iL + StdI->nsite / 2] = 0;
162 if (strcmp(StdI->model,
"spin") == 0 ) {
163 ntransMax = StdI->nsite * (StdI->S2 + 1 + 2 * StdI->S2);
164 nintrMax = StdI->NCell * (StdI->NsiteUC + 6 + 6)
165 * (3 * StdI->S2 + 1) * (3 * StdI->S2 + 1);
168 ntransMax = StdI->NCell * 2 * (2 * StdI->NsiteUC + 12 + 12);
169 nintrMax = StdI->NCell * (StdI->NsiteUC + 4 * (6 + 6));
171 if (strcmp(StdI->model,
"kondo") == 0) {
172 ntransMax += StdI->nsite / 2 * (StdI->S2 + 1 + 2 * StdI->S2);
173 nintrMax += StdI->nsite / 2 * (3 * StdI->S2 + 1) * (3 * StdI->S2 + 1);
181 for (kCell = 0; kCell < StdI->NCell; kCell++) {
183 iW = StdI->Cell[kCell][0];
184 iL = StdI->Cell[kCell][1];
188 isite = StdI->NsiteUC * kCell;
189 if (strcmp(StdI->model,
"kondo") == 0 ) isite += StdI->nsite / 2;
191 if (strcmp(StdI->model,
"spin") == 0 ) {
192 for (isiteUC = 0; isiteUC < StdI->NsiteUC; isiteUC++) {
194 StdFace_GeneralJ(StdI, StdI->D, StdI->S2, StdI->S2, isite + isiteUC, isite + isiteUC);
198 for (isiteUC = 0; isiteUC < StdI->NsiteUC; isiteUC++)
201 if (strcmp(StdI->model,
"kondo") == 0 ) {
202 jsite = StdI->NsiteUC * kCell;
203 for (isiteUC = 0; isiteUC < StdI->NsiteUC; isiteUC++) {
204 StdFace_GeneralJ(StdI, StdI->J, 1, StdI->S2, isite + isiteUC, jsite + isiteUC);
212 StdFace_SetLabel(StdI, fp, iW, iL, 0, 0, 0, 1, &isite, &jsite, 1, &Cphase, dR);
214 if (strcmp(StdI->model,
"spin") == 0 ) {
224 StdFace_SetLabel(StdI, fp, iW, iL, 0, 0, 0, 2, &isite, &jsite, 1, &Cphase, dR);
226 if (strcmp(StdI->model,
"spin") == 0 ) {
236 StdFace_SetLabel(StdI, fp, iW, iL, 0, 0, 1, 2, &isite, &jsite, 1, &Cphase, dR);
238 if (strcmp(StdI->model,
"spin") == 0 ) {
248 StdFace_SetLabel(StdI, fp, iW, iL, 1, 0, 1, 0, &isite, &jsite, 1, &Cphase, dR);
250 if (strcmp(StdI->model,
"spin") == 0 ) {
260 StdFace_SetLabel(StdI, fp, iW, iL, 0, 1, 2, 0, &isite, &jsite, 1, &Cphase, dR);
262 if (strcmp(StdI->model,
"spin") == 0 ) {
272 StdFace_SetLabel(StdI, fp, iW, iL, 1, - 1, 1, 2, &isite, &jsite, 1, &Cphase, dR);
274 if (strcmp(StdI->model,
"spin") == 0 ) {
284 StdFace_SetLabel(StdI, fp, iW, iL, 1, 0, 2, 0, &isite, &jsite, 2, &Cphase, dR);
286 if (strcmp(StdI->model,
"spin") == 0 ) {
296 StdFace_SetLabel(StdI, fp, iW, iL, 1, 0, 1, 2, &isite, &jsite, 2, &Cphase, dR);
298 if (strcmp(StdI->model,
"spin") == 0 ) {
308 StdFace_SetLabel(StdI, fp, iW, iL, 0, 1, 1, 0, &isite, &jsite, 2, &Cphase, dR);
310 if (strcmp(StdI->model,
"spin") == 0 ) {
320 StdFace_SetLabel(StdI, fp, iW, iL, 0, 1, 2, 1, &isite, &jsite, 2, &Cphase, dR);
322 if (strcmp(StdI->model,
"spin") == 0 ) {
332 StdFace_SetLabel(StdI, fp, iW, iL, 1, - 1, 0, 2, &isite, &jsite, 2, &Cphase, dR);
334 if (strcmp(StdI->model,
"spin") == 0 ) {
344 StdFace_SetLabel(StdI, fp, iW, iL, - 1, 1, 0, 1, &isite, &jsite, 2, &Cphase, dR);
346 if (strcmp(StdI->model,
"spin") == 0 ) {
355 fprintf(fp,
"plot \'-\' w d lc 7\n0.0 0.0\nend\npause -1\n");
369 int isite, ipivot, i1, i2;
373 if (StdI->box[0][1] != 0 || StdI->box[1][0] != 0) {
374 fprintf(stdout,
"\nERROR ! (a0W, a0L, a1W, a1L) can not be used with SpinGCBoost.\n\n");
377 for (i1 = 0; i1 < 3; i1++) {
378 for (i2 = 0; i2 < 3; i2++) {
379 if (fabs(StdI->Jp[i1][i2]) > 1.0e-8) {
380 fprintf(stdout,
"\nERROR ! J' can not be used with SpinGCBoost.\n\n");
388 fp = fopen(
"boost.def",
"w");
389 fprintf(fp,
"# Magnetic field\n");
390 fprintf(fp,
"%25.15e %25.15e %25.15e\n",
391 -0.5 * StdI->Gamma, 0.0, -0.5 * StdI->h);
395 fprintf(fp,
"%d # Number of type of J\n", 3);
396 fprintf(fp,
"# J 0\n");
397 fprintf(fp,
"%25.15e %25.15e %25.15e\n",
398 0.25 * StdI->J0[0][0], 0.25 * StdI->J0[0][1], 0.25 * StdI->J0[0][2]);
399 fprintf(fp,
"%25.15e %25.15e %25.15e\n",
400 0.25 * StdI->J0[0][1], 0.25 * StdI->J0[1][1], 0.25 * StdI->J0[1][2]);
401 fprintf(fp,
"%25.15e %25.15e %25.15e\n",
402 0.25 * StdI->J0[0][2], 0.25 * StdI->J0[1][2], 0.25 * StdI->J0[2][2]);
403 fprintf(fp,
"# J 1\n");
404 fprintf(fp,
"%25.15e %25.15e %25.15e\n",
405 0.25 * StdI->J1[0][0], 0.25 * StdI->J1[0][1], 0.25 * StdI->J1[0][2]);
406 fprintf(fp,
"%25.15e %25.15e %25.15e\n",
407 0.25 * StdI->J1[0][1], 0.25 * StdI->J1[1][1], 0.25 * StdI->J1[1][2]);
408 fprintf(fp,
"%25.15e %25.15e %25.15e\n",
409 0.25 * StdI->J1[0][2], 0.25 * StdI->J1[1][2], 0.25 * StdI->J1[2][2]);
410 fprintf(fp,
"# J 2\n");
411 fprintf(fp,
"%25.15e %25.15e %25.15e\n",
412 0.25 * StdI->J2[0][0], 0.25 * StdI->J2[0][1], 0.25 * StdI->J2[0][2]);
413 fprintf(fp,
"%25.15e %25.15e %25.15e\n",
414 0.25 * StdI->J2[0][1], 0.25 * StdI->J2[1][1], 0.25 * StdI->J2[1][2]);
415 fprintf(fp,
"%25.15e %25.15e %25.15e\n",
416 0.25 * StdI->J2[0][2], 0.25 * StdI->J2[1][2], 0.25 * StdI->J2[2][2]);
420 fprintf(stdout,
"\n ERROR! S2 must be 1 in Boost. \n\n");
423 StdI->ishift_nspin = 3;
425 fprintf(stdout,
"\n ERROR! L < 2 \n\n");
428 if (StdI->W % StdI->ishift_nspin != 0) {
429 fprintf(stdout,
"\n ERROR! W %% %d != 0 \n\n", StdI->ishift_nspin);
434 fprintf(stdout,
"DEBUG: W != 3\n");
438 fprintf(fp,
"# W0 R0 StdI->num_pivot StdI->ishift_nspin\n");
439 fprintf(fp,
"%d %d %d %d\n", StdI->W, StdI->L, StdI->num_pivot, StdI->ishift_nspin);
441 StdI->list_6spin_star = (
int **)malloc(
sizeof(
int*) * StdI->num_pivot);
442 for (ipivot = 0; ipivot < StdI->num_pivot; ipivot++) {
443 StdI->list_6spin_star[ipivot] = (
int *)malloc(
sizeof(
int) * 7);
446 StdI->list_6spin_star[0][0] = 1;
447 StdI->list_6spin_star[0][1] = 1;
448 StdI->list_6spin_star[0][2] = 1;
449 StdI->list_6spin_star[0][3] = 1;
450 StdI->list_6spin_star[0][4] = 4;
451 StdI->list_6spin_star[0][5] = 2;
452 StdI->list_6spin_star[0][6] = -1;
454 StdI->list_6spin_star[1][0] = 6;
455 StdI->list_6spin_star[1][1] = 1;
456 StdI->list_6spin_star[1][2] = 1;
457 StdI->list_6spin_star[1][3] = 1;
458 StdI->list_6spin_star[1][4] = 6;
459 StdI->list_6spin_star[1][5] = 7;
460 StdI->list_6spin_star[1][6] = 1;
462 StdI->list_6spin_star[2][0] = 6;
463 StdI->list_6spin_star[2][1] = 1;
464 StdI->list_6spin_star[2][2] = 1;
465 StdI->list_6spin_star[2][3] = 1;
466 StdI->list_6spin_star[2][4] = 4;
467 StdI->list_6spin_star[2][5] = 2;
468 StdI->list_6spin_star[2][6] = 1;
470 StdI->list_6spin_star[3][0] = 5;
471 StdI->list_6spin_star[3][1] = 1;
472 StdI->list_6spin_star[3][2] = 1;
473 StdI->list_6spin_star[3][3] = 1;
474 StdI->list_6spin_star[3][4] = 4;
475 StdI->list_6spin_star[3][5] = 2;
476 StdI->list_6spin_star[3][6] = 1;
478 fprintf(fp,
"# StdI->list_6spin_star\n");
479 for (ipivot = 0; ipivot < StdI->num_pivot; ipivot++) {
480 fprintf(fp,
"# pivot %d\n", ipivot);
481 for (isite = 0; isite < 7; isite++) {
482 fprintf(fp,
"%d ", StdI->list_6spin_star[ipivot][isite]);
487 StdI->list_6spin_pair = (
int ***)malloc(
sizeof(
int**) * StdI->num_pivot);
488 for (ipivot = 0; ipivot < StdI->num_pivot; ipivot++) {
489 StdI->list_6spin_pair[ipivot] = (
int **)malloc(
sizeof(
int*) * 7);
490 for (isite = 0; isite < 7; isite++) {
491 StdI->list_6spin_pair[ipivot][isite] = (
int *)malloc(
sizeof(
int) * StdI->list_6spin_star[ipivot][0]);
495 StdI->list_6spin_pair[0][0][0] = 0;
496 StdI->list_6spin_pair[0][1][0] = 4;
497 StdI->list_6spin_pair[0][2][0] = 1;
498 StdI->list_6spin_pair[0][3][0] = 2;
499 StdI->list_6spin_pair[0][4][0] = 3;
500 StdI->list_6spin_pair[0][5][0] = 5;
501 StdI->list_6spin_pair[0][6][0] = 3;
503 StdI->list_6spin_pair[1][0][0] = 0;
504 StdI->list_6spin_pair[1][1][0] = 1;
505 StdI->list_6spin_pair[1][2][0] = 2;
506 StdI->list_6spin_pair[1][3][0] = 3;
507 StdI->list_6spin_pair[1][4][0] = 4;
508 StdI->list_6spin_pair[1][5][0] = 5;
509 StdI->list_6spin_pair[1][6][0] = 3;
510 StdI->list_6spin_pair[1][0][1] = 1;
511 StdI->list_6spin_pair[1][1][1] = 2;
512 StdI->list_6spin_pair[1][2][1] = 0;
513 StdI->list_6spin_pair[1][3][1] = 3;
514 StdI->list_6spin_pair[1][4][1] = 4;
515 StdI->list_6spin_pair[1][5][1] = 5;
516 StdI->list_6spin_pair[1][6][1] = 1;
517 StdI->list_6spin_pair[1][0][2] = 0;
518 StdI->list_6spin_pair[1][1][2] = 2;
519 StdI->list_6spin_pair[1][2][2] = 1;
520 StdI->list_6spin_pair[1][3][2] = 3;
521 StdI->list_6spin_pair[1][4][2] = 4;
522 StdI->list_6spin_pair[1][5][2] = 5;
523 StdI->list_6spin_pair[1][6][2] = 2;
524 StdI->list_6spin_pair[1][0][3] = 1;
525 StdI->list_6spin_pair[1][1][3] = 3;
526 StdI->list_6spin_pair[1][2][3] = 0;
527 StdI->list_6spin_pair[1][3][3] = 2;
528 StdI->list_6spin_pair[1][4][3] = 4;
529 StdI->list_6spin_pair[1][5][3] = 5;
530 StdI->list_6spin_pair[1][6][3] = 3;
531 StdI->list_6spin_pair[1][0][4] = 2;
532 StdI->list_6spin_pair[1][1][4] = 4;
533 StdI->list_6spin_pair[1][2][4] = 0;
534 StdI->list_6spin_pair[1][3][4] = 1;
535 StdI->list_6spin_pair[1][4][4] = 3;
536 StdI->list_6spin_pair[1][5][4] = 5;
537 StdI->list_6spin_pair[1][6][4] = 2;
538 StdI->list_6spin_pair[1][0][5] = 2;
539 StdI->list_6spin_pair[1][1][5] = 5;
540 StdI->list_6spin_pair[1][2][5] = 0;
541 StdI->list_6spin_pair[1][3][5] = 1;
542 StdI->list_6spin_pair[1][4][5] = 3;
543 StdI->list_6spin_pair[1][5][5] = 4;
544 StdI->list_6spin_pair[1][6][5] = 1;
546 StdI->list_6spin_pair[2][0][0] = 0;
547 StdI->list_6spin_pair[2][1][0] = 1;
548 StdI->list_6spin_pair[2][2][0] = 2;
549 StdI->list_6spin_pair[2][3][0] = 3;
550 StdI->list_6spin_pair[2][4][0] = 4;
551 StdI->list_6spin_pair[2][5][0] = 5;
552 StdI->list_6spin_pair[2][6][0] = 3;
553 StdI->list_6spin_pair[2][0][1] = 1;
554 StdI->list_6spin_pair[2][1][1] = 2;
555 StdI->list_6spin_pair[2][2][1] = 0;
556 StdI->list_6spin_pair[2][3][1] = 3;
557 StdI->list_6spin_pair[2][4][1] = 4;
558 StdI->list_6spin_pair[2][5][1] = 5;
559 StdI->list_6spin_pair[2][6][1] = 1;
560 StdI->list_6spin_pair[2][0][2] = 0;
561 StdI->list_6spin_pair[2][1][2] = 2;
562 StdI->list_6spin_pair[2][2][2] = 1;
563 StdI->list_6spin_pair[2][3][2] = 3;
564 StdI->list_6spin_pair[2][4][2] = 4;
565 StdI->list_6spin_pair[2][5][2] = 5;
566 StdI->list_6spin_pair[2][6][2] = 2;
567 StdI->list_6spin_pair[2][0][3] = 1;
568 StdI->list_6spin_pair[2][1][3] = 3;
569 StdI->list_6spin_pair[2][2][3] = 0;
570 StdI->list_6spin_pair[2][3][3] = 2;
571 StdI->list_6spin_pair[2][4][3] = 4;
572 StdI->list_6spin_pair[2][5][3] = 5;
573 StdI->list_6spin_pair[2][6][3] = 3;
574 StdI->list_6spin_pair[2][0][4] = 2;
575 StdI->list_6spin_pair[2][1][4] = 5;
576 StdI->list_6spin_pair[2][2][4] = 0;
577 StdI->list_6spin_pair[2][3][4] = 1;
578 StdI->list_6spin_pair[2][4][4] = 3;
579 StdI->list_6spin_pair[2][5][4] = 4;
580 StdI->list_6spin_pair[2][6][4] = 2;
581 StdI->list_6spin_pair[2][0][5] = 2;
582 StdI->list_6spin_pair[2][1][5] = 4;
583 StdI->list_6spin_pair[2][2][5] = 0;
584 StdI->list_6spin_pair[2][3][5] = 1;
585 StdI->list_6spin_pair[2][4][5] = 3;
586 StdI->list_6spin_pair[2][5][5] = 5;
587 StdI->list_6spin_pair[2][6][5] = 1;
589 StdI->list_6spin_pair[3][0][0] = 0;
590 StdI->list_6spin_pair[3][1][0] = 1;
591 StdI->list_6spin_pair[3][2][0] = 2;
592 StdI->list_6spin_pair[3][3][0] = 3;
593 StdI->list_6spin_pair[3][4][0] = 4;
594 StdI->list_6spin_pair[3][5][0] = 5;
595 StdI->list_6spin_pair[3][6][0] = 3;
596 StdI->list_6spin_pair[3][0][1] = 1;
597 StdI->list_6spin_pair[3][1][1] = 2;
598 StdI->list_6spin_pair[3][2][1] = 0;
599 StdI->list_6spin_pair[3][3][1] = 3;
600 StdI->list_6spin_pair[3][4][1] = 4;
601 StdI->list_6spin_pair[3][5][1] = 5;
602 StdI->list_6spin_pair[3][6][1] = 1;
603 StdI->list_6spin_pair[3][0][2] = 0;
604 StdI->list_6spin_pair[3][1][2] = 2;
605 StdI->list_6spin_pair[3][2][2] = 1;
606 StdI->list_6spin_pair[3][3][2] = 3;
607 StdI->list_6spin_pair[3][4][2] = 4;
608 StdI->list_6spin_pair[3][5][2] = 5;
609 StdI->list_6spin_pair[3][6][2] = 2;
610 StdI->list_6spin_pair[3][0][3] = 2;
611 StdI->list_6spin_pair[3][1][3] = 5;
612 StdI->list_6spin_pair[3][2][3] = 0;
613 StdI->list_6spin_pair[3][3][3] = 1;
614 StdI->list_6spin_pair[3][4][3] = 3;
615 StdI->list_6spin_pair[3][5][3] = 4;
616 StdI->list_6spin_pair[3][6][3] = 2;
617 StdI->list_6spin_pair[3][0][4] = 2;
618 StdI->list_6spin_pair[3][1][4] = 4;
619 StdI->list_6spin_pair[3][2][4] = 0;
620 StdI->list_6spin_pair[3][3][4] = 1;
621 StdI->list_6spin_pair[3][4][4] = 3;
622 StdI->list_6spin_pair[3][5][4] = 5;
623 StdI->list_6spin_pair[3][6][4] = 1;
625 fprintf(fp,
"# StdI->list_6spin_pair\n");
626 for (ipivot = 0; ipivot < StdI->num_pivot; ipivot++) {
627 fprintf(fp,
"# pivot %d\n", ipivot);
628 for (kintr = 0; kintr < StdI->list_6spin_star[ipivot][0]; kintr++) {
629 for (isite = 0; isite < 7; isite++) {
630 fprintf(fp,
"%d ", StdI->list_6spin_pair[ipivot][isite][kintr]);
637 for (ipivot = 0; ipivot < StdI->num_pivot; ipivot++) {
638 free(StdI->list_6spin_star[ipivot]);
640 free(StdI->list_6spin_star);
642 for (ipivot = 0; ipivot < StdI->num_pivot; ipivot++) {
643 for (isite = 0; isite < 7; isite++) {
644 free(StdI->list_6spin_pair[ipivot][isite]);
646 free(StdI->list_6spin_pair[ipivot]);
648 free(StdI->list_6spin_pair);
void StdFace_InputHopp(std::complex< double > t, std::complex< double > *t0, const char *t0name)
Input hopping integral from the input file, if it is not specified, use the default value(0 or the is...
void StdFace_SetLabel(struct StdIntList *StdI, FILE *fp, int iW, int iL, int diW, int diL, int isiteUC, int jsiteUC, int *isite, int *jsite, int connect, std::complex< double > *Cphase, double *dR)
Set Label in the gnuplot display (Only used in 2D system)
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_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' + 1) interactions].
void StdFace_InputSpin(double Jp[3][3], double JpAll, const char *Jpname)
Input spin-spin interaction other than nearest-neighbor.
void StdFace_PrintVal_d(const 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)...
void StdFace_exit(int errorcode)
MPI Abortation wrapper.
void StdFace_Kagome_Boost(struct StdIntList *StdI)
void StdFace_Hopping(struct StdIntList *StdI, std::complex< double > trans0, int isite, int jsite, double *dR)
Add Hopping for the both spin.
void StdFace_NotUsed_c(const char *valname, std::complex< double > val)
Stop HPhi if a variable (complex) not used is specified in the input file (!=NaN).
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. ...
void StdFace_NotUsed_J(const char *valname, double JAll, double J[3][3])
Stop HPhi if variables (real) not used is specified in the input file (!=NaN).
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_Kagome(struct StdIntList *StdI)
Setup a Hamiltonian for the Kagome lattice.
void StdFace_PrintGeometry(struct StdIntList *StdI)
Print geometry of sites for the pos-process of correlation function.
void StdFace_InputCoulombV(double V, double *V0, const char *V0name)
Input off-site Coulomb interaction from the input file, if it is not specified, use the default value...
void StdFace_MallocInteractions(struct StdIntList *StdI, int ntransMax, int nintrMax)
Malloc Arrays for interactions.
void StdFace_NotUsed_i(const 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_PrintVal_i(const 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...
void StdFace_InitSite(struct StdIntList *StdI, FILE *fp, int dim)
Initialize the super-cell where simulation is performed.
void StdFace_InputSpinNN(double J[3][3], double JAll, double J0[3][3], double J0All, const char *J0name)
Input nearest-neighbor spin-spin interaction.
void StdFace_NotUsed_d(const char *valname, double val)
Stop HPhi if a variable (real) not used is specified in the input file (!=NaN).