53 lines
1.6 KiB
C++
53 lines
1.6 KiB
C++
/**********************************************************
|
|
|
|
This software is part of J.-S. Caux's ABACUS library.
|
|
|
|
Copyright (c) J.-S. Caux.
|
|
|
|
-----------------------------------------------------------
|
|
|
|
File: src/SCAN/Particle_Hole_Excitation_Cost.cc
|
|
|
|
Purpose: defines the expected cost of adding a p-h pair. Used in General_Scan.
|
|
|
|
***********************************************************/
|
|
|
|
#include "ABACUS.h"
|
|
|
|
using namespace std;
|
|
using namespace ABACUS;
|
|
|
|
namespace ABACUS {
|
|
|
|
DP Particle_Hole_Excitation_Cost (char whichDSF, LiebLin_Bethe_State& AveragingState)
|
|
{
|
|
// Estimates the cost of adding a particle-hole excitation to an intermediate state
|
|
DP ph_cost = 1.0;
|
|
|
|
if (whichDSF == 'd') ph_cost = ABACUS::min(0.01, 0.1/AveragingState.c_int);
|
|
else if (whichDSF == 'o') ph_cost = 0.01;
|
|
else if (whichDSF == 'g') ph_cost = 0.01;
|
|
else if (whichDSF == 'Z') ph_cost = 1.0;
|
|
else if (whichDSF == 'B') ph_cost = 0.1;
|
|
else if (whichDSF == 'C') ph_cost = 0.1;
|
|
else ABACUSerror("whichDSF option not implemented in Particle_Hole_Excitation_Cost for LiebLin.");
|
|
|
|
return(ph_cost);
|
|
}
|
|
|
|
DP Particle_Hole_Excitation_Cost (char whichDSF, Heis_Bethe_State& AveragingState)
|
|
{
|
|
// Estimates the cost of adding a particle-hole excitation to an intermediate state
|
|
DP ph_cost = 1.0;
|
|
|
|
if (whichDSF == 'z') ph_cost = 0.01;
|
|
else if (whichDSF == 'm') ph_cost = 0.01;
|
|
else if (whichDSF == 'p') ph_cost = 0.01;
|
|
else if (whichDSF == 'Z') ph_cost = 1.0;
|
|
else ABACUSerror("whichDSF option not implemented in Particle_Hole_Excitation_Cost for HEIS.");
|
|
|
|
return(ph_cost);
|
|
}
|
|
|
|
} // namespace ABACUS
|