def METHOD_NAME(self, dim, m):
    if self.residual_range_dims and self.initial_residual_range_dims:
        residual_range_dims = self.residual_range_dims[:dim + 1]
        residual = self.residual.projected_to_subbasis(residual_range_dims[-1], dim)
        initial_residual_range_dims = self.initial_residual_range_dims[:dim + 1]
        initial_residual = self.initial_residual.projected_to_subbasis(initial_residual_range_dims[-1], dim)
        return ParabolicRBEstimator(residual, residual_range_dims,
                                    initial_residual, initial_residual_range_dims,
                                    self.coercivity_estimator, self.projected_output_adjoint)
    else:
        self.logger.warning('Cannot efficiently reduce to subbasis')
        return ParabolicRBEstimator(self.residual.projected_to_subbasis(None, dim), None,
                                    self.initial_residual.projected_to_subbasis(None, dim), None,
                                    self.coercivity_estimator, self.projected_output_adjoint)