Comments (4)
Direct initialisation of split interstitial structures isn't automated in doped
, as there's a lot of configurational complexity and combinatorial explosion of possible structures for this.
However, we have found that the recommended approach of Voronoi tessellation for initial interstitial sites + structure-searching (with ShakeNBreak
or otherwise) does quite a good job of this, and has identified these structures for all known cases (some examples are Te interstitials in CdTe, Li-Li and O-O (peroxide) dumbbells in LNMO and split Sb interstitials in Sb₂O₅ – similar to the split Ga interstitials in Ga₂O₃).
That said, with the functions provided and defect structures output by doped
, you could directly initialise some split interstitial configurations if you had a specific motif in mind (e.g. non-dumbbell like; 2 nearby-but-separated interstitials + vacancy -> split interstitial)
from doped.
Just to note @seatonullberg, I was thinking about this a bit more.
If one wanted to directly target/initialise dumbbell-like split-interstitials for testing, this could be automated relatively easily by:
- Identifying the symmetry-inequivalent lattice sites (done in the
doped
vacancy/substitution generators / just usingpymatgen
's symmetrized structure) - For each, displacing the atomic site toward the largest neighbouring interstitial void (there are python tools for this), by a distance equal to the covalent radius (available in the
pymatgen
Element
properties) or half the dimer bond length if known. - Placing the additional "interstitial" atom at this same distance away from the lattice site, in the opposite direction.
This is assuming a certain orientation for the dumbbell (in the direction of the largest interstitial void), but this is typically the most stable arrangement.
We have tools for doing something similar in ShakeNBreak
(creating dimer configurations at vacancies). If you were particularly keen on this you could try creating a pull request for this and I can help along the way?
(Either way as mentioned, the typical doped
+ ShakeNBreak
approach should identify these species)
from doped.
That sounds like a reasonable approach. Could you direct me to the python tool you mentioned that would identify the largest neighboring void? Identifying the most likely orientation like that was a big part of the challenge when I was considering it. I'll familiarize myself with the codebase some more then open a PR.
from doped.
Yeah so Voronoi tessellation is the main approach for this I've seen. We use code for this in ShakeNBreak
input.py
: https://github.com/SMTG-Bham/ShakeNBreak/blob/main/shakenbreak/input.py for getting the vertices of the Voronoi polyhedra, that we then place interstitials at. With that code from scipy.spatial
, you can also get the corresponding Voronoi polyhedra and use this. See also the VoronoiPolyhedron
class from pymatgen-analysis-defects
for this: https://github.com/materialsproject/pymatgen-analysis-defects/blob/074cfcdc2d1b17d115cb604d52d1ee3f4d73e7a3/pymatgen/analysis/defects/utils.py#L674
I guess the approach would be to take the voronoi nodes (used as candidate interstitial positions) and corresponding polyhedra, choose the polyhedron with the largest volume whose node is within a cutoff (~3 Å?) of the lattice site and use that as the direction of largest interstitial void?
I feel like I've seen other tools out there for this, which might be better suited to the job, but can't remember these off the top of my head.
from doped.
Related Issues (20)
- unable to calculate the chemical potential ranges for extrinsic dopant HOT 10
- Multiprocessing slows defect input writing on M1 Mac HOT 7
- How to use `extrinsic` to generate deuterium/OH/ions defects? HOT 5
- JOSS review issues #1 HOT 6
- error in ExtrinsicCompetingPhases module HOT 2
- Extrinsic Competing Phases error HOT 2
- Parsing issues HOT 12
- Point defect generation in ternary alloy HOT 5
- Reducing number of substitutions defects HOT 4
- Make `CalcResults`/eFNV corrections without `vise.yaml`
- Seeking Assistance with Errors in Example Run HOT 3
- pymatgen API update breaks DefectsGenerator HOT 3
- Feature request: Support versions of spglib above 2.0.2 HOT 4
- How to generate a specific type of defect? HOT 5
- How to generate a specific type of defect?
- Issue in graphing Intrinsic interstitial defects HOT 7
- Regarding selecting a supercell HOT 4
- Degeneracy factor for organic-inorganic systems
- UnicodeDecodeError: 'gbk' codec can't decode byte 0x93 in position 583: illegal multibyte sequence HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from doped.