29 lines
843 B
C++
29 lines
843 B
C++
#ifndef FESA_ELEMENTS_THERMAL_SHELL_H_
|
|
#define FESA_ELEMENTS_THERMAL_SHELL_H_
|
|
|
|
#include <array>
|
|
#include <cstddef>
|
|
|
|
#include "fesa/math/matrix.h"
|
|
#include "fesa/math/vector3.h"
|
|
|
|
namespace fesa {
|
|
|
|
/// @brief Local Q4 times two-segment P2 transient-heat shell kernel.
|
|
class ThermalShell final {
|
|
public:
|
|
ThermalShell(std::array<std::size_t, 4> node_indices,
|
|
std::array<Vector3, 4> coordinates, double conductivity,
|
|
double density, double specific_heat, double thickness);
|
|
const std::array<std::size_t, 4>& NodeIndices() const noexcept;
|
|
const Matrix& Conductivity() const noexcept;
|
|
const Matrix& Capacity() const noexcept;
|
|
private:
|
|
std::array<std::size_t, 4> node_indices_;
|
|
Matrix conductivity_{20U, 20U};
|
|
Matrix capacity_{20U, 20U};
|
|
};
|
|
|
|
} // namespace fesa
|
|
#endif // FESA_ELEMENTS_THERMAL_SHELL_H_
|