trjloc
C TRJLOC SOURCE CHAT 05/01/13 03:50:09 5004 $ ,IEL1,TCOUR,NOEL1,ITY1,ITYG,IZSH,IZUN,NOUN1,IELL,DIAM,IPT1) *************************************************************************** *** SP 'TRJLOC' : recupere infos caractérisant l'élément effectivement *** traversée par la particule (sous maillage, n° elemt, nbre noeuds,...). *** *** APPELES 1 = 'MELNEL', 'DOXE', 'TRJVEL' *** APPELES 2 = aucun *** *** E = 'NDIM' dimension de l'espace *** 'MELEME' pteur sur le maillage du domaine étudié *** 'IZCENT' pteur sur la table "DOMAINE.CENTRE" *** 'IELTFA' pteur sur la table "DOMAINE.ELTFA" *** 'IZVIT' segment décrivant les vitesses (<- 'TRJVIT' OU 'TRJFLU') *** 'IVPT' entier valant 1 dans le cas permanent *** 'IEL1' n° global de l'élément contenant particule *** 'TCOUR' tps courant considéré *** *** S = 'NOEL1' nbre de noeuds de l'élément 'IEL1' *** 'ITY1' entier caractérisant le type de l'élément 'IEL1' *** 'ITYG' entier caractérisant la géométrie de 'IEL1' *** 'IZSH' segmt content fcts forme,base et coord réelles noeuds de 'IEL1' *** 'IZUN' segmt content les flux aux faces % sous-maillage de 'IEL1' *** 'NOUN1' nbre de flux (ou faces' de l'élément considéré *** 'IELL' n° local de l'élément 'IEL1' dans sous maillage *** 'DIAM' "longueur caracteristique" de l'element considéré *** 'IPT1' pteur sur sous-maillage contenant element considéré *** *** ORIGINE = PATRICK MEYNIEL ,MODIFICATION = CYRIL NOU ****************************************************************************** IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMCOORD -INC SMELEME POINTEUR IZCENT.MELEME,IELTFA.MELEME,IZFAC1.MELEME SEGMENT IZSH REAL*8 SHP(6,MNO9),SHY(12,MNO9),XYZL(3,MNO9) ENDSEGMENT 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 *** recherche le bon sous maillage pour l'elem 'IEL1' qui est alors pté par 'IPT1' *** 'NEL0' = nbre elemts avant sous maillage pté par 'IPT1' *** recuperation nbre de noeuds de l'elemt de n° global 'IEL1' dans 'NOEL1' NOEL1=IPT1.NUM(/1) *** recuperation n° local de l'elemt de n° global 'IEL1' dans 'IELL' IELL=IEL1-NEL0 *** sp 'DOXE', donnt les coordonnées reelles des noeuds de l'elem de n° *** 'IELL' (ou 'IEL1') sous le format defini par le tableau 'XYZL' de 'IZSH' *** recuperation du type des elemts du sous maillage de 'IPT1' ITY1=IPT1.ITYPEL *** recuperation de la géometrie des elements du sous maillage de 'IPT1' *** en permanent, active le segment des flux 'IZUN' % sous-maillage de 'IEL1' *** determination du nombre de flux (ou faces) pour l'élément considéré IF (ITYG.EQ.14) THEN NOUN1=6 ELSEIF (ITYG.EQ.16) THEN NOUN1=5 ELSE NOUN1=NOEL1 ENDIF *** 'NUCENT' recupere n° global noeud centre de l'element 'IEL1' NUCENT=IZCENT.NUM(1,IEL1) *** 'IZFAC1' pte sur sous-maillage de 'IELTFA' contenant 'IEL1' *** recuperation + petite distance entre centre et faces element NF=IZFAC1.NUM(/1) IPCENT=(NUCENT-1)*(IDIM+1) NF1=(IZFAC1.NUM(1,IELL)-1)*(IDIM+1) VINT=0.D0 DO 10 I=1,IDIM VINT=VINT+(XCOOR(IPCENT+I)-XCOOR(NF1+I))**2 10 CONTINUE DIAM=VINT DO 20 J=2,NF NF1=(IZFAC1.NUM(J,IELL)-1)*(IDIM+1) VINT=0.D0 DO 30 I=1,IDIM VINT=VINT+(XCOOR(IPCENT+I)-XCOOR(NF1+I))**2 30 CONTINUE IF (VINT.LT.DIAM) DIAM=VINT 20 CONTINUE *** 'DIAM' = "longueur caracteristique" choisi DIAM=SQRT(DIAM)*2.D0 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales