How to find the exchange values from DFT?
For the DFT program VASP, it looks like the matrix of J coefficients are outputted to the screen if using OstravaJ [1].
If OpenMX is being used for the DFT calculation, it looks like the J values are outputted to the screen when looking at the Examples subsection under "Exchange coupling parameter" at [2].
For the DFT program Quantum Espresso (QE), Korotin et al. created a code package to calculate exchange parameters based on the Green function as described in their article at [3]. It looks like the code for it is available at [4]. It looks like the J_{i,j,m,n} values are outputted in the exchanges.out file.
The TB2J package at [5] supports DFT programs such as SIESTA and Wannier90 as seen at [5]. QE might be able to interface with it through Wannier90 using pw2wannier90.x [6,7]. The nice thing about TB2J is that it will output a vampire.UCF file as given in the TB2J documentation at [8]. There is also a human readable file exchange.txt (or exchange.out) for the exchange parameters such as J_iso and J_ani shown at [9].
You'll need to ensure that the exchange values from whatever program you get them from are provided in the right convention for VAMPIRE. For that, it can be helpful to look at the "How do I calculate the exchange constant for vampire?" paragraph given on VAMPIRE's Frequently Asked Questions (FAQs) page at [10].
If we have done substitution, then how to change doping in the .mat file of Cofe2O4?
I know of two approaches that VAMPIRE has.
The first approach could be to use the alloy-fraction [11,12].
The second approach may be better to use in your case. The CoFe2O4 structure could be defined with a .ucf file [13]. Then, you should be able adjust the .ucf file for your different dopant substitutions.
If you're able to use TB2J, the structures with your dopant substitutions, you might even be able to have it generate the .ucf files for you. A issue you might potentially have to watch out for though with dopant substitutions is when the DFT calculation may require the unit cell to be changed to super cell for that. The problem that could arise is if the super cell ends up being non-orthogonal. The super cells probably need to be ran as a parallel calculation to reduce the simulation time, but that could be a problem with the non-orthogonal cells not being supported yet by VAMPIRE as you might have read in the past post at [14].
As a workaround, a previous user translated a non-orthogonal cell over to a orthogonal lattice grid as you could read about at [15,16]. I think the webpage at [17] gives a nice illustration for that using CrI3 as example, where they gave the following plots:
In the .mat file, I suspect would have to add or adjusted your material[i] lines for your mat_id's in the .ucf for your dopant substitution. For mat_id, I found the past post at [18] helpful.
Kind Regards,
Gavin
VAMPIRE user