24 #ifndef COM_DAFER45_TBTK_PROPERTY_EXTRACTOR_EXACT_DIAGONALIZER 
   25 #define COM_DAFER45_TBTK_PROPERTY_EXTRACTOR_EXACT_DIAGONALIZER 
   27 #include "TBTK/Solver/ExactDiagonalizer.h" 
   34 namespace PropertyExtractor{
 
   36 class ExactDiagonalizer : 
public PropertyExtractor{
 
   39     ExactDiagonalizer(Solver::ExactDiagonalizer &edSolver);
 
   45     Property::GreensFunction* calculateGreensFunction(
 
   52     virtual std::complex<double> calculateExpectationValue(
 
   58     virtual Property::Density calculateDensity(
 
   64     virtual Property::Magnetization calculateMagnetization(
 
   70     virtual Property::LDOS calculateLDOS(Index pattern, Index ranges);
 
   73     virtual Property::SpinPolarizedLDOS calculateSpinPolarizedLDOS(
 
   79     Solver::ExactDiagonalizer *edSolver;
 
   82     virtual const Solver::Solver& getSolver() 
const;
 
   85     static void calculateDensityCallback(
 
   86         PropertyExtractor *cb_this,
 
   87         Property::Property &property,
 
   90         Information &information
 
   95     static void calculateMagnetizationCallback(
 
   96         PropertyExtractor *cb_this,
 
   97         Property::Property &property,
 
  100         Information &information
 
  105     static void calculateLDOSCallback(
 
  106         PropertyExtractor *cb_this,
 
  107         Property::Property &property,
 
  110         Information &information
 
  115     static void calculateSpinPolarizedLDOSCallback(
 
  116         PropertyExtractor *cb_this,
 
  117         Property::Property &property,
 
  120         Information &information
 
  124 inline const Solver::Solver& ExactDiagonalizer::getSolver()
 const{