artist.field.surface

Classes

Surface

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, ARTIST will 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, ARTIST will 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].