Advertisement
yiwen_akeni

ECOULEMENT LAMINAIRE

Oct 25th, 2022
2,395
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Fortran 6.65 KB | Science | 0 0
  1.     PROGRAM ECOULEMENTLAMINAIRE
  2.     IMPLICIT NONE
  3.     REAL(8) VISCD,D,L,DP,VMOY,VMAX,QV,DPDZ,PI,S,DA,PVC,DC,D1,D2,D3,D4,D5,CSTE_K
  4.     REAL(8) LC,RC,SA,SB,PA,PB,VA,VB,RCAP,QCAP,REY,RSYS,ROF,R1,R2,R3,R4,R5,REQ
  5.     INTEGER ICAS,NCAP
  6.     OPEN(UNIT=6,FILE='LAMINAIRE.OUT',FORM='formatted', ACTION="WRITE")
  7. !    WRITE(*,*)'DONNER LA VISCOSITE DYNAMIQUE DU FLUIDE EN (N s/m2)'
  8. !    READ(*,*)VISCD
  9.     VISCD = 0.026 !5.D-3
  10.     WRITE(*,*)'DONNER LE TYPE DE CAS A ETUDIER :'
  11.     WRITE(*,*)'TAPEZ 1 : CAS D''UN CAPILLAIRE'
  12.     WRITE(*,*)'TAPEZ 2 : RESEAU CAPILLAIRE ENTRE UNE ARTERE ET UNE VEINE'
  13.     WRITE(*,*)'TAPEZ 3 : CIRCULATION SANGUINE GLOBALE DANS LE CORPS'
  14.     READ(*,*)ICAS
  15. !    ICAS = 1
  16.     PI = 4.D0*DATAN(1.D0)
  17.     SELECT CASE(ICAS)
  18.     CASE(1)
  19.         WRITE(*,*)'DONNER LE RAYON CAPILLAIRE RC EN MICRON'
  20.         READ(*,*)RC
  21.         RC = 5
  22.         RC = RC*1D-6
  23.         RC = 2.5D-3
  24.         WRITE(*,*)'DONNER LA LONGUEUR DU CAPILLAIRE EN CENTIMETRES'
  25.         READ(*,*)LC
  26.         LC = 1
  27.         LC = LC*1D-2
  28.         LC = 3
  29.         WRITE(*,*)'DONNER LA DIFFERENCE DE PRESSION ENTRE LES EXTREMITES EN PASCAL'
  30.         READ(*,*)DP
  31.         DP = 15960-1330
  32.         DP = 3D5
  33.     CASE(2)
  34.         WRITE(*,*)'DONNER LA SECTION DE L''ARTERE (cm2)'
  35.         READ(*,*)SA
  36.         SA = 0.20D0
  37.         SA = SA*1D-4
  38.         WRITE(*,*)'DONNER LA SECTION DE LA VEINE (cm2)'
  39.         READ(*,*)SB
  40.         SB = 0.20D0
  41.         SB = SB*1D-4
  42.         WRITE(*,*)'DONNER LE RAYON D''UN CAPILLAIRE EN MICRON'
  43.         READ(*,*)RC
  44.         RC = 5.D0
  45.         RC = RC*1D-6
  46.         WRITE(*,*)'DONNER LA LONGUEUR D''UN CAPILLAIRE EN CENTIMETRES'
  47.         READ(*,*)LC
  48.         LC = 1.D0
  49.         LC = LC*1D-2
  50.         WRITE(*,*)'DONNER LA PRESSION AU SEIN DE L''ARTERE (PA) EN PASCAL'
  51.         READ(*,*)PA
  52.         PA = 15960.D0
  53.         WRITE(*,*)'DONNER LA PRESSION AU SEIN DE LA VEINE (PB) EN PASCAL'
  54.         READ(*,*)PB
  55.         PB = 1330.D0
  56.         WRITE(*,*)'DONNER LA VITESSE DEBITANTE DANS L''ARTERE A EN CM/S'
  57.         READ(*,*)VA
  58.         VA = 25.D0
  59.         VA = VA*1D-2
  60.     CASE(3)
  61.         ! LES DONNEES POUR UNE PERSONNE SAINE ET AU REPOS PHYSIQUE
  62.         WRITE(*,*)'DONNER LE DEBIT CARDIAQUE DC EN LITRES/MINUTE'
  63.         READ(*,*)DC
  64.         DC = DC*1D-3/60.
  65.         WRITE(*,*)'DONNER LA PRESSION AU SEIN DE LA VEINE CAVE EN PASCAL'
  66.         READ(*,*)PVC
  67.         PVC = 399D0
  68.         WRITE(*,*)'DONNER LA PRESSION AU SEIN DE L''AORTE EN PASCAL'
  69.         READ(*,*)PA
  70.         PA = 12635D0
  71.         WRITE(*,*)'DONNER LE DIAMETRE DE L''AORTE EN CENTIMETRE'
  72.         READ(*,*)DA
  73.         DA = 2
  74.         DA = DA*1D-2
  75.         VISCD = 5D-3
  76.         ROF = 1060.D0
  77.         DP = PA - PVC
  78.     END SELECT
  79.     !             Calcul selon le cas choisi -----------------------
  80.     SELECT CASE(ICAS)
  81.     CASE(1)
  82.         !    CALCUL DU GRADIENT DE PRESSION
  83.         D = 2*RC ; L = LC
  84.         DPDZ = DP/L
  85.         CALL LAMINAIR(DPDZ,D,L,VISCD,QCAP,VMOY,VMAX,RCAP)
  86.     CASE(2)
  87.         QV = SA*VA
  88.         D = 2*RC
  89.         L = LC
  90.         DP = PA-PB
  91.         DPDZ = DP/L
  92.         CALL LAMINAIR(DPDZ,D,L,VISCD,QCAP,VMOY,VMAX,RCAP)
  93.         NCAP = QV/QCAP
  94.     CASE(3)
  95.         D1 = 0.1*DC  ! Débit dans le muscle cardiaque
  96.         R1 = DP/D1
  97.         D2 = 0.15*DC ! Débit dans le cerveau
  98.         R2 = DP/D2
  99.         D3 = 0.20*DC ! Débit dans le foie
  100.         R3 = DP/D3
  101.         D4 = 0.25*DC ! Dèbit dans les reins
  102.         R4 = DP/D4
  103.         D5 = 0.30*DC ! Débit dans les Jambes
  104.         R5 = DP/D5
  105.         ! Calcul de la vitesse Va du sang dans l'aorte
  106.         VA = DC/(0.25*PI*DA**2)
  107.         REY = ROF*VA*DA/VISCD
  108.         ! Calcul de résistance hydraulique RSYS
  109.         RSYS = DP/DC
  110.         REQ = (1./R1)+(1/R2)+(1/R3)+(1/R4)+(1/R5)
  111.         REQ = 1./REQ
  112.         CSTE_K = DP/DC**2
  113.     END SELECT
  114.    
  115.        
  116.  
  117.     CONTAINS
  118.     SUBROUTINE LAMINAIR(DPDZ,D,L,VISCD,QV,VMOY,VMAX,RCAP)
  119.     IMPLICIT NONE
  120.     REAL(8),INTENT(IN) :: DPDZ,D,L,VISCD
  121.     REAL(8),INTENT(OUT) :: QV,VMOY,VMAX,RCAP
  122.     REAL(8) PI,S
  123.     REAL(8), DIMENSION(:),ALLOCATABLE :: V,R,TAU
  124.     INTEGER N,I
  125.     N = 11
  126.     ALLOCATE(V(N),R(N),TAU(N))
  127.     PI = 4.D0*DATAN(1.D0)
  128.     ! CALCUL DU DEBIT VOLUMIQUE
  129.     QV = PI*DPDZ*D**4/(128.D0*VISCD)
  130.     ! Vitesse moyenne du fluide
  131.     S = 0.25*PI*D**2
  132.     VMOY = QV/S
  133.     ! Vitesse maximale
  134.     VMAX = 0.0625*DPDZ*D**2/VISCD
  135.     ! Resistance capillaire
  136.     RCAP = 128*VISCD*L/PI/D**4
  137.     DO I = 1,N
  138.     R(I) = -D/2+(I-1)*D/(N-1)
  139.     ENDDO
  140.     V(:) = 0.25*DPDZ*((D/2)**2-(R(:))**2)/VISCD
  141.     TAU(:) = DABS(R(:))*DPDZ
  142.     WRITE(6,1000)
  143.     WRITE(6,1001)D,L,DPDZ,VISCD
  144.     WRITE(6,1002)S,VMOY,VMAX,QV
  145.     WRITE(6,1003)
  146.     DO I = 1,N
  147.     WRITE(6,1004)R(I),V(I),TAU(I)
  148.     ENDDO
  149. 1002 FORMAT(/1X,'OUTPUT :'/1X,'SECTION DU CANNAL',1X,' = ',E10.3, ' (m2)'/1X,'VITESSE MOYENNE',3X,' = ',E10.3, ' (m/s)'/1X,'VITESSE MAXIMALE',2X,' = ',E10.3, ' (m/s)'/1X,'DEBIT VOLUMIQUE',3X,' = ',E10.3, ' (m3/s)')
  150. 1003 FORMAT(/1X,'REPARTITION DE LA VITESSE ET DE LA CONTRAINTE DANS LE TUBE'/1X,5X,1Hr,14X,1HV,13X,3HTAU/1X,4X,3H(m),11X,5H(m/s),10X,6H(N/m2)/)
  151. 1004 FORMAT(1X,3(E10.3,5X))  
  152. 1000 FORMAT(1X,72(1H-)/1X,10(1H*),'SORTIES DE LA ROUTINE LAMINAIRE',10(1H*)/1X,72(1H-))
  153.      
  154. 1001 FORMAT(1X,'LES DONNEES DE LA CONDUITE ET DU FLUIDE'/1X,'DIAMETRE',11X,' = ',E10.3,3X,3H(m)/1X,'LONGUEUR',11X,' = ',E10.3,3X,3H(m)/1X,'GRAD. PRESSION',5X,' = ',E10.3,3X,6H(Pa/m)/1X,'VISCOSITE DYNAMIQUE = ',E10.3,3X,7H(Ns/m2))
  155.     END SUBROUTINE LAMINAIR
  156.     END PROGRAM ECOULEMENTLAMINAIRE
  157.  
  158.  
  159. ! fichier  LAMINAIRE.OUT
  160. ! ------------------------------------------------------------------------
  161. ! **********SORTIES DE LA ROUTINE LAMINAIRE**********
  162. ! ------------------------------------------------------------------------
  163. ! LES DONNEES DE LA CONDUITE ET DU FLUIDE
  164. ! DIAMETRE            =  0.500E-02   (m)
  165. ! LONGUEUR            =  0.300E+01   (m)
  166. ! GRAD. PRESSION      =  0.100E+06   (Pa/m)
  167. ! VISCOSITE DYNAMIQUE =  0.260E-01   (Ns/m2)
  168. !
  169. ! OUTPUT :
  170. ! SECTION DU CANNAL  =  0.196E-04 (m2)
  171. ! VITESSE MOYENNE    =  0.300E+01 (m/s)
  172. ! VITESSE MAXIMALE   =  0.601E+01 (m/s)
  173. ! DEBIT VOLUMIQUE    =  0.590E-04 (m3/s)
  174. !
  175. ! REPARTITION DE LA VITESSE ET DE LA CONTRAINTE DANS LE TUBE
  176. !      r              V             TAU
  177. !     (m)           (m/s)          (N/m2)
  178. !
  179. ! -0.250E-02      0.000E+00      0.250E+03
  180. ! -0.200E-02      0.216E+01      0.200E+03
  181. ! -0.150E-02      0.385E+01      0.150E+03
  182. ! -0.100E-02      0.505E+01      0.100E+03
  183. ! -0.500E-03      0.577E+01      0.500E+02
  184. !  0.000E+00      0.601E+01      0.000E+00
  185. !  0.500E-03      0.577E+01      0.500E+02
  186. !  0.100E-02      0.505E+01      0.100E+03
  187. !  0.150E-02      0.385E+01      0.150E+03
  188. !  0.200E-02      0.216E+01      0.200E+03
  189. !  0.250E-02      0.000E+00      0.250E+03
  190.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement