13 #include <string_view>
34 return sensor_.
getID();
39 [[nodiscard]]
double getArea() const noexcept {
45 [[nodiscard]]
double getSteadyTemp(std::size_t step = 0) const noexcept {
59 [[nodiscard]]
bool setEmitSurface(
const Line& line,
double temp,
double duration,
double start_time);
61 [[nodiscard]]
double getInitEnergy(
double t_eq)
const noexcept;
62 [[nodiscard]]
double getEmitEnergy(
double t_eq)
const noexcept;
78 bool operator==(const
Cell& rhs) const;
79 bool operator!=(const
Cell& rhs) const;
81 friend std::ostream& operator<<(std::ostream& os, const
Cell& cell);
93 [[nodiscard]] std::array<
CompositeSurface, 3> buildCompositeSurfaces(
double spec) noexcept;
94 [[nodiscard]]
bool setTransitionSurface(const
Line& line,
Cell& cell);
100 [[nodiscard]]
const char*
what() const noexcept
override {
101 return message_.c_str();
110 std::string message_;
Geometry::Point Point
Definition: cell.cpp:18
Geometry::Line Line
Definition: cell.cpp:17
const char * what() const noexcept override
Definition: cell.h:100
void setMessage(std::string_view message)
Definition: cell.h:105
const Material & getMaterial() const noexcept
Definition: cell.h:27
void validate(const Cell &other) const
Definition: cell.cpp:29
std::size_t getMaterialID() const noexcept
Definition: cell.h:30
double getHeatCapacityAtFreq(std::size_t freq_index) const noexcept
Definition: cell.h:36
void scatterUpdate(Phonon &p) const noexcept
Definition: cell.h:70
Cell(Triangle cell, Sensor &sensor, double spec=1.)
Definition: cell.cpp:21
void initialUpdate(Phonon &p, const Material::Table &table) const noexcept
Definition: cell.h:64
void handleSurfaceCollision(Phonon &p, const Point &poi, double step_time) const noexcept
Definition: cell.cpp:111
void updateEmitTables() noexcept
Definition: cell.cpp:77
Point getRandPoint(double r1, double r2) const noexcept
Definition: cell.h:53
std::size_t getSensorID() const noexcept
Definition: cell.h:33
void updateHeatParams(const Phonon &p, std::size_t step) noexcept
Definition: cell.cpp:83
double getArea() const noexcept
Definition: cell.h:39
double getEmitEnergy(double t_eq) const noexcept
Definition: cell.cpp:53
void initialUpdate(Phonon &p) const noexcept
Definition: cell.h:67
void findTransitionSurface(Cell &other)
Definition: cell.cpp:89
double getSteadyTemp(std::size_t step=0) const noexcept
Definition: cell.h:45
bool setEmitSurface(const Line &line, double temp, double duration, double start_time)
Definition: cell.cpp:37
std::array< Line, 3 > getBoundaryLines() const noexcept
Definition: cell.cpp:119
const auto & getBoundaries() const noexcept
Definition: cell.h:48
double getInitEnergy(double t_eq) const noexcept
Definition: cell.cpp:46
double getInitTemp() const noexcept
Definition: cell.h:42
Definition: compositeSurface.h:17
Definition: material.h:15
std::size_t id() const noexcept
Definition: material.h:29
std::array< std::pair< double, double >, NUM_FREQ_BINS > Table
Definition: material.h:20
std::size_t getID() const noexcept
Definition: sensor.h:32
double getHeatCapacityAtFreq(std::size_t freq_index) const noexcept
Definition: sensor.h:41
double getInitTemp() const noexcept
Definition: sensor.h:44
const Material & getMaterial() const noexcept
Definition: sensor.h:35
void scatterUpdate(Phonon &p) const noexcept
Definition: sensor.cpp:44
double getSteadyTemp(std::size_t step=0) const noexcept
Definition: sensor.h:47
void initialUpdate(Phonon &p, const Material::Table &table) const noexcept
Definition: sensor.cpp:36
Geometry::Triangle Triangle
Definition: geometry.cpp:12
Definition: geometry.h:39
Definition: geometry.h:23
Definition: geometry.h:76
Point getRandPoint(double r1, double r2) const noexcept
Definition: geometry.cpp:237
double area() const noexcept
Definition: geometry.cpp:253