ergo
densfromf_full.cc File Reference

Routine get_dens_from_fock_full() for getting density matrix from a given Fock matrix using diagonalization. More...

#include "densfromf_full.h"
#include "output.h"
#include <memory.h>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <vector>
#include <fstream>
#include <sstream>
#include <iomanip>
#include "memorymanag.h"
#include "machine_epsilon.h"
#include "utilities.h"
#include "matrix_algebra.h"
#include "units.h"
#include "mat_gblas.h"
#include "matInclude.h"

Functions

int get_F_orbs (int n, const ergo_real *F, const ergo_real *ovl, ergo_real *cmo, ergo_real *eigv)
 get_f_orbs: use diagonalization to find the molecular orbitals corresponding to given Fock matrix f. More...
 
static void get_dens_from_cmo_zeroT (int n, const ergo_real *cmo, const ergo_real *eigv, int noOfOccupiedOrbs, ergo_real *dens, ergo_real &resultHomoLumoGap)
 
static ergo_real x_times_ln_x (ergo_real x)
 
static void get_dens_from_cmo_FermiDiracDistr (int n, const ergo_real *cmo, const ergo_real *eigv, int noOfOccupiedOrbs, ergo_real *dens, ergo_real electronicTemperature, ergo_real &resultEntropyTerm)
 
int get_dens_from_fock_full (int n, int noOfOccupiedOrbs, ergo_real *result_P, const ergo_real *F, const ergo_real *ovl, ergo_real factor, ergo_real electronicTemperature, ergo_real &resultEntropyTerm, ergo_real &resultHomoLumoGap, int store_all_eigenvalues_to_file, ergo_real *const lumoVec, ergo_real *const homoVec)
 

Detailed Description

Routine get_dens_from_fock_full() for getting density matrix from a given Fock matrix using diagonalization.

Author
: Elias Rudberg responsible

Function Documentation

◆ get_dens_from_cmo_FermiDiracDistr()

static void get_dens_from_cmo_FermiDiracDistr ( int  n,
const ergo_real cmo,
const ergo_real eigv,
int  noOfOccupiedOrbs,
ergo_real dens,
ergo_real  electronicTemperature,
ergo_real resultEntropyTerm 
)
static

◆ get_dens_from_cmo_zeroT()

static void get_dens_from_cmo_zeroT ( int  n,
const ergo_real cmo,
const ergo_real eigv,
int  noOfOccupiedOrbs,
ergo_real dens,
ergo_real resultHomoLumoGap 
)
static

◆ get_dens_from_fock_full()

int get_dens_from_fock_full ( int  n,
int  noOfOccupiedOrbs,
ergo_real result_P,
const ergo_real F,
const ergo_real ovl,
ergo_real  factor,
ergo_real  electronicTemperature,
ergo_real resultEntropyTerm,
ergo_real resultHomoLumoGap,
int  store_all_eigenvalues_to_file,
ergo_real *const  lumoVec,
ergo_real *const  homoVec 
)

◆ get_F_orbs()

int get_F_orbs ( int  n,
const ergo_real F,
const ergo_real ovl,
ergo_real cmo,
ergo_real eigv 
)

get_f_orbs: use diagonalization to find the molecular orbitals corresponding to given Fock matrix f.

References do_output(), ergo_free(), ergo_malloc(), LOG_AREA_DENSFROMF, LOG_CAT_ERROR, LOG_CAT_INFO, Util::TimeMeter::print(), and mat::sygv().

Referenced by do_CI(), get_dens_from_fock_full(), and main().

◆ x_times_ln_x()

static ergo_real x_times_ln_x ( ergo_real  x)
static