FEM Shear of a Composite Block/fr: Difference between revisions

From FreeCAD Documentation
(Created page with "Note1 : la Sélection de "CompoundFilter:Solid2" exige la sélection d'un de ses visages.")
No edit summary
 
(134 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>


{{TutorialInfo/fr
{{TutorialInfo/fr
|Topic= Analyse d'éléments finis
|Topic=Analyse d'éléments finis
|Level= Débutant/intermédiaire
|Level=Débutant/intermédiaire
|Time= 30 minutes
|Time=30 minutes
|Author=[http://www.freecadweb.org/wiki/index.php?title=User: HarryvL]
|Author=[http://www.freecadweb.org/wiki/index.php?title=User: HarryvL]
|FCVersion=0.17.12960 ou ultérieur
|FCVersion=0.17.12960 ou plus récente
|Files=
}}
}}


=== L'introduction ===
== Introduction ==
Dans ces travaux dirigés nous analysons la déformation se tondant d'un bloc composite consistant d'un coeur raide incorporé dans une matrice douce. Il démontre l'utilisation de BooleanFragments et CompoundFilter pour créer des aliments solides pour le bloc et la matrice de deux cubes concentriques. Ce workflow assure que MeshRegions séparé, des Matériels et des Conditions de Frontière peuvent être définis pour le bloc et la matrice environnante. Pour choisir des régions internes nous nous faisons de la macro par Markus Hovorka (https://github.com/drhooves/SelectionTools). Les résultats de CalculiX montrent clairement l'effet du coeur raide sur la réponse du bloc composite.


Dans ce tutoriel, nous analysons la déformation par cisaillement d'un bloc composite constitué d'un noyau rigide noyé dans une matrice souple. Il démontre l'utilisation de BooleanFragments et de CompoundFilter pour créer des solides pour le bloc et la matrice à partir de deux cubes concentriques. Ce flux de travail garantit que des MeshRegions, des matériaux et des conditions limites distincts peuvent être définis pour le bloc et la matrice qui l'entoure. Pour sélectionner les régions internes, nous pouvons utiliser la macro [https://github.com/drhooves/SelectionTools de Markus Hovorka] ou choisir une autre approche. Les résultats de CalculiX montrent clairement l'effet du noyau rigide sur la réponse du bloc composite.
=== Géométrie ===
D'abord nous créons deux cubes concentriques, une taille 10mm et l'autre taille 5mm. Ceci est fait dans l'établi "la Partie". Par défaut le cube est placé(situé) de l'origine [0, 0, 0], donc le cube plus petit doit être réduit et changé en changeant les fixations à l'étiquette(onglet) de Données du panneau(jury) de propriété. Pour faire le cœur visible, la Transparence du bloc extérieur est mise à 50 à l'étiquette(onglet) de Vue du panneau(jury) de propriété. On montre le résultat ci-dessous.


<span id="Geometry"></span>
==Géométrie==

D'abord nous créons deux cubes concentriques, un de taille 10mm et l'autre de 5mm. Ceci est fait dans l'[[Part_Module/fr|atelier Part]]. Par défaut le cube est situé à l'origine [0, 0, 0], donc le cube plus petit doit être réduit et déplacé en modifiant les valeurs dans l'onglet Données du panneau de propriété. Pour rendre le cœur visible, la Transparence du bloc extérieur est mise à 50 dans le panneau Vue de propriété. Le résultat est présenté ci-dessous.


[[Image:Pic1.png|700px]]
[[Image:Pic1.png|700px]]


Ensuite, mettez en surbrillance les deux blocs dans l'arborescence et créez des Fragments booléens ('''Part → Scinder → Fragments booléens'''). Dans l'"onglet des Donnees de la fenêtre des propriétés", changez le mode en CompSolid. Mettez maintenant en évidence les fragments booléens dans l'arborescence des objets et créez un Filtre composé ('''Part → Composé → Filtre composé''').

Le point culminant suivant les deux blocs dans l'arbre et crée un objet de BooleanFragments (la Partie > la Rupture > des Fragments Booléens). Dans "la Fenêtre de Propriété - la Languette de Données" change le Mode à CompSolid. Mettez maintenant en évidence le BooleanFragments dans l'arbre d'Objet et créez un CompoundFilter (la Partie > le Composé > le Filtre Composé).



[[Image:Pic2.png|700px]]
[[Image:Pic2.png|700px]]


<span id="Mesh_and_Mesh_Regions"></span>
=== Maille et Régions de Maille ===
== Maillage et régions de maillage ==
De l'établi FEM nous créons un conteneur d'Analyse. Ceci contiendra toutes les définitions exigées pour l'analyse CalculiX et ses résultats. Notez que ce conteneur d'Analyse doit être activé (pour faire un clic droit et la sélection "Active l'analyse") en rechargeant le fichier(dossier) ou après la commutation en arrière d'autres analyses. Pour commencer le processus de maillage, mettez en évidence(surlignez) le CompoundFilter dans l'Arbre d'Objet et activez le dialogue concordant "la Maille > FEM la maille de la forme par Gmsh". Laissez(quittez) le dialogue en cliquetant OK.


À partir de l'atelier FEM, nous créons un conteneur Analysis. Celui-ci contiendra toutes les définitions requises pour l'analyse CalculiX et ses résultats. Notez que ce conteneur Analysis doit être activé (cliquez avec le bouton droit de la souris et sélectionnez "Activate analysis") chaque fois que vous rechargez le fichier ou après être passé d'une autre analyse à une autre. Pour démarrer le processus de maillage, mettez en évidence le CompoundFilter dans l'arborscence des objets et activez le dialogue de maillage '''Mesh → Maillage FEM à partir d'une forme avec Gmsh'''. Quittez la boîte de dialogue en cliquant sur OK.
Un objet de Maille est maintenant créé dans l'Arbre d'Objet. Mettez en évidence cet objet et créez un objet de Région de Maille via "la Maille > la région de maille de FEM". Ouvrez la boîte de dialogue pour cette Région de Maille en double cliquant et cochez le bouton de radio pour Solide. Le clic suivant le "Ajoute la Référence" le bouton et choisit l'objet de CompoundFilter dans la Fenêtre Graphique. Ceci devrait ajouter une référence à "CompoundFilter:Solid1" dans la liste d'objet de la Région de Maille. Spécifiez finalement la taille d'élément maximale pour cette région (5mm dans l'analyse actuelle). Laissez le dialogue en cliquant sur OK.


Un objet Mesh est maintenant créé dans l'arborscence des objets. Mettez cet objet en surbrillance et créez un objet Mesh Region via '''Mesh → Région de maillage FEM'''. Ouvrez la boîte de dialogue de cette région de maillage en double-cliquant et cochez le bouton radio à Solid. Cliquez ensuite sur le bouton "Add Reference" et sélectionnez l'objet CompoundFilter dans la fenêtre graphique. Cela devrait ajouter une référence à "CompoundFilter:Solid1" dans la liste des objets de la région de maillage. Enfin, spécifiez la taille maximale des éléments pour cette région (5 mm dans l'analyse actuelle). Quittez la boîte de dialogue en cliquant sur OK.


[[Image:Pic3.png|700px]]
[[Image:Pic3.png|700px]]


Créez ensuite un nouvel objet Mesh comme indiqué ci-dessus et utilisez la macro de sélection (raccourci S, E) pour sélectionner l'objet Cube_Core dans la fenêtre graphique. Cette fois, la liste de référence doit afficher "CompoundFilter:Solid2", comme ci-dessous. Vous pouvez également masquer l'objet composé et afficher l'objet Cube_Core (en développant le composé dans l'arbre, en sélectionnant chacun d'entre eux et en appuyant sur la barre d'espacement). Nous avons choisi une taille d'élément maximale de 1 mm.


Remarque1 : la sélection de "CompoundFilter:Solid2" exige la sélection d'une de ses faces.
Créez ensuite un nouvel objet de Maille comme ci-dessus et utilisez la macro de sélection (le raccourci S, E) pour choisir l'objet Cube_Core dans la Fenêtre Graphique. Cette fois la liste de référence devrait montrer "CompoundFilter:Solid2", comme ci-dessous. Nous avons choisi une taille d'élément maximale de 1mm.

Note1 : la Sélection de "CompoundFilter:Solid2" exige la sélection d'un de ses visages.

Note2: If you have difficulty selecting "CompoundFilter:Solid2" it may be because you forgot to set the BooleanFragments mode to CompSolid.


Remarque2 : si vous avez des difficultés à choisir "CompoundFilter:Solid2" c'est peut-être parce que vous avez oublié de mettre le mode BooleanFragments à CompSolid.


[[Image:Pic4.png|700px]]
[[Image:Pic4.png|700px]]


<span id="Material_Assignment"></span>
=== Material Assignment ===
== Affectation des matériaux ==


Un matériau est attribué aux régions Mesh via un objet SolidMaterial. Dans ce tutoriel, nous affectons deux matériaux : un pour la matrice et un pour le noyau.


Commencez par sélectionner le CompoundFilter dans l'arborescence des objets. Créez ensuite un objet SolidMaterial via l'option de menu '''Modèle → Créer un matériau FEM pour un solide'''. Ouvrez la boîte de dialogue et cochez le bouton radio pour Solid, appuyez sur "Add Reference" et sélectionnez l'objet CompoundFilter dans la fenêtre graphique. La liste des références devrait maintenant afficher "CompoundFilter:Solid1", comme précédemment. Nous attribuons un matériau ABS à la matrice, avec un module de Young d'environ 1 % de celui de l'acier.
Material is assigned to Mesh Regions via a SolidMaterial object. In this tutorial we assign two materials; one for the Matrix and one for the Core.


Start by selecting the CompoundFilter in the object tree. Then create a SolidMaterial object via menu option "Model > FEM material for solid". Open the dialog and tick the radio button for Solid, press "Add Reference" and select the CompoundFilter object from the Graphical Window. The reference list should now show "CompoundFilter:Solid1", as before. We assign ABS material to the Matrix, with a Young's modules approximately 1% that of steel.



[[Image:Pic5.png|700px]]
[[Image:Pic5.png|700px]]


Répétez la procédure ci-dessus pour le noyau ("CompoundFilter:Solid2") à l'aide de la macro de sélection ou de l'approche alternative décrite précédemment. Cette fois-ci, nous attribuons le matériau CalculiX-Steel, qui est beaucoup plus rigide que le matériau ABS.


<span id="Sliding_Support"></span>
Repeat the above procedure for the Core ("CompoundFilter:Solid2") with the help of the selection macro. This time we assign CalculiX-Steel, which is much stiffer than the ABS material for the Matrix.
== Support coulissant ==

=== Sliding Support ===

To create a "Simple Shear" condition for the composite block the deformations at the boundaries need to be unconstrained. To achieve this, the block is placed on a sliding support. This leaves three degrees of freedom in the plane of the support (2 translations and a rotation) and those will be constrained later. (Note: as the plane prevents warping of the face, it still induces a minor constraint, which could be eliminated by a different choice of boundary conditions). To create a sliding boundary condition add a FemConstraintDisplacement object (Model > Mechanical Constraints > Constraint displacement). With the dialog box open first select the face to which the boundary conditions is to be applied and then click the Add button. As the block is allowed to slide in the x-y plane, only the "Fixed" radio button for "Displacement z" is selected and the other radio buttons are all left as "Free".


Pour créer une condition de "cisaillement simple" pour le bloc composite, les déformations aux limites ne doivent pas être contraintes. Pour ce faire, le bloc est placé sur un support coulissant. Cela laisse trois degrés de liberté dans le plan du support (2 translations et une rotation) et ceux-ci seront contraints plus tard. (Remarque : comme le plan empêche la déformation de la face, il induit toujours une contrainte mineure, qui pourrait être éliminée par un choix différent des conditions limites). Pour créer une condition limite de glissement, ajoutez un objet FemConstraintDisplacement ('''Modèle → Conditions limites et charges mécaniques → Condition limite de déplacement'''). La boîte de dialogue étant ouverte, sélectionnez d'abord la face à laquelle la condition limite doit être appliquée, puis cliquez sur le bouton Ajouter. Comme le bloc est autorisé à glisser dans le plan x-y, seul le bouton radio "Fixe" pour "Displacement z" est sélectionné et les autres boutons radio sont tous laissés à "Libre".


[[Image:Pic6.png|700px]]
[[Image:Pic6.png|700px]]


<span id="Fixed_Nodes"></span>
=== Fixed Nodes ===
== Noeuds fixes ==

To prevent rigid body motion in the plane of sliding, three independent degrees of freedom need to be eliminated. To achieve this, one vertex in the plane of sliding is constrained in x and y direction (eliminating 2 degrees of freedom) and one vertex is fixed in the x direction (eliminating the last degree of freedom). For this purpose two additional FemConstraintDisplacement objects are created and the result is shown below.


Pour empêcher le mouvement du corps rigide dans le plan de glissement, il faut éliminer trois degrés de liberté indépendants. Pour cela, un sommet du plan de glissement est contraint dans les directions x et y (éliminant 2 degrés de liberté) et un sommet est fixé dans la direction x (éliminant le dernier degré de liberté). Pour ce faire, deux objets FemConstraintDisplacement supplémentaires sont créés et le résultat est illustré ci-dessous.


[[Image:Pic7.png|700px]]
[[Image:Pic7.png|700px]]


<span id="Shear_Forces"></span>
=== Shear Forces ===
== Forces de cisaillement ==
The final step in the Analysis definition is the application of loads. To create a Simple Shear condition, a set of shear loads is applied as shown below. Each load is chosen as 1000 N and considering the directions of application, force and moment equilibrium is achieved for all translation and rotional degrees of freedom. In FC this requires addition of four FemConstraintForce objects (Model > Mechanical Constraints > Constraint force) - one for each face. With the dialog box open first press the Add Reference button and then select the face to which the boundary condition is to be applied (Note: this is a different sequence than with FemConstraintDisplacement). By default, this creates a set of forces perpendicular to the face (i.e. a normal force). To change this to a shear force, press the direction button and select a cube edge that runs in the desired direction. If the resulting force points in opposite direction of what is required, then select the radio button for "Reverse direction".


La dernière étape de la définition de l'analyse est l'application des charges. Pour créer une condition de cisaillement simple, un ensemble de charges de cisaillement est appliqué comme indiqué ci-dessous. Chaque charge est choisie à 1000 N et, compte tenu des directions d'application, l'équilibre des forces et des moments est atteint pour tous les degrés de liberté de translation et de rotation. Dans FC, cela nécessite l'ajout de quatre objets FemConstraintForce ('''Modèle → Conditions limites et charges mécaniques → Charge d'effort''') - un pour chaque face. Lorsque la boîte de dialogue est ouverte, appuyez d'abord sur le bouton Ajouter une référence, puis sélectionnez la face à laquelle la condition aux limites doit être appliquée (Remarque : cette séquence est différente de celle utilisée pour FemConstraintDisplacement). Par défaut, cela crée un ensemble de forces perpendiculaires à la face (c'est-à-dire une force normale). Pour passer à une force de cisaillement, appuyez sur le bouton de direction et sélectionnez une arête du cube qui va dans la direction souhaitée. Si la force résultante pointe dans la direction opposée à celle requise, sélectionnez la case d'option "Inverser la direction".


[[Image:Pic8.png|700px]]
[[Image:Pic8.png|700px]]


<span id="CalculiX_Analysis"></span>
=== CalculiX Analysis ===
== Analyse CalculiX ==

Now all mesh regions, material and boundary conditions have been defined we are ready to analyse the deformation of the block with CalculiX. Activate the Analysis by right clicking "Activate analysis", open the CalculiX dialog by double clicking the CalculiXccxTools object and select a directory for the temporary files created by both FC and CCX. Write CCX Input file and check for any warning or error messages.


Maintenant que toutes les régions maillées, le matériau et les conditions aux limites ont été définis, nous sommes prêts à analyser la déformation du bloc avec CalculiX. Activez l'analyse en faisant un clic droit sur "Activate analysis", ouvrez la boîte de dialogue de CalculiX en double-cliquant sur l'objet CalculiXccxTools et sélectionnez un répertoire pour les fichiers temporaires créés par FC et CCX. Écrivez le fichier d'entrée CCX et vérifiez s'il y a des messages d'avertissement ou d'erreur.


[[Image:PIC9.png|700px]]
[[Image:PIC9.png|700px]]


Ensuite, l'analyse peut être lancée en appuyant sur le bouton RunCalculiX. Si tout se passe bien, la fenêtre de sortie CCX devrait afficher les messages suivants.

After that the analysis can be started by pressing the RunCalculiX button. If all goes well, the CCX output window should show the following messages.



[[Image:Pic10.png|700px]]
[[Image:Pic10.png|700px]]


<span id="CalculiX_Results"></span>
=== CalculiX Results ===
== Résultats CalculiX ==

Upon completion of the analysis double click the "CalculiX_static_results" object and select the "Abs displacement" option. The maximum displacement of ~ 0.08mm will show up in the relevant output box. As the maximum displacement is relatively small compared to the dimensions of the block (<1% of the block size), the displacements need to be scaled up. This can be done under the heading "Displacement" by ticking the "Show" radio button and scaling the displacement by a factor of -say- 20. The maximum displacement will now be exaggerated to approximately 20% of the box size. After closing the dialog window, the deformed mesh can be made visible again by highlighting the Result_mesh object and pressing the space bar.


Une fois l'analyse terminée, double-cliquez sur l'objet "CalculiX_static_results" et sélectionnez l'option "Abs displacement". Le déplacement maximal de ~ 0,08 mm apparaîtra dans la boîte de sortie correspondante. Comme le déplacement maximal est relativement faible par rapport aux dimensions du bloc (<1% de la taille du bloc), les déplacements doivent être mis à l'échelle. Cela peut être fait sous la rubrique "Displacement" en cochant le bouton radio "Show" et en mettant à l'échelle le déplacement par un facteur de - disons - 20. Le déplacement maximum sera maintenant exagéré à environ 20% de la taille de la boîte. Après avoir fermé la fenêtre de dialogue, le maillage déformé peut être rendu à nouveau visible en mettant en surbrillance l'objet Result_mesh et en appuyant sur la barre d'espacement.


[[Image:Figure 11 Deformed Mesh.png|700px]]
[[Image:Figure 11 Deformed Mesh.png|700px]]


Pour étudier la déformation du noyau, nous devons découper le bloc. Ceci peut être fait en créant un filtre de coupe. Pour activer cette fonctionnalité, nous devons d'abord créer un "pipeline de post-traitement" en mettant en surbrillance l'objet "CalculiX_static_results" et en choisissant '''Resultats → Afficher le pipeline des résultats''' du menu. Ensuite, avec le pipeline sélectionné, créez un filtre Warp (Results → Warp filter), définissez Vector=Displacement et Value=20 pour mettre à l'échelle le déplacement et Mode d'affichage = "Surface with Edges", Coloring Field = "Displacement", Vector = "Magnitude" pour afficher des contours de déplacement colorés. Appuyez sur Appliquer et OK. Comme étape finale, ajoutez un filtre d'écrêtage (Results → Clip filter) et créez un plan avec une origine [5.0,2.5,5.0] et une normale [0,1,0], c'est-à-dire au niveau d'une face du noyau avec une normale dans la direction y. Cochez le bouton radio "Cut Cells" pour créer une surface plane. Comme précédemment, définissez Mode d'affichage = "Surface with Edges", Champ de coloration = "Displacement", Vecteur = "Magnitude" pour afficher les contours de déplacement colorés. Appuyez sur Appliquer et OK. Enfin, faites en sorte que le filtre de distorsion soit invisible pour ne montrer que le bloc découpé.

To investigate the deformation of the core we have to slice the block. This can be done by creating a clip filter. To activate this functionality, we first need to create a "post processing pipeline" by highlighting the "CalculiX_static_results" object and choosing "Results > Post Pipeline from Result" from the menu. Next, with the Pipeline selected create a Warp Filter (Results > Warp filter), set Vector=Displacement and Value=20 to scale the displacement and Display Mode = "Surface with Edges", Coloring Field = "Displacement", Vector = "Magnitude" to show colored displacement contours. Press Apply and OK. As a final step add a Clip Filter (Results > Clip filter) and create a plane with origin [5.0,2.5,5.0] and normal [0,1,0], i.e. at a core face with normal in the y-direction. Tick the "Cut Cells" radio button to create a flat surface. As before set Display Mode = "Surface with Edges", Coloring Field = "Displacement", Vector = "Magnitude" to show colored displacement contours. Press Apply and OK. Finally switch the Warp Filter to invisible to only show the cut block.



[[Image:Figure12 Deformed Mesh Clipped View (2).png|700px]]
[[Image:Figure12 Deformed Mesh Clipped View (2).png|700px]]


D'après le résultat, il est clair que le noyau reste largement indéformé et aide à résister à la déformation de la matrice souple (comparez l'angle de cisaillement de la partie colorée en bleu à celui de la partie colorée en vert). Ce qui est également mis en évidence, c'est que dans des conditions de cisaillement simple, les faces du bloc composite se déforment, ce qui implique que la condition de limite de glissement à la base du cube fournit une contrainte excessive.


<span id="Further_work"></span>
From the result it is clear that the core remains largely undeformed and helps to resist the deformation of the soft matrix (compare the shear angle of the blue colored part to that of the green colored part). What it also highlights though is that under Simple Shear conditions the faces of the composite block do warp, implying that the sliding boundary condition at the base of the cube does provide an undue constraint.
== Travaux complémentaires ==


Les défis suivants peuvent être intéressants à relever à titre d'exercice supplémentaire :


1) Corriger la contrainte excessive imposée par la condition de frontière glissante.
=== Further work ===


2) Essayer de créer des conditions limites de contact entre le noyau et la matrice pour voir si une séparation se produit.


Le fichier FC pour ce tutoriel est joint ci-dessous comme point de départ.
The following challenges may be interesting to take up as a further exercise:


https://forum.freecadweb.org/viewtopic.php?f=18&t=26517&start=20
1) Correct for the undue constraint imposed by the sliding boundary condition


Amusez-vous bien!
2) Try and create contact boundary conditions between the core and the matrix to see if separation occurs


The FC file for this tutorial is attached below as a starting point.


{{FEM Tools navi{{#translation:}}}}

{{Userdocnavi{{#translation:}}}}
https://forum.freecadweb.org/viewtopic.php?f=18&t=26517&start=20


Have fun !
{{clear}}
<languages/>

Latest revision as of 14:10, 10 December 2023

Tutoriel
Thème
Analyse d'éléments finis
Niveau
Débutant/intermédiaire
Temps d'exécution estimé
30 minutes
Auteurs
HarryvL
Version de FreeCAD
0.17.12960 ou plus récente
Fichiers exemples
None
Voir aussi
None

Introduction

Dans ce tutoriel, nous analysons la déformation par cisaillement d'un bloc composite constitué d'un noyau rigide noyé dans une matrice souple. Il démontre l'utilisation de BooleanFragments et de CompoundFilter pour créer des solides pour le bloc et la matrice à partir de deux cubes concentriques. Ce flux de travail garantit que des MeshRegions, des matériaux et des conditions limites distincts peuvent être définis pour le bloc et la matrice qui l'entoure. Pour sélectionner les régions internes, nous pouvons utiliser la macro de Markus Hovorka ou choisir une autre approche. Les résultats de CalculiX montrent clairement l'effet du noyau rigide sur la réponse du bloc composite.

Géométrie

D'abord nous créons deux cubes concentriques, un de taille 10mm et l'autre de 5mm. Ceci est fait dans l'atelier Part. Par défaut le cube est situé à l'origine [0, 0, 0], donc le cube plus petit doit être réduit et déplacé en modifiant les valeurs dans l'onglet Données du panneau de propriété. Pour rendre le cœur visible, la Transparence du bloc extérieur est mise à 50 dans le panneau Vue de propriété. Le résultat est présenté ci-dessous.

Ensuite, mettez en surbrillance les deux blocs dans l'arborescence et créez des Fragments booléens (Part → Scinder → Fragments booléens). Dans l'"onglet des Donnees de la fenêtre des propriétés", changez le mode en CompSolid. Mettez maintenant en évidence les fragments booléens dans l'arborescence des objets et créez un Filtre composé (Part → Composé → Filtre composé).

Maillage et régions de maillage

À partir de l'atelier FEM, nous créons un conteneur Analysis. Celui-ci contiendra toutes les définitions requises pour l'analyse CalculiX et ses résultats. Notez que ce conteneur Analysis doit être activé (cliquez avec le bouton droit de la souris et sélectionnez "Activate analysis") chaque fois que vous rechargez le fichier ou après être passé d'une autre analyse à une autre. Pour démarrer le processus de maillage, mettez en évidence le CompoundFilter dans l'arborscence des objets et activez le dialogue de maillage Mesh → Maillage FEM à partir d'une forme avec Gmsh. Quittez la boîte de dialogue en cliquant sur OK.

Un objet Mesh est maintenant créé dans l'arborscence des objets. Mettez cet objet en surbrillance et créez un objet Mesh Region via Mesh → Région de maillage FEM. Ouvrez la boîte de dialogue de cette région de maillage en double-cliquant et cochez le bouton radio à Solid. Cliquez ensuite sur le bouton "Add Reference" et sélectionnez l'objet CompoundFilter dans la fenêtre graphique. Cela devrait ajouter une référence à "CompoundFilter:Solid1" dans la liste des objets de la région de maillage. Enfin, spécifiez la taille maximale des éléments pour cette région (5 mm dans l'analyse actuelle). Quittez la boîte de dialogue en cliquant sur OK.

Créez ensuite un nouvel objet Mesh comme indiqué ci-dessus et utilisez la macro de sélection (raccourci S, E) pour sélectionner l'objet Cube_Core dans la fenêtre graphique. Cette fois, la liste de référence doit afficher "CompoundFilter:Solid2", comme ci-dessous. Vous pouvez également masquer l'objet composé et afficher l'objet Cube_Core (en développant le composé dans l'arbre, en sélectionnant chacun d'entre eux et en appuyant sur la barre d'espacement). Nous avons choisi une taille d'élément maximale de 1 mm.

Remarque1 : la sélection de "CompoundFilter:Solid2" exige la sélection d'une de ses faces.

Remarque2 : si vous avez des difficultés à choisir "CompoundFilter:Solid2" c'est peut-être parce que vous avez oublié de mettre le mode BooleanFragments à CompSolid.

Affectation des matériaux

Un matériau est attribué aux régions Mesh via un objet SolidMaterial. Dans ce tutoriel, nous affectons deux matériaux : un pour la matrice et un pour le noyau.

Commencez par sélectionner le CompoundFilter dans l'arborescence des objets. Créez ensuite un objet SolidMaterial via l'option de menu Modèle → Créer un matériau FEM pour un solide. Ouvrez la boîte de dialogue et cochez le bouton radio pour Solid, appuyez sur "Add Reference" et sélectionnez l'objet CompoundFilter dans la fenêtre graphique. La liste des références devrait maintenant afficher "CompoundFilter:Solid1", comme précédemment. Nous attribuons un matériau ABS à la matrice, avec un module de Young d'environ 1 % de celui de l'acier.

Répétez la procédure ci-dessus pour le noyau ("CompoundFilter:Solid2") à l'aide de la macro de sélection ou de l'approche alternative décrite précédemment. Cette fois-ci, nous attribuons le matériau CalculiX-Steel, qui est beaucoup plus rigide que le matériau ABS.

Support coulissant

Pour créer une condition de "cisaillement simple" pour le bloc composite, les déformations aux limites ne doivent pas être contraintes. Pour ce faire, le bloc est placé sur un support coulissant. Cela laisse trois degrés de liberté dans le plan du support (2 translations et une rotation) et ceux-ci seront contraints plus tard. (Remarque : comme le plan empêche la déformation de la face, il induit toujours une contrainte mineure, qui pourrait être éliminée par un choix différent des conditions limites). Pour créer une condition limite de glissement, ajoutez un objet FemConstraintDisplacement (Modèle → Conditions limites et charges mécaniques → Condition limite de déplacement). La boîte de dialogue étant ouverte, sélectionnez d'abord la face à laquelle la condition limite doit être appliquée, puis cliquez sur le bouton Ajouter. Comme le bloc est autorisé à glisser dans le plan x-y, seul le bouton radio "Fixe" pour "Displacement z" est sélectionné et les autres boutons radio sont tous laissés à "Libre".

Noeuds fixes

Pour empêcher le mouvement du corps rigide dans le plan de glissement, il faut éliminer trois degrés de liberté indépendants. Pour cela, un sommet du plan de glissement est contraint dans les directions x et y (éliminant 2 degrés de liberté) et un sommet est fixé dans la direction x (éliminant le dernier degré de liberté). Pour ce faire, deux objets FemConstraintDisplacement supplémentaires sont créés et le résultat est illustré ci-dessous.

Forces de cisaillement

La dernière étape de la définition de l'analyse est l'application des charges. Pour créer une condition de cisaillement simple, un ensemble de charges de cisaillement est appliqué comme indiqué ci-dessous. Chaque charge est choisie à 1000 N et, compte tenu des directions d'application, l'équilibre des forces et des moments est atteint pour tous les degrés de liberté de translation et de rotation. Dans FC, cela nécessite l'ajout de quatre objets FemConstraintForce (Modèle → Conditions limites et charges mécaniques → Charge d'effort) - un pour chaque face. Lorsque la boîte de dialogue est ouverte, appuyez d'abord sur le bouton Ajouter une référence, puis sélectionnez la face à laquelle la condition aux limites doit être appliquée (Remarque : cette séquence est différente de celle utilisée pour FemConstraintDisplacement). Par défaut, cela crée un ensemble de forces perpendiculaires à la face (c'est-à-dire une force normale). Pour passer à une force de cisaillement, appuyez sur le bouton de direction et sélectionnez une arête du cube qui va dans la direction souhaitée. Si la force résultante pointe dans la direction opposée à celle requise, sélectionnez la case d'option "Inverser la direction".

Analyse CalculiX

Maintenant que toutes les régions maillées, le matériau et les conditions aux limites ont été définis, nous sommes prêts à analyser la déformation du bloc avec CalculiX. Activez l'analyse en faisant un clic droit sur "Activate analysis", ouvrez la boîte de dialogue de CalculiX en double-cliquant sur l'objet CalculiXccxTools et sélectionnez un répertoire pour les fichiers temporaires créés par FC et CCX. Écrivez le fichier d'entrée CCX et vérifiez s'il y a des messages d'avertissement ou d'erreur.

Ensuite, l'analyse peut être lancée en appuyant sur le bouton RunCalculiX. Si tout se passe bien, la fenêtre de sortie CCX devrait afficher les messages suivants.

Résultats CalculiX

Une fois l'analyse terminée, double-cliquez sur l'objet "CalculiX_static_results" et sélectionnez l'option "Abs displacement". Le déplacement maximal de ~ 0,08 mm apparaîtra dans la boîte de sortie correspondante. Comme le déplacement maximal est relativement faible par rapport aux dimensions du bloc (<1% de la taille du bloc), les déplacements doivent être mis à l'échelle. Cela peut être fait sous la rubrique "Displacement" en cochant le bouton radio "Show" et en mettant à l'échelle le déplacement par un facteur de - disons - 20. Le déplacement maximum sera maintenant exagéré à environ 20% de la taille de la boîte. Après avoir fermé la fenêtre de dialogue, le maillage déformé peut être rendu à nouveau visible en mettant en surbrillance l'objet Result_mesh et en appuyant sur la barre d'espacement.

Pour étudier la déformation du noyau, nous devons découper le bloc. Ceci peut être fait en créant un filtre de coupe. Pour activer cette fonctionnalité, nous devons d'abord créer un "pipeline de post-traitement" en mettant en surbrillance l'objet "CalculiX_static_results" et en choisissant Resultats → Afficher le pipeline des résultats du menu. Ensuite, avec le pipeline sélectionné, créez un filtre Warp (Results → Warp filter), définissez Vector=Displacement et Value=20 pour mettre à l'échelle le déplacement et Mode d'affichage = "Surface with Edges", Coloring Field = "Displacement", Vector = "Magnitude" pour afficher des contours de déplacement colorés. Appuyez sur Appliquer et OK. Comme étape finale, ajoutez un filtre d'écrêtage (Results → Clip filter) et créez un plan avec une origine [5.0,2.5,5.0] et une normale [0,1,0], c'est-à-dire au niveau d'une face du noyau avec une normale dans la direction y. Cochez le bouton radio "Cut Cells" pour créer une surface plane. Comme précédemment, définissez Mode d'affichage = "Surface with Edges", Champ de coloration = "Displacement", Vecteur = "Magnitude" pour afficher les contours de déplacement colorés. Appuyez sur Appliquer et OK. Enfin, faites en sorte que le filtre de distorsion soit invisible pour ne montrer que le bloc découpé.

D'après le résultat, il est clair que le noyau reste largement indéformé et aide à résister à la déformation de la matrice souple (comparez l'angle de cisaillement de la partie colorée en bleu à celui de la partie colorée en vert). Ce qui est également mis en évidence, c'est que dans des conditions de cisaillement simple, les faces du bloc composite se déforment, ce qui implique que la condition de limite de glissement à la base du cube fournit une contrainte excessive.

Travaux complémentaires

Les défis suivants peuvent être intéressants à relever à titre d'exercice supplémentaire :

1) Corriger la contrainte excessive imposée par la condition de frontière glissante.

2) Essayer de créer des conditions limites de contact entre le noyau et la matrice pour voir si une séparation se produit.

Le fichier FC pour ce tutoriel est joint ci-dessous comme point de départ.

https://forum.freecadweb.org/viewtopic.php?f=18&t=26517&start=20

Amusez-vous bien!