Topological defects
Topological defects are defects that appear due to imposed constraints by boundary conditions1.
In this work, we will track topological defects as entities derivable from a coarse defect density field2.
In short, for a system containing topological defects, it is possible to derive a defect density field
The algorithm for tracking topological defects
The algorithm for identifying topological defects is implemented in the method BaseSystem.calc_defect_nodes
.
It requires an input of a positive real scalar field defect_density
, which upon integration over a region gives a number proportional to the number of defects in that region.
Note
The defect_density
field is not necessarily the same as the defect density field defect_density
is a real and positive scalar field.
They are, however, related, and the exact connection depends on the model in question.
For example, in the case of a 2D Bose-Einstein condensate, the defect_density
is given by defect_density
is given by
The algorithm takescharge_tolerance
and integration_radius
as inputs, and then follows these steps:
Step | Illustration |
---|---|
1. Identify the position_index corresponding to max(defect_density) . |
![]() ![]() |
2. Calculate the integral charge of defect_density in a ball region_to_integrate of radius integration_radius around the point corresponding to position_index . If charge>charge_tolerance , then the point will be added to the identified defect nodes. |
![]() ![]() |
while charge>charge_tolerance |
|
3.1 Store position_index in the dictionary defect_node . |
|
3.2 Calculate position defect_note as the expectation value of defect_density as a probability distribution function in region_to_integrate . |
![]() ![]() |
3.3 Add defect_node to the list defect_nodes . |
|
3.4 Remove a ball of radius 2*integration_radius around position_index from the region region_to_search in which to search for new defect nodes. |
![]() ![]() |
3.5 Identify the position_index corresponding to max(defect_density) in the region region_to_search . |
![]() ![]() |
3.6 Calculate the integral charge of defect_density in a ball region_to_integrate of radius integration_radius around the point corresponding to position_index . |
![]() ![]() |
The value of charge_tolerance
and integration_radius
must be set depending on the particular system and the nature of defect density.
For example, in the case of a 2D phase-field crystal, the defect density will be charge_tolerance=0.2*self.a0
.
In the case of the 2D Bose-Einstein condensate, however, the integral over the defect density will be a unitless number equal to charge_tolerance=0.2
.
Even though it was exemplified in two dimensions, the same algorithm is readily usable in three dimensions, but care needs to be taken to set the proper charge_tolerance
.
For example, in a 3D Bose-Einstein condensate, the charge density provided is a 2D charge density in 3D space (for details, see Ref.2).
The integral over the defect density will then no longer be a unitless number, but scale with integration_radius
, so one might set both charge_tolerance=0.2*self.a0
and integration_radius=self.a0
to scale with a0
.
Properties of the defect nodes
Typically, BaseSystem.calc_defect_nodes
is used to make the list of defect nodes, which is then used to calculate the node properties in the model-specific classes.
For instance, BoseEinsteinCondensate.calc_vortex_nodes
first calls BaseSystem.calc_defect_nodes
to get the list of defect nodes, and then calculates the properties of the defect nodes, such as their charge.
To calculate the velocity of defects using the method outlined in Ref.2, one must formulate the order parameter as an psi
(the vector field) and dt_psi
as an input to BaseSystem.calc_defect_velocity_field
.
This will return a vector field describing the velocity of the full defect density field, which can be evaluated at the defect nodes to get the velocity of the nodes.
See an example of how this is done in BoseEinsteinCondensate.calc_vortex_nodes
.
-
Mermin, N. D. (1979). The topological theory of defects in ordered media. Reviews of Modern Physics, 51(3), 591–648. https://doi.org/10.1103/RevModPhys.51.591 ↩
-
Skogvoll, V., Rønning, J., Salvalaglio, M., & Angheluta, L. (2023). A unified field theory of topological defects and non-linear local excitations. Npj Computational Materials, 9(1), Article 1. https://doi.org/10.1038/s41524-023-01077-6 ↩↩↩