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_ScalingVars.h
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_ScalingVars.h,v $
27
//
28
// Purpose :
29
//
30
// Special Notes :
31
//
32
// Creator : Eric R. Keiter, SNL, Parallel Computational Sciences
33
//
34
// Creation Date : 03/04/08
35
//
36
// Revision Information:
37
// ---------------------
38
//
39
// Revision Number: $Revision: 1.11.2.1 $
40
//
41
// Revision Date : $Date: 2014/02/26 20:16:31 $
42
//
43
// Current Owner : $Author: tvrusso $
44
//-----------------------------------------------------------------------------
45
46
#ifndef Xyce_ScalingVars_h
47
#define Xyce_ScalingVars_h
48
49
// ---------- Standard Includes ----------
50
#ifdef Xyce_DEBUG_DEVICE
51
#include<iostream>
52
#endif
53
54
namespace
Xyce {
55
namespace
Device {
56
57
// ---------- Xyce Includes ----------
58
59
// ---------- Forward Declarations ----------
60
61
//-----------------------------------------------------------------------------
62
// Class : ScalingVars
63
// Purpose :
64
// Special Notes :
65
// Creator : Eric Keiter, SNL, Parallel Computational Sciences
66
// Creation Date : 3/04/08
67
//-----------------------------------------------------------------------------
68
class
ScalingVars
69
{
70
public
:
71
ScalingVars
() :
72
x0
(1.0),
a0
(1.0),
T0
(1.0),
V0
(1.0),
73
rV0
(1.0),
C0
(1.0),
D0
(1.0),
u0
(1.0),
74
R0
(1.0),
rR0
(1.0),
t0
(1.0),
E0
(1.0),
75
F0
(1.0),
J0
(1.0),
L0
(1.0),
k0
(1.0),
76
rt0
(1.0),
rk0
(1.0)
77
{};
78
79
public
:
80
double
x0
;
// distance scaling (cm)
81
double
a0
;
// area scaling (cm^2)
82
double
T0
;
// temperature scaling (K)
83
double
V0
;
// electrostatic potential scaling (V)
84
double
rV0
;
// reciprocal of V0
85
double
C0
;
// concentration scaling (cm^-3);
86
double
D0
;
// diffusion coefficient scaling (cm^2/s)
87
double
u0
;
// mobility coefficient scaling (cm^2/V/s)
88
double
R0
;
// recombination rate scaling (cm^-3/s)
89
double
rR0
;
// reciprocal of R0
90
double
t0
;
// time scaling (s)
91
double
E0
;
// electric field scaling (V/s)
92
double
F0
;
// particle flux scaling (cm^-2/s)
93
double
J0
;
// current density scaling (A/cm^2)
94
double
L0
;
// Laplacian scaling constant
95
96
double
k0
;
97
double
rt0
;
98
double
rk0
;
99
100
protected
:
101
102
private
:
103
104
};
105
106
#ifdef Xyce_DEBUG_DEVICE
107
//-----------------------------------------------------------------------------
108
// Function : ScalingVars::operator<<
109
// Purpose : "<<" operator
110
// Special Notes :
111
// Scope : public
112
// Creator : Eric R. Keiter, SNL, Parallel Computational Sciences
113
// Creation Date : 11/15/09
114
//-----------------------------------------------------------------------------
115
inline
std::ostream &
operator<<
(std::ostream & os,
const
ScalingVars
& scaleVars)
116
{
117
os <<
"\n\n-----------------------------------------"
<< std::endl;
118
os <<
"\tPDE Scaling Vars:\n"
;
119
//os << "\t\tdefad = " << scaleVars. <<"\n";
120
121
os <<
" x0 = "
<< scaleVars.
x0
<<
"\n"
;
// distance scaling (cm)
122
os <<
" a0 = "
<< scaleVars.
a0
<<
"\n"
;
// area scaling (cm^2)
123
os <<
" T0 = "
<< scaleVars.
T0
<<
"\n"
;
// temperature scaling (K)
124
os <<
" V0 = "
<< scaleVars.
V0
<<
"\n"
;
// electrostatic potential scaling (V)
125
os <<
" rV0 = "
<< scaleVars.
rV0
<<
"\n"
;
// reciprocal of V0
126
os <<
" C0 = "
<< scaleVars.
C0
<<
"\n"
;
// concentration scaling (cm^-3)
127
os <<
" D0 = "
<< scaleVars.
D0
<<
"\n"
;
// diffusion coefficient scaling (cm^2/s)
128
os <<
" u0 = "
<< scaleVars.
u0
<<
"\n"
;
// mobility coefficient scaling (cm^2/V/s)
129
os <<
" R0 = "
<< scaleVars.
R0
<<
"\n"
;
// recombination rate scaling (cm^-3/s)
130
os <<
" rR0 = "
<< scaleVars.
rR0
<<
"\n"
;
// reciprocal of R0
131
os <<
" t0 = "
<< scaleVars.
t0
<<
"\n"
;
// time scaling (s)
132
os <<
" E0 = "
<< scaleVars.
E0
<<
"\n"
;
// electric field scaling (V/s)
133
os <<
" F0 = "
<< scaleVars.
F0
<<
"\n"
;
// particle flux scaling (cm^-2/s)
134
os <<
" J0 = "
<< scaleVars.
J0
<<
"\n"
;
// current density scaling (A/cm^2)
135
os <<
" L0 = "
<< scaleVars.
L0
<<
"\n"
;
// Laplacian scaling constant
136
137
os <<
" k0 = "
<< scaleVars.
k0
<<
"\n"
;
138
os <<
" rt0 = "
<< scaleVars.
rt0
<<
"\n"
;
139
os <<
" rk0 = "
<< scaleVars.
rk0
<<
"\n"
;
140
141
os << Xyce::section_divider << std::endl;
142
os << std::endl;
143
144
return
os;
145
}
146
147
#endif
148
149
}
// namespace Device
150
}
// namespace Xyce
151
152
typedef
Xyce::Device::ScalingVars
N_DEV_ScalingVars
;
153
154
#endif
155
src
DeviceModelPKG
TCADModels
include
N_DEV_ScalingVars.h
Generated on Mon Mar 24 2014 10:54:39 for Xyce by
1.8.3.1