user_options

# =============================================================================
# BOAR Configuration File
# =============================================================================

# -----------------------------------------------------------------------------
# General Options
# -----------------------------------------------------------------------------
general_options:
  'clear_start': True     # [bool] Re-create output directory on start
  'silent': True          # [bool] Suppress log messages
  'log_dev': False        # [bool] Print all logs including simulation logs

# -----------------------------------------------------------------------------
# BASEMENT Options
# -----------------------------------------------------------------------------
basement_options:
  'cleanup': False        # [bool] Remove previous results before running
  'backend': omp          # [str] Backend: seq, omp, cuda, cudaC, cudaO
  'nthreads': -1          # [int] Number of cores (-1 = all available)

# -----------------------------------------------------------------------------
# Simulation Options
# -----------------------------------------------------------------------------
simulation_options:
  'discharge_file': True               # [bool] Define the model setup discharge using a TXT file. (Default: False)
  'discharge_file_directory': /path/to/discharge_files # [str] Directory containing discharge files. Only required if 'discharge_file' is True.
  'discharge_file_list': ['Q001.txt', 'Q002.txt']  # [list] List of discharge files to use. Only required if 'discharge_file' is True.

# -----------------------------------------------------------------------------
# Optimization Options
# -----------------------------------------------------------------------------
optimization_variable_options:
  'initial_vector': file              # [str] file, float, or list. (Default: file)
  'regions': ['main_channel', 'floodplain']           # [list] Regions to optimize. (Default: all friction regions)
  'constraints':                      # [dict] Parameter constraints. (Default: None)
    'expression': "x > y or np.isclose(x, y)"
    'variables': ['x', 'y']
  'bounds': [!!python/tuple [10, 60]] # [list of tuples] Optimization bounds. (Default: None)
  'precision': 1e-1                   # [float] Decimal precision. (Default: 1)
  'save_errors': True                 # [bool] Save error points to CSV. (Default: False)
  'save_tried_vectors': False         # [bool] Save all results files. (Default: False)
  'opt_engine': "boar"                # [str] Optimization engine ("boar" or "optuna"). Default: "boar"

# -----------------------------------------------------------------------------
# Sampling Options
# -----------------------------------------------------------------------------
sampling_options:
  'seed': 42                          # [int] Random seed (None = random)

# -----------------------------------------------------------------------------
# Surrogate Model Options
# -----------------------------------------------------------------------------
surrogate_model_options:
  'tolerance': 1e-4                   # [float] Stop criterion
  'test_population': 67956            # [int] Surrogate model samples
  'opt_mem_override': False           # [bool] Override memory check. (Default: False)
  'n_initial': 5                      # [int] Min samples before optimization. (Default: 5)
  'max_tested_vectors': 100           # [int] Max vectors to try. (Default: 100)
  'max_no_improvement': 10            # [int] Max iterations without progress (Default: 100)
  'GPR_iterations': 500               # [int] The number of restarts of the optimizer for finding the kernel’s parameters which maximize the log-marginal likelihood. (Default: 500)
  'GPR_alpha': 1e-6                   # [float] Value added to the diagonal of the kernel matrix during fitting. This can prevent a potential numerical issue during fitting, by ensuring that the calculated values form a positive definite matrix. (Default: 1e-6)
  'EI_exploration-exploitation': 0.01 # [float] Exploration-exploitation parameter for Expected Improvement acquisition function. (Default: 0.01)