This is the web version of EJS interface
EJS version 4.3.2
  1. CaptureTools=true
  2. DataTools=true
  3. LanguageTools=true
  4. EmersionSupport=false
  5. UseInterpreter=true

Intro Page

    NameValueTypeDimension
    NameValueTypeDimension
    NameValueTypeDimension
    NameValueTypeDimension
    NameValueTypeDimension

    initialize

    for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ efield[i][j][0]=xmin/2+(i+0.5)*dx; efield[i][j][1]=ymin/2+(j+0.5)*dy; efield[i][j][3]=0; } } dy=ymax/n; for(int i=0;i<n;i++){ xp[i]=xmax+sizep/2; yp[i]=ymax+i*dy+w2; vp[i]=0; } changeV (); changeI(); tcount=0; dragIW=false; autocount=0;

    ode

    Indep. Var. Increment
    d x[i] /dt=vx[i]
    d vx[i] /dt=ax
    d xp[i] /dt=vp[i]
    d yp[i] /dt=vp[i]
    SolverMidPoint

    relation

    l_t="t="+dValue(t)+" s"; if(_isPlaying()){ tcount++; if(record>1){ if(auto){ V+=dv; if(V>Vmax){//<W-E){ V-=dv; // autocount++; playpause(); linkmin=1; }else{ changeV(); record=0; } } } if(tcount>tmode){ // count it with tmode time interval tcount=0; if(record>0){ Is=Icount*1.0/T*Iscale; if(auto && record==1)I=Is; else I=((record-1)*I+Is)/record;// use average value } Icount=0; record++; if(record>1){ Imeasurecount=record-1; } else Imeasurecount=0; } for(int i=0;i<5;i++){ id=(int)(Math.random()*n); if(vp[id]==0 && !moving[id]){ if(Math.random()*10<lightIntensity)show[id]=true; vp[id]=pv; count++; } } for(int i=0;i<n;i++){ if(xp[i]<x1-sizep/2){// light hit electrode xp[i]=xmax+sizep/2; yp[i]=ymax+i*dy+w2; vp[i]=0; ecount++; x[i]=x1; y[i]=y1+i*dy; if(E>W+0.005){ vx[i]=Math.sqrt(2*(E-W)*Math.random()/m); moving[i]=true; showe[i]=show[i]; showv[i]=show[i] && showV; }else show[i]=false; } if(moving[i]==true && (x[i]>x2 || x[i]<x1)){// reach electrode if(x[i]>x2)Icount++;// current add 1 moving[i]=show[i]=showe[i]=showv[i]=false; // hide it count--; // debug purpose } } control=false; }else{ control=Ipts>4; }

    chinese

    Array