neso_fame.wall.adjust_wall_resolution(points: Sequence[Point2D], target_size: float, min_size_factor: float = 0.1, angle_threshold: float = 0.39269908169872414, register_segment: Callable[[AcrossFieldCurve], Quad] | None = None, system: CoordinateSystem = CoordinateSystem.CYLINDRICAL) list[Point2D]

Interpolate the points in the tokamak wall to the desired resolution.

This will adjust the spacing of the points so that each segment connnecting them will have approximately the target length. Where the segments are fairly smooth, cubic interpolation will be used. However, sharp corners will be preserved.

Parameters:
points: Sequence[Point2D]

The initial set of points describing the wall.

target_size: float

The desired size of segments on the wall. Note that in the result the segments can be up to 1.5 times larger than this.

min_size_factor: float = 0.1

The minimum size for a segment, as a fraction of the target size. If a segment is smaller than this it will be combined with an adjacent segment.

angle_threshold: float = 0.39269908169872414

The minimum angle between two segments for which to preserve the sharp corner.

register_segment: Callable[[AcrossFieldCurve], Quad] | None = None

A function which can produce quad elements for a segment of the wall. These segments won’t be used in this method, but it is assumed that the callback will register or cache them for use when constructing prisms in future. This is useful because it allows this method to pass in higher-order curvature information.

system: CoordinateSystem = CoordinateSystem.CYLINDRICAL

The coordinate system to use.

Return type:

A more evely spaced set of points describing the wall.


Last update: Sep 23, 2024