Xyce
6.1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
N_DEV_Specie.C
Go to the documentation of this file.
1
//-----------------------------------------------------------------------------
2
// Copyright Notice
3
//
4
// Copyright 2002 Sandia Corporation. Under the terms
5
// of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S.
6
// Government retains certain rights in this software.
7
//
8
// Xyce(TM) Parallel Electrical Simulator
9
// Copyright (C) 2002-2014 Sandia Corporation
10
//
11
// This program is free software: you can redistribute it and/or modify
12
// it under the terms of the GNU General Public License as published by
13
// the Free Software Foundation, either version 3 of the License, or
14
// (at your option) any later version.
15
//
16
// This program is distributed in the hope that it will be useful,
17
// but WITHOUT ANY WARRANTY; without even the implied warranty of
18
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
// GNU General Public License for more details.
20
//
21
// You should have received a copy of the GNU General Public License
22
// along with this program. If not, see <http://www.gnu.org/licenses/>.
23
//-----------------------------------------------------------------------------
24
25
//-----------------------------------------------------------------------------
26
// Filename : $RCSfile: N_DEV_Specie.C,v $
27
//
28
// Purpose :
29
//
30
// Special Notes :
31
//
32
// Creator : Lawrence C Musson, SNL
33
//
34
// Creation Date : 04/16/2014
35
//
36
// Revision Information:
37
// ---------------------
38
//
39
// Revision Number: $Revision: 1.1 $
40
//
41
// Revision Date : $Date: 2014/05/01 22:27:13 $
42
//
43
// Current Owner : $Author: lcmusso $
44
//-----------------------------------------------------------------------------
45
46
#include "
N_DEV_Specie.h
"
47
#include <N_UTL_Misc.h>
48
49
#ifdef HAVE_CMATH
50
#include <cmath>
51
#else
52
#include <math.h>
53
#endif
54
55
#include <string>
56
#include <
N_DEV_Const.h
>
57
#include <vector>
58
#include <iostream>
59
60
namespace
Xyce {
61
namespace
Device {
62
63
64
//-----------------------------------------------------------------------------
65
// Function : Specie::setBCEnhancedDiffusion
66
// Purpose : sets up bourgoin corbett enhancement
67
// Special Notes :
68
// Scope : public
69
// Creator : Lawrence C Musson, SNL
70
// Creation Date : 04/16/2014
71
//-----------------------------------------------------------------------------
72
73
void
Specie::setBCEnhancedDiffusion
(
int
cI,
double
s,
double
tV,
double
hL)
74
{
75
enhancedDiffusion
=
true
;
76
sigma
= s;
77
thermalVelocity
= tV;
78
hopLength
= hL;
79
carrierIndex
= cI;
80
}
81
82
//-----------------------------------------------------------------------------
83
//-----------------------------------------------------------------------------
84
85
86
//-----------------------------------------------------------------------------
87
// Function : Specie::getDiffusionCoefficient
88
// Purpose : compute the diffusion coefficient included bourgoin corbett enhancement
89
// Special Notes :
90
// Scope : public
91
// Creator : Lawrence C Musson, SNL
92
// Creation Date : 04/16/2014
93
//-----------------------------------------------------------------------------
94
95
double
Specie::getDiffusionCoefficient
(
double
Temperature,
96
std::vector<double> &concs,std::vector<double> &constant_vec)
97
{
98
99
double
DF =
DiffusionPrefactor
*exp(-
ActivationEnergy
/(
CONSTboltz
*Temperature/
CONSTQ
));
100
101
102
double
preDF = DF;
103
104
if
(
enhancedDiffusion
)
105
DF +=
sigma
*
thermalVelocity
*constant_vec[
carrierIndex
]*
hopLength
*
hopLength
/6.0;
106
107
return
DF;
108
109
}
110
111
};
//namespace Device
112
};
//namespace Xyce
src
DeviceModelPKG
Core
src
N_DEV_Specie.C
Generated on Thu Sep 25 2014 15:20:29 for Xyce by
1.8.3.1