abacus-develop
abacus-develop copied to clipboard
Request: Virtual Crystal Approximation for disorder soild simulation
Background
The application of first-principles electronic band structure methods to the study of disordered alloys and solid solutions requires some approximation for the treatment of the alloy disorder. e.g. Fe(0.98)O, Zn(0.98)CrO2. A 'direct' approach is to make use of the supercell approximation.
However, a much simpler an computationally less expensive approach is to employ the virtual crystal approximation (VCA), in which one studies a crystal with the primitive periodicity, but composed of fictitiou 'virtual' atoms that interpolate between the behavior of the atoms in the parent compounds.
Popular DFT software such as CASTEP, VASP, PWMat, etc, have support for VCA calculation, I do think that ABACUS should have VCA function for disorder materials simulation.
in our research, the carbon in iron carbide system have fractional occupancy, especially in epsilon-Fe3C (Fe3C-P6322) and epsilon-Fe2C, so we'll need VCA or likely method to do DFT computation for these fractional-occupied system.
Reference :
- https://www.vasp.at/wiki/index.php/VCA
- https://www.tcm.phy.cam.ac.uk/castep/documentation/WebHelp/content/modules/castep/thcastepdisorder.htm
- https://journals.aps.org/prb/abstract/10.1103/PhysRevB.62.R743
Describe the solution you'd like
ABACUS should have VCA or other calculation method for disorder soild containing fractional occupancy.
Task list only for developers
- [ ] Notice possible changes of behavior
- [ ] Explain the changes of codes in core modules of ESolver, HSolver, ElecState, Hamilt, Operator or Psi
Notice Possible Changes of Behavior (Reminder only for developers)
No response
Notice any changes of core modules (Reminder only for developers)
No response
Notice Possible Changes of Core Modules (Reminder only for developers)
No response
Additional Context
Since the UnitCell module is in refactoring, can we left a space for VCA in our coding structure ?
Task list for Issue attackers (only for developers)
- [ ] Review and understand the proposed feature and its importance.
- [ ] Research on the existing solutions and relevant research articles/resources.
- [ ] Discuss with the team to evaluate the feasibility of implementing the feature.
- [ ] Create a design document outlining the proposed solution and implementation details.
- [ ] Get feedback from the team on the design document.
- [ ] Develop the feature following the agreed design.
- [ ] Write unit tests and integration tests for the feature.
- [ ] Update the documentation to include the new feature.
- [ ] Perform code review and address any issues.
- [ ] Merge the feature into the main branch.
- [ ] Monitor for any issues or bugs reported by users after the feature is released.
- [ ] Address any issues or bugs reported by users and continuously improve the feature.