* @INCLUSI PROCEDUR SP204843 24/03/15 21:15:05 11871 * * *----------------------------------------------------------------------* * * * Pre-traitement Maillage Particules-Matrice * * * *----------------------------------------------------------------------* * * *------------------------ Lecture des entrees -------------------------* * * * Entrees : * * --------- * * THO7U : Table maillage cube Voronoi ; * * DPAR1 : Diametre des particules ; * * DREP1 : Distance de repulsion ; * * DENS1 : Densite de reference ; * * ITRA1 : Indicateur traces ; * 'FINS' ; ITRA1 = FAUX ; 'FINS' ; * * * Variables locales : * * ------------------- * * VOR1 : Maillage aretes cellules de Voronoi ; * * MPOI1 : Points centre des cellules ; * * RPAR1 : Rayon des particules ; * * ELIGM1 : Epaisseur Minimale des ligaments de matrice ; * * FTET1 : Facteur de forme des tetraedres (rapport Cote/Hauteur * * tetraedre regulier) ; * * DENSM1 : Densite minimale du maillage ~ demi-distance entre + petit * * ligament de matrice possible (au facteur de forme Pres) ; * * XELIM1 : Facteur d'elimination noeuds des polyedres ; * * RELIM1 : Rayon d'elimination des noeuds sommets des cellules de * * Voronoi ; * * TOL1 : Tolerance ~ precision de la geometrie ; * * * MVOR1 = THO7U . 'MAV' ; MPOI1 = THO7U . 'MPT' ; RPAR1 = 0.5 * DPAR1 ; ELIGM1 = (0.5 * DREP1) - RPAR1 ; FTET1 = 1.5 ** 0.5 ; DENSM1 = FTET1 * ELIGM1 ; XELIM1 = 0.2 ; RELIM1 = XELIM1 * DENS1 ; TOL1 = 1.E-3 * ELIGM1 ; * * *------ Elimination Sommets "Tres Proches" Cellules de Voronoi --------* * * * Elimination des petites aretes de la partition de Voronoi : * 'ELIM' MVOR1 RELIM1 ; * * * Recollement des faces de la partition sur celle du cube unite : * PM1 = 0. 0. 0. ; PM2 = 1. 0. 0. ; PM3 = 1. 1. 0. ; PM4 = 0. 1. 0. ; PM5 = 0. 0. 1. ; PM6 = 1. 0. 1. ; PM7 = 1. 1. 1. ; PM8 = 0. 1. 1. ; * * * * *----------------------- Travail Preparatoire -------------------------* * * * 1. "Nettoyer" les contours des faces + Reperage Faces Bord Cube ; * * 2. Reperer les aretes ; * * * * 1. Nettoyages des Faces + Reperage Faces Bord Cube : * IPREMI1 = VRAI ; 'REPE' BI1 NBI1 ; MPTI1 = THO7U . PCI1 . 'MPT' ; IPREMJ1 = VRAI ; * * * Boucle sur les faces des polyedres : * 'REPE' BJ1 NBJ1 ; CNTIJ1 = THO7U . PCI1 . PCJ1 . 'MAV' ; 'SI' (NBPCIJ1 '<' 3) ; 'ITER' BJ1 ; 'FINS' ; * * * Si cette Face a deja ete traitee, on recopie puis on itere : * TIP8V . PCI1 . PCJ1 . 'MAV' = TIP8V . PCJ1 . PCI1 . 'MAV' ; TIP8V . PCI1 . PCJ1 . 'EXT' = TIP8V . PCJ1 . PCI1 . 'EXT' ; 'SI' IPREMJ1 ; IPREMJ1 = FAUX ; TIP8V . PCI1 . 'MPT' = PCJ1 ; TIP8V . PCI1 . 'MAV' = TIP8V . PCJ1 . PCI1 . 'MAV' ; 'SINO' ; TIP8V . PCI1 . 'MPT' = TIP8V . PCI1 . 'MPT' 'ET' PCJ1 ; TIP8V . PCI1 . 'MAV' = TIP8V . PCI1 . 'MAV' 'ET' TIP8V . PCJ1 . PCI1 . 'MAV' ; 'FINS' ; 'ITER' BJ1 ; 'FINS' ; * * * Sinon, on teste NBNO-NBEL pour det. presence aretes degenerees : * * CNTIJ2 sera le contour valide de la Face. * CNTIJ2 = CNTIJ1 ; 'SINO' ; * Si aretes degenerees => reconstruction du contour : * IPREMK1 = VRAI ; 'REPE' BK1 NBK1 ; 'SI' (PSK1 'NEG' PSK2) ; 'SI' IPREMK1 ; IPREMK1 = FAUX ; CNTIJ2 = ELK1 ; 'SINO' ; CNTIJ2 = CNTIJ2 'ET' ELK1 ; 'FINS' ; 'FINS' ; 'FIN' BK1 ; 'FINS' ; * On ordonne CNTIJ2 ; * * * * Construction d'un point ref. pour la Face Si Face situee sur les * * Bords du Cube (PCJ2) : * 'SI' IEXT1 ; NX0 = 0 ; NY0 = 0 ; NZ0 = 0 ; NX1 = 0 ; NY1 = 0 ; NZ1 = 0 ; 'REPE' BK1 NBK1 ; 'SI' (XK1 'EGA' 0.) ; NX0 = NX0 + 1 ; 'FINS' ; 'SI' (YK1 'EGA' 0.) ; NY0 = NY0 + 1 ; 'FINS' ; 'SI' (ZK1 'EGA' 0.) ; NZ0 = NZ0 + 1 ; 'FINS' ; 'SI' (XK1 'EGA' 1.) ; NX1 = NX1 + 1 ; 'FINS' ; 'SI' (YK1 'EGA' 1.) ; NY1 = NY1 + 1 ; 'FINS' ; 'SI' (ZK1 'EGA' 1.) ; NZ1 = NZ1 + 1 ; 'FINS' ; 'FIN' BK1 ; 'SI' (NMAX1 'EGA' NX0) ; PRCIJ1 = PM1 ; PNCIJ1 = -1. 0. 0. ; 'FINS' ; 'SI' (NMAX1 'EGA' NX1) ; PRCIJ1 = PM2 ; PNCIJ1 = 1. 0. 0. ; 'FINS' ; 'SI' (NMAX1 'EGA' NY0) ; PRCIJ1 = PM1 ; PNCIJ1 = 0. -1. 0. ; 'FINS' ; 'SI' (NMAX1 'EGA' NY1) ; PRCIJ1 = PM4 ; PNCIJ1 = 0. 1. 0. ; 'FINS' ; 'SI' (NMAX1 'EGA' NZ0) ; PRCIJ1 = PM1 ; PNCIJ1 = 0. 0. -1. ; 'FINS' ; 'SI' (NMAX1 'EGA' NZ1) ; PRCIJ1 = PM5 ; PNCIJ1 = 0. 0. 1. ; 'FINS' ; *List NMAX1 ; List PRCIJ1 ; List PNCIJ1 ; *Trac ((CNTIJ2 Coul Roug) Et A1) ; PTCIJ1 = ZR1 XR1 YR1 ; PTCIJ2 = YR1 ZR1 XR1 ; *Trac Qual ((CNTIJ2 Coul Rose) Et THO7U . PCI1 . Mav Et PCI1 Et PCJ2) ; 'SINO' ; PCJ2 = PCJ1 ; 'FINS' ; TIP8V . PCI1 . PCJ2 . 'MAV' = CNTIJ2 ; TIP8V . PCI1 . PCJ2 . 'EXT' = IEXT1 ; 'SI' IPREMJ1 ; IPREMJ1 = FAUX ; TIP8V . PCI1 . 'MAV' = CNTIJ2 ; 'SINO' ; TIP8V . PCI1 . 'MPT' = TIP8V . PCI1 . 'MPT' 'ET' PCJ2 ; TIP8V . PCI1 . 'MAV' = TIP8V . PCI1 . 'MAV' 'ET' CNTIJ2 ; 'FINS' ; 'FIN' BJ1 ; 'SI' IPREMI1 ; IPREMI1 = FAUX ; TIP8V . 'MAV' = TIP8V . PCI1 . 'MAV' ; 'SINO' ; TIP8V . 'MPT' = TIP8V . 'MPT' 'ET' PCI1 ; TIP8V . 'MAV' = TIP8V . 'MAV' 'ET' TIP8V . PCI1 . 'MAV' ; 'FINS' ; 'FINS' ; 'FIN' BI1 ; MPOI1 = TIP8V . 'MPT' ; * * * 2. Reperer les aretes par les 3 polyedres qui les definissent : * * * IPREMI1 = VRAI ; 'REPE' BI1 NBI1 ; MPTI1 = TIP8V . PCI1 . 'MPT' ; IPREMJ1 = VRAI ; 'REPE' BJ1 NBJ1 ; CNTIJ1 = TIP8V . PCI1 . PCJ1 . 'MAV' ; MPTIJ2 = THO7U . PCJ1 . PCI1 . 'MPT' ; CNTIJ2 = THO7U . PCJ1 . PCI1 . 'MAV' ; THO7U . PCI1 . PCJ1 = THO7U . PCJ1 . PCI1 ; 'SINO' ; IPREMK1 = VRAI ; 'REPE' BK1 NBK1 ; 'REPE' BL1 NBL1 ; CNTIL1 = TIP8V . PCI1 . PCL1 . 'MAV' ; 'SI' (NBM1 'NEG' 0) ; 'REPE' BM1 NBM1 ; THO7U . PCI1 . PCJ1 . PCL1 . 'MAV' = THO7U . PCI1 . PCJ1 . PCL1 . 'MAV' 'ET' ELK1 ; 'SINO' ; THO7U . PCI1 . PCJ1 . PCL1 . 'MAV' = ELK1 ; 'FINS' ; 'SI' IPREMK1 ; IPREMK1 = FAUX ; CNTIJ2 = ELM1 ; 'SINO' ; MPTIJ2 = MPTIJ2 'ET' PCL1 ; 'FINS' ; CNTIJ2 = CNTIJ2 'ET' ELM1 ; 'FINS' ; 'ITER' BK1 ; 'FINS' ; 'FIN' BM1 ; 'FINS' ; 'FIN' BL1 ; 'FIN' BK1 ; THO7U . PCI1 . PCJ1 . 'MPT' = MPTIJ2 ; THO7U . PCI1 . PCJ1 . 'MAV' = CNTIJ2 ; 'FINS' ; 'SI' IPREMJ1 ; IPREMJ1 = FAUX ; MAVI2 = CNTIJ2 ; 'SINO' ; MPTI2 = MPTI2 'ET' PCJ1 ; MAVI2 = MAVI2 'ET' CNTIJ2 ; 'FINS' ; * Petit Test : * 'QUIT' BI1 ; 'FINS' ; * Re-petit test : on verifie qu'en parcourant les points de MPTIJ2, * * on parcourt de facon ordonnee le contour : * * 'REPE' BX1 (NBNO MPTIJ2) ; * PX1 = MPTIJ2 'POIN' &BX1 ; * Trac Elem (CNTIJ1 Et (THO7U . PCI1 . PCJ1 . PX1 . Mav Coul Vert)) ; * 'FIN' BX1 ; 'FIN' BJ1 ; * Stockage resultats boucle BI1 : * THO7U . PCI1 . 'MPT' = MPTI2 ; THO7U . PCI1 . 'MAV' = MAVI2 ; 'SI' IPREMI1 ; IPREMI1 = FAUX ; MAV2 = MAVI2 ; 'SINO' ; MPT2 = MPT2 'ET' PCI1 ; MAV2 = MAV2 'ET' MAVI2 ; 'FINS' ; 'FIN' BI1 ; THO7U . 'MPT' = MPT2 ; THO7U . 'MAV' = MAV2 ; * * *----------------------------------------------------------------------* * * * Maillage Particules-Matrice * * * *----------------------------------------------------------------------* * * * NBI1 : Nombre de particules du tirage : * * * * FDENS1 : Facteur densite locale d'elements = Nbr. moyen d'elements * * Dans un ligament de matrice (1<FDENS1<2) ; * * RLIM1 : Distance limite projection enveloppe cellule sur centre * * particule ou sur son projete sur la(les) Faces : * FDENS1 = 1.0 ; FLIM1 = 0.7 ; RLIM1 = FLIM1 * RPAR1 ; * * * Liste de reels pour deplacement aleatoire perturbation position : * XLAMP1 = ELIGM1 * XLAMP1 ; NPERTI1 = 0 ; * * * La boucle BESSA1 recommence l'operation de maillage par la parti- * * cule qu'elle n'est pas arrivee a mailler : * 'REPE' BESSA1 5 ; * TMPARMAT : table contenant le maillage ; * IPREMI1 = VRAI ; 'REPE' BI1 NBI1 ; * PCI1 = MPOI1 'POIN' 53 ; * IAFAIR1 : le travail est A FAIRe, donc pas encore realise ; * IAFAIR1 = VRAI ; * Boucle perturbation position particule : * * => Si Echec maillage, on recommence en pertubant position PCI1 : * NBPOSI1 = 11 ; 'REPE' BPOSI1 NBPOSI1 ; * * * Boucle interne sur densite : * * => Si Echec maillage, on recommence en pertubant densite : * NBDENS1 = 15 ; FDENSI1 = FDENS1 ; FPLUSI1 = 1.1 ; FMOINI1 = 0.9 ; 'REPE' BDENS1 NBDENS1 ; * Parametres Maillage : * FDENSI1 = (FPLUSI1 ** (&BDENS1 / 2)) * FDENSI1 ; 'SINO' ; FDENSI1 = (FMOINI1 ** ((&BDENS1 - 1) / 2)) * FDENSI1 ; 'FINS' ; DENSI1 = DENS1 / FDENSI1 ; DENSMI1 = 0.5 * DENSM1 * (1. / FDENSI1 + 1.) ; ELIGMI1 = DENSMI1 / FTET1 ; DPROXI1 = RPAR1 + (0.9 * ELIGMI1) ; DFHORI1 = ((RPAR1 ** 2) - (RPARJMI1 ** 2)) ** 0.5 ; DAHORI1 = ((RPAR1 ** 2) - (RPARJMI1 ** 2)) ** 0.5 ; DSHORI1 = ((RPAR1 ** 2) - (RPARJMI1 ** 2)) ** 0.5 ; * * * On indente plus -/- BDENS1... * * * * Indice Stockage maillage : * * Indicateurs Cas Intersection : * * IFACI1 : Partciule PCI1 intersecte une Face ; * * IAREI1 : Partciule PCI1 intersecte une Arete ; * * ISOMI1 : Partciule PCI1 intersecte un Sommet ; * IFACI1 = FAUX ; IAREI1 = FAUX ; ISOMI1 = FAUX ; * Indicateur Position Centre Particule : * * IDANI1 : PCI1 est Dans le Cube Unite ; * * IHORI1 : Particule Hors du Cube Unite Et n'intersecte pas Cube ; * * Attention, un critere d'intersection permet de ne considerer que * * les intersections "franches" du Cube ; * IHORI1 = 'NON' IDANI1 ; 'SI' IHORI1 ; 'REPE' BHORI1 NBHORI1 ; I1 = &BHORI1 ; 'SI' (I1 '<' 9) ; 'SI' (DSCBPCI1 '<' DSHORI1) ; IHORI1 = FAUX ; 'QUIT' BHORI1 ; 'FINS' ; 'SINO' ; I2 = &BHORI1 - 8 ; 'SI' (I2 '<' 13) ; 'SI' ((DACBPCI1 '<' DAHORI1) 'ET' (PSCAI1 '>EG' 0.) 'ET' (PSCAI1 '<EG' 1.)); IHORI1 = FAUX ; 'QUIT' BHORI1 ; 'FINS' ; 'SINO' ; I3 = &BHORI1 - 20 ; DSPCI1 = 'ABS' DSPCI1 ; 'NOID' ; 'SI' ((DSPCI1 '<' DFHORI1) 'ET' ITDI1) ; IHORI1 = FAUX ; 'QUIT' BHORI1 ; 'FINS' ; 'FINS' ; 'FINS' ; 'FIN' BHORI1 ; 'FINS' ; * IPROXI1 : Particule a proximite d'une interface Sans la couper ; * * => aplanissement particule pour avoir dist. min. avec interface ; * * IJUSI1 : la particule tangente une interface ; * IPROXI1 = FAUX ; IJUSI1 = FAUX ; * Indicateurs Realisation Maillage : * * IPARI1 : Maillage de la particule ; * * Si Faux => pas d'intersection => pas de particule a mailler ; * * IPROJFI1: Projection conique enveloppe Cellule sur Surface Particule * * suivant Projection de PCI1 sur une des surfaces intersectees ; * IPARI1 = VRAI ; IPROJFI1 = FAUX ; IPROJAI1 = FAUX ; * Boucle sur les faces : * MPTI1 = THO7U . PCI1 . 'MPT' ; IPREMJ1 = VRAI ; 'REPE' BJ1 NBJ1 ; IFACJ1 = FAUX ; IAREJ1 = FAUX ; IDANJ1 = FAUX ; IPROXJ1 = FAUX ; IPROJAJ1 = FAUX ; * * * Test intersection Face IJ : * CNTIJ1 = THO7U . PCI1 . PCJ1 . 'MAV' ; 'SI' (&BPOSI1 'NEG' 1) ; PNFIJ1 = PNFIJ1 / DCIFIJX ; DCIFIJ1 = DCIFIJX - DVDEPI1 ; 'SINO' ; PNFIJ1 = PNFIJ1 / DCIFIJ1 ; 'FINS' ; 'NOID')) 'EGA' 1 ; 'SI' ((DCIFIJ1 '<' RPAR1) 'ET' ('NON' IHORI1)) ; IFACJ1 = VRAI ; RPARJ1 = (RPAR1 * RPAR1 - (DCIFIJ1 * DCIFIJ1)) ** 0.5 ; RLIMJ1 = FLIM1 * RPARJ1 ; 'SI' ((DCIFIJ1 '>EG' DFHORI1) 'ET' IDANJ1) ; IJUSI1 = VRAI ; VDEPI1 = 1.05 * (DCIFIJ1 - DFHORI1) * PNFIJ1 ; 'QUIT' BDENS1 ; 'FINS' ; 'SINO' ; 'SI' (DCIFIJ1 '<' DPROXI1) ; 'SI' ('NON' IPROXI1) ; IPROXI1 = VRAI 'ET' IDANJ1 ; 'FINS' ; 'FINS' ; 'FINS' ; * Densite relative a la distance a la Face : * 'SI' (IFACJ1 'ET' IDANJ1) ; DENSJ1 = DENSI1 ; 'SINO' ; DENSJ1 = FTET1 * (DCIFIJ1 - RPAR1) / FDENSI1 ; 'FINS' ; * * * Face deja maillee ? * MMATIJ1 = TMPARMAT . PCJ1 . PCI1 . 'MATR' ; 'SI' IFACJ1 ; Trac MPARIJ1 ; 'FINS' ; TMPARMAT . PCI1 . PCJ1 = TMPARMAT . PCJ1 . PCI1 ; 'SINO' ; * Maillage Face IJ => on parcourt les aretes : * MPTIJ1 = THO7U . PCI1 . PCJ1 . 'MPT' ; * * * Maillage Aretes Matrice : * * ------------------------- * * * * Boucle sur les aretes : * IPREMK1 = VRAI ; 'REPE' BK1 NBK1 ; IAREK1 = FAUX ; IPROJAK1 = FAUX ; * * * Tests pour determiner Si l'arete est deja maillee : * * IIK1 : Face IK maillee => arete IJK maillee ; * * IKI1 : Face KI maillee => idem ; * * IKJ1 : Face KJ maillee => idem ; * * Note : arete IJK pas forcement associee a IKJ Ou KIJ * * du fait du Elim & peut etre constituee de + de * * 1 elt. => tests sur mesure aretes ; * * Iij11 : test Si mesure arete recuperee test Iij1 egale * * arete IJK ; * * Iij10 : test Si mesure arete recuperee test Iij1 >egal * * arete IJK ; * ELIJK1 = THO7U . PCI1 . PCJ1 . PCK1 . 'MAV' ; TOLK1 = TOL1 * MESK1 ; * Face IK deja maillee ? * IIK11 = FAUX ; IIK10 = FAUX ; 'SI' IIK1 ; 'SI' IIK1 ; MMATIJK1 = TMPARMAT . PCI1 . PCK1 . PCJ1 . 'MATR' ; IAREK1 = VRAI ; 'SINO' ; 'FINS' ; IIK11 = MESKX1 'EGA' MESK1 TOLK1 ; IIK10 = MESKX1 '>EG' MESK1 ; 'SI' ('NON' (IIK11 'OU' IIK10)) ; ELIJK0 = THO7U . PCI1 . PCK1 . PCJ1 . 'MAV' ; 'FINS' ; 'SINO' ; MPTIK1 = TMPARMAT . PCI1 . PCK1 .'MPT' ; 'REPE' BL1 NBL1 ; ELIKL1 = THO7U . PCI1 . PCK1 . PCL1 . 'MAV' ; 'SI' IIK1 ; MMATIJK1 = TMPARMAT . PCI1 . PCK1 . PCL1 . 'MATR' ; IAREK1 = VRAI ; 'SINO' ; 'FINS' ; IIK11 = MESKX1 'EGA' MESK1 TOLK1 ; IIK10 = MESKX1 '>EG' MESK1 ; 'SI' ('NON' (IIK11 'OU' IIK10)) ; ELIJK0 = THO7U . PCI1 . PCK1 . PCL1 . 'MAV' ; 'FINS' ; 'QUIT' BL1 ; 'FINS' ; 'FIN' BL1 ; 'FINS' ; 'FINS' ; * Face KI deja maillee ? * IKI11 = FAUX ; IKI10 = FAUX ; IKJ1 = IKI1 ; 'SI' IKI1 ; 'FINS' ; 'SI' IKI1 ; 'SI' IKI1 ; MMATIJK1 = TMPARMAT . PCK1 . PCI1 . PCJ1 . 'MATR' ; IAREK1 = VRAI ; 'SINO' ; 'FINS' ; IKI11 = MESKX1 'EGA' MESK1 TOLK1 ; IKI10 = MESKX1 '>EG' MESK1 ; 'SI' ('NON' (IKI11 'OU' IKI10)) ; ELIJK0 = THO7U . PCK1 . PCI1 . PCJ1 . 'MAV' ; 'FINS' ; 'SINO' ; MPTKI1 = TMPARMAT . PCK1 . PCI1 .'MPT' ; 'REPE' BL1 NBL1 ; ELKIL1 = THO7U . PCK1 . PCI1 . PCL1 . 'MAV' ; 'SI' IKI1 ; MMATIJK1 = TMPARMAT . PCK1 . PCI1 . PCL1 . 'MATR' ; IAREK1 = VRAI ; 'SINO' ; 'FINS' ; IKI11 = MESKX1 'EGA' MESK1 TOLK1 ; IKI10 = MESKX1 '>EG' MESK1 ; 'SI' ('NON' (IKI11 'OU' IKI10)) ; ELIJK0 = THO7U . PCK1 . PCI1 . PCL1 . 'MAV' ; 'FINS' ; 'QUIT' BL1 ; 'FINS' ; 'FIN' BL1 ; 'FINS' ; 'FINS' ; * Face KJ deja maillee ? * IKJ11 = FAUX ; IKJ10 = FAUX ; 'SI' IKJ1 ; 'ET' ('NON' IKI11) ; 'FINS' ; 'SI' IKJ1 ; 'SI' IKJ1 ; MMATIJK1 = TMPARMAT . PCK1 . PCJ1 . PCI1 . 'MATR' ; IAREK1 = VRAI ; 'SINO' ; 'FINS' ; IKJ11 = MESKX1 'EGA' MESK1 TOLK1 ; IKJ10 = MESKX1 '>EG' MESK1 ; 'SI' ('NON' (IKJ11 'OU' IKJ10)) ; ELIJK0 = THO7U . PCK1 . PCJ1 . PCI1 . 'MAV' ; 'FINS' ; 'SINO' ; MPTKJ1 = TMPARMAT . PCK1 . PCJ1 . 'MPT' ; 'REPE' BL1 NBL1 ; ELKJL1 = THO7U . PCK1 . PCJ1 . PCL1 . 'MAV' ; 'SI' IKJ1 ; MMATIJK1 = TMPARMAT . PCK1 . PCJ1 . PCL1 . 'MATR' ; IAREK1 = VRAI ; 'SINO' ; 'FINS' ; IKJ11 = MESKX1 'EGA' MESK1 TOLK1 ; IKJ10 = MESKX1 '>EG' MESK1 ; 'SI' ('NON' (IKJ11 'OU' IKJ10)) ; ELIJK0 = THO7U . PCK1 . PCJ1 . PCL1 . 'MAV' ; 'FINS' ; 'QUIT' BL1 ; 'FINS' ; 'FIN' BL1 ; 'FINS' ; 'FINS' ; * Traitement des cas : * IXX10 = IIK10 'OU' IKI10 'OU' IKJ10 ; IIJK1 = VRAI ; 'SI' IIK11 ; IXX10 = FAUX ; IIJK1 = FAUX ; 'FINS' ; 'SI' IKI11 ; IXX10 = FAUX ; IIJK1 = FAUX ; 'FINS' ; 'SI' IKJ11 ; IXX10 = FAUX ; IIJK1 = FAUX ; 'FINS' ; 'SI' IXX10 ; IIJK1 = FAUX ; 'FINS' ; * Une partie de l'arete est-elle deja maillee ? * 'SI' IIJK1 ; IPREME1 = VRAI ; 'SI' (IIK1 'OU' IKI1 'OU' IKJ1) ; * Une partie de l'arete est maillee : * IPREME1 = FAUX ; 'FINS' ; * * * Maillage Arete : * * Iterations sur elts. arete du fait du Elim ; * 'REPE' BELK1 NBELK1 ; IAREE1 = FAUX ; IDANK1 = FAUX ; * PSK12N : vecteur norme PSK1-SK2 ; * * PSK1CI1 : vecteur PSK1-PCI1 ; * * PNAKCI1 : normale a l'arete passant par PCI1 ; * PNAKCI1 = PSK1CI1 'MOIN' * PPCIAK1 : projete de PCI1 sur l'arete ; * * DCIAK1 : distance PCI1-arete ; * * DCISKi : distance PCI1-PSKi ; * * DENSK0-DENSK1-DENSK2 : densites centre-extrem. arete ; * DENSK0 = FTET1 * (DCIAK1 - RPAR1) / FDENSI1 ; DENSK1 = FTET1 * (DCISK1 - RPAR1) / FDENSI1 ; DENSK2 = FTET1 * (DCISK2 - RPAR1) / FDENSI1 ; * PSK1PPK1, PSK2PPK1 : vecteur pour test sur arete ; * * IDANK1=VRAI, PPCIAK1 appartient au segment [PSK1,PSK2] : * 'ET' (DSK1PPK1 '<EG' MESE1) 'ET' (DSK2PPK1 '<EG' MESE1) ; * Tests Intersection Sommets : * IISK1 = DCISK1 '<' RPAR1 ; IISK2 = DCISK2 '<' RPAR1 ; ISOMI1 = IISK1 'OU' IISK2 ; * Test Intersection Arete : * IAREE1 = (DCIAK1 '<' RPAR1) 'ET' (IDANK1 'OU' ISOMI1) ; IAREE1 = IAREE1 'ET' ('NON' IHORI1) ; 'SI' IAREE1 ; * DPPKPKP0 : Dist. PPCIAK1-Points Intersec. Part-Arete * DPPKPKP0 = (RPAR1 * RPAR1 - (DCIAK1 ** 2)) ** 0.5 ; * PSKP1, PSKP2 : Points Intersec. Part-Arete ; * DPPKPKP1 = DPPKPKP0 / DSK1PPK1 ; DPPKPKP2 = DPPKPKP0 / DSK2PPK1 ; 'SI' (DCIAK1 '>EG' DAHORI1) ; IJUSI1 = VRAI ; 'SI' IDANI1 ; VDEPI1 = -1.05 * (DCIAK1 - DAHORI1) * PNAKCI1 / DCIAK1 ; 'SINO' ; 'SI' IDANJ1 ; B1 = DCIFIJ1 ; 'SI' (DCIAK1 '<' B1) ; B2 = 0. ; 'SINO' ; B2 = ((DCIAK1 ** 2) - (B1 ** 2)) ** 0.5 ; 'FINS' ; 'SINO' ; B2 = DCIFIJ1 ; 'SI' (DCIAK1 '<' B2) ; B1 = 0. ; 'SINO' ; B1 = ((DCIAK1 ** 2) - (B2 ** 2)) ** 0.5 ; 'FINS' ; VDEPI1 = PNFIJ1 ; 'FINS' ; ADEPI1 = ((DAHORI1 ** 2) - (B1 ** 2)) ** 0.5 ; ADEPI1 = B2 - ADEPI1 ; VDEPI1 = 1.05 * ADEPI1 * VDEPI1 ; 'FINS' ; 'QUIT' BDENS1 ; 'FINS' ; * Elements pour calcul densites : * DCJAK1 = ((DCIAK1 ** 2) - (DCIFIJ1 ** 2)) ** 0.5 ; XNECNTK1 = (LCNTIJ1 - MESK1) / (1.0 * DENSI1) ; THETK1 = 'ATG' (DPPKPKP0 / DCJAK1) ; THETK1 = THETK1 * PI / 180. ; * Determination du Cas projection contour : * IPROJAK1 = (DCJAK1 '<' RLIMJ1) 'OU' ('NON' IDANJ1) ; 'SI' ISOMI1 ; * Intersection sommets : * * Calcul densite caracteristique : * DENSKP0 = (1. * RPARJ1 * THETK1) / XNECNTK1 ; * Maillage : * 'SI' (IISK1 'ET' IISK2) ; 'SINO' ; 'SI' IISK1 ; PSKX PSKPX = PSK2 PSKP2 ; PSK2 PSKP2 = PSK1 PSKP1 ; PSK1 PSKP1 = PSKX PSKPX ; DENSKX = DENSK2 ; DENSK2 = DENSK1 ; DENSK1 = DENSKX ; 'FINS' ; DENSKP1 = 1. / (0.5 / DENSKP0 + (0.5 / DENSK1)) ; * DENSKP1 = 1. * (0.5 * DENSKP0 + (0.5 * DENSK1)) ; PSOMI1 = PSK2 ; * MMATIJK0 = PSK1 'DROI' PSKP1 'DINI' DENSK1 * 'DFIN' DENSKP0 ; * MMATIJK0 = MMATIJK0 'COUL' 'JAUN' ; * MPARIJK0 = PSKP1 'DROI' PSK2 'DINI' DENSKP0 * 'DFIN' DENSKP1 ; MMATIJK0 = PSK1 'DROI' PSKP1 'DINI' DENSKPX 'DFIN' DENSKPX ; MPARIJK0 = PSKP1 'DROI' PSK2 'DINI' DENSKPX 'DFIN' DENSI1 ; 'FINS' ; 'SINO' ; * Intersection uniquement Arete : * 'SI' IDANJ1 ; DENSKP0 = (2. * RPARJ1 * (PI - THETK1)) / XNECNTK1 ; DENSKP1 = DENSK1 ; DENSKP2 = DENSK2 ; 'SINO' ; DENSKP0 = (2. * RPARJ1 * THETK1) / XNECNTK1 ; DCJSK1 = (DCISK1 ** 2 - (DCIFIJ1 ** 2)) ** 0.5 ; DCJSK2 = (DCISK2 ** 2 - (DCIFIJ1 ** 2)) ** 0.5 ; DENSKP1 = DENSK1 * DCJAK1 * RPARJ1 / (DCJSK1 ** 2) ; DENSKP2 = DENSK2 * DCJAK1 * RPARJ1 / (DCJSK2 ** 2) ; 'FINS' ; DENSKP1 = 1. / (0.5 / DENSKP0 + (0.5 / DENSKP1)) ; DENSKP2 = 1. / (0.5 / DENSKP0 + (0.5 / DENSKP2)) ; * Maillage Aretes Matrice-Particule : * MMATIJK0 = PSK1 'DROI' PSKP1 'DINI' DENSKX1 'DFIN' DENSKPX1 ; MMATIJK0 = MMATIJK0 'ET' 'SI' IPROJAK1 ; 'FINS' ; MPARIJK0 = PSKP1 'DROI' PPCIAK1 'DINI' DENSKPX1 'DFIN' DENSKPX0 ; MPARIJK0 = MPARIJK0 'ET' 'FINS' ; 'SINO' ; * Pas Intersection Arete : * * Si Distance Sommet-PPCIAK1 > Densite calcule * Et Si PPCIAK1 sur l'arete => on maille en 2 parties : * * 'SI' IHORI1 ; * MMATIJK0 = PSK1 'DROI' PSK2 'DINI' DENSK1 * 'DFIN' DENSK2 ; * 'SINO' ; 'SI' ((DSK1PPK1 '>EG' DENSK1) 'ET' (DSK2PPK1 '>EG' DENSK2) 'ET' IDANK1) ; MMATIJK0 = PSK1 'DROI' PPCIAK1 'DINI' DENSK1 'DFIN' DENSK0 ; MMATIJK0 = MMATIJK0 'ET' 'SINO' ; MMATIJK0 = PSK1 'DROI' PSK2 'DINI' DENSK1 'DFIN' DENSK2 ; 'FINS' ; 'SI' (DCIAK1 '<' DPROXI1) ; IPROXI1 = VRAI 'ET' IDANK1 ; 'FINS' ; * 'FINS' ; 'FINS' ; 'SI' IPREME1 ; IPREME1 = FAUX ; MMATIJK1 = MMATIJK0 ; 'SINO' ; MMATIJK1 = MMATIJK1 'ET' MMATIJK0 ; 'FINS' ; 'SI' IAREE1 ; PPCIAE0 = PPCIAK1 ; 'SI' IAREK1 ; MPARIJK1 = MPARIJK1 'ET' MPARIJK0 ; 'SINO' ; IAREK1 = VRAI ; MPARIJK1 = MPARIJK0 ; 'FINS' ; 'FINS' ; 'FIN' BELK1 ; 'SINO' ; 'SI' IAREK1 ; * 'MESS' ' Arete intersectee Et deja maillee' ; AIJK1 = ELIJK1 ; * PSK12N : vecteur norme PSK1-SK2 ; * * PSK1CI1 : vecteur PSK1-PCI1 ; * * PNAKCI1 : normale a l'arete passant par PCI1 ; * PNAKCI1 = PSK1CI1 'MOIN' * PPCIAK1 : projete de PCI1 sur l'arete ; * * DCIAK1 : distance PCI1-arete ; * DCJAK1 = ((DCIAK1 ** 2) - (DCIFIJ1 ** 2)) ** 0.5 ; IPROJAK1 = (DCJAK1 '<' RLIMJ1) 'OU' ('NON' IDANJ1) ; 'SI' IPROJAK1 ; PPCIAE0 = PPCIAK1 ; 'FINS' ; 'FINS' ; 'FINS' ; * Stockage Arete Dans la table : * TMPARMAT . PCI1 . PCJ1 . PCK1 . 'MATR' = MMATIJK1 ; 'SI' IPREMK1 ; IPREMK1 = FAUX ; CNTMATJ1 = MMATIJK1 ; 'SINO' ; CNTMATJ1 = CNTMATJ1 'ET' MMATIJK1 ; TMPARMAT . PCI1 . PCJ1 . 'MPT' = TMPARMAT . PCI1 . PCJ1 . 'MPT' 'ET' PCK1 ; 'FINS' ; 'SI' IAREK1 ; 'SI' IAREJ1 ; CNTPARJ1 = CNTPARJ1 'ET' MPARIJK1 ; 'SINO' ; IAREJ1 = VRAI ; CNTPARJ1 = MPARIJK1 ; 'FINS' ; 'SI' IPROJAK1 ; 'SI' IPROJAJ1 ; 'SI' ISOMI1 ; PPCIAK0 = PSOMI1 ; 'SINO' ; 'MESS' ' ####" 2x Projection selon point sur aretes pour 1 meme contour ?' ; 'FINS' ; 'SINO' ; IPROJAJ1 = VRAI ; PPCIAK0 = PPCIAE0 ; 'FINS' ; 'FINS' ; 'FINS' ; 'FIN' BK1 ; * * * Maillage Surfaces Matrice/Particules : * * -------------------------------------- * * * * Maillage surface IJ : * IFACJ1 = IFACJ1 'ET' (IDANJ1 'OU' IAREJ1) ; 'SI' IFACJ1 ; 'SI' IAREJ1 ; * Construction Contour(s) Si intersection Arete-Sommet : * 'SI' ISOMI1 ; CNTPARJ2 = CNTMATJ2 'PROJ' 'CONI' PSOMI1 'SPHE' PCI1 PPARI1 ; 'SINO' ; 'SI' IPROJAJ1 ; CNTPARJ2 = CNTMATJ2 'PROJ' 'CONI' PPCIAK0 'SPHE' PCI1 PPARI1 ; 'SINO' ; CNTPARJ2 = CNTMATJ1 'PROJ' 'CONI' PPCFIJ1 'SPHE' PCI1 PPARI1 ; 'FINS' ; 'FINS' ; CNTPARJ1 = CNTPARJ1 'ET' CNTPARJ2 ; 'ELIM' CNTPARJ1 TOL1 ; CNTMATJ1 = CNTMATJ1 'ET' CNTPARJ2 ; * Appel a Surf pour intersection Arete(s)-Sommet : * CNTMATJ0 = TCCONJ1 . &BCCONJ1 ; 'SI' IPROJAJ1 ; 'SINO' ; 'FINS' ; 'SI' (&BCCONJ1 'EGA' 1) ; MMATIJ1 = MMATIJ0 ; 'SINO' ; MMATIJ1 = MMATIJ1 'ET' MMATIJ0 ; 'FINS' ; 'FIN' BCCONJ1 ; 'SI' IANNULS1 ; 'ITER' BDENS1 ; 'SINO' ; MTOTIJ1 = MMATIJ1 'ET' MPARIJ1 ; 'SI' ((SCNTIJ1 - STOTIJ1) '>' (1.E-5 * SCNTIJ1)) ; 'MESS' ' ##### Echec maillage surface ! '; 'ITER' BDENS1 ; 'FINS' ; 'FINS' ; 'SINO' ; * Construction Contour(s) Si intersection Face : * * Maillage Surface intersection Face : * 'SI' IANNULS1 ; 'ITER' BDENS1 ; 'SINO' ; MTOTIJ1 = MMATIJ1 'ET' MPARIJ1 ; 'SI' ((SCNTIJ1 - STOTIJ1) '>' (1.E-5 * SCNTIJ1)) ; 'MESS' ' ##### Echec maillage surface ! '; 'ITER' BDENS1 ; 'FINS' ; 'FINS' ; 'FINS' ; 'SINO' ; * Construction Contour(s) aucune intersection : * * Maillage Surface : * 'SI' IHORI1 ; 'SINO' ; 'FINS' ; 'SI' IANNULS1 ; 'ITER' BDENS1 ; 'SINO' ; 'SI' ((SCNTIJ1 - SMATIJ1) '>' (1.E-5 * SCNTIJ1)) ; 'MESS' ' ##### Echec maillage surface ! '; 'ITER' BDENS1 ; 'FINS' ; 'FINS' ; 'FINS' ; 'SI' IFACJ1 ; 'FINS' ; TMPARMAT . PCI1 . PCJ1 . 'MATR' = MMATIJ1 ; 'FINS' ; * Analyse du cas traite : * 'SI' IFACJ1 ; 'SI' IFACI1 ; ENVPARI1 = ENVPARI1 'ET' MPARIJ1 ; 'SINO' ; IFACI1 = VRAI ; ENVPARI1 = MPARIJ1 ; 'FINS' ; 'SI' IAREJ1 ; 'SI' ('NON' IAREI1) ; IAREI1 = VRAI ; 'FINS' ; 'SI' ((DCIFIJ1 '<' RLIM1) 'OU' ('NON' IDANI1)) ; 'SI' IPROJAJ1 ; 'SI' IPROJAI1 ; * PPCIAJ0 = PPCIAJ0 'PLUS' (PPCIAK0 'MOIN' PCI1) ; 'SINO' ; IPROJAI1 = VRAI ; PPCIAJ0 = PPCIAK0 ; 'FINS' ; 'SINO' ; 'SI' IPROJFI1 ; IJUSI1 = VRAI ; 'SINO' ; IPROJFI1 = VRAI ; PPCFIJ0 = PPCFIJ1 ; 'FINS' ; 'FINS' ; 'FINS' ; 'SINO' ; 'SI' ((DCIFIJ1 '<' RLIM1) 'OU' ('NON' IDANI1)) ; 'SI' IPROJFI1 ; IJUSI1 = VRAI ; 'SINO' ; IPROJFI1 = VRAI ; PPCFIJ0 = PPCFIJ1 ; 'FINS' ; 'FINS' ; 'FINS' ; 'FINS' ; * Stockage Surfaces Dans la table : * 'SI' IPREMJ1 ; IPREMJ1 = FAUX ; ENVMATI1 = MMATIJ1 ; 'SINO' ; ENVMATI1 = ENVMATI1 'ET' MMATIJ1 ; TMPARMAT . PCI1 . 'MPT' = TMPARMAT . PCI1 . 'MPT' 'ET' PCJ1 ; 'FINS' ; 'FIN' BJ1 ; * * * Maillage Volumes Matrice-Particules : * * ------------------------------------- * * * * Enveloppes Connexes Volumes a mailler : * 'SI' IFACI1 ; 'SI' ISOMI1 ; 'SINO' ; 'SI' IAREI1 ; 'SINO' ; 'FINS' ; 'SI' IPROJFI1 ; 'SI' IJUSI1 ; IJUSI1 = FAUX ; VDEPI1 = VDEPI1 / ADEPI1 ; VDEPI1 = 1.05 * (ADEPI1 - DAHORI1) * VDEPI1 ; 'QUIT' BDENS1 ; 'SINO' ; 'FINS' ; 'SINO' ; 'SI' IPROJAI1 ; 'SINO' ; 'FINS' ; 'FINS' ; 'FINS' ; ENVPARI1 = ENVPARI1 'ET' ENVPARI2 ; 'SI' IPROXI1 ; 'MESS' ' - ATTENTION : PROXIMITE particule-enveloppe cellule detectee' ; 'MESS' ' => Aplanissement zone surface particule trop proche cellule' ; DX1 DY1 DZ1 = (XM1 - XCI1) (YM1 - YCI1) (ZM1 - ZCI1) ; DMPI1 = ((DX1 ** 2) + (DY1 ** 2) + (DZ1 ** 2)) ** 0.5 ; XN1 YN1 ZN1 = (XP1 - XM1) (YP1 - YM1) (ZP1 - ZM1) ; XNXN1 = ((XN1 ** 2) + (YN1 ** 2) + (ZN1 ** 2)) ** 0.5 ; XN1 YN1 ZN1 = (XN1 / XNXN1) (YN1 / XNXN1) (ZN1 / XNXN1) ; DUI1 = (DPROXI1 - DMPI1) ; CHUI1 = (CHUXI1 'ET' CHUYI1 'ET' CHUZI1) * MASQI1 ; 'FINS' ; ENVMATI1 = ENVMATI1 'ET' ENVPARI2 ; * 'ELIM' ENVMATI1 TOL1 ; 'SINO' ; 'SI' IDANI1 ; * Si Particule proche Face Cellule (d<DPROXI1), on fait un meplat * * Sur Particule pour assurer distance min. : * 'SI' IPROXI1 ; 'MESS' ' - ATTENTION : PROXIMITE particule-enveloppe cellule detectee' ; 'MESS' ' => Aplanissement zone surface particule trop proche cellule' ; DX1 DY1 DZ1 = (XM1 - XCI1) (YM1 - YCI1) (ZM1 - ZCI1) ; DMPI1 = ((DX1 ** 2) + (DY1 ** 2) + (DZ1 ** 2)) ** 0.5 ; XN1 YN1 ZN1 = (XP1 - XM1) (YP1 - YM1) (ZP1 - ZM1) ; XNXN1 = ((XN1 ** 2) + (YN1 ** 2) + (ZN1 ** 2)) ** 0.5 ; XN1 YN1 ZN1 = (XN1 / XNXN1) (YN1 / XNXN1) (ZN1 / XNXN1) ; DUI1 = (DPROXI1 - DMPI1) ; CHUI1 = (CHUXI1 'ET' CHUYI1 'ET' CHUZI1) * MASQI1 ; 'FINS' ; ENVMATI1 = ENVMATI1 'ET' ENVPARI1 ; 'ELIM' ENVMATI1 TOL1 ; 'SINO' ; IPARI1 = FAUX ; 'FINS' ; 'FINS' ; * * * Maillage Volume Matrice : * 'SI' (IFACI1 'OU' ('NON' IPARI1)) ; 'SINO' ; 'FINS' ; * Test Resultat Volu : * 'SI' IANNULV1 ; 'SINO' ; * Test sur Enveloppes Resultat : * 'MESS' ' ##### ECHEC Maillage Volume Matrice !' ; 'SINO' ; TMPARMAT . PCI1 . 'MATR' = MMATI1 ; IAFAIR1 = FAUX ; 'FINS' ; 'FINS' ; * * * Maillage Volume Particule : * 'SI' IPARI1 ; * Test Resultat Volu : * 'SI' IANNULV2 ; 'SINO' ; * Test sur Enveloppes Resultat : * 'MESS' ' ##### ECHEC Maillage Volume particule ' ; IAFAIR1 = VRAI ; 'SINO' ; IAFAIR1 = IAFAIR1 'OU' FAUX ; 'FINS' ; 'FINS' ; IANNULV1 = IANNULV1 'OU' IANNULV2 ; 'FINS' ; * * 'SI' ('NON' IAFAIR1) ; MOT1 = 'CHAI' ' ***** Particule No ' &BI1 ' / ' NBI1 ' : maillage REUSSI !' ; 'MESS' MOT1 ; 'QUIT' BDENS1 ; 'SINO' ; MOT1 = 'CHAI' ' ##### Particule No ' &BI1 ' / ' NBI1 ' : maillage ECHOUE !' ; 'MESS' MOT1 ; 'FINS' ; * * 'FIN' BDENS1 ; * * 'SI' IAFAIR1 ; 'SI' (&BPOSI1 '>' 1) ; 'FINS' ; 'SI' (&BPOSI1 'EGA' NBPOSI1) ; 'QUIT' BPOSI1 ; 'FINS' ; IPERI1 = VRAI ; 'SI' IJUSI1 ; 'MESS' ' - ATTENTION : Intersection PAS ASSEZ FRANCHE detectee' ; 'MESS' ' => Deplacement position particule' ; VDEPI1 = ('FLOT' &BPOSI1) * VDEPI1 ; IOKAY1 = VRAI ; 'REPE' BJ1 NBJ1 ; IOKAY1 = FAUX ; 'QUIT' BJ1 ; 'FINS' ; 'FINS' ; 'FIN' BJ1 ; 'SI' IOKAY1 ; IPERI1 = FAUX ; 'SINO' ; 'MESS' ' - ATTENTION : Deplacement calcule NON VALIDE ' ; 'FINS' ; 'SINO' ; 'MESS' ' - ATTENTION : ECHEC realisation maillage ' ; 'FINS' ; 'SI' IPERI1 ; 'TITR' ' Perturbation position ' ; 'MESS' ' => Perturbation aleatoire position particule' ; NBPERT1 = NBI1 - NPERTI1 ; 'SI' (NBPERT1 '<EG' 1) ; 'QUIT' BPOSI1 ; 'FINS' ; 'REPE' BPERT1 NBPERT1 ; NPERTI1 = NPERTI1 + 1 ; XVDEPI1 = ('COS' PHII1) * ('COS' THEI1) ; YVDEPI1 = ('COS' PHII1) * ('SIN' THEI1) ; ZVDEPI1 = ('SIN' PHII1) ; VDEPI1 = XVDEPI1 YVDEPI1 ZVDEPI1 ; 'SI' (&BPOSI1 '>' 5) ; AMPI1 = ('FLOT' &BPOSI1) * AMPI1 ; 'FINS' ; VDEPI1 = AMPI1 * VDEPI1 ; IOKAY1 = VRAI ; 'REPE' BJ1 NBJ1 ; IOKAY1 = FAUX ; 'QUIT' BJ1 ; 'FINS' ; 'FINS' ; 'FIN' BJ1 ; 'SI' IOKAY1 ; 'MESS' ' i) Perturbation reussie apres ' &BPERT1 ' essai(s)' ; 'QUIT' BPERT1 ; 'FINS' ; 'FIN' BPERT1 ; 'FINS' ; VDEPI0 = VDEPI1 ; 'SINO' ; 'QUIT' BPOSI1 ; 'FINS' ; 'FIN' BPOSI1 ; * * *--------------------------- Fin Maillage -----------------------------* * * 'SI' IAFAIR1 ; 'SI' ('NON' IANNULV1) ; 'FINS' ; ISTOP1 = FAUX ; IESSA1 = VRAI ; 'SI' FAUX ; * 'SI' ('NEG' ('VALE' 'TRAC') 'PSC') ; ISTOP1 IESSA1 = 'CHOI' ' Erreur maillage : STOPer ou ESSAyer a nouveau ?' ISTOP1 IESSA1 ; 'FINS' ; 'SI' ISTOP1 ; 'QUIT' BESSA1 ; 'SINO' ; 'SI' IESSA1 ; 'MESS' ' => Re-initialisation du schema ' ; MPOI1 = PCI1 'ET' MPOI0 ; 'ITER' BESSA1 ; 'SINO' ; 'ITER' BI1 ; 'FINS' ; 'FINS' ; 'SINO' ; 'SI' IPARI1 ; MTOTI1 = MMATI1 'ET' MPARI1 ; 'SINO' ; MTOTI1 = MMATI1 ; 'FINS' ; TMPARMAT . PCI1 . 'MAIL' = MTOTI1 ; 'SI' IPREMI1 ; IPREMI1 = FAUX ; TMPARMAT . 'MATR' = MMATI1 ; 'SI' IPARI1 ; 'FINS' ; TMPARMAT . 'MAIL' = MTOTI1 ; 'SINO' ; TMPARMAT . 'MPCP' = TMPARMAT . 'MPCP' 'ET' PCI1 ; TMPARMAT . 'MATR' = TMPARMAT . 'MATR' 'ET' MMATI1 ; 'SI' IPARI1 ; 'SINO' ; 'FINS' ; 'FINS' ; TMPARMAT . 'MAIL' = TMPARMAT . 'MAIL' 'ET' MTOTI1 ; 'FINS' ; 'SI' (&BI1 'EGA' NBI1) ; 'QUIT' BESSA1 ; 'FINS' ; 'FINS' ; * * 'FIN' BI1 ; 'FIN' BESSA1 ; MMAT1 = TMPARMAT . 'MATR' ; MTOT1 = TMPARMAT . 'MAIL' ; 'ELIM' MTOT1 TOL1 ; * * * Test Conformite Maillage Total : * * * 'MESS' '-------------------------- MAILLAGE REUSSI --------------------------' ; 'SI' ITRA1 ; 'FINS' ; 'SINO' ; 'MESS' '########################## MAILLAGE ECHOUE ##########################' ; 'FINS' ; * * 'FINP' TMPARMAT ; *-------------------- FIN DE LA PROCEDURE INCLUSIO --------------------*
© Cast3M 2003 - Tous droits réservés.
Mentions légales