Example #1
0
def plotSolution(path, error):
    """
	Definition space of the solution is assumed to be [0, 1)
	Length of loaded array is assumed to be N = N_sim+2, where 2 comes 
	from adding the boundaries after calculations.
	h = 1/(N_sim+1) = 1/(N-1)
	Plotting only solutions with high steplength to avoid crash of gnuplot
	"""
    dataSolution = np.fromfile(path, dtype=np.float64)
    N = len(dataSolution)
    h = 1.0 / (N - 1)
    x = np.linspace(0, 1, N)
    solution = analytic_solution(x)
    if N < 10000:
        figure()
        plot(x, dataSolution, 'o')
        hold('on')
        plot(x, solution)
        title('Solution to -u\'\'=f(x), h=%6.2g' % h)
        xlabel('x')
        ylabel('u(x)')
        legend('Approximation', 'Analytic solution')

    error_array = solution - dataSolution
    error_array = np.abs(error_array / solution)
    error_array[0] = 0
    error_array[len(error_array) - 1] = 0

    error.append([h, np.max(error_array)])
Example #2
0
	def __init__(self, path, max_states=3):
		self.eigenvalues=None;
		self.rho = None;
		self.states = [[]]*max_states;
		self.omega = None;
		self.N = None;
		self.names = [[]]*max_states;
		print self.states
		

		for name in os.listdir(path):
			if "grid" in name:
				self.rho = np.fromfile(path+name, dtype=np.float64)
			if "eigenvalues" in name:
				self.eigenvalues = np.fromfile(path+name, dtype=np.float64)
			if "results" in name:
				infile = open(path+name);
				for line in infile:
					content = line.split("=");
					if "omega" in content[0].strip():
						self.omega = float(content[1]);

		for name in os.listdir(path):
			if "state" in name:
				state_number = int(name.strip(".bin").strip("state"))
				state = np.fromfile(path+name, dtype=np.float64)/self.rho;
				
				# Normalizing wave function
				state = state/np.sqrt(trapz(state**2, self.rho));
				self.states[state_number] = state;
				
				# setting number of grid points for reference
				self.N = len(state)
		plot(self.rho, self.states[1]);
Example #3
0
    def __init__(self, path, max_states=3):
        self.eigenvalues = None
        self.rho = None
        self.states = [[]] * max_states
        self.omega = None
        self.N = None
        self.names = [[]] * max_states
        print self.states

        for name in os.listdir(path):
            if "grid" in name:
                self.rho = np.fromfile(path + name, dtype=np.float64)
            if "eigenvalues" in name:
                self.eigenvalues = np.fromfile(path + name, dtype=np.float64)
            if "results" in name:
                infile = open(path + name)
                for line in infile:
                    content = line.split("=")
                    if "omega" in content[0].strip():
                        self.omega = float(content[1])

        for name in os.listdir(path):
            if "state" in name:
                state_number = int(name.strip(".bin").strip("state"))
                state = np.fromfile(path + name, dtype=np.float64) / self.rho

                # Normalizing wave function
                state = state / np.sqrt(trapz(state**2, self.rho))
                self.states[state_number] = state

                # setting number of grid points for reference
                self.N = len(state)
        plot(self.rho, self.states[1])
Example #4
0
def plotSolution(path, error):
	"""
	Definition space of the solution is assumed to be [0, 1)
	Length of loaded array is assumed to be N = N_sim+2, where 2 comes 
	from adding the boundaries after calculations.
	h = 1/(N_sim+1) = 1/(N-1)
	Plotting only solutions with high steplength to avoid crash of gnuplot
	"""
	dataSolution = np.fromfile(path, dtype=np.float64);
	N = len(dataSolution);
	h = 1.0/(N-1);
	x = np.linspace(0, 1, N);
	solution = analytic_solution(x);
	if N<10000:
		figure()
		plot(x, dataSolution, 'o');
		hold('on');
		plot(x, solution);
		title('Solution to -u\'\'=f(x), h=%6.2g' %h)
		xlabel('x')
		ylabel('u(x)')
		legend('Approximation', 'Analytic solution')
	
	error_array = solution-dataSolution
	error_array = np.abs(error_array/solution)
	error_array[0] = 0;
	error_array[len(error_array)-1] =0;
	
	error.append([h, np.max(error_array)])
Example #5
0
 def plot_velocities(self):
     figure();
     if not self.velocities:
         self.calculate_velocities();
     plot(self.t, self.velocities);
     title(self.filename + ' Velocities');
     xlabel('t[s]');
     ylabel('radial velocity [m/s]');
Example #6
0
 def plot_velocities(self):
     figure()
     if not self.velocities:
         self.calculate_velocities()
     plot(self.t, self.velocities)
     title(self.filename + ' Velocities')
     xlabel('t[s]')
     ylabel('radial velocity [m/s]')
Example #7
0
	def plotBySimulation(self):
		for i in range(len(self.simulations)):
			sim = self.simulations[i];
			figure(i);
			for j in range(len(sim.states)):
				plot(sim.rho, sim.states[j]**2, legend=r"$\psi_{%d}, \lambda= %g$" % (j, sim.eigenvalues[j]), xlabel=r'$\frac{1}{\alpha}r$', ylabel=r'$\alpha|\psi_n|^2$')
				title("$\omega = %g$" %sim.omega)
				hold('on')
		raw_input("press enter")
		closefigs()
Example #8
0
 def plotByOmega(self, omegalimit=0.1):
     for sim in self.simulations:
         for i in range(len(sim.states)):
             if sim.omega >= omegalimit:
                 figure(i)
                 plot(sim.rho, sim.states[i]**2, legend="$\omega= %g, \lambda= %g$" % (sim.omega, sim.eigenvalues[i]), xlabel=r'$\frac{1}{\alpha}r$', \
                   ylabel=r'$\alpha|\psi_n|^2$')
                 title(r"$\psi_{%d}$" % i)
                 hold('on')
     raw_input("press enter")
     closefigs()
Example #9
0
	def plotByOmega(self, omegalimit = 0.1):
		for sim in self.simulations:
			for i in range(len(sim.states)):
				if sim.omega >= omegalimit:
					figure(i);
					plot(sim.rho, sim.states[i]**2, legend="$\omega= %g, \lambda= %g$" % (sim.omega, sim.eigenvalues[i]), xlabel=r'$\frac{1}{\alpha}r$', \
							ylabel=r'$\alpha|\psi_n|^2$')
					title(r"$\psi_{%d}$" % i);
					hold('on')
		raw_input("press enter")
		closefigs();
Example #10
0
 def plot_fitted_velocities(self, destination = False):
     if self.P == 0:
         self.fit_velocities();
     data = self.model.modelFunction([self.v_mean, self.v_r, self.P, self.t_0], self.t);
     figure();
     plot(self.t, self.velocities, '--r');
     hold('on');
     plot(self.t, data, '-b')
     title("Least square modeled velocities");
     xlabel('t [s]');
     ylabel('v [m/s]');
     legend('v_mean=%g \n v_r=%g \n P=%g \n t_0=%g' % (self.v_mean, self.v_r, self.P, self.t_0));
     if destination:
         hardcopy(destination);
Example #11
0
 def plotBySimulation(self):
     for i in range(len(self.simulations)):
         sim = self.simulations[i]
         figure(i)
         for j in range(len(sim.states)):
             plot(sim.rho,
                  sim.states[j]**2,
                  legend=r"$\psi_{%d}, \lambda= %g$" %
                  (j, sim.eigenvalues[j]),
                  xlabel=r'$\frac{1}{\alpha}r$',
                  ylabel=r'$\alpha|\psi_n|^2$')
             title("$\omega = %g$" % sim.omega)
             hold('on')
     raw_input("press enter")
     closefigs()
Example #12
0
 def plot_fitted_velocities(self, destination=False):
     if self.P == 0:
         self.fit_velocities()
     data = self.model.modelFunction(
         [self.v_mean, self.v_r, self.P, self.t_0], self.t)
     figure()
     plot(self.t, self.velocities, '--r')
     hold('on')
     plot(self.t, data, '-b')
     title("Least square modeled velocities")
     xlabel('t [s]')
     ylabel('v [m/s]')
     legend('v_mean=%g \n v_r=%g \n P=%g \n t_0=%g' %
            (self.v_mean, self.v_r, self.P, self.t_0))
     if destination:
         hardcopy(destination)
Example #13
0
	def plot_energies(self, N):
		figure()
		for i in N:
			T_list = []
			E_list = []
			for sim in self.simulations:	
				if sim.N == i:
					E_list.append(sim.E_end)
					T_list.append(sim.T)
			T_list, E_list = zip(*sorted(zip(T_list, E_list)))
			plot(T_list, E_list, '-*', legend="N = %d" % i)
			title("Energy as a function of temperature")
			xlabel("$kT/J$")
			ylabel("$E/J$")
			hold('on')
		hardcopy(self.figurepath + "energy.png")
Example #14
0
	def plot_heat_capacity(self, N):
		figure()
		for i in N:
			T_list = []
			hc_list = []
			for sim in self.simulations:	
				if sim.N == i:
					hc_list.append(sim.heat_capacity)
					T_list.append(sim.T)
			T_list, hc_list = zip(*sorted(zip(T_list, hc_list)))
			plot(T_list, hc_list, '-*', legend="N = %d" % i)
			xlabel("$kT/J$")
			ylabel("$C_V/k$")
			title("Heat capacity as a function of temperature")
			hold('on')
		hardcopy(self.figurepath + "heat_capacity.png")
Example #15
0
 def plot_energies(self, N):
     figure()
     for i in N:
         T_list = []
         E_list = []
         for sim in self.simulations:
             if sim.N == i:
                 E_list.append(sim.E_end)
                 T_list.append(sim.T)
         T_list, E_list = zip(*sorted(zip(T_list, E_list)))
         plot(T_list, E_list, '-*', legend="N = %d" % i)
         title("Energy as a function of temperature")
         xlabel("$kT/J$")
         ylabel("$E/J$")
         hold('on')
     hardcopy(self.figurepath + "energy.png")
Example #16
0
 def plot_heat_capacity(self, N):
     figure()
     for i in N:
         T_list = []
         hc_list = []
         for sim in self.simulations:
             if sim.N == i:
                 hc_list.append(sim.heat_capacity)
                 T_list.append(sim.T)
         T_list, hc_list = zip(*sorted(zip(T_list, hc_list)))
         plot(T_list, hc_list, '-*', legend="N = %d" % i)
         xlabel("$kT/J$")
         ylabel("$C_V/k$")
         title("Heat capacity as a function of temperature")
         hold('on')
     hardcopy(self.figurepath + "heat_capacity.png")
Example #17
0
	def plot_susceptibility(self, N):
		figure()
		legends = []
		for i in N:
			T_list = []
			su_list = []
			#legends.append("N = %d" % i)
			for sim in self.simulations:	
				if sim.N == i:
					su_list.append(sim.susceptibility)
					T_list.append(sim.T)
			T_list, su_list = zip(*sorted(zip(T_list, su_list)))
			plot(T_list, su_list, '-*', legend="N = %d" % i)
			title("Susceptibility as a function of temperature")
			xlabel("$kT/J$")
			ylabel("$\chi J$")
			hold('on')
		hardcopy(self.figurepath + "susceptibility.png")
Example #18
0
 def plot_susceptibility(self, N):
     figure()
     legends = []
     for i in N:
         T_list = []
         su_list = []
         #legends.append("N = %d" % i)
         for sim in self.simulations:
             if sim.N == i:
                 su_list.append(sim.susceptibility)
                 T_list.append(sim.T)
         T_list, su_list = zip(*sorted(zip(T_list, su_list)))
         plot(T_list, su_list, '-*', legend="N = %d" % i)
         title("Susceptibility as a function of temperature")
         xlabel("$kT/J$")
         ylabel("$\chi J$")
         hold('on')
     hardcopy(self.figurepath + "susceptibility.png")
Example #19
0
def plotSolution(path, name, rho, eigenvalues):
    dataSolution = np.fromfile(path + name, dtype=np.float64)
    N = len(dataSolution)
    x = rho
    dataSolution = dataSolution / np.sqrt(trapz(dataSolution ** 2 / x ** 2, x))
    state_number = round(float((name.strip(".bin").strip("state"))))
    integral = trapz(dataSolution ** 2 / x ** 2, x)
    print state_number
    if N < 10000:
        figure()
        plot(x, dataSolution ** 2 / x ** 2)
        hold("on")
        xlabel(r"$\rho$")
        ylabel(r"$R^2(\rho)$")
        title(name.strip(".bin") + ", " + "$\lambda =$ %g" % eigenvalues[state_number])
        legend("integral = %g" % integral)
    else:
        print "Stopped plot, N>10000"
Example #20
0
def plotSolution(path, name, rho, eigenvalues):
    dataSolution = np.fromfile(path + name, dtype=np.float64)
    N = len(dataSolution)
    x = rho
    dataSolution = dataSolution / np.sqrt(trapz(dataSolution**2 / x**2, x))
    state_number = round(float((name.strip(".bin").strip("state"))))
    integral = trapz(dataSolution**2 / x**2, x)
    print state_number
    if N < 10000:
        figure()
        plot(x, dataSolution**2 / x**2)
        hold('on')
        xlabel(r'$\rho$')
        ylabel(r'$R^2(\rho)$')
        title(
            name.strip('.bin') + ", " +
            '$\lambda =$ %g' % eigenvalues[state_number])
        legend("integral = %g" % integral)
    else:
        print "Stopped plot, N>10000"
Example #21
0
	def plot_absmag(self, N):
		figure()
		for i in N:
			T_list = []
			absM_list = []
			for sim in self.simulations:	
				if sim.N == i:
					absM_list.append(sim.absM_end)
					T_list.append(sim.T)
			T_diff = []			
			T_list, absM_list = zip(*sorted(zip(T_list, absM_list)))
			for j in range(len(T_list)-1):
				T_diff.append((absM_list[j+1]-absM_list[j])/(T_list[j+1]-T_list[j-1]))
			T_diff = abs(np.asarray(T_diff))			
			index = T_diff.argmax()
			self.Tc.append((T_list[index+1]+T_list[index])/2.0)
			self.L.append(1./i)
			plot(T_list, absM_list, '-*', legend="N = %d" % i)
			title("Absolute magnetic moment as a function of temperature")
			xlabel("$kT/J$")
			ylabel("$|\mathcal{M}|$")
			hold('on')
		hardcopy(self.figurepath + "absmag.png")
		slope, intercept, tmp1, tmp2, tmp3 = stats.linregress(self.L, self.Tc)
		x = np.linspace(0, 0.05, 20)
		y = intercept + slope*x
		hold("off")
		figure()
		plot(self.L, self.Tc, '*', legend="Data points")
		hold("on")
		plot(x, y, legend="%f $L^{-1}$ + %f" %(slope, intercept))
		xlabel("$1/L$")
		ylabel("$kT_c/J$")
		title("Calculated critical temperature")
		hardcopy(self.figurepath + "calctc.png")
Example #22
0
 def plot_absmag(self, N):
     figure()
     for i in N:
         T_list = []
         absM_list = []
         for sim in self.simulations:
             if sim.N == i:
                 absM_list.append(sim.absM_end)
                 T_list.append(sim.T)
         T_diff = []
         T_list, absM_list = zip(*sorted(zip(T_list, absM_list)))
         for j in range(len(T_list) - 1):
             T_diff.append((absM_list[j + 1] - absM_list[j]) /
                           (T_list[j + 1] - T_list[j - 1]))
         T_diff = abs(np.asarray(T_diff))
         index = T_diff.argmax()
         self.Tc.append((T_list[index + 1] + T_list[index]) / 2.0)
         self.L.append(1. / i)
         plot(T_list, absM_list, '-*', legend="N = %d" % i)
         title("Absolute magnetic moment as a function of temperature")
         xlabel("$kT/J$")
         ylabel("$|\mathcal{M}|$")
         hold('on')
     hardcopy(self.figurepath + "absmag.png")
     slope, intercept, tmp1, tmp2, tmp3 = stats.linregress(self.L, self.Tc)
     x = np.linspace(0, 0.05, 20)
     y = intercept + slope * x
     hold("off")
     figure()
     plot(self.L, self.Tc, '*', legend="Data points")
     hold("on")
     plot(x, y, legend="%f $L^{-1}$ + %f" % (slope, intercept))
     xlabel("$1/L$")
     ylabel("$kT_c/J$")
     title("Calculated critical temperature")
     hardcopy(self.figurepath + "calctc.png")
Example #23
0
	planets[i] = np.delete(planets[i], 0)
	i+=1

for i in range(len(planets)):
	planets_resh.append(planets[i].reshape(len(planets[i])/2, 2))

try:
	plotOption = sys.argv[2]
except IndexError:
	print "No plot option provided. Options are: plot and movie"
	sys.exit(1)

if plotOption == "plot":
	for instance in planets_resh:
		try:
			plot(instance[:, 0], instance[:, 1], '*')
			hold('on')
		except:
			print "ValueError!"

# movie:
if plotOption == "movie":
	ion()
	figure()
	colors = ['*r', '*b', '*m']
	min_length = 0;
	min_x = 0; max_x = 0; min_y = 0; max_y = 0;
	for i in range(len(planets_resh)):
		max_x_tmp = planets_resh[i].max();
		if max_x_tmp>max_x:
			max_x = max_x_tmp
Example #24
0
 def plot_mean(self):
     plot(self.E_mean)
Example #25
0
    planets[i] = np.delete(planets[i], 0)
    i += 1

for i in range(len(planets)):
    planets_resh.append(planets[i].reshape(len(planets[i]) / 2, 2))

try:
    plotOption = sys.argv[2]
except IndexError:
    print "No plot option provided. Options are: plot and movie"
    sys.exit(1)

if plotOption == "plot":
    for instance in planets_resh:
        try:
            plot(instance[:, 0], instance[:, 1], '*')
            hold('on')
        except:
            print "ValueError!"

# movie:
if plotOption == "movie":
    ion()
    figure()
    colors = ['*r', '*b', '*m']
    min_length = 0
    min_x = 0
    max_x = 0
    min_y = 0
    max_y = 0
    for i in range(len(planets_resh)):
Example #26
0
from scipy.stats import norm
from scitools.easyviz.matplotlib_ import plot
from numpy import linspace

y = 0.12*norm.ppf(linspace(0.01, 0.99, 20)) + 2.269

plot(y)

raw_input("press enter")
Example #27
0
 def plot_intensities(self):
     figure();
     plot(self.t, self.intensities);
     xlabel('t[s]');
     ylabel('Relative intensity')
     title(self.filename + ' intensity');
Example #28
0
 def plot_frequencies(self):
     figure();
     plot(self.t, self.frequencies);
     xlabel('t[s]');
     ylabel('Wavelength [nm]');
     title(self.filename + ' Wavelength');
Example #29
0
 def plot_intensities(self):
     figure()
     plot(self.t, self.intensities)
     xlabel('t[s]')
     ylabel('Relative intensity')
     title(self.filename + ' intensity')
Example #30
0
        plot(x, dataSolution, 'o')
        hold('on')
        plot(x, solution)
        title('Solution to -u\'\'=f(x), h=%6.2g' % h)
        xlabel('x')
        ylabel('u(x)')
        legend('Approximation', 'Analytic solution')

    error_array = solution - dataSolution
    error_array = np.abs(error_array / solution)
    error_array[0] = 0
    error_array[len(error_array) - 1] = 0

    error.append([h, np.max(error_array)])


path = "/scratch/henriasv/FYS3150/project1/"
error = []
for name in os.listdir(path):
    if not name.endswith('.txt'):
        plotSolution(path + name, error)
error = np.asarray(error)
error = np.log10(error)
figure()
plot(error[:, 0], error[:, 1], '*')
title('maximum relative error with different step lengths')
xlabel('log(h)')
ylabel('log($\epsilon$)')

raw_input("press enter")
Example #31
0
		plot(x, dataSolution, 'o');
		hold('on');
		plot(x, solution);
		title('Solution to -u\'\'=f(x), h=%6.2g' %h)
		xlabel('x')
		ylabel('u(x)')
		legend('Approximation', 'Analytic solution')
	
	error_array = solution-dataSolution
	error_array = np.abs(error_array/solution)
	error_array[0] = 0;
	error_array[len(error_array)-1] =0;
	
	error.append([h, np.max(error_array)])

path = "/scratch/henriasv/FYS3150/project1/"
error = [];
for name in os.listdir(path):
	if not name.endswith('.txt'):
		plotSolution(path+name, error)
error = np.asarray(error)
error = np.log10(error)
figure()
plot(error[:, 0], error[:, 1], '*')
title('maximum relative error with different step lengths')
xlabel('log(h)')
ylabel('log($\epsilon$)')


raw_input("press enter")
Example #32
0
	def plot_mean(self):
		plot(self.E_mean)
Example #33
0
from scipy.stats import norm
from scitools.easyviz.matplotlib_ import plot
from numpy import linspace

y = 0.12 * norm.ppf(linspace(0.01, 0.99, 20)) + 2.269

plot(y)

raw_input("press enter")
Example #34
0
 def plot_frequencies(self):
     figure()
     plot(self.t, self.frequencies)
     xlabel('t[s]')
     ylabel('Wavelength [nm]')
     title(self.filename + ' Wavelength')