Properties of a
Classes give us properties¶
We make classes because they allow us to automate common calculations.
For example, all structures have a
density, which is easily calculated once you know the lattice and atomic sites. The formula to calculate is always the same, so we can automate the calculation.
You can access this and other properties through our structure object. Try typing
nacl_structure.density in the python terminal and hit enter. It should tell you the density of our structure:
Now what about other properties for the lattice, like volume, angles, and vectors?
For the sake of organization, the
Structure class has an associated class called
Lattice, and within the
lattice object we find properties like
volume. Try out these in your python terminal (only run one line at a time):
nacl_structure.lattice.volume nacl_structure.lattice.matrix nacl_structure.lattice.beta
Your outputs will be...
# EXPECTED OUTPUTS 46.09614820053437 array([[3.48543651, 0. , 2.01231771], [1.16181217, 3.28610106, 2.01231771], [0. , 0. , 4.02463542]]) 59.99999999999999
If you don't like to type long lines, there is a shortcut. We save the
Lattice object (here, we call it as
nacl_lat, but you can pick a different name) to a new variable name and then call its properties:
nacl_lat = nacl_structure.lattice nacl_lat.volume nacl_lat.matrix nacl_lat.beta
Note, outputs will be the same as above.
We can apply the same idea to other
Structure sub-classes, such as
Composition. This allows us to see properties related to composition:
nacl_compo = nacl_structure.composition nacl_compo.reduced_formula nacl_compo.elements
This will give outputs of...
# EXPECTED OUTPUTS Comp: Na1 Cl1 'NaCl' [Element Na, Element Cl] # <-- these are Element objects!
Keeping track of our variables¶
As you create new python objects and name them different things, you'll need help keep track of them. Fortunately, Spyder's variable explorer (a tab in top right window) let's us track them! Try double-clicking some of your variables and explore what Spyder can do: