Skip to content

Commit 52abc6f

Browse files
authored
Merge pull request #244 from Exabyte-io/update/SOF-7650-1
Update/SOF0-7650-1 update: helper functions names
2 parents 682dd51 + 47b09f4 commit 52abc6f

File tree

25 files changed

+243
-111
lines changed

25 files changed

+243
-111
lines changed

src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/__init__.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@
22
InterfaceConfiguration,
33
InterfaceBuilder,
44
InterfaceBuilderParameters,
5-
create_simple_interface_between_slabs,
5+
create_interface_simple_between_slabs,
66
)
77
from .commensurate import (
8-
create_commensurate_interface,
8+
create_interface_commensurate,
99
get_commensurate_strained_configurations,
1010
)
1111
from .enums import StrainModes
1212
from .twisted import (
1313
TwistedNanoribbonsInterfaceConfiguration,
14-
create_twisted_interface,
14+
create_interface_twisted,
1515
)
1616
from .utils import get_optimal_film_displacement, get_slab, remove_duplicate_interfaces
1717
from .zsl import (
18-
create_zsl_interface,
19-
create_zsl_interface_between_slabs,
18+
create_interface_zsl,
19+
create_interface_zsl_between_slabs,
2020
)
2121

2222
__all__ = [
@@ -25,16 +25,16 @@
2525
"InterfaceBuilder",
2626
"InterfaceBuilderParameters",
2727
# Simple interface
28-
"create_simple_interface_between_slabs",
28+
"create_interface_simple_between_slabs",
2929
# ZSL interface
30-
"create_zsl_interface",
31-
"create_zsl_interface_between_slabs",
30+
"create_interface_zsl",
31+
"create_interface_zsl_between_slabs",
3232
# Commensurate interface
33-
"create_commensurate_interface",
33+
"create_interface_commensurate",
3434
"get_commensurate_strained_configurations",
3535
# Twisted interface
3636
"TwistedNanoribbonsInterfaceConfiguration",
37-
"create_twisted_interface",
37+
"create_interface_twisted",
3838
# Utilities
3939
"get_optimal_film_displacement",
4040
"get_slab",
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
from .configuration import InterfaceConfiguration
22
from .builder import InterfaceBuilder
33
from .build_parameters import InterfaceBuilderParameters
4-
from .helpers import create_simple_interface_between_slabs
4+
from .helpers import create_interface_simple_between_slabs
55

66
__all__ = [
77
"InterfaceConfiguration",
88
"InterfaceBuilder",
99
"InterfaceBuilderParameters",
10-
"create_simple_interface_between_slabs",
10+
"create_interface_simple_between_slabs",
1111
]

src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/helpers.py

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import List, Optional
1+
from typing import List, Optional, Tuple, Union
22

33
from mat3ra.code.array_with_ids import ArrayWithIds
44

@@ -8,11 +8,12 @@
88
from .configuration import InterfaceConfiguration
99
from ......analyze.interface import InterfaceAnalyzer
1010
from ......analyze.slab import SlabMaterialAnalyzer
11+
from ......build.pristine_structures.two_dimensional.slab.helpers import create_slab
1112
from ......build_components import MaterialWithBuildMetadata
1213
from ......build_components.entities.core.two_dimensional.vacuum.configuration import VacuumConfiguration
1314

1415

15-
def create_simple_interface_between_slabs(
16+
def create_interface_simple_between_slabs(
1617
substrate_slab: MaterialWithBuildMetadata,
1718
film_slab: MaterialWithBuildMetadata,
1819
gap: Optional[float] = None,
@@ -61,3 +62,73 @@ def create_simple_interface_between_slabs(
6162
)
6263
interface = builder.get_material(config)
6364
return interface
65+
66+
67+
def create_interface_simple(
68+
substrate_crystal: Union[Material, MaterialWithBuildMetadata],
69+
film_crystal: Union[Material, MaterialWithBuildMetadata],
70+
substrate_miller_indices: Tuple[int, int, int] = (0, 0, 1),
71+
film_miller_indices: Tuple[int, int, int] = (0, 0, 1),
72+
substrate_number_of_layers: int = 1,
73+
film_number_of_layers: int = 1,
74+
substrate_termination_formula: Optional[str] = None,
75+
film_termination_formula: Optional[str] = None,
76+
substrate_xy_supercell_matrix: List[List[int]] = [[1, 0], [0, 1]],
77+
film_xy_supercell_matrix: List[List[int]] = [[1, 0], [0, 1]],
78+
gap: Optional[float] = None,
79+
vacuum: float = 10.0,
80+
xy_shift: List[float] = [0, 0],
81+
use_conventional_cell: bool = True,
82+
reduce_result_cell_to_primitive: bool = False,
83+
) -> Material:
84+
"""
85+
Create an interface between two crystal materials by first creating slabs and then stacking them.
86+
No strain matching is performed, the interface is created as a simple stack of two slabs.
87+
88+
Args:
89+
substrate_crystal (Union[Material, MaterialWithBuildMetadata]): Substrate crystal material.
90+
film_crystal (Union[Material, MaterialWithBuildMetadata]): Film crystal material.
91+
substrate_miller_indices (Tuple[int, int, int]): Miller indices for the substrate slab surface.
92+
film_miller_indices (Tuple[int, int, int]): Miller indices for the film slab surface.
93+
substrate_number_of_layers (int): Number of atomic layers in the substrate slab.
94+
film_number_of_layers (int): Number of atomic layers in the film slab.
95+
substrate_termination_formula (Optional[str]): Formula of the termination for substrate slab.
96+
film_termination_formula (Optional[str]): Formula of the termination for film slab.
97+
substrate_xy_supercell_matrix (List[List[int]]): Supercell matrix for substrate slab xy plane.
98+
film_xy_supercell_matrix (List[List[int]]): Supercell matrix for film slab xy plane.
99+
gap (Optional[float]): Gap between the two materials, in Angstroms.
100+
vacuum (float): Size of the vacuum layer in Angstroms.
101+
xy_shift (List[float]): Shift in x and y directions, in Angstroms.
102+
use_conventional_cell (bool): Whether to use conventional cell for crystals.
103+
reduce_result_cell_to_primitive (bool): Whether to reduce result cell to primitive.
104+
105+
Returns:
106+
Material: The interface material.
107+
"""
108+
substrate_slab = create_slab(
109+
crystal=substrate_crystal,
110+
miller_indices=substrate_miller_indices,
111+
number_of_layers=substrate_number_of_layers,
112+
vacuum=0,
113+
termination_formula=substrate_termination_formula,
114+
xy_supercell_matrix=substrate_xy_supercell_matrix,
115+
use_conventional_cell=use_conventional_cell,
116+
)
117+
film_slab = create_slab(
118+
crystal=film_crystal,
119+
miller_indices=film_miller_indices,
120+
number_of_layers=film_number_of_layers,
121+
vacuum=0,
122+
termination_formula=film_termination_formula,
123+
xy_supercell_matrix=film_xy_supercell_matrix,
124+
use_conventional_cell=use_conventional_cell,
125+
)
126+
127+
return create_interface_simple_between_slabs(
128+
substrate_slab=substrate_slab,
129+
film_slab=film_slab,
130+
gap=gap,
131+
vacuum=vacuum,
132+
xy_shift=xy_shift,
133+
reduce_result_cell_to_primitive=reduce_result_cell_to_primitive,
134+
)
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
from .helpers import create_commensurate_interface, get_commensurate_strained_configurations
1+
from .helpers import create_interface_commensurate, get_commensurate_strained_configurations
22

33
__all__ = [
4-
"create_commensurate_interface",
4+
"create_interface_commensurate",
55
"get_commensurate_strained_configurations",
66
]

src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/commensurate/helpers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def get_commensurate_strained_configurations(
8080
return [selected_config.substrate_configuration, selected_config.film_configuration], actual_angle
8181

8282

83-
def create_commensurate_interface(
83+
def create_interface_commensurate(
8484
material: Union[Material, MaterialWithBuildMetadata],
8585
target_angle: float = 0.0,
8686
angle_tolerance: float = 0.1,
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from .configuration import TwistedNanoribbonsInterfaceConfiguration
2-
from .helpers import create_twisted_interface
2+
from .helpers import create_interface_twisted
33

44
__all__ = [
55
"TwistedNanoribbonsInterfaceConfiguration",
6-
"create_twisted_interface",
6+
"create_interface_twisted",
77
]

src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/twisted/helpers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from mat3ra.made.tools.build.pristine_structures.two_dimensional.slab.configuration import SlabConfiguration
1212

1313

14-
def create_twisted_interface(
14+
def create_interface_twisted(
1515
material1: Union[Material, MaterialWithBuildMetadata],
1616
material2: Union[Material, MaterialWithBuildMetadata],
1717
angle: float = 0.0,
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
from .helpers import create_zsl_interface, create_zsl_interface_between_slabs
1+
from .helpers import create_interface_zsl, create_interface_zsl_between_slabs
22

33
__all__ = [
4-
"create_zsl_interface",
5-
"create_zsl_interface_between_slabs",
4+
"create_interface_zsl",
5+
"create_interface_zsl_between_slabs",
66
]

src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/zsl/helpers.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from ......build_components.entities.core.two_dimensional.vacuum.configuration import VacuumConfiguration
1717

1818

19-
def create_zsl_interface(
19+
def create_interface_zsl(
2020
substrate_crystal: Union[Material, MaterialWithBuildMetadata],
2121
film_crystal: Union[Material, MaterialWithBuildMetadata],
2222
substrate_miller_indices: Tuple[int, int, int] = (0, 0, 1),
@@ -58,7 +58,7 @@ def create_zsl_interface(
5858
use_conventional_cell=use_conventional_cell,
5959
)
6060

61-
return create_zsl_interface_between_slabs(
61+
return create_interface_zsl_between_slabs(
6262
substrate_slab=substrate_slab,
6363
film_slab=film_slab,
6464
gap=gap,
@@ -74,7 +74,7 @@ def create_zsl_interface(
7474
)
7575

7676

77-
def create_zsl_interface_between_slabs(
77+
def create_interface_zsl_between_slabs(
7878
substrate_slab: MaterialWithBuildMetadata,
7979
film_slab: MaterialWithBuildMetadata,
8080
gap: Optional[float] = None,

src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/helpers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def get_adatom_defect_analyzer_cls(
2626
raise ValueError(f"Unsupported placement method: {placement_method}")
2727

2828

29-
def create_adatom_defect(
29+
def create_defect_adatom(
3030
slab: MaterialWithBuildMetadata,
3131
position_on_surface: List[float],
3232
distance_z: float = 1.0,

0 commit comments

Comments
 (0)