Dear pw.x users,<br><br>In a DFT+U calculation, one can use the 'mixing_fixed_ns' parameter to force the system to converge using the initial ns configuration. For example, for a given atom, one can have this:<br><br>
<i>mixing_fixed_ns =100</i> (any large number fits).<br><br>Initial setup:<br><br clear="all"><i>atom 2 spin 2<br>eigenvalues: 0.2000000 0.2000000 0.2000000 0.2000000 0.2000000<br></i><br>(at interaction 31, the calculation converges, and the system prints:)<br>
<br><i>atom 2 spin 2<br>eigenvalues: 0.2000000 0.2000000 0.2000000 0.2000000 0.2000000</i><br><br>Ok, so the ns eigenvalues remained fixed during the entire calculation, as it should be.<br><br>Now I'd like to have this same behavior with an user given set of eigenvalues. For example, I can set:<br>
<br> <i> starting_ns_eigenvalue(1,2,1) = 0.0<br> starting_ns_eigenvalue(2,2,1) = 0.0476060<br> starting_ns_eigenvalue(3,2,1) = 0.0476060<br> starting_ns_eigenvalue(4,2,1) = 0.9654373<br>
starting_ns_eigenvalue(5,2,1) = 0.9954307</i><br><br>Now the same atom would yield this output:<br><br>Calculation starts:<br><br> <i> atom 2 spin 2<br> eigenvalues: 0.2000000 0.2000000 0.2000000 0.2000000 0.2000000<br>
</i> <br>iteration # 1 (modifies the default setup with scf):<br><br> <i> atom 2 spin 2<br> eigenvalues: 0.0000004 0.0000074 0.0287535 0.2107956 0.2107956</i><br><br>Modify starting ns matrices according to input values <br>
enter write_ns (now the system will change the eigenvalues according to the starting_ns_eigenvalue)<br><br><i> atom 2 spin 2<br> eigenvalues: -0.0000000 0.0476060 0.0476060 0.9654373 0.9954307 </i> (This is the state I'd like to have fixed!)<br>
<br>Calculation continues. At every interaction:<br><br> <i> RESET ns to initial values (iter <= mixing_fixed_ns)</i><br><br>So that, on the end, I get this set of eigenvalues:<br><br> <i> atom 2 spin 2<br>
eigenvalues: 0.2000000 0.2000000 0.2000000 0.2000000 0.2000000</i><br><br>So the 'mixing_fixed_ns' appears to be fixing the eigenvalues not at the initial state one gives the program using 'starting_ns_eigenvalue'; instead, it's fixing it to the initial default configuration.<br>
<br>Is it possible to configure pw.x to keep fixed an user set of eigenvalues, instead of the initial setup? In this example, I'd like the set of eigenvalues 0.0000000 0.0476060 0.0476060 0.9654373 0.9954307 to be fixed during the entire calculation.<br>
<br>Should it be useful, I'm attaching an example input file and it's complete output, showing what I described above.<br><br>What I really need here is to be able to force the the system to converge to a given state, even if this state is not the one with minimum energy. That's why I'm trying to impose specific eigenvalues. Perhaps there's a better way of doing this?<br>
<br>Thank you very much!<br><br>-- <br>Giovani<br>