// SPDX-FileCopyrightText: 2021-2024 The Ikarus Developers mueller@ibb.uni-stuttgart.de
// SPDX-License-Identifier: LGPL-3.0-or-later

/**
 * \file observermessages.hh
 * \brief Enums for observer messages
 */

#pragma once

namespace Ikarus {
  /**
   * @brief Enum class defining control-routine-related messages.
   * \ingroup observer
   */
  enum class ControlMessages { BEGIN, CONTROL_STARTED, CONTROL_ENDED, STEP_STARTED, STEP_ENDED, SOLUTION_CHANGED, END };

  /**
   * @brief Enum class defining non-linear solver-related messages.
   * \ingroup observer
   */
  enum class NonLinearSolverMessages {
    BEGIN,
    INIT,
    ITERATION_STARTED,
    ITERATION_ENDED,
    RESIDUALNORM_UPDATED,
    CORRECTIONNORM_UPDATED,
    SOLUTION_CHANGED,
    FINISHED_SUCESSFULLY,
    END
  };
}  // namespace Ikarus
