Targets

A collection of useful primatives for scattering and propagation modelling, including a meshedHorn function for consistent definition of Horn antennas.

Targets is named so because it generates objects for the purpose of scattering rays and calculating their contribution to the channel.

lyceanem.geometry.targets.linear_parabolic_reflector(diameter, focal_length, height, thickness, mesh_size, lip=False, lip_height=0.001, lip_width=0.001, file_name='Linear_Parabolic_Reflector.stl', ONELAB=True)[source]

Create a parabolic reflector with a specified diameter and focal length, and generate a mesh of points on the surface. If only the points on the front surface are required, then parabolic_surface() can be used instead. Alternatively if scattering points on all sides are desired, then the points from the reflector mesh may be used.

Parameters:
  • diameter (float) – Diameter of the parabolic reflector.

  • focal_length (float) – Focal length of the parabolic reflector.

  • height (float) – Height of the parabolic reflector. This is the height of the rectangular section which is used to intersect the parabolic reflector and create the final shape.

  • thickness (float) – Thickness of the reflector.

  • mesh_size (float) – Desired separation of the mesh points.

  • lip (bool, optional) – If True, adds a flat lip to the reflector. Default is False.

  • lip_height (float, optional) – Height of the reflector lip if lip is True. Default is 1e-3.

  • lip_width (float, optional) – Width of the reflector lip if lip is True. Default is 1e-3.

  • file_name (str, optional) – Name of the file to save the mesh. Default is “Parabolic_Reflector.stl”.

  • ONELAB (bool, optional) – If True, enables ONELAB for interactive geometry manipulation. Default is False.

Returns:

  • mesh (meshio.Mesh) – A mesh object containing the parabolic reflector.

  • aperture_points (meshio.Mesh) – A mesh object containing the points on the front surface of the parabolic reflector.

lyceanem.geometry.targets.linear_parabolic_surface(diameter, focal_length, height, mesh_size, lip=False, lip_width=0.001, file_name='Linear_Parabolic_Surface.stl', ONELAB=True)[source]

Create a linear parabolic surface with a specified diameter, focal length and height, and generate a mesh of points on the surface. This function is useful for generating the front surface of a parabolic reflector.

Parameters:
  • diameter (float) – Diameter of the parabolic surface.

  • focal_length (float) – Focal length of the parabolic surface.

  • height (float) – Height of the parabolic surface. This creates a rectangular section of the full parabolic surface.

  • mesh_size (float) – Desired separation of the mesh points.

  • lip (bool, optional) – If True, adds a flat lip to the surface. Default is False.

  • lip_width (float, optional) – Width of the surface lip if lip is True. Default is 1e-3.

  • file_name (str, optional) – Name of the file to save the mesh. Default is “Parabolic_Surface.stl”.

  • ONELAB (bool, optional) – If True, enables ONELAB for interactive geometry manipulation. Default is False.

Returns:

mesh – A mesh object containing the parabolic surface.

Return type:

meshio.Mesh

lyceanem.geometry.targets.meshedHorn(majorsize, minorsize, length, edge_width, flare_angle, grid_resolution, sides='front')[source]

A basic horn antenna, providing the aperture points, and the basic physical structure The horn is orientated with the centre of the aperture at the origin, and the boresight aligned with the positive z direction.

Parameters:
  • majorsize (float) – the width of the horn aperture in the x direction

  • minorsize (float) – the width of the horn aperture in the y direction

  • length (float) – the length of the horn structure

  • edge_width (float) – the width of the physical structure around the horn

  • flare_angle (float) – the taper angle of the horn

  • grid_resolution (float) – the spacing between the aperture points, should be half a wavelength at the frequency of interest

  • sides (str) – command for the mesh, default is ‘front’, and for a horn, this should not be changed.

Returns:

  • structure (meshio.Mesh) – the physical structure of the horn

  • mesh_points (meshio.Mesh) – the source points for the horn aperture

lyceanem.geometry.targets.meshedReflector(majorsize, minorsize, thickness, grid_resolution, sides='all')[source]

A helper function which creates a meshed cuboid with the front face center at the origin, and with the boresight aligned with the positive z direction

Parameters:
  • majorsize (float) – the width of the cuboid in the x direction

  • minorsize (float) – the width of the cuboid in the y direction

  • thickness (float) – the thickness of the cuboid structure

  • grid_resolution (float) – the spacing between the scattering points, should be half a wavelength at the frequency of interest

  • sides (str) –

    command for the mesh, default is ‘all’, creating a mesh of surface points on all sides of the cuboid, other options are ‘front’ which only creates points for the side aligned with the positive z direction, or ‘centres’,

    which creates a point for the centre of each side.

Returns:

  • reflector (meshio.Mesh) – the defined cuboid

  • mesh_points (meshio.Mesh) – the scattering points, spaced at grid_resolution seperation between each point, and with normal vectors from the populating surfaces

lyceanem.geometry.targets.parabolic_reflector(diameter, focal_length, thickness, mesh_size, lip=False, lip_height=0.001, lip_width=0.001, file_name='Parabolic_Reflector.stl', ONELAB=False)[source]

Create a parabolic reflector with a specified diameter and focal length, and generate a mesh of points on the surface. If only the points on the front surface are required, then parabolic_surface() can be used instead. Alternatively if scattering points on all sides are desired, then the points from the reflector mesh may be used.

Parameters:
  • diameter (float) – Diameter of the parabolic reflector.

  • focal_length (float) – Focal length of the parabolic reflector.

  • thickness (float) – Thickness of the reflector.

  • mesh_size (float) – Desired separation of the mesh points.

  • lip (bool, optional) – If True, adds a flat lip to the reflector. Default is False.

  • lip_height (float, optional) – Height of the reflector lip if lip is True. Default is 1e-3.

  • lip_width (float, optional) – Width of the reflector lip if lip is True. Default is 1e-3.

  • file_name (str, optional) – Name of the file to save the mesh. Default is “Parabolic_Reflector.stl”.

  • ONELAB (bool, optional) – If True, enables ONELAB for interactive geometry manipulation. Default is False.

Returns:

  • mesh (meshio.Mesh) – A mesh object containing the parabolic reflector.

  • aperture_points (meshio.Mesh) – A mesh object containing the points on the front surface of the parabolic reflector.

lyceanem.geometry.targets.parabolic_surface(diameter, focal_length, mesh_size, lip=False, lip_width=0.001, file_name='Parabolic_Surface.stl', ONELAB=False)[source]

Create a parabolic surface with a specified diameter and focal length, and generate a mesh of points on the surface. This function is useful for generating the front surface of a parabolic reflector.

Parameters:
  • diameter (float) – Diameter of the parabolic surface.

  • focal_length (float) – Focal length of the parabolic surface.

  • mesh_size (float) – Desired separation of the mesh points.

  • lip (bool, optional) – If True, adds a flat lip to the surface. Default is False.

  • lip_width (float, optional) – Width of the surface lip if lip is True. Default is 1e-3.

  • file_name (str, optional) – Name of the file to save the mesh. Default is “Parabolic_Surface.stl”.

  • ONELAB (bool, optional) – If True, enables ONELAB for interactive geometry manipulation. Default is False.

Returns:

mesh – A mesh object containing the parabolic surface.

Return type:

meshio.Mesh

lyceanem.geometry.targets.spherical_field(az_range, elev_range, outward_normals=False, field_radius=1.0)[source]

Create a spherical field of points, with normals, a triangle mesh, and areas calculated for each triangle and adjusted for each field point.

Parameters:
  • az_range (numpy.ndarray of float) – Azimuthal angle in degrees [0, 360].

  • elev_range (numpy.ndarray of float) – Elevation angle in degrees [-90, 90].

  • outward_normals (bool, optional) – If outward pointing normals are required, set as True

  • field_radius (float, optional) – The radius of the field, default is 1.0 m

Returns:

mesh – spherical field of points at specified azimuth and elevation angles, with meshed triangles

Return type:

meshio.Mesh