You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

104 lines
1.8 KiB

/**********
Copyright 1990 Regents of the University of California. All rights reserved.
**********/
#ifndef ngspice_SENSDEFS_H
#define ngspice_SENSDEFS_H
#include "ngspice/jobdefs.h"
/* structure used to describe an Adjoint Sensitivity analysis */
typedef struct st_sens SENS_AN;
typedef struct st_devsen DevSenList;
typedef struct st_modsen ModSenList;
typedef struct st_devsen ParamSenList;
typedef struct st_nodes Nodes;
typedef struct st_output output;
struct st_sens {
int JOBtype;
JOB *JOBnextJob; /* pointer to next thing to do */
char *JOBname; /* name of this job */
DevSenList *first;
double start_freq;
double stop_freq;
int step_type;
int n_freq_steps;
CKTnode *output_pos, *output_neg;
IFuid output_src;
char *output_name;
int output_volt;
double deftol;
double defperturb;
unsigned int pct_flag :1;
};
struct st_output {
int type;
int pos, neg;
};
struct st_nodes {
int pos, neg;
};
struct st_paramsenlist {
ParamSenList *next;
int param_no;
double delta, tol;
};
struct st_modsenlist {
ModSenList *next;
int mod_no;
ParamSenList *first;
};
struct st_devsenlist {
DevSenList *next;
int dev_no;
ModSenList *first;
};
/* va, with prototypes */
extern int SENSask(CKTcircuit *,JOB *,int ,IFvalue *);
extern int SENSsetParam(CKTcircuit *,JOB *,int ,IFvalue *);
extern int sens_sens(CKTcircuit *,int);
enum {
SENS_POS = 2,
SENS_NEG,
SENS_SRC,
SENS_NAME,
};
enum {
SENS_START = 10,
SENS_STOP,
SENS_STEPS,
SENS_DECADE,
SENS_OCTAVE,
SENS_LINEAR,
SENS_DC,
SENS_DEFTOL,
SENS_DEFPERTURB,
SENS_DEVDEFTOL,
SENS_DEVDEFPERT,
SENS_TYPE,
SENS_DEVICE,
};
enum {
SENS_PARAM = 24,
SENS_TOL,
SENS_PERT,
};
#endif /*DEFS*/