21 #ifndef JDFTX_ELECTRONIC_ELECVARS_H 22 #define JDFTX_ELECTRONIC_ELECVARS_H 24 #include <electronic/common.h> 34 std::vector<ColumnBundle>
Y;
35 std::vector<matrix>
B;
46 std::vector<ColumnBundle>
C;
47 std::vector<diagMatrix>
F;
49 std::vector< std::vector<matrix> > VdagC;
73 double Vin, Vout, convolve_radius;
75 std::vector<BoxPotential> boxPot;
79 std::shared_ptr<struct FluidSolver> fluidSolver;
80 string fluidInitialStateFilename;
142 std::vector<string> VexternalFilename;
143 friend struct CommandVexternal;
146 string rhoExternalFilename;
147 friend struct CommandRhoExternal;
152 friend struct CommandWavefunction;
153 friend struct CommandLcaoParams;
157 std::vector<matrix> U;
158 std::vector<matrix> U_evecs;
159 std::vector<diagMatrix> U_eigs;
160 std::vector<matrix> Umhalf;
161 std::vector<matrix> V;
163 #endif // JDFTX_ELECTRONIC_ELECVARS_H std::shared_ptr< struct ColumnBundleReadConversion > readConversion
ColumnBundle conversion.
Definition: ElecVars.h:84
ScalarFieldArray Vtau
Local part of (optionally spin-dependent) self-consistent potential.
Definition: ElecVars.h:63
std::vector< diagMatrix > Hsub_eigs
eigenvalues of Hsub[q]
Definition: ElecVars.h:44
std::vector< matrix > rhoAtom
Gradient w.r.t kinetic energy density (if meta-GGA)
Definition: ElecVars.h:65
string VFilenamePattern
file pattern to read electron (spin,kinetic) potential from
Definition: ElecVars.h:97
std::vector< ScalarField > ScalarFieldArray
dynamic size collection of real space scalar fields
Definition: ScalarFieldArray.h:32
std::vector< diagMatrix > B_eigs
eigenvalues of B[q]
Definition: ElecVars.h:40
bool HauxInitialized
whether Haux has been read in/computed
Definition: ElecVars.h:92
std::vector< matrix > B_evecs
eigenvectors of B[q] in columns
Definition: ElecVars.h:39
std::vector< diagMatrix > F
the fillings (diagonal matrices) for each state
Definition: ElecVars.h:47
ScalarFieldArray tau
kinetic energy density including tauCore, if present (computed if a meta GGA is being used) ...
Definition: ElecVars.h:57
string HauxFilename
file to read auxilliary hamiltonian (B) from (used only for FermiFillingsAux mode) ...
Definition: ElecVars.h:91
std::vector< matrix > grad_CdagOC
gradient w.r.t overlap (required for forces when O is atom dependent)
Definition: ElecVars.h:50
General complex matrix.
Definition: matrix.h:57
ScalarFieldArray Vexternal
external potential
Definition: ElecVars.h:68
void setEigenvectors(int q=-1)
Definition: ElecVars.h:71
std::vector< ColumnBundle > Y
unconstrained electronic wavefunctions
Definition: ElecVars.h:34
std::shared_ptr< ScalarFieldTildeData > ScalarFieldTilde
A smart reference-counting pointer to ScalarFieldTildeData.
Definition: ScalarField.h:44
Definition: Energies.h:26
ScalarFieldArray n
electron density (single ScalarField) or spin density (two ScalarFields [up,dn]) or spin density matr...
Definition: ElecVars.h:53
void orthonormalize(int q)
Orthonormalise Y to compute C, U and its cohorts for a quantum number q.
Real diagonal matrix.
Definition: matrix.h:30
double elecEnergyAndGrad(Energies &ener, ElecGradient *grad=0, ElecGradient *Kgrad=0, bool calc_Hsub=false)
bool isRandom
indicates whether the electronic state is random (not yet minimized)
Definition: ElecVars.h:85
std::vector< matrix > Hsub_evecs
eigenvectors of Hsub[q] in columns
Definition: ElecVars.h:43
double subspaceRotationFactor
preconditioning factor for subspace rotations / aux hamiltonian relative to wavefunctions ...
Definition: ElecVars.h:36
ScalarFieldTilde rhoExternal
external charge density
Definition: ElecVars.h:69
std::vector< ColumnBundle > C
orthonormal wavefunctions (after appropriate subspace rotation)
Definition: ElecVars.h:46
std::vector< matrix > B
subspace rotation / auxilliary hamiltonian
Definition: ElecVars.h:35
Definition: ElecMinimizer.h:28
string eigsFilename
file to read eigenvalues from
Definition: ElecVars.h:88
std::vector< matrix > U_rhoAtom
Atomic density matrices and gradients w.r.t them (for DFT+U)
Definition: ElecVars.h:65
ScalarFieldArray get_nXC() const
return the total (spin) density including core contributions
string nFilenamePattern
file pattern to read electron (spin,kinetic) density from
Definition: ElecVars.h:96
ScalarField get_nTot() const
return the total electron density (even in spin polarized situations)
Definition: ElecVars.h:55
void EdensityAndVscloc(Energies &ener, const ExCorr *alternateExCorr=0)
ScalarFieldArray calcDensity() const
Calculate density using current orthonormal wavefunctions (C)
ScalarFieldTilde d_fluid
electrostatic potential due to fluid
Definition: ElecVars.h:59
Definition: Everything.h:41
Definition: ElecVars.h:30
classes ScalarFieldArray, ScalarFieldTildeArray and just enough operators to enable CG w...
double bandEnergyAndGrad(int q, Energies &ener, ColumnBundle *grad=0, ColumnBundle *Kgrad=0)
Returns the total single particle energy and gradient of all KS orbitals.
double applyHamiltonian(int q, const diagMatrix &Fq, ColumnBundle &HCq, Energies &ener, bool need_Hsub=false)
FluidSolverParams fluidParams
parameters for the external box potential
Definition: ElecVars.h:78
int nOccupiedBands(int q) const
Return the number of occupied bands (f > occupiedThrehsold) for a given state.
std::shared_ptr< ScalarFieldData > ScalarField
A smart reference-counting pointer to ScalarFieldData.
Definition: ScalarField.h:40
Extra parameters for fluids:
Definition: FluidSolverParams.h:93
ScalarFieldTilde V_cavity
non-electrostatic potential on electrons due to fluid
Definition: ElecVars.h:60
std::vector< matrix > Hsub
Subspace Hamiltonian: Hsub[q]=C[q]^H*C[q].
Definition: ElecVars.h:42
string wfnsFilename
file to read wavefunctions from
Definition: ElecVars.h:83
void orthonormalizeGrad(int q, const diagMatrix &Fq, const ColumnBundle &HCq, ColumnBundle &gradYq, double KErollover=1., ColumnBundle *KgradYq=0, matrix *gradBq=0, matrix *KgradBq=0)
Propagates the gradient wrt orthonormal C (HCq) to gradient wrt Y and B (if given).
bool initLCAO
initialize wave functions using linear combinations of atomic orbitals
Definition: ElecVars.h:86
ScalarFieldArray KEdensity() const
Compute the kinetic energy density.
Definition: ColumnBundle.h:30
double overlapCondition
Current condition number of the orbital overlap matrix (over all states)
Definition: ElecVars.h:94
Definition: InverseKohnSham.h:27
bool rhoExternalSelfEnergy
whether to include self-energy of rhoExternal in output energy
Definition: ElecVars.h:70
Stores the list of what to dump and when, and implements the functions to do so.
Definition: Dump.h:59