class neso_fame.mesh.Quad(LazilyOffsetable)

Representation of a four-sided polygon (quadrilateral).

This is done using information about the shape of the magnetic field and the line where the quad intersects the x3=0 plane. You can choose to divide the quad into a number of conformal sub-quads, evenely spaced in x3, and pick one of them.

Public members

subdivision : int = 0

The index for the quad being represented after it has been split into num_divisions in teh x3 direction.

num_divisions : int = 1

The number of conformal quads to split this into along the x3 direction.

north_start_weight : float = 0.0

The extent to which the south edge of the quad stays fixed at the starting poloidal position. A value of 0 corresponds to it completely following the field line while 1 means it doesn’t follow it at all (the x1 and x2 coordinates are unchanged as moving in the x3 direction). Values in between result in linear interpolation between these two extremes.

south_start_weight : float = 0.0

The extent to which the south edge of the quad stays fixed at the starting poloidal position. A value of 0 corresponds to it completely following the field line while 1 means it doesn’t follow it at all (the x1 and x2 coordinates are unchanged as moving in the x3 direction). Values in between result in linear interpolation between these two extremes.

shape : AcrossFieldCurve

Desribes the shape of the quad in the poloidal plane from which it is projected.

field : FieldTracer

The underlying magnetic field to which the quadrilateral is aligned

dx3 : float

The width of the quad(s) in the x3-direction, before subdivideding.

Constructors

Quad(shape: AcrossFieldCurve, field: FieldTracer, dx3: float, ...)

Initialize self. See help(type(self)) for accurate signature.

Special methods

__iter__() Iterator[FieldAlignedCurve | StraightLine]

Iterate over the two curves defining the edges of the quadrilateral.

__repr__()

Return repr(self).

__eq__(other)

Return self==value.

__hash__()

Return hash(self).

Methods

get_field_line(s: float) FieldAlignedCurve | StraightLine

Get the field lign passing through location s of Quad.shape.

corners() Coords

Return the points corresponding to the corners of the quadrilateral.

subdivide(num_divisions: int) Iterator[Quad]

Split the quad into the specified number of pieces.

make_flat_quad() Quad

Create a new version of this Quad which is flat in the poloidal plane.

Properties

property x3_offset : float

Return the offset in the x3 direction.

property is_offset : bool

Indicate whether the object has been offset.


Last update: Nov 07, 2024