87 lines
3.8 KiB
C++
87 lines
3.8 KiB
C++
/**********************************************************
|
|
|
|
This software is part of J.-S. Caux's ABACUS library.
|
|
|
|
Copyright (c).
|
|
|
|
-----------------------------------------------------------
|
|
|
|
File: JSC_XXZ_h0.h
|
|
|
|
Purpose: Declares classes for XXZ in zero field: quantum group stuff.
|
|
|
|
|
|
***********************************************************/
|
|
|
|
#ifndef _XXZ_h0_
|
|
#define _XXZ_h0_
|
|
|
|
#include "JSC.h"
|
|
|
|
//const DP default_req_prec = 1.0e-14;
|
|
//const int default_max_rec = 10;
|
|
|
|
namespace JSC {
|
|
|
|
/*
|
|
inline DP Integrand_xi_11 (Vect_DP args)
|
|
{
|
|
// args[0] corresponds to t, args[1] to rho, args[2] to xi
|
|
//return((exp(args[0]) * sinh(args[0]) * cos(4.0 * args[0] * args[1])/(2.0 * pow(cosh(args[0]), 2.0)) + 2.0 * pow(sin(2.0 * args[0] * args[1]), 2.0))/args[0]);
|
|
return((sinh(args[0]*(1.0 + args[2])) * sinh(args[0]) * cos(4.0 * args[0] * args[1])/(2.0 * sinh(args[0] * args[2]) * pow(cosh(args[0]), 2.0))
|
|
+ 2.0 * pow(sin(2.0 * args[0] * args[1]), 2.0))/args[0]);
|
|
}
|
|
|
|
inline DP Integrand_xi_12 (Vect_DP args)
|
|
{
|
|
DP expm2t = exp(-2.0*args[0]);
|
|
DP expm2txi = exp(-2.0*args[0]*args[2]);
|
|
//return(cos(4.0 * args[0] * args[1]) * expm2t * (3.0 + expm2t)/ (args[0] * (1.0 + expm2t) * (1.0 + expm2t)));
|
|
return(cos(4.0 * args[0] * args[1]) * (expm2t * (3.0 * (1.0 + expm2txi) + expm2t) + expm2txi) / (args[0] * (1.0 - expm2txi) * (1.0 + expm2t) * (1.0 + expm2t)));
|
|
}
|
|
*/
|
|
/*
|
|
inline DP Integrand_xi_2 (Vect_DP args)
|
|
{
|
|
DP answer = 0.0;
|
|
if (args[0] < 1.0)
|
|
//answer = exp(args[0]) * pow(sin(2.0 * args[0] * args[1]), 2.0)/(args[0] * sinh(args[0]) * pow(cosh(args[0]), 2.0));
|
|
answer = sinh(args[0] * (args[2] + 1.0)) * pow(sin(2.0 * args[0] * args[1]), 2.0)/(args[0] * sinh(args[2] * args[0]) * sinh(args[0]) * pow(cosh(args[0]), 2.0));
|
|
else if (args[0] >= 1.0) {
|
|
DP expm2t = exp(-2.0 * args[0]);
|
|
DP expm2txi = exp(-2.0*args[0]*args[2]);
|
|
//answer = 8.0 * expm2t * pow(sin(2.0 * args[0] * args[1]), 2.0)/(args[0] * (1.0 - expm2t) * (1.0 + expm2t) * (1.0 + expm2t));
|
|
answer = 8.0 * ((1.0 - expm2t*expm2txi)/(1.0 - expm2t*expm2txi)) * expm2t *
|
|
pow(sin(2.0 * args[0] * args[1]), 2.0)/(args[0] * (1.0 - expm2t) * (1.0 + expm2t) * (1.0 + expm2t));
|
|
}
|
|
return(answer);
|
|
}
|
|
*/
|
|
|
|
DP I_xi_integral (DP xi, DP rho, DP req_prec, int max_nr_pts);
|
|
|
|
|
|
/********************* TWO SPINONS ********************/
|
|
DP Szz_XXZ_h0_2spinons (DP k, DP omega, Integral_table Itable);
|
|
DP Szz_XXZ_h0_2spinons (Vect_DP args, Integral_table Itable);
|
|
DP Szz_XXZ_h0_2spinons_alt (Vect_DP args, Integral_table Itable);
|
|
DP Szz_XXZ_h0_2spinons_omega (Vect_DP args, Integral_table Itable);
|
|
DP Szz_XXZ_h0_2spinons_omega_alt (Vect_DP args, Integral_table Itable);
|
|
DP Szz_XXZ_h0_2spinons_intomega (Vect_DP args, Integral_table Itable);
|
|
DP Szz_XXZ_h0_2spinons_intomega_alt (Vect_DP args, Integral_table Itable);
|
|
DP Szz_XXZ_h0_2spinons_check_sumrule (DP Delta, DP req_prec, int max_nr_pts, Integral_table Itable);
|
|
DP Szz_XXZ_h0_2spinons_check_sumrule_alt (DP Delta, DP req_prec, int max_nr_pts, Integral_table Itable);
|
|
DP Fixed_k_sumrule_omega_Szz_XXZ_h0_N (DP Delta, DP k);
|
|
DP GSE_XXZ_h0 (DP Delta, DP req_prec, int max_nr_pts);
|
|
DP Fixed_k_sumrule_omega_Szz_XXZ_h0 (DP Delta, DP k, DP req_prec, int max_nr_pts);
|
|
DP Szz_XXZ_h0_2spinons_check_fixed_k_Szz_sumrule (DP Delta, DP k, DP req_prec, int max_nr_pts, Integral_table Itable);
|
|
DP Szz_XXZ_h0_2spinons_check_fixed_k_Szz_sumrule_alt (DP Delta, DP k, DP req_prec, int max_nr_pts, Integral_table Itable);
|
|
|
|
//******************************** Functions to produce files similar to ABACUS **********************************
|
|
void Produce_Szz_XXZ_h0_2spinons_file (DP Delta, int N, int Nomega, DP omegamax, Integral_table Itable);
|
|
void Produce_Szz_XXZ_h0_2spinons_fixed_K_file (DP Delta, DP Kover2PI, int Nomega, Integral_table Itable);
|
|
|
|
} // namespace JSC
|
|
|
|
#endif
|