3. Principe de fonctionnement#

\[\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}}\]

Selon ses arguments d’entrée, CALC_MISS produit un concept dont le type varie ou bien ne produit pas de concept:

  • Si TYPE_RESU vaut “FICHIER” ou “FICHIER_TEMPS”, aucun concept n’est produit. Seule l’exécution de Miss3D est lancée. Les résultats (rigidité dynamique de sol et forces sismiques) sont alors écrits dans les fichiers repérés par les unités logiques telles que UNITE_RESU_IMPE, UNITE_RESU_FORC, UNITE_RESU_MASS, UNITE_RESU_RIGI ou UNITE_RESU_AMOR. Il n’y a pas de post-traitement des résultats issus de Miss3D

  • Si TYPE_RESU vaut “CHARGE”, une charge mécanique est produite sous forme de force nodale

  • Si TYPE_RESU vaut “TABLE_CONTROL”, le calcul Miss3D est le même que pour FICHIER. Une table est produite contenant un post-traitement ponctuel des résultats de Miss3D

  • Dans le cas contraire (TYPE_RESU vaut “HARM_GENE”, “TRAN_GENE” ou “TABLE”), on exécute Miss3D uniquement si les unités logiques UNITE_RESU_IMPE et UNITE_RESU_FORC ne sont pas renseignées. Sinon, on utilise les fichiers fournis en entrée. Le post-traitement est ensuite effectué et le concept demandé retourné à l’utilisateur.

Avertissement

  • Les calculs MISS3D sur de gros modèles (ou avec beaucoup de fréquences) peuvent être longs et coûteux en mémoire. Heureusement ceux-ci peuvent être accélérés en activant un ou deux niveaux de parallélisme. La valeur TYPE_RESU = ’FICHIER_TEMPS’ permet d’en activer deux, les autres valeurs, un seul. Pour plus d’informations on pourra consulter les documentations u2.06.07 et u2.08.06

  • CALC_MISS produit un concept tran_gene ou harm_gene, incluant les champs d’accélération et de déplacements absolus (exception faite pour le cas de chargement EXCIT_MONO). Dans ce cas, les accélérations sont directement employées pour le calcul du spectre de plancher ; inversement, la déduction des déplacements de sol est obligatoire (à lire avec la commande LIRE_FONCTION (u4.32.02) depuis un fichier spécifique donné par son unité logique) pour obtenir les déplacements relatifs

  • Dans le cadre d’un calcul avec l’option EXCIT_MONO, un chargement mono-appui est appliqué au calcul harmonique. Les résultats sont donc fournis en repère relatif

  • Lors de l’exécution de Miss3D, si le mot-clé MACR_ELEM_DYNA est renseigné, on l’utilise. Sinon, il est créé par CALC_MISS à partir des opérandes BASE_MODALE, MATR_RIGI et MATR_MASS

  • Dans le cas où TYPE_RESU vaut FICHIER_TEMPS, on fait un appel à Miss3D pour chaque fréquence de calcul. Ces appels peuvent être faits en parallèle. Pour cela, il suffit d’exécuter la version parallèle MPI de Code_Aster et demander plusieurs processeurs (pas de mot-clé supplémentaire nécessaire)

Dans la figure Fig. 3.1, on montre un organigramme schématique sur le fonctionnement de la macro-commande CALC_MISS.

_images/Schema_MISS.svg

Fig. 3.1 Organigramme sur le fonctionnement de CALC_MISS#