ArrayIndexOutOfBound

Hi,

I am running my java code then its giving error " java.lang.ArrayIndexOutOfBoundsException: 6".................can some one help me to solve this problem.

package Chemplace1;

public class Chemplace1 {

private static final float Pwf = 1000;

private static final float Pi = 500;

private static final float u = 500;

static float ans=0,k=1,delr=5; static double delt=1,rw=5;// ***********change**************

static double fie=0.3;

static public float A1(int i) // 1/delr^2

{

ans = 1/(delr*delr);

return(ans);

}

static public float A2(float r[], int i)// ((1/delr^2)+1/(ri*delr))

{

ans = ((1/(delr*delr))+(r*(delr)));

return(ans);

}

static public float A3(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],int i) // krw/meuw +kro/meuo+krg/meug

{

ans = k*((3*(krw+krw[i-1])/(meuw+meuw[i-1]))+(3*(kro+kro[i-1])/(meuo+meuo[i-1]))+(3*(krg+krg[i-1])/(meug+meug[i-1])));

return(ans);

}

static public float A4(float kro[], float meuo[],float krg[], float meug[],int i)// kro/meuo+krg/meug

{

ans = k*((3*(kro+kro[i-1])/(meuo+meuo[i-1]))+(3*(krg

+krg[i-1])/(meug+meug[i-1])));

return(ans);

}

static public float A5(float krg[], float meug[],int i)// krg/meug

{

ans = k*((3*(krg+krg[i-1])/(meug+meug[i-1])));

return(ans);

}

static public float A6(float krw[], float meuw[],int i)// k*krw/meuw

{

ans = k*((3*(krw+krw[i-1])/(meuw+meuw[i-1])));

return(ans);

}

static public float A(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],float r[], int i)

{

ans = A2(r, i)*A3(krw, meuw, kro, meuo,krg, meug, i);

return(ans);

}

static public float B(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],float r[], int i)

{

ans = A2(r, i)*A3(krw, meuw, kro, meuo,krg, meug, i)+A1(i)*A3(krw, meuw, kro, meuo,krg, meug, i);

return(ans);

}

static float C(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],int i)

{

ans = A1(i)*A3(krw, meuw, kro, meuo,krg, meug, i);

return(ans);

}

static float D1(float kro[], float meuo[],float krg[], float meug[],float r[], int i)

{

ans = A2(r, i)*A4(kro, meuo,krg, meug, i);

return(ans);

}

static float D2( float kro[], float meuo[],float krg[], float meug[],float r[], int i)

{

ans = A2(r, i)*A4(kro, meuo,krg, meug, i)+A1(i)+A4(kro, meuo,krg, meug, i);

return(ans);

}

static float D3(float kro[], float meuo[],float krg[], float meug[],int i)

{

ans = A1(i)*A4(kro, meuo,krg, meug, i);

return(ans);

}

static float D4(float krg[], float meug[],float r[], int i)

{

ans = A2(r, i)*A5(krg, meug, i);

return(ans);

}

static float D5(float krg[], float meug[],float r[], int i)

{

ans = A2(r, i)+A1(i)*A5(krg, meug, i);

return(ans);

}

static float D6(float krg[], float meug[],int i)

{

ans= A1(i)*A5(krg, meug,i);

return(ans);

}

static float fn_c_mat(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],float A1,float A2,float A3,float A4,float A5,float A, float B, float C, float r[], float pw[], int i)

{

ans = A(krw, meuw,kro, meuo, krg, meug, r, i)*pw[i-1]-B(krw, meuw,kro, meuo, krg, meug, r, i)*pw+C(krw, meuw,kro, meuo, krg, meug,i)*pw[i-1];

return(ans);

}

static float fn_sub_dia(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],float r[], int i)

{

ans = A(krw, meuw,kro, meuo, krg, meug, r, i);

return(ans);

}

static float fn_dia(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],float r[], int i)

{

ans = B(krw, meuw,kro, meuo, krg, meug, r, i);

return(ans);

}

static float fn_sup_dia(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],int i)

{

ans = C(krw, meuw,kro, meuo, krg, meug, i);

return(ans);

}

static float fn_rhs(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],float pco[], float pcg[],float r[], int i)

{

if (i==1)

ans = u-(D1(kro, meuo, krg, meug, r, i)*pco[i+1]+D2(kro, meuo, krg, meug, r, i)*pco+D3(kro, meuo, krg, meug, i)*pco[i-1]+D4(krg, meug, r, i)*pcg[i+1]+D5( krg, meug,r,i)*pcg+D6(krw, meuw, i)*pcg[i-1]);

else

ans = -(D1(kro, meuo, krg, meug, r, i)*pco[i+1]+D2(kro, meuo, krg, meug, r, i)*pco+D3(kro, meuo, krg, meug, i)*pco[i-1]+D4(krg, meug, r, i)*pcg[i+1]+D5( krg, meug,r,i)*pcg+D6(krw, meuw, i)*pcg[i-1]);

return(ans);

}

static float ta_dia(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],float r[], int i)

{

ans = fn_dia(krw, meuw,kro, meuo, krg, meug, r, i)-( fn_sub_dia(krw, meuw,kro, meuo, krg, meug, r, i)/fn_dia(krw, meuw,kro, meuo, krg, meug, r, i-1) *fn_sup_dia(krw, meuw,kro, meuo, krg, meug, i-1));

return(ans);

}

static float ta_rhs(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],float pco[], float pcg[], float r[], int i)

{

ans = fn_rhs(krw, meuw,kro, meuo, krg, meug, pco,pcg, r, i)-( fn_sub_dia(krw, meuw,kro, meuo, krg, meug, r, i)/fn_dia(krw, meuw,kro, meuo, krg, meug, r, i-1)*fn_rhs(krw, meuw,kro, meuo, krg, meug, pco,pcg, r, i-1));

return(ans);

}

static float back_substn(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],float ta_rhs[],float pco[],float pcg[], float pw[],float r[], int i)

{

ans = (ta_rhs(krw, meuw,kro, meuo, krg, meug, pco,pcg, r, i)-fn_sup_dia(krw, meuw,kro, meuo, krg, meug, i)*pw[i+1])/ta_dia(krw, meuw,kro, meuo, krg, meug, r, i);

return(ans);

}

static float sw(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],float ta_rhs[],float pw[],float sw[],float r[],int i)

{

ans = sw+(float)((delt/fie)*(A2(r, i)*A6(krw,meuw, i)*pw[i+1]-(A2(r, i)*A6(krw,meuw, i)-A1(i)*A6(krw,meuw, i))*pw+A1(i)*A6(krw,meuw, i)*pw[i-1]));

return(ans);

}

static float krw(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],float ta_rhs[],float pw[],float sw[],float r[],int i)

{

ans = sw(krw,meuw,kro,meuo,krg,meug,ta_rhs,pw,sw,r,i)*sw(krw,meuw,kro,meuo,krg,meug,ta_rhs,pw,sw,r,i);

return(ans);

}

static float kro(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],float ta_rhs[],float pw[],float sw[],float r[],int i)

{

ans = (1-sw(krw,meuw,kro,meuo,krg,meug,ta_rhs,pw,sw,r,i))*(1-sw(krw,meuw,kro,meuo,krg,meug,ta_rhs,pw,sw,r,i));

return(ans);

}

static float krg(float krw[], float meuw[],float kro[], float meuo[],float krg[], float meug[],float ta_rhs[],float pw[],float r[],int i)

{

ans = 0;

return(ans);

}

static float pco(float sw[],int i)

{

ans = 0;

return(ans);

}

static float pcg(float sw[],int i)

{

ans = 0;

return(ans);

}

static float meuw(float r[],int i)

{

ans = 1;

return(ans);

}

static float meuo(float r[],int i)

{

ans = 1;

return(ans);

}

static float meug(float r[],int i)

{

ans = 1;

return(ans);

}

static float r(float rw, int i)

{

ans = rw +i*delr;

return(ans);

}

//--//

//--//

//--//

// Lid Driven Cavity problem

public static void main(String[] args) {

int i,i_max=5, NI=i_max+1;

//float ome_err_sum, max_ome_err,nt;

//float A1(),A2(),A3(),A4(),A5(),A(),B(),C(),D1(),D2(),D3(),D4(),D5(),D6(),fn_c_mat(),fn_sub_dia(),fn_dia(),fn_sup_dia(),ta_dia(),

//ta_c(),back_substn();

//FILE *p1,*p2,*p3,*p4,*p25,*p26,*p27,*p28,*p9,*p10,*p11,*p12,*p13,*p55;

//Object p1 = fopen("ugc.data","w");

//Object p2 = fopen("shi.plt","w");

//Object p3 = fopen("omega.plt","w");

//Object p4 = fopen("uv.plt","w");

//Object p13 = fopen("grid.plt","w");

//Object p55=fopen("domain.data","w");

float[] sw = new float[6];

//- Initial guess values //

float[]krw = new float[6];float[] pw = new float[6];float[]r = new float[6];float[] kro = new float[6] ; float[]krg = new float[6];float[]meuw = new float[6];float[]meuo = new float[6];float[]meug = new float[6];float[]pco = new float[6];float[]pcg = new float[6];float[]C = new float[6];float[]sub_dia = new float[6];float[]dia = new float[6];float[]sup_dia = new float[6];float[]fn_rhs = new float[6];

/*for(i=1;i<=NI;i++)

{

pw = 0;

sw =0;

krw = 0;

kro =0;

krg= 0;

meuw=1;

meuo=1;

meug=1;

pco=0;

pcg=0;

}

*/

//- Solution -//

float nt=1,sum_ome_err=0;

do

{

if(nt*delt>=10.0)//********************change***************

break;

//- pw at Boundaries //

for(i=1;i<=NI;i++)

{

//float temp = pw;

if (i==1)

pw = Pwf;// Left wall

if (i==NI)

pw = Pi; // Right wall

krw=(float) 0.1;

kro=(float) 0.1;

krg=0;

pco=0;

pcg=0;

//sum_ome_err = (float) (sum_ome_err+(pw-temp));

}

for(i=0;i<=i_max;i++)

{

r=r((float) rw,i);

}

// Tri - Diagonal matrix //

for(i=1;i<=NI-3;i++)

sub_dia= fn_sub_dia(krw,meuw,kro,meuo,krg,meug,r,i);//sub-diagonal

for(i=1;i<=NI-2;i++)

dia= fn_dia(krw, meuw,kro,meuo,krg,meug,r,i);//diagonal

for(i=1;i<=NI-3;i++)

sup_dia= fn_sup_dia(krw, meuw,kro,meuo,krg,meug,i);//super diagonal

for(i=1;i<=NI-2;i++)

fn_rhs= fn_rhs(krw, meuw,kro,meuo,krg,meug,pco,pcg,r,i);//rhs

///- end of TDM -//

for(i=2;i<=NI-2;i++)

{

dia = ta_dia(krw, meuw,kro,meuo,krg,meug,r,i);// diagonal

}

for(i=2;i<=NI-2;i++)

{

C = ta_rhs(krw, meuw,kro, meuo,krg,meug,pco,pcg,r,i);// RHS known values

}

System.out.println("ram");

//-- Solution - Back substitution -//

for(i=NI-2;i>=1;i--)

pw[i+1] = back_substn(krw, meuw,kro, meuo,krg,meug,C,pco,pcg,pw,r,i);

// end Ist step of ADI 'for' loop ie. 'j' rows sweep (NI-2) times

for(i=NI-2;i<=1;i--)

{

sw[i+1] =sw(krw, meuw,kro, meuo,krg,meug,C,pw,sw,r,i) ;

krw[i+1]=sw*sw;

kro[i+1]=(1-sw)*(1-sw);

krg=0;

pco=0;

pcg=0;

}

// velcoity vectors//

/*

for(i=NI-2;i<=1;i--)

sw[i+1] =sw(krw, meuw,kro, meuo,krg,meug,ta_rhs,pw,sw,r,i) ;

*/

//-//

System.out.println(sum_ome_err);

if( nt>40&&nt % 51==1)

{

//p2 = fopen("shi.plt","w");

// stream function -'shi.plt'

//fprintf(p2,"VARIABLES=\"X\",",\"S\"\nZONE T =BLOCK1 I=%d,J=%d,F=POINT\n",NI);

for(i=1;i<=NI;i++)

{

//fprintf(p2,"%f\t%f\t%f\n",x[i-1],y[j-1],sw);

}

//Object p25 = fopen("inputshi.data","w");

//Object p26 = fopen("inputome.data","w");

//Object p27 = fopen("inputu.data","w");

//Object p28 = fopen("inputv.data","w");

for(i=1;i<=NI;i++)

{

System.out.println(pw);

//fprintf(p25,"%f\t",pw);

//fprintf(p26,"%f\t",r);

//fprintf(p27,"%f\t",Sw);

//fprintf(p28,"%f\t",vol);

}

//fclose(p25);

//fclose(p26);

//fclose(p27);

//fclose(p28);

//fclose(p2);

}

// End of one time step calculations --//

nt=nt+1;

}while(nt>=5);//nt<=ntime&&prk!=1);// pseudo transient time step - total time step

////

//Results //

//printf("\nn=%d\t shi_min=%f\tRe=%f\nnj=%d,ni=%d\ndely=%f\tdelx=%f\tstep=%d\n",n,shi_max,Re,NJ,NI,dely,delx,step);

//--Geometric centre line u- velocity and v - velocity //

// vorticity - 'pw.plt'

}

}

[12686 byte] By [paswana] at [2007-11-27 8:39:41]
# 1

Welcome to our forum. A couple of suggestions to help you increase your chances of getting a useful response.

1) I suggest that any time you are new somewhere that you learn the rules and practices before jumping in. You will find helpful suggestions on how to post here:

http://forum.java.sun.com/thread.jspa?threadID=5187816

Most important, I think is to learn how to use code tags. They can make your posted code much more readable. I for one refuse to (and am not able to) read large code files posted without code tags. It is just too much of a headache.

2) Give all the important information and leave out the extraneous. Important info includes the full text of your error message and where in your code it points to. Determining what is extraneous is a judgement call, and you'll just have to do your best. I do know that the shorter the post, the greater the likelihood someone will read it. But on the other hand, if its too short, then it will lack important info. Again, this is something you'll just have to learn with experience.

3) It is often helpful to be sure that your posted code is the smallest that will compile on its own and demonstrate the problem. It's called an SSCCE. Have a look here for more detail:

http://homepage1.nifty.com/algafield/sscce.html

4) Please tell us what your code is supposed to do. What is its main purpose? what are the major data structures and oop designs present? etc... Give us important detail, leave out extraneous (again, a judgement call). From your posting though, I have no idea of what this code is supposed to do. You pass a whole bunch of arrays to static functions, and that worries me about the program's design.

Try to put as much effort into formulating and writing your question as you'd want one of us in answering it.

Good luck!

petes1234a at 2007-7-12 20:37:43 > top of Java-index,Desktop,Core GUI APIs...