50 #include <Xyce_config.h>
54 #ifdef Xyce_DEBUG_DEVICE
106 bool bsuccess =
true;
122 ExtendedString tagES = ndParam.tag ();
127 if (std::string(tagES,0,3) ==
"reg" && ndParam.
given())
134 int periodLocation = 0;
135 bool foundPeriod =
false;
136 for (
int iloc=0;iloc<tagES.size();++iloc)
138 std::string singleChar(tagES,iloc,1);
139 if (singleChar ==
".")
141 periodLocation = iloc;
149 "::processDopingParams. The region specification needs a period\n";
150 N_ERH_ErrorMgr::report( N_ERH_ErrorMgr::DEV_FATAL_0,msg);
153 std::string regionName(tagES,0,periodLocation);
155 #ifdef Xyce_DEBUG_DEVICE
158 Xyce::dout() <<
"tagES = "<< tagES;
159 Xyce::dout() <<
" regionName = "<< regionName;
160 Xyce::dout() <<
" param: " << ndParam.stringValue() << std::endl;
172 dopeInfoMap[regionName]->processParam (ndParam, param, *
this);
190 ExtendedString tagES = ndParam.tag ();
193 if (std::string(tagES,0,4) ==
"node" && ndParam.
given() )
195 int periodLocation = 5;
213 bool foundPeriod =
false;
214 for (
int iloc=0;iloc<tagES.size();++iloc)
216 std::string singleChar(tagES,iloc,1);
217 if (singleChar ==
".")
219 periodLocation = iloc;
231 "::processParams. The node specification needs a period\n";
232 N_ERH_ErrorMgr::report( N_ERH_ErrorMgr::DEV_FATAL_0,msg);
235 std::string nodeName(tagES,0,periodLocation);
236 #ifdef Xyce_DEBUG_DEVICE
239 Xyce::dout() <<
"tagES = "<< tagES << std::endl;
240 Xyce::dout() <<
"nodeName = "<< nodeName << std::endl;
252 int tagSize = tagES.size();
254 if (tagSize > periodLocation+1)
256 std::string tmpParam(tagES,periodLocation+1,tagSize);
258 if (tmpParam ==
"name")
261 ExtendedString dIName = ndParam.stringValue();
264 dINode.
eName = dIName;
265 dINode.
nName = nodeName;
273 if (tmpParam ==
"bc")
275 ExtendedString nmName = ndParam.stringValue();
277 if (nmName ==
"NEUMANN" ||
281 Xyce::dout() <<
"found a neumann. name = " << tagES << std::endl;
285 if (tmpParam ==
"side")
289 ExtendedString tmpstr = ndParam.stringValue();
296 if (tmpParam ==
"start")
298 electrodeMap[nodeName]->start = ndParam.getImmutableValue<
double>();
302 if (tmpParam ==
"end")
304 electrodeMap[nodeName]->end = ndParam.getImmutableValue<
double>();
308 if (tmpParam ==
"material")
310 ExtendedString tmpName = ndParam.stringValue();
316 if (tmpParam ==
"oxidebndryflag")
318 if (ndParam.
given() && ndParam.getImmutableValue<
int>() == 1)
324 if (tmpParam ==
"oxthick")
326 electrodeMap[nodeName]->oxthick = ndParam.getImmutableValue<
double>();
329 if (tmpParam ==
"oxcharge")
331 electrodeMap[nodeName]->oxcharge = ndParam.getImmutableValue<
double>();