# ChampGeoLin "ChampGeo" "" booleen Thermique f booleen Mecanique v booleen Reassemble f booleen VerboseInstationnaire v booleen VerbosePointFixe v booleen E_InfVieillissant v booleen TempsImpose f booleen Hysterese v # Pas de temps (valeur initiale si variable): PasDeTempsInit # Pas de temps minimal: PasDeTempsMin # Pas de temps maximal (pas le limite = 0): PasDeTempsMax # ceci donne des pas de temps de heures scalaire PasDeTemps 0.000001 scalaire PasDeTempsMin 0.1 scalaire PasDeTempsMax 1.15740 #scalaire PasDeTempsMax .3 scalaire TempsInitial 0 scalaire LongueurPasDeTemps 0.1 scalaire NombreDePasDeTemps 430 scalaire LongueurMaximalePasDeTemps 0.1 scalaire TempsFinal 122 scalaire MInitiale 6. scalaire "M12" 12 scallin "M" reinterpole(MInitiale) scallin "MP" reinterpole(M) scalaire "One" 1 scalaire "Alpha" -0.015 scalaire "PtZeroCinq" 0.05 #scalaire "IndicateurEtat_Inf" f(M,MP)=(M-MP) scalaire "IndicateurEtat_Inf" 0 scalaire "Integrale_bInf" f(Alpha,M,M12,MP)=0.05*(2.0+Alpha*(M-M12)+Alpha*(MP-M12)) v3dquad "U" [0,0,0] v3dquad "UPrec" [0,0,0] to4elasticite "ERef_Infijkl" [1e5,1e5,1e5,0.3,0.3,0.3,38462,38462,38462] scalaire "NombreBrancheViscoElastique" 1 { Branche_00 to4elasticite "ERef_ijkl" [4e5,4e5,4e5,0.3,0.3,0.3,153846,153846,153846] to4elasticite "ViscoRef_ijkl" [4e5,4e5,4e5,0.3,0.3,0.3,153846,153846,153846] booleen MateriauVieillissant v scalaire "DeltaTempsReduit" .1 scalaire "IndicateurEtat" f(M,MP)=(M-MP) scalaire "Multiplicateur_b" f(One,Alpha,M,M12)=One+Alpha*(M-M12) scalaire "Multiplicateur_bPrecedent" f(One,Alpha,MP,M12)=One+Alpha*(MP-M12) } # ceci donne des pas de temps scalaire NbPasDeTemps 500 scalaire freqCalcul 1 scalaire freqImpression 1 # # valeur specifique au solveurInstNlinPETSc et solveurLinPETSc # # Tolerance accrue pour le solveur scalaire ToleranceLin 1e-10 scalaire ToleranceLinMec 1e-10 scalaire ToleranceLinMecR 1e-40 scalaire Divergence 1e+10 scalaire TolerancePointFixe 1e-8 scalaire NombreMaximalIterationsPointFixe 400 # nombre maximum d'iterations pour les solveurs scalaire MaxItNlin 200 scalaire MaxItLin 6000 scalaire MaxItLinMec 6000 # # valeur specifique au solveurInstNlinPETSc et solveurLinPETSc # # tolerance pour le calcul des pas de temps scalaire TolerancePasVariable 5e-3 # Tolerance accrue pour le solveur non lineaire # Tolerance pour la convergence des solveurs scalaire ToleranceNlin 1e-9 # # est-ce que l'on aura a resoudre un probleme avec des mouvements de corps rigide? # a modifier si on sait que l'on aura des mouvements de corps rigide. # # ATTENTION : il faudra alors modifier dans le code suivant la direction CONNUE des # mouvements de corps rigide booleen CorpsRigideGCP f # On choisit le type de solveur qu'on utilise ## Solveur PETSc ## # Pour plus d'information sur les solveurs, voir le lien "format du fichier champs" dans la documentation MEF++ # #solveurlinpetsc typesolveur "SolveurLin" gradient_conjugue solveurlinpetsc typesolveur "SolveurLin" direct solveurlinpetsc typeprecond "SolveurLin" sor solveurlinpetsc configprecondsor "SolveurLin" [v] solveurlinpetsc suiviconvergence "SolveurLin" defaut solveurlinpetsc tolerance "SolveurLin" [ToleranceLin,ToleranceLin,Divergence,MaxItLin] solveurinstnlinpetsc typesolveur "SolveurInst" solveurinstnlinpetsc solveurlin "SolveurInst" SolveurLin solveurinstnlinpetsc parametresnlin "SolveurInst" [ToleranceNlin,MaxItNlin,v] solveurinstnlinpetsc parametresinst "SolveurInst" [PasDeTemps, NbPasDeTemps, TempsInitial, eulerimplicit,v] solveurinstnlinpetsc reassemblagesafaire "SolveurInst" [1,1] # # Proprietes des matrices permettant d'optimiser la resolution instationnaire # Ce sont des optimisations. Le code marchera sans ces options (plus long cependant) # # PM0 la matrice masse depend du temps via C_MRho # PM1 la matrice masse depend de la solution recherchee via C_MRho # PK0 la matrice rigidite depend du temps # PK1 la matrice rigidite depend de la solution recherchee # PK2 la matrice rigidite depend des CL (la matrice sera modifiee par les CL: robin <=> neumannonlineaire) # # solveurinstnlinpetsc parametres_matrice_masse "SolveurInst" [PM0,PM1] # solveurinstnlinpetsc parametres_matrice_rigidite "SolveurInst" [PK0,PK1,PK2] # solveurinstnlinpetsc parametres_matrice_masse "SolveurInst" [f,f] solveurinstnlinpetsc parametres_matrice_rigidite "SolveurInst" [f,v,v] # # on choisit un pas de temps variable calculé par le solveur # (commenter si on en veut pas, mais attention a NbPasDeTemps) # solveurinstnlinpetsc pasdetempsvariable "SolveurInst" [PasDeTempsMin,PasDeTempsMax,TempsFinal,TolerancePasVariable] # # on veut la trace de la solution en certains points # NbEval nombre de points d'evaluations # Coord_i le point i pour i=0 a NbEval-1 # # en mettant NbEval à zéro on ne fait plus les evaluations scalaire NbEval 1 #ajouter les autres coins vectoriel3d Coord_0 [20, 0, 0] vectoriel3d Coord_1 [20, .5, 0] vectoriel3d Coord_2 [20.,-.5, 0.0] vectoriel3d Coord_3 [1., 1., 0] # On choisit le type de solveur qu'on utilise #solveurlinpetsc typesolveur "SolveurMec" gradient_conjugue solveurlinpetsc typesolveur "SolveurMec" direct solveurlinpetsc typeprecond "SolveurMec" sor solveurlinpetsc configprecondsor "SolveurMec" [v,0.7] solveurlinpetsc suiviconvergence "SolveurMec" defaut solveurlinpetsc tolerance "SolveurMec" [ToleranceLinMecR,ToleranceLinMec,Divergence,MaxItLinMec] # ------------------------------------------------------------------------------------------------- # Champ necessaire pour la CL # MInfini varie dans le temps # Ceci donne l'humidite ambiante #scalaire MInfini f()=(t<=20.)*((4*t)/(20.)+8)+((t>20)&(t<=40))*(12 + (-7)*(t-20.)/20 ) #scalaire MInfini f()=(t<=10.)*((6*t)/(10.)+8)+((t>10)&(t<=40))*(14 + (-9)*(t-10.)/10 ) #Variation du temps entre [0,5] et [5,40] scalaire MInfini f()=(t<=5.)*((6*t)/(5.)+8)+((t>5)&(t<=40))*(14 + (-9)*(t-5.)/5 ) #scalaire MInfini 8 #scalaire MInfini f()=(t<=60.)*((4*t)/(60.)+8)+((t>60)&(t<=120))*(12 + (-7)*(t-60.)/60 ) # ------------------------------------------------------------------------------------ scalaire "H1" f()=-1*((0<=t)&(t<=10)) scalaire "nul" f()=0 scalaire zero 0 scalaire UN 1 # Definition d'un materiau "erable" scalaire "db" 597 scalaire "DL" 1.3e-08 scalaire "DR" f(M)=-5.37e-12+(3.8e-12)*M scalaire "DT" f(M)=-5.37e-12+(3.8e-12)*M scalaire "dDR" 3.8e-12 scalaire "dDT" 3.8e-12 scalaire "KL" f(DL,db)=DL*db/100 scalaire "KR" f(DR,db)=DR*db/100 scalaire "KT" f(DT,db)=DT*db/100 scalaire "dKR" 5.97*3.8e-12 scalaire "dKT" 5.97*3.8e-12 scalaire "dKL" 0 scalaire "EL" 13.810 scalaire "ER" 1.311 scalaire "ET" 0.678 scalaire "GLR" 1.013 scalaire "GLT" 0.753 scalaire "GRT" 0.255 scalaire "VTL" 0.025 scalaire "VTR" 0.43 scalaire "VLR" 0.46 scalaire "VLT" 0.50 scalaire "AL" .14715 scalaire "AR" .21382 scalaire "AT" .33495 #scalaire "AL" 0.00014715 #scalaire "AR" 0.0021382 #scalaire "AT" 0.0033495 #scalaire "BL" 0.0001842 #scalaire "BR" 0.0019053 #scalaire "BT" 0.0027579 scalaire "BL" .1200 scalaire "BR" .59053 scalaire "BT" .927579 scalaire "H_M" 3.2e-4 scalaire "C_MRho" f(db)=db*1e-2 empilementto2 "K_M" [KL,KT,KR,zero,zero,zero] empilementto2 "dK_MdM" [dKL,dKT,dKR,zero,zero,zero] #to4elasticite "Eijkl" [EL,ET,ER,VLT,VTR,VLR,GLT,GRT,GLR] # Pour la dilatation qui est BetaM scalaire "DilErX" f(M,MP,BL,AL)=(M > MP)*BL+(M < MP)*AL scalaire "DilErY" f(M,MP,BT,AT)=(M > MP)*BT+(M < MP)*AT scalaire "DilErZ" f(M,MP,BR,AR)=(M > MP)*BR+(M < MP)*AR empilementto2 "BetaM" [DilErX,DilErY,DilErZ,zero,zero,zero] # empilementto2 "BetaM" [zero,zero,zero,zero,zero,zero]