#    Bspline                                                         #
#      Represents a cubic bspline curve, supports evaluation.        #
#                                                                    #
#====================================================================#

import os
from numpy import loadtxt, array, ones, dot, floor, zeros
from qmcpack_input import QmcpackInput
from qmcpack_analyzer_base import QAobject, QAanalyzer
from developer import unavailable
from debug import *
try:
    from matplotlib.pyplot import plot, show, figure, xlabel, ylabel, title, legend
except:
    plot, show, figure, xlabel, ylabel, title, legend = unavailable(
        'matplotlib.pyplot', 'plot', 'show', 'figure', 'xlabel', 'ylabel',
        'title', 'legend')
#end try


class Bspline(QAobject):
    A = array([
        -1.0 / 6.0, 3.0 / 6.0, -3.0 / 6.0, 1.0 / 6.0, 3.0 / 6.0, -6.0 / 6.0,
        0.0 / 6.0, 4.0 / 6.0, -3.0 / 6.0, 3.0 / 6.0, 3.0 / 6.0, 1.0 / 6.0,
        1.0 / 6.0, 0.0 / 6.0, 0.0 / 6.0, 0.0 / 6.0
    ])
    dA = array([
        0.0, -0.5, 1.0, -0.5, 0.0, 1.5, -2.0, 0.0, 0.0, -1.5, 1.0, 0.5, 0.0,
        0.5, 0.0, 0.0
    ])
    d2A = array([
Esempio n. 2
0
#  graph.py                                                          #
#    Interface with pydot to make images of directed graphs.         #
#                                                                    #
#  Content summary:                                                  #
#    Graph                                                           #
#      Wrapper class for pydot functionality                         #
#                                                                    #
#====================================================================#


from generic import obj
from developer import DevBase,unavailable
try:
    from pydot import Dot,Node,Edge,Cluster as pdCluster
except ImportError:
    Dot,Node,Edge,pdCluster = unavailable('Dot','Node','Edge','pdCluster')
#end try


# websites
#  http://www.graphviz.org/Home.php
#  http://pythonhaven.wordpress.com/tag/pydot/
#  http://jseabold.net/blog/2012/02/making-graphical-models-with-pydot.html


class Graph(DevBase):

    pydot_type = Dot

    def __init__(self,*args,**kwargs):
        # some args are
Esempio n. 3
0
import inspect
from numpy import array, ndarray, zeros, linspace, pi, exp, sqrt, polyfit, polyval
from numpy import sum, abs, arange, empty, sin, cos, dot, atleast_2d, ogrid
from numpy import ones_like, sign, random, cross, prod
from numpy.linalg import norm
from generic import obj
from developer import unavailable, warn, error
from unit_converter import convert
from periodic_table import pt as ptable
try:
    from scipy.special import betainc
    from scipy.optimize import fmin
    from scipy.spatial import KDTree, Delaunay, Voronoi
    scipy_unavailable = False
except ImportError:
    betainc = unavailable('scipy.special', 'betainc')
    fmin = unavailable('scipy.optimize', 'fmin')
    KDTree, Delaunay, Voronoi = unavailable('scipy.spatial', 'KDTree',
                                            'Delaunay', 'Voronoi')
    scipy_unavailable = True
#end try


def numerics_error(*args, **kwargs):
    error(*args, **kwargs)


#end def numerics_error
# cost functions
least_squares = lambda p, x, y, f: ((f(p, x) - y)**2).sum()
absmin = lambda p, x, y, f: abs(f(p, x) - y).sum()
Esempio n. 4
0
from qmcpack_quantity_analyzers \
    import ScalarsDatAnalyzer,ScalarsHDFAnalyzer,DmcDatAnalyzer,\
    EnergyDensityAnalyzer,TracesAnalyzer,DensityMatricesAnalyzer,\
    SpinDensityAnalyzer,StructureFactorAnalyzer
from qmcpack_method_analyzers \
    import OptAnalyzer,VmcAnalyzer,DmcAnalyzer
from qmcpack_result_analyzers \
    import OptimizationAnalyzer,TimestepStudyAnalyzer
from simulation import SimulationAnalyzer,Simulation
from qmcpack_input import QmcpackInput

try:
    import h5py
    h5py_unavailable = False
except ImportError:
    h5py = unavailable('h5py')
    h5py_unavailable = True
#end try



class QmcpackAnalyzerCapabilities(QAobject):

    def __init__(self):

        self.methods=set(['opt','vmc','dmc','rmc'])
        self.data_sources = set(['scalar','stat','dmc','storeconfig','opt','traces'])
        self.scalars=set(['localenergy','localpotential','kinetic','elecelec','localecp','nonlocalecp','ionion','localenergy_sq','acceptratio','blockcpu','blockweight'])
        self.fields=set(['energydensity','density','dm1b','spindensity','structurefactor'])

        hdf_data_sources = set(['stat','storeconfig','traces'])
Esempio n. 5
0
import sys

from numpy import *
from numpy.linalg import *

from developer import unavailable
try:
    from scipy.special import betainc
    from scipy.optimize import fmin
    from scipy.spatial import KDTree,Delaunay
    scipy_unavailable = False
except ImportError:
    betainc = unavailable('scipy.special' ,'betainc')
    fmin    = unavailable('scipy.optimize','fmin')
    KDTree  = unavailable('scipy.special' ,'KDTree')
    Delaunay  = unavailable('scipy.special' ,'Delaunay')
    scipy_unavailable = True
#end try


########################################################################
############   ndgrid
########################################################################

# retrieved from
#   http://www.mailinglistarchive.com/html/[email protected]/2010-05/msg00055.html

#"""
#n-dimensional gridding like Matlab's NDGRID
#
#Typical usage:
Esempio n. 6
0
try:
    from matplotlib.pyplot import figure, plot, xlabel, ylabel, title, show, ylim, legend, xlim, rcParams, savefig, bar, xticks, subplot, grid, setp, errorbar, loglog, semilogx, semilogy

    params = {
        'legend.fontsize': 14,
        'figure.facecolor': 'white',
        'figure.subplot.hspace': 0.,
        'axes.labelsize': 16,
        'xtick.labelsize': 14,
        'ytick.labelsize': 14
    }
    rcParams.update(params)
except (ImportError, RuntimeError):
    figure, plot, xlabel, ylabel, title, show, ylim, legend, xlim, rcParams, savefig, bar, xticks, subplot, grid, setp, errorbar, loglog, semilogx, semilogy = unavailable(
        'matplotlib.pyplot', 'figure', 'plot', 'xlabel', 'ylabel', 'title',
        'show', 'ylim', 'legend', 'xlim', 'rcParams', 'savefig', 'bar',
        'xticks', 'subplot', 'grid', 'setp', 'errorbar', 'loglog', 'semilogx',
        'semilogy')
#end try


class Pseudopotential(DevBase):
    colors = dict(s='k', p='r', d='b', f='m')
    lcolors = ['k', 'r', 'b', 'm']
    ldict = {0: 's', 1: 'p', 2: 'd', 3: 'f'}

    format = 'generic'

    conv_table = {('upf', 'fsatom'): ('--upf_pot', '--xml')}
    extensions = dict(upf='upf', fsatom='xml', gamess='gamess', casino='data')
#      Represents a cubic bspline curve, supports evaluation.        #
#                                                                    #
#====================================================================#



import os
from numpy import loadtxt,array,ones,dot,floor,zeros
from qmcpack_input import QmcpackInput
from qmcpack_analyzer_base import QAobject,QAanalyzer
from developer import unavailable
from debug import *
try:
    from matplotlib.pyplot import plot,show,figure,xlabel,ylabel,title,legend
except (ImportError,RuntimeError):
    plot,show,figure,xlabel,ylabel,title,legend = unavailable('matplotlib.pyplot','plot','show','figure','xlabel','ylabel','title','legend')
#end try



class Bspline(QAobject):
    A = array([-1.0/6.0,  3.0/6.0, -3.0/6.0, 1.0/6.0,
                3.0/6.0, -6.0/6.0,  0.0/6.0, 4.0/6.0,
               -3.0/6.0,  3.0/6.0,  3.0/6.0, 1.0/6.0,
                1.0/6.0,  0.0/6.0,  0.0/6.0, 0.0/6.0 ])
    dA =array([0.0, -0.5,  1.0, -0.5,
               0.0,  1.5, -2.0,  0.0,
               0.0, -1.5,  1.0,  0.5,
               0.0,  0.5,  0.0,  0.0 ])
    d2A=array([0.0, 0.0, -1.0,  1.0,
               0.0, 0.0,  3.0, -2.0,
Esempio n. 8
0
#                                                                    #
#    pressure_fit                                                    #
#      Perform a pressure vs. volume fit                             #
#                                                                    #
#    pressure eval                                                   #
#      Evaluate a P(V) fit at specified volumes.                     #
#                                                                    #                                        
#====================================================================#


from numpy import exp
from developer import unavailable
try:
    from scipy.optimize import fmin
except ImportError:
    fmin = unavailable('scipy.optimize','fmin')
#end try


f = None

#minimizers
least_squares = lambda p,x,y,f: ((f(p,x)-y)**2).sum()

#fits
fits = set(['murnaghan','birch','vinet','spanu','casula'])
fstr = ''
for ft in fits:
    fstr += ft+' '
#end for
em  = lambda p,V: p[0] + p[2]/p[3]*V*((p[1]/V)**p[3]/(p[3]-1)+1)-p[1]*p[2]/(p[3]-1)
Esempio n. 9
0
import inspect
from numpy import array,ndarray,zeros,linspace,pi,exp,sqrt,polyfit,polyval
from numpy import sum,abs,arange,empty,sin,cos,dot,atleast_2d,ogrid
from numpy import ones_like,sign,random,cross,prod
from numpy.linalg import norm
from generic import obj
from developer import unavailable,warn,error
from unit_converter import convert
from periodic_table import pt as ptable
try:
    from scipy.special import betainc
    from scipy.optimize import fmin
    from scipy.spatial import KDTree,Delaunay,Voronoi
    scipy_unavailable = False
except ImportError:
    betainc = unavailable('scipy.special' ,'betainc')
    fmin    = unavailable('scipy.optimize','fmin')
    KDTree,Delaunay,Voronoi  = unavailable('scipy.spatial' ,'KDTree','Delaunay','Voronoi')
    scipy_unavailable = True
#end try


def numerics_error(*args,**kwargs):
    error(*args,**kwargs)
#end def numerics_error
# minimizers
least_squares = lambda p,x,y,f: ((f(p,x)-y)**2).sum()
absmin        = lambda p,x,y,f: abs(f(p,x)-y).sum()
madmin        = lambda p,x,y,f: abs(f(p,x)-y).max()
 
# curve fit based on fmin from scipy
Esempio n. 10
0
import sys

from numpy import *
from numpy.linalg import *

from developer import unavailable
try:
    from scipy.special import betainc
    from scipy.optimize import fmin
    from scipy.spatial import KDTree
    scipy_unavailable = False
except ImportError:
    betainc = unavailable('scipy.special' ,'betainc')
    fmin    = unavailable('scipy.optimize','fmin')
    KDTree  = unavailable('scipy.special' ,'KDTree')
    scipy_unavailable = True
#end try


########################################################################
############   ndgrid
########################################################################

# retrieved from
#   http://www.mailinglistarchive.com/html/[email protected]/2010-05/msg00055.html

#"""
#n-dimensional gridding like Matlab's NDGRID
#
#Typical usage:
#>>> x, y, z = [0, 1], [2, 3, 4], [5, 6, 7, 8]
Esempio n. 11
0
# Python standard library imports
import os
import inspect
from time import process_time
from copy import deepcopy

# Non-standard Python imports
import numpy as np

from developer import unavailable  # Nexus unavailable module guard
try:
    import matplotlib.pyplot as plt
except:
    plt = unavailable('matplotlib', 'pyplot')
#end try
try:
    import h5py
except:
    h5py = unavailable('h5py')
#end try

# Nexus imports
import memory
from unit_converter import convert
from generic import obj
from developer import DevBase, log, error, ci
from numerics import simstats
from grid_functions import grid_function, read_grid, StructuredGrid, grid as generate_grid
from grid_functions import SpheroidGrid
from structure import Structure, read_structure
from fileio import XsfFile
Esempio n. 12
0
from numpy import exp
from developer import unavailable
try:
    from scipy.optimize import fmin
except ImportError:
    fmin = unavailable('scipy.optimize','fmin')
#end try


f = None

#minimizers
least_squares = lambda p,x,y,f: ((f(p,x)-y)**2).sum()

#fits
fits = set(['murnaghan','birch','vinet','spanu','casula'])
fstr = ''
for ft in fits:
    fstr += ft+' '
#end for
em  = lambda p,V: p[0] + p[2]/p[3]*V*((p[1]/V)**p[3]/(p[3]-1)+1)-p[1]*p[2]/(p[3]-1)
eb  = lambda p,V: p[0] + 9*p[1]*p[2]/16*((p[1]/V)**(2./3)-1)**2*( 2 + (p[3]-4)*((p[1]/V)**(2./3)-1) )
ev  = lambda p,V: p[0] + 2*p[1]*p[2]/(p[3]-1)**2*( 2 - (2+3*(p[3]-1)*((V/p[1])**(1./3)-1))*exp(-1.5*(p[3]-1)*((V/p[1])**(1./3)-1)) ) 
es  = lambda p,V: p[0] + exp(p[1]*V)-p[2]/V**4
emo = lambda p,V: p[0]+p[2]*( exp(-2*p[3]*(V-p[1])) - 2*exp(-p[3]*(V-p[1])) )
efit = dict(murnaghan=em,birch=eb,vinet=ev,spanu=es,morse=emo)
pm  = lambda p,V: p[1]/p[2]*((p[0]/V)**p[2]-1)
pb  = lambda p,V: 1.5*p[1]*(p[0]/V)**(5./3)*((p[0]/V)**(2./3)-1)*(1.+.75*(p[2]-1)*((p[0]/V)**(2./3)-1))
pv  = lambda p,V: 3.*p[1]*(1.-(V/p[0])**(1./3))*(p[0]/V)**(2./3)*exp(1.5*(p[2]-1)*(1.-(V/p[0])**(1./3)))
pfit = {'murnaghan':pm,'birch':pb,'vinet':pv}
Esempio n. 13
0
File: qmcpack.py Progetto: jyamu/qmc
from physical_system import PhysicalSystem
from simulation import Simulation
from qmcpack_input import QmcpackInput, generate_qmcpack_input
from qmcpack_input import BundledQmcpackInput, TracedQmcpackInput
from qmcpack_input import loop, linear, cslinear, vmc, dmc, collection, determinantset, hamiltonian, init, pairpot
from qmcpack_input import generate_jastrows, generate_jastrow, generate_jastrow1, generate_jastrow2, generate_jastrow3
from qmcpack_input import generate_opt, generate_opts
from qmcpack_analyzer import QmcpackAnalyzer
from converters import Pw2qmcpack, Wfconvert
from sqd import Sqd
from developer import unavailable

try:
    import h5py
except ImportError:
    h5py = unavailable("h5py")
# end try


class Qmcpack(Simulation):
    input_type = QmcpackInput
    analyzer_type = QmcpackAnalyzer
    generic_identifier = "qmcpack"
    infile_extension = ".in.xml"
    # application   = 'qmcapp'
    application = "qmcapp_complex"  # always use complex version until kpoint handling is fixed
    application_properties = set(["serial", "omp", "mpi"])
    application_results = set(["jastrow"])
    preserve = Simulation.preserve | set(["should_twist_average"])

    def post_init(self):
Esempio n. 14
0
from simulation import Simulation
from qmcpack_input import QmcpackInput,generate_qmcpack_input
from qmcpack_input import TracedQmcpackInput
from qmcpack_input import loop,linear,cslinear,vmc,dmc,collection,determinantset,hamiltonian,init,pairpot,bspline_builder
from qmcpack_input import generate_jastrows,generate_jastrow,generate_jastrow1,generate_jastrow2,generate_jastrow3
from qmcpack_input import generate_opt,generate_opts
from qmcpack_analyzer import QmcpackAnalyzer
from qmcpack_converters import Pw2qmcpack,Wfconvert,Convert4qmc
from sqd import Sqd
from debug import ci,ls,gs
from developer import unavailable
from nexus_base import nexus_core
try:
    import h5py
except:
    h5py = unavailable('h5py')
#end try



class Qmcpack(Simulation):
    input_type    = QmcpackInput
    analyzer_type = QmcpackAnalyzer
    generic_identifier = 'qmcpack'
    infile_extension   = '.in.xml'
    application   = 'qmcpack'
    application_properties = set(['serial','omp','mpi'])
    application_results    = set(['jastrow','cuspcorr','wavefunction'])


    def post_init(self):
Esempio n. 15
0
from subprocess import Popen
from numpy import linspace,array,zeros,append,mgrid,empty,exp
from xmlreader import readxml
from superstring import string2val,split_delims
from periodic_table import pt
from unit_converter import convert
from generic import obj
from developer import DevBase,unavailable
try:
    from matplotlib.pyplot import figure,plot,xlabel,ylabel,title,show,ylim,legend,xlim,rcParams,savefig,bar,xticks,subplot,grid,setp,errorbar,loglog,semilogx,semilogy

    params = {'legend.fontsize':14,'figure.facecolor':'white','figure.subplot.hspace':0.,
          'axes.labelsize':16,'xtick.labelsize':14,'ytick.labelsize':14}
    rcParams.update(params)
except (ImportError,RuntimeError):
   figure,plot,xlabel,ylabel,title,show,ylim,legend,xlim,rcParams,savefig,bar,xticks,subplot,grid,setp,errorbar,loglog,semilogx,semilogy = unavailable('matplotlib.pyplot','figure','plot','xlabel','ylabel','title','show','ylim','legend','xlim','rcParams','savefig','bar','xticks','subplot','grid','setp','errorbar','loglog','semilogx','semilogy')
#end try



class Pseudopotential(DevBase):
    colors = dict(s='k',p='r',d='b',f='m')
    lcolors= ['k','r','b','m']
    ldict = {0:'s',1:'p',2:'d',3:'f'}

    format = 'generic'

    conv_table = {('upf','fsatom'):('--upf_pot','--xml')}
    extensions = dict(upf='upf',fsatom='xml',gamess='gamess',casino='data')

Esempio n. 16
0
#  graph.py                                                          #
#    Interface with pydot to make images of directed graphs.         #
#                                                                    #
#  Content summary:                                                  #
#    Graph                                                           #
#      Wrapper class for pydot functionality                         #
#                                                                    #
#====================================================================#


from generic import obj
from developer import DevBase,unavailable
try:
    from pydot import Dot,Node,Edge,Cluster as pdCluster
except:
    Dot,Node,Edge,pdCluster = unavailable('Dot','Node','Edge','pdCluster')
#end try


# websites
#  http://www.graphviz.org/Home.php
#  http://pythonhaven.wordpress.com/tag/pydot/
#  http://jseabold.net/blog/2012/02/making-graphical-models-with-pydot.html


class Graph(DevBase):

    pydot_type = Dot

    def __init__(self,*args,**kwargs):
        # some args are
Esempio n. 17
0
def test_unavailable():
    from generic import generic_settings, NexusError
    from developer import Void
    from developer import unavailable, available

    gre = generic_settings.raise_error
    generic_settings.raise_error = True

    try:
        import keyword
    except:
        keyword = unavailable('keyword')
    #end try

    assert (not isinstance(keyword, Void))
    assert (available(keyword))

    try:
        import an_unavailable_module
    except:
        an_unavailable_module = unavailable('an_unavailable_module')
    #end try

    assert (isinstance(an_unavailable_module, Void))
    assert (not available(an_unavailable_module))

    try:
        from an_unavailable_module import a, b, c, d, e, f, g
    except:
        a, b, c, d, e, f, g = unavailable('an_unavailable_module', 'a', 'b',
                                          'c', 'd', 'e', 'f', 'g')
    #end try

    void_imports = an_unavailable_module, b, c, d, e, f, g

    for v in void_imports:
        assert (isinstance(v, Void))
        assert (not available(v))
    #end for

    operations = [
        dir,
        len,
        repr,
        str,
        complex,
        int,
        float,
        lambda v: v == 0,
        lambda v: v != 0,
        lambda v: v > 0,
        lambda v: v < 0,
        lambda v: v >= 0,
        lambda v: v <= 0,
        lambda v: v(),
        lambda v: v.a,
        lambda v: v['a'],
        lambda v: setattr(v, 'a', 0),
        lambda v: getattr(v, 'a'),
        lambda v: delattr(v, 'a'),
        lambda v: v + 0,
        lambda v: v - 0,
        lambda v: v * 0,
        lambda v: v / 0,
        lambda v: v % 0,
        lambda v: v & 0,
        lambda v: v | 0,
    ]
    for op in operations:
        for v in void_imports:
            try:
                op(v)
                raise FailedTest
            except NexusError:
                None
            except FailedTest:
                failed()
            except Exception as e:
                failed(str(e))
            #end try
        #end for
    #end for

    generic_settings.raise_error = gre