asked by Stefano Agrestini (2024/07/11 22:49)
Hi Maurits
I have calculated the ground state (GS) of a 5d1 system with SOC and hybridization included. The ground state is the four fold degenerate J_eff = 3/2 state. I have been able to calculate the density matrix and I have plotted the orbitals, using your Mathematica package with the Quanty PlotTools.
However, I would like to plot the wave function of the GS. I guess I would need to sum up the orbitals. But I am not sure how to do it properly and plot it. Could you please help me? Thank you very much
Please, find below the final part of the lua file I used to calculate the density matrix
function TableToMathematica(t) Chop(t) local ret = "{ " for k,v in pairs(t) do if k~=1 then ret = ret.." , " end if (type(v) == "table") then ret = ret..TableToMathematica(v) else if( Complex.Re(v) < 0) then ret = ret..string.format("- %18.15f ",Abs(Complex.Re(v))) else ret = ret..string.format("+ %18.15f ",Abs(Complex.Re(v))) end if( Complex.Im(v) < 0) then ret = ret..string.format("- I %18.15f ",Abs(Complex.Im(v))) else ret = ret..string.format("+ I %18.15f ",Abs(Complex.Im(v))) end end end ret = ret.." }" return ret end Npsi=4 psiList = Eigensystem(Hamiltonian, StartRestrictions, Npsi, GRDOptions) Density=DensityMatrix(psiList,{0,1,2,3,4,5,6,7,8,9}) RealDensity={} for i = 1,Npsi,1 do RealDensity[i]=ToRealbse(Density[i]) end SocDensity={} for i = 1,Npsi,1 do SocDensity[i]=ToSOCbse(Density[i]) end -- Plotting outputname = debug.getinfo(1,"S") outputname = string.gsub(outputname.source,"@","") outputname = string.gsub(outputname,".lua","") mathematicaInput = [[ Needs["Quanty`PlotTools`"]; rho=%s; pl = Table[ Rasterize[ DensityMatrixPlot[ rho[ [i] ],QuantizationAxes->"x", PlotRange -> {{-1, 1}, {-1, 1}, {-1, 1}}] ], {i, 1, Length[rho]}]; For[i = 1, i <= Length[pl], i++, Export[",." <> ToString[i] <> ".png", pl[ [i] ] ]; ]; Quit[]; ]] -- Plotting density plots: rhoList1 = Density rhoListMathematicaForm1 = TableToMathematica(rhoList1) file = io.open(outputname.."_.nb","w") file:write( mathematicaInput:format(rhoListMathematicaForm1 ) ) file:close() print('Finished the density matrix')