From: Paul RASCLE Date: Wed, 29 Mar 2017 12:17:20 +0000 (+0200) Subject: adaptation tutoriel geometrie, interpolationZ X-Git-Tag: Salome_8_3_Hydro_1_1rc1~53 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=dadb23ff684ef5b5be18efdbcd1f0179209847ce;p=modules%2Fhydro.git adaptation tutoriel geometrie, interpolationZ --- diff --git a/doc/salome/tutorial/_static/Bottom.png b/doc/salome/tutorial/_static/Bottom.png index e1aae9fa..2012cfc4 100644 Binary files a/doc/salome/tutorial/_static/Bottom.png and b/doc/salome/tutorial/_static/Bottom.png differ diff --git a/doc/salome/tutorial/_static/creeGroupeGeom.png b/doc/salome/tutorial/_static/creeGroupeGeom.png index 6c2a5c82..1816f74d 100644 Binary files a/doc/salome/tutorial/_static/creeGroupeGeom.png and b/doc/salome/tutorial/_static/creeGroupeGeom.png differ diff --git a/doc/salome/tutorial/_static/facesGeom.png b/doc/salome/tutorial/_static/facesGeom.png new file mode 100644 index 00000000..65023ec0 Binary files /dev/null and b/doc/salome/tutorial/_static/facesGeom.png differ diff --git a/doc/salome/tutorial/_static/genereInterpolz.png b/doc/salome/tutorial/_static/genereInterpolz.png new file mode 100644 index 00000000..2cfcf8eb Binary files /dev/null and b/doc/salome/tutorial/_static/genereInterpolz.png differ diff --git a/doc/salome/tutorial/geometrie.rst b/doc/salome/tutorial/geometrie.rst index 541a624e..053aa3a0 100644 --- a/doc/salome/tutorial/geometrie.rst +++ b/doc/salome/tutorial/geometrie.rst @@ -26,6 +26,9 @@ .. |activeGeom| image:: /_static/activeGeom.png :align: middle +.. |facesGeom| image:: /_static/facesGeom.png + :align: middle + .. |contoursGeomLitMineurDomaine| image:: /_static/contoursGeomLitMineurDomaine.png :align: middle @@ -45,41 +48,43 @@ sous le nom de l'objet *HYDRO_Garonne_1* dans l'arbre. |activeGeom| -En développant l'objet *HYDRO_Garonne_1*, nous retrouvons deux groupes créés automatiquement -lors de la création du cas de calcul: *garonne_1_litMineur_Outer* et *garonne_1_domaineEtendu_Outer*. +En développant l'objet *HYDRO_Garonne_1*, nous retrouvons plusieurs groupes créés automatiquement +lors de la création du cas de calcul: les trois faces correspondant aux régions, de même nom, +ainsi que groupes d'edges, *garonne_1_litMineur_Outer* et *garonne_1_domaineEtendu_Outer*. + +Pour voir les groupes de faces, nous les sélectionnons et *show only* dans le menu contextuel. +La commande *auto color* du menu contextuel de *HYDRO_Garonne_1* permet de différentier les faces. -Ces deux groupes représentent les rives du lit mineur et le contour du domaine. -Pour les voir, nous les sélectionnons et *show only* dans le menu contextuel. + |facesGeom| + +Les deux groupes d'edges représentent les rives du lit mineur et le contour du domaine. |contoursGeomLitMineurDomaine| -Il faut créer des groupes correspondant aux différentes faces géométriques de notre géométrie -de calcul, *HYDRO_Garonne_1*. +Pour réaliser le maillage, nous avons besoin d'identifier les deux sections amont et aval du lit mineur, +sous formes de groupes d'edges. Pour créer des groupes dans un objet, il est préférable de commencer par l'afficher seul (*show only*). -Nous allons successivement créer les groupes *riveGauche*, *riveDroite* et *litMineur*. +Nous créons pour cela un groupe de type *edges*, de nom *SectionsGaronne*, contenant les deux extrémités du lit Mineur. Nous utilisons la commande *Create Group* dans le menu contextuel. La boite de dialogue permet de créer 4 types de groupes : points, edges, faces, volumes. -Nous sélectionnons le type *faces* : 3ème bouton radio dans la rubrique *Shape Type*. +Nous sélectionnons le type *edges* : 2ème bouton radio dans la rubrique *Shape Type*. -Nous nommons le groupe : *riveGauche*. +Nous nommons le groupe : *SectionsGaronne*. -Nous sélectionnons la rive gauche dans la vue graphique. En appuyant sur le bouton *add*, -le numéro de la sous géométrie (sub-Shape) apparaît dans le dialogue. +Nous sélectionnons les deux extremités du lit mineur dans la vue graphique. +Pour sélectionner plusieurs éléments, il faut utiliser la touche **. +En appuyant sur le bouton *add*, les numéros des sous géométries (sub-Shape) apparaissent dans le dialogue. Il faut valider par *Apply and Close*. -Nous faisons de même avec les groupes *riveDroite* et *litMineur*. |creeGroupeGeom| Ces groupes apparaissent dans l'arbre d'étude, sous l'objet *HYDRO_Garonne_1*. -Nous avons encore besoin, pour réaliser le maillage, d'identifier les deux sections amont et aval du lit mineur. -Nous créons pour cela un groupe de type *edges*, de nom *SectionsGaronne*, contenant les deux extrémités du lit Mineur. -Pour sélectionner plusieurs éléments, il faut utiliser la touche **. - -Nous créons également deux groupes de type *edges*,de nom *aval* et *amont* pour distinguer les deux types de conditions limites. +Nous créons également deux groupes de type *edges*,de nom *aval* et *amont* pour distinguer les deux types de conditions limites, +en utilisant les mêmes sous géométries, séparément. Il faut de même créer deux groupes d'edges pour fermer le contour. nommés *bordDroiteDomaine* et *bordGaucheDomaine*, contenant les frontières continues du domaine, coté rive droite et côté rive gauche. diff --git a/doc/salome/tutorial/interpolationZ.rst b/doc/salome/tutorial/interpolationZ.rst index 966f109a..f74aee8c 100644 --- a/doc/salome/tutorial/interpolationZ.rst +++ b/doc/salome/tutorial/interpolationZ.rst @@ -20,6 +20,14 @@ Interpolation en Z ######################################### +.. |HYDROSolver| image:: /_static/HYDROSolver.png + :align: middle + :width: 16pt + :height: 16pt + +.. |genereInterpolz| image:: /_static/genereInterpolz.png + :align: middle + .. |Bottom| image:: /_static/Bottom.png :align: middle @@ -43,23 +51,23 @@ dans le module HYDRO. Calcul de l'interpolation en Z aux noeuds du maillage ===================================================== -La constitution du champ d'altitude se fait au moyen d'un script Python, qu'il faut éditer, puis exécuter. +La constitution du champ d'altitude se fait au moyen d'un script Python, qu'il faut préparer, puis exécuter. -Voici le script : +Le script utilise une association des régions du cas de calcul HYDRO aux groupes de noeuds correspondants dans le maillage. +Une commande du module HYDROSOLVER facilite la définition de cette association. -.. literalinclude:: interpolZ.py - :lines: 1- +Il faut maintenant activer le module HYDROSolveur, via la liste défilante des modules, ou son icône dans le bandeau : |HYDROSolver|. +Nous utilisons la commande *Generate interpolz.py* du menu *Hydro*. -Le script produit plusieurs fichiers dont le nom se déduit du nom du fichier maillage d'origine -avec des suffixes différents, rangés dans le répertoire du fichier d'origine : +Il faut sélectionner le cas de calcul dans la rubrique *HYDRO / CALCULATION CASE* de l'arbre d'étude. +Son nom apparaît dans la première ligne *Calculation cas* du dialogue. -* garonne_1.med : fichier d'origine (coordonnée z = 0) -* garonne_1.xyz : fichier xyz (ASCII) des altitudes aux noeuds -* garonne_1Z.med : étape intermédiaire du script -* garonne_1F.med : coordonnée Z à sa valeur calculée, et champ "BOTTOM" avec la valeur Z aux noeuds +Le chemin compplet du script à créer doit être renseigné dans la rubrique *Output path*. -Il faut recopier le script et l'adapter en fonction des noms de régions utilisés dans le cas de calcul -et des noms de groupes de noeuds dans le maillage. +Il faut désigner le fichier du maillage de départ construit à l'étape précédente dans rubrique *MED file*. + +La valeur *Undefined Z* est utilisée quand le module HYDRO ne sait pas calculer l'altitude en un point. +C'est utilisé a postériori pour détecter d'éventuels problèmes de définition des zones de calcul dans le cas de calcul. L'interpolation sur les nuages de points peut se faire de deux manières, selon que les nuages sont plus denses que le maillage, ou l'inverse. @@ -68,6 +76,19 @@ Quand le maillage est plus dense que le nuage, il vaut mieux prendre l'altitude une triangulation préalable du nuage de points. Cette dernière méthode est plus précise mais un peu plus coûteuse. +Il faut sélectionner les bons noms de régions en correspondance avec les noms des groupes de noeuds des faces, +en laissant la sélection à *None* pour les autres groupes. + + |genereInterpolz| + +Le script produit plusieurs fichiers dont le nom se déduit du nom du fichier maillage d'origine +avec des suffixes différents, rangés dans le répertoire du fichier d'origine : + +* garonne_1.med : fichier d'origine (coordonnée z = 0) +* garonne_1.xyz : fichier xyz (ASCII) des altitudes aux noeuds +* garonne_1Z.med : étape intermédiaire du script +* garonne_1F.med : coordonnée Z à sa valeur calculée, et champ "BOTTOM" avec la valeur Z aux noeuds + Pour exécuter le script, il faut que le module HYDRO soit bien actif dans l'étude. Si l'on reprend une étude précédemment sauvegardée, il faut avoir activé le module HYDRO avant de lancer le script (il suffit de sélectionner HYDRO au moins une fois, @@ -76,6 +97,14 @@ Nous exécutons le script avec la commande du menu *File / Load Script...*. Le script bloque l'interface graphique le temps de son exécution. Il affiche une trace d'exécution dans la console Python qui est affichée par défaut dans les modules GEOM et SMESH. +Il est aussi possible d'adapter manuellement le script ci-dessous : + +Il faut recopier le script et l'adapter en fonction des noms de régions utilisés dans le cas de calcul +et des noms de groupes de noeuds dans le maillage. + +.. literalinclude:: interpolZ.py + :lines: 1- + Visualisation de l'interpolation en Z aux noeuds du maillage ============================================================ @@ -86,7 +115,8 @@ Visualisation avec le module MED Le module MED offre une visualisation simple des champs d'un maillage MED. Il faut activer le module MED, puis utiliser le menu *File/Add Data Source* ou l'icône équivalente, et retrouver le fichier *garonne_1F.med*. En dépliant l'objet *garonne_1F.med* dans l'arbre d'étude, nous trouvons le maillage *HYDRO_Garonne_1* et le champ *BOTTOM*. -Le menu contextuel du champ propose la commande *visualize*. + +Il faut sélectionner le champ et utiliser l'icone *scalar map*. Le champ s'affiche dans la vue 3D. Le menu contextuel de la vue 3D propose la commande *Representation / Surface with Edges*