Merge branch 'develop' into htxelatex_for_html_output

This commit is contained in:
Peter Doak 2018-06-27 15:23:07 -04:00
commit af9e2586e8
26 changed files with 3165 additions and 74 deletions

View File

@ -16,7 +16,6 @@
\usepackage{verbatim}
\usepackage{caption}
\usepackage{graphicx}
\usepackage{epsfig}
% making listing behave properly
% with setting below, listings now render correctly

View File

@ -0,0 +1,91 @@
#! /usr/bin/env python
from nexus import settings,job,run_project,obj
from nexus import generate_physical_system
from nexus import generate_gamess
settings(
pseudo_dir = './pseudopotentials',
results = '',
status_only = 0,
generate_only = 0,
sleep = 3,
machine = 'ws16',
ericfmt = '/your/path/to/ericfmt.dat'
)
gms_job = job(cores=16,app='gamess.x')
h2o = generate_physical_system(
# full atomic/electronic structure
elem = ['O','H','H'],
pos = [[0.000000, 0.000000, 0.000000],
[0.000000,-0.757160, 0.586260],
[0.000000, 0.757160, 0.586260]],
units = 'A', # Angstroms
net_spin = 0, # multiplicity=1, nup-ndown=0
O = 6, # Zeff=6 for BFD ECP
H = 1, # Zeff=1 for BFD ECP
# C2v symmetry structure
folded_elem = ['O','H'],
folded_pos = [[0.000000, 0.000000, 0.000000],
[0.000000, 0.757160, 0.586260]],
)
sims = []
rhf = generate_gamess(
identifier = 'rhf',
path = 'pp_casscf',
job = gms_job,
system = h2o,
pseudos = ['O.BFD_V5Z.gms','H.BFD_V5Z_ANO.gms'],
scftyp = 'rohf',
runtyp = 'energy',
exetyp = 'run',
ispher = 1,
maxit = 200,
memory = 150000000,
dirscf = True,
guess = 'huckel',
symmetry = 'Cnv 2',
prtmo = True,
)
sims.append(rhf)
cas = generate_gamess(
identifier = 'cas',
path = 'pp_casscf',
job = gms_job,
system = h2o,
pseudos = ['O.BFD_V5Z.gms','H.BFD_V5Z_ANO.gms'],
scftyp = 'mcscf',
runtyp = 'energy',
exetyp = 'run',
ispher = 1,
maxit = 200,
memory = 150000000,
dirscf = True,
symmetry = 'Cnv 2',
drt = obj(
group = 'C2v',
nmcc = 0,
ndoc = 4,
nalp = 0,
nval = 4,
istsym = 1,
mxnint = 500000,
fors = True,
),
mcscf = obj(
cistep = 'guga',
maxit = 1000,
fullnr = True,
acurcy = 1e-5,
),
dependencies = (rhf,'orbitals')
)
sims.append(cas)
run_project(sims)

View File

@ -0,0 +1,91 @@
#! /usr/bin/env python
from nexus import settings,job,run_project,obj
from nexus import generate_physical_system
from nexus import generate_gamess
settings(
pseudo_dir = './pseudopotentials',
results = '',
status_only = 0,
generate_only = 0,
sleep = 3,
machine = 'ws16',
ericfmt = '/your/path/to/ericfmt.dat'
)
gms_job = job(cores=16,app='gamess.x')
h2o = generate_physical_system(
# full atomic/electronic structure
elem = ['O','H','H'],
pos = [[0.000000, 0.000000, 0.000000],
[0.000000,-0.757160, 0.586260],
[0.000000, 0.757160, 0.586260]],
units = 'A', # Angstroms
net_spin = 0, # multiplicity=1, nup-ndown=0
O = 6, # Zeff=6 for BFD ECP
H = 1, # Zeff=1 for BFD ECP
# C2v symmetry structure
folded_elem = ['O','H'],
folded_pos = [[0.000000, 0.000000, 0.000000],
[0.000000, 0.757160, 0.586260]],
)
sims = []
rhf = generate_gamess(
identifier = 'rhf',
path = 'pp_cisd',
job = gms_job,
system = h2o,
pseudos = ['O.BFD_V5Z.gms','H.BFD_V5Z_ANO.gms'],
scftyp = 'rohf',
runtyp = 'energy',
exetyp = 'run',
ispher = 1,
maxit = 200,
memory = 150000000,
dirscf = True,
guess = 'huckel',
symmetry = 'Cnv 2',
prtmo = True,
)
sims.append(rhf)
cisd = generate_gamess(
identifier = 'cisd',
path = 'pp_cisd',
job = gms_job,
system = h2o,
pseudos = ['O.BFD_V5Z.gms','H.BFD_V5Z_ANO.gms'],
scftyp = 'none',
cityp = 'guga',
runtyp = 'energy',
exetyp = 'run',
ispher = 1,
maxit = 200,
memory = 150000000,
dirscf = True,
symmetry = 'Cnv 2',
cidrt = obj(
group = 'C2v',
nfzc = 0,
ndoc = 4,
nalp = 0,
nval = 60,
nprt = 2,
istsym = 1,
iexcit = 2,
mxnint = 500000,
),
gugdia = obj(
prttol = 0.001,
cvgtol = 1.0e-5,
itermx = 1000,
),
dependencies = (rhf,'orbitals')
)
sims.append(cisd)
run_project(sims)

View File

@ -0,0 +1,55 @@
#! /usr/bin/env python
from nexus import settings,job,run_project
from nexus import generate_physical_system
from nexus import generate_gamess
settings(
pseudo_dir = './pseudopotentials',
results = '',
status_only = 0,
generate_only = 0,
sleep = 3,
machine = 'ws16',
ericfmt = '/your/path/to/ericfmt.dat'
)
gms_job = job(cores=16,app='gamess.x')
h2o = generate_physical_system(
# full atomic/electronic structure
elem = ['O','H','H'],
pos = [[0.000000, 0.000000, 0.000000],
[0.000000,-0.757160, 0.586260],
[0.000000, 0.757160, 0.586260]],
units = 'A', # Angstroms
net_spin = 0, # multiplicity=1, nup-ndown=0
O = 6, # Zeff=6 for BFD ECP
H = 1, # Zeff=1 for BFD ECP
# C2v symmetry structure
folded_elem = ['O','H'],
folded_pos = [[0.000000, 0.000000, 0.000000],
[0.000000, 0.757160, 0.586260]],
)
sims = []
rhf = generate_gamess(
identifier = 'rhf',
path = 'pp_hf',
job = gms_job,
system = h2o,
pseudos = ['O.BFD_V5Z.gms','H.BFD_V5Z_ANO.gms'],
scftyp = 'rohf',
runtyp = 'energy',
exetyp = 'run',
ispher = 1,
maxit = 200,
memory = 150000000,
dirscf = True,
guess = 'huckel',
symmetry = 'Cnv 2',
)
sims.append(rhf)
run_project(sims)

View File

@ -0,0 +1,68 @@
H 1 0. 0. 0.
s 6 1.00
1 6.359201 -0.004943
2 3.546637 0.049579
3 1.493442 0.037176
4 0.551948 0.287908
5 0.207203 0.009543
6 0.079234 0.770084
s 6 1.00
1 6.359201 -0.016672
2 3.546637 -0.005774
3 1.493442 -0.227982
4 0.551948 -0.285652
5 0.207203 -1.071579
6 0.079234 1.423767
s 6 1.00
1 6.359201 -0.018886
2 3.546637 -0.058854
3 1.493442 -0.556988
4 0.551948 -1.084022
5 0.207203 2.721525
6 0.079234 -1.458091
s 6 1.00
1 6.359201 -0.081999
2 3.546637 -0.069460
3 1.493442 -2.075555
4 0.551948 4.125180
5 0.207203 -3.407591
6 0.079234 1.264873
s 6 1.00
1 6.359201 0.624292
2 3.546637 -3.954593
3 1.493442 5.614244
4 0.551948 -4.299981
5 0.207203 2.379542
6 0.079234 -0.749499
s 1 1.00
1 0.102700 1.000000
p 1 1.00
1 4.516000 1.000000
p 1 1.00
1 1.712000 1.000000
p 1 1.00
1 0.649000 1.000000
p 1 1.00
1 0.246000 1.000000
d 1 1.00
1 2.950000 1.000000
d 1 1.00
1 1.206000 1.000000
d 1 1.00
1 0.493000 1.000000
f 1 1.00
1 1.397000 1.000000
f 1 1.00
1 2.506000 1.000000
f 1 1.00
1 0.875000 1.000000
g 1 1.00
1 2.358000 1.000000
H-QMC GEN 0 0
3
1.00000000 1 4.47692410
4.47692410 3 2.97636451
-4.32112340 2 3.01841596

View File

@ -0,0 +1,65 @@
O 8 0. 0. 0.
s 9 1.00
1 0.125346 0.055741
2 0.268022 0.304848
3 0.573098 0.453752
4 1.225429 0.295926
5 2.620277 0.019567
6 5.602818 -0.128627
7 11.980245 0.012024
8 25.616801 0.000407
9 54.775216 -0.000076
s 1 1.00
1 0.160664 1.000000
s 1 1.00
1 0.384526 1.000000
s 1 1.00
1 0.935157 1.000000
s 1 1.00
1 1.937532 1.000000
p 9 1.00
1 0.083598 0.044958
2 0.167017 0.150175
3 0.333673 0.255999
4 0.666627 0.281879
5 1.331816 0.242835
6 2.660761 0.161134
7 5.315785 0.082308
8 10.620108 0.039899
9 21.217318 0.004679
p 1 1.00
1 0.130580 1.000000
p 1 1.00
1 0.372674 1.000000
p 1 1.00
1 1.178227 1.000000
p 1 1.00
1 1.589967 1.000000
d 1 1.00
1 0.401152 1.000000
d 1 1.00
1 1.174596 1.000000
d 1 1.00
1 2.823972 1.000000
d 1 1.00
1 4.292433 1.000000
f 1 1.00
1 0.708666 1.000000
f 1 1.00
1 2.006788 1.000000
f 1 1.00
1 3.223721 1.000000
g 1 1.00
1 1.207657 1.000000
g 1 1.00
1 3.584495 1.000000
O-QMC GEN 2 1
3
6.00000000 1 9.29793903
55.78763416 3 8.86492204
-38.81978498 2 8.62925665
1
38.41914135 2 8.71924452

View File

@ -1699,6 +1699,20 @@ example_information = dict(
('pwscf' ,'input','quantum_espresso/relax_Ge_T_vs_kpoints/runs/relax/kgrid_666/relax.in'),
],
),
gamess_H2O = dict(
scripts = [
'gamess/H2O/h2o_pp_hf.py',
'gamess/H2O/h2o_pp_cisd.py',
'gamess/H2O/h2o_pp_casscf.py',
],
files = [
('gamess' ,'input','gamess/H2O/runs/pp_hf/rhf.inp'),
('gamess' ,'input','gamess/H2O/runs/pp_cisd/rhf.inp'),
('gamess' ,'input','gamess/H2O/runs/pp_cisd/cisd.inp'),
('gamess' ,'input','gamess/H2O/runs/pp_casscf/rhf.inp'),
('gamess' ,'input','gamess/H2O/runs/pp_casscf/cas.inp'),
],
),
qmcpack_H2O = dict(
scripts = [
'qmcpack/H2O/H2O.py',
@ -1846,8 +1860,13 @@ def user_examples(label):
failed = True
# if difference due to periodically equivalent points
# then it is not a failure
check_pbc = code=='qmcpack' and len(dgen)==1 and len(dref)==1 and dgen.keys()[0].endswith('/position') and dref.keys()[0].endswith('/position')
check_pbc |= code=='pwscf' and len(dgen)==1 and len(dref)==1 and dgen.keys()[0].endswith('/positions') and dref.keys()[0].endswith('/positions')
check_pbc = False
if len(dgen)==1 and len(dref)==1:
kgen = dgen.keys()[0].rsplit('/',1)[1]
kref = dref.keys()[0].rsplit('/',1)[1]
check_pbc |= code=='qmcpack' and kgen==kref=='position'
check_pbc |= code=='pwscf' and kgen==kref=='positions'
#end if
if check_pbc:
try:
# extract Structure objects from SimulationInput objects
@ -1972,7 +1991,7 @@ def regenerate_reference(update=False,overwrite=True):
# execute all example scripts in generate_only mode
for label,einfo in example_information.iteritems():
for script_path in einfo.scripts:
for script_path in einfo['scripts']:
print ' generating reference data for '+script_path
path,script = os.path.split(script_path)
path = os.path.join(refgen_example_dir,path)
@ -1990,9 +2009,10 @@ def regenerate_reference(update=False,overwrite=True):
# update the reference set of example files
if update:
overwrite = False
ref_example_dir = os.path.join(reference_dir,'user_examples')
for label,filelist in example_files.iteritems():
for code,filetype,filepath in filelist:
for label,einfo in example_information.iteritems():
for code,filetype,filepath in einfo['files']:
ref_filepath = os.path.join(ref_example_dir,filepath)
gen_filepath = os.path.join(refgen_example_dir,filepath)
if overwrite or not os.path.exists(ref_filepath):
@ -2098,7 +2118,7 @@ if __name__=='__main__':
for test in NexusTest.test_list:
if regex is None:
tests.append(test)
elif re.match(regex,test.name):
elif re.search(regex,test.name):
tests.append(test)
#end if
#end for

View File

@ -1032,7 +1032,7 @@ def generate_any_gamess_input(**kwargs):
invalid_names = kwset-GamessInput.all_name_aliases
if len(invalid_names)>0:
GamessInput.class_error('invalid group names or keywords encountered\ninvalid names/keywords provided: {0}\nplease check if these group names or keywords are actually valid GAMESS inputs\nif so, unsupported groups can be generated by providing the keywords as a single argument:\n generate_gamess_input(\n ...,\n group_name = obj(assign keywords),\n ...,\n )'.format(sorted(invalid_names)),'generate_gamess_input')
GamessInput.class_error('invalid group names or keywords encountered\ninvalid names/keywords provided: {0}\nplease check if these group names or keywords are actually valid GAMESS inputs\nif so, unsupported groups can be generated by providing the keywords as a single argument:\ngenerate_gamess_input(\n ...,\n group_name = obj(assign keywords),\n ...,\n )'.format(sorted(invalid_names)),'generate_gamess_input')
#end if
gi = GamessInput()
@ -1062,9 +1062,9 @@ def generate_any_gamess_input(**kwargs):
elif name in GamessInput.key_groups:
gi[name] = KeywordGroup(**group_info)
elif name in GamessInput.card_groups:
GamessInput.class_error('card group {0} cannot be generated from a keyword list\n keyword list provided:\n {1}'.format(name,group_info),'generate_gamess_input')
GamessInput.class_error('card group {0} cannot be generated from a keyword list\nkeyword list provided:\n{1}'.format(name,group_info),'generate_gamess_input')
elif name in GamessInput.formatted_groups:
GamessInput.class_error('formatted group {0} cannot be generated from a keyword list\n keyword list provided:\n {1}'.format(name,group_info),'generate_gamess_input')
GamessInput.class_error('formatted group {0} cannot be generated from a keyword list\nkeyword list provided:\n{1}'.format(name,group_info),'generate_gamess_input')
else:
gi[name] = KeywordGroup(**group_info) # assume keyword group
#end if
@ -1090,7 +1090,7 @@ def generate_any_gamess_input(**kwargs):
#end if
#end for
if len(kwrem)>0:
GamessInput.class_error('encountered unrecognized keywords\n unrecognized keywords: {0}\n these keywords may belong to groups not fully implemented here\n fully supported groups: {1}\n unsupported groups can be generated by providing the keywords as a single argument: group_name = obj(assign keywords)'.format(sorted(kwrem),GamessInput.keyspec_group_order))
GamessInput.class_error('encountered unrecognized keywords\nunrecognized keywords: {0}\nthese keywords may belong to groups not fully implemented here\nfully supported groups: {1}\nunsupported groups can be generated by providing the keywords as a single argument: group_name = obj(assign keywords)'.format(sorted(kwrem),GamessInput.keyspec_group_order))
#end if
# handle nexus specific input generation keywords
@ -1101,12 +1101,20 @@ def generate_any_gamess_input(**kwargs):
if not 'contrl' in gi:
gi.contrl = ContrlGroup()
#end if
gi.contrl.set(
# allow user override of charge and multiplicity from physical system
gi.contrl.set_optional(
icharg = system.net_charge,
mult = system.net_spin+1
mult = system.net_spin+1,
)
elem = system.structure.elem
pos = system.structure.pos
s = system.structure
if s.has_folded():
sf = s.folded_structure
else:
sf = s
#end if
elem_ecp = s.elem
elem = sf.elem
pos = sf.pos
pskw.symmetry = pskw.symmetry.strip()
data = '{0}\n{1}\n'.format(pskw.descriptor,pskw.symmetry)
if pskw.symmetry!='C1':
@ -1134,16 +1142,19 @@ def generate_any_gamess_input(**kwargs):
coord = 'unique',
ecp = 'read'
)
ecp = ''
pps = nexus_noncore.pseudopotentials.pseudos_by_atom(*pskw.pseudos)
atoms = set()
for i in range(len(elem)):
a = elem[i]
for i,a in enumerate(elem):
Z = pt[a].atomic_number
data+='{0} {1} {2:16.8f} {3:16.8f} {4:16.8f}\n'.format(a,Z,*pos[i])
if a in pps:
data += pps[a].basis_text+'\n\n'
#end if
#end for
ecp = ''
atoms = set()
for i,a in enumerate(elem_ecp):
if a in pps:
pp = pps[a]
data += pp.basis_text+'\n\n'
if a in atoms:
ecp += pp.pp_name+'\n'
else:

View File

@ -270,25 +270,37 @@ class PhysicalSystem(Matter):
#end if
self.folded_system = None
if self.structure.folded_structure!=None:
vratio = structure.volume()/structure.folded_structure.volume()
ncells = int(round(vratio))
if abs(vratio-ncells)>1e-4:
self.error('volume of system does not divide evenly into folded system')
#end if
if net_charge%ncells!=0:
self.error('net charge of system does not divide evenly into folded system')
#end if
if isinstance(net_spin,str):
net_spin_fold = net_spin
elif net_spin%ncells!=0:
self.error('net_spin of system does not divide evenly into folded system')
if self.structure.has_folded():
if self.structure.is_tiled():
vratio = structure.volume()/structure.folded_structure.volume()
ncells = int(round(vratio))
if abs(vratio-ncells)>1e-4:
self.error('volume of system does not divide evenly into folded system')
#end if
if net_charge%ncells!=0:
self.error('net charge of system does not divide evenly into folded system')
#end if
if isinstance(net_spin,str):
net_spin_fold = net_spin
elif net_spin%ncells!=0:
self.error('net_spin of system does not divide evenly into folded system')
else:
net_spin_fold = net_spin/ncells
#end if
net_charge_fold = net_charge/ncells
elif not self.structure.has_axes(): # folded molecule
# net charge/spin are not physically meaningful
# for a point group folded molecule
# set them to safe values; they will not be used later
net_charge_fold = 0
net_spin_fold = 'low'
else:
net_spin_fold = net_spin/ncells
self.error('folded structure is not correctly integrated with full structure\nfolded physical system cannot be constructed')
#end if
self.folded_system = PhysicalSystem(
structure = structure.folded_structure,
net_charge = net_charge/ncells,
net_charge = net_charge_fold,
net_spin = net_spin_fold,
particles = particles,
**valency

View File

@ -674,12 +674,30 @@ class Structure(Sobj):
#end def set_operations
def __init__(self,axes=None,scale=1.,elem=None,pos=None,mag=None,
center=None,kpoints=None,kweights=None,kgrid=None,kshift=None,
permute=None,units=None,tiling=None,rescale=True,dim=3,
magnetization=None,magnetic_order=None,magnetic_prim=True,
operations=None,background_charge=0,frozen=None,bconds=None,
posu=None):
def __init__(self,
axes = None,
scale = 1.,
elem = None,
pos = None,
mag = None,
center = None,
kpoints = None,
kweights = None,
kgrid = None,
kshift = None,
permute = None,
units = None,
tiling = None,
rescale = True,
dim = 3,
magnetization = None,
magnetic_order = None,
magnetic_prim = True,
operations = None,
background_charge = 0,
frozen = None,
bconds = None,
posu = None):
if center is None:
if axes is not None:
@ -820,7 +838,7 @@ class Structure(Sobj):
def operate(self,operations):
for op in operations:
if not op in self.operations:
self.error('{0} is not a known operation\n valid options are:\n {1}'.format(op,list(self.operations.keys())))
self.error('{0} is not a known operation\nvalid options are:\n {1}'.format(op,list(self.operations.keys())))
else:
self.operations[op](self)
#end if
@ -828,6 +846,16 @@ class Structure(Sobj):
#end def operate
def has_tmatrix(self):
return 'tmatrix' in self and self.tmatrix is not None
#end def has_tmatrix
def is_tiled(self):
return self.has_folded() and self.has_tmatrix()
#end def is_tiled
def set_folded(self,folded):
self.set_folded_structure(folded)
#end def set_folded
@ -844,19 +872,26 @@ class Structure(Sobj):
def set_folded_structure(self,folded):
if not isinstance(folded,Structure):
self.error('cannot set folded structure\nfolded structure must be an object with type Structure\nreceived type: {0}'.format(folded.__class__.__name__))
#end if
self.folded_structure = folded
self.tmatrix = self.tilematrix(folded)
if self.has_axes():
self.tmatrix = self.tilematrix(folded)
#end if
#end def set_folded_structure
def remove_folded_structure(self):
self.folded_structure = None
self.tmatrix = None
if 'tmatrix' in self:
del self.tmatrix
#end if
#end def remove_folded_structure
def has_folded_structure(self):
return self.folded_structure!=None
return self.folded_structure is not None
#end def has_folded_structure
@ -2932,7 +2967,7 @@ class Structure(Sobj):
ts.recenter()
ts.unique_kpoints()
if self.folded_structure!=None:
if self.is_tiled():
ts.tmatrix = dot(tilematrix,self.tmatrix)
ts.folded_structure = self.folded_structure.copy()
else:
@ -3180,7 +3215,7 @@ class Structure(Sobj):
self.unique_kpoints()
#end if
self.recenter_k() #added because qmcpack cannot handle kpoints outside the box
if self.folded_structure!=None:
if self.is_tiled():
kp,kw = self.kfold(self.tmatrix,kpoints,kweights)
self.folded_structure.add_kpoints(kp,kw,unique=unique)
#end if
@ -5261,7 +5296,17 @@ def generate_structure(type='crystal',*args,**kwargs):
def generate_atom_structure(atom=None,units='A',Lbox=None,skew=0,axes=None,kgrid=(1,1,1),kshift=(0,0,0),bconds=tuple('nnn'),struct_type=Structure):
def generate_atom_structure(
atom = None,
units = 'A',
Lbox = None,
skew = 0,
axes = None,
kgrid = (1,1,1),
kshift = (0,0,0),
bconds = tuple('nnn'),
struct_type = Structure
):
if atom is None:
Structure.class_error('atom must be provided','generate_atom_structure')
#end if
@ -5279,7 +5324,19 @@ def generate_atom_structure(atom=None,units='A',Lbox=None,skew=0,axes=None,kgrid
#end def generate_atom_structure
def generate_dimer_structure(dimer=None,units='A',separation=None,Lbox=None,skew=0,axes=None,kgrid=(1,1,1),kshift=(0,0,0),bconds=tuple('nnn'),struct_type=Structure,axis='x'):
def generate_dimer_structure(
dimer = None,
units = 'A',
separation = None,
Lbox = None,
skew = 0,
axes = None,
kgrid = (1,1,1),
kshift = (0,0,0),
bconds = tuple('nnn'),
struct_type = Structure,
axis = 'x'
):
if dimer is None:
Structure.class_error('dimer atoms must be provided to construct dimer','generate_dimer_structure')
#end if
@ -5308,7 +5365,22 @@ def generate_dimer_structure(dimer=None,units='A',separation=None,Lbox=None,skew
#end def generate_dimer_structure
def generate_trimer_structure(trimer=None,units='A',separation=None,angle=None,Lbox=None,skew=0,axes=None,kgrid=(1,1,1),kshift=(0,0,0),struct_type=Structure,axis='x',axis2='y',angular_units='degrees',plane_rot=None):
def generate_trimer_structure(
trimer = None,
units = 'A',
separation = None,
angle = None,
Lbox = None,
skew = 0,
axes = None,
kgrid = (1,1,1),
kshift = (0,0,0),
struct_type = Structure,
axis = 'x',
axis2 = 'y',
angular_units = 'degrees',
plane_rot = None
):
if trimer is None:
Structure.class_error('trimer atoms must be provided to construct trimer','generate_trimer_structure')
#end if
@ -5381,34 +5453,61 @@ def generate_jellium_structure(*args,**kwargs):
def generate_crystal_structure(lattice=None,cell=None,centering=None,
constants=None,atoms=None,basis=None,
basis_vectors=None,tiling=None,cscale=None,
axes=None,units=None,angular_units='degrees',
magnetization=None,magnetic_order=None,magnetic_prim=True,
kpoints=None,kweights=None,kgrid=None,kshift=(0,0,0),permute=None,
structure=None,shape=None,element=None,scale=None, #legacy inputs
operations=None,
struct_type=Crystal,elem=None,pos=None,frozen=None,
posu=None):
def generate_crystal_structure(
lattice = None,
cell = None,
centering = None,
constants = None,
atoms = None,
basis = None,
basis_vectors = None,
tiling = None,
cscale = None,
axes = None,
units = None,
angular_units = 'degrees',
magnetization = None,
magnetic_order = None,
magnetic_prim = True,
kpoints = None,
kweights = None,
kgrid = None,
kshift = (0,0,0),
permute = None,
operations = None,
struct_type = Crystal,
elem = None,
pos = None,
frozen = None,
posu = None,
folded_elem = None,
folded_pos = None,
folded_units = None,
#legacy inputs
structure = None,
shape = None,
element = None,
scale = None,
):
if structure!=None:
if structure is not None:
lattice = structure
#end if
if shape!=None:
if shape is not None:
cell = shape
#end if
if element!=None:
if element is not None:
atoms = element
#end if
if scale!=None:
if scale is not None:
constants = scale
#end if
#interface for total manual specification
# this is only here because 'crystal' is default and must handle other cases
s = None
if elem is not None and (pos is not None or posu is not None):
return Structure(
s = Structure(
axes = axes,
elem = elem,
pos = pos,
@ -5426,18 +5525,33 @@ def generate_crystal_structure(lattice=None,cell=None,centering=None,
operations = operations,
posu = posu)
elif isinstance(structure,Structure):
if tiling!=None:
structure = structure.tile(tiling)
s = structure
if tiling is not None:
s = s.tile(tiling)
#end if
if kpoints!=None:
structure.add_kpoints(kpoints,kweights)
if kpoints is not None:
s.add_kpoints(kpoints,kweights)
#end if
if kgrid!=None:
structure.add_kmesh(kgrid,kshift)
if kgrid is not None:
s.add_kmesh(kgrid,kshift)
#end if
return structure
#end if
if s is not None:
# add point group folded molecular system if present
if folded_elem is not None and folded_pos is not None:
if folded_units is None:
folded_units = units
#end if
fs = Structure(
elem = folded_elem,
pos = folded_pos,
units = folded_units,
rescale = False,
)
s.set_folded(fs)
#end if
return s
#end if
s=Crystal(
lattice = lattice ,

View File

@ -0,0 +1,144 @@
$contrl coord=unique ecp=read exetyp=run icharg=0 ispher=1
maxit=200 mult=1 runtyp=energy scftyp=mcscf $end
$system memory=150000000 $end
$scf dirscf=.true. $end
$drt fors=.true. group=C2v istsym=1 mxnint=500000 nalp=0 ndoc=4
nmcc=0 nval=4 $end
$mcscf acurcy=1d-05 cistep=guga fullnr=.true. maxit=1000 $end
$ECP
O-QMC GEN 2 1
3
6.00000000 1 9.29793903
55.78763416 3 8.86492204
-38.81978498 2 8.62925665
1
38.41914135 2 8.71924452
H-QMC GEN 0 0
3
1.00000000 1 4.47692410
4.47692410 3 2.97636451
-4.32112340 2 3.01841596
H-QMC
$END
$DATA
A molecule.
Cnv 2
O 8 0.00000000 0.00000000 0.00000000
s 9 1.00
1 0.125346 0.055741
2 0.268022 0.304848
3 0.573098 0.453752
4 1.225429 0.295926
5 2.620277 0.019567
6 5.602818 -0.128627
7 11.980245 0.012024
8 25.616801 0.000407
9 54.775216 -0.000076
s 1 1.00
1 0.160664 1.000000
s 1 1.00
1 0.384526 1.000000
s 1 1.00
1 0.935157 1.000000
s 1 1.00
1 1.937532 1.000000
p 9 1.00
1 0.083598 0.044958
2 0.167017 0.150175
3 0.333673 0.255999
4 0.666627 0.281879
5 1.331816 0.242835
6 2.660761 0.161134
7 5.315785 0.082308
8 10.620108 0.039899
9 21.217318 0.004679
p 1 1.00
1 0.130580 1.000000
p 1 1.00
1 0.372674 1.000000
p 1 1.00
1 1.178227 1.000000
p 1 1.00
1 1.589967 1.000000
d 1 1.00
1 0.401152 1.000000
d 1 1.00
1 1.174596 1.000000
d 1 1.00
1 2.823972 1.000000
d 1 1.00
1 4.292433 1.000000
f 1 1.00
1 0.708666 1.000000
f 1 1.00
1 2.006788 1.000000
f 1 1.00
1 3.223721 1.000000
g 1 1.00
1 1.207657 1.000000
g 1 1.00
1 3.584495 1.000000
H 1 0.00000000 0.75716000 0.58626000
s 6 1.00
1 6.359201 -0.004943
2 3.546637 0.049579
3 1.493442 0.037176
4 0.551948 0.287908
5 0.207203 0.009543
6 0.079234 0.770084
s 6 1.00
1 6.359201 -0.016672
2 3.546637 -0.005774
3 1.493442 -0.227982
4 0.551948 -0.285652
5 0.207203 -1.071579
6 0.079234 1.423767
s 6 1.00
1 6.359201 -0.018886
2 3.546637 -0.058854
3 1.493442 -0.556988
4 0.551948 -1.084022
5 0.207203 2.721525
6 0.079234 -1.458091
s 6 1.00
1 6.359201 -0.081999
2 3.546637 -0.069460
3 1.493442 -2.075555
4 0.551948 4.125180
5 0.207203 -3.407591
6 0.079234 1.264873
s 6 1.00
1 6.359201 0.624292
2 3.546637 -3.954593
3 1.493442 5.614244
4 0.551948 -4.299981
5 0.207203 2.379542
6 0.079234 -0.749499
s 1 1.00
1 0.102700 1.000000
p 1 1.00
1 4.516000 1.000000
p 1 1.00
1 1.712000 1.000000
p 1 1.00
1 0.649000 1.000000
p 1 1.00
1 0.246000 1.000000
d 1 1.00
1 2.950000 1.000000
d 1 1.00
1 1.206000 1.000000
d 1 1.00
1 0.493000 1.000000
f 1 1.00
1 1.397000 1.000000
f 1 1.00
1 2.506000 1.000000
f 1 1.00
1 0.875000 1.000000
g 1 1.00
1 2.358000 1.000000
$END

View File

@ -0,0 +1,142 @@
$contrl coord=unique ecp=read exetyp=run icharg=0 ispher=1
maxit=200 mult=1 runtyp=energy scftyp=rohf $end
$system memory=150000000 $end
$scf dirscf=.true. $end
$guess guess=huckel prtmo=.true. $end
$ECP
O-QMC GEN 2 1
3
6.00000000 1 9.29793903
55.78763416 3 8.86492204
-38.81978498 2 8.62925665
1
38.41914135 2 8.71924452
H-QMC GEN 0 0
3
1.00000000 1 4.47692410
4.47692410 3 2.97636451
-4.32112340 2 3.01841596
H-QMC
$END
$DATA
A molecule.
Cnv 2
O 8 0.00000000 0.00000000 0.00000000
s 9 1.00
1 0.125346 0.055741
2 0.268022 0.304848
3 0.573098 0.453752
4 1.225429 0.295926
5 2.620277 0.019567
6 5.602818 -0.128627
7 11.980245 0.012024
8 25.616801 0.000407
9 54.775216 -0.000076
s 1 1.00
1 0.160664 1.000000
s 1 1.00
1 0.384526 1.000000
s 1 1.00
1 0.935157 1.000000
s 1 1.00
1 1.937532 1.000000
p 9 1.00
1 0.083598 0.044958
2 0.167017 0.150175
3 0.333673 0.255999
4 0.666627 0.281879
5 1.331816 0.242835
6 2.660761 0.161134
7 5.315785 0.082308
8 10.620108 0.039899
9 21.217318 0.004679
p 1 1.00
1 0.130580 1.000000
p 1 1.00
1 0.372674 1.000000
p 1 1.00
1 1.178227 1.000000
p 1 1.00
1 1.589967 1.000000
d 1 1.00
1 0.401152 1.000000
d 1 1.00
1 1.174596 1.000000
d 1 1.00
1 2.823972 1.000000
d 1 1.00
1 4.292433 1.000000
f 1 1.00
1 0.708666 1.000000
f 1 1.00
1 2.006788 1.000000
f 1 1.00
1 3.223721 1.000000
g 1 1.00
1 1.207657 1.000000
g 1 1.00
1 3.584495 1.000000
H 1 0.00000000 0.75716000 0.58626000
s 6 1.00
1 6.359201 -0.004943
2 3.546637 0.049579
3 1.493442 0.037176
4 0.551948 0.287908
5 0.207203 0.009543
6 0.079234 0.770084
s 6 1.00
1 6.359201 -0.016672
2 3.546637 -0.005774
3 1.493442 -0.227982
4 0.551948 -0.285652
5 0.207203 -1.071579
6 0.079234 1.423767
s 6 1.00
1 6.359201 -0.018886
2 3.546637 -0.058854
3 1.493442 -0.556988
4 0.551948 -1.084022
5 0.207203 2.721525
6 0.079234 -1.458091
s 6 1.00
1 6.359201 -0.081999
2 3.546637 -0.069460
3 1.493442 -2.075555
4 0.551948 4.125180
5 0.207203 -3.407591
6 0.079234 1.264873
s 6 1.00
1 6.359201 0.624292
2 3.546637 -3.954593
3 1.493442 5.614244
4 0.551948 -4.299981
5 0.207203 2.379542
6 0.079234 -0.749499
s 1 1.00
1 0.102700 1.000000
p 1 1.00
1 4.516000 1.000000
p 1 1.00
1 1.712000 1.000000
p 1 1.00
1 0.649000 1.000000
p 1 1.00
1 0.246000 1.000000
d 1 1.00
1 2.950000 1.000000
d 1 1.00
1 1.206000 1.000000
d 1 1.00
1 0.493000 1.000000
f 1 1.00
1 1.397000 1.000000
f 1 1.00
1 2.506000 1.000000
f 1 1.00
1 0.875000 1.000000
g 1 1.00
1 2.358000 1.000000
$END

View File

@ -0,0 +1,144 @@
$contrl cityp=guga coord=unique ecp=read exetyp=run icharg=0
ispher=1 maxit=200 mult=1 runtyp=energy scftyp=none $end
$system memory=150000000 $end
$scf dirscf=.true. $end
$cidrt group=C2v iexcit=2 istsym=1 mxnint=500000 nalp=0 ndoc=4
nfzc=0 nprt=2 nval=60 $end
$gugdia cvgtol=1d-05 itermx=1000 prttol=0.001 $end
$ECP
O-QMC GEN 2 1
3
6.00000000 1 9.29793903
55.78763416 3 8.86492204
-38.81978498 2 8.62925665
1
38.41914135 2 8.71924452
H-QMC GEN 0 0
3
1.00000000 1 4.47692410
4.47692410 3 2.97636451
-4.32112340 2 3.01841596
H-QMC
$END
$DATA
A molecule.
Cnv 2
O 8 0.00000000 0.00000000 0.00000000
s 9 1.00
1 0.125346 0.055741
2 0.268022 0.304848
3 0.573098 0.453752
4 1.225429 0.295926
5 2.620277 0.019567
6 5.602818 -0.128627
7 11.980245 0.012024
8 25.616801 0.000407
9 54.775216 -0.000076
s 1 1.00
1 0.160664 1.000000
s 1 1.00
1 0.384526 1.000000
s 1 1.00
1 0.935157 1.000000
s 1 1.00
1 1.937532 1.000000
p 9 1.00
1 0.083598 0.044958
2 0.167017 0.150175
3 0.333673 0.255999
4 0.666627 0.281879
5 1.331816 0.242835
6 2.660761 0.161134
7 5.315785 0.082308
8 10.620108 0.039899
9 21.217318 0.004679
p 1 1.00
1 0.130580 1.000000
p 1 1.00
1 0.372674 1.000000
p 1 1.00
1 1.178227 1.000000
p 1 1.00
1 1.589967 1.000000
d 1 1.00
1 0.401152 1.000000
d 1 1.00
1 1.174596 1.000000
d 1 1.00
1 2.823972 1.000000
d 1 1.00
1 4.292433 1.000000
f 1 1.00
1 0.708666 1.000000
f 1 1.00
1 2.006788 1.000000
f 1 1.00
1 3.223721 1.000000
g 1 1.00
1 1.207657 1.000000
g 1 1.00
1 3.584495 1.000000
H 1 0.00000000 0.75716000 0.58626000
s 6 1.00
1 6.359201 -0.004943
2 3.546637 0.049579
3 1.493442 0.037176
4 0.551948 0.287908
5 0.207203 0.009543
6 0.079234 0.770084
s 6 1.00
1 6.359201 -0.016672
2 3.546637 -0.005774
3 1.493442 -0.227982
4 0.551948 -0.285652
5 0.207203 -1.071579
6 0.079234 1.423767
s 6 1.00
1 6.359201 -0.018886
2 3.546637 -0.058854
3 1.493442 -0.556988
4 0.551948 -1.084022
5 0.207203 2.721525
6 0.079234 -1.458091
s 6 1.00
1 6.359201 -0.081999
2 3.546637 -0.069460
3 1.493442 -2.075555
4 0.551948 4.125180
5 0.207203 -3.407591
6 0.079234 1.264873
s 6 1.00
1 6.359201 0.624292
2 3.546637 -3.954593
3 1.493442 5.614244
4 0.551948 -4.299981
5 0.207203 2.379542
6 0.079234 -0.749499
s 1 1.00
1 0.102700 1.000000
p 1 1.00
1 4.516000 1.000000
p 1 1.00
1 1.712000 1.000000
p 1 1.00
1 0.649000 1.000000
p 1 1.00
1 0.246000 1.000000
d 1 1.00
1 2.950000 1.000000
d 1 1.00
1 1.206000 1.000000
d 1 1.00
1 0.493000 1.000000
f 1 1.00
1 1.397000 1.000000
f 1 1.00
1 2.506000 1.000000
f 1 1.00
1 0.875000 1.000000
g 1 1.00
1 2.358000 1.000000
$END

View File

@ -0,0 +1,142 @@
$contrl coord=unique ecp=read exetyp=run icharg=0 ispher=1
maxit=200 mult=1 runtyp=energy scftyp=rohf $end
$system memory=150000000 $end
$scf dirscf=.true. $end
$guess guess=huckel prtmo=.true. $end
$ECP
O-QMC GEN 2 1
3
6.00000000 1 9.29793903
55.78763416 3 8.86492204
-38.81978498 2 8.62925665
1
38.41914135 2 8.71924452
H-QMC GEN 0 0
3
1.00000000 1 4.47692410
4.47692410 3 2.97636451
-4.32112340 2 3.01841596
H-QMC
$END
$DATA
A molecule.
Cnv 2
O 8 0.00000000 0.00000000 0.00000000
s 9 1.00
1 0.125346 0.055741
2 0.268022 0.304848
3 0.573098 0.453752
4 1.225429 0.295926
5 2.620277 0.019567
6 5.602818 -0.128627
7 11.980245 0.012024
8 25.616801 0.000407
9 54.775216 -0.000076
s 1 1.00
1 0.160664 1.000000
s 1 1.00
1 0.384526 1.000000
s 1 1.00
1 0.935157 1.000000
s 1 1.00
1 1.937532 1.000000
p 9 1.00
1 0.083598 0.044958
2 0.167017 0.150175
3 0.333673 0.255999
4 0.666627 0.281879
5 1.331816 0.242835
6 2.660761 0.161134
7 5.315785 0.082308
8 10.620108 0.039899
9 21.217318 0.004679
p 1 1.00
1 0.130580 1.000000
p 1 1.00
1 0.372674 1.000000
p 1 1.00
1 1.178227 1.000000
p 1 1.00
1 1.589967 1.000000
d 1 1.00
1 0.401152 1.000000
d 1 1.00
1 1.174596 1.000000
d 1 1.00
1 2.823972 1.000000
d 1 1.00
1 4.292433 1.000000
f 1 1.00
1 0.708666 1.000000
f 1 1.00
1 2.006788 1.000000
f 1 1.00
1 3.223721 1.000000
g 1 1.00
1 1.207657 1.000000
g 1 1.00
1 3.584495 1.000000
H 1 0.00000000 0.75716000 0.58626000
s 6 1.00
1 6.359201 -0.004943
2 3.546637 0.049579
3 1.493442 0.037176
4 0.551948 0.287908
5 0.207203 0.009543
6 0.079234 0.770084
s 6 1.00
1 6.359201 -0.016672
2 3.546637 -0.005774
3 1.493442 -0.227982
4 0.551948 -0.285652
5 0.207203 -1.071579
6 0.079234 1.423767
s 6 1.00
1 6.359201 -0.018886
2 3.546637 -0.058854
3 1.493442 -0.556988
4 0.551948 -1.084022
5 0.207203 2.721525
6 0.079234 -1.458091
s 6 1.00
1 6.359201 -0.081999
2 3.546637 -0.069460
3 1.493442 -2.075555
4 0.551948 4.125180
5 0.207203 -3.407591
6 0.079234 1.264873
s 6 1.00
1 6.359201 0.624292
2 3.546637 -3.954593
3 1.493442 5.614244
4 0.551948 -4.299981
5 0.207203 2.379542
6 0.079234 -0.749499
s 1 1.00
1 0.102700 1.000000
p 1 1.00
1 4.516000 1.000000
p 1 1.00
1 1.712000 1.000000
p 1 1.00
1 0.649000 1.000000
p 1 1.00
1 0.246000 1.000000
d 1 1.00
1 2.950000 1.000000
d 1 1.00
1 1.206000 1.000000
d 1 1.00
1 0.493000 1.000000
f 1 1.00
1 1.397000 1.000000
f 1 1.00
1 2.506000 1.000000
f 1 1.00
1 0.875000 1.000000
g 1 1.00
1 2.358000 1.000000
$END

View File

@ -0,0 +1,142 @@
$contrl coord=unique ecp=read exetyp=run icharg=0 ispher=1
maxit=200 mult=1 runtyp=energy scftyp=rohf $end
$system memory=150000000 $end
$scf dirscf=.true. $end
$guess guess=huckel $end
$ECP
O-QMC GEN 2 1
3
6.00000000 1 9.29793903
55.78763416 3 8.86492204
-38.81978498 2 8.62925665
1
38.41914135 2 8.71924452
H-QMC GEN 0 0
3
1.00000000 1 4.47692410
4.47692410 3 2.97636451
-4.32112340 2 3.01841596
H-QMC
$END
$DATA
A molecule.
Cnv 2
O 8 0.00000000 0.00000000 0.00000000
s 9 1.00
1 0.125346 0.055741
2 0.268022 0.304848
3 0.573098 0.453752
4 1.225429 0.295926
5 2.620277 0.019567
6 5.602818 -0.128627
7 11.980245 0.012024
8 25.616801 0.000407
9 54.775216 -0.000076
s 1 1.00
1 0.160664 1.000000
s 1 1.00
1 0.384526 1.000000
s 1 1.00
1 0.935157 1.000000
s 1 1.00
1 1.937532 1.000000
p 9 1.00
1 0.083598 0.044958
2 0.167017 0.150175
3 0.333673 0.255999
4 0.666627 0.281879
5 1.331816 0.242835
6 2.660761 0.161134
7 5.315785 0.082308
8 10.620108 0.039899
9 21.217318 0.004679
p 1 1.00
1 0.130580 1.000000
p 1 1.00
1 0.372674 1.000000
p 1 1.00
1 1.178227 1.000000
p 1 1.00
1 1.589967 1.000000
d 1 1.00
1 0.401152 1.000000
d 1 1.00
1 1.174596 1.000000
d 1 1.00
1 2.823972 1.000000
d 1 1.00
1 4.292433 1.000000
f 1 1.00
1 0.708666 1.000000
f 1 1.00
1 2.006788 1.000000
f 1 1.00
1 3.223721 1.000000
g 1 1.00
1 1.207657 1.000000
g 1 1.00
1 3.584495 1.000000
H 1 0.00000000 0.75716000 0.58626000
s 6 1.00
1 6.359201 -0.004943
2 3.546637 0.049579
3 1.493442 0.037176
4 0.551948 0.287908
5 0.207203 0.009543
6 0.079234 0.770084
s 6 1.00
1 6.359201 -0.016672
2 3.546637 -0.005774
3 1.493442 -0.227982
4 0.551948 -0.285652
5 0.207203 -1.071579
6 0.079234 1.423767
s 6 1.00
1 6.359201 -0.018886
2 3.546637 -0.058854
3 1.493442 -0.556988
4 0.551948 -1.084022
5 0.207203 2.721525
6 0.079234 -1.458091
s 6 1.00
1 6.359201 -0.081999
2 3.546637 -0.069460
3 1.493442 -2.075555
4 0.551948 4.125180
5 0.207203 -3.407591
6 0.079234 1.264873
s 6 1.00
1 6.359201 0.624292
2 3.546637 -3.954593
3 1.493442 5.614244
4 0.551948 -4.299981
5 0.207203 2.379542
6 0.079234 -0.749499
s 1 1.00
1 0.102700 1.000000
p 1 1.00
1 4.516000 1.000000
p 1 1.00
1 1.712000 1.000000
p 1 1.00
1 0.649000 1.000000
p 1 1.00
1 0.246000 1.000000
d 1 1.00
1 2.950000 1.000000
d 1 1.00
1 1.206000 1.000000
d 1 1.00
1 0.493000 1.000000
f 1 1.00
1 1.397000 1.000000
f 1 1.00
1 2.506000 1.000000
f 1 1.00
1 0.875000 1.000000
g 1 1.00
1 2.358000 1.000000
$END

View File

@ -50,6 +50,12 @@ namespace qmcplusplus
std::map<std::string,SPOSetBuilder*> SPOSetBuilderFactory::spo_builders;
SPOSetBuilder* SPOSetBuilderFactory::last_builder=0;
void SPOSetBuilderFactory::clear()
{
spo_builders.clear();
last_builder = nullptr;
}
SPOSetBase* get_sposet(const std::string& name)
{
int nfound = 0;

View File

@ -43,6 +43,9 @@ public:
///set of basis set builders resolved by type
static std::map<std::string,SPOSetBuilder*> spo_builders;
/// Reset the map and last_builder pointers. Mostly for unit tests.
static void clear();
/** constructor
* \param els reference to the electrons
* \param psi reference to the wavefunction

View File

@ -30,9 +30,19 @@ MAYBE_SYMLINK(${UTEST_HDF_INPUT} ${UTEST_DIR}/pwscf.pwscf.h5)
MAYBE_SYMLINK(${UTEST_HDF_INPUT2} ${UTEST_DIR}/bccH.pwscf.h5)
MAYBE_SYMLINK(${UTEST_HDF_INPUT3} ${UTEST_DIR}/LiH-arb.pwscf.h5)
SET(FILES_TO_COPY he_sto3g.wfj.xml ne_def2_svp.wfnoj.xml hcn.structure.xml hcn.wfnoj.xml)
FOREACH(fname ${FILES_TO_COPY})
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/${fname}" ${UTEST_DIR})
ENDFOREACH()
IF ((NOT QMC_COMPLEX) AND (NOT QMC_MIXED_PRECISION))
SET(MO_SRCS test_MO.cpp)
ENDIF()
ADD_EXECUTABLE(${UTEST_EXE} test_wf.cpp test_bspline_jastrow.cpp test_einset.cpp test_pw.cpp
test_polynomial_eeI_jastrow.cpp test_dirac_det.cpp test_dirac_matrix.cpp
test_wavefunction_factory.cpp)
test_wavefunction_factory.cpp ${MO_SRCS})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcwfs qmcbase qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -0,0 +1,200 @@
# Evaluate GTO's starting from a symbolic representation
# see qmc_algorithms/Wavefunctions/GaussianOrbitals.ipynb
from sympy import *
from collections import namedtuple, defaultdict
CG_basis = namedtuple('CG_basis',['orbtype','nbasis','zeta','contraction_coeff'])
class GTO:
def __init__(self, basis=None, center=[0.0, 0.0, 0.0]):
x,y,z = symbols('x y z')
alpha = Symbol('alpha', positive=True, real=True)
r = Symbol('r',real=True,nonnegative=True)
i,j,k = symbols('i j k',integer=True)
N = Symbol('N')
self.N = N
norm1 = factorial(i)*factorial(j)*factorial(k)
norm2 = factorial(2*i)*factorial(2*j)*factorial(2*k)
norm_sym = (2*alpha/pi)**(3/S(4)) * sqrt((8*alpha)**(i+j+k)*norm1/norm2)
gto_sym_raw = N * x**i * y**j * z**k * exp(-alpha *r**2)
gto_sym = gto_sym_raw.subs(N, norm_sym)
self.alpha = alpha
self.x = x; self.y = y; self.z = z
self.r = r
self.i = i; self.j = j; self.k = k
self.gto_sym = gto_sym
self.compute_grad()
self.ijk = get_ijk_by_type()
self.basis = basis
self.center = center
def compute_grad(self):
r2 = self.x**2 + self.y**2 + self.z**2
gto_xyz = self.gto_sym.subs(self.r**2, r2)
#print gto_xyz
self.grad = [0]*3
self.grad[0] = diff(gto_xyz, self.x).subs(r2, self.r**2)
self.grad[1] = diff(gto_xyz, self.y).subs(r2, self.r**2)
self.grad[2] = diff(gto_xyz, self.z).subs(r2, self.r**2)
lap = diff(gto_xyz, self.x, 2) + \
diff(gto_xyz, self.y, 2) + \
diff(gto_xyz, self.z, 2)
# Need to expand to avoid NaN's
self.lap = expand(lap.subs(r2, self.r**2))
def set_basis(self, basis):
self.basis = basis
def make_subs_list(self, i, j, k, x, y, z, alpha):
subs_list = {self.i:i, self.j:j, self.k:k}
r2 = x**2 + y**2 + z**2
r_val = sqrt(r2)
subs_list[self.r] = r_val
subs_list[self.r**2] = r2
subs_list[self.alpha] = alpha
subs_list[self.x] = x
subs_list[self.y] = y
subs_list[self.z] = z
return subs_list
def eval_single_v(self, i, j, k, x, y, z, alpha):
xc = x - self.center[0]
yc = y - self.center[1]
zc = z - self.center[2]
sl1 = self.make_subs_list(i,j,k,xc,yc,zc,alpha)
v = self.gto_sym.subs(sl1).evalf()
return v
def eval_single_vgl(self, i, j, k, x, y, z, alpha):
xc = x - self.center[0]
yc = y - self.center[1]
zc = z - self.center[2]
sl1 = self.make_subs_list(i,j,k,xc,yc,zc,alpha)
v = self.gto_sym.subs(sl1).evalf()
g = [grad.subs(sl1).evalf() for grad in self.grad]
lap = self.lap.subs(sl1).evalf()
return v,g,lap
def eval_contraction_v(self, x, y, z, basis):
vals = []
# Expand each basis type by the angular momentum state
angular_list = self.ijk[basis.orbtype]
for i,j,k,name in angular_list:
val = 0.0
for idx in range(basis.nbasis):
val += basis.contraction_coeff[idx] * self.eval_single_v(i,j,k,x,y,z,basis.zeta[idx])
vals.append(val)
return vals
def eval_contraction_vgl(self, x, y, z, basis):
vals = []
grads = []
laps = []
angular_list = self.ijk[basis.orbtype]
for i,j,k,name in angular_list:
val = 0.0
grad = [0.0, 0.0, 0.0]
lap = 0.0
for idx in range(basis.nbasis):
c = basis.contraction_coeff[idx]
v,g,l = self.eval_single_vgl(i,j,k,x,y,z,basis.zeta[idx])
val += c*v
lap += c*l
grad = [c*g[m] + grad[m] for m in range(3)]
vals.append(val)
grads.append(grad)
laps.append(lap)
return vals, grads, laps
def eval_v(self, x, y, z):
vs = []
for basis in self.basis:
v = self.eval_contraction_v(x, y, z, basis)
vs.extend(v)
return vs
def eval_vgl(self, x, y, z):
vs = []
grads = []
lapls = []
for basis in self.basis:
v,g,l = self.eval_contraction_vgl(x, y, z, basis)
vs.extend(v)
grads.extend(g)
lapls.extend(l)
return vs, grads, lapls
# generated from qmcpack src/Numerics/codegen/read_order.py
# Only part of the function included for now
def get_ijk():
ijk = []
# S
ijk.append( (0,0,0,"S") )
# P
ijk.append( (1,0,0,"X") )
ijk.append( (0,1,0,"Y") )
ijk.append( (0,0,1,"Z") )
# D
ijk.append( (2,0,0,"XX") )
ijk.append( (0,2,0,"YY") )
ijk.append( (0,0,2,"ZZ") )
ijk.append( (1,1,0,"XY") )
ijk.append( (1,0,1,"XZ") )
ijk.append( (0,1,1,"YZ") )
return ijk
def get_ijk_by_type():
ijk_list = get_ijk()
by_type = defaultdict(list)
for i,j,k,name in ijk_list:
L = i + j + k
by_type[L].append((i,j,k,name))
return by_type
# Collection of atoms with different types and positions
class GTO_centers:
def __init__(self, pos_list, elements, basis_sets):
self.gto_list = []
for pos, element in zip(pos_list, elements):
gto = GTO(basis_sets[element], pos)
self.gto_list.append(gto)
def eval_v(self, x, y, z):
vs = []
for gto in self.gto_list:
v = gto.eval_v(x, y, z)
vs.extend(v)
return vs
def eval_vgl(self, x, y, z):
vs = []
grads = []
laps = []
for gto in self.gto_list:
v,g,l = gto.eval_vgl(x,y,z)
vs.extend(v)
grads.extend(g)
laps.extend(l)
return vs, grads, laps
if __name__ == '__main__':
gto = GTO()

View File

@ -0,0 +1,82 @@
# Compute values for Gaussian Type Orbitals
# Used in test_MO.cpp
import read_qmcpack
import gaussian_orbitals
import numpy as np
def gen_He():
basis_sets, MO_matrix = read_qmcpack.parse_qmc_wf("he_sto3g.wfj.xml")
gto = gaussian_orbitals.GTO(basis_sets['He'])
for pos in ([0.1, 0.0, 0.0], [1.0, 0.0, 0.0]):
atomic_orbs = gto.eval_v(*pos)
print ' // Generated from gen_mo.py for position %s'%str(pos)
print ' REQUIRE(values[%d] == Approx(%15.10g));'%(0,atomic_orbs[0])
print ''
v,g,l = gto.eval_vgl(*pos)
print ' // Generated from gen_mo.py for position %s'%str(pos)
print ' REQUIRE(values[%d] == Approx(%15.10g));'%(0,v[0])
print ' REQUIRE(dpsi[%d][0] == Approx(%15.10g));'%(0,g[0][0])
print ' REQUIRE(dpsi[%d][1] == Approx(%15.10g));'%(0,g[0][1])
print ' REQUIRE(dpsi[%d][2] == Approx(%15.10g));'%(0,g[0][2])
print ' REQUIRE(d2psi[%d] == Approx(%15.10g));'%(0,l[0])
print ''
def gen_Ne():
basis_sets, MO_matrix = read_qmcpack.parse_qmc_wf("ne_def2_svp.wfnoj.xml")
gto = gaussian_orbitals.GTO(basis_sets['Ne'])
for pos in ([0.00001, 0.0, 0.0], [1.0, 0.0, 0.0]):
atomic_orbs = gto.eval_v(*pos)
mol_orbs = np.dot(MO_matrix, atomic_orbs)
print ' // Generated from gen_mo.py for position %s'%str(pos)
print ' REQUIRE(values[%d] == Approx(%15.10g));'%(0,mol_orbs[0])
v,g,l = gto.eval_vgl(*pos)
mo_v = np.dot(MO_matrix, v)
mo_g = np.dot(MO_matrix, g)
mo_l = np.dot(MO_matrix, l)
print ' // Generated from gen_mo.py for position %s'%str(pos)
print ' REQUIRE(values[%d] == Approx(%15.10g));'%(0,mo_v[0])
print ' REQUIRE(dpsi[%d][0] == Approx(%15.10g));'%(0,mo_g[0][0])
print ' REQUIRE(dpsi[%d][1] == Approx(%15.10g));'%(0,mo_g[0][1])
print ' REQUIRE(dpsi[%d][2] == Approx(%15.10g));'%(0,mo_g[0][2])
print ' REQUIRE(d2psi[%d] == Approx(%15.10g));'%(0,mo_l[0])
def gen_HCN():
basis_sets, MO_matrix = read_qmcpack.parse_qmc_wf("hcn.wfnoj.xml")
pos_list, elements = read_qmcpack.read_structure_file("hcn.structure.xml")
gtos = gaussian_orbitals.GTO_centers(pos_list, elements, basis_sets)
pos = [0.0, 0.0, 0.0]
atomic_orbs = gtos.eval_v(*pos)
#print 'first MO',MO_matrix[0,:]
#print 'atomic_orbs',atomic_orbs
mol_orbs = np.dot(MO_matrix, atomic_orbs)
print ' // Generated from gen_mo.py for position %s'%str(pos)
for i in range(7):
print ' REQUIRE(values[%d] == Approx(%15.10g));'%(i,mol_orbs[i])
v,g,l = gtos.eval_vgl(*pos)
mo_v = np.dot(MO_matrix, v)
mo_g = np.dot(MO_matrix, g)
mo_l = np.dot(MO_matrix, l)
print ' // Generated from gen_mo.py for position %s'%str(pos)
for i in range(7):
print ' REQUIRE(values[%d] == Approx(%15.10g));'%(i,mo_v[i])
print ' REQUIRE(dpsi[%d][0] == Approx(%15.10g));'%(i,mo_g[i][0])
print ' REQUIRE(dpsi[%d][1] == Approx(%15.10g));'%(i,mo_g[i][1])
print ' REQUIRE(dpsi[%d][2] == Approx(%15.10g));'%(i,mo_g[i][2])
print ' REQUIRE(d2psi[%d] == Approx(%15.10g));'%(i,mo_l[i])
print ''
if __name__ == '__main__':
#gen_He()
#gen_Ne()
gen_HCN()

View File

@ -0,0 +1,36 @@
<?xml version="1.0"?>
<qmcsystem>
<particleset name="ion0" size="3">
<group name="N">
<parameter name="charge">7</parameter>
<parameter name="valence">5</parameter>
<parameter name="atomicnumber">7</parameter>
</group>
<group name="C">
<parameter name="charge">6</parameter>
<parameter name="valence">4</parameter>
<parameter name="atomicnumber">6</parameter>
</group>
<group name="H">
<parameter name="charge">1</parameter>
<parameter name="valence">1</parameter>
<parameter name="atomicnumber">1</parameter>
</group>
<attrib name="position" datatype="posArray">
-1.0960410729e+00 0.0000000000e+00 0.0000000000e+00
1.0960410729e+00 0.0000000000e+00 0.0000000000e+00
3.1085992498e+00 0.0000000000e+00 0.0000000000e+00
</attrib>
<attrib name="ionid" datatype="stringArray">
N C H
</attrib>
</particleset>
<particleset name="e" random="yes" randomsrc="ion0">
<group name="u" size="7">
<parameter name="charge">-1</parameter>
</group>
<group name="d" size="7">
<parameter name="charge">-1</parameter>
</group>
</particleset>
</qmcsystem>

View File

@ -0,0 +1,712 @@
<?xml version="1.0"?>
<qmcsystem>
<wavefunction name="psi0" target="e">
<determinantset type="MolecularOrbital" name="LCAOBSet" source="ion0" transform="yes" cuspCorrection="no">
<basisset name="LCAOBSet">
<atomicBasisSet name="Gaussian" angular="cartesian" type="Gaussian" elementType="N" normalized="no">
<grid type="log" ri="1.e-6" rf="1.e2" npts="1001"/>
<!-- Possible substitution N00 by a Slater-type orbital
<basisGroup rid="N00" n="0" l="0" type="Slater">
<radfunc exponent="6.79204" contraction="1.0"/>
</basisGroup>
-->
<basisGroup rid="N00" n="0" l="0" type="Gaussian">
<radfunc exponent="9.046000000000e+03" contraction="6.996174130000e-04"/>
<radfunc exponent="1.357000000000e+03" contraction="5.386054630000e-03"/>
<radfunc exponent="3.093000000000e+02" contraction="2.739102118900e-02"/>
<radfunc exponent="8.773000000000e+01" contraction="1.031505919820e-01"/>
<radfunc exponent="2.856000000000e+01" contraction="2.785706633170e-01"/>
<radfunc exponent="1.021000000000e+01" contraction="4.482948494540e-01"/>
<radfunc exponent="3.838000000000e+00" contraction="2.780859283950e-01"/>
<radfunc exponent="7.466000000000e-01" contraction="1.543156123300e-02"/>
</basisGroup>
<!-- Possible substitution N10 by a Slater-type orbital
<basisGroup rid="N10" n="1" l="0" type="Slater">
<radfunc exponent="1.07647" contraction="1.0"/>
</basisGroup>
-->
<basisGroup rid="N10" n="1" l="0" type="Gaussian">
<radfunc exponent="9.046000000000e+03" contraction="-3.049900960000e-04"/>
<radfunc exponent="1.357000000000e+03" contraction="-2.408026379000e-03"/>
<radfunc exponent="3.093000000000e+02" contraction="-1.194444872500e-02"/>
<radfunc exponent="8.773000000000e+01" contraction="-4.892599290900e-02"/>
<radfunc exponent="2.856000000000e+01" contraction="-1.344727247250e-01"/>
<radfunc exponent="1.021000000000e+01" contraction="-3.151125777000e-01"/>
<radfunc exponent="3.838000000000e+00" contraction="-2.428578325500e-01"/>
<radfunc exponent="7.466000000000e-01" contraction="1.094382206854e+00"/>
</basisGroup>
<basisGroup rid="N20" n="2" l="0" type="Gaussian">
<radfunc exponent="2.248000000000e-01" contraction="1.000000000000e+00"/>
</basisGroup>
<basisGroup rid="N31" n="3" l="1" type="Gaussian">
<radfunc exponent="1.355000000000e+01" contraction="5.890567677200e-02"/>
<radfunc exponent="2.917000000000e+00" contraction="3.204611067140e-01"/>
<radfunc exponent="7.973000000000e-01" contraction="7.530420617920e-01"/>
</basisGroup>
<basisGroup rid="N41" n="4" l="1" type="Gaussian">
<radfunc exponent="2.185000000000e-01" contraction="1.000000000000e+00"/>
</basisGroup>
<basisGroup rid="N52" n="5" l="2" type="Gaussian">
<radfunc exponent="8.170000000000e-01" contraction="1.000000000000e+00"/>
</basisGroup>
</atomicBasisSet>
<atomicBasisSet name="Gaussian" angular="cartesian" type="Gaussian" elementType="C" normalized="no">
<grid type="log" ri="1.e-6" rf="1.e2" npts="1001"/>
<!-- Possible substitution C00 by a Slater-type orbital
<basisGroup rid="C00" n="0" l="0" type="Slater">
<radfunc exponent="5.7544" contraction="1.0"/>
</basisGroup>
-->
<basisGroup rid="C00" n="0" l="0" type="Gaussian">
<radfunc exponent="6.665000000000e+03" contraction="6.915839630000e-04"/>
<radfunc exponent="1.000000000000e+03" contraction="5.325796153000e-03"/>
<radfunc exponent="2.280000000000e+02" contraction="2.706072104200e-02"/>
<radfunc exponent="6.471000000000e+01" contraction="1.016568461410e-01"/>
<radfunc exponent="2.106000000000e+01" contraction="2.745748236170e-01"/>
<radfunc exponent="7.495000000000e+00" contraction="4.482943189240e-01"/>
<radfunc exponent="2.797000000000e+00" contraction="2.849026107150e-01"/>
<radfunc exponent="5.215000000000e-01" contraction="1.519485920600e-02"/>
</basisGroup>
<!-- Possible substitution C10 by a Slater-type orbital
<basisGroup rid="C10" n="1" l="0" type="Slater">
<radfunc exponent="0.895365" contraction="1.0"/>
</basisGroup>
-->
<basisGroup rid="C10" n="1" l="0" type="Gaussian">
<radfunc exponent="6.665000000000e+03" contraction="-2.932696530000e-04"/>
<radfunc exponent="1.000000000000e+03" contraction="-2.318035474000e-03"/>
<radfunc exponent="2.280000000000e+02" contraction="-1.149978603900e-02"/>
<radfunc exponent="6.471000000000e+01" contraction="-4.682672701000e-02"/>
<radfunc exponent="2.106000000000e+01" contraction="-1.284661687500e-01"/>
<radfunc exponent="7.495000000000e+00" contraction="-3.012662724630e-01"/>
<radfunc exponent="2.797000000000e+00" contraction="-2.556307023300e-01"/>
<radfunc exponent="5.215000000000e-01" contraction="1.093793361012e+00"/>
</basisGroup>
<basisGroup rid="C20" n="2" l="0" type="Gaussian">
<radfunc exponent="1.596000000000e-01" contraction="1.000000000000e+00"/>
</basisGroup>
<basisGroup rid="C31" n="3" l="1" type="Gaussian">
<radfunc exponent="9.439000000000e+00" contraction="5.697925159000e-02"/>
<radfunc exponent="2.002000000000e+00" contraction="3.132072115010e-01"/>
<radfunc exponent="5.456000000000e-01" contraction="7.603767417380e-01"/>
</basisGroup>
<basisGroup rid="C41" n="4" l="1" type="Gaussian">
<radfunc exponent="1.517000000000e-01" contraction="1.000000000000e+00"/>
</basisGroup>
<basisGroup rid="C52" n="5" l="2" type="Gaussian">
<radfunc exponent="5.500000000000e-01" contraction="1.000000000000e+00"/>
</basisGroup>
</atomicBasisSet>
<atomicBasisSet name="Gaussian" angular="cartesian" type="Gaussian" elementType="H" normalized="no">
<grid type="log" ri="1.e-6" rf="1.e2" npts="1001"/>
<!-- Possible substitution H00 by a Slater-type orbital
<basisGroup rid="H00" n="0" l="0" type="Slater">
<radfunc exponent="1.2942" contraction="1.0"/>
</basisGroup>
-->
<basisGroup rid="H00" n="0" l="0" type="Gaussian">
<radfunc exponent="1.301000000000e+01" contraction="3.349872639000e-02"/>
<radfunc exponent="1.962000000000e+00" contraction="2.348008011740e-01"/>
<radfunc exponent="4.446000000000e-01" contraction="8.136829578830e-01"/>
</basisGroup>
<basisGroup rid="H10" n="1" l="0" type="Gaussian">
<radfunc exponent="1.220000000000e-01" contraction="1.000000000000e+00"/>
</basisGroup>
<basisGroup rid="H21" n="2" l="1" type="Gaussian">
<radfunc exponent="7.270000000000e-01" contraction="1.000000000000e+00"/>
</basisGroup>
</atomicBasisSet>
</basisset>
<slaterdeterminant>
<determinant id="updet" size="7" cuspInfo="../CuspCorrection/updet.cuspInfo.xml">
<occupation mode="ground"/>
<coefficient size="33" id="updetC">
1.00180500000000e+00 2.76000000000000e-03 -8.17900000000000e-03 2.85400000000000e-03
-0.00000000000000e+00 -0.00000000000000e+00 -2.30800000000000e-03 -0.00000000000000e+00
-0.00000000000000e+00 9.50000000000000e-04 -4.75000000000000e-04 -4.75000000000000e-04
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -7.70000000000000e-05
-5.53000000000000e-04 2.26500000000000e-03 6.39000000000000e-04 -0.00000000000000e+00
-0.00000000000000e+00 -4.01200000000000e-03 -0.00000000000000e+00 -0.00000000000000e+00
-1.56200000000000e-03 7.81000000000000e-04 7.81000000000000e-04 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 1.36600000000000e-03 1.66100000000000e-03
-4.76000000000000e-04 -0.00000000000000e+00 -0.00000000000000e+00 -1.25600000000000e-03
-5.10000000000000e-04 -3.64000000000000e-03 -3.47000000000000e-04 0.00000000000000e+00
0.00000000000000e+00 -1.55700000000000e-03 0.00000000000000e+00 0.00000000000000e+00
1.54000000000000e-04 -7.70000000000000e-05 -7.70000000000000e-05 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 1.00186700000000e+00 4.16700000000000e-03
-1.19900000000000e-03 6.95000000000000e-04 0.00000000000000e+00 0.00000000000000e+00
-2.97400000000000e-03 0.00000000000000e+00 0.00000000000000e+00 3.29900000000000e-03
-1.65000000000000e-03 -1.65000000000000e-03 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -2.53200000000000e-03 2.15700000000000e-03 1.80400000000000e-03
0.00000000000000e+00 0.00000000000000e+00 -1.55350000000000e-02 3.65161000000000e-01
2.97153000000000e-01 1.85599000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00
4.35670000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00 2.53730000000000e-02
-1.26870000000000e-02 -1.26870000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -2.42230000000000e-02 2.77291000000000e-01 1.34521000000000e-01
-2.09376000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 4.15300000000000e-03
-0.00000000000000e+00 -0.00000000000000e+00 2.54090000000000e-02 -1.27050000000000e-02
-1.27050000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
4.22250000000000e-02 -1.39540000000000e-02 -1.25100000000000e-02 -0.00000000000000e+00
-0.00000000000000e+00 6.12000000000000e-04 -1.56038000000000e-01 -1.58669000000000e-01
1.77970000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00 2.81360000000000e-02
-0.00000000000000e+00 -0.00000000000000e+00 4.58000000000000e-04 -2.29000000000000e-04
-2.29000000000000e-04 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-1.20440000000000e-02 2.57665000000000e-01 2.34699000000000e-01 3.24125000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 8.59440000000000e-02 -0.00000000000000e+00
-0.00000000000000e+00 7.68000000000000e-03 -3.84000000000000e-03 -3.84000000000000e-03
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 3.98520000000000e-01
7.29220000000000e-02 -3.87470000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
-2.65000000000000e-03 -2.36949000000000e-01 -3.37662000000000e-01 5.03473000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 3.17378000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 3.14930000000000e-02 -1.57460000000000e-02 -1.57460000000000e-02
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -2.95000000000000e-04
1.31389000000000e-01 -1.87670000000000e-02 -2.64026000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 4.49900000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
-1.10320000000000e-02 5.51600000000000e-03 5.51600000000000e-03 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -1.16056000000000e-01 -8.95470000000000e-02
-2.08300000000000e-03 -0.00000000000000e+00 -0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 4.22402000000000e-01
-8.19720000000000e-02 0.00000000000000e+00 2.67744000000000e-01 -5.19590000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 3.85400000000000e-02
-7.47900000000000e-03 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 3.94312000000000e-01 -7.65200000000000e-02
0.00000000000000e+00 2.43812000000000e-01 -4.73140000000000e-02 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 -4.24180000000000e-02 8.23200000000000e-03
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
1.69550000000000e-02 -3.29000000000000e-03 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 8.19720000000000e-02 4.22402000000000e-01
0.00000000000000e+00 5.19590000000000e-02 2.67744000000000e-01 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 7.47900000000000e-03 3.85400000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 7.65200000000000e-02 3.94312000000000e-01 0.00000000000000e+00
4.73140000000000e-02 2.43812000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -8.23200000000000e-03 -4.24180000000000e-02 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 3.29000000000000e-03
1.69550000000000e-02 3.08880000000000e-02 8.83180000000000e-02 -3.29596000000000e-01
1.07464000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 6.51130000000000e-02
-0.00000000000000e+00 -0.00000000000000e+00 8.23500000000000e-03 -4.11700000000000e-03
-4.11700000000000e-03 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
5.91330000000000e-02 -8.62490000000000e-02 -1.60259100000000e+00 -2.13358000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -1.02272400000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -1.79480000000000e-02 8.97400000000000e-03 8.97400000000000e-03
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 7.17680000000000e-02
2.32498300000000e+00 -2.15480000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-2.56648000000000e-01 -2.96943000000000e-01 0.00000000000000e+00 -4.42362000000000e-01
-5.11814000000000e-01 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
2.73600000000000e-03 3.16600000000000e-03 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 2.25473000000000e-01
2.60873000000000e-01 0.00000000000000e+00 5.13324000000000e-01 5.93917000000000e-01
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 2.94380000000000e-02
3.40600000000000e-02 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 2.69520000000000e-02 3.11840000000000e-02 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.96943000000000e-01
2.56648000000000e-01 0.00000000000000e+00 -5.11814000000000e-01 4.42362000000000e-01
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 3.16600000000000e-03
-2.73600000000000e-03 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 2.60873000000000e-01 -2.25473000000000e-01
0.00000000000000e+00 5.93917000000000e-01 -5.13324000000000e-01 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 3.40600000000000e-02 -2.94380000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
3.11840000000000e-02 -2.69520000000000e-02 -8.69870000000000e-02 6.00040000000000e-02
3.03903700000000e+00 1.21895000000000e-01 0.00000000000000e+00 0.00000000000000e+00
1.11791200000000e+00 0.00000000000000e+00 0.00000000000000e+00 6.55260000000000e-02
-3.27630000000000e-02 -3.27630000000000e-02 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 6.43150000000000e-02 7.02130000000000e-02 -2.21869100000000e+00
3.88000000000000e-04 0.00000000000000e+00 0.00000000000000e+00 2.50357800000000e+00
0.00000000000000e+00 0.00000000000000e+00 -4.78040000000000e-02 2.39020000000000e-02
2.39020000000000e-02 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
4.23336000000000e-01 -1.26321100000000e+00 -1.56750000000000e-02 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -2.25300000000000e-03 -6.14630000000000e-02 0.00000000000000e+00
4.96000000000000e-04 1.35220000000000e-02 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -3.02400000000000e-03 -8.24990000000000e-02 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-3.65470000000000e-02 -9.97138000000000e-01 0.00000000000000e+00 3.79460000000000e-02
1.03531800000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
1.11200000000000e-03 3.03530000000000e-02 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 -1.64200000000000e-03 -4.48040000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-6.14630000000000e-02 2.25300000000000e-03 0.00000000000000e+00 1.35220000000000e-02
-4.96000000000000e-04 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-8.24990000000000e-02 3.02400000000000e-03 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -9.97138000000000e-01
3.65470000000000e-02 0.00000000000000e+00 1.03531800000000e+00 -3.79460000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 3.03530000000000e-02
-1.11200000000000e-03 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -4.48040000000000e-02 1.64200000000000e-03 2.30010000000000e-02
1.29706000000000e-01 2.48118700000000e+00 -3.39952000000000e-01 0.00000000000000e+00
0.00000000000000e+00 1.09159100000000e+00 0.00000000000000e+00 0.00000000000000e+00
1.15203000000000e-01 -5.76010000000000e-02 -5.76010000000000e-02 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 -4.29140000000000e-02 6.96770000000000e-02
-1.46641400000000e+00 -3.28820000000000e-02 0.00000000000000e+00 0.00000000000000e+00
2.48977900000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.33714000000000e-01
2.16857000000000e-01 2.16857000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -9.10804000000000e-01 -3.32637000000000e-01 -2.34309000000000e-01
0.00000000000000e+00 0.00000000000000e+00 4.61100000000000e-03 -1.14469000000000e-01
-4.91694000000000e-01 2.76418000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00
-1.51882000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 4.93060000000000e-02
-2.46530000000000e-02 -2.46530000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 7.08500000000000e-02 1.50184000000000e-01 2.10823700000000e+00
-7.64722000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 1.22609300000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 1.07113000000000e-01 -5.35560000000000e-02
-5.35560000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-2.70665000000000e-01 -1.24871800000000e+00 1.65701000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 -1.31800000000000e-03 1.12103000000000e-01 3.63376000000000e-01
-2.16021000000000e-01 0.00000000000000e+00 0.00000000000000e+00 5.06819000000000e-01
0.00000000000000e+00 0.00000000000000e+00 -8.39190000000000e-02 4.19590000000000e-02
4.19590000000000e-02 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-6.77191000000000e-01 -1.57009400000000e+00 2.45619000000000e+00 -2.14141000000000e-01
0.00000000000000e+00 0.00000000000000e+00 1.53198200000000e+00 0.00000000000000e+00
0.00000000000000e+00 2.22738000000000e-01 -1.11369000000000e-01 -1.11369000000000e-01
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.23693000000000e-01
-1.87471000000000e+00 2.90375000000000e-01 0.00000000000000e+00 0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-3.31636000000000e-01 -8.83668000000000e-01 -0.00000000000000e+00 4.79660000000000e-01
1.27809200000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
5.98000000000000e-04 1.59300000000000e-03 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 7.50570000000000e-02
1.99994000000000e-01 -0.00000000000000e+00 -2.31459000000000e-01 -6.16741000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 9.86950000000000e-02
2.62979000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -2.44900000000000e-02 -6.52540000000000e-02 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -8.83668000000000e-01
3.31636000000000e-01 -0.00000000000000e+00 1.27809200000000e+00 -4.79660000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 1.59300000000000e-03
-5.98000000000000e-04 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 1.99994000000000e-01 -7.50570000000000e-02
-0.00000000000000e+00 -6.16741000000000e-01 2.31459000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 2.62979000000000e-01 -9.86950000000000e-02
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-6.52540000000000e-02 2.44900000000000e-02 -8.11550000000000e-02 -3.10751000000000e-01
-9.93720000000000e-02 -7.09235000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00
4.27313000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 1.81948000000000e-01
-9.09740000000000e-02 -9.09740000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 1.59037000000000e-01 4.59829000000000e-01 -7.42555000000000e-01
-5.34907000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -6.57057000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -3.16562000000000e-01 1.58281000000000e-01
1.58281000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
9.31771000000000e-01 1.13204000000000e-01 2.30033000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 7.31700000000000e-02 2.86917000000000e-01 0.00000000000000e+00
6.35410000000000e-02 2.49159000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -2.79830000000000e-02 -1.09727000000000e-01 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-9.45700000000000e-03 -3.70830000000000e-02 0.00000000000000e+00 -9.68060000000000e-02
-3.79598000000000e-01 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
1.51599000000000e-01 5.94453000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 1.45390000000000e-01 5.70106000000000e-01
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
2.86917000000000e-01 -7.31700000000000e-02 0.00000000000000e+00 2.49159000000000e-01
-6.35410000000000e-02 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-1.09727000000000e-01 2.79830000000000e-02 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.70830000000000e-02
9.45700000000000e-03 0.00000000000000e+00 -3.79598000000000e-01 9.68060000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 5.94453000000000e-01
-1.51599000000000e-01 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 5.70106000000000e-01 -1.45390000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 2.26700000000000e-03 -2.26700000000000e-03 -0.00000000000000e+00
-0.00000000000000e+00 2.03131000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
1.05010000000000e-02 -1.05010000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
9.40743000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-1.75916000000000e-01 1.75916000000000e-01 0.00000000000000e+00 0.00000000000000e+00
2.61800000000000e-03 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -8.14707000000000e-01
8.14707000000000e-01 0.00000000000000e+00 0.00000000000000e+00 1.21250000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -7.88913000000000e-01 -1.69090700000000e+00 6.14157300000000e+00
3.85750000000000e-01 0.00000000000000e+00 0.00000000000000e+00 1.65994500000000e+00
0.00000000000000e+00 0.00000000000000e+00 -1.34915000000000e-01 6.74580000000000e-02
6.74580000000000e-02 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-2.16958000000000e-01 -4.57251000000000e-01 -2.79431400000000e+00 2.44505000000000e-01
0.00000000000000e+00 0.00000000000000e+00 3.37130700000000e+00 0.00000000000000e+00
0.00000000000000e+00 -6.26928000000000e-01 3.13464000000000e-01 3.13464000000000e-01
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.21370000000000e-02
-1.23188900000000e+00 -3.02030000000000e-02 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-1.38340000000000e-01 -3.05664000000000e-01 0.00000000000000e+00 8.31480000000000e-02
1.83717000000000e-01 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
1.64001000000000e-01 3.62362000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.19397000000000e-01
-2.63808000000000e-01 0.00000000000000e+00 -9.59700000000000e-02 -2.12048000000000e-01
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.78678000000000e-01
-6.15743000000000e-01 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 3.92446000000000e-01 8.67114000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -3.05664000000000e-01
1.38340000000000e-01 -0.00000000000000e+00 1.83717000000000e-01 -8.31480000000000e-02
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 3.62362000000000e-01
-1.64001000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -2.63808000000000e-01 1.19397000000000e-01
-0.00000000000000e+00 -2.12048000000000e-01 9.59700000000000e-02 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -6.15743000000000e-01 2.78678000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
8.67114000000000e-01 -3.92446000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-9.43000000000000e-04 9.43000000000000e-04 0.00000000000000e+00 0.00000000000000e+00
9.98607000000000e-01 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 3.70000000000000e-04
-3.70000000000000e-04 0.00000000000000e+00 0.00000000000000e+00 -3.91590000000000e-01
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 8.64819000000000e-01
-8.64819000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 1.08900000000000e-03
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -3.39127000000000e-01 3.39127000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -4.27000000000000e-04 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-4.97634000000000e-01 -1.05288900000000e+00 2.03788400000000e+00 -4.05922000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 9.00362000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 2.03161000000000e-01 -1.01581000000000e-01 -1.01581000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -4.61994000000000e-01
-9.12887000000000e-01 -1.14142300000000e+00 -8.80023000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 7.75678000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00
1.49602000000000e-01 -7.48010000000000e-02 -7.48010000000000e-02 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 4.18134000000000e-01 1.24904000000000e-01
-1.23084600000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 2.56992000000000e-01
1.88260000000000e-02 -0.00000000000000e+00 5.03534000000000e-01 3.68870000000000e-02
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 1.20614700000000e+00
8.83580000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -3.32232000000000e-01 -2.43380000000000e-02
-0.00000000000000e+00 -2.12086000000000e-01 -1.55370000000000e-02 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 1.20788500000000e+00 8.84850000000000e-02
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-5.42781000000000e-01 -3.97620000000000e-02 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 -1.88260000000000e-02 2.56992000000000e-01
0.00000000000000e+00 -3.68870000000000e-02 5.03534000000000e-01 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 -8.83580000000000e-02 1.20614700000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 2.43380000000000e-02 -3.32232000000000e-01 0.00000000000000e+00
1.55370000000000e-02 -2.12086000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -8.84850000000000e-02 1.20788500000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 3.97620000000000e-02
-5.42781000000000e-01 -2.37913000000000e-01 -3.78712000000000e-01 3.41250700000000e+00
5.68383000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 1.67818000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 1.39311300000000e+00 -6.96556000000000e-01
-6.96556000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-7.16214000000000e-01 -1.43820700000000e+00 -1.68378100000000e+00 1.31728200000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 1.21344300000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -5.03409000000000e-01 2.51705000000000e-01 2.51705000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 2.02280000000000e-02
-3.41236000000000e-01 5.30580000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
7.95349000000000e-01 1.54857500000000e+00 -7.06059000000000e-01 9.90206000000000e-01
0.00000000000000e+00 0.00000000000000e+00 -2.04509000000000e-01 0.00000000000000e+00
0.00000000000000e+00 1.90450000000000e-01 -9.52250000000000e-02 -9.52250000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.16410000000000e-01
-9.52447000000000e-01 -1.64769900000000e+00 -4.54581000000000e-01 0.00000000000000e+00
0.00000000000000e+00 -1.15401500000000e+00 0.00000000000000e+00 0.00000000000000e+00
-2.28832400000000e+00 1.14416200000000e+00 1.14416200000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 2.33854900000000e+00 9.38078000000000e-01
-1.45805000000000e+00 0.00000000000000e+00 0.00000000000000e+00
</coefficient>
</determinant>
<determinant id="downdet" size="7" cuspInfo="../CuspCorrection/downdet.cuspInfo.xml">
<occupation mode="ground"/>
<coefficient size="33" id="downdetC">
1.00180500000000e+00 2.76000000000000e-03 -8.17900000000000e-03 2.85400000000000e-03
-0.00000000000000e+00 -0.00000000000000e+00 -2.30800000000000e-03 -0.00000000000000e+00
-0.00000000000000e+00 9.50000000000000e-04 -4.75000000000000e-04 -4.75000000000000e-04
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -7.70000000000000e-05
-5.53000000000000e-04 2.26500000000000e-03 6.39000000000000e-04 -0.00000000000000e+00
-0.00000000000000e+00 -4.01200000000000e-03 -0.00000000000000e+00 -0.00000000000000e+00
-1.56200000000000e-03 7.81000000000000e-04 7.81000000000000e-04 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 1.36600000000000e-03 1.66100000000000e-03
-4.76000000000000e-04 -0.00000000000000e+00 -0.00000000000000e+00 -1.25600000000000e-03
-5.10000000000000e-04 -3.64000000000000e-03 -3.47000000000000e-04 0.00000000000000e+00
0.00000000000000e+00 -1.55700000000000e-03 0.00000000000000e+00 0.00000000000000e+00
1.54000000000000e-04 -7.70000000000000e-05 -7.70000000000000e-05 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 1.00186700000000e+00 4.16700000000000e-03
-1.19900000000000e-03 6.95000000000000e-04 0.00000000000000e+00 0.00000000000000e+00
-2.97400000000000e-03 0.00000000000000e+00 0.00000000000000e+00 3.29900000000000e-03
-1.65000000000000e-03 -1.65000000000000e-03 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -2.53200000000000e-03 2.15700000000000e-03 1.80400000000000e-03
0.00000000000000e+00 0.00000000000000e+00 -1.55350000000000e-02 3.65161000000000e-01
2.97153000000000e-01 1.85599000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00
4.35670000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00 2.53730000000000e-02
-1.26870000000000e-02 -1.26870000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -2.42230000000000e-02 2.77291000000000e-01 1.34521000000000e-01
-2.09376000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 4.15300000000000e-03
-0.00000000000000e+00 -0.00000000000000e+00 2.54090000000000e-02 -1.27050000000000e-02
-1.27050000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
4.22250000000000e-02 -1.39540000000000e-02 -1.25100000000000e-02 -0.00000000000000e+00
-0.00000000000000e+00 6.12000000000000e-04 -1.56038000000000e-01 -1.58669000000000e-01
1.77970000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00 2.81360000000000e-02
-0.00000000000000e+00 -0.00000000000000e+00 4.58000000000000e-04 -2.29000000000000e-04
-2.29000000000000e-04 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-1.20440000000000e-02 2.57665000000000e-01 2.34699000000000e-01 3.24125000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 8.59440000000000e-02 -0.00000000000000e+00
-0.00000000000000e+00 7.68000000000000e-03 -3.84000000000000e-03 -3.84000000000000e-03
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 3.98520000000000e-01
7.29220000000000e-02 -3.87470000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
-2.65000000000000e-03 -2.36949000000000e-01 -3.37662000000000e-01 5.03473000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 3.17378000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 3.14930000000000e-02 -1.57460000000000e-02 -1.57460000000000e-02
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -2.95000000000000e-04
1.31389000000000e-01 -1.87670000000000e-02 -2.64026000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 4.49900000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
-1.10320000000000e-02 5.51600000000000e-03 5.51600000000000e-03 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -1.16056000000000e-01 -8.95470000000000e-02
-2.08300000000000e-03 -0.00000000000000e+00 -0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 4.22402000000000e-01
-8.19720000000000e-02 0.00000000000000e+00 2.67744000000000e-01 -5.19590000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 3.85400000000000e-02
-7.47900000000000e-03 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 3.94312000000000e-01 -7.65200000000000e-02
0.00000000000000e+00 2.43812000000000e-01 -4.73140000000000e-02 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 -4.24180000000000e-02 8.23200000000000e-03
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
1.69550000000000e-02 -3.29000000000000e-03 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 8.19720000000000e-02 4.22402000000000e-01
0.00000000000000e+00 5.19590000000000e-02 2.67744000000000e-01 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 7.47900000000000e-03 3.85400000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 7.65200000000000e-02 3.94312000000000e-01 0.00000000000000e+00
4.73140000000000e-02 2.43812000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -8.23200000000000e-03 -4.24180000000000e-02 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 3.29000000000000e-03
1.69550000000000e-02 3.08880000000000e-02 8.83180000000000e-02 -3.29596000000000e-01
1.07464000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 6.51130000000000e-02
-0.00000000000000e+00 -0.00000000000000e+00 8.23500000000000e-03 -4.11700000000000e-03
-4.11700000000000e-03 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
5.91330000000000e-02 -8.62490000000000e-02 -1.60259100000000e+00 -2.13358000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -1.02272400000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -1.79480000000000e-02 8.97400000000000e-03 8.97400000000000e-03
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 7.17680000000000e-02
2.32498300000000e+00 -2.15480000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-2.56648000000000e-01 -2.96943000000000e-01 0.00000000000000e+00 -4.42362000000000e-01
-5.11814000000000e-01 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
2.73600000000000e-03 3.16600000000000e-03 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 2.25473000000000e-01
2.60873000000000e-01 0.00000000000000e+00 5.13324000000000e-01 5.93917000000000e-01
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 2.94380000000000e-02
3.40600000000000e-02 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 2.69520000000000e-02 3.11840000000000e-02 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.96943000000000e-01
2.56648000000000e-01 0.00000000000000e+00 -5.11814000000000e-01 4.42362000000000e-01
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 3.16600000000000e-03
-2.73600000000000e-03 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 2.60873000000000e-01 -2.25473000000000e-01
0.00000000000000e+00 5.93917000000000e-01 -5.13324000000000e-01 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 3.40600000000000e-02 -2.94380000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
3.11840000000000e-02 -2.69520000000000e-02 -8.69870000000000e-02 6.00040000000000e-02
3.03903700000000e+00 1.21895000000000e-01 0.00000000000000e+00 0.00000000000000e+00
1.11791200000000e+00 0.00000000000000e+00 0.00000000000000e+00 6.55260000000000e-02
-3.27630000000000e-02 -3.27630000000000e-02 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 6.43150000000000e-02 7.02130000000000e-02 -2.21869100000000e+00
3.88000000000000e-04 0.00000000000000e+00 0.00000000000000e+00 2.50357800000000e+00
0.00000000000000e+00 0.00000000000000e+00 -4.78040000000000e-02 2.39020000000000e-02
2.39020000000000e-02 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
4.23336000000000e-01 -1.26321100000000e+00 -1.56750000000000e-02 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -2.25300000000000e-03 -6.14630000000000e-02 0.00000000000000e+00
4.96000000000000e-04 1.35220000000000e-02 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -3.02400000000000e-03 -8.24990000000000e-02 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-3.65470000000000e-02 -9.97138000000000e-01 0.00000000000000e+00 3.79460000000000e-02
1.03531800000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
1.11200000000000e-03 3.03530000000000e-02 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 -1.64200000000000e-03 -4.48040000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-6.14630000000000e-02 2.25300000000000e-03 0.00000000000000e+00 1.35220000000000e-02
-4.96000000000000e-04 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-8.24990000000000e-02 3.02400000000000e-03 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -9.97138000000000e-01
3.65470000000000e-02 0.00000000000000e+00 1.03531800000000e+00 -3.79460000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 3.03530000000000e-02
-1.11200000000000e-03 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -4.48040000000000e-02 1.64200000000000e-03 2.30010000000000e-02
1.29706000000000e-01 2.48118700000000e+00 -3.39952000000000e-01 0.00000000000000e+00
0.00000000000000e+00 1.09159100000000e+00 0.00000000000000e+00 0.00000000000000e+00
1.15203000000000e-01 -5.76010000000000e-02 -5.76010000000000e-02 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 -4.29140000000000e-02 6.96770000000000e-02
-1.46641400000000e+00 -3.28820000000000e-02 0.00000000000000e+00 0.00000000000000e+00
2.48977900000000e+00 0.00000000000000e+00 0.00000000000000e+00 -4.33714000000000e-01
2.16857000000000e-01 2.16857000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -9.10804000000000e-01 -3.32637000000000e-01 -2.34309000000000e-01
0.00000000000000e+00 0.00000000000000e+00 4.61100000000000e-03 -1.14469000000000e-01
-4.91694000000000e-01 2.76418000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00
-1.51882000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 4.93060000000000e-02
-2.46530000000000e-02 -2.46530000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 7.08500000000000e-02 1.50184000000000e-01 2.10823700000000e+00
-7.64722000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 1.22609300000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 1.07113000000000e-01 -5.35560000000000e-02
-5.35560000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-2.70665000000000e-01 -1.24871800000000e+00 1.65701000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 -1.31800000000000e-03 1.12103000000000e-01 3.63376000000000e-01
-2.16021000000000e-01 0.00000000000000e+00 0.00000000000000e+00 5.06819000000000e-01
0.00000000000000e+00 0.00000000000000e+00 -8.39190000000000e-02 4.19590000000000e-02
4.19590000000000e-02 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-6.77191000000000e-01 -1.57009400000000e+00 2.45619000000000e+00 -2.14141000000000e-01
0.00000000000000e+00 0.00000000000000e+00 1.53198200000000e+00 0.00000000000000e+00
0.00000000000000e+00 2.22738000000000e-01 -1.11369000000000e-01 -1.11369000000000e-01
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.23693000000000e-01
-1.87471000000000e+00 2.90375000000000e-01 0.00000000000000e+00 0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-3.31636000000000e-01 -8.83668000000000e-01 -0.00000000000000e+00 4.79660000000000e-01
1.27809200000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
5.98000000000000e-04 1.59300000000000e-03 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 7.50570000000000e-02
1.99994000000000e-01 -0.00000000000000e+00 -2.31459000000000e-01 -6.16741000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 9.86950000000000e-02
2.62979000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -2.44900000000000e-02 -6.52540000000000e-02 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -8.83668000000000e-01
3.31636000000000e-01 -0.00000000000000e+00 1.27809200000000e+00 -4.79660000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 1.59300000000000e-03
-5.98000000000000e-04 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 1.99994000000000e-01 -7.50570000000000e-02
-0.00000000000000e+00 -6.16741000000000e-01 2.31459000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 2.62979000000000e-01 -9.86950000000000e-02
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-6.52540000000000e-02 2.44900000000000e-02 -8.11550000000000e-02 -3.10751000000000e-01
-9.93720000000000e-02 -7.09235000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00
4.27313000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 1.81948000000000e-01
-9.09740000000000e-02 -9.09740000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 1.59037000000000e-01 4.59829000000000e-01 -7.42555000000000e-01
-5.34907000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -6.57057000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -3.16562000000000e-01 1.58281000000000e-01
1.58281000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
9.31771000000000e-01 1.13204000000000e-01 2.30033000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 7.31700000000000e-02 2.86917000000000e-01 0.00000000000000e+00
6.35410000000000e-02 2.49159000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -2.79830000000000e-02 -1.09727000000000e-01 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-9.45700000000000e-03 -3.70830000000000e-02 0.00000000000000e+00 -9.68060000000000e-02
-3.79598000000000e-01 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
1.51599000000000e-01 5.94453000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 1.45390000000000e-01 5.70106000000000e-01
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
2.86917000000000e-01 -7.31700000000000e-02 0.00000000000000e+00 2.49159000000000e-01
-6.35410000000000e-02 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-1.09727000000000e-01 2.79830000000000e-02 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.70830000000000e-02
9.45700000000000e-03 0.00000000000000e+00 -3.79598000000000e-01 9.68060000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 5.94453000000000e-01
-1.51599000000000e-01 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 5.70106000000000e-01 -1.45390000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 2.26700000000000e-03 -2.26700000000000e-03 -0.00000000000000e+00
-0.00000000000000e+00 2.03131000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
1.05010000000000e-02 -1.05010000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
9.40743000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-1.75916000000000e-01 1.75916000000000e-01 0.00000000000000e+00 0.00000000000000e+00
2.61800000000000e-03 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -8.14707000000000e-01
8.14707000000000e-01 0.00000000000000e+00 0.00000000000000e+00 1.21250000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -7.88913000000000e-01 -1.69090700000000e+00 6.14157300000000e+00
3.85750000000000e-01 0.00000000000000e+00 0.00000000000000e+00 1.65994500000000e+00
0.00000000000000e+00 0.00000000000000e+00 -1.34915000000000e-01 6.74580000000000e-02
6.74580000000000e-02 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-2.16958000000000e-01 -4.57251000000000e-01 -2.79431400000000e+00 2.44505000000000e-01
0.00000000000000e+00 0.00000000000000e+00 3.37130700000000e+00 0.00000000000000e+00
0.00000000000000e+00 -6.26928000000000e-01 3.13464000000000e-01 3.13464000000000e-01
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.21370000000000e-02
-1.23188900000000e+00 -3.02030000000000e-02 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-1.38340000000000e-01 -3.05664000000000e-01 0.00000000000000e+00 8.31480000000000e-02
1.83717000000000e-01 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
1.64001000000000e-01 3.62362000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -1.19397000000000e-01
-2.63808000000000e-01 0.00000000000000e+00 -9.59700000000000e-02 -2.12048000000000e-01
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -2.78678000000000e-01
-6.15743000000000e-01 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 3.92446000000000e-01 8.67114000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -3.05664000000000e-01
1.38340000000000e-01 -0.00000000000000e+00 1.83717000000000e-01 -8.31480000000000e-02
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 3.62362000000000e-01
-1.64001000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -2.63808000000000e-01 1.19397000000000e-01
-0.00000000000000e+00 -2.12048000000000e-01 9.59700000000000e-02 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -6.15743000000000e-01 2.78678000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
8.67114000000000e-01 -3.92446000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-9.43000000000000e-04 9.43000000000000e-04 0.00000000000000e+00 0.00000000000000e+00
9.98607000000000e-01 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 3.70000000000000e-04
-3.70000000000000e-04 0.00000000000000e+00 0.00000000000000e+00 -3.91590000000000e-01
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 8.64819000000000e-01
-8.64819000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 1.08900000000000e-03
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -3.39127000000000e-01 3.39127000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -4.27000000000000e-04 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-4.97634000000000e-01 -1.05288900000000e+00 2.03788400000000e+00 -4.05922000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 9.00362000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 2.03161000000000e-01 -1.01581000000000e-01 -1.01581000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -4.61994000000000e-01
-9.12887000000000e-01 -1.14142300000000e+00 -8.80023000000000e-01 -0.00000000000000e+00
-0.00000000000000e+00 7.75678000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00
1.49602000000000e-01 -7.48010000000000e-02 -7.48010000000000e-02 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 4.18134000000000e-01 1.24904000000000e-01
-1.23084600000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 2.56992000000000e-01
1.88260000000000e-02 -0.00000000000000e+00 5.03534000000000e-01 3.68870000000000e-02
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 1.20614700000000e+00
8.83580000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -3.32232000000000e-01 -2.43380000000000e-02
-0.00000000000000e+00 -2.12086000000000e-01 -1.55370000000000e-02 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 1.20788500000000e+00 8.84850000000000e-02
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-5.42781000000000e-01 -3.97620000000000e-02 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 -1.88260000000000e-02 2.56992000000000e-01
0.00000000000000e+00 -3.68870000000000e-02 5.03534000000000e-01 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 -8.83580000000000e-02 1.20614700000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 2.43380000000000e-02 -3.32232000000000e-01 0.00000000000000e+00
1.55370000000000e-02 -2.12086000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 -8.84850000000000e-02 1.20788500000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 3.97620000000000e-02
-5.42781000000000e-01 -2.37913000000000e-01 -3.78712000000000e-01 3.41250700000000e+00
5.68383000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 1.67818000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 1.39311300000000e+00 -6.96556000000000e-01
-6.96556000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-7.16214000000000e-01 -1.43820700000000e+00 -1.68378100000000e+00 1.31728200000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 1.21344300000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -5.03409000000000e-01 2.51705000000000e-01 2.51705000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 2.02280000000000e-02
-3.41236000000000e-01 5.30580000000000e-02 -0.00000000000000e+00 -0.00000000000000e+00
7.95349000000000e-01 1.54857500000000e+00 -7.06059000000000e-01 9.90206000000000e-01
0.00000000000000e+00 0.00000000000000e+00 -2.04509000000000e-01 0.00000000000000e+00
0.00000000000000e+00 1.90450000000000e-01 -9.52250000000000e-02 -9.52250000000000e-02
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 -3.16410000000000e-01
-9.52447000000000e-01 -1.64769900000000e+00 -4.54581000000000e-01 0.00000000000000e+00
0.00000000000000e+00 -1.15401500000000e+00 0.00000000000000e+00 0.00000000000000e+00
-2.28832400000000e+00 1.14416200000000e+00 1.14416200000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 2.33854900000000e+00 9.38078000000000e-01
-1.45805000000000e+00 0.00000000000000e+00 0.00000000000000e+00
</coefficient>
</determinant>
</slaterdeterminant>
</determinantset>
</wavefunction>
</qmcsystem>

View File

@ -0,0 +1,56 @@
<?xml version="1.0"?>
<qmcsystem>
<wavefunction name="psi0" target="e">
<determinantset type="MolecularOrbital" name="LCAOBSet" source="ion0" transform="yes" cuspCorrection="no">
<basisset name="LCAOBSet">
<atomicBasisSet name="Gaussian" angular="cartesian" type="Gaussian" elementType="He" normalized="no">
<grid type="log" ri="1.e-6" rf="1.e2" npts="1001"/>
<!-- Possible substitution He00 by a Slater-type orbital
<basisGroup rid="He00" n="0" l="0" type="Slater">
<radfunc exponent="1.80302" contraction="1.0"/>
</basisGroup>
-->
<basisGroup rid="He00" n="0" l="0" type="Gaussian">
<radfunc exponent="6.362421400000e+00" contraction="1.543289672950e-01"/>
<radfunc exponent="1.158923000000e+00" contraction="5.353281422820e-01"/>
<radfunc exponent="3.136498000000e-01" contraction="4.446345421850e-01"/>
</basisGroup>
</atomicBasisSet>
</basisset>
<slaterdeterminant>
<determinant id="updet" size="1" cuspInfo="../CuspCorrection/updet.cuspInfo.xml">
<occupation mode="ground"/>
<coefficient size="1" id="updetC">
1.00000000000000e+00
</coefficient>
</determinant>
<determinant id="downdet" size="1" cuspInfo="../CuspCorrection/downdet.cuspInfo.xml">
<occupation mode="ground"/>
<coefficient size="1" id="downdetC">
1.00000000000000e+00
</coefficient>
</determinant>
</slaterdeterminant>
</determinantset>
<jastrow name="J2" type="Two-Body" function="Bspline" print="yes">
<correlation rcut="10" size="10" speciesA="u" speciesB="d">
<coefficients id="ud" type="Array">0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0</coefficients>
</correlation>
</jastrow>
<jastrow name="J1" type="One-Body" function="Bspline" source="ion0" print="yes">
<correlation rcut="10" size="10" cusp="0" elementType="He">
<coefficients id="eHe" type="Array">0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0</coefficients>
</correlation>
</jastrow>
<jastrow name="J3" type="eeI" function="polynomial" source="ion0" print="yes">
<correlation ispecies="He" especies="u" isize="3" esize="3" rcut="5">
<coefficients id="uuHe" type="Array" optimize="yes">
</coefficients>
</correlation>
<correlation ispecies="He" especies1="u" especies2="d" isize="3" esize="3" rcut="5">
<coefficients id="udHe" type="Array" optimize="yes">
</coefficients>
</correlation>
</jastrow>
</wavefunction>
</qmcsystem>

View File

@ -0,0 +1,159 @@
<?xml version="1.0"?>
<qmcsystem>
<wavefunction name="psi0" target="e">
<determinantset type="MolecularOrbital" name="LCAOBSet" source="ion0" transform="yes" cuspCorrection="no">
<basisset name="LCAOBSet">
<atomicBasisSet name="Gaussian" angular="cartesian" type="Gaussian" elementType="Ne" normalized="no">
<grid type="log" ri="1.e-6" rf="1.e2" npts="1001"/>
<!-- Possible substitution Ne00 by a Slater-type orbital
<basisGroup rid="Ne00" n="0" l="0" type="Slater">
<radfunc exponent="9.63829" contraction="1.0"/>
</basisGroup>
-->
<basisGroup rid="Ne00" n="0" l="0" type="Gaussian">
<radfunc exponent="3.598973662500e+03" contraction="-5.320248925000e-03"/>
<radfunc exponent="5.413207311000e+02" contraction="-3.977494767600e-02"/>
<radfunc exponent="1.229045006000e+02" contraction="-1.789525026770e-01"/>
<radfunc exponent="3.421661700000e+01" contraction="-4.684356506210e-01"/>
<radfunc exponent="1.065058410000e+01" contraction="-4.473477135800e-01"/>
</basisGroup>
<basisGroup rid="Ne10" n="1" l="0" type="Gaussian">
<radfunc exponent="1.354595400000e+00" contraction="1.000000000000e+00"/>
</basisGroup>
<basisGroup rid="Ne20" n="2" l="0" type="Gaussian">
<radfunc exponent="4.191936000000e-01" contraction="1.000000000000e+00"/>
</basisGroup>
<basisGroup rid="Ne31" n="3" l="1" type="Gaussian">
<radfunc exponent="2.842405380000e+01" contraction="-6.611778282300e-02"/>
<radfunc exponent="6.282251100000e+00" contraction="-3.446250365030e-01"/>
<radfunc exponent="1.697871500000e+00" contraction="-7.306937992640e-01"/>
</basisGroup>
<basisGroup rid="Ne41" n="4" l="1" type="Gaussian">
<radfunc exponent="4.330070000000e-01" contraction="1.000000000000e+00"/>
</basisGroup>
<basisGroup rid="Ne52" n="5" l="2" type="Gaussian">
<radfunc exponent="1.888000000000e+00" contraction="1.000000000000e+00"/>
</basisGroup>
</atomicBasisSet>
</basisset>
<slaterdeterminant>
<determinant id="updet" size="5" cuspInfo="../CuspCorrection/updet.cuspInfo.xml">
<occupation mode="ground"/>
<coefficient size="14" id="updetC">
9.90133000000000e-01 -3.12330000000000e-02 9.07200000000000e-03 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 3.22026000000000e-01
6.43777000000000e-01 4.60567000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 6.97249000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00
-4.54527000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 6.97249000000000e-01 0.00000000000000e+00
0.00000000000000e+00 -4.54527000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
6.97249000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -4.54527000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 3.27583000000000e-01
1.60811800000000e+00 -1.57553100000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 9.06086000000000e-01
0.00000000000000e+00 0.00000000000000e+00 1.04907300000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 9.06086000000000e-01 0.00000000000000e+00 0.00000000000000e+00
1.04907300000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 9.06086000000000e-01
0.00000000000000e+00 0.00000000000000e+00 1.04907300000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 1.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 1.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 1.00000000000000e+00 0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -4.80634000000000e-01 -5.19119000000000e-01 9.99753000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
8.76921000000000e-01 -8.54702000000000e-01 -2.22200000000000e-02 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00
</coefficient>
</determinant>
<determinant id="downdet" size="5" cuspInfo="../CuspCorrection/downdet.cuspInfo.xml">
<occupation mode="ground"/>
<coefficient size="14" id="downdetC">
9.90133000000000e-01 -3.12330000000000e-02 9.07200000000000e-03 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 3.22026000000000e-01
6.43777000000000e-01 4.60567000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 6.97249000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00
-4.54527000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 6.97249000000000e-01 0.00000000000000e+00
0.00000000000000e+00 -4.54527000000000e-01 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
6.97249000000000e-01 -0.00000000000000e+00 -0.00000000000000e+00 -4.54527000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 3.27583000000000e-01
1.60811800000000e+00 -1.57553100000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 9.06086000000000e-01
0.00000000000000e+00 0.00000000000000e+00 1.04907300000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 9.06086000000000e-01 0.00000000000000e+00 0.00000000000000e+00
1.04907300000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 9.06086000000000e-01
0.00000000000000e+00 0.00000000000000e+00 1.04907300000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 1.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 1.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00 0.00000000000000e+00
0.00000000000000e+00 0.00000000000000e+00 1.00000000000000e+00 0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -4.80634000000000e-01 -5.19119000000000e-01 9.99753000000000e-01
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00 -0.00000000000000e+00
8.76921000000000e-01 -8.54702000000000e-01 -2.22200000000000e-02 -0.00000000000000e+00
-0.00000000000000e+00 -0.00000000000000e+00
</coefficient>
</determinant>
</slaterdeterminant>
</determinantset>
</wavefunction>
</qmcsystem>

View File

@ -0,0 +1,123 @@
# Read parts of the QMCPACK XML input file
import xml.etree.ElementTree as ET
from collections import namedtuple, defaultdict
import math
import gaussian_orbitals
import numpy as np
# Get the total number of basis functions after expanding the angular parts
def get_total_basis_functions(basis_set):
ijk_list = gaussian_orbitals.get_ijk()
angular_funcs = defaultdict(int)
for i,j,k,name in ijk_list:
L = i + j + k
angular_funcs[L] += 1
total = 0
for cg in basis_set:
total += angular_funcs[cg.orbtype]
return total
def read_basis_groups(atomic_basis_set):
basis_groups = atomic_basis_set.findall('basisGroup')
#print basis_groups
basis_set = []
for basis_group in basis_groups:
if basis_group.attrib['type'] != 'Gaussian':
print 'Expecting Gaussian type basisGroup'
#print basis_group.attrib['n']
n = int(basis_group.attrib['n'])
#print basis_group.attrib['l']
ang_mom_l = int(basis_group.attrib['l'])
#print basis_group.attrib['type']
zeta_list = []
coef_list = []
radfuncs = basis_group.findall('radfunc')
for radfunc in radfuncs:
zeta = float(radfunc.attrib['exponent'])
contraction_coef = float(radfunc.attrib['contraction'])
zeta_list.append(zeta)
coef_list.append(contraction_coef)
cg = gaussian_orbitals.CG_basis(ang_mom_l, len(zeta_list), zeta_list, coef_list)
basis_set.append(cg)
return basis_set
# Read the atomic basis set and MO coefficients
def parse_qmc_wf(fname):
tree = ET.parse(fname)
atomic_basis_sets = tree.findall('.//atomicBasisSet')
basis_sets = dict()
for atomic_basis_set in atomic_basis_sets:
element = atomic_basis_set.attrib['elementType']
basis_set = read_basis_groups(atomic_basis_set)
basis_sets[element] = basis_set
basis_size = 0
for element, basis_set in basis_sets.iteritems():
basis_size += get_total_basis_functions(basis_set)
#print 'total basis size',basis_size
# Just use the first one for now - assume up and down MO's are the same
MO_coeff_node = tree.find('.//determinant/coefficient')
MO_matrix = None
if MO_coeff_node is None:
print 'Molecular orbital coefficients not found'
else:
#print 'MO_coeff = ',MO_coeff_node
MO_size = int(MO_coeff_node.attrib['size'])
#print 'MO coeff size = ',MO_size
MO_text = MO_coeff_node.text
MO_text_entries = MO_text.split()
MO_values = [float(a) for a in MO_text_entries]
#MO_matrix = np.array(MO_values).reshape( (basis_size, MO_size) )
MO_matrix = np.array(MO_values).reshape( (MO_size, basis_size) )
#print 'MO_values = ',MO_values
return basis_sets, MO_matrix
# Read the ion positions and types
def parse_structure(node):
particleset = node.find("particleset[@name='ion0']")
npos = int(particleset.attrib['size'])
pos_node = particleset.find("attrib[@name='position']")
pos_values = [float(a) for a in pos_node.text.split()]
pos = np.array(pos_values).reshape( (3, npos) )
elements_node = particleset.find("attrib[@name='ionid']")
elements = elements_node.text.split()
return pos, elements
def read_structure_file(fname):
tree = ET.parse(fname)
return parse_structure(tree)
if __name__ == '__main__':
# For He
basis_set, MO_matrix = parse_qmc_wf('he_sto3g.wfj.xml')
# For HCN - need ion positions as well
basis_sets, MO_matrix = parse_qmc_wf('hcn.wfnoj.xml')
pos_list, elements = read_structure_file("hcn.structure.xml")
gtos = gaussian_orbitals.GTO_centers(pos_list, elements, basis_sets)
atomic_orbs = gtos.eval_v(1.0, 0.0, 0.0)
#print np.dot(MO_matrix, atomic_orbs)

View File

@ -0,0 +1,464 @@
//////////////////////////////////////////////////////////////////////////////////////
// This file is distributed under the University of Illinois/NCSA Open Source License.
// See LICENSE file in top directory for details.
//
// Copyright (c) 2018 Jeongnim Kim and QMCPACK developers.
//
// File developed by: Mark Dewing, mdewing@anl.gov, Argonne National Laboratory
//
// File created by: Mark Dewing, mdewing@anl.gov, Argonne National Laboratory
//////////////////////////////////////////////////////////////////////////////////////
#include "catch.hpp"
#include "Configuration.h"
#include "Message/Communicate.h"
#include "Numerics/OneDimGridBase.h"
#include "Particle/DistanceTableData.h"
#include "ParticleIO/XMLParticleIO.h"
#include "Numerics/GaussianBasisSet.h"
#ifdef ENABLE_SOA
#include "QMCWaveFunctions/lcao/LCAOrbitalBuilder.h"
#else
#include "QMCWaveFunctions/MolecularOrbitals/LocalizedBasisSet.h"
#include "QMCWaveFunctions/MolecularOrbitals/LCOrbitalSet.h"
#include "QMCWaveFunctions/MolecularOrbitals/SphericalBasisSet.h"
#include "QMCWaveFunctions/MolecularOrbitals/NGOBuilder.h"
#endif
#include "QMCWaveFunctions/SPOSetBuilderFactory.h"
namespace qmcplusplus
{
void test_He(bool transform)
{
std::ostringstream section_name;
section_name << "He, transform orbitals to grid: " << (transform ? "T":"F");
SECTION(section_name.str()) {
OHMMS::Controller->initialize(0, NULL);
Communicate *c = OHMMS::Controller;
ParticleSet elec;
std::vector<int> agroup(2);
agroup[0] = 1;
agroup[1] = 1;
elec.setName("e");
elec.create(agroup);
elec.R[0] = 0.0;
SpeciesSet &tspecies = elec.getSpeciesSet();
int upIdx = tspecies.addSpecies("u");
int downIdx = tspecies.addSpecies("d");
int massIdx = tspecies.addAttribute("mass");
tspecies(massIdx, upIdx) = 1.0;
tspecies(massIdx, downIdx) = 1.0;
ParticleSet ions;
ions.setName("ion0");
ions.create(1);
ions.R[0] = 0.0;
SpeciesSet &ispecies = ions.getSpeciesSet();
int heIdx = ispecies.addSpecies("He");
ions.update();
#ifdef ENABLE_SOA
elec.addTable(ions,DT_SOA);
#else
elec.addTable(ions,DT_AOS);
#endif
elec.update();
Libxml2Document doc;
bool okay = doc.parse("he_sto3g.wfj.xml");
REQUIRE(okay);
xmlNodePtr root = doc.getRoot();
TrialWaveFunction psi(c);
OrbitalBuilderBase::PtclPoolType particle_set_map;
particle_set_map["e"] = &elec;
particle_set_map["ion0"] = &ions;
SPOSetBuilderFactory bf(elec, psi, particle_set_map);
OhmmsXPathObject MO_base("//determinantset", doc.getXPathContext());
REQUIRE(MO_base.size() == 1);
if (transform) {
// input file is set to transform GTO's to numerical orbitals by default
} else {
// use direct evaluation of GTO's
xmlSetProp(MO_base[0], (const xmlChar *)"transform", (const xmlChar *)"no");
xmlSetProp(MO_base[0], (const xmlChar *)"key", (const xmlChar *)"GTO");
}
SPOSetBuilder *bb = bf.createSPOSetBuilder(MO_base[0]);
REQUIRE(bb != NULL);
OhmmsXPathObject slater_base("//determinant", doc.getXPathContext());
bb->loadBasisSetFromXML(MO_base[0]);
SPOSetBase *sposet = bb->createSPOSet(slater_base[0]);
//std::cout << "basis set size = " << sposet->getBasisSetSize() << std::endl;
SPOSetBase::ValueVector_t values;
SPOSetBase::GradVector_t dpsi;
SPOSetBase::ValueVector_t d2psi;
values.resize(1);
dpsi.resize(1);
d2psi.resize(1);
// Call makeMove to compute the distances
ParticleSet::SingleParticlePos_t newpos(0.0001, 0.0, 0.0);
elec.makeMove(0, newpos);
sposet->evaluate(elec, 0, values);
// Generated from gen_mo.py for position [0.0001, 0.0, 0.0]
REQUIRE(values[0] == Approx( 0.9996037001));
sposet->evaluate(elec, 0, values, dpsi, d2psi);
// Generated from gen_mo.py for position [0.0001, 0.0, 0.0]
REQUIRE(values[0] == Approx( 0.9996037001));
REQUIRE(dpsi[0][0] == Approx(-0.0006678035459));
REQUIRE(dpsi[0][1] == Approx( 0));
REQUIRE(dpsi[0][2] == Approx( 0));
REQUIRE(d2psi[0] == Approx( -20.03410564));
ParticleSet::SingleParticlePos_t disp(1.0, 0.0, 0.0);
elec.makeMove(0, disp);
sposet->evaluate(elec, 0, values, dpsi, d2psi);
// Generated from gen_mo.py for position [1.0, 0.0, 0.0]
REQUIRE(values[0] == Approx( 0.2315567641));
REQUIRE(dpsi[0][0] == Approx( -0.3805431885));
REQUIRE(dpsi[0][1] == Approx( 0));
REQUIRE(dpsi[0][2] == Approx( 0));
REQUIRE(d2psi[0] == Approx( -0.2618497452));
SPOSetBuilderFactory::clear();
}
}
TEST_CASE("ReadMolecularOrbital GTO He","[wavefunction]")
{
test_He(false);
}
TEST_CASE("ReadMolecularOrbital Numerical He","[wavefunction]")
{
test_He(true);
}
void test_Ne(bool transform)
{
std::ostringstream section_name;
section_name << "Neon, transform orbitals to grid: " << (transform ? "T":"F");
SECTION(section_name.str()) {
OHMMS::Controller->initialize(0, NULL);
Communicate *c = OHMMS::Controller;
ParticleSet elec;;
std::vector<int> agroup(2);
agroup[0] = 1;
agroup[1] = 1;
elec.setName("e");
elec.create(agroup);
elec.R[0]= 0.0;
SpeciesSet &tspecies = elec.getSpeciesSet();
int upIdx = tspecies.addSpecies("u");
int downIdx = tspecies.addSpecies("d");
int massIdx = tspecies.addAttribute("mass");
tspecies(massIdx, upIdx) = 1.0;
tspecies(massIdx, downIdx) = 1.0;
ParticleSet ions;
ions.setName("ion0");
ions.create(1);
ions.R[0][0] = 0.0;
ions.R[0][1] = 0.0;
ions.R[0][2] = 0.0;
SpeciesSet &ispecies = ions.getSpeciesSet();
int heIdx = ispecies.addSpecies("Ne");
ions.update();
#ifdef ENABLE_SOA
elec.addTable(ions,DT_SOA);
#else
elec.addTable(ions,DT_AOS);
#endif
elec.update();
Libxml2Document doc;
bool okay = doc.parse("ne_def2_svp.wfnoj.xml");
REQUIRE(okay);
xmlNodePtr root = doc.getRoot();
TrialWaveFunction psi(c);
OrbitalBuilderBase::PtclPoolType particle_set_map;
particle_set_map["e"] = &elec;
particle_set_map["ion0"] = &ions;
SPOSetBuilderFactory bf(elec, psi, particle_set_map);
OhmmsXPathObject MO_base("//determinantset", doc.getXPathContext());
REQUIRE(MO_base.size() == 1);
if (transform) {
// input file is set to transform GTO's to numerical orbitals by default
} else {
// use direct evaluation of GTO's
xmlSetProp(MO_base[0], (const xmlChar *)"transform", (const xmlChar *)"no");
xmlSetProp(MO_base[0], (const xmlChar *)"key", (const xmlChar *)"GTO");
}
SPOSetBuilder *bb = bf.createSPOSetBuilder(MO_base[0]);
REQUIRE(bb != NULL);
OhmmsXPathObject slater_base("//determinant", doc.getXPathContext());
bb->loadBasisSetFromXML(MO_base[0]);
SPOSetBase *sposet = bb->createSPOSet(slater_base[0]);
//std::cout << "basis set size = " << sposet->getBasisSetSize() << std::endl;
SPOSetBase::ValueVector_t values;
SPOSetBase::GradVector_t dpsi;
SPOSetBase::ValueVector_t d2psi;
values.resize(5);
dpsi.resize(5);
d2psi.resize(5);
ParticleSet::SingleParticlePos_t newpos(0.00001, 0.0, 0.0);
elec.makeMove(0, newpos);
sposet->evaluate(elec, 0, values);
std::cout << "values = " << values << std::endl;
// Generated from gen_mo.py for position [1e-05, 0.0, 0.0]
REQUIRE(values[0] == Approx( -16.11819042));
sposet->evaluate(elec, 0, values, dpsi, d2psi);
std::cout << "values = " << values << std::endl;
std::cout << "dpsi = " << dpsi << std::endl;
std::cout << "d2psi = " << d2psi << std::endl;
// Generated from gen_mo.py for position [1e-05, 0.0, 0.0]
REQUIRE(values[0] == Approx( -16.11819042));
REQUIRE(dpsi[0][0] == Approx( 0.1747261458));
REQUIRE(dpsi[0][1] == Approx( 0));
REQUIRE(dpsi[0][2] == Approx( 0));
ParticleSet::SingleParticlePos_t disp(1.0, 0.0, 0.0);
elec.makeMove(0, disp);
sposet->evaluate(elec, 0, values);
// Generated from gen_mo.py for position [1.0, 0.0, 0.0]
REQUIRE(values[0] == Approx(-0.005041631374));
sposet->evaluate(elec, 0, values, dpsi, d2psi);
// Generated from gen_mo.py for position [1.0, 0.0, 0.0]
REQUIRE(values[0] == Approx(-0.005041631374));
REQUIRE(dpsi[0][0] == Approx( 0.01862216578));
REQUIRE(dpsi[0][1] == Approx( 0));
REQUIRE(dpsi[0][2] == Approx( 0));
REQUIRE(d2psi[0] == Approx( -0.01551755818));
SPOSetBuilderFactory::clear();
}
}
TEST_CASE("ReadMolecularOrbital GTO Ne","[wavefunction]")
{
test_Ne(false);
}
TEST_CASE("ReadMolecularOrbital Numerical Ne","[wavefunction]")
{
test_Ne(true);
}
TEST_CASE("ReadMolecularOrbital HCN","[wavefunction]")
{
}
void test_HCN(bool transform)
{
std::ostringstream section_name;
section_name << "HCN, transform orbitals to grid: " << (transform ? "T":"F");
SECTION(section_name.str()) {
OHMMS::Controller->initialize(0, NULL);
Communicate *c = OHMMS::Controller;
Libxml2Document doc;
bool okay = doc.parse("hcn.structure.xml");
REQUIRE(okay);
xmlNodePtr root = doc.getRoot();
Tensor<int, 3> tmat;
tmat(0,0) = 1;
tmat(1,1) = 1;
tmat(2,2) = 1;
ParticleSet ions;
XMLParticleParser parse_ions(ions, tmat);
OhmmsXPathObject particleset_ion("//particleset[@name='ion0']", doc.getXPathContext());
REQUIRE(particleset_ion.size() == 1);
parse_ions.put(particleset_ion[0]);
REQUIRE(ions.groups() == 3);
REQUIRE(ions.R.size() == 3);
ions.update();
ParticleSet elec;
XMLParticleParser parse_elec(elec, tmat);
OhmmsXPathObject particleset_elec("//particleset[@name='e']", doc.getXPathContext());
REQUIRE(particleset_elec.size() == 1);
parse_elec.put(particleset_elec[0]);
REQUIRE(elec.groups() == 2);
REQUIRE(elec.R.size() == 14);
elec.R = 0.0;
#ifdef ENABLE_SOA
elec.addTable(ions,DT_SOA);
#else
elec.addTable(ions,DT_AOS);
#endif
elec.update();
Libxml2Document doc2;
okay = doc2.parse("hcn.wfnoj.xml");
REQUIRE(okay);
xmlNodePtr root2 = doc2.getRoot();
TrialWaveFunction psi(c);
OrbitalBuilderBase::PtclPoolType particle_set_map;
particle_set_map["e"] = &elec;
particle_set_map["ion0"] = &ions;
SPOSetBuilderFactory bf(elec, psi, particle_set_map);
OhmmsXPathObject MO_base("//determinantset", doc2.getXPathContext());
REQUIRE(MO_base.size() == 1);
if (transform) {
// input file is set to transform GTO's to numerical orbitals by default
} else {
// use direct evaluation of GTO's
xmlSetProp(MO_base[0], (const xmlChar *)"transform", (const xmlChar *)"no");
xmlSetProp(MO_base[0], (const xmlChar *)"key", (const xmlChar *)"GTO");
}
SPOSetBuilder *bb = bf.createSPOSetBuilder(MO_base[0]);
REQUIRE(bb != NULL);
OhmmsXPathObject slater_base("//determinant", doc2.getXPathContext());
bb->loadBasisSetFromXML(MO_base[0]);
SPOSetBase *sposet = bb->createSPOSet(slater_base[0]);
//std::cout << "basis set size = " << sposet->getBasisSetSize() << std::endl;
SPOSetBase::ValueVector_t values;
SPOSetBase::GradVector_t dpsi;
SPOSetBase::ValueVector_t d2psi;
values.resize(7);
dpsi.resize(7);
d2psi.resize(7);
ParticleSet::SingleParticlePos_t newpos;
elec.makeMove(0, newpos);
sposet->evaluate(elec, 0, values);
//typedef LCOrbitalSet<LocalizedBasisSet<SphericalBasisSet<GaussianCombo<double>>>, false> OrbType;
//OrbType *lcob = dynamic_cast<OrbType *>(sposet);
//REQUIRE(lcob != NULL);
//std::cout << "atomic orbs = " << lcob->myBasisSet->Phi << std::endl;
//std::cout << "values = " << values << std::endl;
REQUIRE(values[0] == Approx( 0.009452265234));
REQUIRE(values[1] == Approx( 0.02008357407));
REQUIRE(values[2] == Approx( 0.4163749594));
REQUIRE(values[3] == Approx( -0.08854428343));
REQUIRE(values[4] == Approx( 0.273158705));
REQUIRE(values[5] == Approx( 0));
REQUIRE(values[6] == Approx( 0));
sposet->evaluate(elec, 0, values, dpsi, d2psi);
// Generated form gen_mo.py for position [0.0, 0.0, 0.0]
REQUIRE(values[0] == Approx( 0.009452265234));
REQUIRE(dpsi[0][0] == Approx( -0.05400764372));
REQUIRE(dpsi[0][1] == Approx( 0));
REQUIRE(dpsi[0][2] == Approx( 0));
REQUIRE(d2psi[0] == Approx( 0.2532157143));
REQUIRE(values[1] == Approx( 0.02008357407));
REQUIRE(dpsi[1][0] == Approx( 0.1009262252));
REQUIRE(dpsi[1][1] == Approx( 0));
REQUIRE(dpsi[1][2] == Approx( 0));
REQUIRE(d2psi[1] == Approx( 0.3423520138));
REQUIRE(values[2] == Approx( 0.4163749594));
REQUIRE(dpsi[2][0] == Approx( -0.1202256419));
REQUIRE(dpsi[2][1] == Approx( 0));
REQUIRE(dpsi[2][2] == Approx( 0));
REQUIRE(d2psi[2] == Approx( -1.178149899));
REQUIRE(values[3] == Approx( -0.08854428343));
REQUIRE(dpsi[3][0] == Approx(-0.004505552544));
REQUIRE(dpsi[3][1] == Approx( 0));
REQUIRE(dpsi[3][2] == Approx( 0));
REQUIRE(d2psi[3] == Approx( 0.2838238091));
REQUIRE(values[4] == Approx( 0.273158705));
REQUIRE(dpsi[4][0] == Approx( -0.01125044248));
REQUIRE(dpsi[4][1] == Approx( 0));
REQUIRE(dpsi[4][2] == Approx( 0));
REQUIRE(d2psi[4] == Approx( -0.9173261582));
REQUIRE(values[5] == Approx( 0));
REQUIRE(dpsi[5][0] == Approx( 0));
REQUIRE(dpsi[5][1] == Approx( 0.4221165864));
REQUIRE(dpsi[5][2] == Approx( -0.08191634629));
REQUIRE(d2psi[5] == Approx( 0));
REQUIRE(values[6] == Approx( 0));
REQUIRE(dpsi[6][0] == Approx( 0));
REQUIRE(dpsi[6][1] == Approx( 0.08191634629));
REQUIRE(dpsi[6][2] == Approx( 0.4221165864));
REQUIRE(d2psi[6] == Approx( 0));
SPOSetBuilderFactory::clear();
}
}
TEST_CASE("ReadMolecularOrbital GTO HCN","[wavefunction]")
{
test_HCN(false);
}
TEST_CASE("ReadMolecularOrbital Numerical HCN","[wavefunction]")
{
test_HCN(true);
}
}