JDFTx  1.7.0
PerturbationSolver Class Reference
Inheritance diagram for PerturbationSolver:
LinearSolvableIndefinite< PerturbationGradient >

Public Member Functions

 PerturbationSolver (Everything &e)
 
void hessian (PerturbationGradient &Av, const PerturbationGradient &v) override
 Linear operator A applied to the vector v.
 
void precondition (PerturbationGradient &v) override
 Apply precondioner to vector v. Required for CG algorithm.
 
void Ksqrt (PerturbationGradient &v) override
 Apply square root of preconditioner to v. Required for MINRES algorithm.
 
void solvePerturbation ()
 
void calcdGradTau ()
 Get derivative of Grad E w.r.t. external perturbations (local potential, charge density, or atomic position)
 
void getGrad (std::vector< ColumnBundle > *grad, std::vector< ColumnBundle > Y)
 Get gradient of E w.r.t Y, used for finite difference tests.
 
void computeIncommensurateWfns ()
 Automatically set up and minimize incommensurate wfns, not implemented yet.
 
void getdn (ScalarFieldArray &dn, const std::vector< ColumnBundle > *dC, const std::vector< ColumnBundle > *C=0)
 Derivative of density w.r.t. wavefunctions.
 
void getdnInc (const std::vector< ColumnBundle > *dC, const std::vector< ColumnBundle > *C, complexScalarFieldArray &dnpq, complexScalarFieldArray &dnmq)
 Derivative of density w.r.t. wavefunctions, incommensurate case.
 
void getdnatom (ScalarFieldArray &dnatom)
 Derivative of density w.r.t. atomic positions.
 
void updateExcorrCache ()
 Update cache variables for calculation of LDA and GGA derivatives.
 
void updateHC ()
 Update HC, OC, and density augmentation derivative. Run whever ionic positions change.
 
void updateNonlocalDerivs ()
 Update Vnl derivatives, run when atom perturbation is applied.
 
void applyH (const QuantumNumber &qnum, const diagMatrix &Fq, ColumnBundle &HCq, const ColumnBundle &Cq)
 Apply Hamiltonian to arbitrary wavefunction, unlike in ElecVars::applyHamiltonian does not have to be eVars.C.
 
void dH_Vscloc (const QuantumNumber &qnum, ColumnBundle &HCq, const ColumnBundle &Cq, const ScalarFieldArray &dVscloc, const std::vector< matrix > *VdagCq=0)
 Derivative of H operator w.r.t. Vscloc.
 
void dHpsi (const QuantumNumber &qnum, ColumnBundle &HCq, const ColumnBundle &Cq, const ScalarFieldArray &dVscloc, const std::vector< matrix > *VdagCq=0)
 Derivative of H operator w.r.t. wavefunctions.
 
void dHpsi (const QuantumNumber &qnum, ColumnBundle &HCq, const ColumnBundle &Cq, const complexScalarFieldArray &dVscloc)
 Derivative of H operator w.r.t. wavefunctions for incommensurate perturbations.
 
void dHtau (const QuantumNumber &qnum, ColumnBundle &HCq, const ColumnBundle &Cq, const ScalarFieldArray &dVscloc)
 Derivative of H operator w.r.t. external perturbations (local potential, charge density, or atomic position)
 
void dHtau (const QuantumNumber &qnum, ColumnBundle &HCq, const ColumnBundle &Cq, int qsign)
 Derivative of H operator w.r.t. incommensurate external perturbations (local potential, charge density)
 
void getdVsclocPsi (const ScalarFieldArray dn, ScalarFieldArray &dVscloc)
 Derivative of Vscloc w.r.t density.
 
void getdVsclocPsi (const complexScalarFieldArray dn, complexScalarFieldArray &dVscloc, vector3<> *q)
 Derivative of Vscloc w.r.t density, incommensurate.
 
void getdVsclocTau (ScalarFieldArray &dVscloc, ScalarFieldArray *dn=0)
 Derivative of Vscloc w.r.t external perturbations.
 
void getdVsclocTau (complexScalarFieldArray &dVscloc, int qsign)
 Derivative of Vscloc w.r.t external perturbations, incommensurate.
 
ScalarFieldArray getdnXC (const ScalarField dnCore) const
 Derivative of nXC w.r.t core density.
 
ScalarField get_nTot (const ScalarFieldArray n) const
 Copy of ElecVars::get_nTot for any n.
 
complexScalarField get_nTot (const complexScalarFieldArray n) const
 

The documentation for this class was generated from the following file: