3. Modeling A#
3.1. Characteristics of 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. We only knit half a volume.
Boundary conditions and loading: see chapter 1.3.
3.2. 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:
Creation of the points \(\mathit{Ae1}\), \(\mathit{Ai1}\), \(\mathit{Ae2}\), \(\mathit{Ai2}\),, \(\mathit{Pe1}\), \(\mathit{Pi}1\), then the arcs of circles \(L1\) and \(L2\), segments \(d1\) and \(d2\) (Menu New Entity → Basic → Basic → Point/Arc/Line).
Creation of the outline (wire) delimited by \(L1\), \(d1\),, \(l2\), \(d2\) and then the surface (« Face » object) from this outline (New Entity → Build → Wire/Face Menu).
Creation of the wire path: the points \(A,C,D,B,O\), then the two lines \(\mathit{AC}\) and \(\mathit{DB}\), and the arc of circle \(\mathit{CD}\), finally the total path \(\mathit{ACDB}\) in wire.
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\) (option by default), 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 → Cylinder), and a Boolean operation (Menu Operations → Boolean → Cylinder), 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 must 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\).
All that remains is to select half of the pipes located in plane \(Z>0\). To do this, you can first create a plan (Menu New Entity → Basic → Plane, for example, the 5th choice of Plane (creation from the local coordinate system), with option OXY and size 8). Then cut using the partition (Menu Operations → Partition) by selecting the 3 parts of the pipe as Objects and the plane as Tool Objects.
Create a volume group by selecting the parts located in \(Z>0\) (Menu New Entity → Group → Creat Group)., and finally with this group create a « compound » (Menu New Entity → Build → Compound).
Preparing the geometry for a hexahedron mesh :
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 two planes in order to obtain a geometry that is topologically equivalent to a hexahedron (6 faces). To create the two planes, menu New Entity → Basic → Plane: point + Vector (so C + AC/D + BD + BD). For the partition, menu Operations → Partition.
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 set limit conditions: Base, Symmetry, Background, Surfint and Surfext (New Entity → Group → Create Group Menu).
We will also create the edge group with a thick edge (\(d1\)) and another edge group with a circumference edge (\(L1\)) to allow different refinement on these edges.
We can test the other way of using ModuleGeometry/Mesh, consisting in producing, possibly modifying, and rereading a python file, which contains all the instructions necessary to build the geometry. This file is created using the File → Dump Study menu. This python file can be re-read from the File → Load Script menu. In particular, this makes it possible to modify the dimensions of the geometry. For example, we can examine the content of the file forma02a.datg, and read it again in Salome-Meca.
3.3. 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 Quadrange:Mapping.
1D Wire Discretization with the basic Number of Segments 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, 10 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:
With another mesh fineness, it is possible to obtain significantly different results. In particular, to obtain a correct solution, it is desirable to use quadratic elements.
3.4. Creation and launch of the calculation case (via asterStudy)#
Launch the AsterStudy module from the Salome-Meca platform.
Then in the left column, click on the Case View tab, right click CurrentCase to add a new stage where calculation case commands are defined.
Note: Add orders using the Commands menu → Show All.
The study requires a first transitory thermal calculation followed by a mechanical calculation.
The main steps for creating and launching the calculation case are as follows:
Read the mesh in MED format: Command LIRE_MAILLAGE.
Define material: Order DEFI_MATERIAU (\(E,\mathrm{\nu },\mathrm{\alpha }\) in ELAS, \(\mathrm{\lambda },\mathrm{\rho }\mathit{Cp}\) in THER).
Thermal calculation:
Define the finite elements used: Command AFFE_MODELE to assign the THERMIQUE phenomenon and the 3D modeling to TOUT.
Assign material to everything: Command AFFE_MATERIAU.
Affect thermal boundary conditions and loading:
This temperature transient is imposed with command AFFE_CHAR_THER_F: option TEMP_IMPO, with Surfint as GROUP_MA, and the function defined as imposed temperature TEMP)
The pipe is considered to be insulated and a condition on the exterior surface is not specified (which amounts to zero flow).
Define the calculation times, 0 s, 5 s, 10 s: command DEFI_LIST_REEL.
Solve the linear thermal problem: Command THER_LINEAIRE, by setting an initial state of uniform temperature equal to \(20°C\) (ETAT_INIT/VALE), and by assigning MODELE, CHAM_MATER (materials), EXCIT (loading), INCREMENT (list of moments).
Thermo-mechanical calculation:
Define the finite elements used: Command AFFE_MODELE to affect the MECANIQUE phenomenon and the 3D modeling.
Assign material: Command AFFE_MATERIAU. The result of the thermal calculation will be applied to everything as a variable controlling the behavior of the mechanical material by EVOL in option AFFE_VARC with the reference temperature NOM_VARC = TEMP at 20°.
Affect mechanical boundary conditions and loading: Command AFFE_CHAR_MECA:
The pipe is embedded at both ends and has a plane of symmetry: DDL_IMPO.
We have an internal surface pressure of \(15\mathit{MPa}\): PRES_REP (check the direction of the normal to the internal surface in asterStudy).
Solve the linear static mechanical problem: Command MECA_STATIQUE with the calculation of the temperature field defined above and the same list of times as thermal calculation.
Calculate the field: Command CALC_CHAMP with reuse.
for calculating the constraint field by elements extrapolated to the nodes: CONTRAINTE/SIEF_ELNO.
for calculating the Von Mises equivalent stress field: CRITERES/SIEQ_ELNO.
Print the maximum values of the SIEQ_ELNO stress tensor in Result format (RESULTAT) and print the temperature fields, displacements, and stress fields in the format MED: Command IMPR_RESU.
To launch the calculation case, in the left column, click on the History View tab.
3.5. Post-processing of results#
3.5.1. With Saloméet Results#
Visualize the fields and the deformed mesh with a few clicks in the AsterStudy Results tab. Verify some values by comparing with references (see chapter 2.2.1).
You can also launch the PARAVIS module from the Salome-Meca platform.
Open the result file (Menu File → Open ParaView File) containing the « mechanical » part. Choose field SIEF_ELGA and then apply the Merge Blocks filter through the Filters menu.
Open the result file containing the « thermal » part. Choose field TEMP and then apply the Merge Blocks filter.
Select two Merge Blocks objects and then apply the Learn Attributes filter.
Visualize the deformed mesh (Menu Filters → Common → Warp By Vector) with the temperature and the constraints at the Gauss points (Menu Filters → ELGA field To Surface).
3.5.2. With Aster_Study by adding an internship#
The main steps of the second execution with Aster_Study will be:
Extract the values from field SIEF_ELNO for an azimuth at the elbow entry (point C) for the load case corresponding to \(\mathit{Fy}\) in a table: Command MACR_LIGN_COUPE. With the SEGMENT option, the azimuth is defined by the end path \((\mathrm{0.18,}\mathrm{3.0,}0.)\) and \((\mathrm{0.2,}\mathrm{3.0,}0.)\), for example with 10 points.
Print the table produced in XMGRACE format for the NOM_PARA = SIYY component with the IMPR_TABLE command: use Filter → for now NOM_PARA = INST to 10s, and determine the data to be extracted by NOM_PARA, for example, COOR_X (for the X axis) and SIYY (for the X axis) and (for the component of constraint).