Source code for tidy3d.components.heat_spec

"""Defines heat material specifications"""
from __future__ import annotations

from abc import ABC

import pydantic.v1 as pd

from .types import Union
from .base import Tidy3dBaseModel
from ..constants import SPECIFIC_HEAT_CAPACITY, THERMAL_CONDUCTIVITY


# Liquid class
class AbstractHeatSpec(ABC, Tidy3dBaseModel):
    """Abstract heat material specification."""


[docs] class FluidSpec(AbstractHeatSpec): """Fluid medium. Example ------- >>> solid = FluidSpec() """
[docs] class SolidSpec(AbstractHeatSpec): """Solid medium. Example ------- >>> solid = SolidSpec( ... capacity=2, ... conductivity=3, ... ) """ capacity: pd.PositiveFloat = pd.Field( title="Heat capacity", description=f"Volumetric heat capacity in unit of {SPECIFIC_HEAT_CAPACITY}.", units=SPECIFIC_HEAT_CAPACITY, ) conductivity: pd.PositiveFloat = pd.Field( title="Thermal conductivity", description=f"Thermal conductivity of material in units of {THERMAL_CONDUCTIVITY}.", units=THERMAL_CONDUCTIVITY, )
HeatSpecType = Union[FluidSpec, SolidSpec]