Skip to content

adding an orix.crystal module #617

@argerlt

Description

@argerlt

I was looking at finishing #563 (replacing quaternion.symmetry.Symmetry with quaternion.symmetry.PointGroup) and started to think about this conversation from last year (paraphrased slightly):

... but to maybe put a finer point to [the] suggestion. My problem is the names of the modules.

...from orix.crystal_map import Phase confused me for a for a long while. And looking through the modules now I don't really have the first guess as to where the symmetries and point groups would be imported.

Quaternion -> transform
Crystal_map-> ???

Originally posted by @CSSFrancis in #573

My problem is the names of the modules.

I agree with you, but I don't think it's worth it to move classes. I suggest to keep it as-is just because current users are used to it.

The module names are historical. When we introduced the crystal map, we first thought of that, and then that we needed a class for crystallographic phases (symmetry + unit cell). The class was placed in the crystal map module since it was to be used there. Then, of course, it became required for crystal directions (the Miller class), and suddenly it doesn't make much sense for the phase class to be in the crystal map module.

looking through the modules now I don't really have the first guess as to where the symmetries and point groups would be imported

The symmetry class was placed in the quaternion module because it subclasses the quaternion class. I would not do it like that if I were to write the class again, but it's not worth it to change that fact, I think.

Originally posted by @hakonanes in #573

Before I spend a bunch of time making a new class in quaternion.symmetry, what are people's thoughts on adding an orix.xtal module that contains Phase, PhaseList, Symmetry, and PointGroup? IE, take all the scattered class functions from across orix that deal with symmetry and crystallogrphy and put them in one spot?

This, to me, would be the most logical rearrangement, and we could leave behind warning functions for a few versions that reference the Class's new locations. Since they are major functionality change as well, we could even copy what @ericpre did in rsciio and leave the warnings in until orix 1.0.0.

Metadata

Metadata

Assignees

No one assigned

    Labels

    devPackage maintenance

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions