20 #ifndef JDFTX_PHONON_PHONON_H 21 #define JDFTX_PHONON_PHONON_H 23 #include <electronic/Everything.h> 24 #include <electronic/ColumnBundle.h> 25 #include <core/LatticeUtils.h> 29 {
int nBlocks, blockSize;
30 std::vector<int> colOffset;
31 std::vector<matrix> rots;
33 void init(
int nBlocks,
int blockSize);
34 void set(
int rowBlock,
int colBlock,
const matrix& rot);
50 std::vector<std::pair<string,string> > input;
58 void setup(
bool printDefaults);
64 std::shared_ptr<PhononEverything> eSup;
69 std::vector< matrix3<> > symSupCart;
70 std::vector< std::vector<BlockRotationMatrix> > stateRot;
77 std::vector<Mode> modes;
78 std::vector<IonicGradient> dgrad;
79 std::vector< std::vector<matrix> > dHsub;
82 struct Perturbation :
public Mode
85 std::vector<Perturbation> perturbations;
88 void processPerturbation(
const Perturbation& pert);
92 void setSupState(std::vector<matrix>* Hsub=0);
98 std::shared_ptr<class ColumnBundleTransform>
transform;
100 std::vector<StateMapEntry> stateMap;
107 #endif //JDFTX_PHONON_PHONON_H
Block rotation matrix: used for symmetrization of electronic states.
Definition: Phonon.h:28
General complex matrix.
Definition: matrix.h:58
matrix transform(const matrix &in) const
return rot * in * dagger(rot)
Calculate phonon dispersion, free energies and electron-phonon matrix elements.
Definition: Phonon.h:47
void init(int nBlocks, int blockSize)
initializes all blocks to zero
void allReduce()
collect over MPI
Add reference to class Phonon to Everything (for use with the parser)
Definition: Phonon.h:41
Definition: Everything.h:41