We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
David and I encountered this surprising Sunny behavior. I need to verify that it is doing the correct thing.
R = Sunny.rotation_between_vectors([1,1,1], [0,0,1]) 𝒪 = stevens_matrices(Inf) latvecs = hcat([0,1/2,1/2], [1/2, 0, 1/2], [1/2,1/2,0]) cryst1 = Crystal(latvecs, [[0,0,0]], 166) view_crystal(cryst1) print_site(cryst1, 1) # At quartic level: op1 = (-7𝒪[4,-3]-2𝒪[4,-2]+𝒪[4,-1]+𝒪[4,1]+7𝒪[4,3]) / (14/3) op2 = (𝒪[4,0]+5𝒪[4,4]) / (-40/3) cryst2 = Crystal(R*latvecs, [[0,0,0]], 166) view_crystal(cryst2) print_site(cryst2, 1) print_site(cryst1, 1; R) # equivalent # At quartic level: op3 = 𝒪[4,0] * 9 op4 = (𝒪[4,-3]-𝒪[4,3]) * 18 # Here I expected to recreate op3 and op4, but the result is different print_stevens_expansion(rotate_operator(op1, R)) print_stevens_expansion(rotate_operator(op2, R))
The text was updated successfully, but these errors were encountered:
It is correct. With the appropriate linear combination of rotated op1 and op2, one can reproduce op3 and op4 above.
op1
op2
op3
op4
using Sunny R = Sunny.rotation_between_vectors([1,1,1], [0,0,1]) 𝒪 = stevens_matrices(Inf) latvecs = hcat([0,1/2,1/2], [1/2, 0, 1/2], [1/2,1/2,0]) cryst1 = Crystal(latvecs, [[0,0,0]], 166) print_site(cryst1, 1) op1 = (-7𝒪[4,-3]-2𝒪[4,-2]+𝒪[4,-1]+𝒪[4,1]+7𝒪[4,3]) / (14/3) op2 = (𝒪[4,0]+5𝒪[4,4]) / (-40/3) op1_rot = rotate_operator(op1, R') op2_rot = rotate_operator(op2, R') print_stevens_expansion((op2_rot - op1_rot)*(140/27)) # 𝒪₄₀ print_stevens_expansion(op1_rot + op2_rot - (13/27) * (op1_rot - op2_rot)) # 2𝒪₄₋₃ - 2𝒪₄₃ # Can get the same operators by performing symmetry analysis on the rotated # crystal cryst2 = Crystal(R*latvecs, [[0,0,0]], 166) print_site(cryst2, 1) print_site(cryst1, 1; R) # equivalent
Sorry, something went wrong.
No branches or pull requests
David and I encountered this surprising Sunny behavior. I need to verify that it is doing the correct thing.
The text was updated successfully, but these errors were encountered: