Self-Consistency With Approximate Linear Response

Table of Contents

Purpose


This tutorial, which also acts as documentation, outlines the steps needed to estimate the self-consistent density given some dielectric response function. The codes have some capability to generate this dielectric response function approximately however this is less good than when calculated explicitly - this tutorial will detail both the explicit steps you can perform yourself and the commands required for the suite to calculate it for you.

Preliminaries


Tutorial


First, you need to care the ASA bare response function , which will be defined as:

is the constant potential shift in the channel of sphere , and is the induced change in the 0th moment in channel L of sphere R, without taking into account interactions between electrons (noninteracting susceptibility). The static dielectric response function is:

where

+ (on-site term = something like the intraatomic U)

and

Madelung Matrix

lm and lmgf can both generate , and store it on the disk. If you have generated , you can have the mxing precedure construct and then screen by . More exactly, it replaces the raw qout (generated by lm or lmgf) by:

and then it proceeds with self-consistency in the usual way, using quot* in place of the usual qout. It is not difficult to show that if is the exact inverse dielectric function, qout* is the RPA estimate of the self-consistent density. See, for example, Richard Martin’s book, Electronic Structure. Indeed, is sometimes called the “density-density response function”.

To tell the code to do this screening, set OPTIONS_SC=2. The program will crash if it can’t read from the disk ( is stored in the file psta.ext). You can create either with the band program lm or the Green’s function code lmgf. Since the metals treatment of is very primitive in the lm coce, it is better to use the lmgf to create for metals. lmgf can also make for the noncollinear case. To run lmgf, you need to add a couple of tokens to the ctrl file. For either program, set OPTIONS_SCR=1 to create .

The intraatomic U is esimated from the second derivative of the sphere total energy wrt to charge. You can update it every iteration by adding 10*k to the token SCR=… thus SCR=52 will update the U each iteration in the sphere program.

If you don’t want to make , you can let the codes make a model estimate for you. It saves you the trouble of making , but it is less good than when is calculated explicitly.

All of these functionalities can be enabled through the OPTIONS_SCR token:

OPTIONS_SCR       opt    i4       1,  1          default = 0
    Use scr to accelerate convergence:
    0 do nothing
    1 Make ASA static response function (see documentation)
    2 Use response to screen output q and ves
    4 Use model response to screen output q
    6 Use response to screen output ves only
      Add 1 to combine mode 1 with another mode
      Add 10*k to compute intra-site contribution to vbare each kth iteration
      Add 100*k to compute response function on every kth iteration

Edit This Page