feat: add thermal semantic domain model

This commit is contained in:
KOKO\Mimi
2026-09-29 18:33:44 +09:00
parent e6fd9e9e6b
commit 254247efc1
11 changed files with 755 additions and 2 deletions
@@ -0,0 +1,48 @@
#ifndef FESA_MATERIALS_ISOTROPIC_THERMAL_MATERIAL_H_
#define FESA_MATERIALS_ISOTROPIC_THERMAL_MATERIAL_H_
#include <string>
#include "fesa/core/status.h"
#include "fesa/materials/material.h"
namespace fesa {
/// @brief Stores homogeneous isotropic heat-conduction material properties.
class IsotropicThermalMaterial final : public Material {
public:
/// @brief Creates a material with finite positive conductivity, density, and
/// specific heat.
static Result<IsotropicThermalMaterial> Create(
SourceEntityId source_id, std::string name, double conductivity,
double density, double specific_heat, SourceLocation location);
MaterialKind Kind() const noexcept override;
const SourceEntityId& SourceId() const noexcept override;
const SourceLocation& Location() const noexcept override;
/// @brief Returns the source material name.
const std::string& Name() const noexcept;
/// @brief Returns conductivity in the active consistent unit system.
double Conductivity() const noexcept;
/// @brief Returns mass density in the active consistent unit system.
double Density() const noexcept;
/// @brief Returns specific heat in the active consistent unit system.
double SpecificHeat() const noexcept;
private:
IsotropicThermalMaterial(SourceEntityId source_id, std::string name,
double conductivity, double density,
double specific_heat, SourceLocation location);
SourceEntityId source_id_;
std::string name_;
double conductivity_;
double density_;
double specific_heat_;
SourceLocation location_;
};
} // namespace fesa
#endif // FESA_MATERIALS_ISOTROPIC_THERMAL_MATERIAL_H_
+1 -1
View File
@@ -6,7 +6,7 @@
namespace fesa {
/// @brief Identifies the supported concrete material semantics.
enum class MaterialKind { kIsotropicLinearElastic };
enum class MaterialKind { kIsotropicLinearElastic, kIsotropicThermal };
/// @brief Provides stable identity for a Domain-owned material definition.
class Material {