Dear all,

first, thanks to all the contributors for providing such a great and free 
tool.

For x-ray structure factor calculations, I end up with huge sums of 
trigonometric terms that I want to simplify knowing that the arguments of 
the trigonometric functions contain summands being multiples of Pi and 
Pi/2. 
In general, the step I am missing is to get from sin(Pi*h/2) for integer h 
to -(-1^(h-1))*mod(h,2) with integer h. The simplification should also 
simplify sin(Pi*h/2+x) to a sum of sin(x) and cos(x) depending on the phase 
Pi*h/2 with h integer. Then I would collect all the sin and cos terms...

Is that doable with sympy? I would be very thankful for a hint how to 
proceed... 

Below is a working code that results in the following expression (h,k,l) 
integer that should be simplified (d real) into something 
f1(h,k,l)*sin(2pi(dh-dk))+f2(h,k,l)*sin(2pi(dh+dk))+...



import sympy as sp
from numpy import *
import matplotlib.pyplot as plt

sp.init_printing(use_latex=True)

u=sp.symbols('u',positive=True)
d=sp.symbols('d',positive=True)

h=sp.symbols('h',integer=True)
k=sp.symbols('k',integer=True)
l=sp.symbols('l',integer=True)

#h=sp.Integer(2)
#k=sp.Integer(1)
#l=sp.Integer(1)

onehalf=sp.Integer(1)/sp.Integer(2)

x=sp.symarray('x',8)
y=sp.symarray('y',8)
z=sp.symarray('z',8)

# Wyckoff 8 h sites

x[0:4]=([u,-u,-u+onehalf,u+onehalf])
y[0:4]=([u+onehalf,-u+onehalf,u,-u])
z[0:4]=([0,0,0,0])

[x[4:8],y[4:8],z[4:8]]=[x[0:4]+onehalf,y[0:4]+onehalf,z[0:4]+onehalf]

s=sp.Integer(0)
for j in range (0,8):
        s=s+sp.exp(-sp.Integer(2)*sp.I*sp.pi*(x[j]*h+y[j]*k+z[j]*l))

s=s.subs(u,sp.Integer(1)/sp.Integer(4)-d)
s= (sp.expand_complex(s).simplify())

s


Thank you for reading

Best, Michael

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/d215e005-aa29-4e20-8bc1-852e508ef685%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to