Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
SlabStrainedSupercellConfiguration,
)
from ......analyze.interface import CommensurateLatticeInterfaceAnalyzer
from ......analyze.lattice import get_material_with_conventional_lattice
from mat3ra.made.tools.build.pristine_structures.two_dimensional.slab.configuration import SlabConfiguration
from ......build_components.metadata import MaterialWithBuildMetadata

Expand Down Expand Up @@ -53,9 +52,6 @@ def get_commensurate_strained_configurations(
Raises:
ValueError: If no commensurate lattice matches are found.
"""
if use_conventional_cell:
material = get_material_with_conventional_lattice(material)

slab_config = SlabConfiguration.from_parameters(
material_or_dict=material,
miller_indices=miller_indices,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

from mat3ra.made.material import Material
from ......analyze.interface import ZSLInterfaceAnalyzer
from ......analyze.lattice import get_material_with_conventional_lattice
from ......analyze.slab import SlabMaterialAnalyzer
from ......build.compound_pristine_structures.two_dimensional.interface import (
InterfaceBuilderParameters,
Expand Down Expand Up @@ -37,10 +36,6 @@ def create_interface_zsl(
reduce_result_cell: bool = True,
reduce_result_cell_to_primitive: bool = False,
) -> MaterialWithBuildMetadata:
if use_conventional_cell:
substrate_crystal = get_material_with_conventional_lattice(substrate_crystal)
film_crystal = get_material_with_conventional_lattice(film_crystal)

substrate_slab = create_slab(
crystal=substrate_crystal,
miller_indices=substrate_miller_indices,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from .builder import GrainBoundaryLinearBuilder
from .configuration import GrainBoundaryLinearConfiguration
from ....compound_pristine_structures.two_dimensional.interface import get_commensurate_strained_configurations
from .....analyze.lattice import get_material_with_conventional_lattice
from .....build_components import MaterialWithBuildMetadata


Expand Down Expand Up @@ -53,9 +52,6 @@ def create_grain_boundary_linear(
Raises:
ValueError: If no commensurate lattice matches are found.
"""
if use_conventional_cell:
material = get_material_with_conventional_lattice(material)

strained_configs, actual_angle = get_commensurate_strained_configurations(
material=material,
target_angle=target_angle,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
from .builder import GrainBoundaryPlanarBuilder
from .configuration import GrainBoundaryPlanarConfiguration
from .....analyze.interface import GrainBoundaryPlanarAnalyzer
from .....analyze.lattice import get_material_with_conventional_lattice
from .....build_components import MaterialWithBuildMetadata


Expand Down Expand Up @@ -45,10 +44,6 @@ def create_grain_boundary_planar(
Material: The grain boundary material
"""
phase_2_material = phase_2_material or phase_1_material
if use_conventional_cell:
phase_1_material = get_material_with_conventional_lattice(phase_1_material)
phase_2_material = get_material_with_conventional_lattice(phase_2_material)

analyzer = GrainBoundaryPlanarAnalyzer(
phase_1_material=phase_1_material,
phase_2_material=phase_2_material,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,11 +81,10 @@ def from_parameters(
termination_top = select_slab_termination(terminations, termination_top_formula)
termination_bottom = select_slab_termination(terminations, termination_bottom_formula)

if use_conventional_cell:
material = crystal_lattice_planes_analyzer.material_with_conventional_lattice
atomic_layers_repeated_configuration = AtomicLayersUniqueRepeatedConfiguration(
crystal=material,
miller_indices=miller_indices,
use_conventional_cell=use_conventional_cell,
termination_top=termination_top,
termination_bottom=termination_bottom,
number_of_repetitions=number_of_layers,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ def create_atomic_layers(
atomic_layers_config = AtomicLayersUniqueRepeatedConfiguration(
crystal=material,
miller_indices=miller_indices,
use_conventional_cell=False,
termination_top=termination,
number_of_repetitions=number_of_layers,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@ def get_analyzer(self, configuration: CrystalLatticePlanesConfiguration) -> Crys
def _generate(self, configuration: CrystalLatticePlanesConfiguration) -> MaterialWithBuildMetadata:
crystal_lattice_planes_analyzer = self.get_analyzer(configuration)
miller_supercell_matrix = crystal_lattice_planes_analyzer.miller_supercell_matrix
miller_supercell_material = supercell(configuration.crystal, miller_supercell_matrix)
crystal = configuration.crystal
if configuration.use_conventional_cell:
crystal = crystal_lattice_planes_analyzer.material_with_conventional_lattice
miller_supercell_material = supercell(crystal, miller_supercell_matrix)
return miller_supercell_material

def _enforce_convention(self, material: MaterialWithBuildMetadata) -> MaterialWithBuildMetadata:
Expand Down
8 changes: 2 additions & 6 deletions tests/py/unit/test_tools_build_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
from mat3ra.esse.models.core.reusable.axis_enum import AxisEnum
from mat3ra.made.material import Material
from mat3ra.made.tools.analyze.interface.simple import InterfaceAnalyzer
from mat3ra.made.tools.analyze.lattice_planes import CrystalLatticePlanesMaterialAnalyzer
from mat3ra.made.tools.build import MaterialWithBuildMetadata
from mat3ra.made.tools.build.compound_pristine_structures.two_dimensional.interface.base.build_parameters import (
InterfaceBuilderParameters,
Expand Down Expand Up @@ -259,9 +258,6 @@ def test_commensurate_interface_creation(material_config, analyzer_params, direc
def test_create_slab_with_conventional_cell_stores_crystal_hashes_in_metadata():
miller_indices = (0, 0, 1)
material = Material.create(BULK_Ni_PRIMITIVE)
expected_crystal = CrystalLatticePlanesMaterialAnalyzer(
material=material, miller_indices=miller_indices
).material_with_conventional_lattice

slab = create_slab(
crystal=material,
Expand All @@ -274,8 +270,8 @@ def test_create_slab_with_conventional_cell_stores_crystal_hashes_in_metadata():
serialized_slab = slab.model_dump()
crystal = serialized_slab["metadata"]["build"][-1]["configuration"]["stack_components"][0]["crystal"]

assert crystal[HASH_KEY] == expected_crystal.hash
assert crystal[SCALED_HASH_KEY] == expected_crystal.scaled_hash
assert crystal[HASH_KEY] == material.hash
assert crystal[SCALED_HASH_KEY] == material.scaled_hash
assert "bulkId" not in serialized_slab["metadata"]


Expand Down
1 change: 1 addition & 0 deletions tests/py/unit/test_tools_build_slab.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ def get_slab_with_builder(
atomic_layers_repeated_configuration = AtomicLayersUniqueRepeatedConfiguration(
crystal=material,
miller_indices=miller_indices,
use_conventional_cell=False,
termination_top=termination_top,
termination_bottom=termination_bottom,
number_of_repetitions=number_of_layers,
Expand Down