A center of gravity and mass extractor for interactions has been implemented in Metafor.
The synthax is the same as other extractors:
valuesmanager = metafor.getValuesManager() extractor1 = InteractionGravityCenterAndMassValueExtractor(interaction) valuesmanager.add(nbr, extractor1, name = "TheNameYouWant") # manages extraction, result storage...
At each archiving step the extractor fills a four columns text file, where columns 1-3 contain x, y, and z coordinates of the center of gravity respectively, and column 4 contains the value of the mass.
MASS_DENSITY different from zero, otherwise a FATAL_ERROR is raised.
For the moment, a gravity center and mass extractor has been added in apps/imp/bounce.py and for all the test cases contained in apps/monosMaterials2 and mtThixo/tests/monoMaterials2 run via apps/toolbox/materialTesting.py. A density different from zero has been defined where needed.
NortonHoffHypoMaterial::initPrmat() function, Material::initPrmat() was called instead of MechanicalMaterial::initPrmat(), so that the density was not initialized for these materials. The bug has been corrected and this justifies the large amount of diffs in the tests involving Norton-Hoff materials between the present commit and the previous versions of Metafor.
[a] oo_meta/mtFEM/extractors/InteractionGravityCenterAndMassValueExtractor.h [a] oo_meta/mtFEM/extractors/InteractionGravityCenterAndMassValueExtractor.cpp [m] apps/imp/bounce.py [m] apps/toolbox/materialTesting.py [m] apps/monoMaterials2/EvpAnisoDamageAlvBoneRemod.py [m] apps/monoMaterials2/EvpAnisoDamageBoneRemod.py [m] apps/monoMaterials2/EvpAnisoDamageDummy.py [m] apps/monoMaterials2/EvpAnisoDamageLemaitre.py [m] apps/monoMaterials2/EvpIsoDamageAlvBoneRemod2.py [m] apps/monoMaterials2/EvpIsoDamageBoneRemod.py [m] apps/monoMaterials2/NortonHoff.py [m] mtThixo/tests/monoMaterials2/ThixoEnhanced.py [m] mtThixo/tests/monoMaterials2/ThixoEquivalentNortonHoff.py [m] mtThixo/tests/monoMaterials2/ThixoMicroMacro.py [m] mtThixo/tests/monoMaterials2/ThixoNortonHoff.py