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),
133 doubleDCOPAll(false),
136 #ifdef Xyce_DEBUG_TIME
142 restartTimeStepScale(0.005),
144 nlNearConvFlag(false),
145 nlSmallUpdateFlag(true),
160 morSaveRedSys(false),
161 morCompOrigTF(false),
170 morScaleFactor1(0.01),
171 morSparsificationType(0),
172 outputInterpMPDE(true),
173 interpOutputFlag(true),
175 saveTimeStepsFlag(false),
177 minTimeStepRecoveryCounter(0),
181 historyTrackingDepth(25)
186 #ifdef Xyce_DEBUG_TIME
219 os <<
"\n" << std::endl;
220 os << Xyce::section_divider << std::endl;
221 os <<
"\n***** Time Integration solver options:\n" << std::endl;
225 os <<
"\tAnalysis:\t\t\tTRANSIENT" << std::endl
226 <<
"\tInitial Time (sec):\t\t" <<
initialTime << std::endl
227 <<
"\tFinal Time (sec):\t\t" <<
finalTime << std::endl
231 <<
"\ttStart (initial outputTime):\t" <<
tStart << std::endl;
236 os <<
"\tTime Integration method:\tBACKWARD EULER" << std::endl;
240 os <<
"\tTime Integration method:\tBACKWARD DIFFERENTIATION ORDER 2" << std::endl;
244 os <<
"\tTime Integration method:\tBACKWARD DIFFERENTIATION ORDER 15" << std::endl;
248 os <<
"\tTime Integration method:\tGEAR 12" << std::endl;
252 os <<
"\tTime Integration method:\tONESTEP" << std::endl;
256 os <<
"\tTime Integration method:\tTRAPEZOIDAL" << std::endl;
260 os <<
"\tTime Integration method:\tVARIABLE THETA" << std::endl;
264 os <<
"\tTime Integration method:\tA-CONTRACTIVE order 2" << std::endl;
268 os << (
constantStepSize ?
"\tUsing Constant Step Size" :
"\tUsing Variable Step Size") << std::endl
269 << (
useDeviceTimeStepMax ?
"\tUsing Device specified maximum stepsize" :
"\tNOT using Device specified maximum stepsize") << std::endl
270 << (
fastTests ?
"\tTime integration FastTests is ON" :
"\tTime integration FastTests is OFF") << std::endl
271 << (
nlNearConvFlag ?
"\tNL Near Convergence Flag is ON" :
"\tNL Near Convergence Flag is OFF") << std::endl
272 << (
passNLStall ?
"\tNL Pass Non-linear Stalls is ON" :
"\tNL Pass Non-linear Stalls is OFF") << std::endl;
276 os <<
"\tAnalysis:\t\t\tDC SWEEP" << std::endl
277 <<
"\tTotal DC Sweep Steps:\t\t" <<
sweepSteps << std::endl;
281 os <<
"\tabsErrorTol:\t\t\t" <<
absErrorTol << std::endl
282 <<
"\trelErrorTol:\t\t\t" <<
relErrorTol << std::endl
283 <<
"\texitTime:\t\t\t" <<
exitTime << std::endl
284 <<
"\texitStep:\t\t\t" <<
exitStep << std::endl
285 <<
"\tdebugLevel:\t\t\t" <<
debugLevel << std::endl
286 <<
"\tMaximum Order:\t\t\t" <<
maxOrder << std::endl
287 <<
"\tMinimum Order:\t\t\t" <<
minOrder << std::endl
288 <<
"\tInterpolated Output Flag:\t\t " << (
interpOutputFlag ?
"true":
"false") << std::endl
289 <<
"\tConductance Test Flag:\t\t" << (
condTestFlag ?
"true":
"false") << std::endl;
294 "\tConductance Test Device Name List is:\t\tEMPTY" << std::endl;
298 os <<
"\tConductance Test Device Name List contains: " << std::endl;
301 os <<
" \"" << *it <<
"\"";
304 os << Xyce::section_divider << std::endl;