20 Surface(
Line surface_line,
Cell& cell,
double specularity,
int norm_sign);
34 return surface_line_.
contains(point);
40 return surface_line_.
length;
54 return (surface_line_ == rhs.surface_line_);
57 return surface_line_ > rhs.surface_line_;
61 const Line surface_line_;
84 [[nodiscard]]
double getTemp() const noexcept {
Geometry::Point Point
Definition: cell.cpp:18
Geometry::Line Line
Definition: cell.cpp:17
double getTemp() const noexcept
Definition: surface.h:84
const Material & material_
Definition: surface.h:96
void handlePhonon(Phonon &p, double step_time) const noexcept
Definition: surface.cpp:62
const Material::Table & getTable() const noexcept
Definition: surface.h:87
double getEmitDuration() const noexcept
Definition: surface.h:81
double duration_
Definition: surface.h:99
double temp_
Definition: surface.h:97
EmitSurface(Line surface_line, Cell &cell, double specularity, int norm_sign, const Material &mat, double temp, double duration, double start_time)
Definition: surface.cpp:47
double getPhononTime() const noexcept
Definition: surface.cpp:68
double start_time_
Definition: surface.h:100
const Material::Table * emit_table_
Definition: surface.h:98
void updateTable()
Definition: surface.h:91
Definition: material.h:15
const Table * emitTable(double temp) const
Definition: material.h:53
std::array< std::pair< double, double >, NUM_FREQ_BINS > Table
Definition: material.h:20
bool contains(const Point &point) const noexcept
Definition: surface.h:33
Vector2D getNormal() const noexcept
Definition: surface.h:46
double getSpecularity() const noexcept
Definition: surface.h:42
bool operator==(const Surface &rhs) const
Definition: surface.h:53
Surface(Surface &&) noexcept=default
void setNormal(Vector2D normal) noexcept
Definition: surface.h:49
double getLength() const noexcept
Definition: surface.h:39
bool operator>(const Surface &rhs) const
Definition: surface.h:56
Cell & cell_
Definition: surface.h:64
Point getRandPoint(double r1) const noexcept
Definition: surface.h:36
Vector2D normal_
Definition: surface.h:65
Surface(const Surface &)=default
const Line & getSurfaceLine() const noexcept
Definition: surface.h:30
const double specularity_
Definition: surface.h:66
void boundaryHandlePhonon(Phonon &p) const noexcept
Definition: surface.cpp:35
virtual ~Surface()=default
void redirectPhonon(Phonon &p) const noexcept
Definition: surface.cpp:27
Surface(Line surface_line, Cell &cell, double specularity, int norm_sign)
Definition: surface.cpp:15
Definition: surface.h:104
void handlePhonon(Phonon &p) const noexcept
Definition: surface.cpp:72
Geometry::Vector2D Vector2D
Definition: geometry.cpp:9
Definition: geometry.h:39
Point getRandPoint(double r1) const noexcept
Definition: geometry.cpp:142
bool contains(const Line &other) const noexcept
Definition: geometry.cpp:77
double length
Definition: geometry.h:48
Definition: geometry.h:23
Definition: geometry.h:14