general crack dialog documentation

This commit is contained in:
Paul RASCLE 2016-04-18 14:07:49 +02:00
parent 6c4a42763e
commit c570e0f979
72 changed files with 698 additions and 32 deletions

View File

@ -0,0 +1,19 @@
.. _faq:
#######################
FAQ
#######################
- Does Bloc Fissure works on a 2D mesh ?
No, Bloc Fissure works only for 3D meshes. However, the user can extrude the 2D mesh to a 3D mesh, insert a crack and then extract a surface containing the crack.
- Can I insert a crack in a symmetry plan ?
No, the user must insert the crack without using the symmetry plan passing through the crack lips.
- I can't have Bloc Fissure working, it raises a pure python error, what can I do ?
Bloc Fissure has some error messages for the most commonly encountered misuses. If the program raises a pure python error, it means that this error is rare or has not been encountered by the programmers yet.
Still, either the case can't be treated using Bloc Fissure or the insertion procedure was not fully respected. In the first case, use Zcracks (soon available). In the second case, see the :ref:`tutorial <tutorials>`.

View File

@ -0,0 +1,78 @@
.. _gui:
With GUI
=====================================
To make the use of « Bloc Fissure » easier, a Graphical User Interface (GUI) was developed. Inputs are similar to those of :ref:`script mode <script>`. GUI is accessible in the SMESH extension *XXXXXXXXXXXXXXXXXXXXXXXX*
.. figure:: images/BF_GUI_capture.png
:width: 700
:align: center
Windows of the graphical interface
+------------------------------------------------------------------------------------------------------------------+
| GUI parameters |
+======================+===================================+=======================================================+
| **maillageSain** | *[string]* | Relative address of the input structure 3D mesh |
| | ex: mesh/maillage.med | in MED format (base is repertoire de travail) |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **FaceFissure** | *[string]* | Relative address of the input crack geometry |
| | ex: mesh/fissure.brep | in BREP format (base is repertoire de travail) |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **index edges fond | *[list of integers]* | List of edges number which define the crack front |
| fissure** | ex: [1,2] | |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **min** | *[float]* | Float defining the minimum size of elements |
| | ex: 1.00000 | to mesh the crack |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **max** | *[float]* | Float defining the maximum size of elements |
| | ex: 10.0000 | to mesh the crack |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **distance | *[float]* | Length of influence - distance that defines the |
| influence** | ex: 20.0000 | size of the extracted Box around the crack |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **rayon pipe** | *[float]* | Radius of the tore around the front |
| | ex: 5.00000 | |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **longueur mailles** | *[float]* | Length of the segments of the tore along crack front |
| | ex: 5.00000 | |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **couronnes** | *[integer]* | Number of radial segment of the tore |
| | ex: 5 | |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **secteurs** | *[integer]* | Number of sectors of the tore |
| | ex: 16 | |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **arete face | *[float]* | Mesh size of elements for the Box remeshing |
| fissure** | ex: 5.0000 | |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **repertoire de | *[string]* | Absolute address of the directory where files are |
| travail** | ex: /home/A123456 | saved |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **nom résultat** | *[string]* | Name of the resulting mesh |
| | ex: maillage_fissure | |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **mode** | *[choice]* | Verbose mode for Salome messages |
| | ex: verbose | |
+----------------------+-----------------------------------+-------------------------------------------------------+
.. figure:: images/parametres_GUI.png
:width: 350
:align: center
Tore parameters
- **Reset**: clears all the parameters
- **Précédent**: loads the last set of parameters used
- **Recharger**: loads a .dic file containing parameters
- **Sauver**: save a .dic file with the active parameters
- **Cancel**: exit GUI
- **Sauver**: Launch calculation

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 856 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -1,39 +1,24 @@
..
Copyright (C) 2015-2016 EDF
This file is part of SALOME HYDRO module.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Bloc Fissure documentation
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SALOME HYDRO module is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Contents:
SALOME HYDRO module is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.. toctree::
:maxdepth: 2
You should have received a copy of the GNU General Public License
along with SALOME HYDRO module. If not, see <http://www.gnu.org/licenses/>.
introduction.rst
principles.rst
use.rst
tutorials.rst
testcases.rst
faq.rst
Indices and tables
==================
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Documentation du plugin blocFissure
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
Le plugin blocFissure traite l'insertion de fissure dans un maillage sain.
###################
Outil métier coudes
###################
Cet outil génère des maillages de tuyaux coudés, avec des fissures de différents types, au niveau du coude.
Cet outil traite un cas particulier de l'outil général d'insertion de fissure dans un maillage sain.
##########################################
Insertion de fissure dans un maillage sain
##########################################
Partant d'un maillage sain et d'une face de fissure décrite en CAO, l'outil modifie le maillage sain,
en introduisant un maillage de la fissure, sous la forme d'un tore rayonnant le long de la ligne de fond de fissure.

View File

@ -0,0 +1,22 @@
.. _introduction:
###################
Introduction
###################
.. image:: images/intro.png
:scale: 50
:align: center
« Bloc Fissure » is a SMESH extension used to insert cracks in existing meshes. It has the advantage of meshing the crack front and the surrounding elements with a tore containing ruled elements. The rest of the crack contains a free mesh. The tore is made of prism elements (extruded triangles connected to the crack front) and hexahedrons elsewhere. The main interests of such type of mesh are:
- Having sets of Gauss points in plans perpendicular to the crack front in order to calculate stress field without any interpolation, which would be the case on free mesh. It avoids strong oscillations along the crack front on the energy release rate and stress intensity factors calculated by `extrapolation <http://code-aster.org/doc/default/fr/man_r/r7/r7.02.08.pdf>`_ or `G-theta method <http://code-aster.org/doc/default/fr/man_r/r7/r7.02.01.pdf>`_.
- Decrease the element number. In fracture mechanics, a fine mesh is necessary radially to the crack front and more rarely along the front axis. Yet hexahedrons and prisms elements can have geometrical aspect ratios up to 20 without major matrix conditioning problems. On the contrary, tetrahedrons of free meshes are generally limited to aspect ratios around 3. The use of very elongated elements is then no longer a limitation and number of elements can be significantly decreased.
« Bloc Fissure » is not applicable every time. It is highly recommended to read the section on :ref:`general principles <general_principles>` to see how « Bloc Fissure » works. This section also gives the functional scope and the :ref:`limitations <recommendations>` of the tool. Finally, this part deals with cautions that the user must take using « Bloc Fissure ». The user can also refers himself to the :ref:`tutorial <tutorials>` to get some advice on how to make « Bloc Fissure » works.
If « Bloc Fissure » cant be used on a case, the user may switch to the other FEM insertion tool Zcracks in SALOME (soon available). Its more robust and has less limitations but the result is a cracked free mesh with tetrahedral elements. Another possibility is the `X-FEM method <http://www.code-aster.org/doc/v11/fr/man_u/u2/u2.05.02.pdf>`_ method in SALOME_MECA.

View File

@ -0,0 +1,104 @@
.. _using_bf_bended_pipes:
For bended pipes
=====================================
Cracked bended pipes being a common encountered case, a specific module was developed with a Graphic User Interface (GUI). GUI is accessible in the SMESH extension *Meshed Pipe with a crack*. Compared to the classical use of « Bloc Fissure », this extension also generate the pipe mesh and the crack geometry from geometrical information.
.. figure:: images/Capture_GUI_pipes_2.png
:width: 800
:align: center
Print screen of GUI of the extension *Meshed Pipe with a crack*
The GUI is a window with mandatory and optional parameters. Optional parameters have to be activated by ticking the corresponding check box. Parameters are explained on the following figures and table. Angles are in degrees and lengths dimensions are all the same and shall then be consistent with each others.
+---------------------------------------+---------------------------------------+
|.. image:: images/schema_tube_sain.png | .. image:: images/schema_fis_ext2.png |
| :scale: 40 | :scale: 40 |
| :align: center | :align: center |
+---------------------------------------+---------------------------------------+
|.. image:: images/schema_fissure.png |
| :scale: 40 |
| :align: center |
+---------------------------------------+---------------------------------------+
+-----------------------------------------------------------------------------------------+
| Section "coude sain" |
+===================+=====================================================================+
|**ANGLE** | Bending angle value between 0 and 90° |
+-------------------+---------------------------------------------------------------------+
|**R_CINTR** | Bending radius at the pipe axe |
+-------------------+---------------------------------------------------------------------+
|**L_TUBE_P1** | P1 nozzle length |
+-------------------+---------------------------------------------------------------------+
|**L_TUBE_P2** | P2 nozzle length |
+-------------------+---------------------------------------------------------------------+
|**EPAIS** | Pipe thickness |
+-------------------+---------------------------------------------------------------------+
|**DEXT** | External diameter of the pipe |
+-------------------+---------------------------------------------------------------------+
|/**NB_AXE_TUBE_P1**| Number of elements along P1 nozzle axe |
+-------------------+---------------------------------------------------------------------+
|/**NB_AXE_TUBE_P2**| Number of elements along P2 nozzle axe |
+-------------------+---------------------------------------------------------------------+
|/**NB_AXE_COUDE** | Number of elements along bend axe |
+-------------------+---------------------------------------------------------------------+
|/**NB_CIRCONF** | Number of elements in the circumference of the pipe (shall be even) |
+-------------------+---------------------------------------------------------------------+
|/**NB_EPAISSEUR** | Number of elements in the pipe thickness |
+-------------------+---------------------------------------------------------------------+
+---------------------------+----------------------------------------------------------------------------------------------+
| Section "fissure" |
+===========================+==============================================================================================+
|**Fissure interne externe**| Crack position respectively on the internal or external face of the pipe |
+---------------------------+----------------------------------------------------------------------------------------------+
|**Forcer elliptique** | Force the crack to be elliptic (do not use, under development) |
+---------------------------+----------------------------------------------------------------------------------------------+
|**PROFONDEUR** | Crack depth |
+---------------------------+----------------------------------------------------------------------------------------------+
|**LONGUEUR** | Crack major axis length measured on the surface where the crack is to be inserted |
+---------------------------+----------------------------------------------------------------------------------------------+
|**AZIMUT** | Circumferential position of the crack in degrees from the extrados to the intrados |
+---------------------------+----------------------------------------------------------------------------------------------+
|**ORIEN** | Angle between the major axis of the crack and the axe of the pipe. |
+---------------------------+----------------------------------------------------------------------------------------------+
|**ABS_CURV** | Longitudinal position of the crack centre defined from the interface between P1 and the bend.|
| | Its a curvilinear abscise and it can be negative or positive. |
+---------------------------+----------------------------------------------------------------------------------------------+
|Or **POSI_ANGUL** | Longitudinal position of the crack centre (DO NOT USE) |
+---------------------------+----------------------------------------------------------------------------------------------+
+----------------------------------------------------------------------------+
| Section "maillage fissure" |
+========================+===================================================+
|**NB_TRANCHES** | Elements number along the crack front of the tore |
+------------------------+---------------------------------------------------+
|**NB_COURONNE** | Elements number in the radius of the tore |
+------------------------+---------------------------------------------------+
|**NB_SECTEUR** | Sectors number of the tore |
+------------------------+---------------------------------------------------+
|**RAYON_TORE** | Tore radius |
+------------------------+---------------------------------------------------+
|/**Arêtes face fissure**| Approximate size of elements on the external face |
| | of the Box mesh after crack insertion |
+------------------------+---------------------------------------------------+
|/**Distance influence** | Length that defines the criterion to include mesh |
| | elements around the crack in the Box or not |
+------------------------+---------------------------------------------------+
- **Reset**: clears all the parameters
- **Précédent**: loads the last set of parameters used
- **Recharger**: loads a .dic file containing parameters
- **Sauver**: save a .dic file with the active parameters

View File

@ -0,0 +1,122 @@
.. _general_principles:
###################
General principles
###################
« Bloc Fissure » is based on GEOM module geometrical Boolean operations. The initial structure being a mesh, a conversion from mesh to geometry becomes necessary. This operation is called extraction and reconstruction because it is only applied to a small part of the mesh, which is around the crack. The extracted mesh is called the « Box » and only external faces of this mesh are kept and converted into several geometrical surfaces. This operation implies some limitations on the input mesh. When all the Booleans operations are done, the geometry that contains the crack is meshed again with a ruled mesh in the tore and a free mesh elsewhere.
In order to illustrate « Bloc Fissure » principle, the simple case of a crack insertion in a parallelepipedic specimen is detailed step by step:
1. The first step consists in loading the structure mesh (a) as well as the crack surface geometry (b).
2. The crack is then meshed (c). A length criterion defines the size of the extracted « Box ». This length is called the length of influence. All elements having a node within this zone is included in the « Box ». A second operation adds elements in the Box in order to have continuous faces (d).
3. A geometrical Box is reconstructed from the extracted Box mesh. The reconstruction is limited to faces which intersect the crack (e). A tore is created following the crack front (f).
4. The geometrical Box is then cut by the tore and the crack (g). Several plans are created in order to partition the box and the tore into radiuses for the future mesh (h).
5. The Box, the crack and the tore are meshed on their external surface (i) and then filled with volumetric elements (j). Crack nodes are doubled to « open » crack lips.
6. Finally the cracked box mesh is reinserted in the initial mesh ensuring the connectivity (k).
+---------------------------------------+---------------------------------------+---------------------------------------+
| .. image:: images/general_princ_a.png | .. image:: images/general_princ_b.png | .. image:: images/general_princ_c.png |
| :height: 600 | :height: 184 | :height: 184 |
| :align: center | :align: center | :align: center |
| | | |
| (a) | (b) | (c) |
+ +---------------------------------------+---------------------------------------+
| | .. image:: images/general_princ_d.png | .. image:: images/general_princ_e.png |
| | :height: 184 | :height: 184 |
| | :align: center | :align: center |
| | | |
| | (d) | (e) |
+ +---------------------------------------+---------------------------------------+
| | .. image:: images/general_princ_f.png | .. image:: images/general_princ_g.png |
| | :height: 184 | :height: 184 |
| | :align: center | :align: center |
| | | |
| | (f) | (g) |
+---------------------------------------+---------------------------------------+---------------------------------------+
| .. image:: images/general_princ_h.png | .. image:: images/general_princ_k.png | |
| :height: 184 | :height: 600 | |
| :align: center | :align: center | |
| | | |
| (h) | (k) | |
+---------------------------------------+ + +
| .. image:: images/general_princ_i.png | | |
| :height: 184 | | |
| :align: center | | |
| | | |
| (i) | | |
+---------------------------------------+ + +
| .. image:: images/general_princ_j.png | | |
| :height: 184 | | |
| :align: center | | |
| | | |
| (j) | | |
+---------------------------------------+---------------------------------------+---------------------------------------+
The length of influence is important. It defines the size of the extracted Box. Here is a 2D example showing how are selected the elements of the Box :
.. image:: images/longueur_influence.png
:width: 600
:align: center
All elements having a node at a smaller distance to the crack than the length of influence is selected. Then a filling algorithm fulfill the Box with elements to get a Box. The Box is not limited to rectangular shapes. See the section on :ref:`test cases <test_cases>` to see examples.
.. _recommendations:
######################################
Recommendations and limitations
######################################
1) **Linear input mesh:**
The input structure mesh must have linear elements in the extracted Box. Elements elsewhere do not have this limitation. The user can easily convert the mesh from quadratic to linear in MESH module in SALOME. Note that the element curvature of quadratic element is lost in the conversion.
2) **Hexahedral mesh:**
The extracted Box must have ruled quadrangles on the external faces which are intersected by the crack. The algorithm for geometrical reconstruction of the box needs 4 nodes elements on the surface of the box mesh. It means that free tetrahedral elements meshes are incompatible with « Bloc Fissure».
3) **Crack shall exceed from the structure:**
Surface crack geometry shall exceed from the structure mesh. Boolean operation can be problematic if crack surface edges are strictly on the Box faces. On the other hand, surface crack shall not exceed too much. A good rule would be to ensure that the area of the crack in the structure is greater than the area of the crack outside of the structure. It also means that internal crack can't be handled.
4) **Crack front edges must exceed from the structure:**
For similar reasons, crack front edges must exceed from the structure mesh. The user shall be really careful when fusing crack front edges within the structure with edges outside of the structure because junction mustnt be on the box external face. For example the following figure shows the bad and the good practice. In grew a 2D view of a structure to cut and in red the crack surface. Line 1 is the edge declared as the crack front. On the left case, Line 1 stops on the box boundary. Even if Line 1 is extended with Line 2 and 5, « Bloc Fissure» will fail. The good practice is to extend the Line 1 with the same shape. See how to extend the front edges in the :ref:`tutorials section <tutorials>`
.. image:: images/schema_lignes1.png
:scale: 80
5) **Loss of element groups:**
Crack insertion with « Bloc Fissure» doesnt ensure elements groups conservation. All the groups that are partially or totally in the Box mesh are impacted. Groups are not deleted but newly created elements are not added to the initial groups. Users must be really careful and verify their groups after crack insertion.
+-------------------------------------------+------------------------------------------+
|.. image:: images/recom_groupe_avant.png | .. image:: images/recom_groupe_apres.png |
| :height: 400 | :height: 400 |
| :align: center | :align: center |
+-------------------------------------------+------------------------------------------+
In this example, the initial group contains all the external faces of the mesh (left). After insertion, the group still exists but all elements of the Box are not in the group anymore (right).
6) **Loss of interfaces:**
Interfaces between elements are not kept in the Box zone during insertion. For example, in the case of a crack inserted at an interface between two materials, there is no way to rebuild exactly the original groups for affecting materials properties.
+--------------------------------------------+---------------------------------------------+
|.. image:: images/recom_interface_avant.png | .. image:: images/recom_interface_apres.png |
| :height: 300 | :height: 300 |
| :align: center | :align: center |
+--------------------------------------------+---------------------------------------------+
7) **Element normal:**
Elements normal orientation doesnt always follow the outgoing rule. User must verify faces orientation if fluxes boundary conditions are to be applied to the mesh.

View File

@ -0,0 +1,86 @@
.. _script:
With scripts
=====================================
« Bloc Fissure » has a script mode which is very close to the :ref:`GUI <gui>`, in the sense that the same information is needed as input.This documentation aims at giving an example and explains how to generate a cracked mesh using a python script calling « Bloc Fissure » functions. There are several others functions available in « Bloc Fissure » but they are not documented in this documentation.
The main command of « Bloc Fissure » is the casStandard function. It has a single argument which is a python dictionary with the following keys. All are mandatory parameters except those marked by /.
+------------------------------------------------------------------------------------------------------------------+
| Script parameters |
+======================+===================================+=======================================================+
| / **nomCas** | *[string, default=casStandard]* | Name of the problem |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **maillageSain** | *[string]* | Absolute address of the input structure 3D mesh |
| | | in MED format |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **BrepFaceFissure** | *[string]* | Absolute address of the input crack geometry |
| | | in BREP format |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **edgeFissIds** | *[list of integers]* | List of edges number which define the crack front |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **meshBrep** | *[list of 2 floats]* | List of two floats defining respectively minimum and |
| | | maximum size of elements of the crack mesh |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **lgInfluence** | *[float]* | Length of influence - distance that defines the |
| | | size of the extracted Box around the crack |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **rayonPipe** | *[float]* | Radius of the tore around the front |
| | | |
+----------------------+-----------------------------------+-------------------------------------------------------+
| / **lenSegPipe** | *[float, default=rayonPipe]* | Length of the segments of the tore along crack front |
| | | |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **nbSegRad** | *[integer]* | Number of radial segment of the tore |
| | | |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **nbSegCercle** | *[integer]* | Number of sectors of the tore |
| | | |
+----------------------+-----------------------------------+-------------------------------------------------------+
| **areteFaceFissure** | *[float]* | Mesh size of elements for the Box remeshing |
| | | |
+----------------------+-----------------------------------+-------------------------------------------------------+
Geometrical parameters of the tore are illustrated :
.. image:: images/parametres.png
:width: 350
:align: center
Different levels of verbose are available. Use one of this 4 optional functions to set verbose type:
- / **setDebug()**
- / **setVerbose()**
- / **setRelease()**
- / **setUnitTests()**
**example to run in salome session**::
from blocFissure import gmu
from blocFissure.gmu import initLog
initLog.setDebug()
from blocFissure.casStandard import casStandard
dicoParams = dict(nomCas = 'cubeFiss',
maillageSain = "/home/A123456/BF/cube.med",
brepFaceFissure = "/home/A123456/BF/fiss.brep",
edgeFissIds = [4],
lgInfluence = 20.,
meshBrep = (5.,10.),
rayonPipe = 5.,
lenSegPipe = 5,
nbSegRad = 5,
nbSegCercle = 32,
areteFaceFissure = 5)
execInstance = casStandard(dicoParams)

View File

@ -0,0 +1,170 @@
.. _test_cases:
#######################
Test cases
#######################
A base of 25 test cases ensures the proper functioning of « Bloc Fissure ». 12 cases are dedicated to :ref:`cracked bended pipes <pipeTC>` and the others 13 are for other :ref:`generic geometries <genericTC>`. They are shown here in order to illustrate cases on which « Bloc Fissure » works.
.. _genericTC:
Generic cases
===============================
All 13 cases are shown Table 2. Two views show the whole cracked structure and a zoom onto the crack with its tore.
+-------------------------------------------+----------------------------------------------+
| CubeAngle |
+-------------------------------------------+----------------------------------------------+
|.. image:: images/01_CubeAngle.png | .. image:: images/01_CubeAngle_2.png |
| :height: 300 | :height: 300 |
| :align: center | :align: center |
+-------------------------------------------+----------------------------------------------+
| CubeAngle2 |
+-------------------------------------------+----------------------------------------------+
|.. image:: images/02_CubeAngle2.png | .. image:: images/02_CubeAngle2_2.png |
| :height: 300 | :height: 300 |
| :align: center | :align: center |
+-------------------------------------------+----------------------------------------------+
| cylindre |
+-------------------------------------------+----------------------------------------------+
|.. image:: images/03_cylindre.png | .. image:: images/03_cylindre_2.png |
| :height: 300 | :height: 300 |
| :align: center | :align: center |
+-------------------------------------------+----------------------------------------------+
| cylindre2 |
+-------------------------------------------+----------------------------------------------+
|.. image:: images/04_cylindre2.png | .. image:: images/04_cylindre2_2.png |
| :height: 300 | :height: 300 |
| :align: center | :align: center |
+-------------------------------------------+----------------------------------------------+
| disque |
+-------------------------------------------+----------------------------------------------+
|.. image:: images/05_disque.png | .. image:: images/05_disque_2.png |
| :height: 300 | :height: 300 |
| :align: center | :align: center |
+-------------------------------------------+----------------------------------------------+
| ellipse1 |
+-------------------------------------------+----------------------------------------------+
|.. image:: images/06_ellipse1.png | .. image:: images/06_ellipse1_2.png |
| :height: 300 | :height: 300 |
| :align: center | :align: center |
+-------------------------------------------+----------------------------------------------+
| ellipse2 (tilted crack) |
+-------------------------------------------+----------------------------------------------+
|.. image:: images/07_ellipse2.png | .. image:: images/07_ellipse2_2.png |
| :height: 300 | :height: 300 |
| :align: center | :align: center |
+-------------------------------------------+----------------------------------------------+
| eprouvetteCourbe |
+-------------------------------------------+----------------------------------------------+
|.. image:: images/08_eprouvetteCourbe.png | .. image:: images/08_eprouvetteCourbe_2.png |
| :height: 300 | :height: 300 |
| :align: center | :align: center |
+-------------------------------------------+----------------------------------------------+
| eprouvetteDroite |
+-------------------------------------------+----------------------------------------------+
|.. image:: images/09_eprouvetteDroite.png | .. image:: images/09_eprouvetteDroite_2.png |
| :height: 300 | :height: 300 |
| :align: center | :align: center |
+-------------------------------------------+----------------------------------------------+
| eprouvetteDroite2 |
+-------------------------------------------+----------------------------------------------+
|.. image:: images/10_eprouvetteDroite2.png | .. image:: images/10_eprouvetteDroite2_2.png |
| :height: 300 | :height: 300 |
| :align: center | :align: center |
+-------------------------------------------+----------------------------------------------+
| faceGauche |
+-------------------------------------------+----------------------------------------------+
|.. image:: images/11_faceGauche.png | .. image:: images/11_faceGauche_2.png |
| :height: 300 | :height: 300 |
| :align: center | :align: center |
+-------------------------------------------+----------------------------------------------+
| faceGauche2 |
+-------------------------------------------+----------------------------------------------+
|.. image:: images/12_faceGauche2.png | .. image:: images/12_faceGauche2_2.png |
| :height: 300 | :height: 300 |
| :align: center | :align: center |
+-------------------------------------------+----------------------------------------------+
| vis (Crack is in the radius filet between the screw head and the screw shank) |
+-------------------------------------------+----------------------------------------------+
|.. image:: images/13_vis_1.png | .. image:: images/13_vis_1_2.png |
| :width: 400 | :width: 400 |
| :align: center | :align: center |
+-------------------------------------------+----------------------------------------------+
.. _pipeTC:
Cracked bended pipes
=====================================
All 12 bended pipe test cases are not shown here because they are relatively similars with each others. Only test case cas coude_0 et coude_3 are presented, those two tests being based on the same geometry and having a crack on the internal and on the external surface.
+--------------------------------+----------------------------------------------+
| .. image:: images/coude_0.png | .. image:: images/coude_0_2.png |
| :height: 500 | :width: 500 |
| :align: center | :align: center |
| +----------------------------------------------+
| | View of the external crack of test_coude_0 |
| +----------------------------------------------+
| | .. image:: images/coude_3.png |
| | :width: 500 |
| | :align: center |
+--------------------------------+----------------------------------------------+
| Bended pipe test case coude_0 | View of the internal crack of test_coude_3 |
| with an external crack | |
+--------------------------------+----------------------------------------------+
« Bloc Fissure » is very efficient for the case of bended pipes. The generation of the geometry and the crack insertion takes only around 15s.
Running test cases
=====================================
In SALOME interface:
0) **Generate med and breps files.** Once the files are generated, they are saved in SALOME source files. There is no need to generate them again::
from blocFissure.materielCasTests import genereMateriel
Then the user can either launch all test cases, several at once or just one :
1) **To execute all test cases**::
from blocFissure.CasTests import execution_Cas
2) **To execute only selected test cases**:
modify execution_Cas.py file and change::
runall = False. #old : True
And change from 0 to 1 of the number of the test you want to launch::
torun = [ 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,]
then launch the test cases::
from blocFissure.CasTests import execution_Cas
3) **To execute only one test case**::
from blocFissure.CasTests.[TEST_CASE_NAME] import [TEST_CASE_NAME]
[TEST_CASE_NAME](0).executeProbleme()
[TEST_CASE_NAME] is the name of the test case in the following list. Note that the test cases fissureCoude_4 and fissure_Coude_4 are very similar.
+--------------------+--------------------+--------------------+-----------------+-----------------+
| faceGauche | cylindre_2 | disquePerce | fissureCoude_3 | fissureCoude_6 |
+--------------------+--------------------+--------------------+-----------------+-----------------+
| faceGauche_2 | eprouvetteCourbe | vis_1 | fissureCoude_4 | fissureCoude_7 |
+--------------------+--------------------+--------------------+-----------------+-----------------+
| ellipse_1 | eprouvetteDroite | fissureCoude | fissure_Coude_4 | fissureCoude_8 |
+--------------------+--------------------+--------------------+-----------------+-----------------+
| ellipse_2 | cubeAngle | fissureCoude_1 | fissureCoude_5 | fissureCoude_9 |
+--------------------+--------------------+--------------------+-----------------+-----------------+
| cylindre | cubeAngle2 | fissureCoude_2 | fissureCoude_5 | fissureCoude_10 |
+--------------------+--------------------+--------------------+-----------------+-----------------+

View File

@ -0,0 +1,66 @@
.. _tutorials:
#######################
Tutorials
#######################
This tutorial aims at giving important steps of the use of « Bloc Fissure ». Those steps are the standard procedure that the user should apply to avoid « Bloc Fissure » failure and unexpected problem in the modelisation afterwards.
First, the user should ask himself if its case is compatible with « Bloc Fissure ». See the section on :ref:`limitations <recommendations>`.
1) Convert elements from quadratic to linear
Mesh Module: Modification > Convert to/from quadratic
2) Change the orientation of all faces to set them to outgoing
Mesh Module: Modification > Reorient faces
3) Verify that the crack exceeds everywhere from the structure. If it's not the case, move or extend the crack geometry.
4) Verify that the crack front edges don't stop right at the Box surface.
**Here are some advices :**
*To move the crack:*
GEOM Module: Operations > Transformation > Translation
*First way to extend the crack geometry in GEOM module:*
- Operations > Explode: Choose the crack geometry and explode into Edges
- Operation > Transformations > Extension: extend the length of the crack edges
- Rebuild edges to get a closed group of edges exceeding from the structure
- New Entity > Build > Wire: Create a wire from the edges
- New Entity > Build > Face: Create a face from the wire
- Get the new crack front edge number
+-----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+
| .. image:: images/tutorial_1.png | .. image:: images/tutorial_2.png | .. image:: images/tutorial_3.png | .. image:: images/tutorial_4.png |
| :height: 200 | :height: 200 | :height: 200 | :height: 200 |
| :align: center | :align: center | :align: center | :align: center |
+-----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+
| Initial bad crack geometry | Explode face into edges | Extend front edge and | Rebuild crack face |
| | | rebuild wire | |
+-----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+
*second way to extend the crack geometry in GEOM module:*
- Create new surfaces linked to the original crack geometry
- Fuse the surfaces to get an extended crack
5) Execute the « Bloc Fissure » script and check that it ended successfully.
6) Reorient faces to outgoing normal
7) Rebuild groups impacted by crack insertion
8) Export the cracked mesh

View File

@ -0,0 +1,14 @@
.. _using_bf:
########################
Using Bloc Fissure
########################
.. toctree::
:maxdepth: 2
gui.rst
scripts.rst
pipes.rst