Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

each reflection should be handled as a Python class #189

Open
3 of 12 tasks
prjemian opened this issue Jun 23, 2021 · 5 comments
Open
3 of 12 tasks

each reflection should be handled as a Python class #189

prjemian opened this issue Jun 23, 2021 · 5 comments
Assignees
Labels
Milestone

Comments

@prjemian prjemian added this to the v1.1 milestone Jun 23, 2021
@prjemian prjemian self-assigned this Jun 23, 2021
@prjemian
Copy link
Contributor Author

Such as #143

prjemian added a commit that referenced this issue Jun 27, 2022
prjemian added a commit that referenced this issue Jun 27, 2022
prjemian added a commit that referenced this issue Jun 27, 2022
prjemian added a commit that referenced this issue Jun 27, 2022
prjemian added a commit that referenced this issue Jun 27, 2022
prjemian added a commit that referenced this issue Jun 27, 2022
prjemian added a commit that referenced this issue Jun 28, 2022
prjemian added a commit that referenced this issue Jun 29, 2022
prjemian added a commit that referenced this issue Jun 29, 2022
prjemian added a commit that referenced this issue Jun 29, 2022
prjemian added a commit that referenced this issue Jun 30, 2022
@prjemian
Copy link
Contributor Author

prjemian commented Jul 6, 2022

A reflection should be pre-configured with the names of the positioners it uses, both pseudos and reals.

prjemian added a commit that referenced this issue Jul 6, 2022
@prjemian
Copy link
Contributor Author

prjemian commented Jul 11, 2022

Notes

A reflection represents a specific coordination between:

  • a set of diffractometer angles in real-space (known here as reals), used by a specific diffractometer geometry
  • a set of crystalline coordinates in reciprocal-space (known here as pseudos), used by a specific computational engine
  • an incident wavelength

The names and ordering of the reals are specified by the diffractometer. The names and ordering of the pseudos are specified by the reciprocal-space computational engine.

A diffractometer may have several samples, each with their own list of reflections. The reciprocal-space computational engine cannot be changed once the diffractometer object is created.

Refactor, considering:

  • Each HklSample object has its own set of reflections.
  • A HklSample object (created in hkl.calc) needs to know the Diffractometer object to which it belongs.
    • Users call the HklSample.add_reflection() method for new reflections
    • The CalcRecip needs the diffractometer object to which it belongs to create the HklSample

prjemian added a commit that referenced this issue Jul 12, 2022
prjemian added a commit that referenced this issue Jul 12, 2022
prjemian added a commit that referenced this issue Jul 14, 2022
prjemian added a commit that referenced this issue Jul 14, 2022
@prjemian
Copy link
Contributor Author

Note that:

  • real axes might be renamed by the user
  • additional real axes might be defined which are not used in real:reciprocal space transformations
  • additional virtual axes might be defined which are combinations of other real-space axes

@prjemian
Copy link
Contributor Author

prjemian commented Oct 31, 2023

The DCReflection class (in #280) will enable this.

@prjemian prjemian modified the milestones: v1.2, v2.0 Nov 1, 2023
@prjemian prjemian added the hklpy2 For hklpy2 label May 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant