/* * @(#)Graph.java 1.9 99/08/04 * MODIFS PYL juillet Aout 2005!!!!!!!!!! * * This software is not designed or intended for use in on-line control of * aircraft, air traffic, aircraft navigation or aircraft communications; or in * the design, construction, operation or maintenance of any nuclear * facility. Licensee represents and warrants that it will not use or * redistribute the Software for such purposes. */ //javac guiChal.java Kul.java ;java guiChal //javac guiChal.java Kul.java; open index.html import java.util.*; import java.awt.*; import java.applet.Applet; import java.awt.event.*; import javax.swing.*; import java.io.*; class Kul extends Thread { public double t; private double dt=0; public double dx,dy; public double T[][]; public double To[][]; public double Ti[][]; public double T0=0,T1; public double Tx0,Tx1,T0y,T1y; public boolean slopex,slopey,mixtex,mixtey,valx,valy,symx,symy; public double Ts=0; public double q=0; public double Bi=0; public double omega; public int n; // public tridiag tridiagC; boolean pleaseWait = true; private int property; public int getProperty ( ){ return property; } public void setProperty (int value){ property = value; } public void setdt (double value){ dt = value;System.out.println("------------>>>dt"+dt); } public double getdt ( ){/*System.out.println("-------------<<<dt"+dt);*/return dt; } public void Kul( ) { } public void cl0000( ) { Tx1=0; Tx0=0; T1y=0; T0y=0; Ts=0; q=0; slopex=false; mixtex=false; valx = true; symx =false; slopey=false; mixtey=false; valy = true; symy =false; } public void cl1000( ) { Tx0=1; T1y=0; Tx1=0; T0y=0; Ts=0; q=0; slopex=false; mixtex=false; valx = true; symx =false; slopey=false; mixtey=false; valy = true; symy =false; } public void cl0100( ) { Tx0=0; T1y=1; Tx1=0; T0y=0; Ts=0; q=0; slopex=false; mixtex=false; valx = true; symx =false; slopey=false; mixtey=false; valy = true; symy =false; } public void cl0010( ) { Tx0=0; T1y=0; Tx1=1; T0y=0; Ts=0; q=0; slopex=false; mixtex=false; valx = true; symx =false; slopey=false; mixtey=false; valy = true; symy =false; } public void clt0( ) { Tx0=0; T1y=0; Tx1=0; T0y=0; Ts=0; Ts=1; q=0; tridiag.slope=false; tridiag.mixte=false; tridiag.val = true; tridiag.sym =false; } public void clB1( ) { Tx0=0; T1y=1; Tx1=1; T0y=1; Ts=0; q=0; slopex= false; mixtex= false; valx = true; symx = false; slopey= false; mixtey= true; valy = false; symy =false; } public void clBqs( ) { Tx0=0; T1y=1; Tx1=1; T0y=1; Ts=0; q=0; slopex= true; mixtex= false; valx = false; symx = true; slopey= false; mixtey= true; valy = false; symy =false; } public void prems() { int i,j; //pleaseWait = true; t=0; n=100;//370; dx=1./n; dy=1./n; omega=0; System.out.println(" initialize "+dx); To = new double[n+1][n+1]; T = new double[n+1][n+1]; Ti = new double[n+1][n+1]; for(i=0;i<=n;i++){ for(j=0;j<=n;j++) {To[i][j]=0;T[i][j]=To[i][j];Ti[i][j]=To[i][j];}} tridiag.n=n; tridiag.prems(); } public void run() { int i,j,it=0; double phase=0; System.out.println("params " + dt + " " +dx +" dt/dx^2="+(dt/dx/dx)); while (!interrupted()) { //System.out.println(pleaseWait); tridiag.dt=dt; if(dt>0){ phase=phase+omega*dt; t=t+dt; tridiag.dx=dx; tridiag.slope=slopex; tridiag.mixte=mixtex; tridiag.val =valx; tridiag.sym =symx; //for(i=0;i<=n;i++){Ti[i][0]=Tx0;} for(j=1;j<n;j++){ tridiag.u0=T0y; tridiag.un=T1y; tridiag.q=q; tridiag.Bi=Bi; for(i=1;i<n;i++){ tridiag.uo[i]=To[i][j]; tridiag.s[i]=deriv.d2y(n,To,i,j,dy);} tridiag.inverse(); for(i=0;i<=n;i++){ Ti[i][j]=tridiag.u[i];} T[0][j]=Ti[0][j]; T[n][j]=Ti[n][j]; } // tridiag.dx=dy; tridiag.slope=slopey; tridiag.mixte=mixtey; tridiag.val =valy; tridiag.sym =symy; // for(i=1;i<n;i++){ tridiag.u0=Tx0+Ts*Math.sin(phase); tridiag.un=Tx1; tridiag.q=q; tridiag.Bi=Bi; //if((i*dx>0.8)&&(i*dx<.9)){tridiag.Bi=1000000;} //if((i*dx<0.5)){tridiag.Bi=1000000:} for(j=1;j<n;j++){ tridiag.uo[j]=Ti[i][j]; tridiag.s[j]=deriv.d2x(n,Ti,i,j,dx);} tridiag.inverse(); for(j=0;j<=n;j++){T[i][j]=tridiag.u[j];} } T[0][0]=(T[0][1]+T[1][0])/2; T[n][0]=(T[n][1]+T[n-1][0])/2; T[0][n]=(T[0][n-1]+T[1][n])/2; T[n][n]=(T[n][n-1]+T[n-1][n])/2; To=T; } try { Thread.sleep(10); } catch (InterruptedException e) {} // Do work // Check if should wait synchronized (this) { while (pleaseWait) { try { wait(); } catch (Exception e) {} } } } } }