I want to calculate the spin orbit coupling of a magnetic material by DFT based calculations, but I have no idea about this calculation. So please provide a detail information about this.
Spin orbit interaction and corresponding change in Energy Levels can be done by DFT softwares like Quantum Espresso , VASP etc .
In Quantum Espresso , you choose properly the spin option and then find the calculated magnetism, Energy, Fermi Energy, Total Energy and also can find the Total DOS and Partial DOS .
You can also , I think , go through some articles to see how the spin orbit interaction changes the Hamiltonian.
This is difficult to answer without knowing which software you would like to use. Assuming that you're planning to use a plane-wave DFT package (e.g. CASTEP, Quantum Espresso, VASP or ABINIT) then you will need a pseudopotential which includes spin-orbit information and you will need to include the spin-orbit coupling keyword(s) in the input files.
In the particular case of CASTEP, the spin-orbit pseudopotentials use the file extension .uspso, so as long as you use one of those then you'll be fine. To activate the spin-orbit coupling itself, include these lines in your .param input file:
spin_treatment : vector
spin_orbit_coupling : true
I don't know how you activate it with other DFT programs, but I'm sure there'll be tutorials on-line.