Esempio n. 1
0
def case(indexCase, folderCase):
  data = scanFolder(getTime)
  selectedProcesses = ['evolve','DHSCF','PostSCF','siesta'] #,'TDbuildD'
  explainations = ['Propagation', 'Build H', 'Postprocess','Total'] #,'Build DM'
  image = data[-1][-1]['Prg.tot']
  pieData = image[selectedProcesses[:-1]]
  other = image[selectedProcesses[-1]] - np.sum(pieData.values)
  
  ax = axsall[1][indexCase]
  explode = np.zeros(len(pieData)) + 0.04
  explode[0]  = 0.07
  patches, texts, autotexts = ax.pie(pieData.values, explode=explode, labels=explainations[:-1], 
                                     labeldistance = 0.2, autopct='%.0f%%',pctdistance = 0.7,
                                     shadow=True, textprops={'fontsize':'xx-large','color':'gold'})
  for text in texts:
    text.set_fontsize(0) 
    
  kargs=ma.getPropertyFromPosition(indexCase + 3, title='')
  ma.setProperty(ax,**kargs) 
  
  for key,label in zip(selectedProcesses,explainations):
    totalTimes = np.array([time['Prg.tot'][key] for index, folder, time in data])/60.0
    situations = np.array([int(folder) for index, folder, time in data])
    ax = axsall[0][indexCase]
    ax.semilogy(situations, totalTimes,'-o', mew = 3, alpha=0.8 ,ms=12, label = label)
#    from scipy.optimize import curve_fit  
#    popt, pcov = curve_fit(errorFunc, situations, totalTimes)    
#    xfit = np.linspace(2,25,1000)
#    ax.semilogy(xfit, errorFunc(xfit,*popt),'--',lw=3, )
  ax.grid(which='major',axis=u'both')
  kargs=ma.getPropertyFromPosition(indexCase, ylabel=r'Clock Time (Mimute)',title=folderCase,
                                   #xlimits = [0,10]
                                   )
  ma.setProperty(ax,**kargs)
Esempio n. 2
0
def case(indexCase, folderCase):
    data = scanFolder(getTime)
    selectedProcesses = ['evolve', 'DHSCF', 'PostSCF', 'siesta']  #,'TDbuildD'
    explainations = ['Propagation', 'Build H', 'Postprocess',
                     'Total']  #,'Build DM'
    image = data[-1][-1]['Prg.tot']
    pieData = image[selectedProcesses[:-1]]
    other = image[selectedProcesses[-1]] - np.sum(pieData.values)

    ax = axsall[1][indexCase]
    explode = np.zeros(len(pieData)) + 0.04
    explode[0] = 0.07
    patches, texts, autotexts = ax.pie(pieData.values,
                                       explode=explode,
                                       labels=explainations[:-1],
                                       labeldistance=0.2,
                                       autopct='%.0f%%',
                                       pctdistance=0.7,
                                       shadow=True,
                                       textprops={
                                           'fontsize': 'xx-large',
                                           'color': 'gold'
                                       })
    for text in texts:
        text.set_fontsize(0)

    kargs = ma.getPropertyFromPosition(indexCase + 3, title='')
    ma.setProperty(ax, **kargs)

    for key, label in zip(selectedProcesses, explainations):
        totalTimes = np.array(
            [time['Prg.tot'][key] for index, folder, time in data]) / 60.0
        situations = np.array([int(folder) for index, folder, time in data])
        ax = axsall[0][indexCase]
        ax.semilogy(situations,
                    totalTimes,
                    '-o',
                    mew=3,
                    alpha=0.8,
                    ms=12,
                    label=label)


#    from scipy.optimize import curve_fit
#    popt, pcov = curve_fit(errorFunc, situations, totalTimes)
#    xfit = np.linspace(2,25,1000)
#    ax.semilogy(xfit, errorFunc(xfit,*popt),'--',lw=3, )
    ax.grid(which='major', axis=u'both')
    kargs = ma.getPropertyFromPosition(
        indexCase,
        ylabel=r'Clock Time (Mimute)',
        title=folderCase,
        #xlimits = [0,10]
    )
    ma.setProperty(ax, **kargs)
Esempio n. 3
0
  timeEl, exe = dP.getExcitedElectrons()
  exe  -= exe[0]
  timeEn, T, E_ks, E_tot, Vol, P  = dP.getEnergyTemperaturePressure()
  deltaE =  (E_tot[2:,] - E_tot[2])
  
  return [(index, folder), (timeEf, eField), (timeEl, exe), (timeEn,deltaE)]
#------------------------------------------------------------------------------

fig, axs = plt.subplots(2,2,sharex=True,sharey=False,figsize=(8,6))
axs = axs.flatten()
SaveName = __file__.split('/')[-1].split('.')[0]

pimdData = getPIMDdata()
axs[ipiTemp].plot(pimdData[:,0],pimdData[:,2])

data = scanFolder(action)
#print data[-1][0][0]
c = ma.getColors(data[-1][0][0]+1)


maxElectrons = []
maxEnergies = []
minEnergies = []

for [(index, folder), (timeEf, eField), (timeEl, exe), (timeEn,deltaE)] in data:
  #ax = axs[efield]
  #ax.plot(timeEf,eField[:,2], c=c[index],
  #      label=folder,lw=2,alpha=0.8) 
  #eField = float(folder) * 13.6/0.529
  ax = axs[exElectron]
  ax.plot(timeEl,exe,'-',alpha=0.8,
Esempio n. 4
0
import pyramids.plot.setting as ma
from pyramids.plot.PlotUtility import scanFolder

def getTime(index, folder):
#------------------------------------------------------------------------------
  time = dP.getTime()
  return index, folder,time
  
def getEnergy(index,folder):
  time, T, E_ks, E_tot, Vol, P  = dP.getEnergyTemperaturePressure(ave=True)
  return index, folder, E_ks
#------------------------------------------------------------------------------

fig, axs = plt.subplots(1,2,sharex=False,sharey=False,figsize=(10,6))
SaveName = __file__.split('/')[-1].split('.')[0]
data = scanFolder(getTime)

selectedProcesses = ['evolve','DHSCF','PostSCF','siesta'] #,'TDbuildD'
explainations = ['Propagation', 'Build H', 'Postprocess','Total'] #,'Build DM'
image = data[-1][-1]['Prg.tot']
pieData = image[selectedProcesses[:-1]]
other = image[selectedProcesses[-1]] - np.sum(pieData.values)

ax = axs[1]
explode = np.zeros(len(pieData)) + 0.04
explode[0]  = 0.07
patches, texts, autotexts = ax.pie(pieData.values, explode=explode, labels=explainations[:-1], 
                                   labeldistance = 0.2, autopct='%.0f%%',pctdistance = 0.7,
                                   shadow=True, textprops={'fontsize':'xx-large','color':'gold'})
for text in texts:
  text.set_fontsize('xx-large') 
Esempio n. 5
0
def getEnergy(index, folder):
    time, T, E_ks, E_tot, Vol, P = dP.getEnergyTemperaturePressure(ave=True)
    return index, folder, E_ks


def errorFunc(x, A, B):
    return A * np.exp(B / x)


os.chdir('../../Data/')
print os.listdir('.')
for ufolder in os.listdir('.'):
    if os.path.isdir(ufolder):
        os.chdir(ufolder)
        ax = ax
        data = scanFolder(getEnergy)
        ref = np.load('ref.npy')
        deltaEnergy = np.array([
            np.average(np.abs(energy - ref)) for index, folder, energy in data
        ])
        #xticks = [ for index, folder, energy in data]
        xdata = np.array([int(folder) for index, folder, energy in data])
        ax.semilogy(xdata,
                    deltaEnergy,
                    'o-',
                    ms=10,
                    lw=3,
                    label=ufolder,
                    alpha=0.8,
                    mew=3)
        #from scipy.optimize import curve_fit
import pyramids.plot.setting as ma
import pyramids.process.struct as pps


#--------------------------------------------------------------------------------------------
def action(index, folder):
    dataCurFolder = []
    dataCurFolder.append([index, folder])
    dataCurFolder.append(dp.getEnergyTemperaturePressure(ave=True))
    dataCurFolder.append(dp.getEField())
    return dataCurFolder


#--------------------------------------------------------------------------------------------
fig, axs = plt.subplots(2, 1, sharex=True, sharey=False, figsize=(10, 8))  #
data = scanFolder(action)
c = ma.getColors(len(data))

for line in data:
    index, folder = line[0]
    ax = axs[1]
    cts = ax.plot(line[1][0],
                  line[1][2] - line[1][2][0],
                  lw=3,
                  label=folder,
                  c=c[index])
    kargs = ma.getPropertyFromPosition(xlabel='Time (fs)',
                                       ylabel=r'E/atom (eV)',
                                       title='Excitation Energy')
    ma.setProperty(ax, **kargs)
    ax = axs[0]
#!/usr/bin/python
import numpy as np
import matplotlib.pyplot as plt
import pyramids.io.result as dp
import pyramids.plot.setting as ma
import pyramids.plot.PlotUtility as pu


#-----------------------------------------------------------------------------
def action(index, folder):
    ls = ['-', '--', '-.', '-:']
    pu.plotExcitation(axs[0])
    pu.plotTotalEnergy(axs[1])
    #------------------------------------------------------------------------------


if __name__ == '__main__':
    fig, axs = plt.subplots(1, 2, sharex=True, sharey=False, figsize=(10, 6))
    #axs = axs.flatten()
    SaveName = __file__.split('/')[-1].split('.')[0]
    c = ['b', 'r', 'g', 'y']
    plt.style.use('ggplot')
    #action(1,'')
    from pyramids.plot.PlotUtility import scanFolder
    scanFolder(action)
    plt.tight_layout()
    if False:
        for save_type in ['.pdf', '.png']:
            filename = SaveName + save_type
            plt.savefig(filename, dpi=600)
Esempio n. 8
0
#--------------------------------------------------------------------------------------------
def action(index, folder):
    dataCurFolder = []
    dataCurFolder.append([index, folder])
    dp.getTrajactory()
    dataCurFolder.append(pps.calculateRMSD())
    dataCurFolder.append(dp.getEnergyTemperaturePressure())
    return dataCurFolder


M = 28.08
R = 8.3144598
#--------------------------------------------------------------------------------------------
fig, axs = plt.subplots(2, 1, sharex=True, sharey=False, figsize=(6, 8))  #
data = scanFolder(action,
                  folders=['0.0025', '0.0035', '0.0045', '0.0055', '0.0065'])
c = ma.getColors(len(data))

melt_v = []
for line in data:
    index, folder = line[0]
    ax = axs[0]
    ax.plot(line[1][0], line[1][1], lw=3, label=folder, c=c[index])
    selectedstep = 5000
    t, v = float(folder) / 2.0, line[1][1][selectedstep] / line[1][0][
        selectedstep] * 1E3
    #melt_v.append(t, v)
    if index == 0:

        vt = np.sqrt(3 * R * 300 / (M * 1E-3)) * 1E-2
        ax.plot(line[1][0], line[1][0] * vt / 1E3)
Esempio n. 9
0
#!/usr/bin/python
import numpy as np
import matplotlib.pyplot as plt
import pyramids.io.result as dP
import pyramids.plot.setting as ma
#-----------------------------------------------------------------------------
def getEnergy(index,folder):
  time, T, E_ks, E_tot, Vol, P  = dP.getEnergyTemperaturePressure(ave=True)
  return index, folder, E_ks

from pyramids.plot.PlotUtility import scanFolder
data = scanFolder(getEnergy)
ref = np.load('ref.npy')
deltaEnergy = np.array([np.average(np.abs(energy - ref)) for index, folder, energy in data])
xticks = [float(folder) for index, folder, energy in data]

import pandas as pd
data = pd.DataFrame(data={'x':xticks, 'y':deltaEnergy})
SaveName = __file__.split('/')[-1].split('.')[0]
data.to_csv(SaveName+'.csv')
Esempio n. 10
0
    from pyramids.io.result import getHomo
    eigenvalues = dp.readEigFile()
    x = float(folder)
    y = eigenvalues
    plotedBand = getHomo()
    return x, y, plotedBand


import pyramids.plot.setting as ma
SaveName = __file__.split('/')[-1].split('.')[0]
from matplotlib import pyplot as plt
import numpy as np
fig, ax = plt.subplots(1, 1, sharex=True, sharey=False, figsize=(8, 6))
from pyramids.plot.PlotUtility import scanFolder

data = scanFolder(plotEigenvalues)
y0 = data[0][1].flatten()
numBand = y0.shape[0]

x = []
y = []
for x1, y1, h**o in data:
    x.append(x1)
    y.append(y1.flatten() - y0)

y = np.array(y)

plotedBand = h**o + 0
colors = ma.getColors(plotedBand)
for i in range(plotedBand):
    ax.plot(x,
Esempio n. 11
0
#!/usr/bin/python
import numpy as np
import matplotlib.pyplot as plt
import pyramids.io.result as dp
import pyramids.plot.setting as ma
import pyramids.plot.PlotUtility as pu
#-----------------------------------------------------------------------------
def action(index,folder):
  ls = ['-','--','-.','-:']
  import pyramids.plot.PlotUtility as pu
  pu.plotEField(axs[0][0],label=folder)
  pu.plotTotalEnergy(axs[1][0],label=folder)
  pu.plotRMSD(axs[0][1],label=folder)
  pu.plotTemperature(axs[1][1],label=folder)
  #------------------------------------------------------------------------------
  
if __name__ == '__main__':
  fig, axs = plt.subplots(2,2,sharex=True,sharey=False,figsize=(10,6))
  #axs = axs.flatten()
  SaveName = __file__.split('/')[-1].split('.')[0]
  c = ['b','r','g','y']
  plt.style.use('ggplot')
  #action(1,'')
  from pyramids.plot.PlotUtility import scanFolder
  scanFolder(action)
  plt.tight_layout()
  if False:
    for save_type in ['.pdf','.png']:
      filename = SaveName + save_type
      plt.savefig(filename,dpi=600)
Esempio n. 12
0
  import pyramids.io.result as dp
  from pyramids.io.result import getHomo
  eigenvalues = dp.readEigFile()
  x = float(folder)
  y = eigenvalues
  plotedBand = getHomo()
  return x,y,plotedBand

import pyramids.plot.setting as ma
SaveName = __file__.split('/')[-1].split('.')[0]
from matplotlib import pyplot as plt
import numpy as np
fig, ax = plt.subplots(1,1,sharex=True,sharey=False,figsize=(8,6))
from pyramids.plot.PlotUtility import scanFolder

data = scanFolder(plotEigenvalues)
y0 = data[0][1].flatten()
numBand = y0.shape[0]

x = []
y = []
for x1,y1,h**o in data:
  x.append(x1)
  y.append(y1.flatten()-y0)
  
y = np.array(y)

plotedBand = h**o + 0
colors = ma.getColors(plotedBand)
for i in range(plotedBand):
  ax.plot(x,y[:,i],'-o',color=colors[i],label=str(i)+' + '+str(y0[i]))
Esempio n. 13
0
  for text in texts:
    text.set_fontsize(0) 
    
  kargs=ma.getPropertyFromPosition(indexCase + 3, title='')
  ma.setProperty(ax,**kargs) 
  
  for key,label in zip(selectedProcesses,explainations):
    totalTimes = np.array([time['Prg.tot'][key] for index, folder, time in data])/60.0
    situations = np.array([int(folder) for index, folder, time in data])
    ax = axsall[0][indexCase]
    ax.semilogy(situations, totalTimes,'-o', mew = 3, alpha=0.8 ,ms=12, label = label)
#    from scipy.optimize import curve_fit  
#    popt, pcov = curve_fit(errorFunc, situations, totalTimes)    
#    xfit = np.linspace(2,25,1000)
#    ax.semilogy(xfit, errorFunc(xfit,*popt),'--',lw=3, )
  ax.grid(which='major',axis=u'both')
  kargs=ma.getPropertyFromPosition(indexCase, ylabel=r'Clock Time (Mimute)',title=folderCase,
                                   #xlimits = [0,10]
                                   )
  ma.setProperty(ax,**kargs)
  
fig, axsall = plt.subplots(2,3,sharex='row',sharey='row',figsize=(15,10))
print axsall
SaveName = __file__.split('/')[-1].split('.')[0]

scanFolder(case)

plt.tight_layout()
for save_type in ['.pdf','.eps']:
  filename = SaveName + save_type
  plt.savefig(filename,dpi=800)