artist.field.solar_tower ======================== .. py:module:: artist.field.solar_tower Attributes ---------- .. autoapisummary:: artist.field.solar_tower.log Classes ------- .. autoapisummary:: artist.field.solar_tower.SolarTower Module Contents --------------- .. py:data:: log A logger for the solar tower. .. py:class:: SolarTower(target_areas: collections.abc.Sequence[artist.field.tower_target_areas.TowerTargetAreas], device: torch.device | None = None) Initialize the solar tower with its target areas. Parameters ---------- target_areas : Sequence[TowerTargetAreas] A list containing all target area groups. The expected order is planar target areas first, followed by cylindrical target areas. device : torch.device | None The device on which to perform computations or load tensors and models (default is None). If None, ``ARTIST`` will automatically select the most appropriate device (CUDA or CPU) based on availability and OS. .. py:attribute:: target_areas .. py:attribute:: number_of_target_area_types .. py:attribute:: number_of_target_areas_per_type .. py:attribute:: target_name_to_index .. py:attribute:: index_to_target_area :value: [] .. py:method:: from_hdf5(config_file: h5py.File, device: torch.device | None = None) -> Self :classmethod: Load a solar tower from an HDF5 file. Parameters ---------- config_file : h5py.File The HDF5 file containing the configuration to be loaded. device : torch.device | None The device on which to perform computations or load tensors and models (default is None). If None, ``ARTIST`` will automatically select the most appropriate device (CUDA or CPU) based on availability and OS. Returns ------- Self A ``SolarTower`` instance loaded from the HDF5 file. .. py:method:: get_centers_of_target_areas(target_area_indices: torch.Tensor, device: torch.device | None = None) -> torch.Tensor Get the center coordinates of the specified target areas. For planar target areas, the center is returned directly. For cylindrical target areas, the center is offset outward along the surface normal by the cylinder radius, giving the point on the curved surface facing the heliostats. Parameters ---------- target_area_indices : torch.Tensor Global target area indices (planar first, cylindrical second) for which to retrieve the center coordinates. Shape is ``[number_of_active_heliostats]``. device : torch.device | None The device on which to perform computations or load tensors and models (default is None). If None, ``ARTIST`` will automatically select the most appropriate device (CUDA or CPU) based on availability and OS. Returns ------- torch.Tensor Center coordinates of the requested target areas in homogeneous coordinates. Shape is ``[number_of_active_heliostats, 4]``.