Phoebe developer's documentation  1.1.0
Phonon and Electron Boltzmann Equations
transport_epa_app.h
1 #ifndef EPA_TRANSPORT_APP_H
2 #define EPA_TRANSPORT_APP_H
3 
4 #include "app.h"
5 #include "delta_function.h"
6 #include "vector_epa.h"
7 
10 class TransportEpaApp : public App {
11 public:
12  void run(Context &context) override;
13  void checkRequirements(Context &context) override;
14 
15 private:
29  static VectorEPA getScatteringRates(Context &context,
30  StatisticsSweep &statisticsSweep,
31  const Eigen::VectorXd &energies,
32  Crystal &crystal,
33  const Eigen::VectorXd &dos);
34 
45  std::tuple<
46  Eigen::Tensor<double, 3>,
47  Eigen::VectorXd> static calcEnergyProjVelocity(Context &context,
49  &bandStructure,
50  const Eigen::VectorXd
51  &energies);
52 
61  static void outputToJSON(const std::string &outFileName,
62  VectorEPA &scatteringRates,
63  StatisticsSweep &statisticsSweep,
64  Eigen::VectorXd &energiesEPA, Context &context);
65 };
66 
67 #endif
Base class for launching apps.
Definition: app.h:22
Class containing the user input variables.
Definition: context.h:15
Object to store the information on the crystal unit cell, such as atomic positions,...
Definition: crystal.h:18
FullBandStructure is the class that stores the energies, velocities and eigenvectors of a quasipartic...
Definition: bandstructure.h:318
Object for controlling the loop over temperatures and chemical potentials.
Definition: statistics_sweep.h:26
App for computing the electron transport properties with the EPA theory.
Definition: transport_epa_app.h:10
void run(Context &context) override
Launches the subprogram.
Definition: transport_epa_app.cpp:19
void checkRequirements(Context &context) override
Checks that the user wrote a complete input file.
Definition: transport_epa_app.cpp:102
Class used to store a "matrix" of data.
Definition: vector_epa.h:17