ergo
xc_matrix.cc File Reference

The XC matrix evaluator. More...

#include <assert.h>
#include <cmath>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/times.h>
#include <unistd.h>
#include <pthread.h>
#include "aos.h"
#include "integrator.h"
#include "functionals.h"
#include "dft_common.h"
#include "mat_gblas.h"
#include "output.h"
#include "utilities.h"
#include "matrix_utilities.h"
#include "grid_matrix.h"
#include "xc_evaluators.h"

Classes

struct  XCDistributorLdaBlas
 
struct  XCDistributorGgaBlas
 
struct  xc_data
 
struct  uks_data
 
struct  uxc_data
 

Macros

#define WITH_PTHREAD   1
 
#define __CVERSION__
 
#define restrict
 
#define dft_kohn_sham_sync_slaves(dmat)
 
#define dft_kohn_sham_collect_info(myksm, ksm, energy)
 

Functions

void lrao2mo_ (const real *cmo, const int *ksymop, const real *res, real *fmat, real *work, int *lw)
 
EXTERN_C real dft_get_xc (int nElectrons, const real *dmat, const BasisInfoStruct &bis, const Molecule &mol, const Dft::GridParams &gss, real *ksm, real *edfty, int nThreads)
 computes Fock matrix ksm corresponding to given density matrix dmat. More...
 
static void * dft_get_xc_worker (void *data)
 
EXTERN_C real dft_get_xc_mt (int nElectrons, const real *dmat, const BasisInfoStruct &bis, const Molecule &mol, const Dft::GridParams &gss, real *xc, real *edfty)
 Computes the XC interaction matrix for given density matrix. More...
 
EXTERN_C real dft_get_uxc (int nElectrons, const real *dmata, const real *dmatb, const BasisInfoStruct &bis, const Molecule &mol, const Dft::GridParams &gss, real *xca, real *xcb, real *edfty, int nThreads)
 
static void * dft_get_uxc_worker (void *data)
 
EXTERN_C real dft_get_uxc_mt (int nElectrons, const real *dmata, const real *dmatb, const BasisInfoStruct &bis, const Molecule &mol, const Dft::GridParams &gss, real *xca, real *xcb, real *edfty)
 

Variables

static pthread_mutex_t dft_prop_mutex = PTHREAD_MUTEX_INITIALIZER
 
static const int KOHNSH_DEBUG = 0
 

Detailed Description

The XC matrix evaluator.

(c) Pawel Salek, pawsa.nosp@m.@the.nosp@m.ochem.nosp@m..kth.nosp@m..se. 2002.04.05

This module evaluates DFT contribution KS matrix.

Macro Definition Documentation

◆ __CVERSION__

#define __CVERSION__

◆ dft_kohn_sham_collect_info

#define dft_kohn_sham_collect_info (   myksm,
  ksm,
  energy 
)

◆ dft_kohn_sham_sync_slaves

#define dft_kohn_sham_sync_slaves (   dmat)

◆ restrict

◆ WITH_PTHREAD

#define WITH_PTHREAD   1

Function Documentation

◆ dft_get_uxc()

◆ dft_get_uxc_mt()

◆ dft_get_uxc_worker()

◆ dft_get_xc()

EXTERN_C real dft_get_xc ( int  nElectrons,
const real dmat,
const BasisInfoStruct bis,
const Molecule mol,
const Dft::GridParams gss,
real ksm,
real edfty,
int  nThreads 
)

◆ dft_get_xc_mt()

EXTERN_C real dft_get_xc_mt ( int  nElectrons,
const real dmat,
const BasisInfoStruct bis,
const Molecule mol,
const Dft::GridParams gss,
real xc,
real edfty 
)

Computes the XC interaction matrix for given density matrix.

Parameters
dmat.
Returns
the integrated number of electrons.
Parameters
nElectronsnumber of electrons.
bisa structure describing the used basis set.
mola structure describing the molecule.
gssa structure describing the grid settings.
xcresulting XC matrix.
edftyresulting XC energy.

References xc_data::bis, dft_get_num_threads(), dft_get_xc(), dft_get_xc_worker(), xc_data::dmat, do_output(), xc_data::edfty, Molecule::getNumberOfElectrons(), xc_data::gss, LOG_AREA_DFT, LOG_CAT_ERROR, LOG_CAT_INFO, xc_data::mol, xc_data::nElectrons, Util::TimeMeter::print(), and xc_data::xc.

Referenced by get_2e_matrix_and_energy_simple_sparse(), get_2e_matrix_and_energy_sparse(), test_mol(), and test_small().

◆ dft_get_xc_worker()

◆ lrao2mo_()

void lrao2mo_ ( const real cmo,
const int *  ksymop,
const real res,
real fmat,
real work,
int *  lw 
)

Variable Documentation

◆ dft_prop_mutex

pthread_mutex_t dft_prop_mutex = PTHREAD_MUTEX_INITIALIZER
static

Referenced by dft_get_uxc(), and dft_get_xc().

◆ KOHNSH_DEBUG

const int KOHNSH_DEBUG = 0
static

Referenced by dft_get_uxc(), and dft_get_xc().