Télécharger mpmagv.eso

Retour à la liste

Numérotation des lignes :

mpmagv
  1. C MPMAGV SOURCE CB215821 23/11/02 21:15:07 11779
  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.  
  55. POINTEUR IMAIL1.MELEME
  56. REAL*8 EPAIS
  57.  
  58. SEGMENT INFO
  59. INTEGER INFELL(JG)
  60. ENDSEGMENT
  61.  
  62.  
  63.  
  64. * CALL LIROBJ('MAILLAGE',IMAIL,1,IRETOU)
  65.  
  66. CALL LIROBJ('MMODEL',MMODE1,1,IRETOU)
  67. IF (IERR.NE.0) RETURN
  68. CALL ACTOBJ('MMODEL',MMODE1,1)
  69. IF (IERR.NE.0) RETURN
  70.  
  71. * Contrôle du nombre de IMODEL : MODELE ELEMENTAIRE. On veut un modèle
  72. * simple, i.e. avec un seul IMODEL
  73. NBMOD = MMODE1.KMODEL(/1)
  74. IF (NBMOD .GT. 1) THEN
  75. CALL ERREUR(21)
  76. RETURN
  77. ENDIF
  78.  
  79. * Ouverture du segment IMODEL : MODELE ELEMENTAIRE
  80. IMODE1 = MMODE1.KMODEL(1)
  81. SEGACT,IMODE1
  82.  
  83. * Ouverture du segment MELEME
  84. IMAIL1 = IMODE1.IMAMOD
  85. IELTYP = IMAIL1.ITYPEL
  86. CALL ELQUOI(IELTYP,0,2,IPINF,IMODE1)
  87. IF (IERR .NE. 0) RETURN
  88.  
  89. EPAIS=1.D0
  90. CALL LIRREE(EPAIS,0,IRETOU)
  91. IF (IERR.NE.0) RETURN
  92.  
  93. ILREE1 = 0
  94. CALL MPMAG1(IMAIL1,EPAIS,ILREE1)
  95.  
  96. * On calcule les valeurs du champ par élément
  97. CALL ACTOBJ('LISTREEL',ILREE1,1)
  98. CALL ECROBJ('LISTREEL',ILREE1)
  99.  
  100. RETURN
  101. END
  102.  
  103.  

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