#include "TBTK/PropertyExtractor/Diagonalizer.h"
#include <complex>
using namespace std;
using namespace TBTK;
using namespace Visualization::MatPlotLib;
complex<double> i(0, 1);
int main(){
const unsigned int SIZE_X = 31;
const unsigned int SIZE_Y = 31;
const double t = -1;
const double mu = -2;
const double Delta = 0.5;
for(unsigned int x = 0; x < SIZE_X; x++){
for(unsigned int y = 0; y < SIZE_Y; y++){
for(unsigned int ph = 0; ph < 2; ph++){
-mu*(1. - 2*ph),
{x, y, ph},
{x, y, ph}
);
if(x+1 < SIZE_X){
t*(1. - 2*ph),
{x+1, y, ph},
{x, y, ph}
) + HC;
}
if(y+1 < SIZE_Y){
t*(1. - 2*ph),
{x, y+1, ph},
{x, y, ph}
) + HC;
}
}
double X = x - SIZE_X/2.;
double Y = y - SIZE_Y/2.;
double R =
sqrt(X*X + Y*Y);
{x, y, 1},
{x, y, 0}
) + HC;
}
}
const double LOWER_BOUND = -1.5;
const double UPPER_BOUND = 1.5;
const unsigned int RESOLUTION = 1000;
propertyExtractor.setEnergyWindow(
LOWER_BOUND,
UPPER_BOUND,
RESOLUTION
);
{_a_, SIZE_Y/2, IDX_SUM_ALL}
});
const double SMOOTHING_SIGMA = 0.01;
const unsigned int SMOOTHING_WINDOW = 201;
ldos = Smooth::gaussian(ldos, SMOOTHING_SIGMA, SMOOTHING_WINDOW);
Plotter plotter;
plotter.setNumContours(100);
plotter.plot(
{_a_, SIZE_Y/2, IDX_SUM_ALL},
ldos
);
plotter.save("figures/LDOS.png");
}