]> SALOME platform Git repositories - modules/homard.git/blob - doc/fr/gui_create_yacs.rst
Salome HOME
Documentation sur les schémas YACS
[modules/homard.git] / doc / fr / gui_create_yacs.rst
1 .. _gui_create_yacs:
2
3 Le schéma YACS
4 ##############
5 .. index:: single: YACS
6 .. index:: single: cas
7
8 L'objet YACS contient toutes les définitions permettant de créer un schéma. Ce schéma va piloter l'alternance d'un calcul représentant une modélisation physique sur un maillage et l'adaptation de ce maillage de calcul. Cette alternance est piloté par des critères de convergence.
9
10 .. note::
11   Pour avoir une description détaillée de chacune des rubriques formant le schéma, consulter :ref:`yacs`
12
13 Procédure à employer
14 ********************
15 La création automatique du schéma va se faire en trois phases :
16
17 - Au départ, il faut avoir fait un calcul sur un tout premier maillage. Ce calcul aura produit des résultats dans un fichier MED.
18 - Ensuite, on crée un cas dans le module HOMARD, tel qu'il est décrit dans :ref:`gui_create_case`. Dans ce cas, on crée une itération suivante du maillage en définissant une hypothèse d'adaptation ; voir :ref:`gui_create_iteration`.
19 - Enfin, de ce cas, on va créer le schéma qui se basera sur l'hypothèse d'adapation définie.
20
21
22 .. image:: images/create_yacs_01.png
23    :align: center
24    :alt: yacs - création
25    :width: 551
26    :height: 295
27
28 Nom du schéma
29 *************
30 Un nom de schéma est proposé automatiquement : YACS_1, YACS_2, etc. Ce nom peut être modifié. Il ne doit pas avoir été déjà utilisé pour un autre schéma.
31
32 Le script
33 *********
34
35 Le fichier contenant le script qui permet de lancer le calcul lié à la modélisation physique est fourni ici. C'est un script python qui doit respecter les règles suivantes :
36
37 - le nom de la classe qui gère le calcul est ``Script``
38 - le lancement du calcul se fait par la méthode ``Compute()``
39 - le résultat du calcul est sous la forme de trois variables : le code d'erreur, un message, un dictionnaire python.
40
41 S'ils sont nécessaires à la création de la classe, on peut passer des arguments sous la forme :
42
43 - ``--rep_calc=rep_calc``, où ``rep_calc`` est le répertoire de calcul
44 - ``--num=num``, où ``num`` est le numéro du calcul  : 0 pour le tout premier, puis 1, 2 etc.
45 - ``--mesh_file=meshfile``, où ``meshfile`` est le fichier contenant le maillage sur lequel calculer.
46 - ``-v``, pour des messages
47
48 Les arguments de retour :
49
50 - ``erreur`` : le code d'erreur, entier : 0 si le calcul est correct, non nul sinon
51 - ``message`` : un éventuel message d'information sur le calcul
52 - ``dico_resu`` : un dictionnaire python qui comprend a minima les deux clés suivantes : ``FileName`` est la clé pour le nom du fichier MED qui contient les résultats du calcul, ``V_TEST`` est la clé pour la valeur réelle à tester.
53
54
55
56 Exemple d'usage du script :
57 ::
58
59     argu = ["--rep_calc=" + rep_calc)]
60     argu.append("--num=%d" % numCalc)
61     argu.append("--mesh_file="  + MeshFile)
62     Script_A = Script(argu)
63     erreur, message, dico_resu = Script_A.compute ()
64
65 .. note::
66
67   * Pour piloter Code_Aster : :download:`ScriptAster<../files/yacs_script.py>`
68
69 Le répertoire
70 *************
71 Le répertoire est celui qui contiend les fichiers produits par le calcul. Par défaut, rien n'est proposé. Le choix est fait, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche.
72
73 Le maillage initial
74 *******************
75 Le maillage initial doit se trouver dans un fichier au format MED. C'est celui qui est le point de départ du tout premier calcul. Le nom du fichier peut être fourni, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche.
76
77
78 Le type de schéma
79 *****************
80 Plusieurs types de schéma sont proposés : constant ou variable.
81
82 L'option par défaut, 'constant', alterne le lancement d'un calcul qui est toujours le même et une adaptation de maillage : d'un calcul à l'autre, la seule chose qui change est le maillage. Tout le reste est identique. Par exemple, dans le cas où le calcul modéliserait un transitoire, c'est toujours l'intégralité du transitoire qui est prise en compte.
83
84 L'option 'variable' est inactive aujourd'hui.
85
86 Enregistrement du schéma
87 ************************
88 Par défaut, le schéma produit est écrit dans le fichier `schema.xml` dans le répertoire lié au cas qui en est le support. Si on a détruit le fichier, on peut le recréer en activant le fonction "Ecrire le fichier" à la souris.
89
90 L'arbre d'étude
91 ***************
92 .. index:: single: arbre d'étude
93
94 A l'issue de cette création de schéma, l'arbre d'études a été enrichi. On y trouve tous les schémas créés, identifiés par leur nom, avec la possibilité de les éditer. Sous chaque référence de schéma, on trouve le lien avec le cas qui en est le support ainsi que le fichier `xml` qui a été créé. On peut lire ce fichier.
95
96 .. image:: images/create_yacs_1.png
97    :align: center
98
99 Méthodes python correspondantes
100 *******************************
101 Consulter :ref:`tui_create_yacs`
102
103 Utilisation du schéma
104 #####################
105
106 Le schéma produit par cette saisie est directement importable dans le module YCAS. Il peut se lancer sans modification. Dans ce cas, l'arrêt dans la boucle a lieu ainsi :
107
108 - soit on a atteint le nombre maximal d'itérations dans la boucle d'alternance (calcul,adaptation) ;
109 - soit le test de convergence sur la variable ``V_TEST`` est satisfait.
110
111 Par défaut le nombre maximal d'itérations est fixé à 5 et le test de convergence est satisfait si la variable bouge de moins de 1 pour mille en valeur relative entre deux itérations successives. On peut évidemment modifier ces tests.
112
113 Ces tests sont réalisés dans le noeud python "Analyse" du schéma, comme décrit dans :ref:`yacs`.
114
115 Le nombre maximal d'itérations est modifiable par la variable `NbCalcMax` :
116
117 .. literalinclude:: ../files/yacs_01.fr.xml
118    :lines: 111-113
119
120 La valeur de test est stockée dans une liste au fur et à mesure des passages :
121
122 .. literalinclude:: ../files/yacs_01.fr.xml
123    :lines: 137-141
124
125 et le test a lieu à partir du deuxième passage :
126
127 .. literalinclude:: ../files/yacs_01.fr.xml
128    :lines: 143-148
129
130 Si on veut remplacer ce test par un autre, c'est ici qu'il faut le faire. Il faut simplement conserver le contenu produit à la convergence pour assurer la bonne marche de la suite du schéma :
131
132 .. literalinclude:: ../files/yacs_01.fr.xml
133    :lines: 146-148
134
135 Exemples
136 ########
137 .. index:: single: Code_Aster
138
139 Un mode d'emploi associé à la création de schéma avec Code_Aster est disponible en consultant : :ref:`gui_create_yacs_aster`.
140
141
142
143