aws-cqc / aws-cqc/DeviceLayout.jl

Improve meander interface

Open
#21 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Julia
Stars
67
Forks
14
Avg merge
1d 19h
Merged PRs (30d)
24

Description

We have a few methods like `meander!`, `bellow!` (should that be `billow!`?), and `radiator!`. These seem ad-hoc and can be a little hard to distinguish/understand from their documentation (let alone the names), even if they're clear enough once you see them used. It would be nice to have a clear unifying specification for various types of meanders. I think we almost never want to give lengths of particular segments or directions of particular turns—usually one meanders to create a certain path length within a given region while reaching a certain point.

I think the DemoQPU17 example makes some progress towards this with [`meander_waypoints`](https://github.com/aws-cqc/DeviceLayout.jl/blob/89c9228ef5c3593070ef47c44c8141f19efd9067/examples/DemoQPU17/routing.jl#L136), where the specification gives you a rectangle you're allowed to fill and an additional length you need to create (beyond what you get by just going straight). If possible I'd like to accommodate more variations (entry and exit points not necessarily opposite each other and in the rectangle corner, different meander directions) and add better validation/error messages.

(We could then use that in a length-constrained meandering `RouteRule`.)

Contributor guide

Open the contributing guide

Research direction

Start with examples/DemoQPU17/routing.jl at meander_waypoints, then compare it with meander!, bellow!, and radiator!. The work is complete when the supported entry and exit points, meander directions, added length, validation, and error behavior are unified well enough to support a length-constrained RouteRule.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
api, computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.