artist.field.heliostat_field ============================ .. py:module:: artist.field.heliostat_field Attributes ---------- .. autoapisummary:: artist.field.heliostat_field.log Classes ------- .. autoapisummary:: artist.field.heliostat_field.HeliostatField Module Contents --------------- .. py:data:: log A logger for the heliostat field. .. py:class:: HeliostatField(heliostat_groups: collections.abc.Sequence[artist.field.heliostat_group.HeliostatGroup], device: torch.device | None = None) Initialize the heliostat field with heliostat groups. Parameters ---------- heliostat_groups : Sequence[HeliostatGroup] A list containing all heliostat groups. device : 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:: heliostat_groups .. py:attribute:: number_of_heliostat_groups .. py:attribute:: number_of_heliostats_per_group .. py:method:: from_hdf5(config_file: h5py.File, prototype_surface: artist.scenario.configuration_classes.SurfaceConfig, prototype_kinematic: dict[str, str | torch.Tensor], prototype_actuators: dict[str, str | torch.Tensor], number_of_surface_points_per_facet: torch.Tensor, change_number_of_control_points_per_facet: torch.Tensor | None = None, device: torch.device | None = None) -> typing_extensions.Self :classmethod: Load a heliostat field from an HDF5 file. Parameters ---------- config_file : h5py.File The HDF5 file containing the configuration to be loaded. prototype_surface : SurfaceConfig The prototype for the surface configuration to be used if a heliostat has no individual surface. prototype_kinematic : dict[str, str | torch.Tensor] The prototype for the kinematic, including type, initial orientation and deviations. prototype_actuators : dict[str, str | torch.Tensor] The prototype for the actuators, including type and parameters. number_of_surface_points_per_facet : torch.Tensor The number of sampling points along each direction of each 2D facet. Tensor of shape [2]. change_number_of_control_points_per_facet : torch.Tensor | None The updated number of control points along each direction of each 2D facet (default is None). Providing this parameter should be done with caution. In a scenario with surfaces generated by deflectometry, this parameter should be None, otherwise the deflectometry surface will be overwritten and become ideal. For ideal surfaces this parameter can be used to change the number of control points specified in the .h5 scenario. Tensor of shape [2]. device : 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. Raises ------ ValueError If neither prototypes nor individual heliostat parameters are provided. Returns ------- HeliostatField The heliostat field loaded from the HDF5 file.