better output format
This commit is contained in:
parent
bd985bc28f
commit
caf05d1fce
|
|
@ -1,4 +1,3 @@
|
|||
#include <config.h>
|
||||
#include "ngspice.h"
|
||||
#include "cktdefs.h"
|
||||
#include "ftedefs.h"
|
||||
|
|
@ -8,106 +7,110 @@
|
|||
#include "variable.h"
|
||||
|
||||
|
||||
/* The option command. Syntax is option [opt ...] [opt = val ...].
|
||||
* Val may be a string, an int, a float, or a list of the
|
||||
/* The option command. Syntax is option [opt ...] [opt = val ...].
|
||||
* Val may be a string, an int, a float, or a list of the
|
||||
* form (elt1 elt2 ...). */
|
||||
void
|
||||
com_option(wordlist *wl)
|
||||
{
|
||||
|
||||
struct variable *vars;
|
||||
|
||||
|
||||
CKTcircuit *circuit = NULL;
|
||||
|
||||
|
||||
if (!ft_curckt) {
|
||||
fprintf(cp_err, "Error: no circuit loaded\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
circuit = (ft_curckt->ci_ckt);
|
||||
|
||||
|
||||
|
||||
if (wl == NULL) {
|
||||
printf("******************************\n");
|
||||
printf("* Current simulation options *\n");
|
||||
printf("******************************\n\n");
|
||||
printf("Temperatures:\n");
|
||||
printf("Temperatures:\n");
|
||||
printf("temp = %f\n",circuit->CKTtemp);
|
||||
printf("tnom = %f\n",circuit->CKTnomTemp);
|
||||
|
||||
|
||||
printf("\nIntegration method summary:\n");
|
||||
switch (circuit->CKTintegrateMethod)
|
||||
{
|
||||
case TRAPEZOIDAL:
|
||||
printf("Integration Method = TRAPEZOIDAL\n");
|
||||
break;
|
||||
case GEAR:
|
||||
printf("Integration Method = GEAR\n");
|
||||
break;
|
||||
default:
|
||||
printf("Unknown integration method\n");
|
||||
}
|
||||
{
|
||||
case TRAPEZOIDAL:
|
||||
printf("Integration Method = TRAPEZOIDAL\n");
|
||||
break;
|
||||
case GEAR:
|
||||
printf("Integration Method = GEAR\n");
|
||||
break;
|
||||
default:
|
||||
printf("Unknown integration method\n");
|
||||
}
|
||||
printf("MaxOrder = %d\n", circuit->CKTmaxOrder);
|
||||
|
||||
printf("\nTolerances (absolute):\n");
|
||||
printf("abstol (current) = %f\n", circuit->CKTabstol);
|
||||
printf("chgtol (charge) = %f\n", circuit->CKTchgtol);
|
||||
printf("volttol (voltage) = %f\n", circuit->CKTvoltTol);
|
||||
printf("pivotabstol (pivot) = %f\n", circuit->CKTpivotAbsTol);
|
||||
|
||||
printf("\nTolerances (relative):\n");
|
||||
printf("reltol (current) = %f\n", circuit->CKTreltol);
|
||||
printf("pivotreltol (pivot) = %f\n", circuit->CKTpivotRelTol);
|
||||
|
||||
printf("\nTruncation error:\n");
|
||||
printf("\nTolerances (absolute):\n");
|
||||
printf("abstol (current) = %g\n", circuit->CKTabstol);
|
||||
printf("chgtol (charge) = %g\n", circuit->CKTchgtol);
|
||||
printf("vntol (voltage) = %g\n", circuit->CKTvoltTol);
|
||||
printf("pivtol (pivot) = %g\n", circuit->CKTpivotAbsTol);
|
||||
|
||||
printf("\nTolerances (relative):\n");
|
||||
printf("reltol (current) = %g\n", circuit->CKTreltol);
|
||||
printf("pivrel (pivot) = %g\n", circuit->CKTpivotRelTol);
|
||||
|
||||
printf("\nIteration limits:\n");
|
||||
printf("ITL1 = %d\n", circuit->CKTdcMaxIter);
|
||||
printf("ITL2 = %d\n", circuit->CKTdcTrcvMaxIter);
|
||||
printf("ITL4 = %d\n", circuit->CKTtranMaxIter);
|
||||
|
||||
printf("\nTruncation error correction:\n");
|
||||
printf("trtol = %f\n", circuit->CKTtrtol);
|
||||
#ifdef NEWTRUNC
|
||||
printf("ltereltol = %f\n", circuit->CKTlteReltol);
|
||||
printf("lteabstol = %f\n", circuit->CKTlteAbstol);
|
||||
printf("ltereltol = %g\n", circuit->CKTlteReltol);
|
||||
printf("lteabstol = %g\n", circuit->CKTlteAbstol);
|
||||
#endif /* NEWTRUNC */
|
||||
|
||||
printf("\nConductances:\n");
|
||||
printf("gmin (devices) = %f\n", circuit->CKTgmin);
|
||||
printf("diaggmin (stepping) = %f\n", circuit->CKTdiagGmin);
|
||||
printf("gshunt = %f\n", circuit->CKTgshunt);
|
||||
|
||||
|
||||
printf("delmin = %f\n", circuit->CKTdelmin);
|
||||
|
||||
|
||||
printf("\nConductances:\n");
|
||||
printf("gmin (devices) = %g\n", circuit->CKTgmin);
|
||||
printf("diaggmin (stepping) = %g\n", circuit->CKTdiagGmin);
|
||||
printf("gshunt = %g\n", circuit->CKTgshunt);
|
||||
|
||||
printf("delmin = %g\n", circuit->CKTdelmin);
|
||||
|
||||
printf("\nDefault parameters for MOS devices\n");
|
||||
printf("Default M: %f\n", circuit->CKTdefaultMosM);
|
||||
printf("Default M: %f\n", circuit->CKTdefaultMosM);
|
||||
printf("Default L: %f\n", circuit->CKTdefaultMosL);
|
||||
printf("Default W: %f\n", circuit->CKTdefaultMosW);
|
||||
printf("Default AD: %f\n", circuit->CKTdefaultMosAD);
|
||||
printf("Default AS: %f\n", circuit->CKTdefaultMosAS);
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
vars = cp_setparse(wl);
|
||||
|
||||
/* This is sort of a hassle... */
|
||||
while (vars) {
|
||||
while (vars) {
|
||||
void *s;
|
||||
switch (vars->va_type) {
|
||||
case CP_BOOL:
|
||||
case CP_BOOL:
|
||||
s = &vars->va_bool;
|
||||
break;
|
||||
case CP_NUM:
|
||||
case CP_NUM:
|
||||
s = &vars->va_num;
|
||||
break;
|
||||
case CP_REAL:
|
||||
case CP_REAL:
|
||||
s = &vars->va_real;
|
||||
break;
|
||||
case CP_STRING:
|
||||
case CP_STRING:
|
||||
s = vars->va_string;
|
||||
break;
|
||||
case CP_LIST:
|
||||
case CP_LIST:
|
||||
s = vars->va_vlist;
|
||||
break;
|
||||
default:
|
||||
s = NULL;
|
||||
default:
|
||||
s = NULL;
|
||||
}
|
||||
|
||||
|
||||
/* qui deve settare le opzioni di simulazione */
|
||||
cp_vset(vars->va_name, vars->va_type, s);
|
||||
vars = vars->va_next;
|
||||
|
|
|
|||
Loading…
Reference in New Issue