Xyce  6.1
Xyce::Device::Reaction Class Reference

#include <N_DEV_Reaction.h>

Collaboration diagram for Xyce::Device::Reaction:

Public Member Functions

 Reaction ()
 
 Reaction (std::vector< std::pair< int, double > > &, std::vector< std::pair< int, double > > &, double)
 
 Reaction (const Reaction &right)
 
 ~Reaction ()
 
void setRateConstant (double)
 
void setRateConstantFromCalculator (double T)
 
void setRateConstantFromCalculator (double T, std::vector< double > &concs, std::vector< double > &constant_vec)
 
void scaleRateConstant (double)
 
void scaleRateConstantFromCalculator ()
 
void unscaleRateConstantFromCalculator ()
 
void setReactants (std::vector< std::pair< int, double > > &products)
 
void addReactant (int species, double stoich)
 
void setProducts (std::vector< std::pair< int, double > > &products)
 
void addProduct (int species, double stoich)
 
double getRate (std::vector< double > &concentrations, std::vector< double > &constants)
 
void getDdt (std::vector< double > &concentrations, std::vector< double > &constants, std::vector< double > &ddt)
 
void getDRateDC (std::vector< double > &concentrations, std::vector< double > &constants, std::vector< double > &dratedc)
 
void getDRateDConst (int constNum, std::vector< double > &concentrations, std::vector< double > &constants, double &dratedc)
 
void getJac (std::vector< double > &concentrations, std::vector< double > &constants, std::vector< std::vector< double > > &jac)
 
void getDFdConst (int constantNumber, std::vector< double > &concentrations, std::vector< double > &constants, std::vector< double > &dFdConst)
 
void getJacobianVC (std::vector< double > &concentrations, std::vector< double > &constants, std::vector< std::vector< double > > &jac, std::vector< double > &constVec)
 
void output (const std::vector< Specie > &species, std::ostream &os) const
 
void setSimpleRateCalculator (double k, double C0, double t0, double x0)
 
void setCaptureRateCalculator (double sigma, double v, double C0, double t0, double x0)
 
void setEmissionRateCalculator (double sigma, double v, double N, double Energy, double C0, double t0, double x0)
 
void setFDEmissionRateCalculator (int carrierIndex, double sigma, double Energy, double v, double C0, double t0, double x0)
 
void setComplexRateCalculator (std::vector< Specie > &VariableSpecies, std::vector< Specie > &ConstantSpecies, double C0, double t0, double x0)
 
void setComplexMultiplierRateCalculator (std::vector< Specie > &VariableSpecies, std::vector< Specie > &ConstantSpecies, double C0, double t0, double x0, double multiplier)
 
void setDecomplexRateCalculator (std::vector< Specie > &VariableSpecies, std::vector< Specie > &ConstantSpecies, double bindingEnergy, double gammaAB, double gammaA, double gammaB, double concSi, double C0, double t0, double x0)
 
void setBourgoinCorbettHoleRateCalculator (std::vector< Specie > &VariableSpecies, std::vector< Specie > &ConstantSpecies, double sigma, double C0, double t0, double x0)
 
int getCarrierEmissionIndex ()
 
void setTemperature (double T)
 
void setMaterial (MaterialLayer *material, double Temp)
 
void setCoefficient (double Temp)
 
void setRxnVariableCoeffs (bool variableCoeff)
 
template<class ScalarT >
ScalarT getFDEmissionRate (std::vector< ScalarT > &concentrations, std::vector< ScalarT > &constants)
 
template<class ScalarT >
ScalarT getRateVC (std::vector< ScalarT > &concentrations, std::vector< ScalarT > &constants)
 
void setScaleFactors (double C0i, double t0, double x0)
 
Reactionoperator= (const Reaction &right)
 

Private Types

enum  materialEnum_t {
  si,
  gaas
}
 

Private Member Functions

void setDependency (int cSize)
 
void setConstDependency (int cSize)
 
template<class ScalarT >
ScalarT rxnCoefficient (std::vector< ScalarT > &concentrations, std::vector< ScalarT > &constants)
 
template<class ScalarT >
ScalarT complexCoefficient (std::vector< ScalarT > &concentrations, std::vector< ScalarT > &constants)
 

Private Attributes

std::vector< std::pair< int, double > > theReactants
 
std::vector< std::pair< int, double > > theProducts
 
double theRateConstant
 
int numconcs
 
int numconsts
 
int carrierEmissionIndex
 
std::vector< int > concDependency
 
std::vector< int > constDependency
 
RateCalculatormyRateCalc
 
double C0
 
double temperature
 
double energy
 
inverse_fermi_one_half_N fdinvObj
 
MaterialLayermaterial
 
bool variableRateCoefficient
 
std::string myReactionName
 
bool FADVectorsAllocated
 
std::vector< FDFadTypedefects
 
std::vector< FDFadTypecarriers
 
bool variableCoefficient
 
int coefficientType
 
double tolerance
 
double charge
 
double peq
 
double constCoeff
 
double unshieldedLength
 
double latticeConstant
 
SpecieSpecie1
 
SpecieSpecie2
 
int chargeProduct
 
double diffusionCoefficient1
 
double diffusionCoefficient2
 
int carrierBCIndex
 
double hopLength
 
double thermalVelocity
 
double sigmaBC
 
int carrierCharge
 
materialEnum_t materialEnum
 

Detailed Description

Definition at line 69 of file N_DEV_Reaction.h.

Member Enumeration Documentation

Enumerator
si 
gaas 

Definition at line 216 of file N_DEV_Reaction.h.

Constructor & Destructor Documentation

Xyce::Device::Reaction::Reaction ( )

Definition at line 79 of file N_DEV_Reaction.C.

Xyce::Device::Reaction::Reaction ( std::vector< std::pair< int, double > > &  reactants,
std::vector< std::pair< int, double > > &  products,
double  rateConstant 
)

Definition at line 104 of file N_DEV_Reaction.C.

Xyce::Device::Reaction::Reaction ( const Reaction right)

Definition at line 147 of file N_DEV_Reaction.C.

Xyce::Device::Reaction::~Reaction ( )

Definition at line 240 of file N_DEV_Reaction.C.

Member Function Documentation

void Xyce::Device::Reaction::addProduct ( int  species,
double  stoich 
)

Definition at line 303 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::addReactant ( int  species,
double  stoich 
)

Definition at line 270 of file N_DEV_Reaction.C.

template<class ScalarT >
ScalarT Xyce::Device::Reaction::complexCoefficient ( std::vector< ScalarT > &  concentrations,
std::vector< ScalarT > &  constants 
)
private

Definition at line 467 of file N_DEV_Reaction.h.

int Xyce::Device::Reaction::getCarrierEmissionIndex ( )
inline

Definition at line 257 of file N_DEV_Reaction.h.

void Xyce::Device::Reaction::getDdt ( std::vector< double > &  concentrations,
std::vector< double > &  constants,
std::vector< double > &  ddt 
)

Definition at line 604 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::getDFdConst ( int  constantNumber,
std::vector< double > &  concentrations,
std::vector< double > &  constants,
std::vector< double > &  dFdConst 
)

Definition at line 1009 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::getDRateDC ( std::vector< double > &  concentrations,
std::vector< double > &  constants,
std::vector< double > &  dratedc 
)

Definition at line 427 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::getDRateDConst ( int  constNum,
std::vector< double > &  concentrations,
std::vector< double > &  constants,
double &  dratedc 
)

Definition at line 523 of file N_DEV_Reaction.C.

template<class ScalarT >
ScalarT Xyce::Device::Reaction::getFDEmissionRate ( std::vector< ScalarT > &  concentrations,
std::vector< ScalarT > &  constants 
)

Definition at line 285 of file N_DEV_Reaction.h.

void Xyce::Device::Reaction::getJac ( std::vector< double > &  concentrations,
std::vector< double > &  constants,
std::vector< std::vector< double > > &  jac 
)

Definition at line 674 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::getJacobianVC ( std::vector< double > &  concentrations,
std::vector< double > &  constants,
std::vector< std::vector< double > > &  jac,
std::vector< double > &  constVec 
)

Definition at line 833 of file N_DEV_Reaction.C.

double Xyce::Device::Reaction::getRate ( std::vector< double > &  concentrations,
std::vector< double > &  constants 
)

Definition at line 358 of file N_DEV_Reaction.C.

template<class ScalarT >
ScalarT Xyce::Device::Reaction::getRateVC ( std::vector< ScalarT > &  concentrations,
std::vector< ScalarT > &  constants 
)

Definition at line 384 of file N_DEV_Reaction.h.

Reaction & Xyce::Device::Reaction::operator= ( const Reaction right)

Definition at line 196 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::output ( const std::vector< Specie > &  species,
std::ostream &  os 
) const

Definition at line 1622 of file N_DEV_Reaction.C.

template<class ScalarT >
ScalarT Xyce::Device::Reaction::rxnCoefficient ( std::vector< ScalarT > &  concentrations,
std::vector< ScalarT > &  constants 
)
private

Definition at line 441 of file N_DEV_Reaction.h.

void Xyce::Device::Reaction::scaleRateConstant ( double  scalar)
inline

Definition at line 243 of file N_DEV_Reaction.h.

void Xyce::Device::Reaction::scaleRateConstantFromCalculator ( )

Definition at line 1530 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setBourgoinCorbettHoleRateCalculator ( std::vector< Specie > &  VariableSpecies,
std::vector< Specie > &  ConstantSpecies,
double  sigma,
double  C0,
double  t0,
double  x0 
)

Definition at line 1452 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setCaptureRateCalculator ( double  sigma,
double  v,
double  C0,
double  t0,
double  x0 
)

Definition at line 1181 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setCoefficient ( double  Temp)

Definition at line 1723 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setComplexMultiplierRateCalculator ( std::vector< Specie > &  VariableSpecies,
std::vector< Specie > &  ConstantSpecies,
double  C0,
double  t0,
double  x0,
double  multiplier 
)

Definition at line 1346 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setComplexRateCalculator ( std::vector< Specie > &  VariableSpecies,
std::vector< Specie > &  ConstantSpecies,
double  C0,
double  t0,
double  x0 
)

Definition at line 1294 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setConstDependency ( int  cSize)
private

Definition at line 1597 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setDecomplexRateCalculator ( std::vector< Specie > &  VariableSpecies,
std::vector< Specie > &  ConstantSpecies,
double  bindingEnergy,
double  gammaAB,
double  gammaA,
double  gammaB,
double  concSi,
double  C0,
double  t0,
double  x0 
)

Definition at line 1396 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setDependency ( int  cSize)
private

Definition at line 1569 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setEmissionRateCalculator ( double  sigma,
double  v,
double  N,
double  Energy,
double  C0,
double  t0,
double  x0 
)

Definition at line 1216 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setFDEmissionRateCalculator ( int  carrierIndex,
double  sigma,
double  Energy,
double  v,
double  C0,
double  t0,
double  x0 
)

Definition at line 1254 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setMaterial ( MaterialLayer material,
double  Temp 
)

Definition at line 1688 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setProducts ( std::vector< std::pair< int, double > > &  products)

Definition at line 335 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setRateConstant ( double  rateConst)
inline

Definition at line 230 of file N_DEV_Reaction.h.

void Xyce::Device::Reaction::setRateConstantFromCalculator ( double  T)

Definition at line 1478 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setRateConstantFromCalculator ( double  T,
std::vector< double > &  concs,
std::vector< double > &  constant_vec 
)

Definition at line 1505 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setReactants ( std::vector< std::pair< int, double > > &  products)

Definition at line 257 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setRxnVariableCoeffs ( bool  variableCoeff)
inline

Definition at line 150 of file N_DEV_Reaction.h.

void Xyce::Device::Reaction::setScaleFactors ( double  C0i,
double  t0,
double  x0 
)
inline

Definition at line 160 of file N_DEV_Reaction.h.

void Xyce::Device::Reaction::setSimpleRateCalculator ( double  k,
double  C0,
double  t0,
double  x0 
)

Definition at line 1158 of file N_DEV_Reaction.C.

void Xyce::Device::Reaction::setTemperature ( double  T)
inline

Definition at line 271 of file N_DEV_Reaction.h.

void Xyce::Device::Reaction::unscaleRateConstantFromCalculator ( )

Definition at line 1548 of file N_DEV_Reaction.C.

Member Data Documentation

double Xyce::Device::Reaction::C0
private

Definition at line 181 of file N_DEV_Reaction.h.

int Xyce::Device::Reaction::carrierBCIndex
private

Definition at line 212 of file N_DEV_Reaction.h.

int Xyce::Device::Reaction::carrierCharge
private

Definition at line 214 of file N_DEV_Reaction.h.

int Xyce::Device::Reaction::carrierEmissionIndex
private

Definition at line 177 of file N_DEV_Reaction.h.

std::vector<FDFadType> Xyce::Device::Reaction::carriers
private

Definition at line 189 of file N_DEV_Reaction.h.

double Xyce::Device::Reaction::charge
private

Definition at line 195 of file N_DEV_Reaction.h.

int Xyce::Device::Reaction::chargeProduct
private

Definition at line 209 of file N_DEV_Reaction.h.

int Xyce::Device::Reaction::coefficientType
private

Definition at line 193 of file N_DEV_Reaction.h.

std::vector<int> Xyce::Device::Reaction::concDependency
private

Definition at line 178 of file N_DEV_Reaction.h.

double Xyce::Device::Reaction::constCoeff
private

Definition at line 197 of file N_DEV_Reaction.h.

std::vector<int> Xyce::Device::Reaction::constDependency
private

Definition at line 179 of file N_DEV_Reaction.h.

std::vector<FDFadType> Xyce::Device::Reaction::defects
private

Definition at line 188 of file N_DEV_Reaction.h.

double Xyce::Device::Reaction::diffusionCoefficient1
private

Definition at line 210 of file N_DEV_Reaction.h.

double Xyce::Device::Reaction::diffusionCoefficient2
private

Definition at line 210 of file N_DEV_Reaction.h.

double Xyce::Device::Reaction::energy
private

Definition at line 182 of file N_DEV_Reaction.h.

bool Xyce::Device::Reaction::FADVectorsAllocated
private

Definition at line 187 of file N_DEV_Reaction.h.

inverse_fermi_one_half_N Xyce::Device::Reaction::fdinvObj
private

Definition at line 183 of file N_DEV_Reaction.h.

double Xyce::Device::Reaction::hopLength
private

Definition at line 213 of file N_DEV_Reaction.h.

double Xyce::Device::Reaction::latticeConstant
private

Definition at line 199 of file N_DEV_Reaction.h.

MaterialLayer* Xyce::Device::Reaction::material
private

Definition at line 184 of file N_DEV_Reaction.h.

materialEnum_t Xyce::Device::Reaction::materialEnum
private

Definition at line 217 of file N_DEV_Reaction.h.

RateCalculator* Xyce::Device::Reaction::myRateCalc
private

Definition at line 180 of file N_DEV_Reaction.h.

std::string Xyce::Device::Reaction::myReactionName
private

Definition at line 186 of file N_DEV_Reaction.h.

int Xyce::Device::Reaction::numconcs
private

Definition at line 175 of file N_DEV_Reaction.h.

int Xyce::Device::Reaction::numconsts
private

Definition at line 176 of file N_DEV_Reaction.h.

double Xyce::Device::Reaction::peq
private

Definition at line 196 of file N_DEV_Reaction.h.

double Xyce::Device::Reaction::sigmaBC
private

Definition at line 213 of file N_DEV_Reaction.h.

Specie* Xyce::Device::Reaction::Specie1
private

Definition at line 208 of file N_DEV_Reaction.h.

Specie * Xyce::Device::Reaction::Specie2
private

Definition at line 208 of file N_DEV_Reaction.h.

double Xyce::Device::Reaction::temperature
private

Definition at line 182 of file N_DEV_Reaction.h.

std::vector< std::pair<int,double> > Xyce::Device::Reaction::theProducts
private

Definition at line 173 of file N_DEV_Reaction.h.

double Xyce::Device::Reaction::theRateConstant
private

Definition at line 174 of file N_DEV_Reaction.h.

std::vector< std::pair<int,double> > Xyce::Device::Reaction::theReactants
private

Definition at line 172 of file N_DEV_Reaction.h.

double Xyce::Device::Reaction::thermalVelocity
private

Definition at line 213 of file N_DEV_Reaction.h.

double Xyce::Device::Reaction::tolerance
private

Definition at line 194 of file N_DEV_Reaction.h.

double Xyce::Device::Reaction::unshieldedLength
private

Definition at line 198 of file N_DEV_Reaction.h.

bool Xyce::Device::Reaction::variableCoefficient
private

Definition at line 190 of file N_DEV_Reaction.h.

bool Xyce::Device::Reaction::variableRateCoefficient
private

Definition at line 185 of file N_DEV_Reaction.h.


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