diff --git a/ProcessLib/TH2M/IntegrationPointData.h b/ProcessLib/TH2M/IntegrationPointData.h
index a5095fd27d082c784a251e0e987755597ae8d2b3..27adc5dccff08c051c3b95b34d0e367846d4127e 100644
--- a/ProcessLib/TH2M/IntegrationPointData.h
+++ b/ProcessLib/TH2M/IntegrationPointData.h
@@ -62,22 +62,13 @@ struct IntegrationPointData final
 
     double s_L = std::numeric_limits<double>::quiet_NaN();
     double s_L_prev = std::numeric_limits<double>::quiet_NaN();
-    double dsLdpCap = std::numeric_limits<double>::quiet_NaN();
-    double MC = std::numeric_limits<double>::quiet_NaN();
-    double MW = std::numeric_limits<double>::quiet_NaN();
-    double MG = std::numeric_limits<double>::quiet_NaN();
 
     // phase intrinsic densities
     double rhoGR = std::numeric_limits<double>::quiet_NaN();
     double rhoLR = std::numeric_limits<double>::quiet_NaN();
     double rhoSR = std::numeric_limits<double>::quiet_NaN();
-    // solid phase pressure
-    double p_SR = std::numeric_limits<double>::quiet_NaN();
     double pWGR = std::numeric_limits<double>::quiet_NaN();
 
-    double dp_vap_dT = std::numeric_limits<double>::quiet_NaN();
-    double dp_vap_dpCap = std::numeric_limits<double>::quiet_NaN();
-
     // real constitutent partial densities
     double rhoCGR = std::numeric_limits<double>::quiet_NaN();
     double rhoCGR_prev = std::numeric_limits<double>::quiet_NaN();
@@ -88,24 +79,12 @@ struct IntegrationPointData final
     double rhoWLR = std::numeric_limits<double>::quiet_NaN();
     double rhoWLR_prev = std::numeric_limits<double>::quiet_NaN();
 
-    double drhoGR_dpGR = std::numeric_limits<double>::quiet_NaN();
-    double drhoGR_dT = std::numeric_limits<double>::quiet_NaN();
-
     // phase composition
     // molar fraction
     double xnCG = std::numeric_limits<double>::quiet_NaN();
-    double xnWG = std::numeric_limits<double>::quiet_NaN();
-    double xnCL = std::numeric_limits<double>::quiet_NaN();
-    double xnWL = std::numeric_limits<double>::quiet_NaN();
-
-    double dxnCG_dpGR = std::numeric_limits<double>::quiet_NaN();
-    double dxnCG_dpCap = std::numeric_limits<double>::quiet_NaN();
-    double dxnCG_dT = std::numeric_limits<double>::quiet_NaN();
 
     // mass fraction
     double xmCG = std::numeric_limits<double>::quiet_NaN();
-    double xmWG = std::numeric_limits<double>::quiet_NaN();
-    double xmCL = std::numeric_limits<double>::quiet_NaN();
     double xmWL = std::numeric_limits<double>::quiet_NaN();
     // mass fraction derivatives
     double dxmCG_dpGR = std::numeric_limits<double>::quiet_NaN();
@@ -138,23 +117,12 @@ struct IntegrationPointData final
     double h_CG = std::numeric_limits<double>::quiet_NaN();
     double h_WG = std::numeric_limits<double>::quiet_NaN();
 
-    double dhG_dT = std::numeric_limits<double>::quiet_NaN();
-
     // internal energies
     double u_G = std::numeric_limits<double>::quiet_NaN();
     double u_L = std::numeric_limits<double>::quiet_NaN();
     double rho_u_eff = std::numeric_limits<double>::quiet_NaN();
     double rho_u_eff_prev = std::numeric_limits<double>::quiet_NaN();
 
-    // heat capacities
-    double cp_G = std::numeric_limits<double>::quiet_NaN();
-    double cp_CG = std::numeric_limits<double>::quiet_NaN();
-    double cp_WG = std::numeric_limits<double>::quiet_NaN();
-    double cp_L = std::numeric_limits<double>::quiet_NaN();
-    double cp_CL = std::numeric_limits<double>::quiet_NaN();
-    double cp_WL = std::numeric_limits<double>::quiet_NaN();
-    double cp_S = std::numeric_limits<double>::quiet_NaN();
-
     // porosity
     double phi = std::numeric_limits<double>::quiet_NaN();
     double phi_prev = std::numeric_limits<double>::quiet_NaN();
@@ -169,9 +137,7 @@ struct IntegrationPointData final
     double phi_S_p_SR_prev = std::numeric_limits<double>::quiet_NaN();
 
     double thermal_volume_strain = std::numeric_limits<double>::quiet_NaN();
-    double beta_pS = std::numeric_limits<double>::quiet_NaN();
     double beta_T_SR = std::numeric_limits<double>::quiet_NaN();
-    double c_p_S = std::numeric_limits<double>::quiet_NaN();
     double alpha_B = std::numeric_limits<double>::quiet_NaN();
     double beta_p_SR = std::numeric_limits<double>::quiet_NaN();
 
diff --git a/ProcessLib/TH2M/TH2MFEM-impl.h b/ProcessLib/TH2M/TH2MFEM-impl.h
index 6f8789eced9061f6ebd8fe56e2b3122bab1329c9..d38cab5380eba68d5ff7773b77da7f9c33b535b5 100644
--- a/ProcessLib/TH2M/TH2MFEM-impl.h
+++ b/ProcessLib/TH2M/TH2MFEM-impl.h
@@ -211,10 +211,6 @@ void TH2MLocalAssembler<ShapeFunctionDisplacement, ShapeFunctionPressure,
                 .template value<double>(
                     vars, pos, t, std::numeric_limits<double>::quiet_NaN());
 
-        ip_data.c_p_S =
-            solid_phase.property(MPL::PropertyType::specific_heat_capacity)
-                .template value<double>(vars, pos, t, dt);
-
         auto const lambdaSR = MPL::formEigenTensor<DisplacementDim>(
             solid_phase.property(MPL::PropertyType::thermal_conductivity)
                 .value(vars, pos, t, dt));
@@ -262,12 +258,12 @@ void TH2MLocalAssembler<ShapeFunctionDisplacement, ShapeFunctionPressure,
         auto const lambdaGR = MPL::formEigenTensor<DisplacementDim>(c.lambdaGR);
         auto const lambdaLR = MPL::formEigenTensor<DisplacementDim>(c.lambdaLR);
 
-        auto const lambda =
-            phi_S * lambdaSR + phi_L * lambdaLR + phi_G * lambdaGR;
+        ip_data.lambda = phi_S * lambdaSR + phi_L * lambdaLR + phi_G * lambdaGR;
 
-        ip_data.lambda = lambda;
-
-        ip_data.h_S = ip_data.c_p_S * T;
+        auto const cpS =
+            solid_phase.property(MPL::PropertyType::specific_heat_capacity)
+                .template value<double>(vars, pos, t, dt);
+        ip_data.h_S = cpS * T;
         auto const u_S = ip_data.h_S;
 
         ip_data.rho_u_eff = phi_G * c.rhoGR * c.uG + phi_L * c.rhoLR * c.uL +
@@ -277,12 +273,6 @@ void TH2MLocalAssembler<ShapeFunctionDisplacement, ShapeFunctionPressure,
         ip_data.rho_L_h_L = phi_L * c.rhoLR * c.hL;
         ip_data.rho_S_h_S = phi_S * rhoSR * ip_data.h_S;
 
-        ip_data.pWGR = c.pWGR;
-
-        ip_data.xnCG = c.xnCG;
-        ip_data.xmCG = c.xmCG;
-        ip_data.xmWL = c.xmWL;
-
         ip_data.muGR = c.muGR;
         ip_data.muLR = c.muLR;
 
@@ -307,12 +297,8 @@ void TH2MLocalAssembler<ShapeFunctionDisplacement, ShapeFunctionPressure,
         ip_data.diffusion_coefficient_vapour = c.diffusion_coefficient_vapour;
         ip_data.diffusion_coefficient_solvate = c.diffusion_coefficient_solvate;
 
-        ip_data.u_G = c.uG;
-        ip_data.u_L = c.uL;
         ip_data.h_G = c.hG;
-        ip_data.h_CG = c.hCG;
         ip_data.h_L = c.hL;
-        ip_data.h_WG = c.hWG;
     }
 }
 
@@ -494,8 +480,6 @@ void TH2MLocalAssembler<
         Eigen::Map<Eigen::VectorXd const>(local_x.data(), local_x.size()), t,
         dt);
 
-    auto const& medium = *_process_data.media_map->getMedium(_element.getID());
-    auto const& solid_phase = medium.phase("Solid");
     MPL::VariableArray vars;
 
     for (unsigned int_point = 0; int_point < n_integration_points; int_point++)
@@ -594,7 +578,6 @@ void TH2MLocalAssembler<
         // phase specific enthalpies
         auto& h_G = ip.h_G;
         auto& h_L = ip.h_L;
-        // auto& h_S = ip.h_S;
 
         auto const rho_C_GR_dot = (ip.rhoCGR - ip.rhoCGR_prev) / dt;
         auto const rho_C_LR_dot = (ip.rhoCLR - ip.rhoCLR_prev) / dt;