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 "memorymanag.h"
#include "machine_epsilon.h"
#include "utilities.h"
#include "matrix_algebra.h"
#include "units.h"
#include "gblas.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.
static void get_dens_from_cmo_zeroT (int n, const ergo_real *cmo, const ergo_real *eigv, int noOfOccupiedOrbs, ergo_real *dens)
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)
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 *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

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 
)
static
static void get_dens_from_cmo_zeroT ( int  n,
const ergo_real cmo,
const ergo_real eigv,
int  noOfOccupiedOrbs,
ergo_real dens 
)
static
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 *const  lumoVec,
ergo_real *const  homoVec 
)
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, and mat::sygv().

Referenced by do_CI(), and get_dens_from_fock_full().