4. B modeling#

Glossary: in Salome we refer to the following terms:

  • vertex the points useful for the construction of geometry;

  • edge the lines (straight lines);

  • arc the arcs of circles;

  • wire the lines composed of edge and arc;

  • face the surfaces delimited by a wire;

  • shell a set of faces intended to be meshed or delimiting a volume;

  • compound a set of geometric entities.

The straight pipes and the elbow are modelled by massive quadratic isoparametric elements.

The pipe has a \(Z\mathrm{=}0\) plane of symmetry. But unlike the static case, we will not take advantage of it. In fact, we will see that the modes can leave the plane of symmetry. We will therefore mesh the entire volume.

Boundary conditions and loading: see chapter 1.3.

_images/Object_4.png

4.1. Geometry:#

Launch the Geometry module of the Salome-Meca platform.

Two processes for creating geometry (recommend the second one):

  • Extruding a base surface along a path:

  1. Create the inner and outer circles of the base on plane OXZ (Menu New Entity → Basic → Circle), then the area delimited by the two circles (Menu New Entity → Build→ Face).

  2. Creating the wire path: the points \(A\), \(C\), \(D\), \(B\), \(O\), then the two lines \(\mathit{AC}\) and \(\mathit{DB}\), and the arc \(\mathit{CD}\) (Menu New Entity → Basic → Point/Line/Arc), then the entire path (Menu New Entity → Build → Arc), then the entire path (Menu New Entity → Build → Arc), then the entire path (Menu New Entity → Line/Arc), then the entire path (Menu New Entity → Line/Arc), then the entire path (Menu New Entity → Line/Arc).

  3. This surface is then extruded using the New Entity → Generation → Extrusion Along Path menu.

  • Use of basic solid objects:

    • Build a straight pipe with axis \(Z\), using two elementary cylinders of height \(3\) and radii \(0.2\) and \(0.18\) (Menu New Entity → Primitives → Cylinder), and a Boolean operation (Menu Operations → Boolean → Cut), and a Boolean operation (Menu Operations → Boolean → Cut). Rename the object created in \(\mathit{TUY}1\).

    • Apply a rotation to \(\mathit{TUY}1\) around \(X\) so that it has an axis \(Y\) (Menu Operations → Transformation → Rotation): Angle = -90° and deactivate Create a copy.

    • Select the top side by creating a group: Menu New Entity → Group → Create Group. This face allows you to generate the elbow using the New Entity → Generation → Revolution menu (Angle = -90°). To do this, you have to create the axis of revolution (a direction vector \(Z\) passing through the point O \((\mathrm{0.6,}\mathrm{3.0,}0.0)\)): creation of the points \((\mathrm{0.6,}\mathrm{3.0,}0.0)\) and \((\mathrm{0.6,}\mathrm{3.0,}1.0)\) and then creation of the vector (New Entity → Basic → Vector menu).

    • Then create the second straight pipe \(\mathit{TUY}2\) in the same way: select the upper face of the elbow by creating a group, and generate the right pipe using the New Entity → Generation → Extrusion menu next \(X\).

    • Finally assemble the 3 parts of the pipe using the partition (Menu Operations → Partition).

Preparing the geometry for a hexahedron mesh:

For a hexahedron mesh, you must use the « Hexahedron (i, j, k) » algorithm or use the « Automatic Hexahedralization » option.

The pipe is intended to be meshed with hexahedra, i.e. in a controlled manner (the number of elements is identical on two opposite sides). Before meshing, it is necessary to verify that the geometry is topologically equivalent to a hexahedron (6 faces). To do this, use the Inspection → Check Compound of Blocks menu.

Depending on the construction method (the first method), it may be necessary to partition the inlet and outlet sections of the elbow by planes in order to obtain a geometry topologically equivalent to a hexahedron (6 faces).

For the geometry generated following the first process, several planes must be created to partition the pipe: a plane Y=3, a plane X=0.6 (Menu New Entity →Basic →Plane: point + Vector DonCC + AC /D + BD), and a curved surface from the path ACDB created (Wire_1): menu New Entity → Generation → Extrusion along the Z axis, then Operations/Transformation/Translation so that the curved surface Bée cuts off the entire pipe.

If you want to make a mesh with tetrahedra, this condition is not necessary. On the other hand, if you want to mesh in a hexahedron, it is essential for the algorithms of the lessors.

Creation of groups :

We will then create the groups of faces where we want to put limit conditions: Base (surface at the bottom to embed), Background (end of the pipe to apply dynamic force): Menu New Entity → Group → Create Group): Menu New Entity → Group → Create Group.

We will also create the edge group with a thick edge (\(\mathit{d1}\)) and another edge group with a circumference edge (\(\mathit{L1}\)) to allow different refinement on these edges.

For post-processing, it is convenient to create a group at a point where you can follow developments. We will therefore create the point \(B\) group located on the Efond section, at the bottom, on the inner surface of the pipe.

_images/10000000000003AD00000251408EFDC989DFAA39.jpg

4.2. Meshing#

Launch the Mesh module of the Salome-Meca platform.

The mesh is defined by the Mesh → Create Mesh menu. Select the geometry to be meshed, then the algorithm and the discretization hypothesis by dimension:

  • 3D Hexahedron (i, j, k).

  • 2D Quadrangle: Mapping.

  • 1D Wire Discretization with the basic Number of Segment hypothesis (15 segments per edge).

  • Then calculate the mesh (Menu Mesh → Compute).

To allow different refinement depending on the edges, we will create sub-meshes using the menu Mesh → Create sub-mesh:

  • A sub-mesh defining the number of segments in thickness \(d1\). For example, the basic hypothesis Number of Segments with 2 segments on \(d1\) and the additional hypothesis « Propagation of 1D hypothesis on Opposite Edges ».

  • A sub-mesh defining the number of segments on circumference \(L1\). For example, 20 segments on \(L1\) and the additional hypothesis « Propagation of 1D hypothesis on Opposite Edges ».

        • Then calculate the mesh (Menu Mesh → Compute).

Create the mesh groups corresponding to the geometric groups (Menu Mesh→Create Groups from Geometry).

Export the mesh in MED format.

To obtain better precision, we will change the mesh from linear to quadratic, using the « Modification -> Convert to/from quadratic » tool. The most curious can compare the differences in results between the two types of elements.

Remarks:

_images/10000000000003AD000002518DD4724FF904104B.jpg

4.3. Creation and launch of the calculation case#

The main steps of the calculation with AsterStudy will be:

  • Read the mesh by LIRE_MAILLAGE

  • Affect element type and modeling by AFFE_MODELE

  • Define and assign material by DEFI_MATERIAU and AFFE_MATERIAU

  • Define boundary conditions by AFFE_CHAR_MECA: option DDL_IMPO to embed base.

  • Assemble the mass and stiffness matrices of the system by ASSEMBLAGE:

ASSEMBLAGE (MODELE =…,

CHAM_MATER =…,

CHARGE =…,

# Numbering system unknowns

# of linear equations

NUME_DDL =CO (”…”),

MATR_ASSE =( _F (MATRICE =CO (”…”),

OPTION =” RIGI_MECA “,),

_F (MATRICE =CO (”…”),

OPTION =” MASS_MECA “,),),);

  • Calculate the first 10 natural modes by CALC_MODES

CALC_MODES (MATR_RIGI =…,

MATR_MASS =…,

OPTION =” PLUS_PETITE “,

CALC_FREQ =_F (NMAX_FREQ = 10,),)

  • Extract and visualize clean modes by IMPR_RESU.

The calculation will then be started in the AsterStudy module. It is recommended to view the animations in the Results tab of Asterstudy.

You can also visualize the modes in Paravis by « deforming » them:

  • Right-click the results file in the Case View → Data Files tab, and click Open In Paravis to load the results by choosing the mode format instead of time, then click Apply to validate

  • Apply the filter in Filters → Mechanics → Normal animation modes (real), and validate

  • Display the Animation view window (View menu → Windows → Animation View), and add an animation for the filter above by clicking + next to Normalmodesanimationreal

  • Choose the mode to be displayed (Mode Array Selection) in the Properties window on the left and confirm, then click the Play button (►) to visualize the mode movement

For the transient analysis using the calculated eigenmodes, we will use the « wizard » below. The required commands will be added as a result of the analysis.

  • Continue the calculation in a new stage using the command POURSUITE

  • Define time discretization using command DEFI_LIST_REEL: from 0s to 2.0s with a time step of 0.0001s.

Point force construction

  • Definition of unit load (value at 1) « force on section \(B\) » (AFFE_CHAR_MECA/FORCE_FACE).

  • Calculation of elementary force vectors (CALC_VECT_ELEM/OPTION =” CHAR_MECA “).

  • Force vector assembly (ASSE_VECTEUR).

  • Definition of the function evolved over time by FORMULE: VALE for the expression \(\mathit{FY}(t)=10000000.\mathrm{sin}(2\pi \mathit{Freq1}\mathrm{.}t)\) directed along the \(Y\) axis and applied to section \(B\), where \(\mathit{Freq}1=20\mathit{Hz}\). The variables used in the formula must first be declared.

  • Evolve the function by CALC_FONC_INTERP according to the list of moments defined. With PROL_GAUCHE/DROITE = CONSTANT to define the curve outside the scope of the list of moments.

Transitional on a modal basis

  • Projection of the assembled problem based on natural modes

      • PROJ_BASE (BASE =…,

            • MATR_ASSE_GENE = (

              • # For the mass matrix

      _F (MATR_ASSE =…),

            • # For the stiffness matrix

            • _F (MATR_ASSE =…),

# For dynamic strength

        • VECT_ASSE_GENE = _F (TYPE_VECT = “FORC”,

          • VECT_ASSE =…),)).

  • Transient calculation by modal recombination (DYNA_VIBRA)

BASE_CALCUL =” GENE “,

SCHEMA_TEMPS = _F (SCHEMA = “DIFF_CENTRE”),

    • AMOR_MODAL =…,

MATR_MASS =…,

MATR_RIGI =…,

EXCIT =…,

INCREMENT =…,

…).

  • Retrieving trips in \(Y\) to point \(B\) (RECU_FONCTION): RESU_GENE, GROUPE_NO, NOM_CHAM = DEPL, NOM_CMP =DY.

  • Printing these functions in XMGRACE (IMPR_FONCTION) format: FORMAT, UNITE, COURBE, etc.

  • Visualize the displacement fields:

    • Command REST_GENE_PHYS: because the type of results generated (physical base) directly by DYNA_VIBRA cannot be printed in the format MEDpar IMPR_RESU, the results must be returned to the physical base in generalized coordinates by giving LIST_INST, NOM_CHAM, RESU_GENE. Attention: numerous time steps lead to the file MED very large, and we recommend redefining a list of moments, for example with a 0.01s time step.

    • Command IMPR_RESU: print in MED

4.4. Post-processing of results#

You can directly visualize the Y displacement curve at point \(B\) as a function of time after IMPR_FONCTION in the XMGRACE format.

Import the transient results into the Results tab, and check the DY movements at a point at the end of the pipe (see chapter 2.2.2).