48 #include <Xyce_config.h>
53 #include <N_UTL_Misc.h>
67 #include <N_ERH_ErrorMgr.h>
70 #include <N_IO_CmdParse.h>
89 pauseSetAtZero(false),
91 userSpecified_startingTimeStep(1.0e-10),
93 maxTimeStepGiven(false),
94 userSpecMinTimeStep(0.0),
95 userSpecMinTimeStepGiven(false),
96 constantStepSize(false),
97 useDeviceTimeStepMax(true),
98 restartingIntegrationFromSSS(false),
103 minTimeStepsBPGiven(false),
106 errorAnalysisOption(0),
109 TimeStepLimitedbyBP(false),
112 errorAnalysisOptionResetIter(0),
113 timestepsReversal(false),
114 testFirstStep(false),
120 relErrorTolGiven(false),
121 errTolAcceptance(1.0),
135 #ifdef Xyce_DEBUG_TIME
141 restartTimeStepScale(0.005),
143 nlNearConvFlag(false),
144 nlSmallUpdateFlag(true),
159 morSaveRedSys(false),
160 morCompOrigTF(false),
169 morScaleFactor1(0.01),
170 morSparsificationType(0),
171 outputInterpMPDE(true),
172 interpOutputFlag(true),
174 saveTimeStepsFlag(false),
176 minTimeStepRecoveryCounter(0),
180 historyTrackingDepth(25)
185 #ifdef Xyce_DEBUG_TIME
218 os <<
"\n" << std::endl;
219 os << Xyce::section_divider << std::endl;
220 os <<
"\n***** Time Integration solver options:\n" << std::endl;
224 os <<
"\tAnalysis:\t\t\tTRANSIENT" << std::endl
225 <<
"\tInitial Time (sec):\t\t" <<
initialTime << std::endl
226 <<
"\tFinal Time (sec):\t\t" <<
finalTime << std::endl
230 <<
"\ttStart (initial outputTime):\t" <<
tStart << std::endl;
235 os <<
"\tTime Integration method:\tBACKWARD EULER" << std::endl;
239 os <<
"\tTime Integration method:\tBACKWARD DIFFERENTIATION ORDER 2" << std::endl;
243 os <<
"\tTime Integration method:\tBACKWARD DIFFERENTIATION ORDER 15" << std::endl;
247 os <<
"\tTime Integration method:\tGEAR 12" << std::endl;
251 os <<
"\tTime Integration method:\tONESTEP" << std::endl;
255 os <<
"\tTime Integration method:\tTRAPEZOIDAL" << std::endl;
259 os <<
"\tTime Integration method:\tVARIABLE THETA" << std::endl;
263 os <<
"\tTime Integration method:\tA-CONTRACTIVE order 2" << std::endl;
267 os << (
constantStepSize ?
"\tUsing Constant Step Size" :
"\tUsing Variable Step Size") << std::endl
268 << (
useDeviceTimeStepMax ?
"\tUsing Device specified maximum stepsize" :
"\tNOT using Device specified maximum stepsize") << std::endl
269 << (
fastTests ?
"\tTime integration FastTests is ON" :
"\tTime integration FastTests is OFF") << std::endl
270 << (
nlNearConvFlag ?
"\tNL Near Convergence Flag is ON" :
"\tNL Near Convergence Flag is OFF") << std::endl
271 << (
passNLStall ?
"\tNL Pass Non-linear Stalls is ON" :
"\tNL Pass Non-linear Stalls is OFF") << std::endl;
275 os <<
"\tAnalysis:\t\t\tDC SWEEP" << std::endl
276 <<
"\tTotal DC Sweep Steps:\t\t" <<
sweepSteps << std::endl;
280 os <<
"\tabsErrorTol:\t\t\t" <<
absErrorTol << std::endl
281 <<
"\trelErrorTol:\t\t\t" <<
relErrorTol << std::endl
282 <<
"\texitTime:\t\t\t" <<
exitTime << std::endl
283 <<
"\texitStep:\t\t\t" <<
exitStep << std::endl
284 <<
"\tdebugLevel:\t\t\t" <<
debugLevel << std::endl
285 <<
"\tMaximum Order:\t\t\t" <<
maxOrder << std::endl
286 <<
"\tMinimum Order:\t\t\t" <<
minOrder << std::endl
287 <<
"\tInterpolated Output Flag:\t\t " << (
interpOutputFlag ?
"true":
"false") << std::endl
288 <<
"\tConductance Test Flag:\t\t" << (
condTestFlag ?
"true":
"false") << std::endl;
293 "\tConductance Test Device Name List is:\t\tEMPTY" << std::endl;
297 os <<
"\tConductance Test Device Name List contains: " << std::endl;
300 os <<
" \"" << *it <<
"\"";
303 os << Xyce::section_divider << std::endl;