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 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 :
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.
Corrected test parameters
Correction of a small error in additiveM\withAM\tools\ChiumentiAM.py where an extra 0.0875s per layer was spend between layers.
Creation of a lagamine geometry importer (only for BLZ2T lagamine elements with CONRA lagamine BCs)
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:
For an example of use, check additiveM\withAm\tests\HashemiAndJardin\jardin.py
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.
Reorganising the “battery” folder for additiveM tests and addition of new tests
Reorganising of tests in the battery, now they are divided in subfolders by category:
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, the test is added to additiveM/battery/withAM/Jardin/jardin.py:
[m] mtElements/PointAdditiveManager.cpp [m] mtElements/PointAdditiveManager.h
[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/
[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
— Cédric Laruelle 2020/03/10