Skip to content

Commit

Permalink
edge dislocation 111bar
Browse files Browse the repository at this point in the history
  • Loading branch information
lakshenoy committed Nov 6, 2023
1 parent 74649ba commit e54e8e4
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 1 deletion.
20 changes: 19 additions & 1 deletion matscipy/dislocation.py
Original file line number Diff line number Diff line change
Expand Up @@ -2716,7 +2716,25 @@ def __init__(self, alat, C11, C12, C44, symbol='W'):
axes, burgers, unit_cell_core_position, parity,
glide_distance, n_planes=n_planes)


class BCCEdge111barDislocation(CubicCrystalDislocation):
def __init__(self, alat, C11, C12, C44, symbol='Fe'):
axes = np.array([[1, 1, -1],
[1, 1, 2],
[1, -1, 0]])
burgers = alat * np.array([-1, -1, 1]) / 2.0
unit_cell_core_position = alat * np.array([(1.0/3.0) * np.sqrt(3.0)/2.0,
0.25 * np.sqrt(2.0), 0])
parity = [0, 0]
unit_cell = BodyCenteredCubic(directions=axes.tolist(),
size=(1, 1, 1), symbol=symbol,
pbc=True,
latticeconstant=alat)
glide_distance = np.linalg.norm(burgers) / 3.0 #?
n_planes = 1
super().__init__(unit_cell, alat, C11, C12, C44,
axes, burgers, unit_cell_core_position, parity,
glide_distance, n_planes=n_planes)

class BCCMixed111Dislocation(CubicCrystalDislocation):
def __init__(self, alat, C11, C12, C44, symbol='W'):
axes = np.array([[1, -1, -2],
Expand Down
6 changes: 6 additions & 0 deletions tests/test_dislocation.py
Original file line number Diff line number Diff line change
Expand Up @@ -458,6 +458,12 @@ def test_screw_dislocation(self):
def test_edge_dislocation(self):
self.check_disloc(sd.BCCEdge111Dislocation, 90.0)

@unittest.skipIf("atomman" not in sys.modules or
"ovito" not in sys.modules,
"requires atomman and ovito")
def test_edge111bar_dislocation(self):
self.check_disloc(sd.BCCEdge111barDislocation, 90.0)

@unittest.skipIf("atomman" not in sys.modules or
"ovito" not in sys.modules,
"requires atomman and ovito")
Expand Down

0 comments on commit e54e8e4

Please sign in to comment.