Generalize constraints to observables #47
Labels
No labels
bug
duplicate
enhancement
prospective
question
todo
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: glen/dyna3#47
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Idea
All of the constraints we've considered so far can be expressed by fixing a real-valued parameter of the assembly. Some constraints come directly in this form:
Other constraints can be rephrased in this form:
It might therefore be convenient to unify the interface elements for measuring and constraining real-valued observables.
Benefits
Observables would reduce clutter by presenting the same information and controls with fewer interface elements. When an observable is constrained, measuring its actual value is the same as reading off its desired value (as long as the constraints are satisfied), so there's little need for an observable to me measured and constrained separately.
Observables would also reduce the need for inactive constraints, because switching an observable from constraint mode to measurement mode is roughly equivalent to deactivating it. However, an inactive constraint does carry information: the desired value of the observable. Not every implementation of observables would preserve this information in measurement mode.
A good thought exercise here is to contemplate constraints we might be interested in imposing that do not mesh well with the "fixing a scalar observable". Here are some we definitely want to be able to do where it may not be crystal clear what measurement we are constraining:
Some other constraints that seem as though they would fit in this paradigm:
Should we go through these, all of which it's likely or at least conceivable we will eventually want to be able to support, and see if they can all be captured by this paradigm in some not-too-contrived way? If so, what might we do if there are some which really feel difficult to be shoehorned into the "constraint-is-a-frozen-observable" paradigm?