$$$$ DUPONT2 * DUPONT2 PROCEDUR MB234859 24/09/11 21:15:02 12008 'DEBPROC' DUPONT2 PRECED*'TABLE'; *----------------------------------------------------------------------* * * * D U P O N T 2 * * ------------- * * * * RESOLUTION D'UN PROBLEME DE THERMIQUE TRANSITOIRE NON-LINEAIRE * * METHODE A UN PAS DE TEMPS ( TETA SCHEMA ) * * * * ETAB, TABLE CONTENANT EN ENTREE : * * * * INDICE 'TET0' CHAMP DE TEMPERATURE INITIAL AU PAS 0 * * INDICE 'TET1' CHAMP DE TEMPERATURE INITIAL AU PAS 1 * * ( LA DONNEE DE CE CHAMP EST FACULTATIVE ) * * INDICE 'VIEUXPAS' PAS DE TEMPS ENTRE TET0 ET TET1 * * (DONNEE INDISPENSABLE SI EXISTE TET1) * * INDICE 'RAYO' LOGIQUE VALANT VRAI POUR UNE CONDITION * * DE RAYONNEMENT * * INDICE 'CELSIUS' LOGIQUE VALANT VRAI SI L'UNITE EST LE * * DEGRE CELSIUS (CAPITAL SI RAYONNEMENT) * * INDICE 'MOD_THE' MODELE THERMIQUE * * INDICE 'MOD_CON' MODELE CONVECTION * * INDICE 'MOD_TOT' MODELE CONVECTION + THERMIQUE * * INDICE 'MAT_TOT' MATERIAU CONVECTION + THERMIQUE * * INDICE 'BLOCAGES_THERMIQUES' MATRICE DE BLOCAGE * * INDICE 'CHARGEMENT' CHARGEMENT DECRIVANT LES : * * VALEURS DES VARIABLES EXTERNES (EX: TE, * * FLUX,TEMPERATURES IMPOSEES ,...) * * VALEURS DES VARIABLES EXTERNES * * INDICE 'PHASE' LOGIQUE VALANT VRAI SI CHGT DE PHASE * * INDICE 'PAS' VALEUR DU PAS DE TEMPS * * INDICE 'TEM_CALC' LISTREEL : TEMPS DES RESULTATS A CALCULER * * INDICE 'RELAXATION_DUPONT' VALEUR DU COEFFICIENT DE RELAXATION * * (VALEUR PAR DEFAUT 0.25) * * INDICE 'SOUS-RELAXATION' VALEUR DU COEFF. DE SOUS-RELAXATION * * (VALEUR PAR DEFAUT 0.5) * * INDICE PROJECTION LOGIQUE VALANT VRAI SI COUPLAGE ET SI LE * * MAILLAGE DE LA MECANIQUE ET DE LA THERMIQUE* * EST DIFFERENT * * * * ETAB CONTIENT EN SORTIE * * * * INDICE INITIAL(2) DERNIER CHAMP DE TEMPERATURE CALCULE * * * * REMARQUE : CERTAINES VARIABLES ONT DES NOMS IMPOSES. * * LE TEMPS : TEMP * * LA TEMPERATURE : T * * LA TEMPERATURE EXTERIEURE : TE * * LES TEMPERATURES IMPOSEES : TIMP * * LES FLUX : Q * * * * LE NOM DES AUTRES VARIABLES EST LAISSE AU CHOIX DE * * L'UTILISATEUR * * * * D.R., LE 29 JUIN 1988. * * E.J., MODIFICATIONS SEPTEMBRE 1994 * * * *----------------------------------------------------------------------* 'REPETER' PROC 1 ; ETAB = PRECED.'WTABLE'; CONTI = PRECED.'CONTINUATION'; ESTIM = PRECED.'ESTIMATION'; ERR_VAL = FAUX; MAIL_TOT = 'EXTR' ETAB.'MOD_TOT' 'MAIL'; ******************************************************************** * Recuperation de l'information contenue dans ETAB * ******************************************************************** *---------------- Initialisation du pas de temps ------------------ T_PAS = ETAB.'NOUV_PAS' ; 'SI' ('EXISTE' ETAB 'VIEUXPAS'); T_VPAS = ETAB.'VIEUXPAS'; 'FINSI'; *------- Initialisation de la liste des temps a calculer --------- TE_CALC = ETAB.'TEM_CALC' ; DCALC = 'DIME' TE_CALC; *------------ Initialisation des variables externes --------------- LNOM = 'EXTR' ETAB.'CHARGEMENT' 'COMP'; *----------- y-a-t-il definition du coefficient lambda ----------- 'SI' ( 'EXISTE' ETAB 'RELAXATION_DUPONT' ) ; LAMBDA = ETAB.'RELAXATION_DUPONT' ; A_SUPPR = FAUX ; 'SINON' ; LAMBDA = 0.25 ; ETAB.'RELAXATION_DUPONT' = LAMBDA ; A_SUPPR = VRAI ; 'FINSI' ; 'SI' ( 'EXISTE' ETAB 'SOUS_RELAXATION' ) ; LAMBDA2 = ETAB.'SOUS_RELAXATION' ; 'SINON' ; LAMBDA2 = 0.5 ; 'FINSI' ; *-------- Recherche des variables selon lesquelles varie ---------- *---------------------- le champ de materiau ---------------------- LVAREX = 'EXTR' ETAB.'MAT_TOT' 'DEVA'; ILVA = 'DIME' LVAREX; 'SI' ('NEG' ILVA 0); NONLIN1 = VRAI; 'SI' (ETAB.'COUPLAGE'); CONTI=PRECED.'CONTINUATION'; *--- Creation du MCHAML contenant tous les parametres mecaniques -- *-------- Ces parametres sont determines au temps TEM0 ------------ *----- Ces parametres sont projetes sur le maillage thermique ----- DEP1 = 'CHAN' 'CHAM' CONTI.'DEPLACEMENTS' ETAB.'MO_TOT' 'NOEUD'; CON1 = 'CHAN' 'NOEUD' CONTI.'CONTRAINTES' ETAB.'MO_TOT' ; CHAR1_ME = DEP1 'ET' CON1; * 'SI' ('EXISTE' CONTI 'VITESSES'); * VIT1 = 'CHAN' 'CHAM' CONTI.'VITESSES' * ETAB.'MO_TOT' 'NOEUD'; * CHAR1_ME = CHAR1_ME 'ET' VIT1; * 'FINSI'; 'SI' ('EXISTE' CONTI 'VARIABLES_INTERNES'); VAR1 = 'CHAN' 'NOEUD' CONTI.'VARIABLES_INTERNES' ETAB.'MO_TOT' ; * DEF1 ='CHAN' 'NOEUD' (ETAB.'DEI_EST') * (ETAB.'MO_TOT') ; CHAR1_ME = CHAR1_ME 'ET' VAR1 ; * CHAR1_ME = CHAR1_ME 'ET' VAR1 'ET' DEF1; 'FINSI'; 'SI' ETAB.'PROJECTION'; CHAR_ME = 'CHAN' 'CHAM' ('PROI' MAIL_TOT CHAR1_ME) (ETAB.'MO_TOT') 'RIGIDITE'; 'SINON'; CHAR_ME = 'CHAN' 'CHAM' ('CHAN' 'CHPO' CHAR1_ME (ETAB.'MO_TOT')) (ETAB.'MO_TOT') 'RIGIDITE'; 'FINSI'; 'FINSI'; 'SINON'; NONLIN1 = FAUX; 'FINSI'; *------- Cas particulier ou il n'y a pas de CAPACITE ------------------* *- Ceci correspond au cas ou, au moins, une des 2 composantes 'C ' -* *- et/ou 'RHO ' n'est pas definie dans le materiau (facultatives). -* ICPCONS = ETAB.'CAPACONST' ; IKCONS = ETAB.'CONDCONST' ; LCOMPM = 'EXTRAIRE' ETAB.'MAT_TOT' 'COMP' ; ICAPA = ('EXISTE' LCOMPM 'C ') 'ET' ('EXISTE' LCOMPM 'RHO ') ; ICAPA = ICAPA 'OU' ICPCONS ; * En regime stationnaire (sans CAPACITE), on force LAMBDA2 a 1. * Sinon on ne resout pas le bon probleme ! * Quelle valeur pour LAMBDA ? 0.5 ? A voir ! * On peut aussi se demander s'il est judicieux, dans le cas present, * d'utiliser cette methode d'integration ! 'SI' ('NON' ICAPA) ; LAMBDA2 = 1. ; 'FINSI' ; *---------- Initialisation de l'unité de température -------------- 'SI' ('EXISTE' ETAB 'CELSIUS'); ICELS = ETAB.'CELSIUS'; 'SINON'; ICELS = FAUX; 'FINSI'; *---------- Initialisation de la temperature de reference---------- 'SI' ICELS ; TREF = 273.15 ; 'SINON'; TREF = 0. ; 'FINSI'; *----------- Initialisation des champs de temperatures ------------ *------------------------ et du temps ----------------------------- INIT = 1; U1 = CONTI.'TEMPERATURES' ; TYP_0 = 'TYPE' (ETAB.'TET0'); 'SI' ('NEG' TYP_0 'ENTIER ') ; 'SI' ((ABS(T_PAS-T_VPAS)/T_PAS) '