CASTEP file formats - OTFG

The information required for generating CASTEP pseudopotential files on the fly is stored on the client in the files with the .otfg extension. These files are intended for the use on the client only, they are not expected to be transferred to the gateway server. The purpose of these files is to create a correct string in the SPECIES_POT block in .cell file.

The .otfg files can be edited manually, and new files with this extension can be created and stored in the Resources\Quantum\Castep\Potentials folder on the client. The most likely purpose for the editing would be to change the default core radius in order to create a softer (bigger core radius) or a more accurate and hard (smaller core radius) version of a pseudopotential for a given element. Occasionally, when core holes are used for some elements different settings are more appropriate.

The latest set of OTFG settings for ultrasoft pseudopotentials was developed to minimize the error with respect to fully converged all-electron DFT calculations. The error achieved by this set is 0.4 meV/atom, which puts CASTEP among the most accurate pseudopotential codes available. A full definition of the test framework and the meaning of the error is given by Lejaeghere et al. (2014), and on the website of the Delta project. The files that correspond to this set have the _2017R2 suffix. This is the recommended set of OTFG ultrasoft potentials. Use files with the _2017R2ncp suffix when you require norm-conserving potentials. This set has a 1.1 meV/atom error in the Delta project tests. In addition, provides a set of "high throughput" ultrasoft OTFG settings for scripting. This QC5 set generally requires lower cutoff energy and offers faster but less accurate calculations (1.9 meV/atom error in the Delta project tests).

See Prof. David Vanderbilt's website on pseudopotential generation for more information: http://www.physics.rutgers.edu/~dhv/uspp/

The format of the file is illustrated by the example below. The example is completely fictitious and serves only to illustrate the file format.

CHARGE = 3                            Number of valence electrons
COARSE = 5                            Coarse energy cutoff (Ha)
MEDIUM = 10                           Medium energy cutoff (Ha)
FINE = 15                             Fine energy cutoff (Ha)
COMPATIBILITY = 'compat7'               Use CASTEP 7.0 OTFG generator 
LOCAL_CHANNEL = 2                     Angular momentum of the local potential
LOCAL_CHANNEL_ENERGY =-0.5              Energy of the atomic state for the local channel (Ha)
CORE_RADIUS = 1.5                     Core radius (a.u.)
BETA_RADIUS = 2.0                       beta_rc (a.u.) - requires the presence of RINNER
RINNER = 2.1                            Rinner (a.u.) - requires the presence of BETA_RADIUS
CHANNEL_INFO_BLOCK_START              Start of the information block for the generated channels (there can be multiple blocks like this). 
CHANNEL_INFO_N = 4                    N quantum number
CHANNEL_INFO_L = 1                    L quantum number
CHANNEL_INFO_TYPE = NCP                 Type: zero or more of NCP, USP, LOCAL, NCP_PROJ_ONLY, USP_PROJ_ONLY, PSEUDIZE_ONLY.  LOCAL can be used only once. 
CHANNEL_INFO_BETA_RC = 2.1              Core radius for this channel (a.u.) 
CHANNEL_INFO_SHIFT= -0.1                Energy shift w.r.t. atomic eigenvalues (Ha)
CHANNEL_INFO_BLOCK_END                End of the information block for the generated channels 
CHANNEL_INFO_BLOCK_START                Start of the information block for the generated channels. 
CHANNEL_INFO_N = 3                      N quantum number
CHANNEL_INFO_L = 2                      L quantum number
CHANNEL_INFO_TYPE = USP && NCP          Type: zero or more of NCP, USP, LOCAL, NCP_PROJ_ONLY, USP_PROJ_ONLY, PSEUDIZE_ONLY. LOCAL can be used only once. 
CHANNEL_INFO_BETA_RC = 2.1 && 2.2       Core radius for this channel (a.u.) (as many as TYPE entries)
CHANNEL_INFO_SHIFT= -0.3 && VAL=0.1     Energy shift w.r.t. atomic eigenvalues (Ha) (as many as TYPE entries)
CHANNEL_INFO_LEVELSHIFT =  0.2 &&  0    Level shift w.r.t. DFT eigenvalues (Ha) (as many as TYPE entries)
CHANNEL_INFO_BLOCK_END
CONFIG_BLOCK_START                      Description of the atomic configuration for the generation (one block per channel)
CONFIG_N : 4                            N quantum number
CONFIG_L : 0                            L quantum number
CONFIG_OCC : 1.9                        Occupancy of the state
CONFIG_BLOCK_END
CONFIG_BLOCK_START                      Description of the atomic configuration for the generation (one block per channel)
CONFIG_N : 3                            N quantum number
CONFIG_L : 2                            L quantum number
CONFIG_OCC : 0.1                        Occupancy of the state
CONFIG_BLOCK_END
TEST_CONFIG_BLOCK_START                 Configuration for AE vs PP test (one block per channel)
TEST_CONFIG_N : 3                       N quantum number
TEST_CONFIG_L : 0                       L quantum number
TEST_CONFIG_OCC : 1.0                   Occupancy of the state
TEST_CONFIG_BLOCK_END
TEST_CONFIG_BLOCK_START                 Configuration for AE vs PP test (one block per channel)
TEST_CONFIG_N : 3                       N quantum number
TEST_CONFIG_L : 1                       L quantum number
TEST_CONFIG_OCC : 1.0                   Occupancy of the state
TEST_CONFIG_BLOCK_END
NLCC = 'yes'                            Use non-linear core corrections? (allowed strings are 'yes' and 'no', not case-sensitive)
PSEUDO_SCHEME = 'qc'                    Which pseudization scheme to use; allowed values are tm, pn, fh, qc, qb, es, 2b
PSEUDO_QC = 6.0                         Qc value (used only by qc, qb, and es schemes)
PSEUDO_Q0 = 6.1                         As Qc, but specifically for l=0 channel
PSEUDO_Q1 = 6.2                         As Qc, but specifically for l=1 channel
PSEUDO_Q2 = 6.3                         As Qc, but specifically for l=2 channel
PSEUDO_Q3 = 6.4                         As Qc, but specifically for l=3 channel
STARTCOMMENT
This is an example input file for on the fly generated potentials.
The comment section can be used to record test results for example.
ENDCOMMENT

The format can be described as:

COARSE, MEDIUM and FINE values are used by the CASTEP GUI in order to determine the cutoff energy for the calculations carried out at the specified level of accuracy. If you are generating a new file, you would have to carry out the convergence testing to determine the appropriate values for the new potentials.

In order to ensure that the OTFG for core holes is appropriate some conditional settings have been appended for certain elements, in a section which is only used when core holes are requested. If core holes are not being used in the calculation the CORE_HOLE_INFO keywords are ignored and the preceding settings are used. For example:

CORE_HOLE_INFO:

LOCAL_CHANNEL = 3           angular momentum of the local potential
CORE_RADIUS = 2.5           core radius (a.u.)
BETA_RADIUS = 2.5           beta_rc (a.u.) - requires the presence of RINNER
RINNER = 1.5                Rinner (a.u.) - requires the presence of BETA_RADIUS
CHANNEL_INFO_BLOCK_START    Start of the information block for the generated channels
CHANNEL_INFO_N = 4          N quantum number
CHANNEL_INFO_L = 0          L quantum number (s=0, p=1, d=2, f=3)
CHANNEL_INFO_BLOCK_END      End of the information block for the generated channels
CHANNEL_INFO_BLOCK_START    Start of the information block for the generated channels
CHANNEL_INFO_N = 3          N quantum number
CHANNEL_INFO_L = 2          L quantum number (s=0, p=1, d=2, f=3)
CHANNEL_INFO_BLOCK_END      End of the information block for the generated channels
CHANNEL_INFO_BLOCK_START    Start of the information block for the generated channels
CHANNEL_INFO_N = 4          N quantum number
CHANNEL_INFO_L = 1          L quantum number (s=0, p=1, d=2, f=3)
CHANNEL_INFO_BLOCK_END      End of the information block for the generated channels
CONFIG_BLOCK_START          Description of the atomic configuration for the generation (one block per channel)
CONFIG_N : 4                N quantum number
CONFIG_L : 0                L quantum number
CONFIG_OCC : 1.95           Occupancy of the state
CONFIG_BLOCK_END
CONFIG_BLOCK_START          Description of the atomic configuration for the generation (one block per channel)
CONFIG_N : 4                N quantum number
CONFIG_L : 1                L quantum number
CONFIG_OCC : 0.05           Occupancy of the state
CONFIG_BLOCK_END
PSEUDO_SCHEME = 'qc'        Which scheme to use; allowed values are tm, pn, fh, qc, qb, es, 2b
PSEUDO_QC = 4.0             Qc value (used only by qc, qb, and es schemes)
See Also:

CASTEP file formats
Pseudopotentials
Setting up pseudopotentials