Kratos
Kratos copied to clipboard
[GeoMechanicsApplication] Rename some element types in GeoMechanicsApplication
A few weeks ago, Charlie discovered that some of our element names clash with those from the PoroMechanicsApplication. This was his message:
Seems that the problem is that both the GeoMechanicalApplication and the PoromechanicalApplication are trying to register a set of elements with the same name and possible diverging implementation. This is the conflicting list:
"SmallStrainUPwDiffOrderElement2D6N", mSmallStrainUPwDiffOrderElement2D6N )
"SmallStrainUPwDiffOrderElement2D8N", mSmallStrainUPwDiffOrderElement2D8N )
"SmallStrainUPwDiffOrderElement2D9N", mSmallStrainUPwDiffOrderElement2D9N )
"SmallStrainUPwDiffOrderElement3D10N", mSmallStrainUPwDiffOrderElement3D10N )
"SmallStrainUPwDiffOrderElement3D20N", mSmallStrainUPwDiffOrderElement3D20N )
"SmallStrainUPwDiffOrderElement3D27N", mSmallStrainUPwDiffOrderElement3D27N )
Which is both registered in:
applications/PoromechanicsApplication/poromechanics_application.cpp:138
applications/GeoMechanicsApplication/geo_mechanics_application.cpp:113
Pointing to two different classes. This is bad because in this case from the registry point of view it's "First come, first served" so depending on the computer the behaviour could be undefined. I have not debugged exactly at which point the misaligned assignment is made but having a different element from the one you expect I bet its during the LHS/RHS assembly, I can give you the exact line the Poromechanics element if you are interested, but I understand it will be of little help.
As a developer, I would like to address these issues by adding the Geo
prefix to our element names. Probably, the most convenient way is to develop a Python script or a small stand-alone application that carries out this transformation. We can use it to update all of our input files in the test suite. It will also allow us to easily help other users (e.g. Aron) to update their input files.
When the name clashes have been resolved we should be able to enable unit test applications\GeoMechanicsApplication\tests\cpp_tests\test_settlement_workflow.cpp
.