* fichier : fabbadd1.dgibi SI GRAPH ; SINO ; FINS; ************************************************************************ * Debut du jeu de donnees fabbrication additive SLM * * OPTIONS GENERALES * - 3D * * THERMIQUE * - Source de chaleur volumique (Goldak) dépendant du temps (CHARTHER) * avec trajectoire personnalisee (ligne polygonale) * - Conduction dans la matière * - Convection les bords * - Proprietes matériaux qui dépendent de T * - Trois matériaux : poudre, piece et substrat * - Le "métal poudre" et le "métal piece" fondent à T > Tliq * - Les elements sont ajoutés couche par couche * - Changement modèle "poudre" > modele "piece" * dès qu'ils ont fondus une 1ère fois (PERSO2) * * Auteur : H. POMMIER harry.pommier@cea.fr * Historique version : * V0 version initiale 20/06/2018, Cast3M 2018 ************************************************************************ ****PROCEDURES 'DEBP' DUREE X*'LISTREELS' Y*'LISTREELS' VIT*'FLOTTANT' ; **************************************************************** * PROCEDURE DUREE : Calcul la duree du lasage d'une couche en * fonction de la vitesse et de la trajectoire * Entrees *X liste de coordonnees X en [m] *Y liste de coordonnees Y en [m] *VIT vitesse du procede en [m/s] * * Sortie *TPSLASA temps total de lasage pour parcourir * la trajectoire a la vitesse VIT ***************************************************************** TPSLASA = 0. ; I = &BOUC0 ; LLOC = '**'('+'('**'(X1 - X0) 2) ('**' (Y1 - Y0) 2)) 0.5 ; TPSLASA = '+' TPSLASA ('/' LLOC VIT) ; FIN BOUC0 ; FINP TPSLASA ; ******************************************* * PROCEDURE CHARTHER TAA = TABLE ; SI XINFO ; FINS ; ncou = FAPASAP.'MES_DATA'.'COUCHE' ; tpsfin = FAPASAP.'MES_DATA'.'TPSFIN' ; tpslasa = FA.'PROCEDE'.'TEMPS_LASAGE' ; ttloc = '-' tt ('*' ('-' ncou 1) tpsfin) ; mesmod = FAPASAP.'MODELE' ; **CHARGEMENT SI (ttloc '<EG' tpslasa) ; *Parametres progx = FA.'PROCEDE'.'TRAJECTOIRE'.'PROGX' ; progy = FA.'PROCEDE'.'TRAJECTOIRE'.'PROGY' ; vit = FA.'PROCEDE'.'VITESSE' ; tpsintc = FA.'PROCEDE'.'TEMPS_INTERCOUCHE' ; epcou = FA.'PROCEDE'.'EPAISSEUR_COU' ; *Position source posloc vecloc pavan = POSOU ttloc progx progy vit ncou epcou ; theta = '*' -1. theta ; FINS; SI XINFO ; FINS ; *Para source Q = FA.'PROCEDE'.'SOURCE'.'Q' ; A = FA.'PROCEDE'.'SOURCE'.'A' ; B = FA.'PROCEDE'.'SOURCE'.'B' ; Cf = FA.'PROCEDE'.'SOURCE'.'Cf' ; Cr = FA.'PROCEDE'.'SOURCE'.'Cr' ; eta = FA.'PROCEDE'.'SOURCE'.'ETA' ; Qeff = '*' Q eta ; pvol = SOUGOLDH modloc psour posloc theta ttloc tpslasa ; *Correction puissance SI (ttloc '<EG' tpslasa); SI XINFO ; FINS ; para1 = '*' para1 ('/' para1 Qeff) ; pvol = SOUGOLDH modloc psour posloc theta ttloc tpslasa ; SI XINFO ; FINS ; SINO ; charso = '*' 0. charso ; FINS ; SINO ; prefroi = '/' ('-' ttloc tpslasa) FA.'PROCEDE'.'TEMPS_INTERCOUCHE' ; FINS ; TAA.'ADDI_SECOND' = charso ; SI XINFO ; MESS 'Calcul thermique...' ; FINS ; FINP TAA ; ************************************************************************ * PROCEDURE POSOU : Calcul la position de la source et le vecteur directeur * en fonction du temps, de la trajection (progx, progy), de la vitesse, * du numero de la couche actuelle et de l epaisseur d une couche ************************************************************************ DEBP POSOU ; TABDTCUM. 0 = 0. ; TABDLCUM. 0 = 0. ; flag = VRAI ; REPE BOUC0 NBOUC0 ; I = &BOUC0 ; TABDL.I = '**'('+'('**'(X1 - X0) 2) ('**' (Y1 - Y0) 2)) 0.5 ; TABDLCUM.I = TABDL. I + TABDLCUM.(I-1) ; TABDT.I = ('/' TABDL.I VIT) ; TABDTCUM.I = TABDT. I + TABDTCUM.(I-1) ; SI ((TT '<EG' TABDTCUM.I) ET flag) ; tt2 = '-' tt TABDTCUM.(K-1) ; ratio = '/' tt2 TABDT.K ; vecseg = (X1 - X0) (Y1 - Y0) 0. ; vec0 = '/' ((X1 - X0) (Y1 - Y0) 0.) TABDL.K ; z = '*' ncou epcou ; pos0 = x y z ; flag = FAUX ; FINS ; FIN BOUC0 ; *Pourcentage du trajet total realise SI (tt '<' TPSLASA) ; pavan = '*' ('/' tt TPSLASA) 100 ; SINO ; pavan = 100. ; FINS ; FINP pos0 vec0 pavan ; ***************************************************** * PROCEDURE SOUGOLDH *Auteur : H. POMMIER harry.pommier@cea.fr *Historique version : *Modification pour PASAPAS H. POMMIER 06-2018 *Description : source equivalente Goldak adaptee pour PASAPAS *Entrées : *mo_sou Modele *p_sour Liste des parametres de la source *pos_sou Position de la source (x,y,z) *theta angle de rotation autour de axe Z *ttloc ttloc du calcul EF *tpslasa ttloc de lasage *(x : direction soudage, z : normale piece) *Sortie : *CHPO_SOM Champs Points de puissance volumique DEBP SOUGOLDH mo_sou*'MMODEL' p_sour*'LISTREEL' pos_sou*'POINT' theta*'FLOTTANT' ttloc*'FLOTTANT' tpslasa*'FLOTTANT'; *** repere local(xs,ys,zs) xxloc = xglo - xsou ; yyloc = yglo - ysou ; zzloc = zglo - zsou ; *** Rotation de theta1 autour de l'axe des Y *** puis rotation de theta2 autour de l'axe du nouvel axe des Z cos0 = COS theta ; sin0 = SIN theta ; xloc = (xxloc*cos0) + (yyloc*sin0) ; yloc = (yyloc*cos0) - (xxloc*sin0) ; zloc = zzloc ; *** * contribution de la source en y et z cy = EXP ( (-3./(a**2.)) * (yloc * yloc) ) ; cz = EXP ( (-3./(b**2.)) * (zloc * zloc) ) ; *** * on calcule la source en avant du front Rf = 2. / (1. + ( Cr / Cf ) ) ; Rr = 2. - Rf ; cx_av = EXP ( ( -3. / ( Cf ** 2. ) ) * (xloc * xloc) ) ; *cx_av = '*' cx_av (Rf / Cf) ; cx_av = fil_av * cx_av ; cx_ar = EXP ( ( -3. / ( Cr ** 2. ) ) * (xloc * xloc) ) ; *cx_ar = '*' cx_ar ('/' Rr Cr) ; cx_ar = fil_ar * cx_ar ; cx = cx_av + cx_ar ; Pi1 = (3.14159265358979**1.5) ; qmax = (6 * (3.**0.5) * Rf * Q) / (Pi1 * Cf * a * b) ; *qmax = (6 * (3.**0.5) * Q) / (Pi1 * a * b) ; cz = cz * fil_z ; CHPO_SOM = qmax * cx * cy * cz ; SI (ttloc '>' tpslasa); CHPO_SOM = '*' CHPO_SOM 0. ; FINS ; FINP CHPO_SOM ; ************************************************************************ * PROCEDURE PERSO2 : Apres la THERMIQUE dans TRANSNON * MAJ le MODELE et le MATERIAU THERMIQUE : POUDRE -> PIECE * ATTENTION : La temperature a jour est dans l'indice WTAB.'THER_COURANT' * harry.pommier@cea.fr 29/06/2018 ************************************************************************ DEBP PERSO2 TAB1*'TABLE' ; SI XINFO ; MESS 'Debut procedure PERSO2' ; FINS ; NCOU = TAB1.'MES_DATA'.'COUCHE' ; tfusion = TAB1.'MES_DATA'.'T_LIQUIDUS' ; WTAB = TAB1.'WTABLE' ; MODTHER = WTAB.'MODELE' ; MATTOT = TAB1.'CARACTERISTIQUES' ; *Recuperation des elements liquides dans la poudre ********** * Transformation du MODELE POUDRE en PIECE ********** MAILFON = TAB1.'MAILLAGE_FONDU'.(NB_PAS - 1) ; *MAJ modele TAB1.'MAILLAGE_FONDU'.NB_PAS = TAB1.'MAILLAGE_FONDU'.(NB_PAS-1) ET ELNEW ; TAB1.'MAILLAGE_FONDU2'.NB_PAS2 = TAB1.'MAILLAGE_FONDU'.NB_PAS ; MAILCOUC = FA.'MAILLAGE'.'COUCHE_CUM'.NCOU ; MAILPOU = MAILPOUI ET FA.'MAILLAGE'.'POUDRE_INI') ; FA.'MAILLAGE'.'POUDRE' = MAILPOU ; FA.'MODELE'.'POUDRE' = MODTHEPO ; FA.'MODELE'.'PIECE' = MODTHEPI ; MODTHESU = FA.'MODELE'.'SUBSTRAT' ; FA.'MODELE'.'TOTAL' = MODTHEPO ET MODTHEPI ET MODTHESU ET MODCONV ; EVK = FA.'MATERIAUX'.'PARA_PIECE'.'EVK' ; EVRHO = FA.'MATERIAUX'.'PARA_PIECE'.'EVRHO' ; EVCP = FA.'MATERIAUX'.'PARA_PIECE'.'EVCP' ; MATHESU = FA.'MATERIAUX'.'SUBSTRAT' ; FA.'MATERIAUX'.'POUDRE' = MATHEPO ; FA.'MATERIAUX'.'PIECE' = MATHEPI ; FA.'MATERIAUX'.'TOTAL' = MATHEPO ET MATHEPI ET MATHESU ET MATCONV ; *Mise a jour de WTAB pour le PAS suivant WTAB.'MOD_MEC' = FA.'MODELE'.'TOTAL' ; WTAB.'MAT_MEC' = FA.'MATERIAUX'.'TOTAL' ; WTAB.'MODELE' = FA.'MODELE'.'TOTAL' ; WTAB.'MA_TOT' = FA.'MATERIAUX'.'TOTAL' ; *Indice obligatoire a renseigner car PAS_ETAT travaille sur MODELE WTAB.'MODELE' = FA.'MODELE'.'TOTAL' ; WTAB.'CARACTERISTIQUES' = FA.'MATERIAUX'.'TOTAL' ; * Enregistrement des modeles TAB1.'MES_MODEL'.NB_PAS = WTAB.'MODELE' ; TAB1.'MES_MODEL2'.NB_PAS2 = TAB1.'MES_MODEL'.NB_PAS ; TAB1.'MODELE' = WTAB.'MODELE' ; TAB1.'CARACTERISTIQUES' = FA.'MATERIAUX'.'TOTAL' ; SINO ; *Recuperation depuis le PAS precedent TAB1.'MES_MODEL'.NB_PAS = TAB1.'MES_MODEL'.(NB_PAS-1) ; TAB1.'MAILLAGE_FONDU'.NB_PAS = TAB1.'MAILLAGE_FONDU'.(NB_PAS-1) ; TAB1.'MES_MODEL2'.NB_PAS2 = TAB1.'MES_MODEL'.NB_PAS ; TAB1.'MAILLAGE_FONDU2'.NB_PAS2 = TAB1.'MAILLAGE_FONDU'.NB_PAS ; FINS; SI XINFO ; FINS ; FINP TAB1; *********************************************************************** *********************************************************************** *********************************************************************** *********************************************************************** *********************************************************************** ****MAILLAGE *Maillage murs (carre) et plateau (substrat), fabrication addictive, procede SLM *Auteur : H. POMMIER harry.pommier@cea.fr *Historique version : *V0 version initiale 18/06/2018, Cast3M 2018 POEIL1 = 0. 0. 10. ; POEIL2 = 10. -10. 10. ; ********** *PARAMETRES (on travaille en [m]) ********** *Dimensions *Taille elements ********** *POINTS ********** PD1 = ('*' r0 sqrt22) ('*' r0 sqrt22i) 0. ; PD2 = ('*' r0 sqrt22) ('*' r0 sqrt22) 0. ; PD3 = ('*' r0 sqrt22i) ('*' r0 sqrt22) 0. ; PD4 = ('*' r0 sqrt22i) ('*' r0 sqrt22i) 0. ; *Carre 1 PC11 = aloc aloco 0. ; PC12 = aloc aloc 0. ; PC13 = aloco aloc 0. ; PC14 = aloco aloco 0. ; *Carre 2 PC21 = aloc aloco 0. ; PC22 = aloc aloc 0. ; PC23 = aloco aloc 0. ; PC24 = aloco aloco 0. ; *Carre 3 PC31 = aloc aloco 0. ; PC32 = aloc aloc 0. ; PC33 = aloco aloc 0. ; PC34 = aloco aloco 0. ; *Carre 4 PC41 = aloc aloco 0. ; PC42 = aloc aloc 0. ; PC43 = aloco aloc 0. ; PC44 = aloco aloco 0. ; ********** *DROITES ********** *Carre 1 *Carre 2 *Carre 3 *Carre 4 *Cercle exterieur *Diagonales *Connexion carre 1 carre 2 *Connexion carre 2 carre 3 *Connexion carre 3 carre 4 *Connexion carre 4 cercle exterieur ********** *SURFACES ********** *Interieur carre 1 *Entre carre 1 et carre 2 *Entre carre 2 et carre 3 *Entre carre 3 et carre 4 *Entre carre 3 et cercle exterieur *Assemblage des zones STRAN = (S5 ET S6 ET S7 ET S8 ET SLOIN = (S1 ET S2 ET S3 ET S4 ET STOT = SLASA ET STRAN ET SLOIN ; SI XINFO ; FINS; ********** *VOLUMES ********** *Maillage du plateau *Maillage couche par couche nbcou = ENTI 'TRONCATURE' nbcou ; SI XINFO ; MESS 'Nombre de couches : ' nbcou ; FINS ; *Premiere couche TABM = TABLE ; TABM.'plateau' = MAILPLAT ; TABM.'lasage' = TABLE ; TABM.'transition' = TABLE ; TABM.'loin' = TABLE ; TABM.'couche' = TABLE ; TABM.'lasage'. 1 = COULASA ; TABM.'transition'. 1 = COUTRAN ; TABM.'loin'. 1 = COULOIN ; MAILLASA = TABM.'lasage'. 1 ; MAILTRAN = TABM.'transition'. 1 ; MAILLOIN = TABM.'loin'. 1 ; REPE BOUC0 ('-' nbcou 1) ; I = ('+' &BOUC0 1) ; MAILLASA = MAILLASA ET TABM.'lasage'.I ; MAILTRAN = MAILTRAN ET TABM.'transition'.I ; MAILLOIN = MAILLOIN ET TABM.'loin'.I ; TABM.'couche'.I = (TABM.'lasage'.I) ET (TABM.'transition'.I) ET (TABM.'loin'.I) ; FIN BOUC0 ; MAILTOT = MAILLASA ET MAILTRAN ET MAILLOIN ET MAILPLAT ; SI XINFO ; MESS 'Nombre elements :' NB ; FINS ; ********** *GRAPH ********** SI GRAPH ; TRAC POEIL1 STOT ; FINS ; ********** *TRAJECTOIRE LASAGE ********** ********** *SAUV ********** TABM.'EPAISSEUR_COU' = epcou ; *OPTI SAUV 'maillage_murs_FA_SLM.sauv' ; *SAUV TABM MAILTOT MAILLASA MAILTRAN MAILLOIN PROGX PROGY ; *********************************************************************** *********************************************************************** *********************************************************************** *********************************************************************** *********************************************************************** *Calcul thermique murs (carre) et plateau (substrat), fabrication addictive, procede SLM *Modele thermique conduction 3D *Trois matériaux : * poudre * piece * substrat *Procede SLM *Le métal poudre et le métal continu fondent à T>Tliq *Les elements sont ajoutés couche par couche *****Restitution maillage *OPTI REST 'maillage_murs_FA_SLM.sauv' ; *REST ; ********** *PARAMETRES ********** T_CONV = T_INI ; *Construction de la TABLE Fabrication Additive pour stocker l etude FA = TABLE ; ****MAILLAGE FA.'MAILLAGE' = TABLE ; ****MATERIAUX FA.'CONSTITUANT' = TABLE ; FA.'CONSTITUANT'.'POROSITE' = 0.2 ; ****PROCEDE FA.'PROCEDE' = TABLE ; FA.'PROCEDE'.'EPAISSEUR_COU' = TABM.'EPAISSEUR_COU' ; *Sources possibles : 'GOLDAK' , FA.'PROCEDE'.'SOURCE' = TABLE ; FA.'PROCEDE'.'SOURCE'.'Q' = 50. ; FA.'PROCEDE'.'SOURCE'.'A' = 100.e-6 ; FA.'PROCEDE'.'SOURCE'.'B' = 100.e-6 ; FA.'PROCEDE'.'SOURCE'.'Cf' = 100.e-6 ; FA.'PROCEDE'.'SOURCE'.'Cr' = 100.e-6 ; FINS ; *Trajectoire FA.'PROCEDE'.'TRAJECTOIRE' = TABLE ; FA.'PROCEDE'.'TRAJECTOIRE'.'PROGX' = PROGX ; FA.'PROCEDE'.'TRAJECTOIRE'.'PROGY' = PROGY ; ****TEMPS CALCULES TPSLASA = DUREE FA.'PROCEDE'.'TRAJECTOIRE'.'PROGX' FA.'PROCEDE'.'TRAJECTOIRE'.'PROGY' (FA.'PROCEDE'.'VITESSE') ; FA.'PROCEDE'.'TEMPS_LASAGE' = TPSLASA ; TPSFIN = '+' TPSLASA FA.'PROCEDE'.'TEMPS_INTERCOUCHE' ; *Temps calcules LTCAL = PROG TPSPAS1 'PAS' TPSPAS1 TPSLASA 'PAS' TPSPAS2 TPSFIN ; *Temps sauves LTSAUV = PROG TPSPAS11 'PAS' TPSPAS11 TPSLASA 'PAS' TPSPAS22 TPSFIN ; FA.'TEMPS_CALCULES' = TABLE ; FA.'TEMPS_SAUVES' = TABLE ; REPE BOUCT NBCOU ; K = &BOUCT ; FA.'TEMPS_CALCULES'.K = ('*' TPSFIN (K-1)) '+' LTCAL ; FA.'TEMPS_SAUVES'.K = ('*' TPSFIN (K-1)) '+' LTSAUV ; FIN BOUCT ; ********** *IMPORTATION MAILLAGE ********** *Substrat FA.'MAILLAGE'.'SUBSTRAT' = TABM.'plateau' ; *Couches de poudre REPE BLOC1 NBCOU ; I = &BLOC1 ; list I ; FA.'MAILLAGE'.'COUCHE'.I = (TABM.'lasage'.I ET TABM.'transition'.I ET TABM.'loin'.I) ; FA.'MAILLAGE'.'COUCHE_CUM'.I = FA.'MAILLAGE'.'COUCHE_CUM'.(I-1) ET FA.'MAILLAGE'.'COUCHE'.I ; FA.'MAILLAGE'.'TOTAL_CUM'.I = FA.'MAILLAGE'.'COUCHE_CUM'.I ET FA.'MAILLAGE'.'SUBSTRAT' ; FIN BLOC1 ; FA.'MAILLAGE'.'POUDRE' = FA.'MAILLAGE'.'COUCHE_CUM'.NBCOU ; FA.'MAILLAGE'.'POUDRE_INI' = FA.'MAILLAGE'.'POUDRE' ; *Maillage total FA.'MAILLAGE'.'TOTAL' = FA.'MAILLAGE'.'SUBSTRAT' ET FA.'MAILLAGE'.'POUDRE' ; SI GRAPH ; FINS ; ********** *MODELES ********** FA.'MODELE' = TABLE ; *Substrat MAILTHSU = FA.'MAILLAGE'.'SUBSTRAT' ; FA.'MODELE'.'SUBSTRAT' = MODTHESU ; *Poudre MAILTHPO = FA.'MAILLAGE'.'POUDRE' ; FA.'MODELE'.'POUDRE' = MODTHEPO ; FA.'MODELE'.'POUDRE_INI' = MODTHEPO ; *Piece FA.'MODELE'.'PIECE' = MODTHEPI ; *Total FA.'MODELE'.'TOTAL' = MODTHESU ET MODTHEPO ET MODTHEPI ; ********** *MATERIAUX ********** FA.'MATERIAUX' = TABLE ; FA.'MATERIAUX'.'PARA_PIECE' = TABLE ; *Lecture des MATERIAUX ('316L','16MND5') NOMCONS = FA.'CONSTITUANT'.'SUBSTRAT' ; *Lecture des parametres dans la bibliotheque *NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Rho.csv' ; 7.45e3 7.35e3 7.30e3 7.30e3 ; *NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_k.csv' ; 1200 1400 3000 ; 0.0211e3 0.0222e3 0.0232e3 0.0241e3 0.0248e3 0.0255e3 0.0269e3 0.0283e3 0.0283e3 ; *NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Cp.csv' ; SI GRAPH ; FINS ; FA.'MATERIAUX'.'SUBSTRAT' = MATHESU ; *Sauvegarde pour utilisation dans PERSO2 FA.'MATERIAUX'.'PARA_PIECE'.'EVK' = EVK ; FA.'MATERIAUX'.'PARA_PIECE'.'EVRHO' = EVRHO ; FA.'MATERIAUX'.'PARA_PIECE'.'EVCP' = EVCP ; SI ('NEG' FA.'CONSTITUANT'.'SUBSTRAT' FA.'CONSTITUANT'.'PIECE') ; *NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Rho.csv' ; 7.45e3 7.35e3 7.30e3 7.30e3 ; *NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_k.csv' ; 1200 1400 3000 ; 0.0211e3 0.0222e3 0.0232e3 0.0241e3 0.0248e3 0.0255e3 0.0269e3 0.0283e3 0.0283e3 ; *NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Cp.csv' ; SI GRAPH ; FINS ; FINS ; FA.'MATERIAUX'.'PIECE' = MATHEPI ; FA.'MATERIAUX'.'PIECE_INI' = MATHEPI ; *Sauvegarde pour utilisation dans PERSO2 FA.'MATERIAUX'.'PARA_PIECE'.'EVK' = EVK ; FA.'MATERIAUX'.'PARA_PIECE'.'EVRHO' = EVRHO ; FA.'MATERIAUX'.'PARA_PIECE'.'EVCP' = EVCP ; *Les proprietes de la poudre sont proportionnelle a sa porosite 'porop' porop = FA.'CONSTITUANT'.'POROSITE' ; EVK = '*' ('-' 1. porop) EVK ; EVRHO = '*' ('-' 1. porop) EVRHO ; EVCP = '*' ('-' 1. porop) EVCP ; FA.'MATERIAUX'.'POUDRE' = MATHEPO ; FA.'MATERIAUX'.'POUDRE_INI' = MATHEPO ; FA.'MATERIAUX'.'TOTAL' = MATHESU ET MATHEPO ET MATHEPI ; ********** *PASAPAS - Calcul thermique transitoire ********** *REDU du calcul thermique sur la couche actuelle MODCOND = MODTHESU ET MODCOU ET MODTHEPI ; MATCOND = MATHESU ET MATCOU ET MATHEPI ; *Convection CHARTOT = CHACONV ; *Ajout convection au modele MODTOT = MODCOND ET MODCONV ; MATTOT = MATCOND ET MATCONV ; *Initialisation *Declaration de la table PASAPAS FAPASAP = TABLE ; FAPASAP.'MODELE' = MODTOT ; FAPASAP.'CARACTERISTIQUES' = MATTOT ; FAPASAP.'CHARGEMENT' = CHARTOT ; FAPASAP.'TEMPS_CALCULES' = LTCAL ; *FAPASAP.'TEMPS_SAUVES' = LTSAUV ; FAPASAP.'TEMPS' = TABLE ; FAPASAP.'TEMPERATURES' = TABLE ; FAPASAP.'MES_MODEL' = TABLE ; FAPASAP.'MAILLAGE_FONDU' = TABLE ; FAPASAP.'MES_MODEL2' = TABLE ; FAPASAP.'MAILLAGE_FONDU2' = TABLE ; FAPASAP.'TEMPS'. 0 = 0. ; FAPASAP.'TEMPERATURES'. 0 = CHPTINI ; FAPASAP.'MES_MODEL'. 0 = MODTOT ; FAPASAP.'MES_MODEL2'. 0 = MODTOT ; FAPASAP.'MAILLAGE_FONDU'. 0 = MAILFON ; FAPASAP.'MAILLAGE_FONDU2'. 0 = MAILFON ; *MES_MODEL2 et MAILLAGE_FONDU2 sont enregistres en synchronisation avec 'TEMPS' FAPASAP.'PROCEDURE_PERSO2' = VRAI ; FAPASAP.'PROCEDURE_CHARTHER' = VRAI ; FAPASAP.'MES_DATA' = TABLE ; FAPASAP.'MES_DATA'.'COUCHE' = 1 ; FAPASAP.'MES_DATA'.'TPSFIN' = TPSFIN ; FAPASAP.'MES_DATA'.'T_LIQUIDUS' = T_LIQ ; *Boucle sur les couches (un PASAPAS par couche) REPE BOUCPAS NBCOU ; I = &BOUCPAS ; SI XINFO ; MESS 'DEBUT CALCUL LA COUCHE :' I ; FINS ; PASAPAS FAPASAP ; SI XINFO ; FINS ; MENA 'OBLI' ; *nomfic = CHAI 'RESU/COUCHE_' I '.sauv' ; *OPTI SAUV nomfic ; *SAUV FAPASAP TABM FA ; *Pour gagner de la place sur le disque (commande linux) *SI (I '>' 2) ; *comclean = CHAI 'rm RESU/COUCHE_' (I-2) '.sauv*' ; *EXTE comclean ; *FINS ; SI (I '<' NBCOU) ; *On ajoute le MODELE et le MATERIAUX de la couche suivante FA.'MAILLAGE'.'COUCHE'.(I+1) ; MODCOND2 = MODCOND ET MODCOUI ; MODTOT = MODCOND2 ET MODCONV ; *On ajoute le materiau MATTOT = MATCOND ET MATCONV ; *Chargement convection *Actualisation chargement CHARTOT = CHACONV ; *Ajout de la nouvelle couche à temperature T_INI CHPTLAST = FAPASAP.'TEMPERATURES'.(NB_PAS-1) ; MAILNEW = FA.'MAILLAGE'.'COUCHE'.(I+1) ; *Il faut faire une hypothese sur la temperature sur la surface frontiere la couche precedente et la nouvelle *On fait hypothese que cette couche est a la temperature nouvelle couche CHPTINI = CHPTLAST ET CHPTNEW ; *On actualise la table PASAPAS FAPASAP.'MODELE' = MODTOT ; FAPASAP.'CARACTERISTIQUES' = MATTOT ; OUBL FAPASAP 'WTABLE' ; FAPASAP.'CHARGEMENT' = CHARTOT ; FAPASAP.'TEMPS_CALCULES' = FA.'TEMPS_CALCULES'.(I+1) ; *FAPASAP.'TEMPS_SAUVES' = FA.'TEMPS_SAUVES'.(I+1) ; FAPASAP.'TEMPERATURES'.(NB_PAS-1) = CHPTINI ; FAPASAP.'MES_MODEL'.(NB_PAS-1) = MODTOT ; FAPASAP.'MES_DATA'.'COUCHE' = (I+1) ; FINS ; FIN BOUCPAS ; SI GRAPH ; MAILF = FAPASAP.'MAILLAGE_FONDU'.(N-1) ; FINS ; FIN ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales