diff --git a/ProcessLib/ThermoRichardsMechanics/Constitutive/Permeability.cpp b/ProcessLib/ThermoRichardsMechanics/Constitutive/Permeability.cpp
index ad47eadd1f87d55a640bae6bc14d13c994dbd1d2..cb7494151c2f9fd83c4dafc70cf529415ab68ab5 100644
--- a/ProcessLib/ThermoRichardsMechanics/Constitutive/Permeability.cpp
+++ b/ProcessLib/ThermoRichardsMechanics/Constitutive/Permeability.cpp
@@ -17,12 +17,17 @@ namespace ProcessLib::ThermoRichardsMechanics
 template <int DisplacementDim>
 void PermeabilityModel<DisplacementDim>::eval(
     SpaceTimeData const& x_t, MediaData const& media_data,
-    SaturationData const& S_L_data,
+    SolidCompressibilityData const& solid_compressibility_data,
+    SaturationData const& S_L_data, BishopsData const& bishops_data,
+    BishopsData const& bishops_data_prev,
+    CapillaryPressureData<DisplacementDim> const& p_cap_data,
     TemperatureData<DisplacementDim> const& T_data,
     PorosityData const& poro_data, LiquidViscosityData const& mu_L_data,
     PorosityData& transport_poro_data,
     PorosityData const& transport_poro_data_prev,
     SolidMechanicsDataStateless<DisplacementDim> const& s_mech_data,
+    StrainData<DisplacementDim> const& eps_data,
+    StrainData<DisplacementDim> const& eps_prev_data,
     PermeabilityData<DisplacementDim>& out) const
 {
     namespace MPL = MaterialPropertyLib;
@@ -32,14 +37,35 @@ void PermeabilityModel<DisplacementDim>::eval(
     MPL::VariableArray variables;
     variables.liquid_saturation = S_L_data.S_L;
     variables.temperature = T_data.T;
+    variables.capillary_pressure = p_cap_data.p_cap;
     MPL::VariableArray variables_prev;
 
     if (medium.hasProperty(MPL::PropertyType::transport_porosity))
     {
+        static constexpr int kelvin_vector_size =
+            MathLib::KelvinVector::kelvin_vector_dimensions(DisplacementDim);
+        using Invariants =
+            MathLib::KelvinVector::Invariants<kelvin_vector_size>;
         // Used in
         // MaterialLib/MPL/Properties/PermeabilityOrthotropicPowerLaw.cpp
         variables_prev.transport_porosity = transport_poro_data_prev.phi;
 
+        // Used in
+        // MaterialLib/MPL/Properties/TransportPorosityFromMassBalance.cpp
+        variables.grain_compressibility = solid_compressibility_data.beta_SR;
+        // Set volumetric strain rate for the general case without swelling.
+        variables.volumetric_strain = Invariants::trace(eps_data.eps);
+        variables_prev.volumetric_strain = Invariants::trace(eps_prev_data.eps);
+        variables.effective_pore_pressure =
+            -bishops_data.chi_S_L * p_cap_data.p_cap;
+        variables.porosity = poro_data.phi;
+
+        // Used in MaterialLib/MPL/Properties/PorosityFromMassBalance.cpp
+        // and MaterialLib/MPL/Properties/TransportPorosityFromMassBalance.cpp
+        variables_prev.effective_pore_pressure =
+            -bishops_data_prev.chi_S_L *
+            (p_cap_data.p_cap - p_cap_data.p_cap_dot * x_t.dt);
+
         transport_poro_data.phi =
             medium.property(MPL::PropertyType::transport_porosity)
                 .template value<double>(variables, variables_prev, x_t.x, x_t.t,
diff --git a/ProcessLib/ThermoRichardsMechanics/Constitutive/Permeability.h b/ProcessLib/ThermoRichardsMechanics/Constitutive/Permeability.h
index c1cd17a2aba29b1c5b2a937729a1d20a73c51586..e3a252b373d9d19a731bb92623ed1928454253fd 100644
--- a/ProcessLib/ThermoRichardsMechanics/Constitutive/Permeability.h
+++ b/ProcessLib/ThermoRichardsMechanics/Constitutive/Permeability.h
@@ -28,7 +28,10 @@ template <int DisplacementDim>
 struct PermeabilityModel
 {
     void eval(SpaceTimeData const& x_t, MediaData const& media_data,
-              SaturationData const& S_L_data,
+              SolidCompressibilityData const& solid_compressibility_data,
+              SaturationData const& S_L_data, BishopsData const& bishops_data,
+              BishopsData const& bishops_data_prev,
+              CapillaryPressureData<DisplacementDim> const& p_cap_data,
               TemperatureData<DisplacementDim> const& T_data,
               PorosityData const& poro_data,
               LiquidViscosityData const& mu_L_data,
@@ -36,6 +39,8 @@ struct PermeabilityModel
               PorosityData& transport_poro_data,
               PorosityData const& transport_poro_data_prev,
               SolidMechanicsDataStateless<DisplacementDim> const& s_mech_data,
+              StrainData<DisplacementDim> const& eps_data,
+              StrainData<DisplacementDim> const& eps_prev_data,
               PermeabilityData<DisplacementDim>& out) const;
 };
 
diff --git a/ProcessLib/ThermoRichardsMechanics/ConstitutiveSetting.cpp b/ProcessLib/ThermoRichardsMechanics/ConstitutiveSetting.cpp
index 02cbc5946611f2cc20159e5c70cf550d900df2b9..3439ae15cc3ae22223a199269ea5f05ba2d34969 100644
--- a/ProcessLib/ThermoRichardsMechanics/ConstitutiveSetting.cpp
+++ b/ProcessLib/ThermoRichardsMechanics/ConstitutiveSetting.cpp
@@ -125,10 +125,14 @@ void ConstitutiveSetting<DisplacementDim>::eval(
 
     models.mu_L_model.eval(x_t, media_data, T_data, mu_L_data);
 
-    models.perm_model.eval(x_t, media_data, S_L_data, T_data, poro_data,
-                           mu_L_data, state.transport_poro_data,
-                           prev_state.transport_poro_data, s_mech_data,
-                           perm_data);
+    models.perm_model.eval(
+        x_t, media_data, solid_compressibility_data, S_L_data, bishops_data,
+        bishops_data_prev, p_cap_data, T_data, poro_data, mu_L_data,
+        state.transport_poro_data, prev_state.transport_poro_data, s_mech_data,
+        state.eps_data,
+        StrainData<DisplacementDim>{
+            eps_prev_arg} /* TODO why not eqU.eps_prev? */,
+        perm_data);
 
     models.th_osmosis_model.eval(x_t, media_data, T_data, rho_L_data,
                                  cd.th_osmosis_data);