Exposed more $simparams via OSDI.

initializeLimiting, epsmin, reltol, vntol, abstol
This commit is contained in:
Árpád Bűrmen 2024-11-30 22:08:37 +01:00 committed by Holger Vogt
parent cb084bcba3
commit 778b730393
1 changed files with 10 additions and 4 deletions

View File

@ -23,12 +23,15 @@
#include <string.h> #include <string.h>
#include <sys/types.h> #include <sys/types.h>
#define NUM_SIM_PARAMS 5 #define NUM_SIM_PARAMS 10
char *sim_params[NUM_SIM_PARAMS + 1] = { char *sim_params[NUM_SIM_PARAMS + 1] = {
"gdev", "gmin", "tnom", "simulatorVersion", "sourceScaleFactor", NULL}; "gdev", "gmin", "tnom",
"simulatorVersion", "sourceScaleFactor", "initializeLimiting",
"epsmin", "reltol", "vntol", "abstol",
NULL};
char *sim_params_str[1] = {NULL}; char *sim_params_str[1] = {NULL};
double sim_param_vals[NUM_SIM_PARAMS] = {0, 0, 0, 0, 0}; double sim_param_vals[NUM_SIM_PARAMS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
/* values returned by $simparam*/ /* values returned by $simparam*/
OsdiSimParas get_simparams(const CKTcircuit *ckt) { OsdiSimParas get_simparams(const CKTcircuit *ckt) {
@ -37,8 +40,11 @@ OsdiSimParas get_simparams(const CKTcircuit *ckt) {
double sourceScaleFactor = ckt->CKTsrcFact; double sourceScaleFactor = ckt->CKTsrcFact;
double gmin = ((ckt->CKTgmin) > (ckt->CKTdiagGmin)) ? (ckt->CKTgmin) double gmin = ((ckt->CKTgmin) > (ckt->CKTdiagGmin)) ? (ckt->CKTgmin)
: (ckt->CKTdiagGmin); : (ckt->CKTdiagGmin);
double initializeLimiting = (ckt->CKTmode & MODEINITJCT) ? 1 : 0;
double sim_param_vals_[NUM_SIM_PARAMS] = { double sim_param_vals_[NUM_SIM_PARAMS] = {
gdev, gmin, ckt->CKTnomTemp, simulatorVersion, sourceScaleFactor}; gdev, gmin, ckt->CKTnomTemp, simulatorVersion, sourceScaleFactor, initializeLimiting,
ckt->CKTepsmin, ckt->CKTreltol, ckt->CKTvoltTol, ckt->CKTabstol };
memcpy(&sim_param_vals, &sim_param_vals_, sizeof(double) * NUM_SIM_PARAMS); memcpy(&sim_param_vals, &sim_param_vals_, sizeof(double) * NUM_SIM_PARAMS);
OsdiSimParas sim_params_ = {.names = sim_params, OsdiSimParas sim_params_ = {.names = sim_params,
.vals = (double *)&sim_param_vals, .vals = (double *)&sim_param_vals,