From c989464a3a091beb8217e57e2d272188286467d6 Mon Sep 17 00:00:00 2001 From: Pascale Noyret Date: Tue, 6 Jul 2010 08:32:09 +0000 Subject: [PATCH] *** empty log message *** --- .../s_poly_st_1_V1/benhur_pygmee_template.txt | 28 +++ .../s_poly_st_1_V1/pygmee_input_template.txt | 11 + .../s_poly_st_1_aster_template.comm | 203 ++++++++++++++++++ .../s_poly_st_1_aster_template.export | 35 +++ 4 files changed, 277 insertions(+) create mode 100644 MAP/Templates/s_poly_st_1_V1/benhur_pygmee_template.txt create mode 100644 MAP/Templates/s_poly_st_1_V1/pygmee_input_template.txt create mode 100644 MAP/Templates/s_poly_st_1_V1/s_poly_st_1_aster_template.comm create mode 100644 MAP/Templates/s_poly_st_1_V1/s_poly_st_1_aster_template.export diff --git a/MAP/Templates/s_poly_st_1_V1/benhur_pygmee_template.txt b/MAP/Templates/s_poly_st_1_V1/benhur_pygmee_template.txt new file mode 100644 index 00000000..899e8a0c --- /dev/null +++ b/MAP/Templates/s_poly_st_1_V1/benhur_pygmee_template.txt @@ -0,0 +1,28 @@ +OPTIONS +3D BENHUR SCALE +I - Morphologie (MESSALA) +1) dimension du VER cubique [m] (entree) +%_PYGMEE_TAILLE% +2) fraction volumique seuil écrétant le fuseau (entree) +.11 +3) fichier decrivant le fuseau granulaire descendant (entree) +- +4) fichier decrivant la position et la taille des boules (sortie) +%_PATH_PYGMEE%/benhur_input.txt +5) fichier CAO de la morphologie (sortie) +- +6) facteur de correction de fraction volumique (entree) +1.0 + +II - Maillage (BENHUR) +1) fichier entree décrivant le maillage support (entree) +%_PATH_BENHUR%/regular_mesh_3D_%_BENHUR_FINESSE%.msh +2) fichier sortie du maillage (sortie) +%_PATH_STUDY%/%_NAME_SCHEME%_benhur_%_BENHUR_FINESSE%.msh +3) fichier commentaire sur les statistiques décrivant le maillage (sortie) +%_PATH_STUDY%/%_NAME_SCHEME%_benhur_%_BENHUR_FINESSE%.log +4) fichier BMP décrivant une coupe binarisée du VER (sortie) +%_PATH_BENHUR%/%_NAME_SCHEME%_benhur_%_BENHUR_FINESSE%.bmp +5) fichier TXT donnant la level set du contour aux noeuds (sortie) +%_PATH_BENHUR%/%_NAME_SCHEME%_benhur_%_BENHUR_FINESSE%_levelset.txt + diff --git a/MAP/Templates/s_poly_st_1_V1/pygmee_input_template.txt b/MAP/Templates/s_poly_st_1_V1/pygmee_input_template.txt new file mode 100644 index 00000000..16cf5ebd --- /dev/null +++ b/MAP/Templates/s_poly_st_1_V1/pygmee_input_template.txt @@ -0,0 +1,11 @@ +# fichier de mise en donnee de la generation du VER MOX +# nombre de phases +1 +#fuseau 1 (entree de lecfus) format : diametre DCE croissant / fraction cumulee decroisant +%_PATH_MODULE%/s_poly_st_1/inclusion_size_distribution.txt +#fuseau 2 (entree de lecfus) format : diametre DCE croissant / fraction cumulee decroisant +toto.txt +# taille du VER en microns +%_PYGMEE_TAILLE% +# distance de repulsion : +%_PYGMEE_DISTANCE% diff --git a/MAP/Templates/s_poly_st_1_V1/s_poly_st_1_aster_template.comm b/MAP/Templates/s_poly_st_1_V1/s_poly_st_1_aster_template.comm new file mode 100644 index 00000000..96ceb4ea --- /dev/null +++ b/MAP/Templates/s_poly_st_1_V1/s_poly_st_1_aster_template.comm @@ -0,0 +1,203 @@ +#=========================================== +# 20090416 jsn +# cas test thermique : cube homogene isotrope +# soumis a un -gradT homogene au contour qcq (donne par ses 3 composantes mg1,mg2,mg3) +# les champs sont sortis au format gmsh +# les moyennes des champs de gradient de temperature et de flux de chaleur sont calcules +# +# teste en STA9.4 +#============================================ + +# nbre de classes (de 0% a 100% d'inclusions) +nb_classes=11 +# specifier le repertoire dans lequel on trouve "entree_schema.dat", "entree_cl.dat" et dans lequel on ecrit "sortie_resultats.dat" +racine="%_PATH_MODULE%/s_poly_st_1/" +# nb_classes lignes de float : les lambda donnes par le schema pour la fraction d'incl de chaque classe (de 0% incl a 100% incl tous les N% selon nb_classes) +fic_entree_schema =racine+"s_poly_st_1_aster.mat" + +# cote cube +L=%_PYGMEE_TAILLE% + +# conductivite isotrope +lambd=1. +# -gradT homogene au contour +mg1=1.0 +mg2=0.0 +mg3=0.0 +# nbre de classes (de 0% a 100% d'inclusions) +nb_classes=11 +# lecture schema = lambda pour chaque classe +lambda_t = [0.0]*nb_classes +print("'\n") +for i in range(0,nb_classes): + alpha=float((i-1)/(nb_classes-1)) + lambda_t[i]=(1-alpha)*%_ASTER_CONDUCTIVITE_M%+(alpha)*%_ASTER_CONDUCTIVITE_I% + +DEBUT(PAR_LOT='OUI',); # 'OUI' evite l'alarme + +# lecture maillage format gmsh +PRE_GMSH(); +mail=LIRE_MAILLAGE(); + +# definition des gpes de mailles (surfaces de type 'xp' (x=L) ,'xm' (x=0),... et volume 'vol' regroupant toutes les mailles) +GMsur_gmsh_noms = ['GM1001', 'GM1002', 'GM1003', 'GM1004', 'GM1005', 'GM1006',] +GMsur_aster_noms = ['xm', 'xp', 'ym', 'yp', 'zm', 'zp',] +GMsur_aster_list = [ _F(NOM=GMsur_aster_noms[i],GROUP_MA=GMsur_gmsh_noms[i],) for i in range(0,len(GMsur_gmsh_noms)) ] + +GMvol_gmsh_noms = ['GM10000', 'GM10100', 'GM10200', 'GM10300', 'GM10400', 'GM10500', 'GM10600', 'GM10700', 'GM10800', 'GM10900', 'GM11000',] +GMvol_aster_nom = 'vol' +GMvol_aster_list = [ _F(NOM=GMvol_aster_nom,UNION=GMvol_gmsh_noms) ] + +mail=DEFI_GROUP(reuse =mail, + MAILLAGE=mail, + CREA_GROUP_MA=GMsur_aster_list+GMvol_aster_list,); + +# definition d'1 groupe de noeuds contenant le nd en (0,0,0)->nd0 afin de fixer la temperature en un point (supprimer les "mvts de corps rigide") ds le cas de CL en flux homogene au contour +# definition par intersection des faces du cube +mail=DEFI_GROUP(reuse =mail, + MAILLAGE=mail, + CREA_GROUP_NO=(_F(GROUP_MA=('xm','xp','ym','yp','zm','zp',), + CRIT_NOEUD='TOUS',), + ),); +mail=DEFI_GROUP(reuse =mail, + MAILLAGE=mail, + CREA_GROUP_NO=(_F(NOM='nd0', + INTERSEC=('xm','ym','zm',),), + ),); + +# on s'assure que sur la frontiere du cube la normale soit bien sortante +mail = MODI_MAILLAGE(reuse =mail, + MAILLAGE=mail, + ORIE_PEAU_3D=_F(GROUP_MA=('xm','xp','ym','yp','zm','zp',),), + ); + +# modele : thermique 3D (affecte a toutes les mailles) +modl=AFFE_MODELE(MAILLAGE=mail, + AFFE=_F(TOUT='OUI', + PHENOMENE='THERMIQUE', + MODELISATION='3D',),); + +# materiau unique (cube homogene) +mat=DEFI_MATERIAU(THER=_F(LAMBDA=lambd, + RHO_CP=1,),); + +# definition materiaux mat[0] (0% incl) a mat[nb_classes-1] (100% incl) +mat_t=[0.]*nb_classes +for i in range(0,nb_classes): + mat_t[i]=DEFI_MATERIAU(THER=_F(LAMBDA=lambda_t[i], + RHO_CP=1,),); + +# affectation de chaque materiau au groupe de mailles correspondant, si celui ci existe +affe_mater_list = [ _F(GROUP_MA=GMvol_gmsh_noms[i], MATER=mat_t[i],) for i in range(0,nb_classes) ] + +chmat=AFFE_MATERIAU(MAILLAGE=mail, + AFFE=affe_mater_list,); + +#chmat=AFFE_MATERIAU(MAILLAGE=mail, +# AFFE=_F(GROUP_MA='vol', MATER=mat,),); + +# preparation CL en -gradT homogene au contour (composantes mg1,mg2,mg3) +# T = - (mg1*x + mg2*y + mg3*z) +# ne depend que de 2 variables d'espace sur chaque face du cube, et de plus lineairement => utilisation de nappes +l_temp=[] +nap=[None]*6 +mg=[mg1,mg2,mg3] +var = ['X','Y','Z'] +l_gma=[['zm','zp'],['xm','xp'],['ym','yp']] # groupes de mailles identifiant les 6 faces du cube +for i in range(0,3): + par1 = var[(1+i)%3] # 1er parametre nappe + par2 = var[(0+i)%3] # 2e parametre nappe + val00 = 0 # valeur prise lorsque par1=0, par2=0 + val01 = -(mg[(0+i)%3]*L) # valeur prise lorsque par1=0, par2=L + val10 = -(mg[(1+i)%3]*L) # valeur prise lorsque par1=L, par2=0 + val11 = -(mg[(0+i)%3]*L+mg[(1+i)%3]*L) # valeur prise lorsque par1=L, par2=L + for j in range(0,2): + nap[i*2+j] = DEFI_NAPPE ( NOM_PARA = par1, PROL_DROITE = 'LINEAIRE', PROL_GAUCHE = 'LINEAIRE', + PARA = (0, L), + NOM_PARA_FONC = par2, + DEFI_FONCTION = ( + _F( PROL_DROITE = 'LINEAIRE', PROL_GAUCHE = 'LINEAIRE', + VALE =(0,val00 , L,val01), + ), + _F( PROL_DROITE = 'LINEAIRE', PROL_GAUCHE = 'LINEAIRE', + VALE =(0,val10 , L,val11), + ), + ) + ) + l_temp.append( _F(GROUP_MA=(l_gma[i][j],), TEMP=nap[i*2+j],) ) + # passage de la face - a la face + : + val00 += -(mg[(2+i)%3]*L) + val01 += -(mg[(2+i)%3]*L) + val10 += -(mg[(2+i)%3]*L) + val11 += -(mg[(2+i)%3]*L) + +# affectation CL en -gradT homogene au contour +climites=AFFE_CHAR_THER_F(MODELE=modl, + TEMP_IMPO= l_temp ) + +# resolution F=K.u +resther = THER_LINEAIRE(MODELE=modl, + CHAM_MATER=chmat, # caracteristiques materiau + EXCIT=(_F(CHARGE=climites),), # chargement (ici seulement des cl) + ); + +# calcul flux chaleur aux points de gauss +resther=CALC_ELEM(reuse =resther, + RESULTAT=resther, + OPTION='FLUX_ELGA_TEMP',); + +############################### +# DEBUT calcul champ (- gradient de temperature) en passant par un materiau homogene fictif de conductivite 1 (suggestion de JM Proix, voir fiche rex aster 13175) +matfict=DEFI_MATERIAU(THER=_F(LAMBDA=1, + RHO_CP=1,),); +cmatfict=AFFE_MATERIAU(MAILLAGE=mail, + AFFE=_F(TOUT='OUI', MATER=matfict,),); +resmgrad=CALC_ELEM(RESULTAT=resther, + OPTION='FLUX_ELGA_TEMP', + CHAM_MATER=cmatfict); +# FIN calcul champ (- gradient de temperature) en passant par un materiau homogene fictif de conductivite 1 (suggestion de JM Proix, voir fiche rex aster 13175) +# dans m_gradm le champ de flux de chaleur est en fait egal au champ de (- grad T) +############################### + +# impression resultats format gmsh : champs de temperature, flux, gradient de temperature +IMPR_RESU( MODELE=modl, + FORMAT='GMSH', +# FORMAT='MED', + UNITE=37, + RESU=(_F(RESULTAT = resther,), + _F(RESULTAT = resmgrad, + NOM_CHAM='FLUX_ELGA_TEMP', + NOM_CMP=('FLUX','FLUY','FLUZ',),) + )); + +IMPR_RESU( + FORMAT='MED', + UNITE=38, + RESU=(_F(RESULTAT = resther,), + _F(RESULTAT = resmgrad, + NOM_CHAM='FLUX_ELGA_TEMP', + NOM_CMP=('FLUX','FLUY','FLUZ',),) + )); + +# calcul integrale et moyenne du flux de chaleur sur l'ensemble du cube +fluxmtot = POST_ELEM(INTEGRALE=_F(GROUP_MA='vol', + NOM_CHAM='FLUX_ELGA_TEMP', + NOM_CMP=('FLUX','FLUY','FLUZ',),), + MODELE=modl, + RESULTAT=resther,); +# idem moyenne du gradient de temperature +m_gradm = POST_ELEM(INTEGRALE=_F(GROUP_MA='vol', + NOM_CHAM='FLUX_ELGA_TEMP', + NOM_CMP=('FLUX','FLUY','FLUZ',),), + MODELE=modl, + RESULTAT=resmgrad,); + +# impression des flux moy +IMPR_TABLE(TABLE=fluxmtot, + NOM_PARA=('VOL','MOYE_FLUX','MOYE_FLUY','MOYE_FLUZ',),); +# et moy du grad de temperature +IMPR_TABLE(TABLE=m_gradm, + NOM_PARA=('VOL','MOYE_FLUX','MOYE_FLUY','MOYE_FLUZ',),); + +# fin de l'execution +FIN(); diff --git a/MAP/Templates/s_poly_st_1_V1/s_poly_st_1_aster_template.export b/MAP/Templates/s_poly_st_1_V1/s_poly_st_1_aster_template.export new file mode 100644 index 00000000..d6b8c639 --- /dev/null +++ b/MAP/Templates/s_poly_st_1_V1/s_poly_st_1_aster_template.export @@ -0,0 +1,35 @@ +P serveur localhost +P version STA10.1 +P lang fr +P debug debug +P mode interactif +P ncpus 1 +P mpi_nbcpu 1 +P mpi_nbnoeud 1 +P classe +P depart +P distrib +P flashdir +P exectool +P nomjob cube_therm_grad +P origine ASTK 1.8.0 +A args +A memjeveux 218.75 +P mem_aster 100.0 +A tpmax 3600 +P memjob 1792000 +P tpsjob 60 +P follow_output yes +P nbmaxnook 5 +P cpresok RESNOOK +P facmtps 1 +P corefilesize unlimited +F comm %_PATH_MODULE%/%_NAME_SCHEME%/s_poly_st_1_aster.comm D 1 +F msh %_PATH_STUDY%/%_NAME_SCHEME%_benhur_%_BENHUR_FINESSE%.msh D 19 +F resu %_PATH_MODULE%/%_NAME_SCHEME%/s_poly_st_1_aster.resu R 8 +F mess %_PATH_MODULE%/%_NAME_SCHEME%/s_poly_st_1_aster.mess R 6 +F erre %_PATH_MODULE%/%_NAME_SCHEME%/s_poly_st_1_aster.erre R 9 +F msh %_PATH_MODULE%/%_NAME_SCHEME%/s_poly_st_1_aster.resu.msh R 37 +P consbtc oui +P soumbtc oui +P actions make_etude -- 2.39.2