artist.field.surface
Classes
Initialize the surface of one heliostat. |
Module Contents
- class artist.field.surface.Surface(surface_config: artist.scenario.configuration_classes.SurfaceConfig, device: torch.device | None = None)
Initialize the surface of one heliostat.
The heliostat surface consists of one or more facets. The surface only describes the mirrors on the heliostat, not the whole heliostat. The surface can be aligned through the kinematic and its actuators. Each surface and thus each facet is defined through NURBS, the discrete surface points and surface normals can be retrieved.
Parameters
- surface_configSurfaceConfig
The surface configuration parameters used to construct the surface.
- devicetorch.device | None
The device on which to perform computations or load tensors and models (default is None). If None,
ARTISTwill automatically select the most appropriate device (CUDA or CPU) based on availability and OS.
- nurbs_facets = []
- get_surface_points_and_normals(number_of_points_per_facet: torch.Tensor, device: torch.device | None = None) tuple[torch.Tensor, torch.Tensor]
Calculate all surface points and normals from all facets.
Parameters
- number_of_points_per_facettorch.Tensor
The number of sampling points along each direction of each 2D facet. Tensor of shape [2].
- devicetorch.device | None
The device on which to perform computations or load tensors and models (default is None). If None,
ARTISTwill automatically select the most appropriate device (CUDA or CPU) based on availability and OS.
Returns
- torch.Tensor
The surface points for one heliostat, tensor of shape [number_of_facets, number_of_surface_points_per_facet, 4].
- torch.Tensor
The surface normals for one heliostat, tensor of shape [number_of_facets, number_of_surface_normals_per_facet, 4].