Valeurs des différentes propriétés des matériaux pour les cas de P. Blanchet.




Érable
Bouleau
Colle
db
5.97
5.06
15
KL 1.31e-8
1.31e-8

1.e-15
KR
db*(3.8M-5.37)*1e-12 2.39e-10
KT
db*(3.8M-5.37)*1e-12
2.39e-10
h
3.2e-4
M0
6.3
Mambiant
5.
EL
13.81
12.045


10
ER
1.31
1.069
ET
0.678
0.516
vTL
0.025
0.018


0.35
vTR
0.43
0.38
vLR
0.46
0.49
GTL
0.753
0.607

E/2(1+v) = 3.703703704
GTR
0.255
0.2
GLR
1.013
0.829
BL
1.8e-4 (1.5e-4)
1.5e-4

1.9e-2
BR
1.9e-3 (2.1e-3)
1.73e-3
BT
2.8e-3 (3.3e-3)
2.4e-3
U0
(0,0,0)
   ¾0
0 (tensoriel)


Un template du fichier champs  pour ces valeurs se trouve ici .

Voici une explication sommaire des différentes sections du fichier:

Prologue.

On déclare le champ geo, on indique si notre problème sera un problème de contact (free standing) et la nature du problème: hydrique, thermique, mécanique

#
# -------------------------------------------------------------------------------------------------
# Définition du champ de transformation géométrique utilisé pour le calcul:

ChampGeoLin    "ChampGeo" ""

scalaire "zero" 0
vectoriel3d "zero3d" [0.,0.,0.]

#
# -------------------------------------------------------------------------------------------------
# On a un probleme de contact? Si oui on l'indique en donnant ici la surface de contact maximale
#
chainecar NOM_ENTITE_DE_CONTACT surface_dessous

#
# est-ce que l'on aura a resoudre un probleme avec des mouvements de corps rigide?
#
# ATTENTION : il faudra alors indiquer la direction CONNUE des
# mouvements de corps rigide

booleen CorpsRigideGCP f
scalaire DirectionRigide 2
chainecar lNomEntiteControle surface_dessous


#==ATTENTION==ATTENTION==ATTENTION==ATTENTION==ATTENTION==ATTENTION
#
#      temps     --> seconde
#      dimension --> mètre
#      pression  --> Gpa
#     
#==ATTENTION==ATTENTION==ATTENTION==ATTENTION==ATTENTION==ATTENTION

# Par defaut, le probleme resout un probleme d'humidite
# on choisit ensuite les autres types de problemes que l'on veut resoudre
# Pour le panneau d'armoire, on veut aussi resoudre la Mecanique

booleen Thermique f  
booleen Mecanique v

Méthode de résolution

On défini les différents paramètres définissant le problème instationnaire (temps initial, temps final, discontinuités en temps, etc) ainsi que les paramètres de la méthode de résolution (le solveur).


# Temps de depart:                    T_0
# Temps final:                        T_F

scalaire T_0 0
scalaire T_F 10368000

#
# Si les donnees ont des discontinuites en temps on va forcer une resolution a ces temps particuliers
# et on n'aura pas a se soucier des pas de temps, car le solveur fera le travail. Qu'on donne des pas de temps
# fixes ou variables.
#

#
# Sert à imposer des temps lors d'un calcul à pas de temps variable.
# booleen TempsImpose : sert à activer l'imposition de temps.
# scalaire NbTempsImpose : définit les temps que l'on veut imposer. Prends les premiers de la liste.
#

booleen TempsImpose v
scalaire NbTempsImpose 17           
scalaire TempsImpose_0 5171000.
scalaire TempsImpose_1 5173000.
scalaire TempsImpose_2 5175000.
scalaire TempsImpose_3 5177000.
scalaire TempsImpose_4 5178500.
scalaire TempsImpose_5 5180000.
scalaire TempsImpose_6 5181500.
scalaire TempsImpose_7 5182000.
scalaire TempsImpose_8 5182500.
scalaire TempsImpose_9 5183000.
scalaire TempsImpose_10 5183500.
scalaire TempsImpose_11 5184000.
scalaire TempsImpose_12 5184500.
scalaire TempsImpose_13 5185000.
scalaire TempsImpose_14 5185500.
scalaire TempsImpose_15 5186500.
scalaire TempsImpose_16 5188500.

#
# Donnees pour le calcul avec pas de temps variable.
# N.B: Si on veut faire un calcul avec un pas de temps fixe, on a seulement besoin d'indiquer le temps initial (T_0 définit plus haut),
# d'inscrire le pas de temps (PasDeTemps) et le nombre de pas de temps (NbPasDetemps un peu plus bas) que l'on veut faire.
# Il ne faut pas oublier de mettre en commentaire la ligne définissant le pas de temps variable.
#

# Pas de temps (valeur initiale si variable): PasDeTemps
# Pas de temps minimal:                       PasDeTempsMin
# Pas de temps maximal (pas le limite = 0):   PasDeTempsMax

scalaire PasDeTemps    1.0
scalaire PasDeTempsMin 0.005
scalaire PasDeTempsMax 100000

# 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    1000
scalaire freqCalcul      1
scalaire freqImpression  1

#
# valeur specifique au solveurInstNlinPETSc et solveurLinPETSc
#

# 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

#initialement, a -9 et j'essaie a -8
scalaire ToleranceLinMec 5e-9
scalaire ToleranceLinMecR 5e-40
scalaire Divergence 1e+10

# nombre maximum d'iterations pour les solveur
scalaire MaxItNlin 200
scalaire MaxItLin 5000
scalaire MaxItLinMec 5000

#
# 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 0
vectoriel3d Coord_0 [0.0  , 0.0  , 0.0094]
vectoriel3d Coord_1 [0.0  , 0.12 , 0.0094]
vectoriel3d Coord_2 [0.24 , 0.12 , 0.0094]
vectoriel3d Coord_3 [0.24 , 0.0  , 0.0094]
vectoriel3d Coord_4 [0.12 , 0.06 , 0.0047]

# ------------------------------------------------------------------------------------------------------------------

# 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, T_0, 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,T_F,TolerancePasVariable]


#solveurlinpetsc      typesolveur      "SolveurMec" gmres
#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]

#
# La matrice de rigidité du systeme mecanique depend du temps?
#
booleen forceAssemblageMatriceMec f

Valeurs initiales, type d'interpolation, Mambiant

On fixe le type d'interpolation pour les inconnues variationelles, on leur assigne une valeur initiale et on défini l'humidité ambiante


# Humidité initiale. MP est utilisé en cas d'hystérèse, représente l'humidité au pas précédent.

scalaire MInitiale 6.3
scallin "M" reinterpole(MInitiale)
scallin "MP" reinterpole(MInitiale)

booleen Hysterese v

# -----------------------------------------------------------------------------------------------
# Partie deformation
# déformation initiale

v3dquad "U" [0,0,0]

# -------------------------------------------------------------------------------------------------

# Champ necessaire pour la CL MInfini varie dans le temps

scalaire "MInfini" f()=5.


Définition des matériaux.


On défini tous les matériaux nécessaires dans des espace de noms ("namespace"). On pourra ensuite assigne ces espaces de noms à différentes entités du maillages.


# ------------------------------------------------------------------------------------
# Definition des types de bois

# Definition d'un materiau "erable"
{ Erable
    scalaire    "C_MRho"    597*1e-2   
    scalaire    "KL"            1.31e-08
    scalaire    "KR"            f(M,C_MRho)=C_MRho*(3.8*M-5.37)*1.0E-12
    scalaire    "KT"            f(M,C_MRho)=C_MRho*(3.8*M-5.37)*1.0E-12
    scalaire    "dKRdM"        f(C_MRho)=3.8e-12*C_MRho
    scalaire    "dKTdM"        f(C_MRho)=3.8e-12*C_MRho
    scalaire     "EL"        13.810
    scalaire    "ER"        1.311
    scalaire    "ET"        0.678
    scalaire    "VTL"        0.025
    scalaire    "VTR"        0.43
    scalaire    "VLR"        0.46
    scalaire    "VLT"        0.50
    scalaire    "GLT"        0.753
    scalaire    "GRT"        0.255
    scalaire    "GLR"        1.013
    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    "H_M"        -3.2e-4       

    # dans ce cas-ci x = L, y = T z = R alors pour les tenseurs on a
    empilementto2     "K_M"          [KL,KT,KR,zero,zero,zero]
    empilementto2     "dK_MdM"    [zero,dKTdM,dKRdM,zero,zero,zero]
    to4elasticite   "Eijkl"     [EL,ET,ER,VLT,VTR,VLR,GLT,GRT,GLR]
   
    # Pour la dilatation qui est BetaM
    scalaire "DilErL" f(M,MP,BL,AL)=(M > MP)*BL+(M < MP)*AL
    scalaire "DilErT" f(M,MP,BT,AT)=(M > MP)*BT+(M < MP)*AT
    scalaire "DilErR" f(M,MP,BR,AR)=(M > MP)*BR+(M < MP)*AR

    empilementto2 "BetaM" [DilErL,DilErT,DilErR,zero,zero,zero]       
}

# Definition d'un materiau "bouleau"
{ Bouleau
    scalaire    "C_MRho"    506*1e-2   
    scalaire    "KL"            1.31e-08
    scalaire    "KR"            2.39e-10
    scalaire    "KT"            2.39e-10
    scalaire    "dKRdM"        0
    scalaire    "dKTdM"        0
    scalaire     "EL"        12.045
    scalaire    "ER"        1.069
    scalaire    "ET"        0.516
    scalaire    "VTL"        0.018
    scalaire    "VTR"        0.38
    scalaire    "VLR"        0.49
    scalaire    "VLT"        0.43
    scalaire    "GLT"        0.607
    scalaire    "GRT"        0.2
    scalaire    "GLR"        0.829
    scalaire    "BL"        0.00015
    scalaire    "BR"        0.00173  
    scalaire    "BT"        0.0024
    scalaire    "H_M"        -3.2e-4       

    # dans ce cas-ci x = L, y = T z = R alors pour les tenseurs on a
    empilementto2     "K_M"          [KL,KT,KR,zero,zero,zero]
    empilementto2     "dK_MdM"    [zero,dKTdM,dKRdM,zero,zero,zero]
    to4elasticite   "Eijkl"     [EL,ET,ER,VLT,VTR,VLR,GLT,GRT,GLR]
   
    # Pour la dilatation qui est BetaM
    empilementto2 "BetaM" [BL,BT,BR,zero,zero,zero]       
}

# Definition d'un materiau "colle"
{ ColleUF
    scalaire    "C_MRho"    15.0   
    scalaire    "K"        1.e-15
    scalaire    "dKdM"        0
    scalaire     "Young"        10
    scalaire    "Cisail"    3.703703704
    scalaire    "Poisson"    0.35
    scalaire    "B"        0.019
    scalaire    "H_M"        -3.2e-4       
    empilementto2     "K_M"          [K,K,K,zero,zero,zero]
    empilementto2     "dK_MdM"    [dKdM,dKdM,dKdM,zero,zero,zero]
    to4elasticite   "Eijkl"     [Young,Young,Young,Poisson,Poisson,Poisson,Cisail,Cisail,Cisail]
    empilementto2   "BetaM"     [B,B,B,zero,zero,zero]   
}

Construction de la pièce

On rattache les différents matériaux aux différentes entités définissant le domaine à l'étude.

# ---------------------------------------------------------------------------------------------------

champssurgeom dessus=Erable dessous=Erable milieu_0=Erable milieu_90=Erable colle=ColleUF