chgele
C CHGELE SOURCE PV 09/03/12 21:17:02 6325 $ ,TARI,XARI2,DTREEL,IVPT,MELEME,IFACEL,IZCENT $ ,IELTFA,IZVIT,IZUN,IEL1,TDEP,XDEP2,JFACE,ICHGZ,IZSH) **************************************************************************** *** SP 'CHGELE' : permet de determiner le prochain élément traversé par la *** particule, les donnees de sortie de la particule deviennent alors les *** données d'entrée. 'CHGELE' traite le cas particulier de passage de la *** particule aux noeuds ou aux aretes des elements traversés. *** *** APPELES 1 = 'TRJIEL', 'TRJFAC' *** APPELES 2 = 'EXCEPT' *** *** E = 'EPSILO' marge relative acceptée position pt % element *** 'NDIM' dimension de l'espace *** 'JREBO' n° local face impermeable ou se trouve particule *** 'XNREB' vecteur normal à la face impermeable *** 'TARI' tps réel d'arrivée à l'interface de sortie *** 'XARI2' coords réelles d'arrivée à interface de sortie *** 'DTREEL' pas de tps reel de calcul *** 'IVPT' entier valant 1 en regime permanent *** 'MELEME' pteur sur le maillage du domaine etudié *** 'IFACEL' pteur sur la table " DOMAINE.FACEL" *** 'IZCENT' pteur sur la table "DOMAINE.CENTRE" *** 'IELTFA' pteur sur la table "DOMAINE.ELTFA" *** 'IZVIT' segment decrivant les vitesses (<- 'TRJVIT' OU 'TRJFLU') *** 'IZUN' segmt content flux aux faces % ss-maillage de 'IEL1' *** *** E/S = 'IEL1' n° global de l'élément suivant contenant particule *** 'TDEP' tps réel écoulé jusqu' au pt de départ de l'élémt suivant *** 'XDEP2' coords réelles départ ds élémt suivant *** 'JFACE' n° local interface de l'element suivant *** 'ICHGZ' vaut 1 si saut précédent effectif et 0 sinon *** 'IZSH' segment content coord reelles noeuds, fcts forme et base *** *** Rq : on considere que le vecteur aleatoire z est à retirer dans tous *** les cas apres chgt d'element meme si le saut précédent n'est pas *** effectif (diffusion compense convection, pas d'element voisin,...) *** *** Auteur Cyril Nou *************************************************************************** IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC SMELEME -INC SMCHAML POINTEUR IZCENT.MELEME,IELTFA.MELEME,IFACEL.MELEME SEGMENT IZVIT REAL*8 TEMTRA(NVIPT) INTEGER IPUN(NBS),IDUN(NBS),IPVPT(NVIPT),IFORML ENDSEGMENT SEGMENT IZVPT INTEGER IPUN1(NBS),IPUMAX ENDSEGMENT SEGMENT IZUN ENDSEGMENT SEGMENT IZUMAX REAL*8 UMAX(NBREL) ENDSEGMENT SEGMENT IZSH REAL*8 SHP(6,MNO9),SHY(12,MNO9),XYZL(3,MNO9) ENDSEGMENT DIMENSION XDEP2(3),XARI2(3),Z(3),XNREB(3) *** l'arrivée devient l'entrée pour l'élément suivant TDEP=TARI DO 10 I=1,NDIM XDEP2(I)=XARI2(I) 10 CONTINUE *** test position pt % noeuds/aretes avec renvoi 'IEL2' ou traj a lieu NVOISI=0 $ ,IZVIT,IVPT,IEL1,TDEP,DTREEL,XDEP2,IZSH,IZUN,IEL2,NVOISI) *** chgt element classique a partir d'une face IF (NVOISI.EQ.0) THEN IF (JREBO.LE.0) THEN *** cherche n° 'IEL2' qui a avec 'IEL1' face commune (globale) 'NF' IEL1=IEL2 *** 'JFACE' n° local dans 'IEL1' associé à face de n° global 'NF' ENDIF *** chgt element via noeud ou arete (pas de face traversee) ELSEIF (NVOISI.GT.0) THEN IEL1=IEL2 JFACE=0 ENDIF *** chgt vecteur aleatoire saut suivant (m si saut precedent non effectif) ICHGZ=1 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales