jarvis.analysis.interface package¶
Submodules¶
jarvis.analysis.interface.zur module¶
Design interface using Zur algorithm and Anderson rule.
-
class
jarvis.analysis.interface.zur.ZSLGenerator(max_area_ratio_tol=0.09, max_area=400, max_length_tol=0.03, max_angle_tol=0.01)[source]¶ Bases:
objectUses Zur algorithm to find best matched interfaces.
This class is modified from pymatgen.
-
generate_sl_transformation_sets(film_area, substrate_area)[source]¶ Generate transformation sets for film/substrate.
The transformation sets map the film and substrate unit cells to super lattices with a maximum area.
Args:
film_area(int): the unit cell area for the film.
substrate_area(int): the unit cell area for the substrate.
- Returns:
- transformation_sets: a set of transformation_sets defined as:
- 1.) the transformation matricies for the film to create a super lattice of area i*film area 2.) the tranformation matricies for the substrate to create a super lattice of area j*film area
-
get_equiv_transformations(transformation_sets, film_vectors, substrate_vectors)[source]¶ Apply the transformation_sets to the film and substrate vectors.
Generate super-lattices and checks if they matches. Returns all matching vectors sets.
- Args:
- transformation_sets(array): an array of transformation sets:
- each transformation set is an array with the (i,j) indicating the area multipes of the film and subtrate it corresponds to, an array with all possible transformations for the film area multiple i and another array for the substrate area multiple j.
film_vectors(array): film vectors to generate super lattices.
- substrate_vectors(array): substrate vectors to generate super
- lattices
-
-
jarvis.analysis.interface.zur.gen_sl_transform_matricies(area_multiple)[source]¶ Generate the transformation matricies.
Convert a set of 2D vectors into a super lattice of integer area multiple as proven in Cassels: Cassels, John William Scott. An introduction to the geometry of numbers. Springer Science & Business Media, 2012.
- Args:
- area_multiple(int): integer multiple of unit cell area for super lattice area.
- Returns:
- matrix_list: transformation matricies to covert unit vectors to super lattice vectors.
-
jarvis.analysis.interface.zur.get_hetero_type(A={}, B={})[source]¶ Provide heterojunction classification using Anderson rule.
-
jarvis.analysis.interface.zur.make_interface(film='', subs='', atol=1, ltol=0.05, max_area=500, max_area_ratio_tol=1.0, seperation=3.0, vacuum=8.0, apply_strain=False)[source]¶ Use as main function for making interfaces/heterostructures.
Return mismatch and other information as info dict.
- Args:
film: top/film material.
subs: substrate/bottom/fixed material.
seperation: minimum seperation between two.
vacuum: vacuum will be added on both sides. So 2*vacuum will be added.
-
jarvis.analysis.interface.zur.mismatch_strts()[source]¶ Return mismatch and other information as info dict.
Deprecated, preserved here so legacy imports work.
-
jarvis.analysis.interface.zur.reduce_vectors(a, b)[source]¶ Generate independent and unique basis vectors based on Zur et al.
-
jarvis.analysis.interface.zur.rel_angle(vec_set1, vec_set2)[source]¶ Calculate the relative angle between two vector sets.
- Args:
vec_set1(array[array]): an array of two vectors.
vec_set2(array[array]): second array of two vectors.
Module contents¶
Modules to generate interface/heterostructure.