void menu_block_settings_act(t_fox_window *win, t_tekpain *paint, int block) { (void) win; (block == BKS_UP) ? paint_size_mode(win, paint, 1) : 0; (block == BKS_DOWN) ? paint_size_mode(win, paint, -1) : 0; (block == BKS_N) ? next_layer(paint) : 0; (block == BKS_B) ? back_layer(paint) : 0; (block == BKS_H) ? toggle_layer(paint) : 0; (block == BKS_LEFT) ? (paint->forme = 0) : 0; (block == BKS_RIGHT) ? (paint->forme = 1) : 0; }
void Euler( double VxOld[][][], double VxNew[][][], double VyOld[][][], double VyNew[][][], double VzOld[][][], double VzNew[][][], double pOld[][][], double pNew[][][] ) //Euler's method of integrating { double Vx1[Nx+2][Ny+2][Nz+2],Vy1[Nx+2][Ny+2][Nz+2], Vz1[Nx+2][Ny+2][Nz+2],p1[Nx+2][Ny+2][Nz+2]; int i,j,k; next_layer(VxOld,VxNew,VyOld,VyNew,VzOld,VzNew,pOld,pNew); extract(&VxOld,&VxNew,&Vx1,&VyOld,&VyNew,&Vy1,&VzOld,&VzNew,&Vz1,&pOld,&pNew,&p1); for(i=0;i<=Nx+1;i++) for(j=0;j<=Ny+1;j++) for(k=0;k<=Nz+1;k++) { VxNew[i][j][k] = VxOld[i][j][k] + Vx1[i][j][k] * dt; VyNew[i][j][k] = VyOld[i][j][k] + Vy1[i][j][k] * dt; VzNew[i][j][k] = VzOld[i][j][k] + Vz1[i][j][k] * dt; pNew[i][j][k] = pOld[i][j][k] + p1[i][j][k] * dt; } }//Euler
void RungeKutt( double VxOld[][][], double VxNew[][][], double VyOld[][][], double VyNew[][][], double VzOld[][][], double VzNew[][][], double pOld[][][], double pNew[][][] ) //Runge-Kutta's method of integrating { double Vx1[Nx+2][Ny+2][Nz+2],Vx2[Nx+2][Ny+2][Nz+2],Vx3[Nx+2][Ny+2][Nz+2],Vx4[Nx+2][Ny+2][Nz+2], Vy1[Nx+2][Ny+2][Nz+2],Vy2[Nx+2][Ny+2][Nz+2],Vy3[Nx+2][Ny+2][Nz+2],Vy4[Nx+2][Ny+2][Nz+2], Vz1[Nx+2][Ny+2][Nz+2],Vz2[Nx+2][Ny+2][Nz+2],Vz3[Nx+2][Ny+2][Nz+2],Vz4[Nx+2][Ny+2][Nz+2], p1[Nx+2][Ny+2][Nz+2],p2[Nx+2][Ny+2][Nz+2],p3[Nx+2][Ny+2][Nz+2],p4[Nx+2][Ny+2][Nz+2]; int i,j,k; next_layer(VxOld,VxNew,VyOld,VyNew,VzOld,VzNew,pOld,pNew); extract(VxOld,VxNew,Vx1,VyOld,VyNew,Vy1,VzOld,VzNew,Vz1,pOld,pNew,p1); for(i=0;i<=Nx+1;i++) for(j=0;j<=Ny+1;j++) for(k=0;k<=Nz+1;k++) { Vx1[i][j][k] = VxOld[i][j][k] + Vx1[i][j][k] * dt/2; Vy1[i][j][k] = VyOld[i][j][k] + Vy1[i][j][k] * dt/2; Vz1[i][j][k] = VzOld[i][j][k] + Vz1[i][j][k] * dt/2; p1[i][j][k] = pOld[i][j][k] + p1[i][j][k] * dt/2; } next_layer(Vx1,VxNew,Vy1,VyNew,Vz1,VzNew,p1,pNew); extract(Vx1,VxNew,Vx2,Vy1,VyNew,Vy2,Vz1,VzNew,Vz2,p1,pNew,p2); for(i=0;i<=Nx+1;i++) for(j=0;j<=Ny+1;j++) for(k=0;k<=Nz+1;k++) { Vx2[i][j][k] = VxOld[i][j][k] + Vx2[i][j][k] * dt/2; Vy2[i][j][k] = VyOld[i][j][k] + Vy2[i][j][k] * dt/2; Vz2[i][j][k] = VzOld[i][j][k] + Vz2[i][j][k] * dt/2; p2[i][j][k] = pOld[i][j][k] + p2[i][j][k] * dt/2; } next_layer(Vx2,VxNew,Vy2,VyNew,Vz2,VzNew,p2,pNew); extract(Vx2,VxNew,Vx3,Vy2,VyNew,Vy2,Vz2,VzNew,Vz3,p2,pNew,p3); for(i=0;i<=Nx+1;i++) for(j=0;j<=Ny+1;j++) for(k=0;k<=Nz+1;k++) { Vx3[i][j][k] = VxOld[i][j][k] + Vx3[i][j][k] * dt; Vy3[i][j][k] = VyOld[i][j][k] + Vy3[i][j][k] * dt; Vz3[i][j][k] = VzOld[i][j][k] + Vz3[i][j][k] * dt; p3[i][j][k] = pOld[i][j][k] + p3[i][j][k] * dt; } next_layer(Vx3,VxNew,Vy3,VyNew,Vz3,VzNew,p3,pNew); extract(Vx3,VxNew,Vx4,Vy3,VyNew,Vy4,Vz3,VzNew,Vz4,p3,pNew,p4); for(i=0;i<=Nx+1;i++) for(j=0;j<=Ny+1;j++) for(k=0;k<=Nz+1;k++) { VxNew[i][j][k] = VxOld[i][j][k]+ (Vx1[i][j][k] + Vx4[i][j][k] + (Vx1[i][j][k]+Vx4[i][j][k]) *2) * dt/6; VyNew[i][j][k] = VyOld[i][j][k]+ (Vy1[i][j][k] + Vy4[i][j][k] + (Vy1[i][j][k]+Vy4[i][j][k]) *2) * dt/6; VzNew[i][j][k] = VzOld[i][j][k]+ (Vz1[i][j][k] + Vz4[i][j][k] + (Vz1[i][j][k]+Vz4[i][j][k]) *2) * dt/6; pNew[i][j][k] = pOld[i][j][k]+ (p1[i][j][k] + p4[i][j][k] + (p1[i][j][k]+p4[i][j][k]) *2) * dt/6; } } //RungeKutt