Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2020:01_07

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
commit:2020:01_07 [2020/01/06 15:41] – created laruellecommit:2020:01_07 [2020/03/10 15:51] (current) laruelle
Line 1: Line 1:
-====== Commit 2019-01-06 ======+====== Commit 2020-03-10 ======
 ===== Description ===== ===== Description =====
 **Bug Fix in the additiveManager routine:** **Bug Fix in the additiveManager routine:**
  
-In pointAdditiveManager.cpp, some boundary conditions were not correctly deactivated even when they were not connected to active volume elements. I modified the code so that when the routine deactivates volume elements before the simulation it will automatically deactivate connected boundary conditions if they are not on the edge of the geometry. This only affects simulations where the boundary conditions where not explicitly given to the routine for deactivation. (i.e. not given via pointAdditiveManager.addBoundaryCondition(BC)).+In pointAdditiveManager.cpp, some boundary conditions were not correctly deactivated even when they were not connected to active volume elements. I modified the code so that when the routine deactivates volume elements before the simulation it will automatically deactivate connected boundary conditions if they are not on the edge of the geometry. This only affects simulations where the boundary conditions were not explicitly given to the routine for deactivation. (i.e. not given via pointAdditiveManager.addBoundaryCondition(BC)).
  
 In short, the boundary conditions will now correctly be deactivated at the beginning of a simulation if : In short, the boundary conditions will now correctly be deactivated at the beginning of a simulation if :
  
 1) They are given to pointAdditiveManager via pointAdditiveManager.addBoundaryCondition(BC) 1) They are given to pointAdditiveManager via pointAdditiveManager.addBoundaryCondition(BC)
 +
 2) They are not on the edge of the geometry in the "to be activated" area. 2) They are not on the edge of the geometry in the "to be activated" area.
  
 **Corrected test parameters** **Corrected test parameters**
  
-In chiumenti, I found a small error in the laser path where an extra 0.0875s per layer was spend between layers. The differences on the results are highlighted here after.+Correction of a small error in additiveM\withAM\tools\ChiumentiAM.py where an extra 0.0875s per layer was spend between layers. 
      
-**Creation of lagamine mesh importer (only for BLZ2T lagamine elements with CONRA lagamine BCs)**+**Creation of lagamine geometry importer (only for BLZ2T lagamine elements with CONRA lagamine BCs)**
  
-I created a Lagamine mesh importer, although it only works for 2 specific types of Lagamine elements at the moment. The importer is situated in toolbox\lag2py.py . The importer reads the "testName.lag" source file and translates it into a metafor input file "testName_lag.py"+I created a Lagamine geometry importer, although it only works for 2 specific types of Lagamine elements at the moment. The importer is situated in toolbox\lag2py.py . The importer reads the "testName.lag" source file and translates the geometry in a metafor input file "testName_lag.py"
 More specifically: More specifically:
-  *  The nodes are all created respecting their numbering in the lagamine file. The Thermal initial condition is also set. +  *  The geometry (points/lines/quads) is created. The point numbering is the same as in the lagamine file. The initial temperature is also set at each point
-  * The nodes are all sorted into metafor groups, 1 group per lagamine material law respecting the lagamine material law number. +  * The points are all sorted into metafor groups, 1 group per lagamine material law respecting the lagamine material law number. This allows to push this group in a FieldApplicator to create all VolumeElements
-  * For each of the CONRA boundary condition, a list of metafor groups is created, 1 group = element.+  * For each of the CONRA boundary conditions, a list of metafor groups is created, 1 group = 2 points connecting a CONRA element. This allows to push those groups in a LoadingInteraction to create boundary condition elements.
  
 For an example of use, check additiveM\withAm\tests\HashemiAndJardin\jardin.py For an example of use, check additiveM\withAm\tests\HashemiAndJardin\jardin.py
Line 26: Line 27:
 The rest of the test is then created by hand in the metafor input file, but this allows to use the same mesh in metafor and lagamine.  The rest of the test is then created by hand in the metafor input file, but this allows to use the same mesh in metafor and lagamine. 
  
-===== Tests Chiumenti ===== +**Reorganising the "battery" folder for additiveM tests and addition of new tests**
-The comparison of the Chiumenti test with and without the laser path error is given hereafter.+
  
- {{:commit:2019:09_24:complobatto.png?600|}} CHANGE HERE+Reorganising of tests in the battery, now they are divided in subfolders by category:
  
 +  *  SimpleActivation: Basic tests to check the activation method.
 +
 +  *  Chiumenti: Minimum working example of the test by M.Chiumenti, this tests the activation on multiple layers with a moving heat flux in 3D. For pure thermal and thermomechanical.
 +
 +  *  Jardin: Minimum working example of the test by Jardin, this tests the activation on multiple layers with a moving heat flux in 2D. It also uses the lagamine geometry importer. 
 +
 +  *  Lobatto: Tests the different ways to use Lobatto integration in an additive manufacturing context, used on the M.Chiumenti test. Thermal and thermomechanical.
 +
 +  *  Tm1VsTm2: Tests the activation with Tm1 and Tm2 elements.
 +
 +  *  VolFlux: Tests the volumic heat flux in an additive manufacturing context, used on the M.Chiumenti test. Thermal and thermomechanical.
  
 ===== TestsJardin ===== ===== TestsJardin =====
-With this last modification in the code and the addition of the Lagamine importer I was finally able to reproduce the results from Jardin:+With those modifications in the code and the addition of the Lagamine importer I was able to reproduce the results from a 2D simulation from R.T. Jardin[1], the test is added to additiveM/battery/withAM/Jardin/jardin.py:
  
-The results are given hereafter:+Full simulation: 
 + {{:commit:2020:03_10:jardin.jpg?600|}}
  
-===== Addition of battery tests ===== +Similation without convection and without radiation boundary conditions: 
-I added battery tests ...+ {{:commit:2020:03_10:JardinNoRadNoConv.jpg?600|}} 
  
-===== Added [a] / deleted [d] / modified [m] / renamed [m] files ======+[1] http://hdl.handle.net/2268/229743 
 + 
 +===== Added [a] / deleted [d] / modified [m] / renamed [r] files ======
 ====Code:==== ====Code:====
 <code> <code>
 +[m] mtElements/PointAdditiveManager.cpp
 +[m] mtElements/PointAdditiveManager.h
 +</code>
  
 +====Folders:====
 +<code>
 +[a] additiveM/battery/withAM/Chiumenti/
 +[a] additiveM/battery/withAM/Jardin/
 +[a] additiveM/battery/withAM/Lobatto/
 +[a] additiveM/battery/withAM/SimpleActivation/
 +[a] additiveM/battery/withAM/Tm1VsTm2/
 +[a] additiveM/battery/withAM/VolFlux/
 +[a] additiveM/withAM/tools/lagDat/
 +</code>
  
 +====Tests:====
 +<code>
 +[a] additiveM/battery/withAM/Tm1VsTm2/doubleTm1SingleLineConstantDt.py
 +[a] additiveM/battery/withAM/Tm1VsTm2/Tm1SingleLineConstantDt.py
 +[a] additiveM/battery/withAM/Tm1VsTm2/Tm2SingleLineConstantDt.py
 +[a] additiveM/battery/withAM/Jardin/jardin.py
 +[a] additiveM/withAM/tests/HashemiAndJardin/jardinNoBc.py
 +[a] additiveM/withAM/tests/HashemiAndJardin/jardinOnlyConv.py
 +[a] additiveM/withAM/tests/HashemiAndJardin/jardinOnlyRad.py
 +[a] additiveM/withAM/tools/jardin.py
 +[a] additiveM/withAM/tools/lagDat/jardin.lag
 +[a] toolbox/lag2py.py
 </code> </code>
  
- --- //[[Cedric.Laruelle@ULiege.be|Cédric Laruelle]] 2019/01/07//+ --- //[[Cedric.Laruelle@ULiege.be|Cédric Laruelle]] 2020/03/10//
commit/2020/01_07.1578321701.txt.gz · Last modified: 2020/01/06 15:41 by laruelle

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki