Include Usage_Example files; work on LiebLin (code, documentation)

This commit is contained in:
J.-S. Caux
2018-02-15 10:08:36 +01:00
parent f654f45171
commit 2677b62120
10 changed files with 549 additions and 153 deletions
+31 -10
View File
@@ -29,6 +29,14 @@ namespace ABACUS {
//***********************************************************************
/**
Eigenstates of the Lieb-Liniger model in the repulsive \f$(c > 0)\f$ regime.
For numerical convenience, rapidities are rescaled by the interaction parameter \f$c\f$.
In equations throughout this documentation, \f$\tilde{\lambda} \equiv \lambda/c\f$.
In the code, these rescaled rapidities are denoted `lambdaoc` (read: "lambda over c").
*/
class LiebLin_Bethe_State {
public:
@@ -104,7 +112,8 @@ namespace ABACUS {
};
inline bool Is_Inner_Skeleton (LiebLin_Bethe_State& State) {
return (State.N >= 2 && (State.Ix2[0] == State.Ix2[1] - 2 || State.Ix2[State.N-1] == State.Ix2[State.N-2] + 2));
return (State.N >= 2 && (State.Ix2[0] == State.Ix2[1] - 2
|| State.Ix2[State.N-1] == State.Ix2[State.N-2] + 2));
};
inline bool Is_Outer_Skeleton (LiebLin_Bethe_State& State) {
return (State.N >= 2 && State.Ix2[0] == LIEBLIN_Ix2_MIN + (State.N % 2) + 1
@@ -115,12 +124,14 @@ namespace ABACUS {
&& State.Ix2[State.N-1] == LIEBLIN_Ix2_MAX - (State.N % 2) - 1);
};
inline bool Force_Descent (char whichDSF, LiebLin_Bethe_State& ScanState, LiebLin_Bethe_State& RefState,
inline bool Force_Descent (char whichDSF, LiebLin_Bethe_State& ScanState,
LiebLin_Bethe_State& RefState,
int desc_type_required, int iKmod, DP Chem_Pot)
{
bool forcedesc = false;
// Force descent if we're computing density-density, we're at zero momentum and we're descending with momentum preserved:
// Force descent if we're computing density-density, we're at zero momentum
// and we're descending with momentum preserved:
if (whichDSF == 'd' && ScanState.iK == RefState.iK && desc_type_required > 8) forcedesc = true;
// For BEC to c > 0 quench, g2(x=0): force first step
@@ -135,7 +146,8 @@ namespace ABACUS {
// FUNCTION DECLARATIONS:
DP Chemical_Potential (LiebLin_Bethe_State& RefState);
DP Sumrule_Factor (char whichDSF, LiebLin_Bethe_State& RefState, DP Chem_Pot, int iKmin, int iKmax);
DP Sumrule_Factor (char whichDSF, LiebLin_Bethe_State& RefState, DP Chem_Pot,
int iKmin, int iKmax);
void Evaluate_F_Sumrule (char whichDSF, const LiebLin_Bethe_State& RefState, DP Chem_Pot,
int iKmin, int iKmax, const char* RAW_Cstr, const char* FSR_Cstr);
void Evaluate_F_Sumrule (std::string prefix, char whichDSF, const LiebLin_Bethe_State& RefState,
@@ -157,14 +169,23 @@ namespace ABACUS {
std::complex<DP> ln_Psi_ME (LiebLin_Bethe_State& lstate, LiebLin_Bethe_State& rstate);
std::complex<DP> ln_g2_ME (LiebLin_Bethe_State& mu, LiebLin_Bethe_State& lambda);
DP Compute_Matrix_Element_Contrib (char whichDSF, int iKmin, int iKmax, LiebLin_Bethe_State& LeftState,
LiebLin_Bethe_State& RefState, DP Chem_Pot, std::stringstream& DAT_outfile);
DP Compute_Matrix_Element_Contrib (char whichDSF, int iKmin, int iKmax,
LiebLin_Bethe_State& LeftState,
LiebLin_Bethe_State& RefState, DP Chem_Pot,
std::stringstream& DAT_outfile);
DP LiebLin_Twisted_lnnorm (Vect<std::complex<DP> >& lambdaoc, double cxL);
std::complex<DP> LiebLin_Twisted_ln_Overlap (DP expbeta, Vect<DP> lstate_lambdaoc, DP lstate_lnnorm, LiebLin_Bethe_State& rstate);
std::complex<DP> LiebLin_Twisted_ln_Overlap (std::complex<DP> expbeta, Vect<std::complex<DP> > lstate_lambdaoc, DP lstate_lnnorm, LiebLin_Bethe_State& rstate);
std::complex<DP> LiebLin_ln_Overlap (Vect<DP> lstate_lambdaoc, DP lstate_lnnorm, LiebLin_Bethe_State& rstate);
std::complex<DP> LiebLin_ln_Overlap (Vect<std::complex<DP> > lstate_lambdaoc, DP lstate_lnnorm, LiebLin_Bethe_State& rstate);
std::complex<DP> LiebLin_Twisted_ln_Overlap (DP expbeta, Vect<DP> lstate_lambdaoc,
DP lstate_lnnorm,
LiebLin_Bethe_State& rstate);
std::complex<DP> LiebLin_Twisted_ln_Overlap (std::complex<DP> expbeta,
Vect<std::complex<DP> > lstate_lambdaoc,
DP lstate_lnnorm,
LiebLin_Bethe_State& rstate);
std::complex<DP> LiebLin_ln_Overlap (Vect<DP> lstate_lambdaoc, DP lstate_lnnorm,
LiebLin_Bethe_State& rstate);
std::complex<DP> LiebLin_ln_Overlap (Vect<std::complex<DP> > lstate_lambdaoc, DP lstate_lnnorm,
LiebLin_Bethe_State& rstate);
// In src/LiebLin_Tgt0.cc:
DP Entropy (LiebLin_Bethe_State& RefState);