[updated 15.Dec.2000]

Librairie utiliter > Fichier glap3c.f

Qui appelle glap3c ?

line
      SUBROUTINE  GLAP3C (NOYO,CORM,CORP,R,E,D1EM,D1EP,D2EMP)
line
  Auteur : D.Martin (Octobre 1989)  
  Derniere modification : D.Martin (15 Decembre 2000)
  Version 1.0.0
 
  Solution elementaire au point 'M' du Laplacien dans R3 :
 
                    E = [-1/4Pi] 1/R, avec R = || MP ||
 
  Attention : On travaille des arguments complexes !!!!!
 
  Attention : La multiplication par -1./4*PI n'est pas effectuee dans ce s-p.
 
 -- Arguments d'entree --
  NOYO  = 'D' (Dirichlet), 'N' ou 'F' (Neumann ou Fourier)
        'D' implique le calcul du noyau et des derivees 1eres
        'N' ou 'F'      calcul du noyau, des derivees 1eres et 2ndes croisees
  CORM  coordonnees du point source
  CORP  coordonnees du point image
 -- Arguments de sortie --
  R     distance des 2 points M et P
  E     = 1/R
  D1EM  dE/dxm, dE/dym, dE/dzm
  D1EP  dE/dxp, dE/dyp, dE/dzp
  D2EMP derivees secondes croisees dans l'ordre suivant  
          d2E/dxmdxp, d2E/dxmdyp, d2E/dxmdzp
          d2E/dymdxp, d2E/dymdyp, d2E/dymdzp
          d2E/dzmdxp, d2E/dzmdyp, d2E/dzmdzp
line
      CHARACTER*(*) NOYO
      REAL          R,CORP(*),CORM(*)
      COMPLEX       E,D1EP(*),D1EM(*),D2EMP(*)
 
      INTEGER       NDIM,IDIM,JDIM,IRANG
      PARAMETER    ( NDIM = 3)
      REAL          TRSUR5,UNSUR,UNSUR2,UNSUR3,X,XM(NDIM),XMSRN
line
      R=0. 
      DO 1 IDIM=1,NDIM
         X=CORP(IDIM)-CORM(IDIM)
         R=R+X*X
         XM(IDIM)=X
1     CONTINUE
      IF (R.LT.1.E-06)  GOTO 99999
 
      R     = SQRT(R)  
      UNSUR = 1./R
      E     = E + UNSUR
      UNSUR2=UNSUR*UNSUR
      UNSUR3=UNSUR2*UNSUR
 
      Derivees premieres
 
      DO 2 IDIM=1,NDIM
         X         =XM(IDIM)
         XMSRN     =X*UNSUR3
         D1EP(IDIM)=D1EP(IDIM)-XMSRN
         D1EM(IDIM)=D1EM(IDIM)+XMSRN
2     CONTINUE
 
      IF (NOYO(1:1).NE.'D') THEN
 
         Derivees secondes croisees
 
         TRSUR5=-3.*UNSUR3*UNSUR2  
         IRANG=1
         DO 4 IDIM=1,NDIM
            X=XM(IDIM) 
            XMSRN=X*TRSUR5
            DO 3 JDIM=1,NDIM
              D2EMP(IRANG)=D2EMP(IRANG)+XMSRN*XM(JDIM)
              IRANG=IRANG+1
3           CONTINUE
4        CONTINUE
         IRANG=1
         DO 5 IDIM=1,NDIM
            D2EMP(IRANG)=D2EMP(IRANG)+UNSUR3
            IRANG=IRANG+NDIM+1
5        CONTINUE
      ENDIF
 
      RETURN
line
99999 WRITE(*,10) (CORP(IDIM),IDIM=1,NDIM),(CORM(IDIM),IDIM=1,NDIM)
      CALL BAISE  ('Erreur dans le maillage ?')
10    FORMAT('   Rigolo on essaie de calculer la fonction de Green pour'
     &,' une distance < 10**-6'
     &/T11,'Xp=',E12.4,' Yp=',E12.4,' Zp=',E12.4
     &/T11,'Xm=',E12.4,' Ym=',E12.4,' Zm=',E12.4/)
                                                                    END !Glap3c
line
top

glap3c est appelé dans (4 procédures)

cghoul.f (appl_houle3dc) ghelmz.f (appl_helmz3d) ghoule.f (appl_houle3d)
green.f    

top