be esim sx=21 sy=21 sz=1 s_t=1001 dt=0.0001 eps=sqr 0.05/sx/sy v=0.091/sx sxyz=sx*sy*sz sxyzt=sxyz*s_t ::rho=(FloatArray sxyz 0) ;elektrische Ladungsdichte sigma=(FloatArray sxyz 0) ;elektrische Leitfähigkeit ::phi=(FloatArray sxyz 0) ;elektrisches Potential ::E=(FloatArray sxyzt*3 0) ;elektrisches Feld ::B=(FloatArray sxyzt*3 0) ;magnetisches Feld ::j=(FloatArray sxyzt*3 0) ;elektrische Stromdichte ; for [x 0.7 0.9 0.001] ; [ setrho x 1/2 1 ; setsigma x 1/2 1 ; ] for [y 0.2 0.8 0.001] [ setsigma 0.4 y 1 ] setrho 0.4 0.2 -10 ::pal=loadPalette "eldipol.pal hideTurtle setUpdateGraph false setScreenColor 0 setFloodColor RGB 1 1 1 t=2 (VideoStart "esim.divx 25) forever [ ESimOneStep sx sy sz s_t t dt eps v rho sigma phi E B j deleteTextures clearScreen sit=sxyz*(mod t s_t) pu setxy -200 100 pd ; drawScalar rho ;phi ;rho drawVector Items sit*3 (sit+sxyz-1)*3 E pu setx 200 pd drawVector Items sit*3 (sit+sxyz-1)*3 B pu setxy -300 -200 pd drawScalar rho 200 pu setx 0 pd drawScalar phi 200 updateGraph VideoFrame if Key? [ ch=readChar if ch==Char 27 [break] ; ESimGetAllFields sx sy rho phi E B j ] t=t+1 GC ] VideoEnd be setrho x y q local [ix iy] ix=Int x*sx iy=Int y*sy rho.(ix+sx*iy)=q end be setsigma x y s local [ix iy] ix=Int x*sx iy=Int y*sy sigma.(ix+sx*iy)=s end be drawScalar s size local [m b tex] m=(min s) b=(max s)-m tex=Texture Bitmap IntArray pal.( saturateAbove 255 saturateBelow 0 IntArray (s/b*800+127)) sx fillRect List -size/2 -size/2 List size/2 size/2 ; (pr 0+s (Min s) (Max s)) end be drawVector v local [s] s=Norm3 v drawScalar s 400 end end