]> SALOME platform Git repositories - modules/homard.git/commitdiff
Salome HOME
automatisation FrontTrack - documentation
authorGerald NICOLAS <gerald.nicolas@edf.fr>
Tue, 9 Jan 2018 16:00:33 +0000 (17:00 +0100)
committerGerald NICOLAS <gerald.nicolas@edf.fr>
Tue, 9 Jan 2018 16:00:33 +0000 (17:00 +0100)
12 files changed:
doc/en/demarrage_rapide.rst
doc/en/gui_create_boundary.rst
doc/en/gui_create_case.rst
doc/en/tui_create_boundary.rst
doc/en/tutorials.rst
doc/fr/gui_create_boundary.rst
doc/fr/gui_create_case.rst
doc/fr/tui_create_boundary.rst
doc/fr/tui_create_case.rst
doc/fr/tui_create_hypothese.rst
doc/fr/tui_create_iteration.rst
doc/fr/tutorials.rst

index 3fed844e5b1c3e6bf3ed7f1c43c7e09df8e69eba..668dd81c55f672b2f8fb7eb53b1475c45454156c 100644 (file)
@@ -24,7 +24,7 @@ This window appears:
 .. image:: images/intro_31.png
    :align: center
 
-Two answers must be given: the directory that will contain the files produced by the further adaptations and the MED file from the initial calculation. In this case, the default options are left unchanged: conformity of the mesh and no curved boundaries. Validate by "Apply and close".
+Two answers must be given: the directory that will contain the files produced by the further adaptations and the MED file from the initial calculation. In this case, the default options are left unchanged: conformity of the mesh and no curved boundaries. Validate by "OK".
 
 .. image:: images/intro_32.png
    :align: center
@@ -54,7 +54,7 @@ The default options are modified to respect our choice for the driving of the ad
 .. image:: images/intro_36.png
    :align: center
 
-The creation of the hypothesis is validated by "Apply and close"; the creation of the new iteration is validated too. The object browser is enriched by the description of this hypothesis and this iteration. The iteration can be seen with a specific icon "waiting".
+The creation of the hypothesis is validated by "OK"; the creation of the new iteration is validated too. The object browser is enriched by the description of this hypothesis and this iteration. The iteration can be seen with a specific icon "waiting".
 
 The adaptation is launched by the selection of the iteration. "*Compute*" is choosen either in the menu, or with the mouse. The MED file of the new mesh, ``maill.01.med``, and some files for information are included into the object browser. Note that the MED file of the new mesh is located into the directory of the case.
 
index f65066631e915eae78849ff5547c094c68b5099e..e6d53e6cd7966a463d35a347f7261a16dcd3fffe 100644 (file)
@@ -4,26 +4,52 @@ The boundary
 ############
 .. index:: single: boundary
 .. index:: single: frontière
+.. index:: single: CAO
 
 The object boundary contains all the geometrical definitions allowing to describe a curved boundary to be followed.
 
 There are two modes of description of a boundary:
 
-  - Discrete: this mode is used to describe a curve 1D
-  - Analytics: this mode is used to describe a surface
+  - CAO: the boundary comes from the geometry of the domain
+  - Non CAO: if the CAO is not available, the boundary can be approxaimted by its descriptions:
 
+    * Discrete: to describe the set of 1D curves that defines the boundary
+    * Analytics: to describe every surface that defines the boundary
+
+This choice is:
+
+.. image:: images/create_boundary_1.png
+   :align: center
+
+CAO boundary
+************
+
+The follow-up of a CAO boundary will be made by selecting a boundary chosen in the list of the existing CAO boundaries.
+
+In the starting up, the list is empty. It is necessary to create a first CAO boundary by activation of the button "*New*":
+
+.. image:: images/create_boundary_cao_1.png
+   :align: center
+
+The window invites in the choice of a file that contains the CAO with XAO format. This CAO is the one that is the basis for the initial mesh. A name of boundary is automatically proposed: Boun_1, Boun_2, etc. This name can be modified. It must not already have been used for another boundary, whatever its type.
+
+.. image:: images/create_boundary_cao_2.png
+   :align: center
+
+.. note::
+  The coherence between this CAO and the initial mesh is not checked.
 
 Discrete boundary
 *****************
 
 The follow-up of a discrete boundary will be made by selecting a boundary chosen in the list of the existing discrete boundaries.
 
-In the starting up, the list is empty. It is necessary to create a first discrete boundary by activation of the button "*New*" :
+In the starting up, the list is empty. It is necessary to create a first discrete boundary by activation of the button "*New*":
 
 .. image:: images/create_boundary_di_1.png
    :align: center
 
-The window invites in the choice of a file of mesh. This mesh is the one of all the lines constituting the boundary. A name of boundary is automatically proposed: Boun_1, Boun_2, etc. This name can be modified. It must not already have been used for another boundary.
+The window invites in the choice of a file of mesh. This mesh is the one of all the lines constituting the boundary. A name of boundary is automatically proposed: Boun_1, Boun_2, etc. This name can be modified. It must not already have been used for another boundary, whatever its type.
 
 .. image:: images/create_boundary_di_2.png
    :align: center
@@ -86,7 +112,7 @@ Cylindre
 ========
 .. index:: single: cylindre
 
-The cylinder is defined by a point of the axis, its axis and its radius. The axis is defined by a vector. The standard of this vector is not inevitably equal to 1; also, its orientation has no importance. A name of boundary is automatically proposed: Boun_1, Boun_2, etc. This name can be modified. It must not already have been used for another boundary.
+The cylinder is defined by a point of the axis, its axis and its radius. The axis is defined by a vector. The standard of this vector is not inevitably equal to 1; also, its orientation has no importance. A name of boundary is automatically proposed: Boun_1, Boun_2, etc. This name can be modified. It must not already have been used for another boundary, whatever its type.
 
 .. image:: images/create_boundary_an_cy.png
    :align: center
@@ -95,7 +121,7 @@ Sphere
 ======
 .. index:: single: sphere
 
-The sphere is defined by its center and its radius. A name of boundary is automatically proposed: Boun_1, Boun_2, etc. This name can be modified. It must not already have been used for another boundary.
+The sphere is defined by its center and its radius. A name of boundary is automatically proposed: Boun_1, Boun_2, etc. This name can be modified. It must not already have been used for another boundary, whatever its type.
 
 .. image:: images/create_boundary_an_sp.png
    :align: center
@@ -104,7 +130,7 @@ Cone
 ====
 .. index:: single: cone
 
-A cone is defined by two different manners: the center, the axis and the angle of opening in degree or by two points centered on the axis and the associated radius. A name of boundary is automatically proposed: Boun_1, Boun_2, etc. This name can be modified. It must not already have been used for another boundary.
+A cone is defined by two different manners: the center, the axis and the angle of opening in degree or by two points centered on the axis and the associated radius. A name of boundary is automatically proposed: Boun_1, Boun_2, etc. This name can be modified. It must not already have been used for another boundary, whatever its type.
 
 Creation by an origin, an axis and an angle of opening:
 
@@ -122,7 +148,7 @@ Torus
 =====
 .. index:: single: torus
 
-The torus is defined by its centre, its axis, the revolution radius and the primary radius. The axis is defined by a vector. The standard of this vector is not inevitably equal to 1; also, its orientation has no importance. A name of boundary is automatically proposed: Boun_1, Boun_2, etc. This name can be modified. It must not already have been used for another boundary.
+The torus is defined by its centre, its axis, the revolution radius and the primary radius. The axis is defined by a vector. The standard of this vector is not inevitably equal to 1; also, its orientation has no importance. A name of boundary is automatically proposed: Boun_1, Boun_2, etc. This name can be modified. It must not already have been used for another boundary, whatever its type.
 
 .. image:: images/create_boundary_an_to.png
    :align: center
@@ -131,7 +157,7 @@ Object browser
 **************
 At the end of this creation of boundaries, the object browser was enriched. We find all the boundaries created, identified there by their name, with the possibility of editing them.
 
-.. image:: images/create_boundary_1.png
+.. image:: images/create_boundary.png
    :align: center
 
 Corresponding python functions
index 43c6fa36357022ea94b4a62b11023c0f67345032..268db819bf6339dc8e9408a72e73322750c07874 100644 (file)
@@ -68,12 +68,15 @@ If the limit of the domain is curved, HOMARD can put the new nodes onto these cu
 
 Two situations:
 
-* 1D curve: this curve may be defined into a plane, for example for a 2D calculation. It can also be defined into the 3D space, for example to describe the intersection of two surfaces. Such a line is defined with a discrete desription.
-* a surface: such a surface is defined with an analytical description.
+- CAO: the CAO of the domain is available. The computtion will rely on it to project the nodes.
+- No CAO: if no CAO is available, an approximative approach is possible:
+
+  * 1D curve: this curve may be defined into a plane, for example for a 2D calculation. It can also be defined into the 3D space, for example to describe the intersection of two surfaces. Such a line is defined with a discrete desription.
+  * a surface: such a surface is defined with an analytical description.
 
 Check the button:
 
-.. image:: images/create_case_5.png
+.. image:: images/create_boundary_1.png
    :align: center
 
 The definition of the boundaries is described in :doc:`gui_create_boundary`.
index 1a33efc005b9f714bd336c613e41ef52705389a1..7807e2cdabd9f7475789b43202aec76a62fbc30c 100644 (file)
@@ -15,6 +15,14 @@ These methods returns an instance of the class boundary.
 
 +----------------------------------------------------------------------------------------+
 +----------------------------------------------------------------------------------------+
+| .. module:: CreateBoundaryCAO                                                          |
+|                                                                                        |
+| **CreateBoundaryCAO(boundary_name, xao_file)**                                         |
+|     Returns an instance of the class ``boundary``, type CAO after its creation         |
+|                                                                                        |
+|     - ``boundary_name``: the name of the CAO boundary                                  |
+|     - ``xao_file``: the name of the file for this CAO, with format XAO                 |
++----------------------------------------------------------------------------------------+
 | .. module:: CreateBoundaryDi                                                           |
 |                                                                                        |
 | **CreateBoundaryDi(boundary_name, mesh_name, mesh_file)**                              |
@@ -22,7 +30,7 @@ These methods returns an instance of the class boundary.
 |                                                                                        |
 |     - ``boundary_name``: the name of the discrete boundary                             |
 |     - ``mesh_name``: the name of the mesh of the boundary                              |
-|     - ``mesh_file``: the name of the file for this mesh                                |
+|     - ``mesh_file``: the name of the file for this mesh, with format MED               |
 +----------------------------------------------------------------------------------------+
 | .. module:: CreateBoundaryCylinder                                                     |
 |                                                                                        |
@@ -105,24 +113,28 @@ See also in :doc:`tui_create_case`.
 
 +---------------------------------------------------------------+
 +---------------------------------------------------------------+
-| .. module:: AddBoundaryGroup                                  |
+| .. module:: AddBoundary                                       |
 |                                                               |
-| **AddBoundaryGroup(boundary, group)**                         |
+| **AddBoundary(boundary)**                                     |
 |     Add a boundary to the definition of a case                |
 |                                                               |
 |     - ``boundary``: name of the curved boundary               |
++---------------------------------------------------------------+
+| .. module:: AddBoundaryGroup                                  |
+|                                                               |
+| **AddBoundaryGroup(boundary, group)**                         |
+|     Add a boundary to the definition of a case with a         |
+|     filtering by groups                                       |
 |                                                               |
-|     Discrete boundary:                                        |
+|     - ``boundary``: name of the curved boundary               |
 |                                                               |
-|     . if all the curved lines are involved, the second        |
-|     argument is an empty string.                              |
+|     Discrete or CAO boundary:                                 |
 |                                                               |
-|     . if only some curved lines are involved, ``group`` is    |
-|     the name of the group of segments                         |
+|     - ``group``: the name of a group of meshes                |
 |                                                               |
 |     Analytical boundary:                                      |
 |                                                               |
-|     - ``group``: name of the groupe of faces located on the   |
+|     - ``group``: name of the groups of faces located on the   |
 |       boundary                                                |
 +---------------------------------------------------------------+
 
@@ -141,6 +153,7 @@ Methods of the class boundary
 | **GetType()**                                                 |
 |     Returns the type of the boundary:                         |
 |                                                               |
+|         * -1: CAO                                             |
 |         * 0: discrete                                         |
 |         * 1: cylinder                                         |
 |         * 2: sphere                                           |
@@ -160,6 +173,8 @@ Methods of the class boundary
 | **Delete()**                                                  |
 |     Deletes the boundary.                                     |
 |     If the boundary is discrete, the file of the mesh is kept.|
+|     If the boundary is CAO, the xao file of the geometry is   |
+|     kept.                                                     |
 |                                                               |
 |     Returns an integer:                                       |
 |         * 0: the destruction is done                          |
@@ -169,6 +184,10 @@ Methods of the class boundary
 
 Example
 *******
+Creation of a CAO boundary: ::
+
+    la_cao = homard.CreateBoundaryCAO("BLOC", dircase+'/tutorial_6.xao')
+
 Creation of a discrete boundary, a spherical boundary, and a cylindrical boundary:
 ::
 
index b0544844bae7f1207bfd5ec3219e743f3e50d5f0..6229fddce48595c1f6c8a0935dfa3012681b211c 100644 (file)
@@ -37,7 +37,8 @@ One will make here three successive uniform refinements of the mesh contained in
 
 
 .. literalinclude:: ../files/tutorial_1.py
-   :lines: 52-85
+   :start-after: Début des commandes
+   :end-before: Fin des commandes
 
 .. note::
   Download the files
@@ -55,7 +56,8 @@ Refinement by zones
 One proceeds here to refinement according to zones. To pass from the initial mesh to the mesh 'M_1', one uses a box framing the z=1 plane and a sphere centered on the origin with radius 1.05. Then to pass from the mesh 'M_1' to the mesh 'M_2', one replaces the sphere by a box framing the cube on side 0.5, pointing on the origin and the meshes in the very first zone are unrefined.
 
 .. literalinclude:: ../files/tutorial_2.py
-   :lines: 52-95
+   :start-after: Début des commandes
+   :end-before: Fin des commandes
 
 .. note::
   Download the files
@@ -73,7 +75,8 @@ One proceeds here to refinement according to a field. The hypotheses are used to
 To adapt the H_1 mesh resulting from the Iter_1 iteration, two alternatives are applied. In the first, Iter_2, the field is a scalar field of indicators of error and one cuts out the 1.5% of elements where the error is largest. In the second alternative, Iter_2_bis, one is based on a vector field and one examines the jump of this vector between an element and its neighbors: one will cut out where the infinite standard of this jump is higher than the absolute threshold of 0.0001.
 
 .. literalinclude:: ../files/tutorial_3.py
-   :lines: 52-124
+   :start-after: Début des commandes
+   :end-before: Fin des commandes
 
 .. note::
   Download the files
@@ -86,23 +89,41 @@ To adapt the H_1 mesh resulting from the Iter_1 iteration, two alternatives are
 
 Non plane boundaries
 ********************
-.. index:: single: field
+.. index:: single: boundary
+.. index:: single: CAO
 .. index:: single: YACS
 
-One tests the follow-up of the curved borders here: analytical borders to describe various surfaces of the pipes and a discrete border to describe the intersecting lines of the two pipes. The driving of refinement is the following: uniform refinement of all the elements contained in indicated groups. One starts by refining the inner faces with the pipes; then, one refines continuation twice the external faces with the pipes.
+One tests the follow-up of the curved borders here, giving the representation of the domain by its CAO. That CAO is given in a XAO format file.
+The driving of refinement is the following: uniform refinement of all the elements contained in indicated groups. One starts by refining the inner faces with the pipes; then, one refines continuation twice the external faces with the pipes.
 Scheme YACS carrying out this adaptation is downloadable.
 
 .. literalinclude:: ../files/tutorial_4.py
-   :lines: 52-111
+   :start-after: Début des commandes
+   :end-before: Fin des commandes
+
+.. note::
+  Téléchargement des fichiers
+
+  * :download:`initial mesh<../files/tutorial_4.00.med.gz>`
+  * :download:`CAO<../files/tutorial_4.xao.gz>`
+  * :download:`python scrip<../files/tutorial_4.py>`
+  * :download:`python script for the compression<../files/tutorial_util.py>`
+  * :download:`schéma YACS<../files/tutorial_4.xml>`
+
+If the CAO is not available, the boundaries can be approximated: analytical borders to describe various surfaces of the pipes and a discrete border to describe the intersecting lines of the two pipes. Only the definition of the boundaries has to be modified.
+
+.. literalinclude:: ../files/tutorial_6.py
+   :start-after: Début des commandes
+   :end-before: Fin des commandes
 
 .. note::
   Download the files
 
   * :download:`initial mesh<../files/tutorial_4.00.med.gz>`
-  * :download:`mesh of the discrete boundary<../files/tutorial_4.fr.med.gz>`
-  * :download:`python script<../files/tutorial_4.py>`
+  * :download:`mesh of the discrete boundary<../files/tutorial_6.fr.med.gz>`
+  * :download:`python script<../files/tutorial_6.py>`
   * :download:`python script for the compression<../files/tutorial_util.py>`
-  * :download:`YACS scheme<../files/tutorial_4.xml>`
+  * :download:`schéma YACS<../files/tutorial_6.xml>`
 
 
 Specific instructions for a 2D mesh
@@ -113,7 +134,8 @@ The instructions to adapt a 2D mesh are exactly identical to those necessary to
 In the case presented here, one for the first time refines all the elements contained in a bored disk, then in one second iteration, all the elements contained in a rectangle. One will note the use of the follow-up of the circular borders of the field.
 
 .. literalinclude:: ../files/tutorial_5.py
-   :lines: 52-95
+   :start-after: Début des commandes
+   :end-before: Fin des commandes
 
 .. note::
   Download the files
@@ -126,3 +148,4 @@ In the case presented here, one for the first time refines all the elements cont
 
 .. toctree::
    :maxdepth: 2
+
index f2cb2bc058103dbebf963d365abcf89969f9c9f5..5bd55ac062ee88ec6eea8157591542c063e70b6c 100644 (file)
@@ -4,26 +4,52 @@ La frontière
 ############
 .. index:: single: boundary
 .. index:: single: frontière
+.. index:: single: CAO
 
 L'objet frontière contient toutes les définitions géométriques permettant de décrire une frontière courbe à suivre.
 
 Il existe deux modes de description d'une frontière :
 
-  - Discrète : ce mode est utilisé pour décrire une courbe 1D
-  - Analytique : ce mode est utilisé pour décrire une surface
+  - CAO : la frontière est issue de la géométrie du domaine
+  - Non CAO : si on ne dispose pas de la géométrie, on peut approcher la frontière par des descriptions :
 
+    * Discrète : pour décrire l'ensemble des courbes 1D composant la frontière
+    * Analytique : pour décrire chaque surface composant la frontière
+
+Le choix est exclusif :
+
+.. image:: images/create_boundary_1.png
+   :align: center
+
+Frontière CAO
+*************
+
+Le suivi d'une frontière CAO se fera en sélectionnant une frontière choisie dans la liste des frontières CAO enregistrées.
+
+Au démarrage, la liste est vide. Il faut créer une première frontière CAO par activation du bouton "*Nouveau*" :
+
+.. image:: images/create_boundary_cao_1.png
+   :align: center
+
+La fenêtre proposée invite au choix d'un fichier contenant une CAO au format XAO. Cette est celle de la géométrie qui est le support du maillage. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière, quel que soit son type.
+
+.. image:: images/create_boundary_cao_2.png
+   :align: center
+
+.. note::
+  La cohérence entre cette CAO et le maillage initial n'est pas contrôlée.
 
 Frontière discrète
 ******************
 
-Le suivi d'une frontière discrète se fera en sélectionnant une frontière choisie dans la liste des frontières discrètes existantes.
+Le suivi d'une frontière discrète se fera en sélectionnant une frontière choisie dans la liste des frontières discrètes enregistrées.
 
 Au démarrage, la liste est vide. Il faut créer une première frontière discrète par activation du bouton "*Nouveau*" :
 
 .. image:: images/create_boundary_di_1.png
    :align: center
 
-La fenêtre proposée invite au choix d'un fichier de maillage. Ce maillage est celui de toutes les lignes constituant la frontière. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière.
+La fenêtre proposée invite au choix d'un fichier de maillage. Ce maillage est celui de toutes les lignes constituant la frontière. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière, quel que soit son type.
 
 .. image:: images/create_boundary_di_2.png
    :align: center
@@ -86,7 +112,7 @@ Un cylindre
 ===========
 .. index:: single: cylindre
 
-Le cylindre est défini par un point de l'axe, son axe et son rayon. L'axe est défini par un vecteur. La norme de ce vecteur n'est pas nécessairement égale à 1 ; de même, son orientation n'a aucune importance. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière.
+Le cylindre est défini par un point de l'axe, son axe et son rayon. L'axe est défini par un vecteur. La norme de ce vecteur n'est pas nécessairement égale à 1 ; de même, son orientation n'a aucune importance. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière, quel que soit son type.
 
 .. image:: images/create_boundary_an_cy.png
    :align: center
@@ -95,7 +121,7 @@ Une sphère
 ==========
 .. index:: single: sphere
 
-La sphère est définie par son centre et son rayon. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière.
+La sphère est définie par son centre et son rayon. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière, quel que soit son type.
 
 .. image:: images/create_boundary_an_sp.png
    :align: center
@@ -104,7 +130,7 @@ Un cône
 =======
 .. index:: single: cone
 
-Un cône est défini de deux manières différentes : le centre, l'axe et l'angle d'ouverture en degré ou par deux points centrés sur l'axe et le rayon associé. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière.
+Un cône est défini de deux manières différentes : le centre, l'axe et l'angle d'ouverture en degré ou par deux points centrés sur l'axe et le rayon associé. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière, quel que soit son type.
 
 Création par une origine, un axe et un angle d'ouverture :
 
@@ -120,7 +146,7 @@ Un tore
 =======
 .. index:: single: tore
 
-Le tore est défini par son centre, son axe, le rayon de révolution et le rayon primaire. L'axe est défini par un vecteur. La norme de ce vecteur n'est pas nécessairement égale à 1 ; de même, son orientation n'a aucune importance. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière.
+Le tore est défini par son centre, son axe, le rayon de révolution et le rayon primaire. L'axe est défini par un vecteur. La norme de ce vecteur n'est pas nécessairement égale à 1 ; de même, son orientation n'a aucune importance. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière, quel que soit son type.
 
 .. image:: images/create_boundary_an_to.png
    :align: center
@@ -131,7 +157,7 @@ L'arbre d'étude
 
 A l'issue de cette création de frontières, l'arbre d'études a été enrichi. On y trouve toutes les frontières créées, identifiées par leur nom, avec la possibilité de les éditer.
 
-.. image:: images/create_boundary_1.png
+.. image:: images/create_boundary.png
    :align: center
 
 
index 0e41fc223a1371109054c19b05269d5693ad57d0..9f0ff88f284c74db5982d2d2cf0ebeb377d234d6 100644 (file)
@@ -66,12 +66,15 @@ Quand le bord du domaine est courbe, HOMARD sait placer les nouveaux noeuds sur
 
 Deux cas de figure sont présents :
 
-* courbe 1D : cette courbe peut être définie dans un plan, par exemple pour un calcul 2D. Elle peut également être définie dans l'espace 3D, par exemple pour l'intersection de deux surfaces. Une ligne à suivre est décrite de manière discrète.
-* surface : une surface à suivre est décrite de manière analytique.
+- CAO : la CAO du domaine associé au maillage est disponible. Le calcul s'appuiera sur elle pour réaliser les projections.
+- Pas de CAO : en l'absence de CAO, il est possible d'avoir une version approchée des frontières :
 
-On cochera le ou les boutons voulus :
+  * courbe 1D : cette courbe peut être définie dans un plan, par exemple pour un calcul 2D. Elle peut également être définie dans l'espace 3D, par exemple pour l'intersection de deux surfaces. Une ligne à suivre est décrite de manière discrète.
+  * surface : une surface à suivre est décrite de manière analytique.
 
-.. image:: images/create_case_5.png
+On cochera le bouton voulu :
+
+.. image:: images/create_boundary_1.png
    :align: center
 
 La définition des frontières est décrite dans :doc:`gui_create_boundary`.
index 6b963767f4ebbb3635d6c249a05d30ef25e22abb..426bd5e7ec14c073a81baa8a582d53bf0c4c93e3 100644 (file)
@@ -16,6 +16,14 @@ Ces méthodes retournent une instance de la classe boundary.
 
 +----------------------------------------------------------------------------------------+
 +----------------------------------------------------------------------------------------+
+| .. module:: CreateBoundaryCAO                                                          |
+|                                                                                        |
+| **CreateBoundaryCAO(boundary_name, xao_file)**                                         |
+|     Retourne une instance de la classe ``boundary`` de type CAO après sa création      |
+|                                                                                        |
+|     - ``boundary_name`` : le nom de la frontière CAO                                   |
+|     - ``xao_file`` : le nom du fichier contenant cette CAO, au format XAO              |
++----------------------------------------------------------------------------------------+
 | .. module:: CreateBoundaryDi                                                           |
 |                                                                                        |
 | **CreateBoundaryDi(boundary_name, mesh_name, mesh_file)**                              |
@@ -23,7 +31,7 @@ Ces méthodes retournent une instance de la classe boundary.
 |                                                                                        |
 |     - ``boundary_name`` : le nom de la frontière discrète                              |
 |     - ``mesh_name`` : le nom du maillage de la frontière                               |
-|     - ``mesh_file`` : le nom du fichier contenant ce maillage                          |
+|     - ``mesh_file`` : le nom du fichier contenant ce maillage, au format MED           |
 +----------------------------------------------------------------------------------------+
 | .. module:: CreateBoundaryCylinder                                                     |
 |                                                                                        |
@@ -106,20 +114,24 @@ Voir également dans :doc:`tui_create_case`.
 
 +---------------------------------------------------------------+
 +---------------------------------------------------------------+
-| .. module:: AddBoundaryGroup                                  |
+| .. module:: AddBoundary                                       |
 |                                                               |
-| **AddBoundaryGroup(boundary, group)**                         |
+| **AddBoundary(boundary)**                                     |
 |     Ajoute une frontière à la définition du cas               |
 |                                                               |
 |     - ``boundary`` : nom d'une frontière courbe à suivre      |
++---------------------------------------------------------------+
+| .. module:: AddBoundaryGroup                                  |
+|                                                               |
+| **AddBoundaryGroup(boundary, group)**                         |
+|     Ajoute une frontière à la définition du cas en précisant  |
+|     les groupes associés                                      |
 |                                                               |
-|     Pour une frontière discrète :                             |
+|     - ``boundary`` : nom d'une frontière courbe à suivre      |
 |                                                               |
-|     . si toutes les lignes courbes sont suivies, le second    |
-|     argument est une chaîne vide.                             |
+|     Pour une frontière discrète ou CAO :                      |
 |                                                               |
-|     . si seulement certaines lignes courbes sont suivies,     |
-|     ``group`` est le nom d'un groupe de segments à suivre.    |
+|     - ``group`` : nom d'un groupe de mailles à suivre         |
 |                                                               |
 |     Pour une frontière analytique :                           |
 |                                                               |
@@ -142,6 +154,7 @@ Méthodes de la classe boundary
 | **GetType()**                                                 |
 |     Retourne le type de la frontière :                        |
 |                                                               |
+|         * -1 : CAO                                            |
 |         * 0 : discrète                                        |
 |         * 1 : cylindre                                        |
 |         * 2 : sphère                                          |
@@ -159,9 +172,11 @@ Méthodes de la classe boundary
 | .. module:: Delete                                            |
 |                                                               |
 | **Delete()**                                                  |
-|     Detruit la frontière.                                     |
+|     Détruit la frontière.                                     |
 |     Pour une frontière discrète, le fichier du maillage       |
 |     associé est conservé.                                     |
+|     Pour une frontière CAO, le fichier de la géométrie        |
+|     associée est conservé.                                    |
 |                                                               |
 |     Retourne un entier :                                      |
 |         * 0 : destruction réussie                             |
@@ -171,7 +186,11 @@ Méthodes de la classe boundary
 
 Exemple
 *******
-Création d'une frontière discrète, d'une frontière sphèrique, puis d'une frontière cylindrique : ::
+Création d'une frontière CAO : ::
+
+    la_cao = homard.CreateBoundaryCAO("BLOC", dircase+'/tutorial_6.xao')
+
+Création d'une frontière discrète, d'une frontière sphérique, puis d'une frontière cylindrique : ::
 
     inter = homard.CreateBoundaryDi("INTERSECTION", 'PIQUAGE', dircase+'/tutorial_4.fr.med')
     fron_1 = homard.CreateBoundarySphere("FRON_1", 12.3, 3.4, .56, 6.5)
index a795348d2282000f8154ea0efb0bafff7f72135e..d6615eabd2ee2cef9f188bea670a65daa9c88962 100644 (file)
@@ -103,16 +103,16 @@ Méthodes de la classe cas
 | .. module:: SetDirName                                        |
 |                                                               |
 | **SetDirName(dirname)**                                       |
-|     Affecte le répertoire des résutats associé au cas. Cela ne|
-|     peut se faire qu'après la création du cas et avant le     |
+|     Affecte le répertoire des résultats associé au cas. Cela  |
+|     ne peut se faire qu'après la création du cas et avant le  |
 |     premier calcul.                                           |
 |                                                               |
-|     - ``dirname`` : le nom du répertoire des résutats         |
+|     - ``dirname`` : le nom du répertoire des résultats        |
 +---------------------------------------------------------------+
 | .. module:: GetDirName                                        |
 |                                                               |
 | **GetDirName()**                                              |
-|     Retourne le nom du répertoire des résutats associé au cas |
+|     Retourne le nom du répertoire des résultats associé au cas|
 +---------------------------------------------------------------+
 | .. module:: SetConfType                                       |
 |                                                               |
index d048cbba6c5043612fc438dc50ba42d7952867b0..fcc483f1afa253896705b286e1dbc1c003eb5f66 100644 (file)
@@ -151,7 +151,7 @@ Le champ de pilotage de l'adaptation et les seuils
 |        * 4 : moyenne + n fois l'écart-type                    |
 |                                                               |
 |     - ``threshold`` : valeur numérique entrant dans la        |
-|                       définition du seuil                     |
+|       définition du seuil                                     |
 +---------------------------------------------------------------+
 | .. module:: GetRefinThrType                                   |
 |                                                               |
index 0c3b1be0489cd2638e79a930699a3b0b838ea6cc..2f928e67596217ce84ba6086c6259cd1ed4eee4d 100644 (file)
@@ -152,7 +152,7 @@ Généralités
 | .. module:: GetDirName                                        |
 |                                                               |
 | **GetDirName()**                                              |
-|     Retourne le nom du répertoire des résutats associé à      |
+|     Retourne le nom du répertoire des résultats associé à     |
 |     l'itération                                               |
 +---------------------------------------------------------------+
 | .. module:: Delete                                            |
index 25cb739a6577f730c5a6ff49a61a2fbcf0b71958..67e5c4d438f0d4a41b86e2eb7746bd28b4159867 100644 (file)
@@ -36,7 +36,8 @@ On fera ici trois raffinements uniformes successifs du maillage contenu dans le
   * le maillage produit porte toujours le même nom. Cela ne pose pas de problème car il est stocké dans des fichiers différents.
 
 .. literalinclude:: ../files/tutorial_1.py
-   :lines: 52-85
+   :start-after: Début des commandes
+   :end-before: Fin des commandes
 
 .. note::
   Téléchargement des fichiers
@@ -53,7 +54,8 @@ Raffinement par des zones
 On procède ici au raffinement selon des zones. Pour passer du maillage initial au maillage 'M_1', on utilise une boîte encadrant le plan z=1 et une sphère centrée sur l'origine de rayon 1.05. Puis pour passer du maillage 'M_1' au maillage 'M_2', on remplace la sphère par une boîte encadrant le cube de côté 0.5, pointant sur l'origine et on déraffine les mailles contenues dans la toute première zone.
 
 .. literalinclude:: ../files/tutorial_2.py
-   :lines: 52-95
+   :start-after: Début des commandes
+   :end-before: Fin des commandes
 
 .. note::
   Téléchargement des fichiers
@@ -71,7 +73,8 @@ On procède ici au raffinement selon un champ. Les hypothèses servent à défin
 Pour adapter le maillage H_1 issu de l'itération Iter_1, deux variantes sont appliquées. Dans la première, Iter_2, le champ est un champ scalaire d'indicateurs d'erreur et on découpe les 1.5% de mailles où l'erreur est la plus grande. Dans la seconde variante, Iter_2_bis, on se base sur un champ vectoriel et on examine le saut de ce vecteur entre une maille et ses voisines : on découpera là où la norme infinie de ce saut est supérieure au seuil absolu de 0.0001.
 
 .. literalinclude:: ../files/tutorial_3.py
-   :lines: 52-124
+   :start-after: Début des commandes
+   :end-before: Fin des commandes
 
 .. note::
   Téléchargement des fichiers
@@ -84,24 +87,43 @@ Pour adapter le maillage H_1 issu de l'itération Iter_1, deux variantes sont ap
 
 Suivi de frontières courbes
 ***************************
-.. index:: single: champ
+.. index:: single: frontière
+.. index:: single: CAO
 .. index:: single: YACS
 
-On teste ici le suivi des frontières courbes : des frontières analytiques pour décrire les différentes surfaces des tuyaux et une frontière discrète pour décrire les lignes d'intersection des deux tuyaux. Le pilotage du raffinement est le suivant : raffinement uniforme de toutes les mailles contenues dans des groupes désignés. On commence par raffiner les faces internes aux tuyaux ; ensuite, on raffine deux fois de suite les faces externes aux tuyaux.
+On teste ici le suivi des frontières courbes en fournissant la géométrie représentée par la CAO de la pièce. Cette CAO est fournie dans un fichier au format XAO.
+Le pilotage du raffinement est le suivant : raffinement uniforme de toutes les mailles contenues dans des groupes désignés. On commence par raffiner les faces internes aux tuyaux ; ensuite, on raffine deux fois de suite les faces externes aux tuyaux.
 Le schéma YACS réalisant cette adaptation est téléchargeable.
 
 .. literalinclude:: ../files/tutorial_4.py
-   :lines: 52-111
+   :start-after: Début des commandes
+   :end-before: Fin des commandes
 
 .. note::
   Téléchargement des fichiers
 
   * :download:`maillage initial<../files/tutorial_4.00.med.gz>`
-  * :download:`maillage de la frontière discrète<../files/tutorial_4.fr.med.gz>`
+  * :download:`la frontière en CAO<../files/tutorial_4.xao.gz>`
   * :download:`commandes python<../files/tutorial_4.py>`
   * :download:`commandes python de l'utilitaire de compression<../files/tutorial_util.py>`
   * :download:`schéma YACS<../files/tutorial_4.xml>`
 
+Si la géométrie sous forme de CAO n'est pas disponible, on peut l'approcher ainsi :
+des frontières analytiques pour décrire les différentes surfaces des tuyaux et une frontière discrète pour décrire les lignes d'intersection des deux tuyaux. Il suffit de remplacer la définition des frontières.
+
+.. literalinclude:: ../files/tutorial_6.py
+   :start-after: Début des commandes
+   :end-before: Fin des commandes
+
+.. note::
+  Téléchargement des fichiers
+
+  * :download:`maillage initial<../files/tutorial_4.00.med.gz>`
+  * :download:`maillage de la frontière discrète<../files/tutorial_6.fr.med.gz>`
+  * :download:`commandes python<../files/tutorial_6.py>`
+  * :download:`commandes python de l'utilitaire de compression<../files/tutorial_util.py>`
+  * :download:`schéma YACS<../files/tutorial_6.xml>`
+
 
 Instructions spécifiques au 2D
 ******************************
@@ -111,7 +133,8 @@ Les instructions pour adapter un maillage 2D sont exactement identiques à celle
 Dans le cas présenté ici, on raffine une première fois toutes les mailles contenues dans un disque percé, puis dans une seconde itération, toutes les mailles contenues dans un rectangle. On notera l'utilisation du suivi des frontières circulaires du domaine.
 
 .. literalinclude:: ../files/tutorial_5.py
-   :lines: 52-95
+   :start-after: Début des commandes
+   :end-before: Fin des commandes
 
 .. note::
   Téléchargement des fichiers