# 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([
# 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
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()
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'])
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:
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,
# # # 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)
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
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]
# 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
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}
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):
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):
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')
# 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
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