Table of Contents
Lobatto and Trapezoid integration
In the simulation of AM, the very high temperature gradient can often create overshots and undershots near the heat source. One way to avoid this in the literature is to use a Lobatto integration . I wanted to try it but although the Lobatto and trapezoid integrations are implemented in metafor in the scope of data transfer between meshes, they were not interfaced with normal volume elements.
In this commit I interfaced the methods to the elements and I added the variable
INTEGRATIONQUADRATURETYPE that can take the values
TRAPEZOIDQUADRATURE to the volume element properties which allows the user to chose the integration type (GAUSSQUADRATURE being the default value):
prp1 = ElementProperties(Volume2DElement) prp1.put(INTEGRATIONQUADRATURETYPE, LOBATTOQUADRATURE)
QUADRATURETYPEstill remains for the choice of the type of transfer for the transfer elements.Transfert de données entre deux maillages
 Michele Chiumenti, Miguel Cervera, Alessandro Salmi, Carlos Agelet de Saracibar, Narges Dialami,and Kazumi Matsui. Finite element modeling of multi-pass welding and shaped metal depositionprocesses.Computer Methods in Applied Mechanics and Engineering, 199(37-40):2343–2359,2010
Adding new tests on the integration method
I added new tests in the battery to check the behaviour with the different integrations (Gauss: IntGauss, Lobatto: IntLobatto, Trapezoid: IntTrapezoid), in 2d and 3d, with different numbers of integration points per direction (2Nip, 3Nip, 4Nip). I also added a cont2 using Lobatto and Trapezoid integration.
Adding a check of the gmsh version
Newer versions of gmsh (>3.0.6) have a different format for the MSH file. As a quick fix I added a check of the format in toolbox/gmsh.py . For now one should remain with a version of gmsh <3.0.6.
Added [a] / deleted [d] / modified [m] / renamed [r] files
[m] mtElements/mtElements.cpp [m] mtElements/mtElements.h [m] mtElements/volumes/methods/EasCauchyMechVolIntegMeth.cpp [m] mtElements/volumes/methods/MechanicalVolumeIntegrationMethods.inl [m] mtElements/volumes/methods/SriCauchyMechVolIntegMeth.inl [m] mtElements/volumes/methods/SriPrCauchyMechVolIntegMeth.inl [m] mtElements/volumes/Tm2VolumeElement_common.hpp [m] mtElements/volumes/VolumeElement_common.hpp [m] mtElements/volumes/VolumeElShcuts.h [m] mtElements/volumes/VolumeElShcuts.inl [m] mtElements/volumes/VolumeElShcutsEnums.h [m] mtGeo/mtGeoPolySide.h [m] mtGeo/mtGeoPolyVolume.h [m] mtGeo/mtGeoVolume.h [m] mtShapeFunctions/GpTemplate.h [m] mtShapeFunctions/OnEdgeGpHexa.cpp [m] mtShapeFunctions/OnEdgeGpHexa.h [m] mtShapeFunctions/OnEdgeGpLine.cpp [m] mtShapeFunctions/OnEdgeGpLine.h [m] mtShapeFunctions/OnEdgeGpPenta.cpp [m] mtShapeFunctions/OnEdgeGpPenta.h [m] mtShapeFunctions/OnEdgeGpQuad.cpp [m] mtShapeFunctions/OnEdgeGpQuad.h [m] mtShapeFunctions/OnEdgeGpTetra.cpp [m] mtShapeFunctions/OnEdgeGpTetra.h [m] mtShapeFunctions/OnEdgeGpTriangle.cpp [m] mtShapeFunctions/OnEdgeGpTriangle.h [m] mtShapeFunctions/OptimalGpHexa.cpp [m] mtShapeFunctions/OptimalGpHexa.h [m] mtShapeFunctions/OptimalGpLine.cpp [m] mtShapeFunctions/OptimalGpLine.h [m] mtShapeFunctions/OptimalGpPenta.cpp [m] mtShapeFunctions/OptimalGpPenta.h [m] mtShapeFunctions/OptimalGpQuad.cpp [m] mtShapeFunctions/OptimalGpQuad.h [m] mtShapeFunctions/OptimalGpTetra.cpp [m] mtShapeFunctions/OptimalGpTetra.h [m] mtShapeFunctions/OptimalGpTriangle.cpp [m] mtShapeFunctions/OptimalGpTriangle.h [m] mtShapeFunctions/QuadratureType.cpp [m] mtShapeFunctions/SfIntegratorSet.cpp [m] mtShapeFunctions/SfIntegratorSet.h [m] mtShapeFunctions/SfIntegratorTemplate.h [m] mtShapeFunctions/SfIntegratorTemplate.hpp
[a] apps/monosMeca/IntGauss2d2Nip.py [a] apps/monosMeca/IntGauss2d2NipElast.py [a] apps/monosMeca/IntGauss2d3Nip.py [a] apps/monosMeca/IntGauss2d4Nip.py [a] apps/monosMeca/IntGauss3d2Nip.py [a] apps/monosMeca/IntGauss3d3Nip.py [a] apps/monosMeca/IntGauss3d4Nip.py [a] apps/monosMeca/IntGauss3dElast.py [a] apps/monosMeca/IntLobatto2d2Nip.py [a] apps/monosMeca/IntLobatto2d2NipElast.py [a] apps/monosMeca/IntLobatto2d3Nip.py [a] apps/monosMeca/IntLobatto2d4Nip.py [a] apps/monosMeca/IntLobatto3d2Nip.py [a] apps/monosMeca/IntLobatto3d2NipElast.py [a] apps/monosMeca/IntLobatto3d3Nip.py [a] apps/monosMeca/IntLobatto3d4Nip.py [a] apps/monosMeca/IntTrapezoid2d2Nip.py [a] apps/monosMeca/IntTrapezoid2d2NipElast.py [a] apps/monosMeca/IntTrapezoid2d3Nip.py [a] apps/monosMeca/IntTrapezoid2d4Nip.py [a] apps/monosMeca/IntTrapezoid3d2Nip.py [a] apps/monosMeca/IntTrapezoid3d2NipElast.py [a] apps/monosMeca/IntTrapezoid3d3Nip.py [a] apps/monosMeca/IntTrapezoid3d4Nip.py [a] apps/qs/cont2IntLobatto.py [a] apps/qs/cont2IntTrapezoid.py
— Cédric Laruelle 2019/01/17