Les Allergies
Alimentaires
Posez votre question Signaler

Aide programmation Fortran 90

Littletwist - Dernière réponse le 28 mai 2008 à 21:41
Bonjour,
J'aimerai réaliser un programme en fortran 90 me calculant le température qu'il fait à chaque instant dans une pièce en fonction des conditions aux limites imposées par la température des mur et des chauffages.
Je suis sensé utiliser la méthode Gauss-Seidel pour y arriver.
La formule de la chaleur est un Laplacien de la forme :
dT²/dx² + dT²/dy² = 0
en discrétisant cette équation en 5 points, cela donne :
T(i+1,j) + T(i-1,j) + B² T(i,j+1) + B² T(i,j-1) - C T(i,j) =0
avec, B= DELTAx/DELTAy
et, C= 2( 1+B²)
La pièce est rectangulaire de dimensions 15m en x et 20 m en y. La température des mur est de 5°C et celle des chauffage est de 45°C.
Le 1er chauffage est situé en x=0m et 5m<y<10m
Le second en x=20m et 5m<y<10m
Le 3ème en y=0m et 7m<x<12m
Le 4ème en y=15m et 7m<x<12m
Si qqn pourrait me programmer la méthode, ce serai très sympa.
Merci pour votre aide !
Littletwist
Lire la suite 

Aide programmation Fortran 90 »

3 réponses
Réponse
+1
moins plus
Si tu as pas de réponses essaye le forum Fortran : http://www.developpez.net/forums/forumdisplay.php?f=157
Ajouter un commentaire
Réponse
+1
moins plus
slt mes proffs, je suis un etudiant en algerie.J'etude les maths, je cherche une aide pour les controles, je veux des exercices avec ses solutions pour une effective revision et merci pour votre aides.
Ajouter un commentaire
Réponse
+1
moins plus
tu peux s'inspirer de ce petit programme consernant la resolution de l'equation de la chaleur en premiere ordre dT/dt=diff.d2T/dx2 à toi de jangler pour resoudre ton probleme:



programme de calcule de chaleur 1D implicite
parameter n=40
dimension a(n),b(n),c(n),aa(n),gg(n),T(n),Ts(n)
c données
diff=0.0001
x1=0.5
dt=0.1
dx=x1/float(n-1)
T(1)=100
T(n)=0
Ta=25
r=diff*dt/dx**2
c initialisation
T(1)=T1
T(n)=Tn
Ts(i)=T1
Ts(n)=Tn
do i=2,n-1
Ts(i)=Ta
enddo
do i=2,n-1
T(i)=Ts(i)
enddo
1 k=0
k=k+1
c remplissage de matrice
do i=2,n-1
a(i)=1+2*r
b(i)=-r
c(i)=-r
d(i)=T(i)
end do
d(2)=T(2)+r*T1
d(n-1)=T(n-1)+r*Tn
do i=3,n-2
aa(i)=a(i)-b(i)*c(i-1)/aa(i-1)
gg(i)=d(i)-a(i)*gg(i-1)/aa(i-1)
end do
Ts(n-1)=gg(n-1)/aa(n-1)
do i=n-1,2,-1
Ts(i)=(gg(i)-c(i)*Ts(i+1))/aa(i)
enddo
ez=0
do i=2,n-1
ez=ez+abs(Ts(i)-T(i))/Ts(i)
enddo
if(ez.gt.0.001) go to 1
do i=1,n
write(*,*) i,Ts(i)
enddo
end
Ajouter un commentaire
Ce document intitulé « Aide programmation Fortran 90 » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?