Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add binding model submodule tests to CI #360

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions test/BindingModelAutoJacobian.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ namespace cadet

} // namespace cadet

TEST_CASE("Automatic AD binding model Jacobian vs FD", "[BindingModel],[Jacobian],[CI]")
TEST_CASE("Automatic AD binding model Jacobian vs FD", "[BindingModel],[jojojojo],[Jacobian],[CI]")
{
cadet::BindingWithoutJacobian bm;
const int nComp = 4;
Expand Down Expand Up @@ -140,7 +140,7 @@ TEST_CASE("Automatic AD binding model Jacobian vs FD", "[BindingModel],[Jacobian
);
}

TEST_CASE("Automatic AD disabled for binding model with Jacobian", "[BindingModel],[Jacobian],[CI]")
TEST_CASE("Automatic AD disabled for binding model with Jacobian", "[BindingModel],[jojojojo],[Jacobian],[CI]")
{
cadet::BindingWithJacobian bm;
const int nComp = 4;
Expand All @@ -160,7 +160,7 @@ TEST_CASE("Automatic AD disabled for binding model with Jacobian", "[BindingMode
REQUIRE(bm.workspaceSize(4, totalBoundStates, boundOffset) == 0);
}

TEST_CASE("Full analytic Jacobian vs AD only enabled for binding model for a LRMP with multi-state SMA", "[BindingModel],[Jacobian],[Simulation],[CI]")
TEST_CASE("Full analytic Jacobian vs AD only enabled for binding model for a LRMP with multi-state SMA", "[BindingModel],[jojojojo],[Jacobian],[Simulation],[CI]")
{
nlohmann::json jsonJpp = createLWEJson("LUMPED_RATE_MODEL_WITH_PORES", "FV");

Expand Down
6 changes: 3 additions & 3 deletions test/BindingModelTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ int ConfiguredBindingModel::requiredBufferSize() CADET_NOEXCEPT
return 0;
}

void testJacobianAD(const char* modelName, unsigned int nComp, unsigned int const* nBound, bool isKinetic, const char* config, double const* point, bool skipStructureTest, double absTol, double relTol)
void testJacobianAD(const char* modelName, unsigned int nComp, unsigned int const* nBound, bool isKinetic, const char* config, double const* point, bool skipStructureTest, double FDsignAbsTol, double absTol, double relTol)
{
ConfiguredBindingModel cbm = ConfiguredBindingModel::create(modelName, nComp, nBound, isKinetic, config);

Expand Down Expand Up @@ -229,12 +229,12 @@ void testJacobianAD(const char* modelName, unsigned int nComp, unsigned int cons
cadet::test::checkJacobianPatternFD(
[&](double const* lDir, double* res) -> void { cbm.model().flux(1.0, 0u, ColumnPosition{0.0, 0.0, 0.0}, lDir + cbm.nComp(), lDir, res, cbm.buffer()); },
[&](double const* lDir, double* res) -> void { jacAna.submatrixMultiplyVector(lDir, cbm.nComp(), 0, numEq, numDofs, res); },
yState.data(), dir.data(), colA.data(), colB.data(), numDofs, numEq);
yState.data(), dir.data(), colA.data(), colB.data(), numDofs, numEq, FDsignAbsTol);

cadet::test::checkJacobianPatternFD(
[&](double const* lDir, double* res) -> void { cbm.model().flux(1.0, 0u, ColumnPosition{0.0, 0.0, 0.0}, lDir + cbm.nComp(), lDir, res, cbm.buffer()); },
[&](double const* lDir, double* res) -> void { jacAD.multiplyVector(lDir, res); },
yState.data(), dir.data(), colA.data(), colB.data(), numDofs, numEq);
yState.data(), dir.data(), colA.data(), colB.data(), numDofs, numEq, FDsignAbsTol);
}

// Check Jacobians against each other
Expand Down
3 changes: 2 additions & 1 deletion test/BindingModelTests.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -130,10 +130,11 @@ namespace binding
* @param [in] config JSON string with binding model parameters
* @param [in] point Liquid phase and solid phase values to check Jacobian at
* @param [in] skipStructureTest Determines whether the structural test using finite differences is skipped
* @param [in] FDsignAbsTol Absolute tolerance in FD pattern sign check
* @param [in] absTol Absolute error tolerance
* @param [in] relTol Relative error tolerance
*/
void testJacobianAD(const char* modelName, unsigned int nComp, unsigned int const* nBound, bool isKinetic, const char* config, double const* point, bool skipStructureTest = false, double absTol = 0.0, double relTol = std::numeric_limits<float>::epsilon() * 100.0);
void testJacobianAD(const char* modelName, unsigned int nComp, unsigned int const* nBound, bool isKinetic, const char* config, double const* point, bool skipStructureTest = false, double FDsignAbsTol = 0.0, double absTol = 0.0, double relTol = std::numeric_limits<float>::epsilon() * 100.0);

/**
* @brief Checks residual and analytic Jacobian of normal model variant against externally dependent ones
Expand Down
29 changes: 15 additions & 14 deletions test/BindingModels.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ CADET_BINDINGTEST("MOBILE_PHASE_MODULATOR", "EXT_MOBILE_PHASE_MODULATOR", (1,1,1
"EXT_MPM_BETA_T": [0.0, 1.5, 2.0],
"EXT_MPM_BETA_TT": [0.0, 0.0, 0.0],
"EXT_MPM_BETA_TTT": [0.0, 0.0, 0.0],
"EXT_MPM_LINEAR_THRESHOLD": 1e-10
"MPM_LINEAR_THRESHOLD": 1e-10
)json", \
R"json( "EXT_MPM_KA": [0.0, 0.0, 0.0, 0.0],
"EXT_MPM_KA_T": [0.0, 1.14, 1.0, 2.0],
Expand All @@ -295,7 +295,7 @@ CADET_BINDINGTEST("MOBILE_PHASE_MODULATOR", "EXT_MOBILE_PHASE_MODULATOR", (1,1,1
"EXT_MPM_BETA_T": [0.0, 1.5, 0.0, 2.0],
"EXT_MPM_BETA_TT": [0.0, 0.0, 0.0, 0.0],
"EXT_MPM_BETA_TTT": [0.0, 0.0, 0.0, 0.0],
"EXT_MPM_LINEAR_THRESHOLD": 1e-10
"MPM_LINEAR_THRESHOLD": 1e-10
)json", \
1e-10, 1e-10, CADET_NONBINDING_LIQUIDPHASE_COMP_UNUSED, CADET_COMPARE_BINDING_VS_NONBINDING)

Expand Down Expand Up @@ -334,7 +334,7 @@ CADET_BINDINGTEST("MOBILE_PHASE_MODULATOR", "EXT_MOBILE_PHASE_MODULATOR", (1,1,1
"EXT_MPM_BETA_T": [0.0, 1.5, 2.0],
"EXT_MPM_BETA_TT": [0.0, 0.0, 0.0],
"EXT_MPM_BETA_TTT": [0.0, 0.0, 0.0],
"EXT_MPM_LINEAR_THRESHOLD": 1e-10
"MPM_LINEAR_THRESHOLD": 1e-10
)json", \
R"json( "EXT_MPM_KA": [0.0, 0.0, 0.0, 0.0],
"EXT_MPM_KA_T": [0.0, 1.14, 1.0, 2.0],
Expand All @@ -356,7 +356,7 @@ CADET_BINDINGTEST("MOBILE_PHASE_MODULATOR", "EXT_MOBILE_PHASE_MODULATOR", (1,1,1
"EXT_MPM_BETA_T": [0.0, 1.5, 0.0, 2.0],
"EXT_MPM_BETA_TT": [0.0, 0.0, 0.0, 0.0],
"EXT_MPM_BETA_TTT": [0.0, 0.0, 0.0, 0.0],
"EXT_MPM_LINEAR_THRESHOLD": 1e-10
"MPM_LINEAR_THRESHOLD": 1e-10
)json", \
1e-10, 1e-10, CADET_NONBINDING_LIQUIDPHASE_COMP_UNUSED, CADET_COMPARE_BINDING_VS_NONBINDING)

Expand Down Expand Up @@ -1002,7 +1002,7 @@ CADET_BINDINGTEST("MULTI_COMPONENT_LDF_FREUNDLICH", "EXT_MULTI_COMPONENT_LDF_FRE
"EXT_MCLDFFRL_A_T": [3.0, 2.2, 1.5, 0.5],
"EXT_MCLDFFRL_A_TT": [0.0, 0.0, 0.0, 0.0],
"EXT_MCLDFFRL_A_TTT": [0.0, 0.0, 0.0, 0.0],
"EXT_MCLDFFRL_TAU": 0.1
"MCLDFFRL_TAU": 0.1
)json", \
R"json( "EXT_MCLDFFRL_KLDF": [0.0, 0.0, 0.0],
"EXT_MCLDFFRL_KLDF_T": [1.14, 1.0, 2.0],
Expand All @@ -1020,7 +1020,7 @@ CADET_BINDINGTEST("MULTI_COMPONENT_LDF_FREUNDLICH", "EXT_MULTI_COMPONENT_LDF_FRE
"EXT_MCLDFFRL_A_T": [2.2, 1.1, 0.4, 0.1, 0.94, 2.8, 0.5, 1.2, 2.4],
"EXT_MCLDFFRL_A_TT": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
"EXT_MCLDFFRL_A_TTT": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
"EXT_MCLDFFRL_TAU": 0.1
"MCLDFFRL_TAU": 0.1
)json", \
1e-10, 1e-10, CADET_NONBINDING_LIQUIDPHASE_COMP_USED, CADET_DONT_COMPARE_BINDING_VS_NONBINDING)

Expand Down Expand Up @@ -1059,7 +1059,7 @@ CADET_BINDINGTEST("MULTI_COMPONENT_SIPS", "EXT_MULTI_COMPONENT_SIPS", (1, 1, 1,
"EXT_SIPS_EXP_TTT": [0.0, 0.0, 0.0, 0.0],
"EXT_SIPS_REFC0": 2.0,
"EXT_SIPS_REFQ": 1.1,
"EXT_SIPS_LINEAR_THRESHOLD": 1e-10
"SIPS_LINEAR_THRESHOLD": 1e-10
)json", \
R"json( "EXT_SIPS_KA": [0.0, 0.0, 0.0, 0.0, 0.0],
"EXT_SIPS_KA_T": [1.14, 1.0, 2.0, 1.14, 2.0],
Expand All @@ -1079,7 +1079,7 @@ CADET_BINDINGTEST("MULTI_COMPONENT_SIPS", "EXT_MULTI_COMPONENT_SIPS", (1, 1, 1,
"EXT_SIPS_EXP_TTT": [0.0, 0.0, 0.0, 0.0, 0.0],
"EXT_SIPS_REFC0": 2.0,
"EXT_SIPS_REFQ": 1.1,
"EXT_SIPS_LINEAR_THRESHOLD": 1e-10
"SIPS_LINEAR_THRESHOLD": 1e-10
)json", \
1e-10, 1e-10, CADET_NONBINDING_LIQUIDPHASE_COMP_UNUSED, CADET_COMPARE_BINDING_VS_NONBINDING)

Expand Down Expand Up @@ -1421,7 +1421,7 @@ CADET_BINDINGTEST("GENERALIZED_ION_EXCHANGE", "EXT_GENERALIZED_ION_EXCHANGE", (1
)json", \
1e-10, 1e-8, CADET_NONBINDING_LIQUIDPHASE_COMP_USED, CADET_COMPARE_BINDING_VS_NONBINDING)

TEST_CASE("MULTI_COMPONENT_COLLOIDAL binding model analytic Jacobian vs AD with PH single protein", "[Jacobian],[AD],[BindingModel],[MULTI_COMPONENT_COLLOIDAL]")
TEST_CASE("MULTI_COMPONENT_COLLOIDAL binding model analytic Jacobian vs AD with PH single protein", "[Jacobian],[AD],[BindingModel],[jojojojo],[MULTI_COMPONENT_COLLOIDAL]")
{
const unsigned int nBound[] = { 0, 0, 1 };
const double state[] = { 0.9, 1.1, 1.5e-2, 3.2e-2 };
Expand Down Expand Up @@ -1457,10 +1457,11 @@ CADET_BINDINGTEST("GENERALIZED_ION_EXCHANGE", "EXT_GENERALIZED_ION_EXCHANGE", (1
}


TEST_CASE("MULTI_COMPONENT_COLLOIDAL binding model analytic Jacobian vs AD with PH multi protein", "[Jacobian],[AD],[BindingModel],[MULTI_COMPONENT_COLLOIDAL]")
TEST_CASE("MULTI_COMPONENT_COLLOIDAL binding model analytic Jacobian vs AD with PH multi protein", "[Jacobian],[AD],[BindingModel],[jojojojo],[MULTI_COMPONENT_COLLOIDAL]")
{
const unsigned int nBound[] = { 0, 0, 1, 1, 1};
const double state[] = { 0.9, 1.1, 1.5e-2, 3.2e-3, 1.5e-5, 3.2e-5, 1.5e-5, 3.2e-5 };
double FDsignAbsTol = 1e-10; // specific tolerance for this test, non-default value
char const* const config = R"json({
"COL_PHI": 49232983.6522396,
"COL_KAPPA_EXP": 1.8,
Expand All @@ -1487,12 +1488,12 @@ CADET_BINDINGTEST("GENERALIZED_ION_EXCHANGE", "EXT_GENERALIZED_ION_EXCHANGE", (1
const bool isKinetic = bindMode;
SECTION(std::string("Binding mode ") + (isKinetic ? "dynamic" : "quasi-stationary"))
{
cadet::test::binding::testJacobianAD("MULTI_COMPONENT_COLLOIDAL", sizeof(nBound) / sizeof(unsigned int), nBound, isKinetic, config, state);
cadet::test::binding::testJacobianAD("MULTI_COMPONENT_COLLOIDAL", sizeof(nBound) / sizeof(unsigned int), nBound, isKinetic, config, state, FDsignAbsTol);
}
}
}

TEST_CASE("MULTI_COMPONENT_COLLOIDAL binding model analytic Jacobian vs AD without PH", "[Jacobian],[AD],[BindingModel],[MULTI_COMPONENT_COLLOIDAL]")
TEST_CASE("MULTI_COMPONENT_COLLOIDAL binding model analytic Jacobian vs AD without PH", "[Jacobian],[AD],[BindingModel],[jojojojo],[MULTI_COMPONENT_COLLOIDAL]")
{
const unsigned int nBound[] = {0, 1, 1, 1};
const double state[] = {0.9, 1.1e-1, 3.2e-3, 1e-2, 2e-3, 1e-4, 1e-3};
Expand Down Expand Up @@ -1527,7 +1528,7 @@ TEST_CASE("MULTI_COMPONENT_COLLOIDAL binding model analytic Jacobian vs AD witho
}
}

TEST_CASE("MULTI_COMPONENT_COLLOIDAL binding model analytic Jacobian vs AD with PH low conc", "[Jacobian],[AD],[BindingModel],[MULTI_COMPONENT_COLLOIDAL]")
TEST_CASE("MULTI_COMPONENT_COLLOIDAL binding model analytic Jacobian vs AD with PH low conc", "[Jacobian],[AD],[BindingModel],[jojojojo],[MULTI_COMPONENT_COLLOIDAL]")
{
const unsigned int nBound[] = {0, 0, 1, 1, 1};
const double state[] = {0.9, 1.1, 1.5, 2.3, 2.9, 1e-7, 2e-7, 5e-7};
Expand Down Expand Up @@ -1562,7 +1563,7 @@ TEST_CASE("MULTI_COMPONENT_COLLOIDAL binding model analytic Jacobian vs AD with
}
}

TEST_CASE("MULTI_COMPONENT_COLLOIDAL binding model analytic Jacobian vs AD without PH low conc", "[Jacobian],[AD],[BindingModel],[MULTI_COMPONENT_COLLOIDAL]")
TEST_CASE("MULTI_COMPONENT_COLLOIDAL binding model analytic Jacobian vs AD without PH low conc", "[Jacobian],[AD],[BindingModel],[jojojojo],[MULTI_COMPONENT_COLLOIDAL]")
{
const unsigned int nBound[] = {0, 1, 1, 1};
const double state[] = {0.9, 1.1, 2.3, 2.9, 1e-7, 2e-7, 5e-7};
Expand Down
12 changes: 6 additions & 6 deletions test/BindingModels.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
#define CADET_BINDINGTEST_SINGLE_IMPL_NONBNDJACCONST_false(modelName, tagName, postFix, someNonBinding, stateSomeNon, configSomeNon)

#define CADET_BINDINGTEST_SINGLE_IMPL_NONBNDJACCONST_true(modelName, tagName, postFix, someNonBinding, stateSomeNon, configSomeNon) \
TEST_CASE(modelName " binding model consistency of non-binding Jacobian columns" postFix, "[BindingModel],[Jacobian]," tagName) \
TEST_CASE(modelName " binding model consistency of non-binding Jacobian columns" postFix, "[BindingModel],[jojojojo],[CI],[Jacobian]," tagName) \
{ \
const unsigned int nBound3[] = BRACED_INIT_LIST someNonBinding; \
const double state3[] = BRACED_INIT_LIST stateSomeNon; \
Expand Down Expand Up @@ -68,7 +68,7 @@
#define CADET_BINDINGTEST_SINGLE_IMPL_BNDVSNONBND_false(modelName, tagName, postFix, allBinding, someNonBinding, stateAll, stateSomeNon, configAll, configSomeNon)

#define CADET_BINDINGTEST_SINGLE_IMPL_BNDVSNONBND_true(modelName, tagName, postFix, allBinding, someNonBinding, stateAll, stateSomeNon, configAll, configSomeNon) \
TEST_CASE(modelName " binding model consistency of non-binding vs binding" postFix, "[BindingModel],[Jacobian]," tagName) \
TEST_CASE(modelName " binding model consistency of non-binding vs binding" postFix, "[BindingModel],[jojojojo],[CI],[Jacobian]," tagName) \
{ \
const unsigned int nBound2[] = BRACED_INIT_LIST allBinding; \
const unsigned int nBound3[] = BRACED_INIT_LIST someNonBinding; \
Expand Down Expand Up @@ -115,7 +115,7 @@
* @param cmpBndVsNonbnd Determines whether a test for all-binding vs non-binding variant (Jacobian and residual) is created
*/
#define CADET_BINDINGTEST_SINGLE_IMPL(modelName, tagName, postFix, allBinding, someNonBinding, stateAll, stateSomeNon, configAll, configSomeNon, consInitTol, consInitCheckTol, usesNonBindingLiquidPhase, cmpBndVsNonbnd) \
TEST_CASE(modelName " binding model analytic Jacobian vs AD" postFix, "[Jacobian],[AD],[BindingModel]," tagName) \
TEST_CASE(modelName " binding model analytic Jacobian vs AD" postFix, "[Jacobian],[AD],[BindingModel],[jojojojo],[CI]," tagName) \
{ \
const unsigned int nBound2[] = BRACED_INIT_LIST allBinding; \
const unsigned int nBound3[] = BRACED_INIT_LIST someNonBinding; \
Expand Down Expand Up @@ -180,7 +180,7 @@
#define CADET_BINDINGTEST_MULTI(modelName, extModelName, postFix, allBinding, someNonBinding, stateAll, stateSomeNon, configAll, configSomeNon, extConfigAll, extConfigSomeNon, consInitTol, consInitCheckTol, usesNonBindingLiquidPhase, cmpBndVsNonbnd) \
CADET_BINDINGTEST_SINGLE_IMPL(modelName, "[" modelName "]", postFix, allBinding, someNonBinding, stateAll, stateSomeNon, configAll, configSomeNon, consInitTol, consInitCheckTol, usesNonBindingLiquidPhase, cmpBndVsNonbnd) \
CADET_BINDINGTEST_SINGLE_IMPL(extModelName, "[ExternalFunction],[" extModelName "]", postFix, allBinding, someNonBinding, stateAll, stateSomeNon, extConfigAll, extConfigSomeNon, consInitTol, consInitCheckTol, usesNonBindingLiquidPhase, cmpBndVsNonbnd) \
TEST_CASE(modelName " binding model consistent with externally dependent variant" postFix, "[BindingModel],[ExternalFunction],[" modelName "],[" extModelName "]") \
TEST_CASE(modelName " binding model consistent with externally dependent variant" postFix, "[BindingModel],[jojojojo],[CI],[ExternalFunction],[" modelName "],[" extModelName "]") \
{ \
const unsigned int nBound2[] = BRACED_INIT_LIST allBinding; \
const unsigned int nBound3[] = BRACED_INIT_LIST someNonBinding; \
Expand Down Expand Up @@ -235,7 +235,7 @@
* @param consInitCheckTol Error tolerance for residual check in consistent initialization
*/
#define CADET_BINDINGTEST_ALLBINDING_SINGLE_IMPL(modelName, tagName, allBinding, stateAll, configAll, consInitTol, consInitCheckTol) \
TEST_CASE(modelName " binding model analytic Jacobian vs AD", "[Jacobian],[AD],[BindingModel]," tagName) \
TEST_CASE(modelName " binding model analytic Jacobian vs AD", "[Jacobian],[AD],[BindingModel],[jojojojo],[CI]," tagName) \
{ \
const unsigned int nBound2[] = BRACED_INIT_LIST allBinding; \
const double state2[] = BRACED_INIT_LIST stateAll; \
Expand Down Expand Up @@ -277,7 +277,7 @@
#define CADET_BINDINGTEST_ALLBINDING(modelName, extModelName, allBinding, stateAll, configAll, extConfigAll, consInitTol, consInitCheckTol) \
CADET_BINDINGTEST_ALLBINDING_SINGLE_IMPL(modelName, "[" modelName "]", allBinding, stateAll, configAll, consInitTol, consInitCheckTol) \
CADET_BINDINGTEST_ALLBINDING_SINGLE_IMPL(extModelName, "[ExternalFunction],[" extModelName "]", allBinding, stateAll, extConfigAll, consInitTol, consInitCheckTol) \
TEST_CASE(modelName " binding model consistent with externally dependent variant", "[BindingModel],[ExternalFunction],[" modelName "],[" extModelName "]") \
TEST_CASE(modelName " binding model consistent with externally dependent variant", "[BindingModel],[jojojojo],[CI],[ExternalFunction],[" modelName "],[" extModelName "]") \
{ \
const unsigned int nBound2[] = BRACED_INIT_LIST allBinding; \
const double state2[] = BRACED_INIT_LIST stateAll; \
Expand Down
2 changes: 2 additions & 0 deletions test/ColumnTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1636,6 +1636,8 @@ namespace column
{
const int unitOpID = std::stoi(unitID);

cadet::ad::setDirections(cadet::ad::getMaxDirections());// AD directions needed in configure but requiredADdirs not known before configureModelDiscretization (which is called in configure)

// read json model setup file
const std::string setupFile = std::string(getTestDirectory()) + modelFileRelPath;
JsonParameterProvider pp_setup(JsonParameterProvider::fromFile(setupFile));
Expand Down
2 changes: 1 addition & 1 deletion test/LumpedRateModelWithPoresDG.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ TEST_CASE("LRMP_DG non-binding linear pulse vs analytic solution", "[LRMP],[DG],
// }
//}

TEST_CASE("LRMP_DG numerical Benchmark with parameter sensitivities for linear case", "[LRMP],[DG],[DG1D],[Simulation],[Reference],[Sensitivity],[CI]")
TEST_CASE("LRMP_DG numerical Benchmark with parameter sensitivities for linear case", "[LRMP],[DG],[DG1D],[Simulation],[Reference],[Sensitivity],[CI],[jojojojo]")
{
const std::string& modelFilePath = std::string("/data/model_LRMP_dynLin_1comp_benchmark1.json");
const std::string& refFilePath = std::string("/data/ref_LRMP_dynLin_1comp_sensbenchmark1_DG_P3Z8.h5");
Expand Down
Loading