Extend the OGS-MFront interface

Christoph Lehmann requested to merge chleh/ogs:extend-mfront-interface into master


  • Introduced a new class MaterialLib::Solids::MFront::MFrontGeneric, which supports a variable number of input and output data of the material model.

    • MaterialLib/SolidModels/MFront/MFrontGeneric.cpp
    • MaterialLib/SolidModels/MFront/MFrontGeneric.h
  • class MaterialLib::Solids::MFront::MFront is now based on MFrontGeneric. Therefore, much code has been moved away from the files

    • MaterialLib/SolidModels/MFront/MFront.cpp
    • MaterialLib/SolidModels/MFront/MFront.h
    • Note: The interfaces of MFront and MFrontGeneric differ very slightly. In particular, the generic interface cannot implement MechanicsBase<DisplacementDim>, because it's more generic. Therefore, there is still a bit of code in the MFront class.
  • Both classes basically have the same configuration. Therefore, lots of code have been moved:

    • MaterialLib/SolidModels/MFront/CreateMFrontGeneric.cpp
    • MaterialLib/SolidModels/MFront/CreateMFrontGeneric.h
    • MaterialLib/SolidModels/MFront/CreateMFront.cpp
  • Added an example MFront behaviour (by @nagelt, cf. OGS CM talk), currently used in unit tests

    • MaterialLib/SolidModels/MFront/ThermoPoroElasticity.mfront
  • On the OGS side, input data is passed via MaterialPropertyLib::VariableArray. The necessary settings are specified in

    • MaterialLib/SolidModels/MFront/Variable.h
  • Added several unit tests that check the data passing between OGS and MFront. They require additional MFront behaviours that are only used for unit testing.

    • Tests/MaterialLib/CheckParamPassingMFront.cpp
    • Tests/MaterialLib/CheckStiffnessMatrixMFront.cpp
    • Tests/MaterialLib/MFront/CheckParamPassing1.mfront
    • Tests/MaterialLib/MFront/CheckStiffnessMatrixAllBlocks.mfront
    • Tests/MaterialLib/MFront/CheckStiffnessMatrixAllBlocksReordered.mfront
    • Tests/MaterialLib/MFront/CheckStiffnessMatrixExcessBlocks.mfront
    • Tests/MaterialLib/MFront/CheckStiffnessMatrixMissingBlocks.mfront
    • Tests/MaterialLib/ThermoporoelasticityMFront.cpp
Edited by Christoph Lehmann

Merge request reports