diff --git a/src/GRHD/GRHD.jl b/src/GRHD/GRHD.jl
index 8fdfe09127755231f51627ed5000d88c83ccf888..9f9ebe1d47d5aa5d2f94fe6aea0f46f7d7b5433f 100644
--- a/src/GRHD/GRHD.jl
+++ b/src/GRHD/GRHD.jl
@@ -342,6 +342,19 @@ dg1d.@parameters GRHD begin
   limiter_tci_log_D = false
   @check limiter_tci_log_D isa Bool
 
+  """
+  The TCI method with which the triggering of the limiter is controlled.
+  """
+  limiter_tci_method = "mda"
+  @check limiter_tci_method in [ "mda" ]
+
+  """
+  TCIs provide an indicator value in the range [0,1].
+  `limiter_tci_threshold` controls above which which value the limiter should activate.
+  """
+  limiter_tci_threshold = 0.9
+  @check 0 < limiter_tci_threshold ≤ 1
+
 end
 
 
diff --git a/src/GRHD/callbacks.jl b/src/GRHD/callbacks.jl
index 10db122ae2c76ca9005894ab6d0d8f056320b8ef..593fc6514b569134bee83df51d9fa3d28a9a56e0 100644
--- a/src/GRHD/callbacks.jl
+++ b/src/GRHD/callbacks.jl
@@ -573,7 +573,7 @@ function callback_limiter(env, P::Project{:spherical1d}, mesh::Mesh1d{<:DGElemen
 
   broadcast_volume!(impose_atmosphere_spherical1d, P.equation, mesh)
 
-  @unpack limiter_tci_log_D, limiter_limit_log_D = P.prms
+  @unpack limiter_tci_log_D, limiter_limit_log_D, limiter_tci, limiter_tci_threshold = P.prms
 
   if limiter_tci_log_D || limiter_limit_log_D
     @. log_D = log(D)
@@ -582,13 +582,13 @@ function callback_limiter(env, P::Project{:spherical1d}, mesh::Mesh1d{<:DGElemen
   K = mesh.tree.dims[1]
   dg1d.enter(P.prms.workspace) do
     tmp_flag = dg1d.borrow(P.prms.workspace, length(flag))
-    TCI.compute_indicator!(tmp_flag, limiter_tci_log_D ? log_D : D, P.tci)
+    TCI.compute_indicator!(tmp_flag, limiter_tci_log_D ? log_D : D, limiter_tci)
     for (i,f) in enumerate(tmp_flag)
-      flag[i] = f > 0.9
+      flag[i] = f > limiter_tci_threshold
     end
-    TCI.compute_indicator!(tmp_flag, Sr, P.tci)
+    TCI.compute_indicator!(tmp_flag, Sr, limiter_tci)
     for (i,f) in enumerate(tmp_flag)
-      flag[i] = max(flag[i], f > 0.9)
+      flag[i] = max(flag[i], f > limiter_tci_threshold)
     end
     tmp_flag .= (flag .+ flag[end:-1:1])./2
     flag .= tmp_flag
diff --git a/src/GRHD/setup.jl b/src/GRHD/setup.jl
index 7638364e5c0ca3bbb515dcd9c932261f637adcdf..973f84343619d1d8fe6f63bc6fd9c2ce3431c55f 100644
--- a/src/GRHD/setup.jl
+++ b/src/GRHD/setup.jl
@@ -43,6 +43,11 @@ function Project(env::Environment, prms)
   limiter = prms["GRHD"]["limiter"]
   limiter_limit_log_D = prms["GRHD"]["limiter_limit_log_D"]
   limiter_tci_log_D = prms["GRHD"]["limiter_tci_log_D"]
+  limiter_tci_method = prms["GRHD"]["limiter_tci_method"]
+  limiter_tci_threshold = prms["GRHD"]["limiter_tci_threshold"]
+  limiter_tci_prms = dg1d.parameters(:TCI)
+  limiter_tci_prms["method"] = limiter_tci_method
+  limiter_tci = TCI.make_TCI(env.mesh, limiter_tci_prms)
   freeze_vars = Symbol.(prms["GRHD"]["freeze_vars"])
   fv_numerical_flux = prms["GRHD"]["fv_numerical_flux"]
   id = prms["GRHD"]["id"]
@@ -68,7 +73,7 @@ function Project(env::Environment, prms)
                  c2p_set_atmosphere_on_failure, c2p_enforce_causal_atm, c2p_enforce_atm,
                  av_drag, av_sensor_abslog_D, problem, freeze_vars,
                  V_bspline, invV_bspline, workspace, dt_min_grid_spacing,
-                 limiter, limiter_limit_log_D, limiter_tci_log_D,
+                 limiter, limiter_limit_log_D, limiter_tci_log_D, limiter_tci, limiter_tci_threshold,
                  id, bc, hrsc, fv_numerical_flux)
 
   # construct Project