diff --git a/MaterialLib/MPL/Properties/AverageMolarMass.cpp b/MaterialLib/MPL/Properties/AverageMolarMass.cpp
index 4af19eb5c431e1b302b26bac31caa71ac1c83909..6d386df1b04093b679f131490360fd6f415cbfa2 100644
--- a/MaterialLib/MPL/Properties/AverageMolarMass.cpp
+++ b/MaterialLib/MPL/Properties/AverageMolarMass.cpp
@@ -87,11 +87,13 @@ PropertyDataType AverageMolarMass::dValue(
     ParameterLib::SpatialPosition const& pos, double const t,
     double const dt) const
 {
-    (void)primary_variable;
-    assert(((primary_variable == Variable::phase_pressure) ||
-            (primary_variable == Variable::temperature)) &&
-           "AverageMolarMass::dValue is implemented for derivatives with "
-           "respect to phase_pressure or temperature only.");
+    if ((primary_variable != Variable::phase_pressure) &&
+        (primary_variable != Variable::temperature))
+    {
+        OGS_FATAL(
+            "AverageMolarMass::dValue is implemented for derivatives with "
+            "respect to phase_pressure or temperature only.");
+    }
 
     auto phase = std::get<Phase*>(scale_);
 
@@ -103,7 +105,7 @@ PropertyDataType AverageMolarMass::dValue(
     else if (numberOfComponents > 2)
     {
         OGS_FATAL(
-            "AverageMolarMass::dvalue is currently implemented two or less "
+            "AverageMolarMass::dValue is currently implemented two or less "
             "phase components only.");
     }
 
diff --git a/MaterialLib/MPL/Properties/BishopsPowerLaw.cpp b/MaterialLib/MPL/Properties/BishopsPowerLaw.cpp
index 68f057f2fcde1d399c92573d3b8f415da1c3f2a8..af728228ee9c7579c6a92929d41daefa76a9270a 100644
--- a/MaterialLib/MPL/Properties/BishopsPowerLaw.cpp
+++ b/MaterialLib/MPL/Properties/BishopsPowerLaw.cpp
@@ -43,10 +43,12 @@ PropertyDataType BishopsPowerLaw::dValue(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)variable;
-    assert((variable == Variable::liquid_saturation) &&
-           "BishopsPowerLaw::dvalue is implemented for derivatives with "
-           "respect to liquid saturation only.");
+    if (variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "BishopsPowerLaw::dValue is implemented for derivatives with "
+            "respect to liquid saturation only.");
+    }
 
     auto const S_L = std::get<double>(
         variable_array[static_cast<int>(Variable::liquid_saturation)]);
diff --git a/MaterialLib/MPL/Properties/BishopsSaturationCutoff.cpp b/MaterialLib/MPL/Properties/BishopsSaturationCutoff.cpp
index 9b3702ccff2a2a5faeb4b5f1454e0b16e6a06c60..da8095513e5ecc1cd1ea91aa82c404fb70d10843 100644
--- a/MaterialLib/MPL/Properties/BishopsSaturationCutoff.cpp
+++ b/MaterialLib/MPL/Properties/BishopsSaturationCutoff.cpp
@@ -44,11 +44,12 @@ PropertyDataType BishopsSaturationCutoff::dValue(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)variable;
-    assert(
-        (variable == Variable::liquid_saturation) &&
-        "BishopsSaturationCutoff::dvalue is implemented for derivatives with "
-        "respect to liquid saturation only.");
+    if (variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "BishopsSaturationCutoff::dValue is implemented for derivatives "
+            "with respect to liquid saturation only.");
+    }
 
     return 0.;
 }
diff --git a/MaterialLib/MPL/Properties/CapillaryPressureSaturation/CapillaryPressureRegularizedVanGenuchten.cpp b/MaterialLib/MPL/Properties/CapillaryPressureSaturation/CapillaryPressureRegularizedVanGenuchten.cpp
index e594193ede867b60e7fc004edac87a14bafb1198..c9fe74645713a8d800ece9b5baa7e90184d3712f 100644
--- a/MaterialLib/MPL/Properties/CapillaryPressureSaturation/CapillaryPressureRegularizedVanGenuchten.cpp
+++ b/MaterialLib/MPL/Properties/CapillaryPressureSaturation/CapillaryPressureRegularizedVanGenuchten.cpp
@@ -73,10 +73,12 @@ PropertyDataType CapillaryPressureRegularizedVanGenuchten::dValue(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)primary_variable;
-    assert((primary_variable == Variable::liquid_saturation) &&
-           "CapillaryPressureRegularizedVanGenuchten::dValue is implemented "
-           "for derivatives with respect to liquid saturation only.");
+    if (primary_variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "CapillaryPressureRegularizedVanGenuchten::dValue is implemented "
+            "for derivatives with respect to liquid saturation only.");
+    }
 
     const double Sl = std::get<double>(
         variable_array[static_cast<int>(Variable::liquid_saturation)]);
diff --git a/MaterialLib/MPL/Properties/CapillaryPressureSaturation/CapillaryPressureVanGenuchten.cpp b/MaterialLib/MPL/Properties/CapillaryPressureSaturation/CapillaryPressureVanGenuchten.cpp
index abbb155f408b1124a409f5ca98397a87b7fb31da..77f0a5901a8fd187e9bb814c19cd132ab3f41c97 100644
--- a/MaterialLib/MPL/Properties/CapillaryPressureSaturation/CapillaryPressureVanGenuchten.cpp
+++ b/MaterialLib/MPL/Properties/CapillaryPressureSaturation/CapillaryPressureVanGenuchten.cpp
@@ -112,10 +112,12 @@ PropertyDataType CapillaryPressureVanGenuchten::dValue(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)primary_variable;
-    assert((primary_variable == Variable::liquid_saturation) &&
-           "CapillaryPressureVanGenuchten::dValue is implemented for "
-           "derivatives with respect to liquid saturation only.");
+    if (primary_variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "CapillaryPressureVanGenuchten::dValue is implemented for "
+            "derivatives with respect to liquid saturation only.");
+    }
 
     double const S_L = std::get<double>(
         variable_array[static_cast<int>(Variable::liquid_saturation)]);
diff --git a/MaterialLib/MPL/Properties/CapillaryPressureSaturation/SaturationBrooksCorey.cpp b/MaterialLib/MPL/Properties/CapillaryPressureSaturation/SaturationBrooksCorey.cpp
index 555d735b1710c78911e8660d2dcc0aed8c741142..5a2bbf997ea791b8d4823980a8751dcbdd6f1a3e 100644
--- a/MaterialLib/MPL/Properties/CapillaryPressureSaturation/SaturationBrooksCorey.cpp
+++ b/MaterialLib/MPL/Properties/CapillaryPressureSaturation/SaturationBrooksCorey.cpp
@@ -61,10 +61,12 @@ PropertyDataType SaturationBrooksCorey::dValue(
     ParameterLib::SpatialPosition const& pos, double const t,
     double const dt) const
 {
-    (void)primary_variable;
-    assert((primary_variable == Variable::capillary_pressure) &&
-           "SaturationBrooksCorey::dValue is implemented for "
-           " derivatives with respect to capillary pressure only.");
+    if (primary_variable != Variable::capillary_pressure)
+    {
+        OGS_FATAL(
+            "SaturationBrooksCorey::dValue is implemented for derivatives with "
+            "respect to capillary pressure only.");
+    }
 
     const double s_L_res = residual_liquid_saturation_;
     const double s_L_max = 1.0 - residual_gas_saturation_;
@@ -93,12 +95,13 @@ PropertyDataType SaturationBrooksCorey::d2Value(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)primary_variable1;
-    (void)primary_variable2;
-    assert((primary_variable1 == Variable::capillary_pressure) &&
-           (primary_variable2 == Variable::capillary_pressure) &&
-           "SaturationBrooksCorey::d2Value is implemented for "
-           " derivatives with respect to capillary pressure only.");
+    if ((primary_variable1 != Variable::capillary_pressure) &&
+        (primary_variable2 != Variable::capillary_pressure))
+    {
+        OGS_FATAL(
+            "SaturationBrooksCorey::d2Value is implemented for derivatives "
+            "with respect to capillary pressure only.");
+    }
 
     const double p_b = entry_pressure_;
     const double p_cap = std::max(
diff --git a/MaterialLib/MPL/Properties/CapillaryPressureSaturation/SaturationLiakopoulos.cpp b/MaterialLib/MPL/Properties/CapillaryPressureSaturation/SaturationLiakopoulos.cpp
index d8d0069aacb1f80daf4cf7517c2866ed8b2d312f..c4faca877be74b977acfdf63f4abf9b2071bf23c 100644
--- a/MaterialLib/MPL/Properties/CapillaryPressureSaturation/SaturationLiakopoulos.cpp
+++ b/MaterialLib/MPL/Properties/CapillaryPressureSaturation/SaturationLiakopoulos.cpp
@@ -42,10 +42,12 @@ PropertyDataType SaturationLiakopoulos::dValue(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)primary_variable;
-    assert((primary_variable == Variable::capillary_pressure) &&
-           "SaturationLiakopoulos::dvalue is implemented for  derivatives with "
-           "respect to capillary pressure only.");
+    if (primary_variable != Variable::capillary_pressure)
+    {
+        OGS_FATAL(
+            "SaturationLiakopoulos::dValue is implemented for derivatives with "
+            "respect to capillary pressure only.");
+    }
 
     const double p_cap = std::get<double>(
         variable_array[static_cast<int>(Variable::capillary_pressure)]);
@@ -65,12 +67,13 @@ PropertyDataType SaturationLiakopoulos::d2Value(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)primary_variable1;
-    (void)primary_variable2;
-    assert((primary_variable1 == Variable::capillary_pressure) &&
-           (primary_variable2 == Variable::capillary_pressure) &&
-           "SaturationLiakopoulos::ddvalue is implemented for  derivatives "
-           "with respect to capillary pressure only.");
+    if ((primary_variable1 != Variable::capillary_pressure) &&
+        (primary_variable2 != Variable::capillary_pressure))
+    {
+        OGS_FATAL(
+            "SaturationLiakopoulos::d2Value is implemented for derivatives "
+            "with respect to capillary pressure only.");
+    }
 
     const double p_cap = std::get<double>(
         variable_array[static_cast<int>(Variable::capillary_pressure)]);
diff --git a/MaterialLib/MPL/Properties/CapillaryPressureSaturation/SaturationVanGenuchten.cpp b/MaterialLib/MPL/Properties/CapillaryPressureSaturation/SaturationVanGenuchten.cpp
index 9e8154c2db020df454ce020a72fc40be23c8c449..75021cb71f93d81506cc21f68b10b38352f058ae 100644
--- a/MaterialLib/MPL/Properties/CapillaryPressureSaturation/SaturationVanGenuchten.cpp
+++ b/MaterialLib/MPL/Properties/CapillaryPressureSaturation/SaturationVanGenuchten.cpp
@@ -66,10 +66,12 @@ PropertyDataType SaturationVanGenuchten::dValue(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)primary_variable;
-    assert((primary_variable == Variable::capillary_pressure) &&
-           "SaturationVanGenuchten::dvalue is implemented for derivatives with "
-           "respect to capillary pressure only.");
+    if (primary_variable != Variable::capillary_pressure)
+    {
+        OGS_FATAL(
+            "SaturationVanGenuchten::dValue is implemented for derivatives "
+            "with respect to capillary pressure only.");
+    }
 
     const double p_cap = std::get<double>(
         variable_array[static_cast<int>(Variable::capillary_pressure)]);
diff --git a/MaterialLib/MPL/Properties/Density/WaterVapourDensity.cpp b/MaterialLib/MPL/Properties/Density/WaterVapourDensity.cpp
index 2246f00db708a443d8df482679eeed16446514dc..461062b30f810d0ed34f16523596ce4beabb8fbb 100644
--- a/MaterialLib/MPL/Properties/Density/WaterVapourDensity.cpp
+++ b/MaterialLib/MPL/Properties/Density/WaterVapourDensity.cpp
@@ -90,7 +90,7 @@ PropertyDataType WaterVapourDensity::dValue(
     }
 
     OGS_FATAL(
-        "WaterVapourDensity::dvalue is implemented for derivatives with "
+        "WaterVapourDensity::dValue is implemented for derivatives with "
         "respect to temperature or phase_pressure only.");
 }
 
diff --git a/MaterialLib/MPL/Properties/EmbeddedFracturePermeability.cpp b/MaterialLib/MPL/Properties/EmbeddedFracturePermeability.cpp
index 8c01cb4ec6c4d01884a6fc478ce4985a19763f86..bc25b0772f9c271c98b3367917e6a55b4c0ac333 100644
--- a/MaterialLib/MPL/Properties/EmbeddedFracturePermeability.cpp
+++ b/MaterialLib/MPL/Properties/EmbeddedFracturePermeability.cpp
@@ -83,10 +83,12 @@ PropertyDataType EmbeddedFracturePermeability<DisplacementDim>::dValue(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)primary_variable;
-    assert((primary_variable == Variable::mechanical_strain) &&
-           "EmbeddedFracturePermeability::dValue is implemented for "
-           "derivatives with respect to strain only.");
+    if (primary_variable != Variable::mechanical_strain)
+    {
+        OGS_FATAL(
+            "EmbeddedFracturePermeability::dValue is implemented for "
+            "derivatives with respect to strain only.");
+    }
 
     Eigen::Matrix<double, 3, 1> const n = [&] {
         if (_n_const)
diff --git a/MaterialLib/MPL/Properties/OrthotropicEmbeddedFracturePermeability.cpp b/MaterialLib/MPL/Properties/OrthotropicEmbeddedFracturePermeability.cpp
index f2c9c7392aead9191ef4236f63594a977b8f2837..c999a9e97eaa50bdb426171aefaf61cd32055540 100644
--- a/MaterialLib/MPL/Properties/OrthotropicEmbeddedFracturePermeability.cpp
+++ b/MaterialLib/MPL/Properties/OrthotropicEmbeddedFracturePermeability.cpp
@@ -88,10 +88,12 @@ OrthotropicEmbeddedFracturePermeability<DisplacementDim>::dValue(
     ParameterLib::SpatialPosition const& pos, double const t,
     double const /*dt*/) const
 {
-    (void)primary_variable;
-    assert((primary_variable == Variable::mechanical_strain) &&
-           "OrthotropicEmbeddedFracturePermeability::dValue is implemented for "
-           " derivatives with respect to strain only.");
+    if (primary_variable != Variable::mechanical_strain)
+    {
+        OGS_FATAL(
+            "OrthotropicEmbeddedFracturePermeability::dValue is implemented "
+            "for derivatives with respect to strain only.");
+    }
 
     auto const eps = formEigenTensor<3>(std::get<SymmetricTensor>(
         variable_array[static_cast<int>(Variable::mechanical_strain)]));
diff --git a/MaterialLib/MPL/Properties/PermeabilityOrthotropicPowerLaw.cpp b/MaterialLib/MPL/Properties/PermeabilityOrthotropicPowerLaw.cpp
index 4affdb393cd59dc75bc0d0d768c2ae6229461123..04fe43dda643287a9f260bd354ccf84b354a3ac7 100644
--- a/MaterialLib/MPL/Properties/PermeabilityOrthotropicPowerLaw.cpp
+++ b/MaterialLib/MPL/Properties/PermeabilityOrthotropicPowerLaw.cpp
@@ -91,10 +91,12 @@ PropertyDataType PermeabilityOrthotropicPowerLaw<DisplacementDim>::dValue(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)primary_variable;
-    assert((primary_variable == Variable::total_strain) &&
-           "PermeabilityOrthotropicPowerLaw::dValue is implemented for  "
-           "derivatives with respect to total strain only.");
+    if (primary_variable != Variable::total_strain)
+    {
+        OGS_FATAL(
+            "PermeabilityOrthotropicPowerLaw::dValue is implemented for "
+            "derivatives with respect to total strain only.");
+    }
 
     return 0.;
 }
diff --git a/MaterialLib/MPL/Properties/RelativePermeability/RelPermBrooksCorey.cpp b/MaterialLib/MPL/Properties/RelativePermeability/RelPermBrooksCorey.cpp
index 49b3a9f4824e439ed4daba9d7ee74484f3912cf0..02b9957f980c6eff34d21f3dc7d87961da651769 100644
--- a/MaterialLib/MPL/Properties/RelativePermeability/RelPermBrooksCorey.cpp
+++ b/MaterialLib/MPL/Properties/RelativePermeability/RelPermBrooksCorey.cpp
@@ -77,10 +77,13 @@ PropertyDataType RelPermBrooksCorey::dValue(
     ParameterLib::SpatialPosition const& pos, double const t,
     double const dt) const
 {
-    (void)variable;
-    assert((variable == Variable::liquid_saturation) &&
-           "RelPermBrooksCorey::dValue is implemented for "
-           " derivatives with respect to liquid saturation only.");
+    if (variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "RelPermBrooksCorey::dValue is implemented for derivatives with "
+            "respect to liquid saturation only.");
+    }
+
     /// here, an extra computation of saturation is forced, guaranteeing a
     /// correct value. In order to speed up the computing time, saturation could
     /// be inserted into the primary variable array after it is computed in the
diff --git a/MaterialLib/MPL/Properties/RelativePermeability/RelPermBrooksCoreyNonwettingPhase.cpp b/MaterialLib/MPL/Properties/RelativePermeability/RelPermBrooksCoreyNonwettingPhase.cpp
index fb7309ddc5f55e1dc6258a72f7207a0e6f01697a..4e07916b9b6290258c1506f1d83e6efeedafb2cb 100644
--- a/MaterialLib/MPL/Properties/RelativePermeability/RelPermBrooksCoreyNonwettingPhase.cpp
+++ b/MaterialLib/MPL/Properties/RelativePermeability/RelPermBrooksCoreyNonwettingPhase.cpp
@@ -79,10 +79,12 @@ PropertyDataType RelPermBrooksCoreyNonwettingPhase::dValue(
     ParameterLib::SpatialPosition const& pos, double const t,
     double const dt) const
 {
-    (void)variable;
-    assert((variable == Variable::liquid_saturation) &&
-           "RelPermBrooksCorey::dValue is implemented for "
-           " derivatives with respect to liquid saturation only.");
+    if (variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "RelPermBrooksCoreyNonwettingPhase::dValue is implemented for "
+            "derivatives with respect to liquid saturation only.");
+    }
     /// here, an extra computation of saturation is forced, guaranteeing a
     /// correct value. In order to speed up the computing time, saturation could
     /// be inserted into the primary variable array after it is computed in the
diff --git a/MaterialLib/MPL/Properties/RelativePermeability/RelPermLiakopoulos.cpp b/MaterialLib/MPL/Properties/RelativePermeability/RelPermLiakopoulos.cpp
index efb0545f7d1d04d74372a184fa2e97093a02b419..a8ccbd34feff1a677406f52969445a038c24257c 100644
--- a/MaterialLib/MPL/Properties/RelativePermeability/RelPermLiakopoulos.cpp
+++ b/MaterialLib/MPL/Properties/RelativePermeability/RelPermLiakopoulos.cpp
@@ -65,10 +65,12 @@ PropertyDataType RelPermLiakopoulos::dValue(
     ParameterLib::SpatialPosition const& pos, double const t,
     double const dt) const
 {
-    (void)variable;
-    assert((variable == Variable::liquid_saturation) &&
-           "RelPermLiakopoulos::dValue is implemented for "
-           " derivatives with respect to liquid saturation only.");
+    if (variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "RelPermLiakopoulos::dValue is implemented for derivatives with "
+            "respect to liquid saturation only.");
+    }
     /// here, an extra computation of saturation is forced, guaranteeing a
     /// correct value. In order to speed up the computing time, saturation could
     /// be inserted into the primary variable array after it is computed in the
diff --git a/MaterialLib/MPL/Properties/RelativePermeability/RelPermNonWettingPhaseVanGenuchtenMualem.cpp b/MaterialLib/MPL/Properties/RelativePermeability/RelPermNonWettingPhaseVanGenuchtenMualem.cpp
index ca8bdbfd8de651dbd545c145026be2cb2138f8e3..bb824fb3d7eb3db9e9159149c74542af14b50ea4 100644
--- a/MaterialLib/MPL/Properties/RelativePermeability/RelPermNonWettingPhaseVanGenuchtenMualem.cpp
+++ b/MaterialLib/MPL/Properties/RelativePermeability/RelPermNonWettingPhaseVanGenuchtenMualem.cpp
@@ -56,11 +56,12 @@ PropertyDataType RelPermNonWettingPhaseVanGenuchtenMualem::dValue(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)variable;
-    assert(
-        (variable == Variable::liquid_saturation) &&
-        "RelPermNonWettingPhaseVanGenuchtenMualem::dValue is implemented for "
-        "the derivative with respect to liquid saturation only.");
+    if (variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "RelPermNonWettingPhaseVanGenuchtenMualem::dValue is implemented "
+            "for the derivative with respect to liquid saturation only.");
+    }
 
     const double S_L = std::get<double>(
         variable_array[static_cast<int>(Variable::liquid_saturation)]);
diff --git a/MaterialLib/MPL/Properties/RelativePermeability/RelPermUdell.cpp b/MaterialLib/MPL/Properties/RelativePermeability/RelPermUdell.cpp
index 3f046a6eef8ccbf222ab6a94b98ada4cd345d339..556dcde80f7354fc7ad6d89a52ab99b28ad5f102 100644
--- a/MaterialLib/MPL/Properties/RelativePermeability/RelPermUdell.cpp
+++ b/MaterialLib/MPL/Properties/RelativePermeability/RelPermUdell.cpp
@@ -67,10 +67,12 @@ PropertyDataType RelPermUdell::dValue(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)variable;
-    assert((variable == Variable::liquid_saturation) &&
-           "RelPermUdell::dValue is implemented for "
-           " derivatives with respect to liquid saturation only.");
+    if (variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "RelPermUdell::dValue is implemented for derivatives with respect "
+            "to liquid saturation only.");
+    }
 
     const double S_L = std::get<double>(
         variable_array[static_cast<int>(Variable::liquid_saturation)]);
diff --git a/MaterialLib/MPL/Properties/RelativePermeability/RelPermUdellNonwettingPhase.cpp b/MaterialLib/MPL/Properties/RelativePermeability/RelPermUdellNonwettingPhase.cpp
index bfc695e08d798eecfa89773ebc006bb4aefb90c5..e4a15acb3e0d09ea2211803c912ecce4c85460d5 100644
--- a/MaterialLib/MPL/Properties/RelativePermeability/RelPermUdellNonwettingPhase.cpp
+++ b/MaterialLib/MPL/Properties/RelativePermeability/RelPermUdellNonwettingPhase.cpp
@@ -72,10 +72,12 @@ PropertyDataType RelPermUdellNonwettingPhase::dValue(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)primary_variable;
-    assert((primary_variable == Variable::liquid_saturation) &&
-           "RelPermUdellNonwettingPhase::dValue is implemented for  "
-           "derivatives with respect to liquid saturation only.");
+    if (primary_variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "RelPermUdellNonwettingPhase::dValue is implemented for "
+            "derivatives with respect to liquid saturation only.");
+    }
 
     const double S_L = std::get<double>(
         variable_array[static_cast<int>(Variable::liquid_saturation)]);
diff --git a/MaterialLib/MPL/Properties/RelativePermeability/RelPermVanGenuchten.cpp b/MaterialLib/MPL/Properties/RelativePermeability/RelPermVanGenuchten.cpp
index 4e9d85e4cd74c72abdf9429bd9c9f4771f367920..f532e7df04b3f7fde0d05875b2f7f173baa69449 100644
--- a/MaterialLib/MPL/Properties/RelativePermeability/RelPermVanGenuchten.cpp
+++ b/MaterialLib/MPL/Properties/RelativePermeability/RelPermVanGenuchten.cpp
@@ -60,10 +60,13 @@ PropertyDataType RelPermVanGenuchten::dValue(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)primary_variable;
-    assert((primary_variable == Variable::liquid_saturation) &&
-           "RelativePermeabilityVanGenuchten::dValue is implemented for "
-           "derivatives with respect to liquid saturation only.");
+    if (primary_variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "RelativePermeabilityVanGenuchten::dValue is implemented for "
+            "derivatives with respect to liquid saturation only.");
+    }
+
     double const S_L = std::clamp(
         std::get<double>(
             variable_array[static_cast<int>(Variable::liquid_saturation)]),
diff --git a/MaterialLib/MPL/Properties/SaturationDependentSwelling.cpp b/MaterialLib/MPL/Properties/SaturationDependentSwelling.cpp
index e3b967f4c005bc7d2069e5dfa441e19dc4577a44..6b3ec181039fec8a59068bd10acc5f6423aaa5f4 100644
--- a/MaterialLib/MPL/Properties/SaturationDependentSwelling.cpp
+++ b/MaterialLib/MPL/Properties/SaturationDependentSwelling.cpp
@@ -104,10 +104,12 @@ PropertyDataType SaturationDependentSwelling::dValue(
     ParameterLib::SpatialPosition const& pos, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)primary_variable;
-    assert((primary_variable == Variable::liquid_saturation) &&
-           "SaturationDependentSwelling::dValue is implemented for  "
-           "derivatives with respect to liquid saturation only.");
+    if (primary_variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "SaturationDependentSwelling::dValue is implemented for "
+            "derivatives with respect to liquid saturation only.");
+    }
 
     auto const S_L = std::get<double>(
         variable_array[static_cast<int>(Variable::liquid_saturation)]);
diff --git a/MaterialLib/MPL/Properties/SaturationDependentThermalConductivity.cpp b/MaterialLib/MPL/Properties/SaturationDependentThermalConductivity.cpp
index dc7f54cdfd71b6af7255df3c667c561cf2919394..3e9f2957058455536763d8315dc8ffd6364a4c3b 100644
--- a/MaterialLib/MPL/Properties/SaturationDependentThermalConductivity.cpp
+++ b/MaterialLib/MPL/Properties/SaturationDependentThermalConductivity.cpp
@@ -46,10 +46,12 @@ PropertyDataType SaturationDependentThermalConductivity::dValue(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)variable;
-    assert((variable == Variable::liquid_saturation) &&
-           "SaturationDependentThermalConductivity::dvalue is implemented for "
-           "derivatives with respect to liquid saturation only.");
+    if (variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "SaturationDependentThermalConductivity::dValue is implemented for "
+            "derivatives with respect to liquid saturation only.");
+    }
 
     return K_wet_ - K_dry_;
 }
diff --git a/MaterialLib/MPL/Properties/SwellingStress/LinearSaturationSwellingStress.cpp b/MaterialLib/MPL/Properties/SwellingStress/LinearSaturationSwellingStress.cpp
index 6c8e9682dbd97dbba895214020cfce65829f7525..fc2c4c38057f88c553e0359832e4c001af891878 100644
--- a/MaterialLib/MPL/Properties/SwellingStress/LinearSaturationSwellingStress.cpp
+++ b/MaterialLib/MPL/Properties/SwellingStress/LinearSaturationSwellingStress.cpp
@@ -61,10 +61,12 @@ PropertyDataType LinearSaturationSwellingStress::dValue(
     ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/,
     double const /*dt*/) const
 {
-    (void)variable;
-    assert((variable == Variable::liquid_saturation) &&
-           "LinearSaturationSwellingStress::dValue is implemented for "
-           "derivatives with respect to liquid saturation only.");
+    if (variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "LinearSaturationSwellingStress::dValue is implemented for "
+            "derivatives with respect to liquid saturation only.");
+    }
 
     // Sl <= S_max is guaranteed by the saturation property or
     // the saturation calculation.
diff --git a/MaterialLib/MPL/Properties/ThermalConductivity/SoilThermalConductivitySomerton.cpp b/MaterialLib/MPL/Properties/ThermalConductivity/SoilThermalConductivitySomerton.cpp
index 474a47612f1a693f3f31d62cfb46557d287ddd03..a9f45b8c4261913a3e835e772973afa3d1f993ca 100644
--- a/MaterialLib/MPL/Properties/ThermalConductivity/SoilThermalConductivitySomerton.cpp
+++ b/MaterialLib/MPL/Properties/ThermalConductivity/SoilThermalConductivitySomerton.cpp
@@ -90,10 +90,12 @@ PropertyDataType SoilThermalConductivitySomerton<1>::dValue(
     ParameterLib::SpatialPosition const& pos, double const t,
     double const /*dt*/) const
 {
-    (void)variable;
-    assert((variable == Variable::liquid_saturation) &&
-           "SoilThermalConductivitySomerton::dValue is implemented for "
-           "derivatives with respect to liquid saturation only.");
+    if (variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "SoilThermalConductivitySomerton::dValue is implemented for "
+            "derivatives with respect to liquid saturation only.");
+    }
 
     double const S_L = std::get<double>(
         variable_array[static_cast<int>(Variable::liquid_saturation)]);
@@ -209,10 +211,12 @@ PropertyDataType SoilThermalConductivitySomerton<GlobalDimension>::dValue(
     ParameterLib::SpatialPosition const& pos, double const t,
     double const /*dt*/) const
 {
-    (void)variable;
-    assert((variable == Variable::liquid_saturation) &&
-           "SoilThermalConductivitySomerton::dValue is implemented for "
-           "derivatives with respect to liquid saturation only.");
+    if (variable != Variable::liquid_saturation)
+    {
+        OGS_FATAL(
+            "SoilThermalConductivitySomerton::dValue is implemented for "
+            "derivatives with respect to liquid saturation only.");
+    }
 
     double const S_L = std::get<double>(
         variable_array[static_cast<int>(Variable::liquid_saturation)]);
diff --git a/Tests/Data/TH2M/H2M/Liakopoulos/liakopoulos_TH2M.prj b/Tests/Data/TH2M/H2M/Liakopoulos/liakopoulos_TH2M.prj
index 066739abb2cf4a1e1d606502f8b36bc8363ad87b..9b53b9bab8eb4b3fa3799991ca0b0503149179c6 100644
--- a/Tests/Data/TH2M/H2M/Liakopoulos/liakopoulos_TH2M.prj
+++ b/Tests/Data/TH2M/H2M/Liakopoulos/liakopoulos_TH2M.prj
@@ -440,7 +440,7 @@
         <vtkdiff>
             <regex>result_liakopoulos_t_.*.vtu</regex>
             <field>capillary_pressure_interpolated</field>
-            <absolute_tolerance>1e-08</absolute_tolerance>
+            <absolute_tolerance>2e-08</absolute_tolerance>
             <relative_tolerance>0</relative_tolerance>
         </vtkdiff>
         <vtkdiff>