sisl.geom.AtomXYZ
- class sisl.geom.AtomXYZ
Bases:
AtomCategoryClassify atoms based on coordinates
- Parameters:
*args (
Shape) – any shape that implements Shape.within**kwargs –
keys are operator specifications and values are used in those specifications. The keys are split into 3 sections
<options>_<direction>_<operator>optionsare made of combinations of['a', 'f']i.e."af","f"or"a"are all valid. Anatakes the absolute value,fmeans a fractional coordinate. This part is optional.directionis anything that gets parsed insisl.utils.misc.directioneither one of{0, "X", "x", "a", 1, "Y", "y", "b", 2, "Z", "z", "c"}.operatoris a name for an operator defined in theoperatormodule.
For instance
a_z_lt=3.will be equivalent to the boolean operationnp.fabs(geometry.xyz[:, 2]) < 3..Optionally one need not specify the operator in which case one should provide an argument of two values.
For instance
c=(3., 6.)will be equivalent to the boolean operation3. <= geometry.xyz[:, 2]) <= 6..
- x, y, z, fx, fy, fz, ax, ay, az
Shortcuts for creating an
AtomXYZcategory.AtomXYZ.x(-2, 3) == AtomXYZ(x=(-2, 3)) AtomXYZ.fx < 3 == AtomXYZ.fx(None, 3) == AtomXYZ(f_x=(None, 3)) == AtomXYZ(f_x_lt=3)
- Type:
Methods
categorize(geometry[, atoms])Do categorization
is_class(name[, case])Query whether
namematches the class name by removing a prefixkwkw(**kwargs)Create categories based on keywords
Attributes
Name of category
- ax
alias of
Atomax
- ay
alias of
Atomay
- az
alias of
Atomaz
- fx
alias of
Atomfx
- fy
alias of
Atomfy
- fz
alias of
Atomfz
- x
alias of
Atomx
- y
alias of
Atomy
- z
alias of
Atomz
- categorize(geometry, atoms=None)[source]
Do categorization
- Parameters:
geometry (Geometry)
atoms (AtomsIndex)
- classmethod is_class(name, case=True)
Query whether
namematches the class name by removing a prefixkwThis is important to ensure that users match the full class name by omitting the prefix returned from this method.
This is an abstract method to ensure sub-classes of Category implements it.
For instance:
class MyCategory(Category): @classmethod def is_class(cls, name): # strip "My" and do comparison return cl.__name__.lower()[2:] == name.lower()
would enable one to compare against the base category scheme.
This has the option to search case-sensitivity or not.
- Return type:
- classmethod kw(**kwargs)
Create categories based on keywords
This will search through the inherited classes and return and & category object for all keywords.
Since this is a class method one should use this on the base category class in the given section of the code.
- property name
Name of category