\[\newcommand{\vector}[1]{\underline{#1}}
\newcommand{\vectorZero}{\vector{0}}
\newcommand{\tensTwo}[1]{\boldsymbol{#1}}
\newcommand{\tensTwoZero}{\tensTwo{0}}
\newcommand{\tensTwoUnit}{\tensTwo{I}}
\newcommand{\tensFour}[1]{\mathbb{#1}}
\newcommand{\inverse}[1]{{#1}^{-1}}
\newcommand{\transpose}[1]{{#1}^{T}}
\newcommand{\inverseTranspose}[1]{ {#1}^{-T}}
\newcommand{\vectorCmp}[2]{#1_{\left(#2\right)}}
\newcommand{\vectorCmpCO}[2]{#1_{\left(#2\right)}}
\newcommand{\vectorCmpCT}[2]{#1^{\left(#2\right)}}
\newcommand{\tensTwoCmpCO}[3]{#1_{\left(#2 #3\right)}}
\newcommand{\tensTwoCmpCT}[3]{#1^{\left(#2 #3\right)}}
\newcommand{\tensTwoInva}[2]{I^{#1}_{#2}}
\newcommand{\tensTwoDevia}[1]{\boldsymbol{\tilde{#1}}}
\newcommand{\tensFourCmpCO}[5]{#1_{\left(#2 #3 #4 #5\right)}}
\newcommand{\tensFourCmpCT}[5]{#1^{\left(#2 #3 #4 #5\right)}}
\newcommand{\domain}{\Omega}
\newcommand{\domainRefe}{\domain^{0}}
\newcommand{\domainCurr}{\domain^{t}}
\newcommand{\bound}{\partial\domain}
\newcommand{\boundRefe}{\bound^{0}}
\newcommand{\boundCurr}{\bound^{t}}
\newcommand{\boundN}{\bound_{\textrm{N}}}
\newcommand{\boundNRefe}{\boundN^{0}}
\newcommand{\boundNCurr}{\boundN^{t}}
\newcommand{\boundD}{\bound_{\textrm{D}}}
\newcommand{\boundDRefe}{\boundD^{0}}
\newcommand{\boundDCurr}{\boundD^{t}}
\newcommand{\normal}{\vector{n}}
\newcommand{\normalRefe}{\normal^{0}}
\newcommand{\normalCurr}{\normal^{t}}
\newcommand{\posi}{\vector{x}}
\newcommand{\posiRefe}{\posi^{0}}
\newcommand{\posiCurr}{\posi^{t}}
\newcommand{\disp}{\vector{u}}
\newcommand{\dispVirt}{\delta\vector{v}}
\newcommand{\funcTransfor}{\vector{\varphi}^{t}}
\newcommand{\gradTransfor}{\tensTwo{F}}
\newcommand{\jacobTransfor}{J}
\newcommand{\posiIncr}{\vector{dx}}
\newcommand{\posiIncrRefe}{\posiIncr^{0}}
\newcommand{\posiIncrCurr}{\posiIncr^{t}}
\newcommand{\strainCmp}{\varepsilon}
\newcommand{\strain}{\tensTwo{\strainCmp}}
\newcommand{\EGLCmp}{E}
\newcommand{\ECGDroiteCmp}{C}
\newcommand{\ECGGaucheCmp}{B}
\newcommand{\ELOGCmp}{{E}_{ln}}
\newcommand{\EGL}{\tensTwo{\EGLCmp}}
\newcommand{\ECGDroite}{\tensTwo{\ECGDroiteCmp}}
\newcommand{\ECGGauche}{\tensTwo{\ECGGaucheCmp}}
\newcommand{\ELOG}{\tensTwo{\ELOGCmp}}
\newcommand{\EDilCmp}{C^{\star}}
\newcommand{\EDil}{\tensTwo{\EDilCmp}}
\newcommand{\divTensTwo}[1]{\vector{\nabla} {\cdot} #1 }
\newcommand{\divVector}[1]{\vector{\nabla} {\cdot} #1 }
\newcommand{\gradScal}[1]{\vector{\nabla} #1 }
\newcommand{\gradVector}[1]{\vector{\nabla} \times #1 }
\DeclareMathOperator{\rand}{rand}
\DeclareMathOperator{\round}{round}
\DeclareMathOperator{\trace}{trace}
\DeclareMathOperator{\rank}{rang}
\DeclareMathOperator{\dev}{dev}
\DeclareMathOperator{\cot}{cot}
\newcommand{\metric} {\tensTwo{g}}
\newcommand{\vectorBaseCV}[1]{\vector{g_{#1}}}
\newcommand{\vectorBaseCT}[1]{\vector{g^{#1}}}
\newcommand{\metricRefe} {\metric^{t}}
\newcommand{\metricCurr} {\metric^{0}}
\newcommand{\discVect}[1]{\lbrace #1 \rbrace}
\newcommand{\discVectLigne}[1]{\langle #1 \rangle}
\newcommand{\discVectZero}{\discVect{0}}
\newcommand{\discVectCmp}[2]{\lbrace #1 \rbrace_{(#2)}}
\newcommand{\discVectLigneCmp}[2]{\langle #1 \rangle_{(#2)}}
\newcommand{\discMatr}[1]{\left[ #1 \right]}
\newcommand{\discMatrZero}{\discMatr{0}}
\newcommand{\discMatrCmp}[3]{\left[ #1 \right]_{(#2#3)}}
\newcommand{\onQuadPoint}[2]{{#1}_{#2}}
\newcommand{\onNode}[2]{{#1}^{#2}}
\newcommand{\quadOrder}{k_{Q}}
\newcommand{\nbQuadPoint}{n_Q}
\newcommand{\quadWeight}[1]{\omega_{#1}}
\newcommand{\quadPointIndex}{i_{\textrm{pg}}}
\newcommand{\nodeIndex}{i_{\textrm{no}}}
\newcommand{\pres}{p}
\newcommand{\presRefe}{\pres^{0}}
\newcommand{\presCurr}{\pres^{t}}
\newcommand{\stressCmp}{\sigma}
\newcommand{\stress}{\tensTwo{\stressCmp}}
\newcommand{\stressPKTwoCmp}{S}
\newcommand{\stressPKTwo}{\tensTwo{\stressPKTwoCmp}}
\newcommand{\work}[1]{W^{#1}}
\newcommand{\enerInterne}{\Psi_i}
\newcommand{\yieldStress}{\sigmaCmp_{Y}}
\newcommand{\youngModulus}{E}
\newcommand{\youngModulusCplx}{E^{\star}}
\newcommand{\poissonCoef}{\nu}
\newcommand{\poissonCoefCplx}{\nu^{\star}}
\newcommand{\shearModulus}{G}
\newcommand{\bulkModulus}{K}
\newcommand{\modulusTangent}{\tensFour{K}}
\newcommand{\anglDila}{\psi}
\newcommand{\anglFric}{\varphi}
\newcommand{\cohesion}{c}
\newcommand{\presCapi}{\pres_{c}}
\newcommand{\presEau}{\pres_{w}}
\newcommand{\presAir}{\pres_{a}}
\newcommand{\shapeFunc}{\Phi}
\newcommand{\shapeDFunc}{B}
\newcommand{\measLine}{\, \mathrm{d} l}
\newcommand{\measDomain}{\, \mathrm{d} \domain}
\newcommand{\measBound}{\, \mathrm{d} \Gamma}
\newcommand{\normEucl}[1]{\Vert{#1} \Vert }
\newcommand{\valeAbs}[1]{\vert{#1} \vert }
\newcommand{\derivee}[2]{#1_{, #2}}
\newcommand{\soundSpeed}{c}
\newcommand{\soundSpeedComp}{c_{P}}
\newcommand{\soundSpeedCisa}{c_{S}}
\newcommand{\posiTang}{\posi_{\tau}}
\newcommand{\posiNorm}{{x}_{n}}
\newcommand{\dispTang}{\disp_{\tau}}
\newcommand{\dispNorm}{{u}_{n}}
\newcommand{\basisVector}[1]{\vector{e}_{#1}}
\newcommand{\sigmVector}{\vector{t}}
\newcommand{\sigmVectorTang}{\sigmVector_{\tau}}
\newcommand{\sigmVectorNorm}{t_{n}}
\newcommand{\lameLambda}{\lambda}
\newcommand{\lameMu}{\mu}
\newcommand{\temp}{T}
\newcommand{\therCp}{C_{p}}
\newcommand{\therFlux}{\vector{q}}
\newcommand{\therCondTher}{\lambda}
\newcommand{\therSource}{s}
\newcommand{\tempVirt}{\delta T}
\newcommand{\beamArea}{S}
\newcommand{\beamLength}{L}
\newcommand{\setC}{\mathbb{C}}
\newcommand{\setR}{\mathbb{R}}\]
10. Comportements non-linéaires
⟐ COMPORTEMENT = _F(
◇ RELATION = / "THER_HYDR",
/ "THER_NL" (par défaut),
◆ / TOUT = "OUI" (ou non renseigné),
/ GROUP_MA = list[grma],
),
Les comportements non-linéaires sont décrits par le mot-clef facteur répétable COMPORTEMENT.
Le mot-clef GROUP_MA spécifie les mailles sur lesquelles la relation de comportement est appliquée.
Contrairement à la mécanique, le comportement “THER_NL” est nécessairement appliqué à tout le maillage, option TOUT : “OUI”, option par défaut, qui est en fait, dans le cas général, transparente pour l’utilisateur.
Il existe trois grandes catégories de comportements non-linéaires:
- Remarque :
Si le mot-clef COMPORTEMENT est absent, on effectue un calcul de thermique non linéaire « standard ».
10.1. Thermique non-linéaire
Quand RELATION=”THER_NL”, il s’agit de la résolution thermique non linéaire standard.
Modélisations supportées:
10.2. Calcul d’hydratation
Quand RELATION=”THER_HYDR”, on résoud l’équation de la chaleur avec un terme source supplémentaire \(Q \dot{\xi}\) où \(Q\) est la chaleur d’hydratation, supposée constante. La variable d’hydratation \(\xi\) est solution de la loi d’évolution non linéaire, résolue simultanément au problème de thermique:
\[\dot{\xi}
=
A(\xi ) \exp \left( -\frac{E}{RT} \right)\]
On se reportera à la documentation de l’opérateur [DEFI_MATERIAU] pour la signification des différents paramètres.
A l’instant initial du calcul, la variable d’hydratation prend pour valeur le champ trouvé sous le nom “HYDR_ELNO” dans la structure de données evol_ther définie sous ETAT_INIT. Par défaut, l’état hydrique initial est pris vierge \(\xi =0\) .
Modélisations supportées: