* ADAPTE PROCEDUR PASCAL 22/04/27 21:15:01 11356 *----------------------------------------------------------------------* * Option MAIL * *----------------------------------------------------------------------* si (ega mot1 'MAIL') ; *------------------------ Lecture des arguments -----------------------* * Lecture du chargement * Lecture des mots-cles imot1 = faux ; imot2 = faux ; imot3 = faux ; repe b1 3 ; si (ega moti1 'DIST') ; imot1 = vrai ; iter b1 ; fins ; imot2 = vrai ; iter b1 ; fins ; imot3 = vrai ; iter b1 ; fins ; erreur 19 ; fins ; fin b1 ; si (non imot1) ; erreur '***** ERREUR : il manque la donnee de DIST' ; fins ; si (non imot2) ; lmin1 = -1. ; fins ; si (non imot3) ; dabs1 = -1. ; sino ; si (dabs1 > dmin1) ; dabs1 = dmin1 ; fins ; fins ; *---------------------- Pre-traitement maillages ----------------------* * Extraction des maillages : tgeo1 = table ; i0 = 0 ; modi1 = tmod1 . i0 ; i0 = i0 + 1 ; fins ; fins ; fin b1 ; * Maillage fin : i0 = &b1 - 1 ; si (&b1 ega 1) ; geo1 = tgeo1 . i0 ; sino ; geoi1 = tgeo1 . i0 ; geo1 = geoi1 ; fins ; fins ; fin b1 ; fins ; fins ; * Tolerance geometrique : tol1 = 1.e-5 * dmin1 ; * Verification points(geo2) inclus dans points(geo1) *elim (geo1 et geo2) tol1 ; erre '***** ERREUR : les points du maillage fourni doivent etre confondus avec ceux du maillage a adapter' ; fins ; *----------------------------- Traitement -----------------------------* * Initialisation objets resultats : ttps3 = table ; tgeo3 = table ; ttps4 = table ; trig4 = table ; * Coordonnees des noeuds de geo2 : * Quelques initialisations : dmin2 = dmin1 ** 2 ; idabs1 = dabs1 > -1. ; si idabs1 ; dabs2 = dabs1 ** 2 ; sino ; dabs2 = dabs1 ; fins ; rmini1 = 0. ; i0 = 0 ; ir0 = 0 ; tpsi1 = ttps1 . (&b1 - 1) ; geoi1 = tgeo1 . (&b1 - 1) ; * On evite des traitements peu utiles en forcant le pas adaptation * a etre au moins egal au part d'apport de matiere : si (geoi1 ega geoi1p) ; iter b1 ; fins ; * Maillage grossier : ttps3 . i0 = tpsi1 ; tgeo3 . i0 = geoi1 ; i0 = i0 + 1 ; iter b1 ; fins ; * Distances a la source : si (&b1 ega 1) ; ptxi1p = ptxi1 ; fins ; xi1 yi1 zi1 = (xi1 - xp1) (yi1 - yp1) (zi1 - zp1) ; ri1 = (xi1 ** 2) + (yi1 ** 2) + (zi1 ** 2) ; * geoi3 : maillage grossier a retrancher de geoi1 : geo3 = geoi1 ; ttps4 . ir0 = tpsi1 ; trig4 . ir0 = rigi1 ; ir0 = ir0 + 1 ; sino ; si ((ltrj1 '>' lmin1) ou (&b1 ega 1) ou (rmini1 '<' dabs2)) ; *mess 'adaptation' ; ptxi1p = ptxi1 ; geo3 = geoi3 et geoix ; lree1 = lree1 et tpsi1 ; geoi3p = geoi3 ; fins ; ttps4 . ir0 = tpsi1 ; trig4 . ir0 = rigi1 ; ir0 = ir0 + 1 ; sino ; geo3 = geo3 et geoix ; fins ; fins ; geoi1p = geoi1 ; * Tables resultat : ttps3 . i0 = tpsi1 ; tgeo3 . i0 = geo3 ; i0 = i0 + 1 ; *trac face geo3 ; fin b1 ; *lree1 = lree1 enle 1 ; * Chargements de sortie : * Sortie des resultats : * finsi Option MAIL : fins ; *----------------------------------------------------------------------* * Si mot-cle option pas reconnu : erreur ! erreur 251 ; finproc ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales