diff --git a/Documentation/ProjectFile/prj/processes/process/PHASE_FIELD/t_hydro_crack_scheme.md b/Documentation/ProjectFile/prj/processes/process/PHASE_FIELD/t_hydro_crack_scheme.md
new file mode 100644
index 0000000000000000000000000000000000000000..e938d33adaba54df328d623ca8c11f732bf1902b
--- /dev/null
+++ b/Documentation/ProjectFile/prj/processes/process/PHASE_FIELD/t_hydro_crack_scheme.md
@@ -0,0 +1 @@
+In case of static, pressure is set to 1.0. For propagating crack, evolution of pressure is found through enforcing the crack volume balance.
diff --git a/ProcessLib/PhaseField/CreatePhaseFieldProcess.cpp b/ProcessLib/PhaseField/CreatePhaseFieldProcess.cpp
index 515427e6874eb6b69c7814fb2e1f1e96b248dc65..674bb831fa55c0baada25f33375e133cdd087fbc 100644
--- a/ProcessLib/PhaseField/CreatePhaseFieldProcess.cpp
+++ b/ProcessLib/PhaseField/CreatePhaseFieldProcess.cpp
@@ -192,10 +192,29 @@ std::unique_ptr<Process> createPhaseFieldProcess(
         std::copy_n(b.data(), b.size(), specific_body_force.data());
     }
 
+    auto const crack_scheme =
+        //! \ogs_file_param{prj__processes__process__PHASE_FIELD__hydro_crack_scheme}
+        config.getConfigParameterOptional<std::string>("hydro_crack_scheme");
+    if (crack_scheme &&
+        ((*crack_scheme != "propagating") && (*crack_scheme != "static")))
+    {
+        OGS_FATAL(
+            "hydro_crack_scheme must be \"propagating\" or \"static\" but "
+            "\"%s\" was given",
+            crack_scheme->c_str());
+    }
+
+    const bool propagating_crack =
+        (crack_scheme && (*crack_scheme == "propagating"));
+    const bool crack_pressure =
+        (crack_scheme &&
+         ((*crack_scheme == "propagating") || (*crack_scheme == "static")));
+
     PhaseFieldProcessData<DisplacementDim> process_data{
         std::move(material), residual_stiffness,  crack_resistance,
         crack_length_scale,  kinetic_coefficient, solid_density,
-        history_field,       specific_body_force};
+        history_field,       specific_body_force, propagating_crack,
+        crack_pressure};
 
     SecondaryVariableCollection secondary_variables;
 
diff --git a/ProcessLib/PhaseField/PhaseFieldFEM-impl.h b/ProcessLib/PhaseField/PhaseFieldFEM-impl.h
index c0bc4dd3c183adbcae4f720b510b519591eb224b..b41a17021bcd4c2203f634126284a0378ebfcfed 100644
--- a/ProcessLib/PhaseField/PhaseFieldFEM-impl.h
+++ b/ProcessLib/PhaseField/PhaseFieldFEM-impl.h
@@ -273,7 +273,9 @@ void PhaseFieldLocalAssembler<ShapeFunction, IntegrationMethod,
     x_position.setElementID(_element.getID());
     double const& dt = _process_data.dt;
 
-    auto local_pressure = _process_data.unity_pressure;
+    auto local_pressure = 0.0;
+    if (_process_data.crack_pressure)
+        local_pressure = _process_data.unity_pressure;
 
     int const n_integration_points = _integration_method.getNumberOfPoints();
     for (int ip = 0; ip < n_integration_points; ip++)
@@ -369,8 +371,10 @@ void PhaseFieldLocalAssembler<ShapeFunction, IntegrationMethod,
     x_position.setElementID(_element.getID());
     double const& dt = _process_data.dt;
 
-    auto local_pressure = _process_data.unity_pressure;
-    if (_process_data.propagating_crack)
+    auto local_pressure = 0.0;
+    if (_process_data.crack_pressure)
+        local_pressure = _process_data.unity_pressure;
+    else if (_process_data.propagating_crack)
         local_pressure = _process_data.pressure;
 
     int const n_integration_points = _integration_method.getNumberOfPoints();
diff --git a/ProcessLib/PhaseField/PhaseFieldProcessData.h b/ProcessLib/PhaseField/PhaseFieldProcessData.h
index e5cff177ecee95c89448d7fd3083bfb16fa71a32..26fcde7b5b843e729a34838d1ac11b902df43ee3 100644
--- a/ProcessLib/PhaseField/PhaseFieldProcessData.h
+++ b/ProcessLib/PhaseField/PhaseFieldProcessData.h
@@ -41,7 +41,8 @@ struct PhaseFieldProcessData
         Parameter<double> const& kinetic_coefficient_,
         Parameter<double> const& solid_density_,
         Parameter<double>& history_field_,
-        Eigen::Matrix<double, DisplacementDim, 1> const& specific_body_force_)
+        Eigen::Matrix<double, DisplacementDim, 1> const& specific_body_force_,
+        bool propagating_crack_, bool crack_pressure_)
         : material{std::move(material_)},
           residual_stiffness(residual_stiffness_),
           crack_resistance(crack_resistance_),
@@ -49,7 +50,9 @@ struct PhaseFieldProcessData
           kinetic_coefficient(kinetic_coefficient_),
           solid_density(solid_density_),
           history_field(history_field_),
-          specific_body_force(specific_body_force_)
+          specific_body_force(specific_body_force_),
+          propagating_crack(propagating_crack_),
+          crack_pressure(crack_pressure_)
     {
     }
 
@@ -63,7 +66,9 @@ struct PhaseFieldProcessData
           history_field(other.history_field),
           specific_body_force(other.specific_body_force),
           dt(other.dt),
-          t(other.t)
+          t(other.t),
+          propagating_crack(other.propagating_crack),
+          crack_pressure(other.crack_pressure)
     {
     }
 
@@ -93,7 +98,8 @@ struct PhaseFieldProcessData
     double pressure_error = 0.0;
     double injected_volume = 0.0;
     double crack_volume = 0.0;
-    bool propagating_crack = true;
+    bool propagating_crack = false;
+    bool crack_pressure = false;
 };
 
 }  // namespace PhaseField