Commit 78b7a543 authored by Magnus Nord's avatar Magnus Nord

Add section about sublattice.get_polarization_from_second_sublattice

parent 06716b1e
Pipeline #47852980 passed with stage
in 16 minutes and 36 seconds
......@@ -788,6 +788,103 @@
"source": [
"s_monolayer.save(\"monolayer_distance_map0.tif\", overwrite=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Determining polarization"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In many ferroelectric materials, the spontaneous electric polarization can be determined by looking at the shift of some atomic columns in relation to the others. One example of this is in the ferroelectric perovskite oxides, where the B-cation is shifted from its cubic centrosymmetric position. The polarization can be determined by finding both the direction and magnitude of this shift.\n",
"\n",
"Firstly, we get an appropriate artificial dataset, resembling a ferroelectric thin film grown on top of a non-ferroelectric substrate."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"atom_lattice = am.dummy_data.get_polarization_film_atom_lattice()\n",
"atom_lattice.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The blue, B-cation, atom columns in the top part of the image are shifted towards the left. By finding the centre position of four neighboring red A-cation forming a square, this shift can be quantified.\n",
"\n",
"Finding these neighbors relies on moving along two zone axis directions in the A-cation sublattice."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"sublatticeA = atom_lattice.sublattice_list[0]\n",
"sublatticeA.construct_zone_axes()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, find the two perpendicular zone axes spanning this square. For the perovskite oxide 100 projection, this is most likely the two first ones."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"sublatticeA.plot_planes()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The zone axes are then used with the B-cation sublattice:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"za0 = sublatticeA.zones_axis_average_distances[0]\n",
"za1 = sublatticeA.zones_axis_average_distances[1]\n",
"sublatticeB = atom_lattice.sublattice_list[1]\n",
"s_polarization = sublatticeA.get_polarization_from_second_sublattice(za0, za1, sublatticeB)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This can be visualized directly by using the ``plot`` method, and the data itself can be accessed in the signal’s metadata."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"s_polarization.plot()\n",
"vector_list = s_polarization.metadata.vector_list"
]
}
],
"metadata": {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment