# RT Subcycling

Warning

The radiative transfer schemes are still in development and are not useable at this moment. This page is currently a placeholder to document new features and requirements as the code grows.

SWIFT allows to sub-cycle the solution of radiative transfer steps (both photon propagation and thermochemistry) with respect to the hydrodynamics time steps. Basically you can tell SWIFT to run up to X radiative transfer steps during a single hydrodynamics step for all particles in the simulation. The aim is to not waste time doing unnecessary hydrodynamics updates, which typically allow for much higher time steps compared to radiation due to the propagation speed of the respective advected quantity.

You will need to provide an upper limit on how many RT subcycles per hydro step you want to allow. That is governed by the

```
TimeIntegration:
max_nr_rt_subcycles: 128 # maximal number of RT subcycles per hydro step
```

parameter, which is mandatory for any RT runs. To turn off subcycling and couple the radiative transfer and the hydrodynamics time steps one-to-one, set this parameter to either 0 or 1.

Due to the discretization of individual particle time steps in time bins
with a factor of 2 difference in time step size from a lower to a higher
time bin, the `max_nr_rt_subcycles`

parameter itself is required to be
a power of 2 as well.

Note that this parameter will set an upper limit to the number of subcycles
per hydro step. If the ratio of hydro-to-RT time step is greater than what
`max_nr_rt_subcycles`

allows for, then the hydro time step will be reduced
to fit the maximal threshold. If it is smaller, the particle will simply do
fewer subcycles.

Warning

Contrary to the documentation above, in the current implementation the
`max_nr_rt_subcycles`

parameters is abused as the fixed number of RT
subcycles per hydro step. This means that RT time steps will be reduced
to lower values than necessary to fit the exact ratio should they be too
large to begin with.
Once the development advances, the behaviour will be set to be as
documented above.