# MIXED_CDFT

References: Holmberg2017, Holmberg2018

Calculate properties involving multiple constrained states. Each repetition of the FORCE_EVAL section defines a new CDFT state that is included in the simulation. The DFT&QS&CDFT section must be active in each FORCE_EVAL and it must be consistently defined. When the keyword MIXED&NGROUPS is set to a value 2 or larger, the CDFT states are solved in parallel, whereas when it is set to 1, the states are solved in serial. During MD, the system can be translated using only two of the CDFT states, which are selected with the keyword FORCE_STATES. The forces are determined by the linear combination F= lambda F1 + (1-lambda) F2. [Edit on GitHub]

Subsections

- BLOCK_DIAGONALIZE
- PRINT

## Keywords

- BLOCK_DIAGONALIZE

- CI

- COUPLING

- DLB

- EPS_OCCUPIED

- EPS_SVD

- FORCE_STATES

- LAMBDA

- LOAD_SCALE

- LOWDIN

- METRIC

- MORE_WORK

- NONORTHOGONAL_COUPLING

- PARALLEL_BUILD

- SCALE_WITH_OCCUPATION_NUMBERS

- VERY_OVERLOADED

- WFN_OVERLAP

- WFN_RESTART_FILE_NAME

## Keyword descriptions

BLOCK_DIAGONALIZE: logical = F

  Lone keyword: `T`

  Usage: BLOCK_DIAGONALIZE

  Block diagonalize the CDFT Hamiltonian. Control settings should be given in section &BLOCK_DIAGONALIZE. All requested electronic couplings are printed out after block diagonalization. When CDFT-CI and block diagonalization are both requested, the CI calculation is performed using the block diagonalized Hamiltonian. [Edit on GitHub]

CI: logical = F

  Aliases: CONFIGURATION_INTERACTION

  Lone keyword: `T`

  Usage: CI

  Perform a CDFT configuration interaction calculation (CDFT-CI). The CI vector is expanded in the basis of the CDFT states. Diagonalizes the nonorthogonal diabatic CDFT Hamiltonian. The energies and expansion coefficients of the CDFT-CI states are outputted. Keyword COUPLING must be active to use this feature. [Edit on GitHub]

COUPLING: integer = -1

  Usage: COUPLING <INT>

  Parameter determining how often the CDFT electronic coupling element is calculated. Use a negative number to disable and 0 means every step. By default, the coupling is calculated by rotating the CDFT states to eigenstates of the weight function matrix when a single constraint is active and the constraint definitions are identical in both CDFT states. Otherwise uses Lowdin orthogonalization. For more than two CDFT states, the couplings are not computed pairwise and the values might deviate from values computed separately for each unique CDFT state pair. [Edit on GitHub]

DLB: logical = F

  Lone keyword: `T`

  Usage: DLB

  Mentions: ⭐Constrained DFT

  Controls the activation of dynamic load balancing during a mixed CDFT calculation. Requires Gaussian cavity confinement. Works only in conjunction with keyword PARALLEL_BUILD. [Edit on GitHub]

EPS_OCCUPIED: real = 1.00000000E-006

  Usage: EPS_OCCUPIED <REAL>

  Threshold for determining which molecular orbitals are considered occupied when fractional and/or empty orbitals are employed. Can and usually should be less than the threshold EPS_FERMI_DIRAC defined in section SCF&SMEAR. Note that the number occupied MOs should be constant in each CDFT state, since the CDFT coupling is only defined between states in the same spin state. Fractionally occupied MOs might exhibit linear dependencies and a singular value decomposition (EPS_SVD) can be used for removing these. [Edit on GitHub]

EPS_SVD: real = 0.00000000E+000

  Usage: EPS_SVD <REAL>

  Determines the matrix inversion solver needed to compute the coupling. Default value implies LU decomposition, while values between 0.0 and 1.0 imply SVD decomposition. For SVD, the value acts as a threshold for screening singular values so that only values above it are included in the matrix pseudoinverse. [Edit on GitHub]

FORCE_STATES: integer[2] = 1 2

  Usage: FORCE_STATES 1 1

  Mentions: ⭐Constrained DFT

  Defines the CDFT states used to translate the system. [Edit on GitHub]

LAMBDA: real

  Usage: lambda <REAL>

  Mentions: ⭐Constrained DFT

  Specify the mixing parameter lambda in the formula. [Edit on GitHub]

LOAD_SCALE: real = 2.00000000E+000

  Usage: LOAD_SCALE <REAL>

  Control parameter for dynamic load balancing during a mixed CDFT calculation. See code for details. Works only in conjunction with keyword PARALLEL_BUILD. [Edit on GitHub]

LOWDIN: logical = F

  Lone keyword: `T`

  Usage: LOWDIN

  Mentions: ⭐Constrained DFT

  Compute the CDFT electronic coupling element using Lowdin orthogonalization. This is the default behavior with multiple constraints and nonidentical constraints. By activating this keyword, this method is also used to compute the coupling when a single constraint is active in addition to the standard method. [Edit on GitHub]

METRIC: logical = F

  Aliases: COUPLING_METRIC

  Lone keyword: `T`

  Usage: METRIC

  References: Mavros2015

  Compute reliability metric for the CDFT electronic coupling element by diagonalizing the difference density matrix. [Edit on GitHub]

MORE_WORK: integer = 0

  Usage: MORE_WORK <INT>

  Control parameter for dynamic load balancing during a mixed CDFT calculation. See code for details. Works only in conjunction with keyword PARALLEL_BUILD. [Edit on GitHub]

NONORTHOGONAL_COUPLING: logical = F

  Aliases: NONORTHO_COUPLING

  Lone keyword: `T`

  Usage: NONORTHOGONAL_COUPLING

  Print out the nonorthogonal diabatic CDFT coupling between states, as it appears in the mixed CDFT Hamiltonian before orthogonalization (coupling calculations) and CDFT-CI. Useful for (re)constructing the Hamiltonian for additional analysis. This is the CDFT interaction energy between states. [Edit on GitHub]

PARALLEL_BUILD: logical = F

  Lone keyword: `T`

  Usage: PARALLEL_BUILD TRUE

  Mentions: ⭐Constrained DFT

  Build CDFT weight function and gradients in parallel on all N MPI processors before starting the CDFT SCF calculations of the 2 involved CDFT states in parallel on N/2 processors. Supports only Becke constraints that are identical in both states. Limited to 1 charge constraint per state (different target values). The keyword MIXED&NGROUPS must be set to 2. [Edit on GitHub]

SCALE_WITH_OCCUPATION_NUMBERS: logical = T

  Lone keyword: `T`

  Usage: SCALE_WITH_OCCUPATION_NUMBERS FALSE

  Scale molecular orbitals with occupation numbers before calculating the electronic coupling. Affects only simulations which employ MO smearing. Disabling this keyword in conjunction with a properly selected EPS_OCCUPIED threshold might be useful in systems with a large number of fractionally occupied orbitals. [Edit on GitHub]

VERY_OVERLOADED: real = 0.00000000E+000

  Usage: VERY_OVERLOADED <REAL>

  Control parameter for dynamic load balancing during a mixed CDFT calculation. See code for details. Works only in conjunction with keyword PARALLEL_BUILD. [Edit on GitHub]

WFN_OVERLAP: logical = F

  Lone keyword: `T`

  Usage: WFN_OVERLAP

  References: Migliore2009

  Mentions: ⭐Constrained DFT

  Compute the CDFT electronic coupling element using the wavefunction overlap method in addition to the standard method defined by the keyword COUPLING. In this method, the unconstrained KS ground state wavefunction (WFN_RESTART_FILE_NAME) is represented as a linear combination of the CDFT states. For more than two CDFT states, the coupling is computed pairwise for every state pair (contrary to other coupling methods). [Edit on GitHub]

WFN_RESTART_FILE_NAME: string

  Usage: WFN_RESTART_FILE_NAME <FILENAME>

  Name of the wavefunction restart file that defines the unconstrained KS ground state, which is used to compute the electronic coupling with the wavefunction overlap method. May include a path. [Edit on GitHub]