ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Private Types | Private Attributes | List of all members
LR::KernelXC Class Reference

Calculate the exchange-correlation (XC) kernel ($f_{xc}=\delta^2E_xc/\delta\rho^2$) and store its components. More...

#include <xc_kernel.h>

Collaboration diagram for LR::KernelXC:

Public Member Functions

 KernelXC (const ModulePW::PW_Basis &rho_basis, const UnitCell &ucell, const Charge &chg_gs, const Parallel_Grid &pgrid, const int &nspin, const std::string &kernel_name, const std::vector< std::string > &lr_init_xc_kernel, const bool openshell=false)
 
 ~KernelXC ()
 
 CREF (vrho)
 
 CREF (vsigma)
 
 CREF (v2rho2)
 
 CREF (v2rhosigma)
 
 CREF (v2sigma2)
 
 CREF3 (v2rhosigma_2drho)
 
 CREF3 (v2sigma2_4drho)
 
 CREF3 (v2rhosigma_drho_singlet)
 
 CREF3 (v2rhosigma_drho_triplet)
 
 CREF3 (v2sigma2_drho_singlet)
 
 CREF3 (v2sigma2_drho_triplet)
 
 CREF3 (v2rhosigma_drho_uu)
 
 CREF3 (v2rhosigma_drho_ud)
 
 CREF3 (v2rhosigma_drho_du)
 
 CREF3 (v2rhosigma_drho_dd)
 
 CREF3 (v2sigma2_drho_uu_u)
 
 CREF3 (v2sigma2_drho_uu_d)
 
 CREF3 (v2sigma2_drho_ud_u)
 
 CREF3 (v2sigma2_drho_ud_d)
 
 CREF3 (v2sigma2_drho_du_u)
 
 CREF3 (v2sigma2_drho_du_d)
 
 CREF3 (v2sigma2_drho_dd_u)
 
 CREF3 (v2sigma2_drho_dd_d)
 

Public Attributes

const std::vector< std::vector< ModuleBase::Vector3< double > > > & drho_gs = drho_gs_
 

Private Types

using Tvec = std::vector< double >
 
using Tvec3 = std::vector< ModuleBase::Vector3< double > >
 

Private Attributes

std::vector< double > vrho_
 
std::vector< double > vsigma_
 
std::vector< double > v2rho2_
 
std::vector< double > v2rhosigma_
 
std::vector< double > v2sigma2_
 
std::vector< std::vector< ModuleBase::Vector3< double > > > drho_gs_
 $\nabla\rho$ of the ground state, size: nspin*nrxx
 
std::vector< ModuleBase::Vector3< double > > v2rhosigma_2drho_
 $f^{\rho\sigma}*\nabla\rho *2$
 
std::vector< ModuleBase::Vector3< double > > v2sigma2_4drho_
 $f^{\sigma\sigma}*\nabla\rho *4$
 
Tvec3 v2rhosigma_drho_singlet_
 $2(f^{\rho_u\sigma_{uu}}+f^{\rho_u\sigma_{ud}}+f^{\rho_u\sigma_{dd}})*\nabla\rho)$
 
Tvec3 v2rhosigma_drho_triplet_
 $2(f^{\rho_u\sigma_{uu}}-f^{\rho_u\sigma_{ud}})*\nabla\rho)$
 
Tvec3 v2sigma2_drho_singlet_
 
Tvec3 v2sigma2_drho_triplet_
 < $(4f^{\sigma_{uu}\sigma_{uu}}+6f^{\sigma_{uu}\sigma_{ud}}+4f^{\sigma_{uu}\sigma_{dd}}+2f^{\sigma_{ud}\sigma_{ud}}+2f^{\sigma_{ud}\sigma_{dd}})\nabla\rho$
 
Tvec3 v2rhosigma_drho_uu_
 < $(4f^{\sigma_{uu}\sigma_{uu}}+2f^{\sigma_{uu}\sigma_{ud}}-4f^{\sigma_{uu}\sigma_{dd}}-2f^{\sigma_{ud}\sigma_{dd}})\nabla\rho$
 
Tvec3 v2rhosigma_drho_ud_
 $f^{\rho_u\sigma_{ud}}\nabla\rho_u+2f^{\rho_u\sigma_{dd}}\nabla\rho_d$
 
Tvec3 v2rhosigma_drho_du_
 $2f^{\rho_d\sigma_{uu}}\nabla\rho_u+f^{\rho_d\sigma_{ud}}\nabla\rho_d$
 
Tvec3 v2rhosigma_drho_dd_
 $f^{\rho_d\sigma_{ud}}\nabla\rho_u+2f^{\rho_d\sigma_{dd}}\nabla\rho_d$
 
Tvec3 v2sigma2_drho_uu_u_
 
Tvec3 v2sigma2_drho_uu_d_
 $4f^{\sigma_{uu}\sigma_{uu}}\nabla\rho_u+2f^{\sigma_{uu}\sigma_{ud}\nabla\rho_d$
 
Tvec3 v2sigma2_drho_ud_u_
 $2f^{\sigma_{uu}\sigma_{ud}}\nabla\rho_u+f^{\sigma_{ud}\sigma_{ud}}\nabla\rho_d$
 
Tvec3 v2sigma2_drho_ud_d_
 $2f^{\sigma_{uu}\sigma_{ud}}\nabla\rho_u+f^{\sigma_{ud}\sigma_{ud}}\nabla\rho_d$
 
Tvec3 v2sigma2_drho_du_u_
 $4f^{\sigma_{uu}\sigma_{dd}}\nabla\rho_u+2f^{\sigma_{ud}\sigma_{dd}\nabla\rho_d$
 
Tvec3 v2sigma2_drho_du_d_
 $4f^{\sigma_{uu}\sigma_{dd}}\nabla\rho_d+2f^{\sigma_{uu}\sigma_{ud}\nabla\rho_u$
 
Tvec3 v2sigma2_drho_dd_u_
 $2f^{\sigma_{ud}\sigma_{dd}}\nabla\rho_d+f^{\sigma_{ud}\sigma_{ud}}\nabla\rho_u$
 
Tvec3 v2sigma2_drho_dd_d_
 $2f^{\sigma_{ud}\sigma_{dd}}\nabla\rho_d+f^{\sigma_{ud}\sigma_{ud}}\nabla\rho_u$
 
const ModulePW::PW_Basisrho_basis_
 $4f^{\sigma_{dd}\sigma_{dd}}\nabla\rho_d+2f^{\sigma_{ud}\sigma_{dd}\nabla\rho_u$
 
const bool openshell_ = false
 

Detailed Description

Calculate the exchange-correlation (XC) kernel ($f_{xc}=\delta^2E_xc/\delta\rho^2$) and store its components.

Member Typedef Documentation

◆ Tvec

using LR::KernelXC::Tvec = std::vector<double>
private

◆ Tvec3

using LR::KernelXC::Tvec3 = std::vector<ModuleBase::Vector3<double> >
private

Constructor & Destructor Documentation

◆ KernelXC()

LR::KernelXC::KernelXC ( const ModulePW::PW_Basis rho_basis,
const UnitCell ucell,
const Charge chg_gs,
const Parallel_Grid pgrid,
const int &  nspin,
const std::string &  kernel_name,
const std::vector< std::string > &  lr_init_xc_kernel,
const bool  openshell = false 
)
Here is the call graph for this function:

◆ ~KernelXC()

LR::KernelXC::~KernelXC ( )
inline

Member Function Documentation

◆ CREF() [1/5]

LR::KernelXC::CREF ( v2rho2  )

◆ CREF() [2/5]

LR::KernelXC::CREF ( v2rhosigma  )

◆ CREF() [3/5]

LR::KernelXC::CREF ( v2sigma2  )

◆ CREF() [4/5]

LR::KernelXC::CREF ( vrho  )

◆ CREF() [5/5]

LR::KernelXC::CREF ( vsigma  )

◆ CREF3() [1/18]

LR::KernelXC::CREF3 ( v2rhosigma_2drho  )

◆ CREF3() [2/18]

LR::KernelXC::CREF3 ( v2rhosigma_drho_dd  )

◆ CREF3() [3/18]

LR::KernelXC::CREF3 ( v2rhosigma_drho_du  )

◆ CREF3() [4/18]

LR::KernelXC::CREF3 ( v2rhosigma_drho_singlet  )

◆ CREF3() [5/18]

LR::KernelXC::CREF3 ( v2rhosigma_drho_triplet  )

◆ CREF3() [6/18]

LR::KernelXC::CREF3 ( v2rhosigma_drho_ud  )

◆ CREF3() [7/18]

LR::KernelXC::CREF3 ( v2rhosigma_drho_uu  )

◆ CREF3() [8/18]

LR::KernelXC::CREF3 ( v2sigma2_4drho  )

◆ CREF3() [9/18]

LR::KernelXC::CREF3 ( v2sigma2_drho_dd_d  )

◆ CREF3() [10/18]

LR::KernelXC::CREF3 ( v2sigma2_drho_dd_u  )

◆ CREF3() [11/18]

LR::KernelXC::CREF3 ( v2sigma2_drho_du_d  )

◆ CREF3() [12/18]

LR::KernelXC::CREF3 ( v2sigma2_drho_du_u  )

◆ CREF3() [13/18]

LR::KernelXC::CREF3 ( v2sigma2_drho_singlet  )

◆ CREF3() [14/18]

LR::KernelXC::CREF3 ( v2sigma2_drho_triplet  )

◆ CREF3() [15/18]

LR::KernelXC::CREF3 ( v2sigma2_drho_ud_d  )

◆ CREF3() [16/18]

LR::KernelXC::CREF3 ( v2sigma2_drho_ud_u  )

◆ CREF3() [17/18]

LR::KernelXC::CREF3 ( v2sigma2_drho_uu_d  )

◆ CREF3() [18/18]

LR::KernelXC::CREF3 ( v2sigma2_drho_uu_u  )

Member Data Documentation

◆ drho_gs

const std::vector<std::vector<ModuleBase::Vector3<double> > >& LR::KernelXC::drho_gs = drho_gs_

◆ drho_gs_

std::vector<std::vector<ModuleBase::Vector3<double> > > LR::KernelXC::drho_gs_
private

$\nabla\rho$ of the ground state, size: nspin*nrxx

◆ openshell_

const bool LR::KernelXC::openshell_ = false
private

◆ rho_basis_

const ModulePW::PW_Basis& LR::KernelXC::rho_basis_
private

$4f^{\sigma_{dd}\sigma_{dd}}\nabla\rho_d+2f^{\sigma_{ud}\sigma_{dd}\nabla\rho_u$

◆ v2rho2_

std::vector<double> LR::KernelXC::v2rho2_
private

◆ v2rhosigma_

std::vector<double> LR::KernelXC::v2rhosigma_
private

◆ v2rhosigma_2drho_

std::vector<ModuleBase::Vector3<double> > LR::KernelXC::v2rhosigma_2drho_
private

$f^{\rho\sigma}*\nabla\rho *2$

◆ v2rhosigma_drho_dd_

Tvec3 LR::KernelXC::v2rhosigma_drho_dd_
private

$f^{\rho_d\sigma_{ud}}\nabla\rho_u+2f^{\rho_d\sigma_{dd}}\nabla\rho_d$

◆ v2rhosigma_drho_du_

Tvec3 LR::KernelXC::v2rhosigma_drho_du_
private

$2f^{\rho_d\sigma_{uu}}\nabla\rho_u+f^{\rho_d\sigma_{ud}}\nabla\rho_d$

◆ v2rhosigma_drho_singlet_

Tvec3 LR::KernelXC::v2rhosigma_drho_singlet_
private

$2(f^{\rho_u\sigma_{uu}}+f^{\rho_u\sigma_{ud}}+f^{\rho_u\sigma_{dd}})*\nabla\rho)$

◆ v2rhosigma_drho_triplet_

Tvec3 LR::KernelXC::v2rhosigma_drho_triplet_
private

$2(f^{\rho_u\sigma_{uu}}-f^{\rho_u\sigma_{ud}})*\nabla\rho)$

◆ v2rhosigma_drho_ud_

Tvec3 LR::KernelXC::v2rhosigma_drho_ud_
private

$f^{\rho_u\sigma_{ud}}\nabla\rho_u+2f^{\rho_u\sigma_{dd}}\nabla\rho_d$

◆ v2rhosigma_drho_uu_

Tvec3 LR::KernelXC::v2rhosigma_drho_uu_
private

< $(4f^{\sigma_{uu}\sigma_{uu}}+2f^{\sigma_{uu}\sigma_{ud}}-4f^{\sigma_{uu}\sigma_{dd}}-2f^{\sigma_{ud}\sigma_{dd}})\nabla\rho$

$2f^{\rho_u\sigma_{uu}}\nabla\rho_u+f^{\rho_u\sigma_{ud}}\nabla\rho_d$

◆ v2sigma2_

std::vector<double> LR::KernelXC::v2sigma2_
private

◆ v2sigma2_4drho_

std::vector<ModuleBase::Vector3<double> > LR::KernelXC::v2sigma2_4drho_
private

$f^{\sigma\sigma}*\nabla\rho *4$

◆ v2sigma2_drho_dd_d_

Tvec3 LR::KernelXC::v2sigma2_drho_dd_d_
private

$2f^{\sigma_{ud}\sigma_{dd}}\nabla\rho_d+f^{\sigma_{ud}\sigma_{ud}}\nabla\rho_u$

◆ v2sigma2_drho_dd_u_

Tvec3 LR::KernelXC::v2sigma2_drho_dd_u_
private

$2f^{\sigma_{ud}\sigma_{dd}}\nabla\rho_d+f^{\sigma_{ud}\sigma_{ud}}\nabla\rho_u$

◆ v2sigma2_drho_du_d_

Tvec3 LR::KernelXC::v2sigma2_drho_du_d_
private

$4f^{\sigma_{uu}\sigma_{dd}}\nabla\rho_d+2f^{\sigma_{uu}\sigma_{ud}\nabla\rho_u$

◆ v2sigma2_drho_du_u_

Tvec3 LR::KernelXC::v2sigma2_drho_du_u_
private

$4f^{\sigma_{uu}\sigma_{dd}}\nabla\rho_u+2f^{\sigma_{ud}\sigma_{dd}\nabla\rho_d$

◆ v2sigma2_drho_singlet_

Tvec3 LR::KernelXC::v2sigma2_drho_singlet_
private

◆ v2sigma2_drho_triplet_

Tvec3 LR::KernelXC::v2sigma2_drho_triplet_
private

< $(4f^{\sigma_{uu}\sigma_{uu}}+6f^{\sigma_{uu}\sigma_{ud}}+4f^{\sigma_{uu}\sigma_{dd}}+2f^{\sigma_{ud}\sigma_{ud}}+2f^{\sigma_{ud}\sigma_{dd}})\nabla\rho$

◆ v2sigma2_drho_ud_d_

Tvec3 LR::KernelXC::v2sigma2_drho_ud_d_
private

$2f^{\sigma_{uu}\sigma_{ud}}\nabla\rho_u+f^{\sigma_{ud}\sigma_{ud}}\nabla\rho_d$

◆ v2sigma2_drho_ud_u_

Tvec3 LR::KernelXC::v2sigma2_drho_ud_u_
private

$2f^{\sigma_{uu}\sigma_{ud}}\nabla\rho_u+f^{\sigma_{ud}\sigma_{ud}}\nabla\rho_d$

◆ v2sigma2_drho_uu_d_

Tvec3 LR::KernelXC::v2sigma2_drho_uu_d_
private

$4f^{\sigma_{uu}\sigma_{uu}}\nabla\rho_u+2f^{\sigma_{uu}\sigma_{ud}\nabla\rho_d$

◆ v2sigma2_drho_uu_u_

Tvec3 LR::KernelXC::v2sigma2_drho_uu_u_
private

◆ vrho_

std::vector<double> LR::KernelXC::vrho_
private

◆ vsigma_

std::vector<double> LR::KernelXC::vsigma_
private

The documentation for this class was generated from the following files: