Browse Source

allow geometry scaling by option `scale'

pre-master-46
dwarning 13 years ago
committed by rlar
parent
commit
06c891933c
  1. 10
      src/spicelib/devices/cap/capparam.c
  2. 10
      src/spicelib/devices/dio/dioparam.c
  3. 10
      src/spicelib/devices/res/resparam.c

10
src/spicelib/devices/cap/capparam.c

@ -11,16 +11,22 @@ Modified: September 2003 Paolo Nenzi
#include "capdefs.h"
#include "ngspice/sperror.h"
#include "ngspice/suffix.h"
#include "ngspice/fteext.h"
/* ARGSUSED */
int
CAPparam(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
{
double scale;
CAPinstance *here = (CAPinstance*)inst;
NG_IGNORE(select);
if (!cp_getvar("scale", CP_REAL, &scale))
scale = 1;
switch(param) {
case CAP_CAP:
here->CAPcapac = value->rValue;
@ -41,11 +47,11 @@ CAPparam(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
here->CAPdtempGiven = TRUE;
break;
case CAP_WIDTH:
here->CAPwidth = value->rValue;
here->CAPwidth = value->rValue * scale;
here->CAPwidthGiven = TRUE;
break;
case CAP_LENGTH:
here->CAPlength = value->rValue;
here->CAPlength = value->rValue * scale;
here->CAPlengthGiven = TRUE;
break;
case CAP_M:

10
src/spicelib/devices/dio/dioparam.c

@ -12,16 +12,22 @@ Modified by Paolo Nenzi 2003 and Dietmar Warning 2012
#include "diodefs.h"
#include "ngspice/sperror.h"
#include "ngspice/suffix.h"
#include "ngspice/fteext.h"
/* ARGSUSED */
int
DIOparam(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
{
double scale;
DIOinstance *here = (DIOinstance*)inst;
NG_IGNORE(select);
if (!cp_getvar("scale", CP_REAL, &scale))
scale = 1;
switch(param) {
case DIO_AREA:
here->DIOarea = value->rValue;
@ -32,11 +38,11 @@ DIOparam(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
here->DIOpjGiven = TRUE;
break;
case DIO_W:
here->DIOw = value->rValue;
here->DIOw = value->rValue * scale;
here->DIOwGiven = TRUE;
break;
case DIO_L:
here->DIOl = value->rValue;
here->DIOl = value->rValue * scale;
here->DIOlGiven = TRUE;
break;
case DIO_M:

10
src/spicelib/devices/res/resparam.c

@ -10,14 +10,20 @@ Modified: Apr 2000 - Paolo Nenzi
#include "resdefs.h"
#include "ngspice/sperror.h"
#include "ngspice/missing_math.h"
#include "ngspice/fteext.h"
int
RESparam(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
{
double scale;
RESinstance *here = (RESinstance *)inst;
NG_IGNORE(select);
if (!cp_getvar("scale", CP_REAL, &scale))
scale = 1;
switch(param) {
case RES_TEMP:
here->REStemp = value->rValue + CONSTCtoK;
@ -38,11 +44,11 @@ RESparam(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
here->RESacresGiven = TRUE;
break;
case RES_WIDTH:
here->RESwidth = value->rValue;
here->RESwidth = value->rValue * scale;
here->RESwidthGiven = TRUE;
break;
case RES_LENGTH:
here->RESlength = value->rValue;
here->RESlength = value->rValue * scale;
here->RESlengthGiven = TRUE;
break;
case RES_SCALE:

Loading…
Cancel
Save