def METHOD_NAME(self, variable_name: str, grids: list[pp.Grid]):
    """Perturbation of a variable from its reference value.
    The parameter :code:`variable_name` should be the name of a variable so that
    :code:`self.variable_name()` and `self.reference_variable_name()` are valid
    calls. These methods will be provided by mixin classes; normally this will be a
    subclass of :class:`VariableMixin`.
    The returned operator will be of the form
    :code:`self.variable_name(grids) - self.reference_variable_name(grids)`.
    Parameters:
        variable_name: Name of the variable.
        grids: List of subdomain or interface grids on which the variable is defined.
    Returns:
        Operator for the perturbation.
    """
    var = getattr(self, variable_name)
    var_ref = getattr(self, "reference_" + variable_name)
    d_var = var(grids) - var_ref(grids)
    d_var.set_name(variable_name + "_perturbation")
    return d_var