template<typename Tile, typename Policy>
class mpqc::lcao::pbc::SD::Impl< Tile, Policy >
single-determinant wavefunction under open and periodic boundary conditions.
template<typename Tile , typename Policy >
KeyVal constructor for SD.
- Parameters
-
kv | The KeyVal object will take all keywords from PeriodicAOWavefunction, and the following keywords |
Keyword | Type | Default | Description |
max_iter | int | 30 | maximum number of iteration |
soad_guess | bool | true | if true, use SOAD guess for initial Fock build |
print_detail | bool | false | if print extra computation&time info |
max_condition_num | real | 1e8 | maximum condition number for overlap matrix |
print_max_item | int | 100 | maximum number of items/lines that can be printed in the list of condition numbers |
level_shift | real | 0 | this adds a nonnegative energy shift to the diagonal Fock elements (in Crystal Orbital basis) of the unoccupied orbitals |
diis | string | gamma | the choice of DIIS method: none (DIIS will not be used) , gamma (extrapolation parameters evaluated using the Fock matrix at the gamma point (k={0,0,0}), then used to extrapolate the Fock matrix at every other k-point; this should work fine if band dispersion is small) , kwise (DIIS extrapolates the Fock matrix at each k point independently), and band (DIIS extrapolates the band of Fock matrices as a whole, using the average band error, with all k-points weighted equally) |
diis_start | unsigned int | 1 | the DIIS extrapolation will begin on the iteration given by this integer |
diis_num_vecs | unsigned int | 5 | maximum number of data sets to store |
diis_damping | real | 0.3 | this nonnegative floating point number is used to dampen the DIIS extrapolation, specifically the diagonal elements of the DIIS B (error overlap) matrix are scaled by 1 plus this number |
diis_damping_attenuation | real | 1e-3 | this nonnegative floating point number defines the 2-norm of the error when when the damping factor for the DIIS extrapolation starts to decay linearly with the error |
diis_mixing | real | 0 | this nonnegative floating point number is used to dampen the DIIS extrapolation by mixing the input Fock with the output Fock for each iteration |
| diis_num_iters_group
| unsigned int | 1 | the number of iterations in a DIIS group | DIIS extrapolation is only used for the first diis_num_extrap_group
of these iterations | | diis_num_extrap_group
| unsigned int | 1 | the number of DIIS extrapolations to do at the beginning of an iteration group | | export_orbitals
| string | none
| if unitcell
or supercell
, export orbitals defined on the unit cell or supercell, respectively, to molden files in JMOL-extended molden format (2 files per each k point, real and imaginary components separated); file is written by rank 0 | | population_analysis
| PopulationAnalysis | none | if given, perform population analysis and print the results in ad-hoc format to the standard output | | naive
| bool | false | if true, use the naive (reference) implementation of the 4-c Fock build, pbc::ReferenceFockBuilder ; this is useful for testing only |
example input:
"wfn": {
"type": "SD",
"atoms": "$:h2o",
"wfn_world": "$:wfn_world",
"max_iter": 100,
"soad_guess": true,
"print_detail": true,
"max_condition_num": 1e8,
"print_max_item": 100
}
SD member functions