******************************************************************************* ******************************************************************************* Concerne le calcul des D_Mx et des Ct_SV pour les processeurs qui ont les deux. ******************************************************************************* ******************************************************************************* Avant utilisation des F_Entry ============================= A l entrée de la D_loop, un seul appel aux Tr connectés aux IODMX Cl. (ils seront appellés dans le Step_Advance=> Ils peuvent donc ne pas calculer leur Ct_SV). Dans la D_loop: Appel des IODMX_Tr Si Convergence > Step advance sans OSTART (Conséquence : ces IODMX_Tr ne seront pas ré-appellés) Si non > Itération, qui IQDROP les Ct. Si abanbon, ils auront été OSTARTés avant abandon, et seront donc ré-appellés dans le step_Ad. ==> Donc, il faut impérativement calculer D ET les Ct_SVs en cours de D_loop. =================================================================================== =========================== Proposition pour l avenir: =========================== Création d un flag ZO_SENT = .True. lors de l appel des S_Entry, .False. après; En cours de D_loop F_entry sont appellés, avec refus des Ct_SV; En cours de Step_Advance, tous les T_Entrys sont appellés. Conséquence pour la programmation des Processeurs: S_entries : font leur environnement, et finissent au F_Entry si l on désire calculer une D_Mx variable, ou calculent seuls la D_Mx si invariante, auquel cas le F_Entry est bidon. D_Entrys ne calculent QUE les D_Mx variables. F_Entrys ne calculent QUE les Fi et les paramètres. T_Entrys ne calculent QUE les Ct_SV (variables ou pas). On propose d utiliser un OZPLVL(x) pour réclamer ce dernier algorithme, et rester rétro_compatibles.. CRITIQUES ET SUGGESTIONS: ========================= vendredi 09/09/1994 (Al1, apres rales Antonionesques et discus/JYG): =================== Beaucoup de choses a revoir pour l appel des transferts, pensés dans l état actuel hors problématique D_Loop; En complément Ct et D Entrys, prévoir : * Calcul des Mx et des Fi pas forcément au même endroit. * évaluer l intérêt des classes de Tr pour hiérarchiser l'appel des Tr dans la D_Loop, de manière semblable auX OINI S_Entry; (de fait, c'est déja partiellement fait, puisque les no D_Tr sont traités à part, ainsi que les K_Tr); exemple de pb actuels : Les pseudo K_Tr dependent d autres tr sans reciprocite => ils devraient etre appelles apres (independament de leur situation dans l arbre; Macros transferts : On aimerait pouvoir utiliser l info disponible apres elimination sous_abre pour formuler leur equation => satus bit IOFMTR ? (Ils sont en fait des modèles attachés à leur famille (ce qui est touchant). Concernant le bit IODMX : on constate qu il existe des Tr SANS IODMX flag qui calculent une D_Mx : exemple (from Antonio) : TENERG Il s'agit d'une équation de cellule, mais conectée a d'autres cellules (U,V) de par le schéma en grilles décalées, et de D_Mx sur les autres T_energ; (Appellons les Pseudo_Cell TR); Ils ont donc à faire Fi+dFi, ce que Ker pourrait faire au meme moment que Eta+dEta. Rq : Actuellement, ce transfert est appellé deux fois : en tête de la D_loop -de par la connectivité- et dans la step_ad, d ou un test IF ZSOLVE .and. NITER.eq.0 (pour etre sùr...) On propose un flag par composante pour analogie FiZ+dFi de IOCUML : IOPSCL (Pseudo_Cell Tr) POur ces pseudo_Cell, il NE faut PAS utiliser leur D_Mx dans la D_loop, car on veut que leur dFi restent nuls pour les D_Mx Tr.