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.
Note
Pour avoir une description détaillée de chacune des rubriques formant le schéma, consulter YACS
La création automatique du schéma va se faire en trois phases :
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.
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 :
S’ils sont nécessaires à la création de la classe, on peut passer des arguments sous la forme :
Les arguments de retour :
Exemple d’usage du script :
argu = ["--rep_calc=" + rep_calc)]
argu.append("--num=%d" % numCalc)
argu.append("--mesh_file=" + MeshFile)
Script_A = Script(argu)
erreur, message, dico_resu = Script_A.compute ()
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.
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.
Plusieurs types de schéma sont proposés : constant ou variable.
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.
L’option ‘variable’ est inactive aujourd’hui.
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 la fonction Ecrire le fichier à la souris.
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.
Consulter Le schéma YACS
Le schéma produit par cette saisie est directement importable dans le module YACS. Il peut se lancer sans modification. Dans ce cas, l’arrêt dans la boucle a lieu ainsi :
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.
Ces tests sont réalisés dans le noeud python “Analyse” du schéma, comme décrit dans YACS.
Le nombre maximal d’itérations est modifiable par la variable NbCalcMax :
NbCalcMax = 5
La valeur de test est stockée dans une liste au fur et à mesure des passages :
valeur_v = dico_resu["V_TEST"]
if NumCalc == 0 :
resu1 = [valeur_v]
else :
resu1.append(valeur_v)
et le test a lieu à partir du deuxième passage :
solu_m1 = resu1[-2]
rap = ( resu1[-1] - solu_m1 ) / solu_m1
if abs(rap) < 0.001 :
MessInfo = ""
Error = -9999
break
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 :
MessInfo = ""
Error = -9999
break
Un mode d’emploi associé à la création de schéma avec Code_Aster est disponible en consultant : Un schéma YACS pour Code_Aster.