/**********************************************************
*
* This NL5 script runs demo circuits located in the Examples/Demo
* directory. For each schematic it runs Transient and/or AC response, 
* performs Transient and/or AC parameter sweep.
*
*
*  To run the script:
*
*      drag and drop this file onto NL5 icon, 
*  or
*      open NL5
*      open script window (Tools/Script)
*      open script file components.txt
*      run script
*
***********************************************************/

int i;


//=================================
  open Demo/rc;
  sleep(2000);
  tran;
  ac;
  sleep(1000);
  for( c1=10; c1>=0.01; c1/=2 ) {
    tran;
    store c1;
    ac;
    store c1;
  }
  sleep(2000);
  close;


//=================================
  open Demo/lcr;
  sleep(2000);
  tran;
  ac;
  sleep(1000);
  for( r1=1; r1<=100; r1*=2 ) {
    tran;
    store r1;
    ac;
    store r1;
  }
  sleep(2000);
  close;

//=================================
  open Demo/notch;
  sleep(2000);
  ac;
  sleep(1000);
  for( r13=100; r13<=6400; r13*=2 ) {
    ac;
    store r13;
  }
  sleep(2000);
  close;



//=================================
  open Demo/shifter;
  sleep(2000);
  ac;
  sleep(1000);
  for( c1=.1n; c1<=10n; c1*=2 ) {
    ac;
    store c1;
  }
  sleep(2000);
  close;


//=================================
  open Demo/cauer_lc;
  sleep(2000);
  ac;
  sleep(1000);
  for( c2=1; c2<=5; c2*=1.25 ) {
    ac;
    store c2;
  }
  sleep(2000);
  close;

//=================================
  open Demo/cauer;
  sleep(2000);
  ac;
  sleep(1000);
  for( c1=10n; c1<=100n; c1*=1.5 ) {
    ac;
    store c1;
  }
  sleep(2000);
  close;


//=================================
  open Demo/lc_line;
  sleep(2000);
  tran;
  sleep(1000);
  ac;
  sleep(2000);
  close;

//=================================
  open Demo/lc_line_AC;
  sleep(2000);
  tran;
  sleep(1000);
  ac;
  sleep(2000);
  close;


//=================================
  open Demo/rect;
  sleep(2000);
  tran;
  sleep(1000);
  for( r1=10; r1>=0.1; r1/=1.5 ) {
    tran;
    store r1;
  }
  sleep(2000);
  close;

//=================================
  open Demo/soft_diode;
  sleep(2000);
  tran;
  sleep(1000);
  for( D1.t=20m; D1.t<=200m; D1.t+=20m ) {
    tran;
    store D1.t;
  }
  sleep(2000);
  close;



//=================================
  open Demo/rect_3;
  sleep(2000);
  tran;
  sleep(1000);
  for( c1=1m; c1<=10m; c1*=1.5 ) {
    tran;
    store c1;
  }
  sleep(2000);
  close;



//=================================
  open Demo/12-phase;
  sleep(2000);
  tran;
  sleep(1000);
  for( w8=1; w8<=2; w8+=0.2 ) {
    tran;
    store w8;
  }
  for( w2=1; w2>=0.2; w2-=0.2 ) {
    tran;
    store w2;
  }
  sleep(1000);
  zoom 5m, 32m;
  sleep(2000);
  close;



//=================================
  open Demo/12-phase_1;
  sleep(2000);
  tran;
  sleep(2000);
  close;

//=================================
  open Demo/thyristor;
  sleep(2000);
  tran;
  sleep(1000);
  for( Y1.Delay=1.8m; Y1.Delay<=3m; Y1.Delay+=0.0002 ) {
    tran;
    store Y1.Delay;
  }
  sleep(2000);
  close;

//=================================
  open Demo/mult;
  sleep(2000);
  tran;
  sleep(1000);
  zoom 0,30;
  sleep(2000);

  v1.model=pulse;
  v1.v1=15;
  tran; 
  sleep(1000);
  zoom 0,30;
  sleep(2000);
  close;

//=================================
  open Demo/switching_caps;
  sleep(2000);
  tran;
  sleep(1000);
  zoom 0,20;
  sleep(2000);
  close;

//=================================
  open Demo/binary_caps;
  sleep(2000);
  tran;
  sleep(1000);
  zoom 0,2m;
  sleep(2000);
  close;



//=================================
  open Demo/switch_l;
  sleep(2000);
  tran;
  sleep(1000);
  for( l1=5; l1>=0.05; l1/=2. ) {
    cont;
  }
  sleep(1500);
  zoom 0,400;
  sleep(1500);
  close;


//=================================
  open Demo/boost;
  sleep(2000);
  tran;
  sleep(1500);
  ac;
  sleep(1500);
  close;


//=================================
  open Demo/buck;
  sleep(2000);
  tran;
  sleep(1500);
  ac;
  sleep(1500);
  close;



//=================================
  open Demo/uc3844;
  sleep(1500);
  close;


//=================================
  open Demo/uc3844_flyback;
  sleep(2000);
  tran;
  sleep(1000);
  zoom 100mk,100mk;
  sleep(2000);
  close;


//=================================
  open Demo/logical;
  sleep(2000);
  tran;
  sleep(2000);
  close;



//=================================
  open Demo/sos;
  sleep(2000);
  tran;
  sleep(1000);
  zoom 100,80;  
  sleep(2000);
  close;



//=================================
  open Demo/555;
  sleep(1500);
  close;


//=================================
  open Demo/555_mono;
  sleep(2000);
  tran;
  sleep(1000);
  for( c1=1e-6; c1<=10e-6; c1+=1e-6 ) {
    tran;
    store c1;
  }
  sleep(2000);
  close;

//=================================
  open Demo/555_astable;
  sleep(2000);
  tran;
  sleep(1000);
  for( c1=1e-6; c1<=10e-6; c1+=1e-6 ) {
    tran;
  }
  sleep(2000);
  close;


//=================================
  open Demo/pwm;
  sleep(2000);
  tran;
  sleep(2000);
  close;



//=================================
  open Demo/lines;
  sleep(2000);
  tran;
  ac;
  sleep(2000);
  
  double j; 
  for( j=0; j<=1; j+=0.1 ) {
    r1=50-j*45;
    r2=100+j*200;
    tran;
    ac;
  }
  sleep(2000);
  close;



//=================================
  open Demo/sweep_ac;
  sleep(2000);
  tran;
  sleep(2000);
  for( o1=0.5; o1>=0.005; o1=o1/1.5 ) {
    tran;
    store o1;
  }
  sleep(1500);
  for( o1=0.4; o1>=0.025; o1=o1/2 ) {
    ac;
    store o1;
  }
  sleep(2000);
  close;


//=================================
  open Demo/C-Code;
  sleep(2000);
  size=20;
  tran;
  sleep(2000);
  ac;
  sleep(1000);
  tran 0,6;
  sleep(1000);
  for( size=2; size<=20; size+=2 ) {
    tran 0,6;
    store size;
  }
  sleep(2000);
  close;






