|
void | setup (const Everything &) |
|
void | printPositions (FILE *) const |
|
bool | checkPositions () const |
| check for overlapping atoms, return true if okay
|
|
double | getZtot () const |
| get total Z of all species and atoms
|
|
void | update (Energies &) |
| Update Vlocps, rhoIon, nChargeball, nCore and the energies dependent only on ionic positions.
|
|
double | ionicEnergyAndGrad (IonicGradient &forces) const |
| Return the total (free) energy and calculate the ionic gradient (forces)
|
|
double | EnlAndGrad (const QuantumNumber &qnum, const diagMatrix &Fq, const std::vector< matrix > &VdagCq, std::vector< matrix > &HVdagCq) const |
|
void | augmentOverlap (const ColumnBundle &Cq, ColumnBundle &OCq, std::vector< matrix > *VdagCq=0) const |
| Accumulate pseudopotential dependent contribution to the overlap in OCq.
|
|
void | augmentDensityInit () const |
|
void | augmentDensitySpherical (const QuantumNumber &qnum, const diagMatrix &Fq, const std::vector< matrix > &VdagCq) const |
|
void | augmentDensityGrid (ScalarFieldArray &n) const |
|
void | augmentDensityGridGrad (const ScalarFieldArray &E_n, IonicGradient *forces=0) const |
|
void | augmentDensitySphericalGrad (const QuantumNumber &qnum, const diagMatrix &Fq, const std::vector< matrix > &VdagCq, std::vector< matrix > &HVdagCq) const |
|
void | project (const ColumnBundle &Cq, std::vector< matrix > &VdagCq, matrix *rotExisting=0) const |
|
void | projectGrad (const std::vector< matrix > &HVdagCq, const ColumnBundle &Cq, ColumnBundle &HCq) const |
|
size_t | rhoAtom_nMatrices () const |
| Compute U corrections (DFT+U in the simplified rotationally-invariant scheme [Dudarev et al, Phys. Rev. B 57, 1505]) More...
|
|
void | rhoAtom_initZero (std::vector< matrix > &rhoAtom) const |
| initialize matrices of appropriate size to zero
|
|
void | rhoAtom_calc (const std::vector< diagMatrix > &F, const std::vector< ColumnBundle > &C, std::vector< matrix > &rhoAtom) const |
| compute atomic density matrices
|
|
double | rhoAtom_computeU (const std::vector< matrix > &rhoAtom, std::vector< matrix > &U_rhoAtom) const |
| compute U energy and gradient w.r.t atomic density matrices
|
|
void | rhoAtom_grad (const ColumnBundle &Cq, const std::vector< matrix > &U_rhoAtom, ColumnBundle &HCq) const |
| propagate U_rhoAtom to wavefunction gradient (per k-point to enable band structure)
|
|
void | rhoAtom_forces (const std::vector< diagMatrix > &F, const std::vector< ColumnBundle > &C, const std::vector< matrix > &U_rhoAtom, IonicGradient &forces) const |
| propagate U_rhoAtom to forces
|
|
void | rhoAtom_getV (const ColumnBundle &Cq, const std::vector< matrix > &U_rhoAtom, std::vector< ColumnBundle > &psi, std::vector< matrix > &M) const |
| get DFT+U Hamiltonian basis (atomic orbitals) and matrices
|
|
ColumnBundle | rHcommutator (const ColumnBundle &Y, int iDir) const |
| Apply commutator operator [r_iDir,H] = D_iDir + nonlocal corrections.
|
|
int | nAtomicOrbitals () const |
| Get total number of atomic orbitals.
|
|
ColumnBundle | getAtomicOrbitals (int q, bool applyO, int extraCols=0) const |
| Get all atomic orbitals of a given state number q, optionally with operator O pre-applied (with room for extra columns if specified)
|
|