17 #include <unordered_map>
44 Model(std::size_t num_cells,
45 std::size_t num_sensors,
46 std::size_t measurement_steps,
47 std::size_t num_phonons,
48 double simulation_time,
50 bool phasor_sim =
false);
75 const std::string& material_name,
118 void exportResults(
const fs::path& filepath,
double time)
const;
122 std::size_t num_cells_;
123 std::size_t measurement_steps_;
124 double simulation_time_;
125 std::size_t num_phonons_;
128 std::size_t start_step_{ 0 };
133 std::unique_ptr<std::mutex> addMeasurementMutex_;
135 std::vector<Cell> cells_;
136 std::vector<Sensor> sensors_;
137 std::unordered_map<std::string, Material> materials_;
144 [[nodiscard]]
Sensor& getSensor(std::size_t ID);
145 [[nodiscard]]
double getTotalInitialEnergy() const noexcept;
150 [[nodiscard]] std::pair<
double,
double> setTemperatureBounds() noexcept;
151 void initializeMaterialTables(
double low_temp,
double high_temp);
152 [[nodiscard]]
double avgTemp() const;
153 void storeResults() noexcept;
158 [[nodiscard]] std::optional<
double> resetRequired() noexcept;
159 void reset() noexcept;
Geometry::Point Point
Definition: cell.cpp:18
Definition: material.h:15
Definition: modelSimulator.h:17
void addMaterial(const std::string &material_name, const Material &material)
Definition: model.cpp:89
void runSimulation()
Definition: model.cpp:157
void setSimulationType(SimulationType type, std::size_t step_interval=0)
Definition: model.cpp:63
void exportResults(const fs::path &filepath, double time) const
Definition: model.cpp:191
Model(std::size_t num_cells, std::size_t num_sensors, std::size_t measurement_steps, std::size_t num_phonons, double simulation_time, double t_eq, bool phasor_sim=false)
Definition: model.cpp:43
bool setEmitSurface(const Point &p1, const Point &p2, double temp, double duration, double start_time)
Definition: model.cpp:142
void addSensor(std::size_t ID, const std::string &material_name, double t_init, Sensor::SimulationType type)
Definition: model.cpp:98
void addCell(Geometry::Triangle &&triangle, std::size_t sensor_ID, double spec=1.)
Definition: model.cpp:115
Definition: outputManager.h:14
Definition: sensorInterpreter.h:9
SimulationType
Definition: sensor.h:16
Definition: geometry.h:23
Definition: geometry.h:76