def setup(self, phase=None, quantity='', conductance='',
              t_initial=None, t_final=None, t_step=None, t_output=None,
              t_tolerance=None, t_precision=None, t_scheme='', **kwargs):
        r"""
        This method takes several arguments that are essential to running the
        algorithm and adds them to the settings

        Parameters
        ----------
        phase : OpenPNM Phase object
            The phase on which the algorithm is to be run. If no value is
            given, the existing value is kept.

        quantity : string
            The name of the physical quantity to be calcualted such as
            ``'pore.xxx'``.

        conductance : string
            The name of the pore-scale transport conductance values. These
            are typically calculated by a model attached to a *Physics* object
            associated with the given *Phase*. Example; ``'throat.yyy'``.

        t_initial : scalar, smaller than 't_final'
            The simulation's start time. The default value is 0.

        t_final : scalar, bigger than 't_initial'
            The simulation's end time. The default value is 10.

        t_step : scalar, between 't_initial' and 't_final'
            The simulation's time step. The default value is 0.1.

        t_output : scalar or list of scalars
            When 't_output' is a scalar, it is considered as an output interval
            to store transient solutions. The default value is 1e+08. Initial
            and steady-state (if reached) fields are always stored. If
            't_output' > 't_final', no transient data is stored. If 't_output'
            is not a multiple of 't_step', 't_output' will be approximated.
            When 't_output' is a list, transient solutions corresponding to
            this list will be stored.

        output_times : list
            List of output times. The values in the list must be multiples of
            the time step 't_step'.

        t_tolerance : scalar
            Transient solver tolerance. The simulation stops (before reaching
            't_final') when the residual falls below 't_tolerance'. The
            default value is 1e-06. The 'residual' measures the variation from
            one time-step to another in the value of the 'quantity' solved for.

        r_tolerance : scalar
            Tolerance to achieve within each time step. The solver passes to
            next time step when 'residual' falls below 'r_tolerance'. The
            default value is 1e-04.

        t_precision : integer
            The time precision (number of decimal places).

        t_scheme : string
            The time discretization scheme. Three options available: 'steady'
            to perform a steady-state simulation, and 'implicit' (fast, 1st
            order accurate) and 'cranknicolson' (slow, 2nd order accurate) both
            for transient simulations. The default value is 'implicit'.

        Notes
        -----
        More settings can be adjusted in the presence of a non-linear source
        term such as under-relaxation.
        See the 'ReactiveTransport' class documentation for details.
        """
        if phase:
            self.settings['phase'] = phase.name
        if quantity:
            self.settings['quantity'] = quantity
        if conductance:
            self.settings['conductance'] = conductance
        if t_initial:
            self.settings['t_initial'] = t_initial
        if t_final:
            self.settings['t_final'] = t_final
        if t_step:
            self.settings['t_step'] = t_step
        if t_output:
            self.settings['t_output'] = t_output
        if t_tolerance:
            self.settings['t_tolerance'] = t_tolerance
        if t_precision:
            self.settings['t_precision'] = t_precision
        if t_scheme:
            self.settings['t_scheme'] = t_scheme
        self.settings.update(kwargs)
r"""
        This method takes several arguments that are essential to running the
        algorithm and adds them to the settings

        Parameters
        ----------
        phase : OpenPNM Phase object
            The phase on which the algorithm is to be run. If no value is
            given, the existing value is kept.

        quantity : string
            The name of the physical quantity to be calcualted such as
            ``'pore.xxx'``.

        conductance : string
            The name of the pore-scale transport conductance values. These
            are typically calculated by a model attached to a *Physics* object
            associated with the given *Phase*. Example; ``'throat.yyy'``.

        t_initial : scalar, smaller than 't_final'
            The simulation's start time. The default value is 0.

        t_final : scalar, bigger than 't_initial'
            The simulation's end time. The default value is 10.

        t_step : scalar, between 't_initial' and 't_final'
            The simulation's time step. The default value is 0.1.

        t_output : scalar or list of scalars
            When 't_output' is a scalar, it is considered as an output interval
            to store transient solutions. The default value is 1e+08. Initial
            and steady-state (if reached) fields are always stored. If
            't_output' > 't_final', no transient data is stored. If 't_output'
            is not a multiple of 't_step', 't_output' will be approximated.
            When 't_output' is a list, transient solutions corresponding to
            this list will be stored.

        output_times : list
            List of output times. The values in the list must be multiples of
            the time step 't_step'.

        t_tolerance : scalar
            Transient solver tolerance. The simulation stops (before reaching
            't_final') when the residual falls below 't_tolerance'. The
            default value is 1e-06. The 'residual' measures the variation from
            one time-step to another in the value of the 'quantity' solved for.

        r_tolerance : scalar
            Tolerance to achieve within each time step. The solver passes to
            next time step when 'residual' falls below 'r_tolerance'. The
            default value is 1e-04.

        t_precision : integer
            The time precision (number of decimal places).

        t_scheme : string
            The time discretization scheme. Three options available: 'steady'
            to perform a steady-state simulation, and 'implicit' (fast, 1st
            order accurate) and 'cranknicolson' (slow, 2nd order accurate) both
            for transient simulations. The default value is 'implicit'.

        Notes
        -----
        More settings can be adjusted in the presence of a non-linear source
        term such as under-relaxation.
        See the 'ReactiveTransport' class documentation for details.