FireSTARR
Loading...
Searching...
No Matches
Iteration.h
1/* Copyright (c) Queen's Printer for Ontario, 2020. */
2/* Copyright (c) His Majesty the King in Right of Canada as represented by the Minister of Natural Resources, 2024-2025. */
3
4/* SPDX-License-Identifier: AGPL-3.0-or-later */
5
6#pragma once
7#include <random>
8#include <vector>
9#include "SafeVector.h"
10#include "IntensityMap.h"
11namespace fs::sim
12{
13class ProbabilityMap;
14class Scenario;
19{
20public:
21 ~Iteration();
26 explicit Iteration(vector<Scenario*> scenarios) noexcept;
31 Iteration(const Iteration& rhs) = default;
36 Iteration(Iteration&& rhs) = default;
42 Iteration& operator=(const Iteration& rhs) = default;
48 Iteration& operator=(Iteration&& rhs) = default;
54 Iteration* reset_with_new_start(const shared_ptr<topo::Cell>& start_cell);
61 Iteration* reset(mt19937* mt_extinction,
62 mt19937* mt_spread);
67 [[nodiscard]] const vector<Scenario*>& getScenarios() const noexcept
68 {
69 return scenarios_;
70 }
75 void cancel(bool show_warning) noexcept;
80 [[nodiscard]] vector<DurationSize> savePoints() const;
85 [[nodiscard]] DurationSize startTime() const;
90 [[nodiscard]] size_t size() const noexcept;
95 [[nodiscard]] util::SafeVector finalSizes() const;
96private:
104 util::SafeVector final_sizes_{};
108 bool cancelled_ = false;
109};
110}
Represents a full set of simulations using all available weather streams.
Definition Iteration.h:19
const vector< Scenario * > & getScenarios() const noexcept
List of Scenarios this Iteration contains.
Definition Iteration.h:67
util::SafeVector final_sizes_
SafeVector of sizes that Scenarios have resulted in.
Definition Iteration.h:104
Iteration & operator=(const Iteration &rhs)=default
Copy assignment.
void cancel(bool show_warning) noexcept
Definition Iteration.cpp:114
Iteration(vector< Scenario * > scenarios) noexcept
Constructor.
Definition Iteration.cpp:19
size_t size() const noexcept
Number of Scenarios in this Iteration.
Definition Iteration.cpp:106
Iteration * reset(mt19937 *mt_extinction, mt19937 *mt_spread)
Create new thresholds for use in each Scenario.
Definition Iteration.cpp:41
DurationSize startTime() const
Time that simulations start.
Definition Iteration.cpp:102
Iteration & operator=(Iteration &&rhs)=default
Move assignment.
vector< Scenario * > scenarios_
List of Scenarios this Iteration contains.
Definition Iteration.h:100
util::SafeVector finalSizes() const
SafeVector of sizes that Scenarios have resulted in.
Definition Iteration.cpp:110
vector< DurationSize > savePoints() const
Points in time that ProbabilityMaps get saved for.
Definition Iteration.cpp:98
Iteration * reset_with_new_start(const shared_ptr< topo::Cell > &start_cell)
Assign start Cell and create new thresholds for use in each Scenario.
Definition Iteration.cpp:23
Iteration(Iteration &&rhs)=default
Move constructor.
Iteration(const Iteration &rhs)=default
Copy constructor.
bool cancelled_
Whether this has been cancelled and should stop computing.
Definition Iteration.h:108
A single Scenario in an Iteration using a specific FireWeather stream.
Definition Scenario.h:38
Definition util.py:1