To calculate an electronic structure with an arbitrary spin orientation in the non-collinear DFT, OpenMX Ver. 3.8 provides two kinds of constraint functionals which give a penalty unless the difference between the calculated spin orientation and the initial one is zero . The constraint DFT for the non-collinear spin orientation is available by the following keywords:
scf.Constraint.NC.Spin on # on|on2|off, default=off scf.Constraint.NC.Spin.v 0.5 # default=0.0(eV)You can introduce the penalty functional by either 'on' or 'on2' for the keyword 'scf.Constraint.NC.Spin'. By 'on', the spin direction is constrained at the initial orientation, but the magnitude of the spin moment can vary so that the total energy can be stabilized. On the other hand, by 'on2', the spin direction and the magnitude of the spin moment are constrained at the initial setting by the keyword 'Atoms.SpeciesAndCoordinates'. The keyword 'scf.Constraint.NC.Spin.v' gives a magnitude which determines the strength of constraint when the constraint is introduced. The constraint is applied on each atom by specifying a flag as follows:
<Atoms.SpeciesAndCoordinates 1 Cr 0.00000 0.00000 0.00000 7.0 5.0 -20.0 0.0 1 off 2 Cr 0.00000 2.00000 0.00000 7.0 5.0 20.0 0.0 1 off Atoms.SpeciesAndCoordinates>The '1' in the 10th column means that the constraint is applied, and '0' no constraint. The method constrains only the spin orientation. Therefore, the magnitude of spin can vary. Also the constraint scheme is compatible with the LDA+U calculation explained in the Section 'LDA+U'. As an illustration of this method, the dependence of the total energy and magnetic moment in a chromium dimer on the relative angle between two local spins is shown in Fig. 30. You can trace the calculation using an input file 'Cr2_CNC.dat' in the directory 'work'.