#################################################################################################### # ## CARACTÉRISATION DU PROBLÈME ET CHOIX DU SOLVEUR # #################################################################################################### # # on choisit le type de probleme on veut resoudre # booleen Thermique f booleen Mecanique v # est-ce que l'on aura a resoudre un probleme avec des mouvements de corps rigide? # # ATTENTION : il faut donner la direction CONNUE et parallele à un des axes des # mouvements de corps rigide et il faut donner le nom de l'entité sur laquelle on fait # le controle des deplacements. Rappel 0 = x, 1 = y, 2 = z #booleen CorpsRigideGCP v #scalaire DirectionRigide 2 #chainecar lNomEntiteControle "le_nom" # # Y-a-t'il une hystèrese par rapport à M dans le problème? # booleen Hysterese f # # on veut la trace de la solution en certain 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 2 vectoriel3d Coord_0 [0.28,0.28,0.] vectoriel3d Coord_1 [0.28,0.28,0.0105] # # Temps de depart: T_0 # Temps final: T_F scalaire T_0 0 scalaire T_F 1.e+7 # # Si les donnees on des discontinuite en temps on va forcer une resolution a ces temps particulier # et on aura pas a se soucier des pas de temps car le solveur fera le travail qu'on donne des pas de temps # fixes ou varaibles. # #booleen TempsImpose v #scalaire NbTempsImpose 1 #scalaire TempsImpose_0 4. # Pas de temps (valeur initiale si variable): PasDeTempsInit # Pas de temps minimal: PasDeTempsMin # Pas de temps maximal (pas le limite = 0): PasDeTempsMax scalaire PasDeTempsInit 0.000001 scalaire PasDeTempsMin 0.0001 scalaire PasDeTempsMax 1.e+6 # Nombre maximal de pas de temps: NbPasDeTemps # frequence du calcul en elasticite (relativement au probleme en M: 0 == pas de calcul): freqCalcul # frequence d'impression des champs (pas d'impression = 0): freqImpression scalaire NbPasDeTemps 9999 scalaire freqCalcul 1 scalaire freqImpression 1 # # valeur specifique au solveurInstNlinPETSc voir la classe pour les explications # # tolerance pour le calcul des pas de temps scalaire TolerancePasVariable 5e-3 # Tolerance pour la convergence des solveurs scalaire ToleranceNlin 1e-9 scalaire ToleranceLin 5e-9 scalaire ToleranceLinMec 5e-12 scalaire ToleranceLinMecR 5e-40 scalaire Divergence 1e+10 # nombre maximum d'iterations pour les solveur scalaire MaxItNlin 100 scalaire MaxItLin 5000 scalaire MaxItLinMec 5000 ## Solveur PETSc ## solveurlinpetsc typesolveur "SolveurLin" gmres solveurlinpetsc typeprecond "SolveurLin" ilu solveurlinpetsc suiviconvergence "SolveurLin" aucun solveurlinpetsc tolerance "SolveurLin" [ToleranceLin,ToleranceLin,Divergence,MaxItLin] solveurinstnlinpetsc typesolveur "SolveurInst" solveurinstnlinpetsc solveurlin "SolveurInst" SolveurLin solveurinstnlinpetsc parametresnlin "SolveurInst" [ToleranceNlin,MaxItNlin] solveurinstnlinpetsc parametresinst "SolveurInst" [PasDeTempsInit, NbPasDeTemps, T_0, eulerimplicit] # # Propriete 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 choisi un pas de temps variable calculé par le solveur # (commenter si on en veut pas, mais attention a NbPasDeTemps) # solveurinstnlinpetsc pasdetempsvariable "SolveurInst" [PasDeTempsMin,PasDeTempsMax,T_F,TolerancePasVariable] solveurlinpetsc typesolveur "SolveurMec" gradient_conjugue solveurlinpetsc typeprecond "SolveurMec" sor solveurlinpetsc config_precond_sor "SolveurMec" [v,0.7] solveurlinpetsc suiviconvergence "SolveurMec" defaut solveurlinpetsc tolerance "SolveurMec" [ToleranceLinMecR,ToleranceLinMec,Divergence,MaxItLinMec] # # FIN DES CONSTANTES, DEBUT DES CHAMPS OU DES CONSTANTES DEPENDANT D'AUTRES CONSTANTES # #################################################################################################### # ## DÉFINITIONS DES INCONNUES ET AUTRES FONCTIONS DU PROBLÈME E.F. # #################################################################################################### ChampGeoLin "ChampGeo" "" scalaire "zero" 0. # # On defini la valeur intiale de M et T si necessaire # # ATTENTION A L'IMPACT SUR M_infini et T_infini scalaire "Minitiale" f()=6.5 scallin "M" reinterpole(Minitiale) v3dquad "U" [0, 0, 0] # # Si on a de l'hystérèse par rapport à M alors on a besoin de # - la valeur de M au pas précédent # - la différence entre M et M précédent scallin "MP" reinterpole(Minitiale) scalaire "DeltaM" f(M,MP)=M-MP ## Pour les CL ## scalaire "h" -3.2e-5 scalaire "M_infini" 10. #################################################################################################### # ## DÉFINITIONS DES MATÉRIAUX COMPOSANT LE PANNEAU # #################################################################################################### # # Niveau d'humidite de référence pour les valeurs # scalaire MREF0 6.6 scalaire MREF1 9.0 #################################################################################################### # ## donnee relative a un mdf a 800 Kg/m3 # #################################################################################################### {mdf800 ## Valeur de la densite scalaire densite 800.0 ## Valeur de la densité (/100) scalaire "C_MRho" 8.0 ## Hydrik ## Diffusion scalaire D10 8.0e-10 scalaire D11 8.0e-11 scalaire DD1 -3.0e-10 scalaire D f(M,D10,D11,DD1,MREF0,MREF1)= (D10 + DD1*(M-MREF0)*(M>MREF0))*(M=MREF1) empilementto2 "K_M" [zero,zero,D,zero,zero,zero] //Si on veut Newton alors #scalaire dDdM f(M,D10,D11,DD1,MREF0,MREF1)=??? #empilementto2 "dK_MdM" [zero,zero,dDdM,zero,zero,zero] ## Mecanik ## Les valeurs de dilatation hydrique ## Absorption scalaire "beta1Abs" 3.6e-4 scalaire "beta3Abs" 8.4e-3 ## Dessorption scalaire "beta1Des" 7.7e-4 scalaire "beta3Des" 9.5e-3 scalaire "beta1" f(DeltaM,beta1Abs,beta1Des)=(DeltaM>=0.)*beta1Abs + (DeltaM<0.)*beta1Des scalaire "beta3" f(DeltaM,beta3Abs,beta3Des)=(DeltaM>=0.)*beta3Abs + (DeltaM<0.)*beta3Des empilementto2 "BetaM" [beta1,beta1,beta3,zero,zero,zero] ## Module d'Young (lineaire alors on donne E au point de reference M = MREF et ##la pente de la droite i.e. (E_1(M=9)-E11)/(M=9-MREF)) ## E1 scalaire E10 2.2e+9 scalaire E11 1.9e+9 scalaire DE1 -1.25e+8 ## E3 scalaire E30 6.1e+7 scalaire E31 4.4e+7 scalaire DE3 -7.08333e+6 ## Cisaillament (lineaire alors on donne G au point de reference et la pente de la droite) ## G1 scalaire G10 8.5e+8 scalaire G11 7.5e+8 scalaire DG1 -4.16667e+7 ## G3 scalaire G30 1.3e+8 scalaire G31 1.0e+8 scalaire DG3 -1.25e+7 scalaire E1 f(M,E10,E11,DE1,MREF0,MREF1)= (E10 + DE1*(M-MREF0)*(M>MREF0))*(M=MREF1) scalaire E3 f(M,E30,E31,DE3,MREF0,MREF1)= (E30 + DE3*(M-MREF0)*(M>MREF0))*(M=MREF1) scalaire G1 f(M,G10,G11,DG1,MREF0,MREF1)= 2.*((G10 + DG1*(M-MREF0)*(M>MREF0))*(M=MREF1)) scalaire G3 f(M,G30,G31,DG3,MREF0,MREF1)= 2.*((G30 + DG3*(M-MREF0)*(M>MREF0))*(M=MREF1)) scalaire G3_demi f(M,G30,G31,DG3,MREF0,MREF1)= (G30 + DG3*(M-MREF0)*(M>MREF0))*(M=MREF1) ## Poisson scalaire "Nu12" 0.3 scalaire "Nu13" 0.2 to4elasticite "Eijkl" [E1,E1,E3,Nu12,Nu13,Nu13,G1,G3,G3] } #################################################################################################### # ## donnee relative a un mdf a 650 Kg/m3 # #################################################################################################### {mdf650 ## Valeur de la densite scalaire densite 650.0 ## Valeur de la densité (/100) scalaire "C_MRho" 6.5 ## Hydrik ## Diffusion scalaire D10 9.3e-10 scalaire D11 8.9e-11 scalaire DD1 -3.50416e-10 scalaire D f(M,D10,D11,DD1,MREF0,MREF1)= (D10 + DD1*(M-MREF0)*(M>MREF0))*(M=MREF1) empilementto2 "K_M" [zero,zero,D,zero,zero,zero] //Si on veut Newton alors #scalaire dDdM f(M,D10,D11,DD1,MREF0,MREF1)=??? #empilementto2 "dK_MdM" [zero,zero,dDdM,zero,zero,zero] ## Mecanik ## Les valeurs de dilatation hydrique ## Absorption scalaire "beta1Abs" 2.3e-4 scalaire "beta3Abs" 7.7e-3 ## Dessorption scalaire "beta1Des" 4.8e-4 scalaire "beta3Des" 6.2e-3 scalaire "beta1" f(DeltaM,beta1Abs,beta1Des)=(DeltaM>=0.)*beta1Abs + (DeltaM<0.)*beta1Des scalaire "beta3" f(DeltaM,beta3Abs,beta3Des)=(DeltaM>=0.)*beta3Abs + (DeltaM<0.)*beta3Des empilementto2 "Beta" [beta1,beta1,beta3,zero,zero,zero] ## Module d'Young (lineaire alors on donne E au point de reference M = MREF et ##la pente de la droite i.e. (E_1(M=9)-E11)/(M=9-MREF)) ## E1 scalaire E10 1.3e+9 scalaire E11 1.1e+9 scalaire DE1 -8.33333e+7 ## E3 scalaire E30 3.5e+7 scalaire E31 2.6e+7 scalaire DE3 -3.75e+6 ## Cisaillament (lineaire alors on donne G au point de reference et la pente de la droite) ## G1 scalaire G10 5.0e+8 scalaire G11 4.231e+8 scalaire DG1 -3.2041666666667e+7 ## G3 scalaire G30 1.17e+8 scalaire G31 9.1e+7 scalaire DG3 -1.0833333e+7 scalaire E1 f(M,E10,E11,DE1,MREF0,MREF1)= (E10 + DE1*(M-MREF0)*(M>MREF0))*(M=MREF1) scalaire E3 f(M,E30,E31,DE3,MREF0,MREF1)= (E30 + DE3*(M-MREF0)*(M>MREF0))*(M=MREF1) scalaire G1 f(M,G10,G11,DG1,MREF0,MREF1)= 2.*((G10 + DG1*(M-MREF0)*(M>MREF0))*(M=MREF1)) scalaire G3 f(M,G30,G31,DG3,MREF0,MREF1)= 2.*((G30 + DG3*(M-MREF0)*(M>MREF0))*(M=MREF1)) scalaire G3_demi f(M,G30,G31,DG3,MREF0,MREF1)= (G30 + DG3*(M-MREF0)*(M>MREF0))*(M=MREF1) ## Poisson scalaire "Nu12" 0.3 scalaire "Nu13" 0.2 to4elasticite "Eijkl" [E1,E1,E3,Nu12,Nu13,Nu13,G1,G3,G3] } # # Assignation des matériaux au différentes composantes formant le panneau. # On suppose que la geometrie contient les entites: volume_dessus, volume_milieu et volume_dessous # champssurgeom volume_dessus=mdf800 volume_milieu=mdf650 volume_dessous=mdf800