Skip to content

Commit

Permalink
DOC: Non-equivalent dislocations in multispecies
Browse files Browse the repository at this point in the history
  • Loading branch information
thomas-rocke committed Nov 6, 2023
1 parent 53a52f9 commit 76378ce
Showing 1 changed file with 95 additions and 9 deletions.
104 changes: 95 additions & 9 deletions docs/applications/multispecies_dislocations.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -132,15 +132,101 @@
"metadata": {},
"source": [
"## Additional Dislocations in Multispecies Systems\n",
"Dislocations in multispecies systems have additiional complexity over thos in single-species crystals, due to the breaking of symmetries caused by the added chemical complexity. For our Zincblende InP example, this means that we can have two different forms of some of our dislocations: $\\alpha$ (P-terminated), and $\\beta$ (In-terminated). In this simple system, changing the structure from the above $\\beta$-$90^\\circ$ partial to an $\\alpha$-$90^\\circ$ partial can be achieved either by swapping the chemical symbols (in either the dislocation, or in the bulk and regenerating the dislocation), or by translating atoms the original bulk so that a P atom sits at [0, 0, 0]."
"Dislocations in multispecies systems have additiional complexity over thos in single-species crystals, due to the breaking of symmetries caused by the added chemical complexity. For our Zincblende InP example, this means that we can have two different forms of some of our dislocations: $\\alpha$ (P-terminated), and $\\beta$ (In-terminated)."
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": []
"outputs": [
{
"data": {
"text/latex": [
"$\\alpha$-$90^\\circ$ Partial Dislocation"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "fce4b537e7e04a05924f5ba5a180249c",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"NGLWidget()"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from IPython.display import display, Latex\n",
"# alpha-90 degree dislocation\n",
"InP = bulk(\"InP\", crystalstructure=\"zincblende\", cubic=True, a=alat)\n",
"symbols = np.array(InP.get_chemical_symbols())\n",
"# Swap In <-> P to get other alpha dislocation\n",
"new_symbols = symbols.copy()\n",
"new_symbols[symbols == \"In\"] = \"P\"\n",
"new_symbols[symbols == \"P\"] = \"In\"\n",
"InP.set_chemical_symbols(new_symbols)\n",
"disloc = DiamondGlide90degreePartial(InP, C11, C12, C44)\n",
"\n",
"InP_bulk, InP_dislocation = disloc.build_cylinder(radius=20)\n",
"\n",
"display(Latex(r\"$\\alpha$-$90^\\circ$ Partial Dislocation\"))\n",
"interactive_view(InP_dislocation, scale=0.4)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\beta$-$90^\\circ$ Partial Dislocation"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "6e179dc306fb476cadf430c8dc9dbec2",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"NGLWidget()"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"InP = bulk(\"InP\", crystalstructure=\"zincblende\", cubic=True, a=alat)\n",
"# beta dislocation is the one done by default, for the bulk built by ase.build.bulk\n",
"disloc = DiamondGlide90degreePartial(InP, C11, C12, C44)\n",
"\n",
"InP_bulk, InP_dislocation = disloc.build_cylinder(radius=20)\n",
"\n",
"display(Latex(r\"$\\beta$-$90^\\circ$ Partial Dislocation\"))\n",
"interactive_view(InP_dislocation, scale=0.4)"
]
},
{
"cell_type": "markdown",
Expand All @@ -164,13 +250,13 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f22167ae96c7422295ab2414f05de197",
"model_id": "d3dc55e014244b68ab7db776775fb6a9",
"version_major": 2,
"version_minor": 0
},
Expand Down Expand Up @@ -206,18 +292,18 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"From this GaAs structure, we then do Monte Carlo sampling to introduce 50% In to the structure:"
"From this GaAs structure, we then do Monte Carlo sampling to introduce 50% Indium to the structure:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f73b45c2d947475dbbe669df60bac9f6",
"model_id": "430655d9e0554e15bf76c41ce0faa663",
"version_major": 2,
"version_minor": 0
},
Expand Down

0 comments on commit 76378ce

Please sign in to comment.