1#ifndef G_MEDIUM_DIAMOND_H
2#define G_MEDIUM_DIAMOND_H
21 void GetComponent(
const unsigned int i, std::string& label,
26 const double bx,
const double by,
const double bz,
27 double& vx,
double& vy,
double& vz)
override;
29 const double bx,
const double by,
const double bz,
30 double& alpha)
override;
32 const double bx,
const double by,
const double bz,
33 double& eta)
override;
36 bool HoleVelocity(
const double ex,
const double ey,
const double ez,
37 const double bx,
const double by,
const double bz,
38 double& vx,
double& vy,
double& vz)
override;
39 bool HoleTownsend(
const double ex,
const double ey,
const double ez,
40 const double bx,
const double by,
const double bz,
41 double& alpha)
override;
42 bool HoleAttachment(
const double ex,
const double ey,
const double ez,
43 const double bx,
const double by,
const double bz,
44 double& eta)
override;
56 double m_eMobility = 4.551e-6;
57 double m_hMobility = 2.750e-6;
59 double m_eHallFactor = 1.;
60 double m_hHallFactor = 1.;
62 double m_eSatVel = 2.6e-2;
63 double m_hSatVel = 1.6e-2;
65 bool m_userMobility =
false;
67 void UpdateTransportParameters();
bool HoleVelocity(const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &vx, double &vy, double &vz) override
Drift velocity [cm / ns].
bool IsSemiconductor() const override
Is this medium a semiconductor?
bool ElectronTownsend(const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &alpha) override
Ionisation coefficient [cm-1].
double ElectronMobility() override
Low-field mobility [cm2 V-1 ns-1].
virtual ~MediumDiamond()
Destructor.
bool HoleTownsend(const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &alpha) override
Ionisation coefficient [cm-1].
bool ElectronAttachment(const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &eta) override
Attachment coefficient [cm-1].
bool HoleAttachment(const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &eta) override
Attachment coefficient [cm-1].
void UnsetSaturationVelocity()
void SetSaturationVelocity(const double vsate, const double vsath)
void UnsetLowFieldMobility()
bool ElectronVelocity(const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &vx, double &vy, double &vz) override
Drift velocity [cm / ns].
void GetComponent(const unsigned int i, std::string &label, double &f) override
Get the name and fraction of a given component.
MediumDiamond()
Constructor.
double HoleMobility() override
Low-field mobility [cm2 V-1 ns-1].
void SetLowFieldMobility(const double mue, const double muh)
Abstract base class for media.