diff --git a/lbmpy/forcemodels.py b/lbmpy/forcemodels.py
index ad57d27c9b95011386b11528cdf44d426985e155..2ce3f20f32cead0c473c27b7c5e3354fed084a57 100644
--- a/lbmpy/forcemodels.py
+++ b/lbmpy/forcemodels.py
@@ -113,6 +113,9 @@ class Simple:
     def macroscopic_velocity_shift(self, density):
         return default_velocity_shift(density, self._force)
 
+    def macroscopic_momentum_density_shift(self, density):
+        return default_momentum_density_shift(self._force)
+
 
 class Luo:
     r"""Force model by Luo :cite:`luo1993lattice`.
@@ -135,6 +138,9 @@ class Luo:
     def macroscopic_velocity_shift(self, density):
         return default_velocity_shift(density, self._force)
 
+    def macroscopic_momentum_density_shift(self, density):
+        return default_momentum_density_shift(self._force)
+
 
 class Guo:
     r"""
@@ -155,6 +161,9 @@ class Guo:
     def macroscopic_velocity_shift(self, density):
         return default_velocity_shift(density, self._force)
 
+    def macroscopic_momentum_density_shift(self, density):
+        return default_momentum_density_shift(self._force)
+
     def equilibrium_velocity_shift(self, density):
         return default_velocity_shift(density, self._force)
 
@@ -187,6 +196,9 @@ class Schiller:
     def macroscopic_velocity_shift(self, density):
         return default_velocity_shift(density, self._force)
 
+    def macroscopic_momentum_density_shift(self, density):
+        return default_momentum_density_shift(self._force)
+
 
 class Buick:
     r"""
@@ -208,6 +220,9 @@ class Buick:
     def macroscopic_velocity_shift(self, density):
         return default_velocity_shift(density, self._force)
 
+    def macroscopic_momentum_density_shift(self, density):
+        return default_momentum_density_shift(self._force)
+
     def equilibrium_velocity_shift(self, density):
         return default_velocity_shift(density, self._force)
 
@@ -231,9 +246,16 @@ class EDM:
     def macroscopic_velocity_shift(self, density):
         return default_velocity_shift(density, self._force)
 
+    def macroscopic_momentum_density_shift(self, density):
+        return default_momentum_density_shift(self._force)
+
 
 # --------------------------------  Helper functions  ------------------------------------------------------------------
 
 
 def default_velocity_shift(density, force):
     return [f_i / (2 * density) for f_i in force]
+
+
+def default_momentum_density_shift(force):
+    return [f_i / 2 for f_i in force]
diff --git a/lbmpy/methods/conservedquantitycomputation.py b/lbmpy/methods/conservedquantitycomputation.py
index 4d9c8afadbfb99cab8bc02cf701cd7b7acfa2fa9..85a02e3bc00867af33b99464e74d989acd1f7acb 100644
--- a/lbmpy/methods/conservedquantitycomputation.py
+++ b/lbmpy/methods/conservedquantitycomputation.py
@@ -207,8 +207,8 @@ class DensityVelocityComputation(AbstractConservedQuantityComputation):
             mom_density_eq_coll = get_equations_for_zeroth_and_first_order_moment(self._stencil, pdfs,
                                                                                   self._symbolOrder0,
                                                                                   self._symbolsOrder1)
-            mom_density_eq_coll = apply_force_model_shift('macroscopic_velocity_shift', dim, mom_density_eq_coll,
-                                                          self._forceModel, self._compressible)
+            mom_density_eq_coll = apply_force_model_shift('macroscopic_momentum_density_shift', dim, 
+                                                          mom_density_eq_coll, self._forceModel, self._compressible)
             for sym, val in zip(momentum_density_output_symbols, mom_density_eq_coll.main_assignments[1:]):
                 main_assignments.append(Assignment(sym, val.rhs))
         if 'moment0' in output_quantity_names_to_symbols:
diff --git a/lbmpy_tests/test_force.py b/lbmpy_tests/test_force.py
index 31412d8ce9d2b63da5b78d531b3c22a06d90875b..c2ce54223eddd11e04ed584094a5efec0520c02f 100644
--- a/lbmpy_tests/test_force.py
+++ b/lbmpy_tests/test_force.py
@@ -155,3 +155,40 @@ def test_modes(stencil, force_model):
     elif force_model == "simple":
         # All other moments should be zero
         assert list(force_moments[dim+1:]) == [0] * (len(stencil)-(dim+1))
+
+
+@pytest.mark.parametrize("force_model", force_models)
+def test_momentum_density_shift(force_model):
+    target = 'cpu'
+
+    stencil = get_stencil('D2Q9')
+    domain_size = (4, 4)
+    dh = ps.create_data_handling(domain_size=domain_size, default_target=target)
+
+    rho = dh.add_array('rho', values_per_cell=1)
+    dh.fill('rho', 0.0, ghost_layers=True)
+
+    velField = dh.add_array('velField', values_per_cell=dh.dim)
+    dh.fill('velField', 0.0, ghost_layers=True)
+
+    momentum_density = dh.add_array('momentum_density', values_per_cell=dh.dim)
+    dh.fill('momentum_density', 0.0, ghost_layers=True)
+
+    src = dh.add_array('src', values_per_cell=len(stencil))
+    dh.fill('src', 0.0, ghost_layers=True)
+
+    method = create_lb_method(method="srt", compressible=True, force_model=force_model, force=[1, 2])
+
+    momentum_density_symbols = sp.symbols("md_:2")
+    cqc = method.conserved_quantity_computation
+
+    momentum_density_getter = cqc.output_equations_from_pdfs(src.center_vector,
+                                                             {'density': rho.center,
+                                                              'momentum_density': momentum_density.center_vector})
+
+    momentum_density_ast = ps.create_kernel(momentum_density_getter, target=dh.default_target)
+    momentum_density_kernel = momentum_density_ast.compile()
+
+    dh.run_kernel(momentum_density_kernel)
+    assert np.sum(dh.gather_array(momentum_density.name)[:, :, 0]) == np.prod(domain_size) / 2
+    assert np.sum(dh.gather_array(momentum_density.name)[:, :, 1]) == np.prod(domain_size)