Jul-18-2020, 08:09 PM
Hi all
I want to add periodic boundary conditions to the plot below.
Conditions:
If x>pi then x=x - 2*pi
if x<-pi then x=x + 2* pi
If z>pi then z=z - 2 * pi
if z<-pi then z=z + 2* pi
I tried if,elif,else but didn't work
How can I do that? Can anyone help? Thank you
I want to add periodic boundary conditions to the plot below.
Conditions:
If x>pi then x=x - 2*pi
if x<-pi then x=x + 2* pi
If z>pi then z=z - 2 * pi
if z<-pi then z=z + 2* pi
I tried if,elif,else but didn't work
How can I do that? Can anyone help? Thank you
import numpy as np
import matplotlib.pyplot as plt
from scipy import integrate
def f1(t,r):
theta,x,z=r
ftheta = (-1/2)*(np.cos(x)*np.cos(z)+np.sin(theta)/124)
fx = 2*np.sin(theta)-(1/2)*np.cos(x)*np.sin(z)
fz = 2*np.cos(theta)+(1/2)*np.sin(x)*np.cos(z)
return ftheta,fx, fz
sol=integrate.solve_ivp(f1,(0,2000),(np.pi/4,-np.pi/2,-np.pi/2), t_eval=np.linspace(0, 2000,100000))
theta,x,z=sol.y
#Plotting
plt.plot(x,z,label = 'with \u03A6')
plt.xlabel('x')
plt.ylabel('z')
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])
plt.yticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])
plt.xlim(-np.pi,np.pi)
plt.ylim(-np.pi,np.pi)
plt.show()
