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:
- The order of the blocks and of single lines with keywords in the file is irrelevant.
- The order of the lines inside the BLOCK constructs is irrelevant.
- The separator between the keyword and the value can be any of the designated separators: "=",":", tab, space.
- The case of the keyword is irrelevant.
- The comments are allowed after the value as long as they are separated by at least one designated separator.
- The compulsory fields are the ones in red in the description above.
- The string fields have to be enclosed in single quotation marks.
- The energy shifts, CHANNEL_INFO_SHIFT, can be given either as shifts relative to the atomic eigenvalues or as an absolute value (in which case, the value should be preceded by VAL and a designated separator).
- The level shifts, CHANNEL_INFO_LEVELSHIFT, are artificial shifts of atomic eigenvalues relative to their DFT positions. Such shifts can be used to correct DFT error in relative positions of bands in a solid state calculation, see Profeta et al. (2004) for details.
- Information about multiple projectors in the CHANNEL_INFO lines should be separated by "&&", and there should be also at least one of the designated separators on either side of the "&&" construct.
- CHANNEL_INFO_TYPE, CHANNEL_INFO_SHIFT and CHANNEL_INFO_BETA_RC values within a CHANNEL_INFO block are all optional; if either of these
entries is omitted CASTEP will use the default values for the respective property. The default setting is to use two ultrasoft projectors,
using atomic eigenvalues as reference energies, and using BETA_RADIUS value specified elsewhere in the
.otfg
file. - If two or three out of CHANNEL_INFO_TYPE, CHANNEL_INFO_SHIFT and CHANNEL_INFO_BETA_RC fields are present, then each of these fields should contain the same number of values.
- A block enclosed in STARTCOMMENT and ENDCOMMENT tags can be inserted anywhere in the file; its contents are ignored and can be used to keep a record of, for example, convergence testing and validation studies.
- The only value currently allowed on the COMPATIBILITY line is 'compat7'. The generator has been improved in the 8.0 release, so that it produces slightly different (although functionally equivalent) pseudopotential from the same input. The COMPATIBILITY option has been added to all
00.otfg
files to ensure compatibility with the earlier releases.
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.
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