Télécharger mpmagv.eso

Retour à la liste

Numérotation des lignes :

mpmagv
  1. C MPMAGV SOURCE MB234859 25/09/08 21:15:54 12358
  2. SUBROUTINE MPMAGV
  3.  
  4. * ---------------------------------------------------------------------
  5. *
  6. * ROUTINE MPMAGV
  7. *
  8. * ---------------------------------------------------------------------
  9. * Auteur : Nikola JERANCE
  10. *
  11. * Historique :
  12. *
  13. * 20/09/2022 - Première écriture (N. Jerance)
  14. *
  15. *
  16. * Descriptif :
  17. *
  18. * Calcul de la matrice qui exprime le potentiel vecteur magnétique
  19. * à partir de la densité de courant J. En entrée on a un maillage 2D
  20. * ayant une épaisseur donnée et en sortie on a une liste de rééls
  21. * (qui est en fait une matrice M).
  22. * Pour calculer le potentiel vecteur (en 3D) par la suite, il faut multiplier M
  23. * par la densité de courant J, en appelant la procédure JPMAGV.
  24. * Ce calcul correspond, par exemple, à la géométrie d'une galette supraconductrice
  25. * La densite de courant n'a que 2 composantes.
  26. *
  27. *
  28. * Arguments :
  29. *
  30. * (E) MMODE1 = Pointeur sur un MODELE, dont on extrait le maillage
  31. * (E) XEPAIS = Epaisseur
  32. ** (S) ILREE1 = Pointeur sur la liste de réels (résultat)
  33. *
  34. * ---------------------------------------------------------------------
  35.  
  36. * ----------------------------------------------------------------------
  37. *
  38. * 0 - DECLARATIONS ET IMPORTS
  39. *
  40. * ----------------------------------------------------------------------
  41.  
  42. IMPLICIT INTEGER(I-N)
  43. IMPLICIT REAL*8(A-H,O-Z)
  44.  
  45. -INC PPARAM
  46. -INC CCOPTIO
  47. -INC CCGEOME
  48. -INC CCREEL
  49. -INC SMCOORD
  50. -INC SMELEME
  51. -INC SMLREEL
  52. -INC SMMODEL
  53.  
  54. POINTEUR IMAIL1.MELEME
  55. REAL*8 EPAIS
  56.  
  57. * CALL LIROBJ('MAILLAGE',IMAIL,1,IRETOU)
  58.  
  59. CALL LIROBJ('MMODEL',MMODE1,1,IRETOU)
  60. IF (IERR.NE.0) RETURN
  61. CALL ACTOBJ('MMODEL',MMODE1,1)
  62. IF (IERR.NE.0) RETURN
  63.  
  64. * Contrôle du nombre de IMODEL : MODELE ELEMENTAIRE. On veut un modèle
  65. * simple, i.e. avec un seul IMODEL
  66. NBMOD = MMODE1.KMODEL(/1)
  67. IF (NBMOD .GT. 1) THEN
  68. CALL ERREUR(21)
  69. RETURN
  70. ENDIF
  71.  
  72. * Ouverture du segment IMODEL : MODELE ELEMENTAIRE
  73. IMODE1 = MMODE1.KMODEL(1)
  74. SEGACT,IMODE1
  75.  
  76. * Ouverture du segment MELEME
  77. IMAIL1 = IMODE1.IMAMOD
  78.  
  79. EPAIS=1.D0
  80. CALL LIRREE(EPAIS,0,IRETOU)
  81. IF (IERR.NE.0) RETURN
  82.  
  83. ILREE1 = 0
  84. CALL MPMAG1(IMAIL1,EPAIS,ILREE1)
  85.  
  86. * On calcule les valeurs du champ par élément
  87. CALL ACTOBJ('LISTREEL',ILREE1,1)
  88. CALL ECROBJ('LISTREEL',ILREE1)
  89. END
  90.  
  91.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales