jakarta | Bonjour,
Dans le cadre d'un projet scolaire nous devons réaliser l'étude de l'impact du déplacement d'une source chauffante sur un corps. Nous avons écrit le programme, et nous voulons sortir comme résultat un tableau. Cependant, la compilation est défaillante (pas de bug detecté mais aucun résultat ne s'affiche) et nous ne comprenons pas pourquoi.
Voici le code :
Code :
- package calcnum;
- /**
- *
- * @author ELEVE
- */
- public class CalcNum {
- public static float[][] calculTemperature(float distance,float epaisseur, float rau, float lambda, float capaciteCalo, float hConduction, float tempAmbiant, float fluxChaleur)
- {
- float deltaT=0.2f; float deltaX=1/5000f; float deltaY=1/1000f; float vitesse=0.005f;
- float rX=lambda*deltaT/(rau*capaciteCalo*deltaX*deltaX); float rY=lambda*deltaT/(rau*capaciteCalo*deltaY*deltaY);
- int ligneT = (int)(distance/deltaX);
- int colonneT = (int)(epaisseur/deltaY);
- float[][] T=new float[ligneT][colonneT];
- float[][] Tn=new float[ligneT][colonneT];
- float temps=0;
- for(int i=0; i<ligneT;i++){
-
- for(int j=0;j<colonneT;j++){
- T[i][j]=tempAmbiant;
- Tn[i][j]=tempAmbiant;
- }
- }
- while(temps<=140){
-
- Tn[0][0]=T[0][0]+rX*(2*T[1][0]-2*T[0][0]-hConduction*2*deltaX*(T[0][0]-tempAmbiant)/lambda)+rY*(2*T[0][1]-2*T[0][0]-hConduction*2*deltaY*(T[0][0]-tempAmbiant)/lambda);
- Tn[ligneT-1][0]=T[ligneT-1][0]+rX*(2*T[ligneT-2][0]-2*T[ligneT-1][0]-hConduction*2*deltaX*(T[ligneT-1][0]-tempAmbiant)/lambda)+rY*(2*T[ligneT-1][1]-2*T[ligneT-1][0]-hConduction*2*deltaY*(T[ligneT-1][0]-tempAmbiant)/lambda);
- if(temps>20){ //zone 8 sans chauffage
- Tn[0][colonneT-1]=T[0][colonneT-1]+rX*(2*T[1][colonneT-1]-2*T[0][colonneT-1]-hConduction*2*deltaX*(T[0][colonneT-1]-tempAmbiant)/lambda)+rY*(2*T[0][colonneT-2]-2*T[0][colonneT-1]-hConduction*2*deltaY*(T[0][colonneT-1]-tempAmbiant)/lambda);
- }
- else if (temps<=20){ //zone 8 avec chauffage
- Tn[0][colonneT-1]=T[0][colonneT-1]+rX*(2*T[1][colonneT-1]-2*T[0][colonneT-1]-hConduction*2*deltaX*(T[0][colonneT-1]-tempAmbiant)/lambda)+rY*(2*T[0][colonneT-2]-2*T[0][colonneT-1]+2*deltaY*fluxChaleur/lambda);
- }
-
- if ( temps<120){ //zone 9 sans chauffage
- Tn[ligneT-1][colonneT-1]=T[ligneT-1][colonneT-1]+rX*(2*T[ligneT-2][colonneT-1]-2*T[ligneT-1][colonneT-1]-hConduction*2*deltaX*(T[ligneT-1][colonneT-1]-tempAmbiant)/lambda)+rY*(2*T[ligneT-1][colonneT-2]-2*T[ligneT-1][colonneT-1]-hConduction*2*deltaY*(T[ligneT-1][colonneT-1])/lambda);
- }
-
- else if (temps>=120){ //zone 9 avec chauffage
- Tn[ligneT-1][colonneT-1]=T[ligneT-1][colonneT-1]+rX*(2*T[ligneT-2][colonneT-1]-2*T[ligneT-1][colonneT-1]-hConduction*2*deltaX*(T[ligneT-1][colonneT-1]-tempAmbiant)/lambda)+rY*(2*T[ligneT-1][colonneT-2]-2*T[ligneT-1][colonneT-1]+2*deltaY*fluxChaleur/lambda);
- }
-
- for(int i=0; i<ligneT;i++){
- if(i<ligneT-1 && i>=1){ //zone3
-
- Tn[i][0]=T[i][0]+rX*(T[i-1][0]+T[i+1][0]-2*T[i][0])+rY*(2*T[i][1]-2*T[i][0]-(hConduction*2*deltaY*(T[i][0]-tempAmbiant))/lambda);
- }
- else if( i>=(vitesse*temps+epaisseur)/deltaX && i<=(vitesse*temps+2*epaisseur)/deltaX){ // zone 7 avec chauffage
- Tn[i][colonneT-1]=T[i][colonneT-1]+rX*(T[i-1][colonneT-1]+T[i+1][colonneT-1]-2*T[i][colonneT-1])+rY*(2*T[i][colonneT-2]-2*T[i][colonneT-1]+2*deltaY*fluxChaleur/lambda);
- }
- else if(i<(vitesse*temps+epaisseur)/deltaX && i>(vitesse*temps+2*epaisseur)/deltaX){ //zone 7 sans chauffage
- Tn[i][colonneT-1]=T[i][colonneT-1]+rX*(T[i-1][colonneT-1]+T[i+1][colonneT-1]-2*T[i][colonneT-1])+rY*(2*T[i][colonneT-2]-2*T[i][colonneT-1]-hConduction*2*deltaY*(T[i][colonneT-1]-tempAmbiant)/lambda);
- }
- for(int j=0;j<colonneT;j++){
-
- if( j<colonneT-1 && j>=1){ //zone2
- Tn[0][j]=T[0][j]+rX*(2*T[1][j]-2*T[0][j]-hConduction*2*deltaX*(T[0][j]-tempAmbiant)/lambda)+rY*(T[0][j-1]+T[0][j+1]-2*T[0][j]);
- }
- else if(j<colonneT-1 && j>=1){ //zone 4
- Tn[ligneT-1][j]=T[ligneT-1][j]+rX*(2*T[ligneT-2][j]-2*T[ligneT-1][j]-hConduction*2*deltaX*(T[ligneT-1][j]-tempAmbiant)/lambda)+rY*(T[ligneT-1][j+1]+T[ligneT-1][j-1]-2*T[ligneT-1][j]);
- }
-
- else if(i>=1 && i<= ligneT-2 && j>=1 && j<=colonneT-2){ //zone 1
- Tn[i][j]=T[i][j]+rX*(T[i-1][j]+T[i+1][j]-2*T[i][j])+rY*(T[i][j-1]+T[i][j+1]-2*T[i][j]);
- }
-
-
-
-
-
-
- }
-
- }
- temps= temps+deltaT;
- for(int i=0; i<ligneT;i++){
-
- for(int j=0;j<colonneT;j++){
- T[i][j]=Tn[i][j];
-
- }
- }
- }
- return T;
- }
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) {
- for(int i=0;i<calculTemperature(0.7f,0.1f,1000,10,5000,5,20,1000).length;i++){
- for(int j=0;j<calculTemperature(0.7f,0.1f,1000,10,5000,5,20,1000)[i].length; j++){
- System.out.print(" "+calculTemperature(0.7f,0.1f,1000,10,5000,5,20,1000)[i][j]);
- }
- System.out.print("\n" );
- }
-
-
- // TODO code application logic here
- }
- }
|
Merci d'avance pour votre aide, |