├── .gitignore ├── AccMetaD ├── MetaAMLP.py ├── aseplumed.py ├── md_utils.py ├── nosehoover.py ├── velscale.py ├── xdftb.py ├── xemt.py └── xquip.py ├── LICENSE ├── README.md └── examples ├── CO-PtClus13 ├── dftb-gap │ ├── Pt13-CO.xyz │ ├── acc_meta.slurm │ ├── inputs.py │ ├── plumed-1.dat │ ├── plumed-2.dat │ └── run.py └── gap │ ├── Pt13-CO.xyz │ ├── acc_meta.slurm │ ├── inputs.py │ ├── plumed-1.dat │ ├── plumed-2.dat │ └── run.py ├── CO-PtSurf111 ├── dftb-gap │ ├── acc_meta.slurm │ ├── inputs.py │ ├── plumed-1.dat │ ├── plumed-2.dat │ ├── run.py │ └── surf-CO.xyz └── gap │ ├── acc_meta.slurm │ ├── inputs.py │ ├── plumed-1.dat │ ├── plumed-2.dat │ ├── run.py │ └── surf-CO.xyz └── skf ├── C-C.skf ├── C-O.skf ├── C-Pt.skf ├── O-C.skf ├── O-O.skf ├── O-Pt.skf ├── Pt-C.skf ├── Pt-O.skf └── Pt-Pt.skf /.gitignore: -------------------------------------------------------------------------------- 1 | # byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | -------------------------------------------------------------------------------- /AccMetaD/aseplumed.py: -------------------------------------------------------------------------------- 1 | """ 2 | a plumed wrapper for ase 3 | """ 4 | 5 | import numpy as np 6 | 7 | from ase import units 8 | 9 | import plumed 10 | 11 | 12 | class AsePlumed(object): 13 | 14 | def __init__( 15 | self, atoms, timestep, 16 | in_file = 'plumed.dat', 17 | out_file = 'plumed.out' 18 | ): 19 | 20 | self.atoms = atoms 21 | self.timestep = timestep 22 | self.natoms = len(atoms) 23 | self.masses = self.atoms.get_masses().copy() # masses cannot change 24 | 25 | self.in_file = in_file 26 | self.out_file = out_file 27 | 28 | self.worker = self.initialize() 29 | 30 | return 31 | 32 | def initialize(self): 33 | # init 34 | p_md = plumed.Plumed() 35 | 36 | # units 37 | energyUnits = 96.485 # eV to kJ/mol 38 | lengthUnits = 0.1 # angstrom to nm 39 | timeUnits = 1.0/units.fs*0.001 # fs to ps 40 | 41 | p_md.cmd("setMDEnergyUnits", energyUnits) 42 | p_md.cmd("setMDLengthUnits", lengthUnits) 43 | p_md.cmd("setMDTimeUnits", timeUnits) 44 | 45 | # inp, out 46 | p_md.cmd("setPlumedDat", self.in_file) 47 | p_md.cmd("setLogFile", self.out_file) 48 | 49 | # simulation details 50 | p_md.cmd("setTimestep", self.timestep) 51 | p_md.cmd("setNatoms", self.natoms) 52 | p_md.cmd("setMDEngine", 'ase') 53 | 54 | # finally! 55 | p_md.cmd("init") 56 | 57 | return p_md 58 | 59 | def external_forces( 60 | self, 61 | step, 62 | new_energy = None, 63 | new_forces = None, # sometimes use forces not attached to self.atoms 64 | new_virial = None, 65 | delta_forces = False 66 | ): 67 | """return external forces from plumed""" 68 | # structure info 69 | positions = self.atoms.get_positions().copy() 70 | cell = self.atoms.cell[:].copy() 71 | 72 | if new_forces is None: 73 | forces = self.atoms.get_forces().copy() 74 | else: 75 | forces = new_forces.copy() 76 | original_forces = forces.copy() 77 | 78 | if new_energy is None: 79 | energy = self.atoms.get_potential_energy() 80 | else: 81 | energy = new_energy 82 | 83 | # TODO: get virial 84 | virial = np.zeros((3,3)) 85 | 86 | self.worker.cmd("setStep", step) 87 | self.worker.cmd("setMasses", self.masses) 88 | self.worker.cmd("setForces", forces) 89 | self.worker.cmd("setPositions", positions) 90 | self.worker.cmd("setEnergy", energy) 91 | self.worker.cmd("setBox", cell) 92 | self.worker.cmd("setVirial", virial) 93 | self.worker.cmd("calc", None) 94 | 95 | # implent plumed external forces into momenta 96 | if delta_forces: 97 | plumed_forces = forces - original_forces 98 | else: 99 | plumed_forces = forces 100 | 101 | return plumed_forces 102 | 103 | def finalize(self): 104 | self.worker.finalize() 105 | 106 | 107 | if __name__ == '__main__': 108 | pass 109 | -------------------------------------------------------------------------------- /AccMetaD/md_utils.py: -------------------------------------------------------------------------------- 1 | """ 2 | 3 | """ 4 | 5 | import numpy as np 6 | 7 | from ase.md.md import MolecularDynamics 8 | from ase.md.velocitydistribution import Stationary 9 | from ase import units 10 | 11 | def force_temperature(atoms, temperature, unit="K"): 12 | """ force (nucl.) temperature to have a precise value 13 | 14 | Parameters: 15 | atoms: ase.Atoms 16 | the structure 17 | temperature: float 18 | nuclear temperature to set 19 | unit: str 20 | 'K' or 'eV' as unit for the temperature 21 | """ 22 | 23 | eps_temp = 1e-12 24 | 25 | if unit == "K": 26 | E_temp = temperature * units.kB 27 | elif unit == "eV": 28 | E_temp = temperature 29 | else: 30 | raise UnitError("'{}' is not supported, use 'K' or 'eV'.".format(unit)) 31 | 32 | # check DOF 33 | ndof = 3*len(atoms) 34 | for constraint in atoms._constraints: 35 | ndof -= constraint.removed_dof 36 | 37 | # calculate kinetic energy and get the scale 38 | if temperature > eps_temp: 39 | E_kin0 = atoms.get_kinetic_energy() / (0.5 * ndof) 40 | gamma = E_temp / E_kin0 41 | else: 42 | gamma = 0.0 43 | 44 | atoms.set_momenta(atoms.get_momenta() * np.sqrt(gamma)) 45 | 46 | return 47 | 48 | -------------------------------------------------------------------------------- /AccMetaD/nosehoover.py: -------------------------------------------------------------------------------- 1 | """ Custom Nose-Hoover NVT thermostat based on ASE. 2 | 3 | This code was originally written by Jonathan Mailoa based on these notes: 4 | 5 | https://www2.ph.ed.ac.uk/~dmarendu/MVP/MVP03.pdf 6 | 7 | It was then adapted by Simon Batzner to be used within ASE. Parts of the overall outline of the class are also based on the Langevin class in ASE. 8 | 9 | This was further changed by Jiayan XU for a more compact formulation. 10 | 11 | """ 12 | 13 | import numpy as np 14 | 15 | from ase.md.md import MolecularDynamics 16 | from ase.md.velocitydistribution import Stationary 17 | from ase import units 18 | 19 | 20 | class NoseHoover(MolecularDynamics): 21 | """Nose-Hoover (constant N, V, T) molecular dynamics. 22 | 23 | Usage: NoseHoover(atoms, dt, temperature) 24 | 25 | atoms 26 | The list of atoms. 27 | 28 | timestep 29 | The time step. 30 | 31 | temperature 32 | Target temperature of the MD run in [K * units.kB] 33 | 34 | nvt_q 35 | Q in the Nose-Hoover equations 36 | 37 | Example Usage: 38 | 39 | nvt_dyn = NoseHoover( 40 | atoms=atoms, 41 | timestep=0.5 * units.fs, 42 | temperature=300. * units.kB, 43 | nvt_q=334. 44 | ) 45 | 46 | """ 47 | 48 | def __init__( 49 | self, 50 | atoms, 51 | timestep, 52 | temperature, 53 | nvt_q, 54 | trajectory=None, 55 | logfile=None, 56 | loginterval=1, 57 | append_trajectory=False, 58 | ): 59 | # set com momentum to zero 60 | # TODO: if make com fixed at each step? 61 | # Stationary(atoms) 62 | 63 | self.temp = temperature / units.kB 64 | self.nvt_q = nvt_q 65 | self.dt = timestep # units: A/sqrt(u/eV) 66 | self.dtdt = np.power(self.dt, 2) 67 | self.nvt_bath = 0.0 68 | 69 | # local 70 | self._vel_halfstep = None 71 | 72 | MolecularDynamics.__init__( 73 | self, 74 | atoms, 75 | timestep, 76 | trajectory, 77 | logfile, 78 | loginterval, 79 | append_trajectory=append_trajectory, 80 | ) 81 | 82 | def step(self, f=None): 83 | """ Perform a MD step. 84 | 85 | """ 86 | 87 | # TODO: we do need the f=None argument? 88 | atoms = self.atoms 89 | masses = atoms.get_masses() # units: u 90 | 91 | # count actual degree of freedoms 92 | # count every step because sometimes constraints can be manually changed 93 | ndof = 3*len(atoms) 94 | for constraint in atoms._constraints: 95 | ndof -= constraint.removed_dof 96 | ndof += 1 # bath 97 | 98 | if f is None: 99 | f = atoms.get_forces() 100 | 101 | # for the first step, v(t-dt/2) = v(0.5) is needed. 102 | if self._vel_halfstep is None: 103 | self._vel_halfstep = ( 104 | atoms.get_velocities() - 105 | 0.5 * self.dt * (f / masses[:, np.newaxis]) 106 | ) 107 | else: 108 | pass 109 | 110 | # v(t-dt/2), f(t), eta(t) -> v(t) 111 | atoms.set_velocities( 112 | ( 113 | self._vel_halfstep 114 | + 0.5 * self.dt * (f / masses[:, np.newaxis]) 115 | ) 116 | / (1 + 0.5 * self.dt * self.nvt_bath) 117 | ) 118 | 119 | # v(t), f(t), eta(t) -> r(t+dt) 120 | modified_acc = ( 121 | f / masses[:, np.newaxis] 122 | - self.nvt_bath * atoms.get_velocities() 123 | ) 124 | 125 | pos_fullstep = ( 126 | atoms.get_positions() 127 | + self.dt * atoms.get_velocities() 128 | + 0.5 * self.dtdt * modified_acc 129 | ) 130 | 131 | atoms.set_positions(pos_fullstep) 132 | 133 | # v(t), f(t), eta(t) -> v(t+dt/2) 134 | self._vel_halfstep = atoms.get_velocities() + 0.5 * self.dt * modified_acc 135 | 136 | # eta(t), v(t) -> eta(t+dt/2) 137 | e_kin_diff = 0.5 * ( 138 | np.sum(masses * np.sum(atoms.get_velocities() ** 2, axis=1)) 139 | - (ndof) * units.kB * self.temp 140 | ) # number of freedoms? 141 | 142 | nvt_bath_halfstep = self.nvt_bath + 0.5 * self.dt * e_kin_diff / self.nvt_q 143 | 144 | # eta(t+dt/2), v(t+dt/2) -> eta(t+dt) 145 | e_kin_diff_halfstep = 0.5 * ( 146 | np.sum(masses * np.sum(self._vel_halfstep ** 2, axis=1)) 147 | - (ndof) * units.kB * self.temp 148 | ) 149 | 150 | self.nvt_bath = ( 151 | nvt_bath_halfstep + 0.5 * self.dt * e_kin_diff_halfstep / self.nvt_q 152 | ) 153 | 154 | return 155 | 156 | if __name__ == '__main__': 157 | import ase.io 158 | import ase.units 159 | from ase import Atoms 160 | from ase.calculators.emt import EMT 161 | from ase.md.velocitydistribution import MaxwellBoltzmannDistribution 162 | 163 | from ase.constraints import FixAtoms 164 | 165 | from .md_utils import force_temperature 166 | 167 | # ===== system ===== 168 | atoms = Atoms( 169 | 'CO2', 170 | positions = [ 171 | [0.,0.,0.], 172 | [0.,0.,1.0], 173 | [0.,0.,-1.0] 174 | ] 175 | ) 176 | 177 | cons = FixAtoms(mask=[atom.symbol == 'C' for atom in atoms]) 178 | 179 | atoms.set_constraint(cons) 180 | 181 | atoms.set_calculator(EMT()) 182 | 183 | # ===== molecular dynamics ===== 184 | temperature = 300 185 | MaxwellBoltzmannDistribution(atoms, temperature*ase.units.kB) 186 | force_temperature(atoms, temperature) 187 | print('start!!!') 188 | print(atoms.get_velocities()) 189 | print(atoms.get_temperature()) 190 | 191 | nvt_dyn = NoseHoover( 192 | atoms = atoms, 193 | timestep = 2.0 * units.fs, 194 | temperature = temperature * units.kB, 195 | nvt_q = 334. 196 | ) 197 | 198 | def print_temperature(atoms): 199 | content = 'temperature %8.4f' %atoms.get_temperature() 200 | print(content) 201 | 202 | nvt_dyn.attach(print_temperature, atoms=atoms) 203 | 204 | nvt_dyn.run(steps=5) 205 | -------------------------------------------------------------------------------- /AccMetaD/velscale.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | from ase.md.md import MolecularDynamics 4 | from .md_utils import force_temperature 5 | 6 | """ 7 | verlet algorithm with velocity scaling 8 | """ 9 | 10 | 11 | class VelocityScaling(MolecularDynamics): 12 | def __init__( 13 | self, 14 | atoms, 15 | timestep = None, 16 | scale_interval = None, 17 | temperature = None, # in Kelvin 18 | trajectory = None, 19 | logfile = None, 20 | loginterval = 1, 21 | dt = None, 22 | append_trajectory=False 23 | ): 24 | # FloK: rename dt -> timestep and make sure nobody is affected 25 | if dt is not None: 26 | import warnings 27 | warnings.warn('dt variable is deprecated; please use timestep.', 28 | DeprecationWarning) 29 | timestep = dt 30 | if timestep is None: 31 | raise TypeError('Missing timestep argument') 32 | 33 | self.scale_on = False 34 | if temperature and scale_interval: 35 | self.scale_on = True 36 | self.scale_counter = 0 37 | self.temperature = temperature 38 | self.scale_interval = scale_interval 39 | 40 | MolecularDynamics.__init__(self, atoms, timestep, trajectory, logfile, 41 | loginterval, 42 | append_trajectory=append_trajectory) 43 | 44 | def step(self, f=None): 45 | 46 | atoms = self.atoms 47 | 48 | if f is None: 49 | f = atoms.get_forces() 50 | 51 | p = atoms.get_momenta() 52 | p += 0.5 * self.dt * f 53 | masses = atoms.get_masses()[:, np.newaxis] 54 | r = atoms.get_positions() 55 | 56 | # if we have constraints then this will do the first part of the 57 | # RATTLE algorithm: 58 | atoms.set_positions(r + self.dt * p / masses) 59 | if atoms.constraints: 60 | p = (atoms.get_positions() - r) * masses / self.dt 61 | 62 | atoms.set_momenta(p + 0.5 * self.dt * f) 63 | 64 | if self.scale_on: 65 | self.scale_counter += 1 66 | if self.scale_counter % self.scale_interval == 0: 67 | force_temperature(atoms, self.temperature) 68 | self.scale_counter = 0 69 | 70 | # TODO: check whether really needs this part 71 | # We need to store the momenta on the atoms before calculating 72 | # the forces, as in a parallel Asap calculation atoms may 73 | # migrate during force calculations, and the momenta need to 74 | # migrate along with the atoms. 75 | #atoms.set_momenta(p, apply_constraint=False) 76 | 77 | #f = atoms.get_forces(md=True) 78 | 79 | ## Second part of RATTLE will be done here: 80 | #atoms.set_momenta(atoms.get_momenta() + 0.5 * self.dt * f) 81 | 82 | return 83 | -------------------------------------------------------------------------------- /AccMetaD/xdftb.py: -------------------------------------------------------------------------------- 1 | """ 2 | This module defines an ASE interface to GPC-DFTB, 3 | Gaussian Process Corrected Density Functional Tight Binding... 4 | QUIP-GP and DFTB+ 5 | 6 | """ 7 | 8 | import os 9 | import subprocess 10 | import warnings 11 | 12 | import numpy as np 13 | 14 | from ase.calculators.calculator import ( 15 | all_changes, 16 | Calculator, FileIOCalculator, 17 | kpts2ndarray, kpts2sizeandoffsets 18 | ) 19 | from ase.units import Hartree, Bohr 20 | 21 | # extended-ase 22 | from .xquip import XQuip 23 | 24 | ATOMIC_ENERGIES = { 25 | 'energy': { 26 | 'C': -38.4154, 27 | 'O': -84.4551, 28 | 'Pt': -63.7985, 29 | }, 30 | 'free_energy': { 31 | 'C': -38.4154, 32 | 'O': -84.6094, 33 | 'Pt': -63.8686, 34 | } 35 | } 36 | 37 | 38 | class XDFTB(FileIOCalculator): 39 | """ A dftb+ calculator with ase-FileIOCalculator nomenclature 40 | """ 41 | if 'DFTB_COMMAND' in os.environ: 42 | command = os.environ['DFTB_COMMAND'] + ' > PREFIX.out' 43 | else: 44 | command = 'dftb+ > PREFIX.out' 45 | 46 | implemented_properties = ['energy', 'forces', 'charges', 'stress'] 47 | 48 | def __init__( 49 | self, 50 | restart=None, 51 | ignore_bad_restart_file=False, 52 | label = None, 53 | atoms=None, 54 | kpts=None, 55 | run_manyDftb_steps=False, 56 | slako_dir='./', 57 | num_threads: int = 12, 58 | # atomic energies 59 | binding_energy: bool = False, 60 | atomic_energies: dict = {}, 61 | # correction 62 | correction_params = None, 63 | **kwargs 64 | ): 65 | """Construct a DFTB+ calculator. 66 | 67 | run_manyDftb_steps: Logical 68 | True: many steps are run by DFTB+, 69 | False:a single force&energy calculation at given positions 70 | 71 | kpts: (int, int, int), dict, or 2D-array 72 | If kpts is a tuple (or list) of 3 integers, it is interpreted 73 | as the dimensions of a Monkhorst-Pack grid. 74 | 75 | If kpts is a dict, it will either be interpreted as a path 76 | in the Brillouin zone (*) if it contains the 'path' keyword, 77 | otherwise it is converted to a Monkhorst-Pack grid (**). 78 | (*) see ase.dft.kpoints.bandpath 79 | (**) see ase.calculators.calculator.kpts2sizeandoffsets 80 | 81 | The k-point coordinates can also be provided explicitly, 82 | as a (N x 3) array with the scaled coordinates (relative 83 | to the reciprocal unit cell vectors). Each of the N k-points 84 | will be given equal weight. 85 | 86 | --------- 87 | Additional object (to be set by function embed) 88 | pcpot: PointCharge object 89 | An external point charge potential (only in qmmm) 90 | """ 91 | 92 | # skf tables 93 | #if 'DFTB_PREFIX' in os.environ: 94 | # self.slako_dir = os.environ['DFTB_PREFIX'].rstrip('/') + '/' 95 | #else: 96 | # self.slako_dir = './' 97 | #slako_dir = os.path.abspath(slako_dir) + '/' 98 | self.slako_dir = slako_dir.rstrip('/') + '/' 99 | 100 | self.num_threads = str(num_threads) 101 | 102 | # file names 103 | self.geo_fname = 'geo_in.gen' 104 | 105 | if run_manyDftb_steps: 106 | # minimisation of molecular dynamics is run by native DFTB+ 107 | self.default_parameters = dict( 108 | Hamiltonian_='DFTB', 109 | Hamiltonian_SlaterKosterFiles_='Type2FileNames', 110 | Hamiltonian_SlaterKosterFiles_Prefix=self.slako_dir, 111 | Hamiltonian_SlaterKosterFiles_Separator='"-"', 112 | Hamiltonian_SlaterKosterFiles_Suffix='".skf"', 113 | Hamiltonian_MaxAngularMomentum_='') 114 | else: 115 | # using ase to get forces and energy only 116 | # (single point calculation) 117 | self.default_parameters = dict( 118 | Hamiltonian_='DFTB', 119 | Hamiltonian_SlaterKosterFiles_='Type2FileNames', 120 | Hamiltonian_SlaterKosterFiles_Prefix=self.slako_dir, 121 | Hamiltonian_SlaterKosterFiles_Separator='"-"', 122 | Hamiltonian_SlaterKosterFiles_Suffix='".skf"', 123 | Hamiltonian_MaxAngularMomentum_='') 124 | 125 | self.pcpot = None 126 | self.lines = None # results.tag 127 | 128 | self.atoms = None 129 | self.atoms_input = None 130 | 131 | self.do_forces = False 132 | self.outfilename = 'dftb.out' 133 | 134 | FileIOCalculator.__init__(self, restart, ignore_bad_restart_file, 135 | label, atoms, 136 | **kwargs) 137 | 138 | # set GP potential path 139 | self.correction_calculator = None 140 | if correction_params: 141 | params = correction_params.copy() # avoid destroy origin 142 | # get params 143 | correction_command = params.pop('correction_command', None) 144 | param_filename = params.pop('param_filename', None) 145 | # check params 146 | warnings.warn( 147 | 'You are using DFTB with correction!', RuntimeWarning 148 | ) 149 | if correction_command: 150 | pass 151 | else: 152 | raise ValueError('No correction_command') 153 | 154 | if param_filename: 155 | if os.path.exists(param_filename): 156 | param_filename = os.path.abspath(param_filename) 157 | else: 158 | raise ValueError('%s not exists.' %param_filename) 159 | else: 160 | raise ValueError('No param_filename') 161 | 162 | # generate calculator 163 | self.correction_calculator = XQuip( 164 | directory = self.directory, 165 | command = correction_command, 166 | param_filename = param_filename, 167 | **params, 168 | ) 169 | 170 | else: 171 | pass 172 | 173 | # set atomic energies 174 | self.binding_energy = binding_energy 175 | if atomic_energies: 176 | # TODO: check energy consistent 177 | self.update_atomic_energies(atomic_energies) 178 | 179 | # Determine number of spin channels 180 | try: 181 | entry = kwargs['Hamiltonian_SpinPolarisation'] 182 | spinpol = 'colinear' in entry.lower() 183 | except KeyError: 184 | spinpol = False 185 | self.nspin = 2 if spinpol else 1 186 | 187 | # kpoint stuff by ase 188 | self.kpts = kpts 189 | self.kpts_coord = None 190 | 191 | if self.kpts is not None: 192 | initkey = 'Hamiltonian_KPointsAndWeights' 193 | mp_mesh = None 194 | offsets = None 195 | 196 | if isinstance(self.kpts, dict): 197 | if 'path' in self.kpts: 198 | # kpts is path in Brillouin zone 199 | self.parameters[initkey + '_'] = 'Klines ' 200 | self.kpts_coord = kpts2ndarray(self.kpts, atoms=atoms) 201 | else: 202 | # kpts is (implicit) definition of 203 | # Monkhorst-Pack grid 204 | self.parameters[initkey + '_'] = 'SupercellFolding ' 205 | mp_mesh, offsets = kpts2sizeandoffsets(atoms=atoms, 206 | **self.kpts) 207 | elif np.array(self.kpts).ndim == 1: 208 | # kpts is Monkhorst-Pack grid 209 | self.parameters[initkey + '_'] = 'SupercellFolding ' 210 | mp_mesh = self.kpts 211 | offsets = [0.] * 3 212 | elif np.array(self.kpts).ndim == 2: 213 | # kpts is (N x 3) list/array of k-point coordinates 214 | # each will be given equal weight 215 | self.parameters[initkey + '_'] = '' 216 | self.kpts_coord = np.array(self.kpts) 217 | else: 218 | raise ValueError('Illegal kpts definition:' + str(self.kpts)) 219 | 220 | if mp_mesh is not None: 221 | eps = 1e-10 222 | for i in range(3): 223 | key = initkey + '_empty%03d' % i 224 | val = [mp_mesh[i] if j == i else 0 for j in range(3)] 225 | self.parameters[key] = ' '.join(map(str, val)) 226 | offsets[i] *= mp_mesh[i] 227 | assert abs(offsets[i]) < eps or abs(offsets[i] - 0.5) < eps 228 | # DFTB+ uses a different offset convention, where 229 | # the k-point mesh is already Gamma-centered prior 230 | # to the addition of any offsets 231 | #if mp_mesh[i] % 2 == 0: 232 | # offsets[i] += 0.5 # use gamma-centred 233 | key = initkey + '_empty%03d' % 3 234 | self.parameters[key] = ' '.join(map(str, offsets)) 235 | 236 | elif self.kpts_coord is not None: 237 | for i, c in enumerate(self.kpts_coord): 238 | key = initkey + '_empty%09d' % i 239 | c_str = ' '.join(map(str, c)) 240 | if 'Klines' in self.parameters[initkey + '_']: 241 | c_str = '1 ' + c_str 242 | else: 243 | c_str += ' 1.0' 244 | self.parameters[key] = c_str 245 | 246 | def write_dftb_in(self, filename): 247 | """ Write the innput file for the dftb+ calculation. 248 | Geometry is taken always from the file 'geo_end.gen'. 249 | """ 250 | 251 | outfile = open(filename, 'w') 252 | outfile.write('Geometry = GenFormat { \n') 253 | #outfile.write(' <<< "geo_end.gen" \n') 254 | outfile.write(' <<< %s \n' %self.geo_fname) 255 | outfile.write('} \n') 256 | outfile.write(' \n') 257 | 258 | params = self.parameters.copy() 259 | 260 | s = 'Hamiltonian_MaxAngularMomentum_' 261 | for key in params: 262 | if key.startswith(s) and len(key) > len(s): 263 | break 264 | else: 265 | # User didn't specify max angular mometa. Get them from 266 | # the .skf files: 267 | symbols = set(self.atoms.get_chemical_symbols()) 268 | for symbol in symbols: 269 | path = os.path.join(self.slako_dir, 270 | '{0}-{0}.skf'.format(symbol)) 271 | l = read_max_angular_momentum(path) 272 | params[s + symbol] = '"{}"'.format('spdf'[l]) 273 | 274 | # --------MAIN KEYWORDS------- 275 | previous_key = 'dummy_' 276 | myspace = ' ' 277 | for key, value in sorted(params.items()): 278 | current_depth = key.rstrip('_').count('_') 279 | previous_depth = previous_key.rstrip('_').count('_') 280 | for my_backsclash in reversed( 281 | range(previous_depth - current_depth)): 282 | outfile.write(3 * (1 + my_backsclash) * myspace + '} \n') 283 | outfile.write(3 * current_depth * myspace) 284 | if key.endswith('_') and len(value) > 0: 285 | outfile.write(key.rstrip('_').rsplit('_')[-1] + 286 | ' = ' + str(value) + '{ \n') 287 | elif (key.endswith('_') and (len(value) == 0) 288 | and current_depth == 0): # E.g. 'Options {' 289 | outfile.write(key.rstrip('_').rsplit('_')[-1] + 290 | ' ' + str(value) + '{ \n') 291 | elif (key.endswith('_') and (len(value) == 0) 292 | and current_depth > 0): # E.g. 'Hamiltonian_Max... = {' 293 | outfile.write(key.rstrip('_').rsplit('_')[-1] + 294 | ' = ' + str(value) + '{ \n') 295 | elif key.count('_empty') == 1: 296 | outfile.write(str(value) + ' \n') 297 | elif ((key == 'Hamiltonian_ReadInitialCharges') and 298 | (str(value).upper() == 'YES')): 299 | f1 = os.path.isfile(self.directory + os.sep + 'charges.dat') 300 | f2 = os.path.isfile(self.directory + os.sep + 'charges.bin') 301 | if not (f1 or f2): 302 | print('charges.dat or .bin not found, switching off guess') 303 | value = 'No' 304 | outfile.write(key.rsplit('_')[-1] + ' = ' + str(value) + ' \n') 305 | else: 306 | outfile.write(key.rsplit('_')[-1] + ' = ' + str(value) + ' \n') 307 | # point 308 | if self.pcpot is not None and ('DFTB' in str(value)): 309 | outfile.write(' ElectricField = { \n') 310 | outfile.write(' PointCharges = { \n') 311 | outfile.write( 312 | ' CoordsAndCharges [Angstrom] = DirectRead { \n') 313 | outfile.write(' Records = ' + 314 | str(len(self.pcpot.mmcharges)) + ' \n') 315 | outfile.write( 316 | ' File = "dftb_external_charges.dat" \n') 317 | outfile.write(' } \n') 318 | outfile.write(' } \n') 319 | outfile.write(' } \n') 320 | previous_key = key 321 | 322 | current_depth = key.rstrip('_').count('_') 323 | for my_backsclash in reversed(range(current_depth)): 324 | outfile.write(3 * my_backsclash * myspace + '} \n') 325 | #outfile.write('ParserOptions { \n') 326 | #outfile.write(' IgnoreUnprocessedNodes = Yes \n') 327 | #outfile.write('} \n') 328 | #if self.do_forces: 329 | # outfile.write('Analysis { \n') 330 | # outfile.write(' CalculateForces = Yes \n') 331 | # outfile.write('} \n') 332 | 333 | outfile.close() 334 | 335 | def set(self, **kwargs): 336 | changed_parameters = FileIOCalculator.set(self, **kwargs) 337 | if changed_parameters: 338 | self.reset() 339 | return changed_parameters 340 | 341 | def check_state(self, atoms): 342 | system_changes = FileIOCalculator.check_state(self, atoms) 343 | # Ignore unit cell for molecules: 344 | if not atoms.pbc.any() and 'cell' in system_changes: 345 | system_changes.remove('cell') 346 | if self.pcpot and self.pcpot.mmpositions is not None: 347 | system_changes.append('positions') 348 | # print('check !!!', system_changes) 349 | return system_changes 350 | 351 | def write_input(self, atoms, properties=None, system_changes=None): 352 | from ase.io import write 353 | # print("Calculated Properties: ...", properties) 354 | # if properties is not None: 355 | # if 'forces' in properties or 'stress' in properties: 356 | # self.do_forces = True 357 | self.do_forces = True 358 | FileIOCalculator.write_input( 359 | self, atoms, properties, system_changes) 360 | self.write_dftb_in(os.path.join(self.directory, 'dftb_in.hsd')) 361 | write(os.path.join(self.directory, self.geo_fname), atoms) 362 | # self.atoms is none until results are read out, 363 | # then it is set to the ones at writing input 364 | self.atoms_input = atoms 365 | self.atoms = None 366 | # jx: !!! 367 | if self.pcpot: 368 | self.pcpot.write_mmcharges('dftb_external_charges.dat') 369 | 370 | return 371 | 372 | def calculate(self, atoms=None, properties=['energy'], 373 | system_changes=all_changes): 374 | #print(self.command) 375 | # set threads 376 | os.environ['OMP_NUM_THREADS'] = self.num_threads 377 | 378 | Calculator.calculate(self, atoms, properties, system_changes) 379 | self.write_input(self.atoms, properties, system_changes) 380 | if self.command is None: 381 | raise CalculatorSetupError( 382 | 'Please set ${} environment variable ' 383 | .format('ASE_' + self.name.upper() + '_COMMAND') + 384 | 'or supply the command keyword') 385 | command = self.command 386 | if 'PREFIX' in command: 387 | command = command.replace('PREFIX', self.prefix) 388 | 389 | try: 390 | proc = subprocess.Popen(command, shell=True, cwd=self.directory) 391 | except OSError as err: 392 | # Actually this may never happen with shell=True, since 393 | # probably the shell launches successfully. But we soon want 394 | # to allow calling the subprocess directly, and then this 395 | # distinction (failed to launch vs failed to run) is useful. 396 | msg = 'Failed to execute "{}"'.format(command) 397 | raise EnvironmentError(msg) from err 398 | 399 | errorcode = proc.wait() 400 | 401 | # remove this env, avoid affecting other codes 402 | os.environ.pop('OMP_NUM_THREADS', None) 403 | 404 | if errorcode: 405 | path = os.path.abspath(self.directory) 406 | msg = ('Calculator "{}" failed with command "{}" failed in ' 407 | '{} with error code {}'.format(self.name, command, 408 | path, errorcode)) 409 | raise CalculationFailed(msg) 410 | 411 | # read dftb results 412 | self.read_results() 413 | 414 | # after correction, the energy should be binding energy in eV 415 | if self.correction_calculator: 416 | quip_atoms = self.atoms.copy() 417 | quip_atoms.set_calculator(self.correction_calculator) 418 | 419 | error_results = {} 420 | error_results['energy'] = quip_atoms.get_potential_energy() 421 | error_results['free_energy'] = quip_atoms.get_potential_energy( 422 | force_consistent=True 423 | ) 424 | error_results['forces'] = quip_atoms.get_forces() 425 | error_results['stress'] = quip_atoms.get_stress(voigt=True) 426 | 427 | # error predictions 428 | self.results['local_gap_variance'] = \ 429 | quip_atoms.calc.results['local_gap_variance'] 430 | self.results['gap_variance_gradient'] = \ 431 | quip_atoms.calc.results['gap_variance_gradient'] 432 | 433 | # add corrections 434 | symbols = quip_atoms.get_chemical_symbols() 435 | for sym in symbols: 436 | self.results['energy'] -= self.atomic_energies[sym] 437 | self.results['free_energy'] -= self.atomic_free_energies[sym] 438 | self.results['energy'] += error_results['energy'] 439 | self.results['free_energy'] += error_results['free_energy'] 440 | 441 | self.results['forces'] += error_results['forces'] 442 | 443 | self.results['stress'] += error_results['stress'] 444 | else: 445 | if self.binding_energy: 446 | symbols = self.atoms.get_chemical_symbols() 447 | for sym in symbols: 448 | self.results['energy'] -= self.atomic_energies[sym] 449 | self.results['free_energy'] -= self.atomic_free_energies[sym] 450 | 451 | return 452 | 453 | def read_results(self): 454 | """ all results are read from results.tag file 455 | It will be destroyed after it is read to avoid 456 | reading it once again after some runtime error """ 457 | 458 | myfile = open(os.path.join(self.directory, 'results.tag'), 'r') 459 | self.lines = myfile.readlines() 460 | myfile.close() 461 | 462 | # print('atoms before read', self.atoms) 463 | # print('atoms_input before read', self.atoms_input) 464 | 465 | self.atoms = self.atoms_input 466 | 467 | charges, energy, free_energy = self.read_charges_and_energy() 468 | if charges is not None: 469 | self.results['charges'] = charges 470 | 471 | self.results['energy'] = energy 472 | self.results['free_energy'] = free_energy 473 | 474 | if self.do_forces: 475 | forces = self.read_forces() 476 | self.results['forces'] = forces 477 | 478 | self.mmpositions = None 479 | 480 | # stress stuff begins 481 | sstring = 'stress' 482 | have_stress = False 483 | stress = list() 484 | for iline, line in enumerate(self.lines): 485 | if sstring in line: 486 | have_stress = True 487 | start = iline + 1 488 | end = start + 3 489 | for i in range(start, end): 490 | cell = [float(x) for x in self.lines[i].split()] 491 | stress.append(cell) 492 | if have_stress: 493 | stress = -np.array(stress) * Hartree / Bohr**3 494 | self.results['stress'] = stress.flat[[0, 4, 8, 5, 2, 1]] 495 | # stress stuff ends 496 | 497 | # TODO: these two seem wrong with DFTB+ master but compatible with 19.1 498 | # eigenvalues and fermi levels 499 | #fermi_levels = self.read_fermi_levels() 500 | #if fermi_levels is not None: 501 | # self.results['fermi_levels'] = fermi_levels 502 | # 503 | #eigenvalues = self.read_eigenvalues() 504 | #if eigenvalues is not None: 505 | # self.results['eigenvalues'] = eigenvalues 506 | 507 | # calculation was carried out with atoms written in write_input 508 | os.remove(os.path.join(self.directory, 'results.tag')) 509 | 510 | return 511 | 512 | def read_forces(self): 513 | #"""Read Forces from dftb output file (results.tag).""" 514 | """ 515 | Read Forces from dftb output file (detailed.out). 516 | It seems there is no information in results.tag when SCC is not converged. 517 | """ 518 | 519 | from ase.units import Hartree, Bohr 520 | 521 | myfile = open(os.path.join(self.directory, 'detailed.out'), 'r') 522 | self.lines = myfile.readlines() 523 | myfile.close() 524 | 525 | # Force line indexes 526 | for iline, line in enumerate(self.lines): 527 | fstring = 'Total Forces' 528 | if line.find(fstring) >= 0: 529 | index_force_begin = iline + 1 530 | index_force_end = iline + 1 + len(self.atoms) 531 | break 532 | 533 | gradients = [] 534 | for j in range(index_force_begin, index_force_end): 535 | word = self.lines[j].split() 536 | gradients.append([float(word[k]) for k in range(1, 4)]) 537 | 538 | return np.array(gradients) * Hartree / Bohr 539 | 540 | def read_charges_and_energy(self): 541 | """Get partial charges on atoms 542 | in case we cannot find charges they are set to None 543 | """ 544 | infile = open(os.path.join(self.directory, 'detailed.out'), 'r') 545 | lines = infile.readlines() 546 | infile.close() 547 | 548 | #for line in lines: 549 | # if line.strip().startswith('Total energy:'): 550 | # energy = float(line.split()[2]) * Hartree 551 | # break 552 | 553 | # for finite-temperature DFT, 0K energy is needed 554 | for line in lines: 555 | if line.strip().startswith('Extrapolated to 0:'): 556 | energy = float(line.split()[3]) * Hartree 557 | break 558 | 559 | # for hellman-feynman force, need force-related free energy 560 | for line in lines: 561 | if line.strip().startswith('Force related energy:'): 562 | free_energy = float(line.split()[3]) * Hartree 563 | break 564 | 565 | qm_charges = [] 566 | for n, line in enumerate(lines): 567 | if ('Atom' and 'Charge' in line): 568 | chargestart = n + 1 569 | break 570 | else: 571 | # print('Warning: did not find DFTB-charges') 572 | # print('This is ok if flag SCC=No') 573 | return None, energy 574 | 575 | lines1 = lines[chargestart:(chargestart + len(self.atoms))] 576 | for line in lines1: 577 | qm_charges.append(float(line.split()[-1])) 578 | 579 | return np.array(qm_charges), energy, free_energy 580 | 581 | def get_charges(self, atoms): 582 | """ Get the calculated charges 583 | this is inhereted to atoms object """ 584 | if 'charges' in self.results: 585 | return self.results['charges'] 586 | else: 587 | return None 588 | 589 | def read_eigenvalues(self): 590 | """ Read Eigenvalues from dftb output file (results.tag). 591 | Unfortunately, the order seems to be scrambled. """ 592 | # Eigenvalue line indexes 593 | index_eig_begin = None 594 | for iline, line in enumerate(self.lines): 595 | fstring = 'eigenvalues ' 596 | if line.find(fstring) >= 0: 597 | index_eig_begin = iline + 1 598 | line1 = line.replace(':', ',') 599 | ncol, nband, nkpt, nspin = map(int, line1.split(',')[-4:]) 600 | break 601 | else: 602 | return None 603 | 604 | # Take into account that the last row may lack 605 | # columns if nkpt * nspin * nband % ncol != 0 606 | nrow = int(np.ceil(nkpt * nspin * nband * 1. / ncol)) 607 | index_eig_end = index_eig_begin + nrow 608 | ncol_last = len(self.lines[index_eig_end - 1].split()) 609 | self.lines[index_eig_end - 1] += ' 0.0 ' * (ncol - ncol_last) 610 | 611 | eig = np.loadtxt(self.lines[index_eig_begin:index_eig_end]).flatten() 612 | eig *= Hartree 613 | N = nkpt * nband 614 | eigenvalues = [eig[i * N:(i + 1) * N].reshape((nkpt, nband)) 615 | for i in range(nspin)] 616 | 617 | return eigenvalues 618 | 619 | def read_fermi_levels(self): 620 | """ Read Fermi level(s) from dftb output file (results.tag). """ 621 | # Fermi level line indexes 622 | for iline, line in enumerate(self.lines): 623 | fstring = 'fermi_level ' 624 | if line.find(fstring) >= 0: 625 | index_fermi = iline + 1 626 | break 627 | else: 628 | return None 629 | 630 | fermi_levels = [] 631 | words = self.lines[index_fermi].split() 632 | assert len(words) == 2 633 | 634 | for word in words: 635 | e = float(word) 636 | if abs(e) > 1e-8: 637 | # Without spin polarization, one of the Fermi 638 | # levels is equal to 0.000000000000000E+000 639 | fermi_levels.append(e) 640 | 641 | return np.array(fermi_levels) * Hartree 642 | 643 | def get_ibz_k_points(self): 644 | return self.kpts_coord.copy() 645 | 646 | def get_number_of_spins(self): 647 | return self.nspin 648 | 649 | def get_eigenvalues(self, kpt=0, spin=0): 650 | return self.results['eigenvalues'][spin][kpt].copy() 651 | 652 | def get_fermi_levels(self): 653 | return self.results['fermi_levels'].copy() 654 | 655 | def get_fermi_level(self): 656 | return max(self.get_fermi_levels()) 657 | 658 | def embed(self, mmcharges=None, directory='./'): 659 | """Embed atoms in point-charges (mmcharges) 660 | """ 661 | self.pcpot = PointChargePotential(mmcharges, self.directory) 662 | return self.pcpot 663 | 664 | # for correction 665 | def update_atomic_energies(self, atomic_energies=ATOMIC_ENERGIES): 666 | """""" 667 | self.atomic_energies = ATOMIC_ENERGIES['energy'] 668 | self.atomic_free_energies = ATOMIC_ENERGIES['free_energy'] 669 | 670 | return 671 | 672 | 673 | class PointChargePotential: 674 | def __init__(self, mmcharges, directory='./'): 675 | """Point-charge potential for DFTB+. 676 | """ 677 | self.mmcharges = mmcharges 678 | self.directory = directory 679 | self.mmpositions = None 680 | self.mmforces = None 681 | 682 | def set_positions(self, mmpositions): 683 | self.mmpositions = mmpositions 684 | 685 | def set_charges(self, mmcharges): 686 | self.mmcharges = mmcharges 687 | 688 | def write_mmcharges(self, filename='dftb_external_charges.dat'): 689 | """ mok all 690 | write external charges as monopoles for dftb+. 691 | 692 | """ 693 | if self.mmcharges is None: 694 | print("DFTB: Warning: not writing exernal charges ") 695 | return 696 | charge_file = open(os.path.join(self.directory, filename), 'w') 697 | for [pos, charge] in zip(self.mmpositions, self.mmcharges): 698 | [x, y, z] = pos 699 | charge_file.write('%12.6f %12.6f %12.6f %12.6f \n' 700 | % (x, y, z, charge)) 701 | charge_file.close() 702 | 703 | def get_forces(self, calc, get_forces=True): 704 | """ returns forces on point charges if the flag get_forces=True """ 705 | if get_forces: 706 | return self.read_forces_on_pointcharges() 707 | else: 708 | return np.zeros_like(self.mmpositions) 709 | 710 | def read_forces_on_pointcharges(self): 711 | """Read Forces from dftb output file (results.tag).""" 712 | from ase.units import Hartree, Bohr 713 | infile = open(os.path.join(self.directory, 'detailed.out'), 'r') 714 | lines = infile.readlines() 715 | infile.close() 716 | 717 | external_forces = [] 718 | for n, line in enumerate(lines): 719 | if ('Forces on external charges' in line): 720 | chargestart = n + 1 721 | break 722 | else: 723 | raise RuntimeError( 724 | 'Problem in reading forces on MM external-charges') 725 | lines1 = lines[chargestart:(chargestart + len(self.mmcharges))] 726 | for line in lines1: 727 | external_forces.append( 728 | [float(i) for i in line.split()]) 729 | return np.array(external_forces) * Hartree / Bohr 730 | 731 | 732 | 733 | def read_max_angular_momentum(path): 734 | """Read maximum angular momentum from .skf file. 735 | 736 | See dftb.org for A detailed description of the Slater-Koster file format. 737 | """ 738 | with open(path, 'r') as fd: 739 | line = fd.readline() 740 | if line[0] == '@': 741 | # Extended format 742 | fd.readline() 743 | l = 3 744 | pos = 9 745 | else: 746 | # Simple format: 747 | l = 2 748 | pos = 7 749 | 750 | # Sometimes there ar commas, sometimes not: 751 | line = fd.readline().replace(',', ' ') 752 | 753 | occs = [float(f) for f in line.split()[pos:pos + l + 1]] 754 | for f in occs: 755 | if f > 0.0: 756 | return l 757 | l -= 1 758 | -------------------------------------------------------------------------------- /AccMetaD/xemt.py: -------------------------------------------------------------------------------- 1 | """ 2 | This module defines an ASE interface to EMT with Delta Machine Learning. 3 | """ 4 | 5 | import os 6 | import time 7 | import subprocess 8 | import warnings 9 | 10 | import numpy as np 11 | 12 | from ase.io import read, write 13 | 14 | from ase.calculators.calculator import ( 15 | all_changes, 16 | Calculator, 17 | FileIOCalculator 18 | ) 19 | 20 | from ase.calculators.emt import EMT 21 | 22 | # extended-ase 23 | from .xquip import XQuip 24 | 25 | 26 | ATOMIC_ENERGIES = { 27 | 'energy': { 28 | 'C': 3.5, 29 | 'O': 4.6, 30 | 'Pt': 5.85, 31 | }, 32 | 'free_energy': { 33 | 'C': 3.5, 34 | 'O': 4.6, 35 | 'Pt': 5.85, 36 | }, 37 | } 38 | 39 | 40 | class XEMT(FileIOCalculator): 41 | """ A Gaussian-Process corrected EMT calculator... (delta machine learning) 42 | """ 43 | 44 | #implemented_properties = ['energy', 'energies', 'forces', 'stress'] 45 | implemented_properties = ['energy', 'forces', 'stress'] 46 | 47 | def __init__( 48 | self, 49 | correction_params = None, 50 | atomicEnergies: dict = {}, 51 | **kwargs 52 | ): 53 | """Construct a D-EMT calculator. 54 | 55 | """ 56 | 57 | FileIOCalculator.__init__( 58 | self, 59 | **kwargs 60 | ) 61 | 62 | # set GP potential path 63 | self.correction_calculator = None 64 | if correction_params: 65 | params = correction_params.copy() # avoid destroy origin 66 | # get params 67 | correction_command = params.pop('correction_command', None) 68 | param_filename = params.pop('param_filename', None) 69 | # check params 70 | warnings.warn( 71 | 'You are using EMT with correction!', RuntimeWarning 72 | ) 73 | if correction_command: 74 | pass 75 | else: 76 | raise ValueError('No correction_command') 77 | 78 | if param_filename: 79 | if os.path.exists(param_filename): 80 | param_filename = os.path.abspath(param_filename) 81 | else: 82 | raise ValueError('%s not exists.' %param_filename) 83 | else: 84 | raise ValueError('No param_filename') 85 | 86 | # generate calculator 87 | self.correction_calculator = XQuip( 88 | directory = self.directory, 89 | command = correction_command, 90 | param_filename = param_filename, 91 | **params, 92 | ) 93 | else: 94 | pass 95 | 96 | # set atomic energies 97 | self.update_atomic_energies() 98 | 99 | return 100 | 101 | def calculate(self, atoms=None, properties=['energy'], 102 | system_changes=all_changes): 103 | # directories are created automatically. 104 | Calculator.calculate(self, atoms, properties, system_changes) 105 | 106 | FileIOCalculator.write_input(self, atoms, properties, system_changes) 107 | 108 | # EMT 109 | #start_time = time.time() 110 | emtAtoms = self.atoms.copy() 111 | emtAtoms.set_calculator(EMT()) 112 | #end_time = time.time() 113 | #print( 114 | # '%s cost time: %.3f s' % ('emt in xemt', end_time-start_time) 115 | #) 116 | 117 | self.results['energy'] = emtAtoms.get_potential_energy() 118 | self.results['free_energy'] = emtAtoms.get_potential_energy(force_consistent=True) 119 | self.results['forces'] = emtAtoms.get_forces() 120 | self.results['stress'] = emtAtoms.get_stress(voigt=True) 121 | 122 | # after correction, the energy should be binding energy in eV 123 | if self.correction_calculator: 124 | quipAtoms = self.atoms.copy() 125 | quipAtoms.set_calculator(self.correction_calculator) 126 | 127 | error_results = {} 128 | error_results['energy'] = quipAtoms.get_potential_energy() 129 | error_results['free_energy'] = quipAtoms.get_potential_energy( 130 | force_consistent=True 131 | ) 132 | error_results['forces'] = quipAtoms.get_forces() 133 | error_results['stress'] = quipAtoms.get_stress(voigt=True) 134 | 135 | # error predictions 136 | self.results['local_gap_variance'] = \ 137 | quipAtoms.calc.results['local_gap_variance'] 138 | self.results['gap_variance_gradient'] = \ 139 | quipAtoms.calc.results['gap_variance_gradient'] 140 | 141 | # add corrections 142 | symbols = self.atoms.get_chemical_symbols() 143 | for sym in symbols: 144 | self.results['energy'] -= self.atomic_energies[sym] 145 | self.results['free_energy'] -= self.atomic_free_energies[sym] 146 | self.results['energy'] += error_results['energy'] 147 | self.results['free_energy'] += error_results['free_energy'] 148 | 149 | self.results['forces'] += error_results['forces'] 150 | 151 | self.results['stress'] += error_results['stress'] 152 | else: 153 | symbols = self.atoms.get_chemical_symbols() 154 | for sym in symbols: 155 | self.results['energy'] -= self.atomic_energies[sym] 156 | self.results['free_energy'] -= self.atomic_free_energies[sym] 157 | 158 | return 159 | 160 | def update_atomic_energies(self, atomic_energies=ATOMIC_ENERGIES): 161 | """""" 162 | self.atomic_energies = ATOMIC_ENERGIES['energy'] 163 | self.atomic_free_energies = ATOMIC_ENERGIES['free_energy'] 164 | 165 | return 166 | 167 | if __name__ == '__main__': 168 | from ase import Atoms 169 | # test 170 | print('USE_COMMAND_QUIP ', USE_COMMAND_QUIP) 171 | atoms = Atoms( 172 | 'Pt', 173 | positions=[(0.,0.,0.)], 174 | cell = [[10.,0.,0.],[0.,10.,0.],[0.,0.,10.]] 175 | ) 176 | atoms.set_calculator(XEMT()) 177 | print(atoms.get_potential_energy()) 178 | print(atoms.get_potential_energy(force_consistent=True)) 179 | 180 | -------------------------------------------------------------------------------- /AccMetaD/xquip.py: -------------------------------------------------------------------------------- 1 | import os 2 | import warnings 3 | import subprocess 4 | 5 | import numpy as np 6 | 7 | from ase.calculators.calculator import (Calculator, FileIOCalculator, all_changes) 8 | from ase.units import Hartree, Bohr 9 | 10 | # 11 | from ase.io import write, read 12 | 13 | 14 | USE_COMMAND_QUIP = False 15 | try: 16 | from quippy.potential import Potential 17 | except ImportError: 18 | USE_COMMAND_QUIP = True 19 | 20 | if USE_COMMAND_QUIP: 21 | warnings.warn( 22 | 'You will directly call quip in shell to calculate GP.', RuntimeWarning 23 | ) 24 | else: 25 | warnings.warn( 26 | 'You are using Potential in quippy module.', RuntimeWarning 27 | ) 28 | 29 | 30 | class XQuip(FileIOCalculator): 31 | """""" 32 | 33 | implemented_properties = ['energy', 'free_energy', 'forces', 'stress'] 34 | 35 | default_parameters = {'E': True, 'F': True} 36 | 37 | def __init__( 38 | self, 39 | restart=None, 40 | ignore_bad_restart_file=False, 41 | atoms=None, 42 | command = None, 43 | param_filename = None, 44 | calc_args = None, # 'local_gap_variance' 45 | quip_xyz_name = 'quip', 46 | **kwargs 47 | ): 48 | 49 | self.atoms = None 50 | 51 | FileIOCalculator.__init__( 52 | self, restart, ignore_bad_restart_file, 53 | atoms, 54 | **kwargs 55 | ) 56 | # TODO: sth wrong with self.directory 57 | 58 | if not os.path.exists(param_filename): 59 | raise ValueError('File Not Found %s' %(param_filename)) 60 | self.param_filename = param_filename 61 | 62 | self.calc_args = calc_args 63 | if USE_COMMAND_QUIP: 64 | self.quip_command = command 65 | self.in_xyz = os.path.join(self.directory, quip_xyz_name+'_in.xyz') 66 | self.out_xyz = os.path.join(self.directory, quip_xyz_name+'_out.xyz') 67 | else: 68 | # TODO: check calc_args 69 | self.quip_calculator = Potential( 70 | param_filename = param_filename, 71 | calc_args = calc_args 72 | ) 73 | 74 | return 75 | 76 | def calculate(self, atoms=None, properties=['energy'], 77 | system_changes=all_changes): 78 | Calculator.calculate(self, atoms, properties, system_changes) 79 | 80 | self.results = {} 81 | if USE_COMMAND_QUIP: 82 | atoms = self.call_quip() 83 | self.results = {} 84 | self.results['energy'] = atoms.get_potential_energy() 85 | #self.results['free_energy'] = atoms.get_potential_energy(force_consistent=True) 86 | # TODO: quip not return free energy 87 | self.results['free_energy'] = atoms.get_potential_energy() 88 | 89 | self.results['forces'] = atoms.arrays['force'] 90 | stress = -atoms.info['virial'].copy() / atoms.get_volume() 91 | # convert to 6-element array in Voigt order 92 | self.results['stress'] = np.array([ 93 | stress[0, 0], stress[1, 1], stress[2, 2], 94 | stress[1, 2], stress[0, 2], stress[0, 1] 95 | ]) 96 | else: 97 | atoms = self.atoms.copy() 98 | atoms.set_calculator(self.quip_calculator) 99 | 100 | self.results['energy'] = atoms.get_potential_energy() 101 | self.results['free_energy'] = atoms.get_potential_energy(force_consistent=True) 102 | self.results['forces'] = atoms.get_forces() 103 | self.results['stress'] = atoms.get_stress(voigt=True) 104 | 105 | if self.calc_args == 'local_gap_variance': 106 | self.results['local_gap_variance'] = \ 107 | atoms.arrays['local_gap_variance'] 108 | self.results['gap_variance_gradient'] = \ 109 | atoms.arrays['gap_variance_gradient'] 110 | 111 | return 112 | 113 | #TODO: check calc_args 114 | def call_quip(self): 115 | """""" 116 | # remove old files 117 | if os.path.exists(self.in_xyz): 118 | os.remove(self.in_xyz) 119 | 120 | if os.path.exists(self.out_xyz): 121 | os.remove(self.out_xyz) 122 | 123 | # write input 124 | write(self.in_xyz, self.atoms.copy()) # avoid previous results 125 | 126 | # calculate 127 | command = ( 128 | "%s" %self.quip_command + 129 | " E F V" + # energy force virial 130 | " atoms_filename=%s" %(os.path.basename(self.in_xyz)) + 131 | " param_filename=%s" %(self.param_filename) + 132 | " calc_args=\"%s\"" %self.calc_args + 133 | " |" + 134 | " grep AT | sed 's/AT//' > %s" %(os.path.basename(self.out_xyz)) 135 | ) 136 | 137 | proc = subprocess.Popen(command, shell=True, cwd=self.directory) 138 | 139 | errorcode = proc.wait() 140 | if errorcode: 141 | path = os.path.abspath(workDirPath) 142 | msg = ('Failed with command "{}" failed in ' 143 | '{} with error code {}'.format(command, path, errorcode)) 144 | 145 | raise ValueError(msg) 146 | 147 | quip_atoms = read(self.out_xyz) 148 | 149 | os.remove(self.in_xyz) 150 | os.remove(self.in_xyz+'.idx') 151 | os.remove(self.out_xyz) 152 | 153 | return quip_atoms 154 | 155 | 156 | if __name__ == '__main__': 157 | atoms = read('test.xyz') 158 | calc = QuipGap() 159 | atoms.set_calculator(calc) 160 | print(atoms) 161 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Accelerating Metadynamics-Based Free-Energy Calculations with Adaptive Machine Learning Potentials 2 | 3 | This repository contains codes for paper [Xu, J.; Cao, X.-M.; Hu, P. JCTC, 2021.](https://pubs.acs.org/doi/10.1021/acs.jctc.1c00261). 4 | 5 | This package aims to accelerate metadynamics (MetaD) in heterogeneous reactions using adaptive machine learning potentials (AMLP) that maintains *ab initio* accuracy. 6 | 7 | ## Installation 8 | 9 | Install the external codes, prepare the python environment and add `AccMetaD` to `PYTHONPATH`. 10 | 11 | Miniconda is recommaned to configure environment. 12 | 13 | ### External Codes 14 | 15 | 1. VASP 5.4.1 16 | 2. DFTB+ 20.1 17 | 3. QUIP with GAP 18 | 19 | ### Python Packages 20 | 21 | 1. ase 3.19.1 22 | 2. plumed 2.6.2 23 | 24 | ### Notes 25 | 26 | 1. Other DFT codes can be utilised as well, which can be accessed by the ase interface. 27 | 2. Units in dynamics modules have been changes in ase 3.21.0. Change timestep and temperature accordingly if using new version of ase. 28 | 29 | ## Usage 30 | 31 | ### Introduction 32 | Each job contains at least five input files. 33 | 34 | `*.xyz` is the structure. 35 | 36 | `plumed-*.dat` are inputfiles for plumed. 37 | 38 | `inputs.py` contains DFT, DFTB and GAP calculation parameters. 39 | 40 | `run.py` contains AMLP-MetaD settings. 41 | 42 | `acc_meta.slurm` is the job script that sets environment variables. 43 | 44 | ### Examples 45 | 46 | There are four examples attached. 47 | 48 | CO on Pt13 cluster using GAP and DFTB-GAP. 49 | 50 | CO on Pt(111) surface using GAP and DFTB-GAP. 51 | 52 | -------------------------------------------------------------------------------- /examples/CO-PtClus13/dftb-gap/Pt13-CO.xyz: -------------------------------------------------------------------------------- 1 | 15 2 | Lattice="30.0 0.0 0.0 0.0 30.0 0.0 0.0 0.0 30.0" Properties=species:S:1:pos:R:3 pbc="T T T" 3 | C 14.85506202 15.09383556 19.50000000 4 | O 14.85506202 15.09383556 20.70000000 5 | Pt 15.00000000 15.00000000 15.00000000 6 | Pt 17.33675000 15.04100000 16.18250000 7 | Pt 12.67050000 14.98175000 13.80625000 8 | Pt 15.00000000 15.00000000 17.62575000 9 | Pt 15.67550000 17.23800000 16.20600000 10 | Pt 16.86500000 16.44725000 13.86275000 11 | Pt 16.93750000 13.70600000 13.81125000 12 | Pt 15.76575000 12.78325000 16.13450000 13 | Pt 15.01650000 15.04550000 12.37125000 14 | Pt 14.33475000 12.78350000 13.77675000 15 | Pt 13.13800000 13.57425000 16.13675000 16 | Pt 13.07450000 16.32100000 16.18050000 17 | Pt 14.24225000 17.23175000 13.86225000 18 | -------------------------------------------------------------------------------- /examples/CO-PtClus13/dftb-gap/acc_meta.slurm: -------------------------------------------------------------------------------- 1 | #!/bin/bash -l 2 | #SBATCH --partition=k2-hipri # queue 3 | #SBATCH --job-name=acc_meta # Job name 4 | #SBATCH --ntasks=32 # Number of cores 5 | #SBATCH --time=3:00:00 # Time limit hrs:min:sec 6 | #SBATCH --output=output.txt # Standard output and error log 7 | #SBATCH --error=error.txt # Standard output and error log 8 | 9 | source ~/envs/source_quip.sh 10 | 11 | export DFTB_COMMAND="/mnt/scratch/chemistry-apps/dkb01416/dftbplus/installed/20.1/gnu-6.4.0/somp/bin/dftb+ > dftb.out" 12 | export DFTB_SLAKO="/users/40247882/repository/DataBase/skf/parameterisation/PtCO/" 13 | 14 | export VASP_COMMAND="mpirun -n 32 /mnt/scratch/chemistry-apps/dkb01416/vasp/installed/intel-2016/5.4.4/vasp_std" 15 | export VASP_PP_PATH="/mnt/scratch/chemistry-apps/dkb01416/vasp/PseudoPotential" 16 | 17 | export QUIP_COMMAND="quip" 18 | export GAPFIT_EXEC="gap_fit" 19 | 20 | export PYTHONPATH="$PYTHONPATH:/users/40247882/repository/accelerate-metadynamics" 21 | 22 | echo `date "+%Y-%m-%d %H:%M:%S"` `pwd` >> $HOME/submitted 23 | python -u ./run.py 2>&1 > acc.out 24 | echo `date "+%Y-%m-%d %H:%M:%S"` `pwd` >> $HOME/finished 25 | -------------------------------------------------------------------------------- /examples/CO-PtClus13/dftb-gap/inputs.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | import os 5 | # ===== DFTB ===== 6 | DFTB_COMMAND = os.environ['DFTB_COMMAND'] 7 | DFTB_SLAKO = os.environ['DFTB_SLAKO'] 8 | 9 | MAX_ANG_MOM = {'C': 'p', 'O': 'p', 'Pt': 'd'} 10 | 11 | basic_input_parameters = dict( 12 | # Hamiltonian 13 | Hamiltonian_SCC = 'Yes', 14 | Hamiltonian_SCCTolerance = '1.0E-5', 15 | Hamiltonian_MaxSCCIterations = '180', 16 | Hamiltonian_Mixer_ = 'Broyden', 17 | Hamiltonian_Mixer_MixingParameter = '0.2', 18 | # Filling 19 | Hamiltonian_Filling_ = 'MethfesselPaxton', 20 | Hamiltonian_Filling_Order = '1', 21 | Hamiltonian_Filling_Temperature = '0.00735', 22 | # force 23 | Hamiltonian_Differentiation_ = 'FiniteDiff', 24 | Hamiltonian_Differentiation_Delta = '0.001', 25 | Hamiltonian_ForceEvaluation = 'traditional', 26 | # Options 27 | Options_ = ' ', 28 | Options_WriteResultsTag = 'Yes', 29 | # Analysis 30 | Analysis_ = ' ', 31 | Analysis_CalculateForces = 'Yes', 32 | # ParseOptions 33 | ParserOptions_ = ' ', 34 | ParserOptions_ParserVersion = '7', 35 | # Parallel 36 | Parallel_ = ' ', 37 | #Parallel_Groups = '2', # MPI 38 | Parallel_UseOmpThreads = 'Yes', 39 | ) 40 | 41 | def generate_calculator( 42 | atoms, 43 | run_nsteps = 0, 44 | pure_elec = False, 45 | cell_opt = False 46 | ): 47 | # check elements 48 | symbols = atoms.get_chemical_symbols() 49 | elements = list(set(symbols)) 50 | nelements = len(elements) 51 | 52 | # ===== Initialize Parameters 53 | input_parameters = basic_input_parameters.copy() 54 | 55 | # ===== Element Related 56 | # angular 57 | input_parameters.update({'Hamiltonian_MaxAngularMomentum_': ''}) 58 | for elm in elements: 59 | input_parameters.update( 60 | {'Hamiltonian_MaxAngularMomentum_%s'%elm: '\"%s\"' %MAX_ANG_MOM[elm]}) 61 | 62 | # no rep 63 | if pure_elec: 64 | input_parameters.update({'Hamiltonian_PolynomialRepulsive_': ''}) 65 | 66 | two_body = [] 67 | for e1 in range(nelements): 68 | for e2 in range(nelements): 69 | two_body.append((e1,e2)) 70 | 71 | for pair in two_body: 72 | elm1, elm2 = elements[pair[0]], elements[pair[1]] 73 | input_parameters.update({'Hamiltonian_PolynomialRepulsive_%s-%s' \ 74 | %(elm1,elm2): 'Yes'}) 75 | 76 | #print(input_parameters) 77 | # ===== KPOINTS 78 | #cur_kpts = (6,6,6) 79 | #if len(atoms) < 6: # Pt bulk, O2, CO, CO2 80 | # cur_kpts = (6,6,6) 81 | #elif len(atoms) < 30: # surf, adsorption, reaction 82 | # cur_kpts = (4,4,1) 83 | #else: 84 | # raise ValueError('Wrong KPOINTS!!!') 85 | 86 | # ===== OPTIMIZATION / Molecular Dynamics 87 | # Driver 88 | input_parameters.update(Driver_='ConjugateGradient') 89 | input_parameters.update(Driver_MaxForceComponent='0.0015') 90 | input_parameters.update(Driver_MaxAtomStep= '0.2') 91 | input_parameters.update(Driver_MaxSteps=run_nsteps) 92 | input_parameters.update(Driver_AppendGeometries='Yes') 93 | 94 | if cell_opt: 95 | input_parameters.update(Driver_LatticeOpt = 'Yes') 96 | input_parameters.update(Driver_FixAngles = 'Yes') 97 | input_parameters.update(Driver_FixLengths = '{ No No No }') 98 | input_parameters.update(Driver_MaxLatticeStep = '0.1') 99 | 100 | return input_parameters 101 | 102 | 103 | # ===== VASP ===== 104 | VASP_WORKDIR = './vasp-worker' 105 | VASP_COMMAND = os.environ['VASP_COMMAND'] 106 | 107 | VASP_PARAMS = dict( 108 | # INCAR 109 | system='Pt13-CO', nwrite=2, istart=0, 110 | lcharg = False, lwave= False, 111 | npar = 4, 112 | xc='PBE', encut=400, prec='Normal', ediff=1E-5, nelm=180, nelmin=6, 113 | ispin=2, lorbit = 10, 114 | ismear=1, sigma = 0.2, 115 | algo = 'Fast', lreal = 'Auto', isym = 0, 116 | nsw=0, 117 | # KPOINTS 118 | kpts=(1,1,1), gamma=True, 119 | ) 120 | 121 | # ===== QUIP and GAP ===== 122 | QUIP_COMMAND = os.environ['QUIP_COMMAND'] 123 | GAPFIT_EXEC = os.environ['GAPFIT_EXEC'] 124 | 125 | GAPFIT_XMLNAME = 'GAP.xml' 126 | ENERGY_SIGMA = 0.008 127 | FORCES_SIGMA = 0.04 128 | VIRIAL_SIGMA = 0.04 129 | HESSIAN_SIGMA = 0.0 130 | 131 | GAPFIT_COMMAND = ( 132 | GAPFIT_EXEC + 133 | " energy_parameter_name=free_energy" + 134 | " force_parameter_name=forces" + 135 | " virial_parameter_name=virial" + 136 | " do_copy_at_file=F" + 137 | " sparse_separate_file=F" + 138 | " gp_file=%s" %GAPFIT_XMLNAME + 139 | " at_file=./train.xyz" + 140 | " default_sigma={%f %f %f %f}" %(ENERGY_SIGMA, FORCES_SIGMA, VIRIAL_SIGMA, HESSIAN_SIGMA) + 141 | " e0={C:0.0:O:0.0:Pt:0.0}" + 142 | " gap={" + 143 | " distance_2b cutoff=5.000000 Z1=6 Z2=8 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 144 | " distance_2b cutoff=5.000000 Z1=6 Z2=78 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 145 | " distance_2b cutoff=5.000000 Z1=8 Z2=78 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 146 | " distance_2b cutoff=5.000000 Z1=78 Z2=78 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 147 | " {soap cutoff=5.000000 covariance_type=dot_product delta=0.20000 sparse_method=cur_points n_sparse=1200 zeta=2 l_max=6 n_max=12 atom_sigma=0.5} " + 148 | " }" 149 | ) 150 | 151 | -------------------------------------------------------------------------------- /examples/CO-PtClus13/dftb-gap/plumed-1.dat: -------------------------------------------------------------------------------- 1 | RESTART 2 | 3 | # 4 | FLUSH STRIDE=1 5 | 6 | # auxiliary 7 | 8 | # C-Pt (surf) distance 9 | dis1: DISTANCE ATOMS=1,6 10 | 11 | # C - Pt(surf) - Pt(centre) 12 | ang1: ANGLE ATOMS=1,6,3 13 | 14 | # coordination number 15 | #cn1: COORDINATION GROUPA=1 GROUPB=3-15 NN=18 MM=36 R_0=0.24 16 | 17 | res1: RESTRAINT ARG=ang1 AT=pi KAPPA=10000.0 18 | 19 | # metadyn 20 | METAD ... 21 | LABEL=metad 22 | ARG=dis1 23 | PACE=10 24 | HEIGHT=2.5 25 | SIGMA=0.02 26 | FILE=hills-1 27 | ... METAD 28 | 29 | # set metaMD region 30 | lw0: LOWER_WALLS ARG=dis1 AT=0.11 KAPPA=10000.0 31 | uw0: UPPER_WALLS ARG=dis1 AT=0.50 KAPPA=10000.0 32 | 33 | #lw1: LOWER_WALLS ARG=cn1 AT=0.0 KAPPA=10000.0 34 | #uw1: UPPER_WALLS ARG=cn1 AT=4.2 KAPPA=10000.0 35 | 36 | PRINT STRIDE=1 ARG=dis1,lw0.bias,uw0.bias,ang1,res1.bias,metad.bias FILE=bias-1 37 | -------------------------------------------------------------------------------- /examples/CO-PtClus13/dftb-gap/plumed-2.dat: -------------------------------------------------------------------------------- 1 | RESTART 2 | 3 | # 4 | FLUSH STRIDE=1 5 | 6 | # auxiliary 7 | 8 | # C-Pt (surf) distance 9 | dis1: DISTANCE ATOMS=1,6 10 | 11 | # C - Pt(surf) - Pt(centre) 12 | ang1: ANGLE ATOMS=1,6,3 13 | 14 | # coordination number 15 | #cn1: COORDINATION GROUPA=1 GROUPB=3-15 NN=18 MM=36 R_0=0.24 16 | 17 | res1: RESTRAINT ARG=ang1 AT=pi KAPPA=10000.0 18 | 19 | # metadyn 20 | METAD ... 21 | LABEL=metad 22 | ARG=dis1 23 | PACE=10 24 | HEIGHT=1.0 25 | SIGMA=0.01 26 | FILE=hills-2 27 | ... METAD 28 | 29 | # set metaMD region 30 | lw0: LOWER_WALLS ARG=dis1 AT=0.11 KAPPA=10000.0 31 | uw0: UPPER_WALLS ARG=dis1 AT=0.50 KAPPA=10000.0 32 | 33 | #lw1: LOWER_WALLS ARG=cn1 AT=0.0 KAPPA=10000.0 34 | #uw1: UPPER_WALLS ARG=cn1 AT=4.2 KAPPA=10000.0 35 | 36 | PRINT STRIDE=1 ARG=dis1,lw0.bias,uw0.bias,ang1,res1.bias,metad.bias FILE=bias-2 37 | -------------------------------------------------------------------------------- /examples/CO-PtClus13/dftb-gap/run.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | from ase import units 5 | 6 | from ase.io import read, write 7 | from ase.calculators.vasp import Vasp2 8 | 9 | from ase.constraints import FixAtoms 10 | 11 | from ase.md.velocitydistribution import MaxwellBoltzmannDistribution 12 | 13 | from AccMetaD.nosehoover import NoseHoover 14 | from AccMetaD.md_utils import force_temperature 15 | from AccMetaD.MetaAMLP import MetaAMLP 16 | from AccMetaD.xquip import XQuip 17 | from AccMetaD.xdftb import XDFTB 18 | 19 | if __name__ == '__main__': 20 | import inputs # all parameters 21 | 22 | # ===== system ===== 23 | atoms = read('./Pt13-CO.xyz') 24 | 25 | cons = FixAtoms(indices=[2]) 26 | atoms.set_constraint(cons) 27 | 28 | # - basic 29 | dftb_shared_params = inputs.generate_calculator(atoms) 30 | dftb_shared_params.update(command = inputs.DFTB_COMMAND) 31 | dftb_shared_params.update(num_threads = 20) # OMP_THREADS 32 | dftb_shared_params.update(slako_dir = inputs.DFTB_SLAKO) 33 | dftb_shared_params.update(kpts = (1,1,1)) 34 | 35 | dftb_shared_params.update(binding_energy = True) 36 | dftb_shared_params.update( 37 | atomic_energies = dict( 38 | energy = {'C': -38.2611, 'O': -84.4551, 'Pt': -69.2691}, 39 | free_energy = {'C': -38.4153, 'O': -84.6094, 'Pt': -69.2697} 40 | ) 41 | ) 42 | 43 | dftb_params = dftb_shared_params.copy() 44 | dftb_params.update(directory = './dftb-worker') 45 | 46 | # - correction 47 | correction_params = dict( 48 | correction_command = inputs.QUIP_COMMAND, 49 | param_filename = './GAP.xml', 50 | calc_args = 'local_gap_variance', 51 | ) 52 | 53 | xdftb_params = dftb_shared_params.copy() 54 | xdftb_params.update( 55 | dict( 56 | directory = './xdftb-worker', 57 | correction_params = correction_params 58 | ) 59 | ) 60 | 61 | # - reference 62 | vasp_params = inputs.VASP_PARAMS.copy() 63 | vasp_params.update( 64 | dict( 65 | command=inputs.VASP_COMMAND, 66 | directory=inputs.VASP_WORKDIR, 67 | ) 68 | ) 69 | 70 | # - calculators 71 | calculators = { 72 | 'basic': XDFTB, 73 | 'corrected': XDFTB, 74 | 'reference': Vasp2, 75 | } 76 | 77 | calcParams ={ 78 | 'basic': dftb_params, 79 | 'corrected': xdftb_params, 80 | 'reference': vasp_params, 81 | } 82 | 83 | # ===== molecular dynamics ===== 84 | timestep = 2.0 * units.fs 85 | temperature = 300 # in Kelvin 86 | 87 | MaxwellBoltzmannDistribution(atoms, temperature*units.kB) 88 | force_temperature(atoms, temperature) 89 | 90 | trainer = MetaAMLP( 91 | atoms = atoms, 92 | constraints = cons, 93 | calculators = calculators, 94 | calcParams = calcParams, 95 | gapfitCommand = inputs.GAPFIT_COMMAND, 96 | # md stages 97 | mdEngines = [NoseHoover, NoseHoover], 98 | mdParams = [ 99 | dict( 100 | nsteps = 0, 101 | plumedInput = 'plumed-1.dat', 102 | nvt_q = 334., temperature = temperature*units.kB 103 | ), 104 | dict( 105 | nsteps = 20000, 106 | init_atoms = atoms.copy(), 107 | plumedInput = 'plumed-2.dat', 108 | nvt_q = 334., temperature = temperature*units.kB 109 | ) 110 | ], 111 | timestep = timestep, # fixed timestep 112 | # sample details 113 | maxSteps = 60000, 114 | minSamples = 1, 115 | sampleInterval = 2, 116 | tolerances = { 117 | 'energy': 1000, 118 | 'forces': 0.04, 119 | 'force_percent': 0.20, 120 | 'force_threhold': 0.02 121 | }, 122 | retrain_criteria = { 123 | 'min_interval': 10, 'max_interval': 1000, 'new_samples': 5 124 | }, 125 | restart = False, 126 | ) 127 | 128 | trainer.run() 129 | -------------------------------------------------------------------------------- /examples/CO-PtClus13/gap/Pt13-CO.xyz: -------------------------------------------------------------------------------- 1 | 15 2 | Lattice="30.0 0.0 0.0 0.0 30.0 0.0 0.0 0.0 30.0" Properties=species:S:1:pos:R:3 pbc="T T T" 3 | C 14.85506202 15.09383556 19.50000000 4 | O 14.85506202 15.09383556 20.70000000 5 | Pt 15.00000000 15.00000000 15.00000000 6 | Pt 17.33675000 15.04100000 16.18250000 7 | Pt 12.67050000 14.98175000 13.80625000 8 | Pt 15.00000000 15.00000000 17.62575000 9 | Pt 15.67550000 17.23800000 16.20600000 10 | Pt 16.86500000 16.44725000 13.86275000 11 | Pt 16.93750000 13.70600000 13.81125000 12 | Pt 15.76575000 12.78325000 16.13450000 13 | Pt 15.01650000 15.04550000 12.37125000 14 | Pt 14.33475000 12.78350000 13.77675000 15 | Pt 13.13800000 13.57425000 16.13675000 16 | Pt 13.07450000 16.32100000 16.18050000 17 | Pt 14.24225000 17.23175000 13.86225000 18 | -------------------------------------------------------------------------------- /examples/CO-PtClus13/gap/acc_meta.slurm: -------------------------------------------------------------------------------- 1 | #!/bin/bash -l 2 | #SBATCH --partition=k2-hipri # queue 3 | #SBATCH --job-name=acc_meta # Job name 4 | #SBATCH --ntasks=32 # Number of cores 5 | #SBATCH --time=3:00:00 # Time limit hrs:min:sec 6 | #SBATCH --output=output.txt # Standard output and error log 7 | #SBATCH --error=error.txt # Standard output and error log 8 | 9 | source ~/envs/source_quip.sh 10 | 11 | export VASP_COMMAND="mpirun -n 32 /mnt/scratch/chemistry-apps/dkb01416/vasp/installed/intel-2016/5.4.4/vasp_std" 12 | export VASP_PP_PATH="/mnt/scratch/chemistry-apps/dkb01416/vasp/PseudoPotential" 13 | 14 | export QUIP_COMMAND="quip" 15 | export GAPFIT_EXEC="gap_fit" 16 | 17 | export PYTHONPATH="$PYTHONPATH:/users/40247882/repository/accelerate-metadynamics" 18 | 19 | echo `date "+%Y-%m-%d %H:%M:%S"` `pwd` >> $HOME/submitted 20 | python -u ./run.py 2>&1 > acc.out 21 | echo `date "+%Y-%m-%d %H:%M:%S"` `pwd` >> $HOME/finished 22 | -------------------------------------------------------------------------------- /examples/CO-PtClus13/gap/inputs.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | import os 5 | 6 | # ===== VASP ===== 7 | VASP_WORKDIR = './vasp-worker' 8 | VASP_COMMAND = os.environ['VASP_COMMAND'] 9 | 10 | VASP_PARAMS = dict( 11 | # INCAR 12 | system='Pt13-CO', nwrite=2, istart=0, 13 | lcharg = False, lwave= False, 14 | npar = 4, 15 | xc='PBE', encut=400, prec='Normal', ediff=1E-5, nelm=180, nelmin=6, 16 | ispin=2, lorbit = 10, 17 | ismear=1, sigma = 0.2, 18 | algo = 'Fast', lreal = 'Auto', isym = 0, 19 | nsw=0, 20 | # KPOINTS 21 | kpts=(1,1,1), gamma=True, 22 | ) 23 | 24 | # ===== QUIP and GAP ===== 25 | QUIP_COMMAND = os.environ['QUIP_COMMAND'] 26 | GAPFIT_EXEC = os.environ['GAPFIT_EXEC'] 27 | 28 | GAPFIT_XMLNAME = 'GAP.xml' 29 | ENERGY_SIGMA = 0.008 30 | FORCES_SIGMA = 0.04 31 | VIRIAL_SIGMA = 0.04 32 | HESSIAN_SIGMA = 0.0 33 | 34 | GAPFIT_COMMAND = ( 35 | GAPFIT_EXEC + 36 | " energy_parameter_name=free_energy" + 37 | " force_parameter_name=forces" + 38 | " virial_parameter_name=virial" + 39 | " do_copy_at_file=F" + 40 | " sparse_separate_file=F" + 41 | " gp_file=%s" %GAPFIT_XMLNAME + 42 | " at_file=./train.xyz" + 43 | " default_sigma={%f %f %f %f}" %(ENERGY_SIGMA, FORCES_SIGMA, VIRIAL_SIGMA, HESSIAN_SIGMA) + 44 | " e0={C:0.0:O:0.0:Pt:0.0}" + 45 | " gap={" + 46 | " distance_2b cutoff=5.000000 Z1=6 Z2=8 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 47 | " distance_2b cutoff=5.000000 Z1=6 Z2=78 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 48 | " distance_2b cutoff=5.000000 Z1=8 Z2=78 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 49 | " distance_2b cutoff=5.000000 Z1=78 Z2=78 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 50 | " {soap cutoff=5.000000 covariance_type=dot_product delta=0.20000 sparse_method=cur_points n_sparse=1200 zeta=2 l_max=6 n_max=12 atom_sigma=0.5} " + 51 | " }" 52 | ) 53 | 54 | -------------------------------------------------------------------------------- /examples/CO-PtClus13/gap/plumed-1.dat: -------------------------------------------------------------------------------- 1 | RESTART 2 | 3 | # 4 | FLUSH STRIDE=1 5 | 6 | # auxiliary 7 | 8 | # C-Pt (surf) distance 9 | dis1: DISTANCE ATOMS=1,6 10 | 11 | # C - Pt(surf) - Pt(centre) 12 | ang1: ANGLE ATOMS=1,6,3 13 | 14 | # coordination number 15 | #cn1: COORDINATION GROUPA=1 GROUPB=3-15 NN=18 MM=36 R_0=0.24 16 | 17 | res1: RESTRAINT ARG=ang1 AT=pi KAPPA=10000.0 18 | 19 | # metadyn 20 | METAD ... 21 | LABEL=metad 22 | ARG=dis1 23 | PACE=10 24 | HEIGHT=2.5 25 | SIGMA=0.02 26 | FILE=hills-1 27 | ... METAD 28 | 29 | # set metaMD region 30 | lw0: LOWER_WALLS ARG=dis1 AT=0.11 KAPPA=10000.0 31 | uw0: UPPER_WALLS ARG=dis1 AT=0.50 KAPPA=10000.0 32 | 33 | #lw1: LOWER_WALLS ARG=cn1 AT=0.0 KAPPA=10000.0 34 | #uw1: UPPER_WALLS ARG=cn1 AT=4.2 KAPPA=10000.0 35 | 36 | PRINT STRIDE=1 ARG=dis1,lw0.bias,uw0.bias,ang1,res1.bias,metad.bias FILE=bias-1 37 | -------------------------------------------------------------------------------- /examples/CO-PtClus13/gap/plumed-2.dat: -------------------------------------------------------------------------------- 1 | RESTART 2 | 3 | # 4 | FLUSH STRIDE=1 5 | 6 | # auxiliary 7 | 8 | # C-Pt (surf) distance 9 | dis1: DISTANCE ATOMS=1,6 10 | 11 | # C - Pt(surf) - Pt(centre) 12 | ang1: ANGLE ATOMS=1,6,3 13 | 14 | # coordination number 15 | #cn1: COORDINATION GROUPA=1 GROUPB=3-15 NN=18 MM=36 R_0=0.24 16 | 17 | res1: RESTRAINT ARG=ang1 AT=pi KAPPA=10000.0 18 | 19 | # metadyn 20 | METAD ... 21 | LABEL=metad 22 | ARG=dis1 23 | PACE=10 24 | HEIGHT=1.0 25 | SIGMA=0.01 26 | FILE=hills-2 27 | ... METAD 28 | 29 | # set metaMD region 30 | lw0: LOWER_WALLS ARG=dis1 AT=0.11 KAPPA=10000.0 31 | uw0: UPPER_WALLS ARG=dis1 AT=0.50 KAPPA=10000.0 32 | 33 | #lw1: LOWER_WALLS ARG=cn1 AT=0.0 KAPPA=10000.0 34 | #uw1: UPPER_WALLS ARG=cn1 AT=4.2 KAPPA=10000.0 35 | 36 | PRINT STRIDE=1 ARG=dis1,lw0.bias,uw0.bias,ang1,res1.bias,metad.bias FILE=bias-2 37 | -------------------------------------------------------------------------------- /examples/CO-PtClus13/gap/run.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | from ase import units 5 | 6 | from ase.io import read, write 7 | from ase.calculators.vasp import Vasp2 8 | 9 | from ase.constraints import FixAtoms 10 | 11 | from ase.md.velocitydistribution import MaxwellBoltzmannDistribution 12 | 13 | from AccMetaD.nosehoover import NoseHoover 14 | from AccMetaD.md_utils import force_temperature 15 | from AccMetaD.MetaAMLP import MetaAMLP 16 | from AccMetaD.xquip import XQuip 17 | 18 | if __name__ == '__main__': 19 | import inputs # all parameters 20 | 21 | # ===== system ===== 22 | atoms = read('./Pt13-CO.xyz') 23 | 24 | cons = FixAtoms(indices=[2]) 25 | atoms.set_constraint(cons) 26 | 27 | # - correction 28 | xquip_params = dict( 29 | command = inputs.QUIP_COMMAND, 30 | param_filename = './GAP.xml', 31 | calc_args = 'local_gap_variance', 32 | ) 33 | 34 | # - reference 35 | vasp_params = inputs.VASP_PARAMS.copy() 36 | vasp_params.update( 37 | dict( 38 | command=inputs.VASP_COMMAND, 39 | directory=inputs.VASP_WORKDIR, 40 | ) 41 | ) 42 | 43 | # - calculators 44 | calculators = { 45 | 'basic': None, 46 | 'corrected': XQuip, 47 | 'reference': Vasp2, 48 | } 49 | 50 | calcParams ={ 51 | 'basic': None, 52 | 'corrected': xquip_params, 53 | 'reference': vasp_params, 54 | } 55 | 56 | # ===== molecular dynamics ===== 57 | timestep = 2.0 * units.fs 58 | temperature = 300 # in Kelvin 59 | 60 | MaxwellBoltzmannDistribution(atoms, temperature*units.kB) 61 | force_temperature(atoms, temperature) 62 | 63 | trainer = MetaAMLP( 64 | atoms = atoms, 65 | constraints = cons, 66 | calculators = calculators, 67 | calcParams = calcParams, 68 | gapfitCommand = inputs.GAPFIT_COMMAND, 69 | # md stages 70 | mdEngines = [NoseHoover, NoseHoover], 71 | mdParams = [ 72 | dict( 73 | nsteps = 0, 74 | plumedInput = 'plumed-1.dat', 75 | nvt_q = 334., temperature = temperature*units.kB 76 | ), 77 | dict( 78 | nsteps = 20000, 79 | init_atoms = atoms.copy(), 80 | plumedInput = 'plumed-2.dat', 81 | nvt_q = 334., temperature = temperature*units.kB 82 | ) 83 | ], 84 | timestep = timestep, # fixed timestep 85 | # sample details 86 | maxSteps = 60000, 87 | minSamples = 1, 88 | sampleInterval = 2, 89 | tolerances = { 90 | 'energy': 10000, 91 | 'forces': 0.04, 92 | 'force_percent': 0.20, 93 | 'force_threhold': 0.02 94 | }, 95 | retrain_criteria = { 96 | 'min_interval': 0, 'max_interval': 1000, 'new_samples': 5 97 | }, 98 | restart = False, 99 | ) 100 | 101 | trainer.run() 102 | -------------------------------------------------------------------------------- /examples/CO-PtSurf111/dftb-gap/acc_meta.slurm: -------------------------------------------------------------------------------- 1 | #!/bin/bash -l 2 | #SBATCH --partition=k2-hipri # queue 3 | #SBATCH --job-name=acc_meta # Job name 4 | #SBATCH --ntasks=32 # Number of cores 5 | #SBATCH --time=3:00:00 # Time limit hrs:min:sec 6 | #SBATCH --output=output.txt # Standard output and error log 7 | #SBATCH --error=error.txt # Standard output and error log 8 | 9 | source ~/envs/source_quip.sh 10 | 11 | export DFTB_COMMAND="/mnt/scratch/chemistry-apps/dkb01416/dftbplus/installed/20.1/gnu-6.4.0/somp/bin/dftb+ > dftb.out" 12 | export DFTB_SLAKO="/users/40247882/repository/DataBase/skf/parameterisation/PtCO/" 13 | 14 | export VASP_COMMAND="mpirun -n 32 /mnt/scratch/chemistry-apps/dkb01416/vasp/installed/intel-2016/5.4.4/vasp_std" 15 | export VASP_PP_PATH="/mnt/scratch/chemistry-apps/dkb01416/vasp/PseudoPotential" 16 | 17 | export QUIP_COMMAND="quip" 18 | export GAPFIT_EXEC="gap_fit" 19 | 20 | export PYTHONPATH="$PYTHONPATH:/users/40247882/repository/accelerate-metadynamics" 21 | 22 | echo `date "+%Y-%m-%d %H:%M:%S"` `pwd` >> $HOME/submitted 23 | python -u ./run.py 2>&1 > acc.out 24 | echo `date "+%Y-%m-%d %H:%M:%S"` `pwd` >> $HOME/finished 25 | -------------------------------------------------------------------------------- /examples/CO-PtSurf111/dftb-gap/inputs.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | import os 5 | # ===== DFTB ===== 6 | DFTB_COMMAND = os.environ['DFTB_COMMAND'] 7 | DFTB_SLAKO = os.environ['DFTB_SLAKO'] 8 | 9 | MAX_ANG_MOM = {'C': 'p', 'O': 'p', 'Pt': 'd'} 10 | 11 | basic_input_parameters = dict( 12 | # Hamiltonian 13 | Hamiltonian_SCC = 'Yes', 14 | Hamiltonian_SCCTolerance = '1.0E-5', 15 | Hamiltonian_MaxSCCIterations = '180', 16 | Hamiltonian_Mixer_ = 'Broyden', 17 | Hamiltonian_Mixer_MixingParameter = '0.2', 18 | # Filling 19 | Hamiltonian_Filling_ = 'MethfesselPaxton', 20 | Hamiltonian_Filling_Order = '1', 21 | Hamiltonian_Filling_Temperature = '0.00735', 22 | # force 23 | Hamiltonian_Differentiation_ = 'FiniteDiff', 24 | Hamiltonian_Differentiation_Delta = '0.001', 25 | Hamiltonian_ForceEvaluation = 'traditional', 26 | # Options 27 | Options_ = ' ', 28 | Options_WriteResultsTag = 'Yes', 29 | # Analysis 30 | Analysis_ = ' ', 31 | Analysis_CalculateForces = 'Yes', 32 | # ParseOptions 33 | ParserOptions_ = ' ', 34 | ParserOptions_ParserVersion = '7', 35 | # Parallel 36 | Parallel_ = ' ', 37 | #Parallel_Groups = '2', # MPI 38 | Parallel_UseOmpThreads = 'Yes', 39 | ) 40 | 41 | def generate_calculator( 42 | atoms, 43 | run_nsteps = 0, 44 | pure_elec = False, 45 | cell_opt = False 46 | ): 47 | # check elements 48 | symbols = atoms.get_chemical_symbols() 49 | elements = list(set(symbols)) 50 | nelements = len(elements) 51 | 52 | # ===== Initialize Parameters 53 | input_parameters = basic_input_parameters.copy() 54 | 55 | # ===== Element Related 56 | # angular 57 | input_parameters.update({'Hamiltonian_MaxAngularMomentum_': ''}) 58 | for elm in elements: 59 | input_parameters.update( 60 | {'Hamiltonian_MaxAngularMomentum_%s'%elm: '\"%s\"' %MAX_ANG_MOM[elm]}) 61 | 62 | # no rep 63 | if pure_elec: 64 | input_parameters.update({'Hamiltonian_PolynomialRepulsive_': ''}) 65 | 66 | two_body = [] 67 | for e1 in range(nelements): 68 | for e2 in range(nelements): 69 | two_body.append((e1,e2)) 70 | 71 | for pair in two_body: 72 | elm1, elm2 = elements[pair[0]], elements[pair[1]] 73 | input_parameters.update({'Hamiltonian_PolynomialRepulsive_%s-%s' \ 74 | %(elm1,elm2): 'Yes'}) 75 | 76 | #print(input_parameters) 77 | # ===== KPOINTS 78 | #cur_kpts = (6,6,6) 79 | #if len(atoms) < 6: # Pt bulk, O2, CO, CO2 80 | # cur_kpts = (6,6,6) 81 | #elif len(atoms) < 30: # surf, adsorption, reaction 82 | # cur_kpts = (4,4,1) 83 | #else: 84 | # raise ValueError('Wrong KPOINTS!!!') 85 | 86 | # ===== OPTIMIZATION / Molecular Dynamics 87 | # Driver 88 | input_parameters.update(Driver_='ConjugateGradient') 89 | input_parameters.update(Driver_MaxForceComponent='0.0015') 90 | input_parameters.update(Driver_MaxAtomStep= '0.2') 91 | input_parameters.update(Driver_MaxSteps=run_nsteps) 92 | input_parameters.update(Driver_AppendGeometries='Yes') 93 | 94 | if cell_opt: 95 | input_parameters.update(Driver_LatticeOpt = 'Yes') 96 | input_parameters.update(Driver_FixAngles = 'Yes') 97 | input_parameters.update(Driver_FixLengths = '{ No No No }') 98 | input_parameters.update(Driver_MaxLatticeStep = '0.1') 99 | 100 | return input_parameters 101 | 102 | 103 | # ===== VASP ===== 104 | VASP_WORKDIR = './vasp-worker' 105 | VASP_COMMAND = os.environ['VASP_COMMAND'] 106 | 107 | VASP_PARAMS = dict( 108 | # INCAR 109 | system='CO-Pt111', nwrite=2, istart=0, 110 | lcharg = False, lwave= False, 111 | npar = 4, 112 | xc='PBE', encut=400, prec='Normal', ediff=1E-5, nelm=120, nelmin=6, 113 | ispin=1, 114 | ismear=1, sigma = 0.2, 115 | algo = 'Fast', lreal = 'Auto', isym = 0, 116 | nsw=0, 117 | # KPOINTS 118 | kpts=(4,4,1), gamma=True, 119 | ) 120 | 121 | # ===== QUIP and GAP ===== 122 | QUIP_COMMAND = os.environ['QUIP_COMMAND'] 123 | GAPFIT_EXEC = os.environ['GAPFIT_EXEC'] 124 | 125 | GAPFIT_XMLNAME = 'GAP.xml' 126 | ENERGY_SIGMA = 0.008 127 | FORCES_SIGMA = 0.04 128 | VIRIAL_SIGMA = 0.04 129 | HESSIAN_SIGMA = 0.0 130 | 131 | GAPFIT_COMMAND = ( 132 | GAPFIT_EXEC + 133 | " energy_parameter_name=free_energy" + 134 | " force_parameter_name=forces" + 135 | " virial_parameter_name=virial" + 136 | " do_copy_at_file=F" + 137 | " sparse_separate_file=F" + 138 | " gp_file=%s" %GAPFIT_XMLNAME + 139 | " at_file=./train.xyz" + 140 | " default_sigma={%f %f %f %f}" %(ENERGY_SIGMA, FORCES_SIGMA, VIRIAL_SIGMA, HESSIAN_SIGMA) + 141 | " e0={C:0.0:O:0.0:Pt:0.0}" + 142 | " gap={" + 143 | " distance_2b cutoff=5.000000 Z1=6 Z2=8 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 144 | " distance_2b cutoff=5.000000 Z1=6 Z2=78 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 145 | " distance_2b cutoff=5.000000 Z1=8 Z2=78 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 146 | " distance_2b cutoff=5.000000 Z1=78 Z2=78 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 147 | " {soap cutoff=5.000000 covariance_type=dot_product delta=0.20000 sparse_method=cur_points n_sparse=1200 zeta=2 l_max=6 n_max=12 atom_sigma=0.5} " + 148 | " }" 149 | ) 150 | 151 | -------------------------------------------------------------------------------- /examples/CO-PtSurf111/dftb-gap/plumed-1.dat: -------------------------------------------------------------------------------- 1 | RESTART 2 | 3 | # 4 | FLUSH STRIDE=1 5 | 6 | # auxiliary 7 | cell: CELL 8 | pos: POSITION ATOM=1 SCALED_COMPONENTS # carbon atom 9 | 10 | # coordination number 11 | cn1: COORDINATION GROUPA=1 GROUPB=10,12,14,16 NN=18 MM=36 R_0=0.24 12 | 13 | # C-Pt (Top) distance 14 | dis0: DISTANCE ATOMS=1,16 15 | 16 | # calculate distance between the carbon and the surface plane 17 | MATHEVAL ... 18 | LABEL=dis1 19 | ARG=cell.cz,pos.c 20 | VAR=cz,pz 21 | FUNC=cz*(pz-0.21) 22 | PERIODIC=NO 23 | ... MATHEVAL 24 | 25 | #res1: RESTRAINT ARG=dis1 AT=0.25 KAPPA=200000.0 26 | METAD ... 27 | LABEL=metad 28 | ARG=dis1,cn1 29 | PACE=10 30 | HEIGHT=2.5 31 | SIGMA=0.02,0.1 32 | FILE=hills-1 33 | ... METAD 34 | 35 | # set metaMD region 36 | lw0: LOWER_WALLS ARG=dis1 AT=0.11 KAPPA=10000.0 37 | uw0: UPPER_WALLS ARG=dis1 AT=0.50 KAPPA=10000.0 38 | 39 | lw1: LOWER_WALLS ARG=cn1 AT=0.0 KAPPA=10000.0 40 | uw1: UPPER_WALLS ARG=cn1 AT=3.2 KAPPA=10000.0 41 | 42 | PRINT STRIDE=1 ARG=dis0,dis1,lw0.bias,uw0.bias,cn1,lw1.bias,uw1.bias,metad.bias FILE=bias-1 43 | -------------------------------------------------------------------------------- /examples/CO-PtSurf111/dftb-gap/plumed-2.dat: -------------------------------------------------------------------------------- 1 | RESTART 2 | 3 | # 4 | FLUSH STRIDE=1 5 | 6 | # auxiliary 7 | cell: CELL 8 | pos: POSITION ATOM=1 SCALED_COMPONENTS # carbon atom 9 | 10 | # coordination number 11 | cn1: COORDINATION GROUPA=1 GROUPB=10,12,14,16 NN=18 MM=36 R_0=0.24 12 | 13 | # C-Pt (Top) distance 14 | dis0: DISTANCE ATOMS=1,16 15 | 16 | # calculate distance between the carbon and the surface plane 17 | MATHEVAL ... 18 | LABEL=dis1 19 | ARG=cell.cz,pos.c 20 | VAR=cz,pz 21 | FUNC=cz*(pz-0.21) 22 | PERIODIC=NO 23 | ... MATHEVAL 24 | 25 | #res1: RESTRAINT ARG=dis1 AT=0.25 KAPPA=200000.0 26 | METAD ... 27 | LABEL=metad 28 | ARG=dis1,cn1 29 | PACE=10 30 | HEIGHT=2.5 31 | SIGMA=0.01,0.1 32 | FILE=hills-2 33 | ... METAD 34 | 35 | # set metaMD region 36 | lw0: LOWER_WALLS ARG=dis1 AT=0.11 KAPPA=10000.0 37 | uw0: UPPER_WALLS ARG=dis1 AT=0.50 KAPPA=10000.0 38 | 39 | lw1: LOWER_WALLS ARG=cn1 AT=0.0 KAPPA=10000.0 40 | uw1: UPPER_WALLS ARG=cn1 AT=3.2 KAPPA=10000.0 41 | 42 | PRINT STRIDE=1 ARG=dis0,dis1,lw0.bias,uw0.bias,cn1,lw1.bias,uw1.bias,metad.bias FILE=bias-2 43 | -------------------------------------------------------------------------------- /examples/CO-PtSurf111/dftb-gap/run.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | from ase import units 5 | 6 | from ase.io import read, write 7 | from ase.calculators.vasp import Vasp2 8 | 9 | from ase.constraints import FixAtoms 10 | 11 | from ase.md.velocitydistribution import MaxwellBoltzmannDistribution 12 | 13 | from AccMetaD.nosehoover import NoseHoover 14 | from AccMetaD.md_utils import force_temperature 15 | from AccMetaD.MetaAMLP import MetaAMLP 16 | from AccMetaD.xquip import XQuip 17 | from AccMetaD.xdftb import XDFTB 18 | 19 | if __name__ == '__main__': 20 | import inputs # all parameters 21 | 22 | # ===== system ===== 23 | atoms = read('./surf-CO.xyz') 24 | 25 | cons = FixAtoms(indices=[atom.index for atom in atoms if atom.position[2]<4.0]) 26 | atoms.set_constraint(cons) 27 | 28 | # - basic 29 | dftb_shared_params = inputs.generate_calculator(atoms) 30 | dftb_shared_params.update(command = inputs.DFTB_COMMAND) 31 | dftb_shared_params.update(num_threads = 20) # OMP_THREADS 32 | dftb_shared_params.update(slako_dir = inputs.DFTB_SLAKO) 33 | dftb_shared_params.update(kpts = (4,4,1)) 34 | 35 | dftb_shared_params.update(binding_energy = True) 36 | dftb_shared_params.update( 37 | atomic_energies = dict( 38 | energy = {'C': -38.2611, 'O': -84.4551, 'Pt': -69.2691}, 39 | free_energy = {'C': -38.4153, 'O': -84.6094, 'Pt': -69.2697} 40 | ) 41 | ) 42 | 43 | dftb_params = dftb_shared_params.copy() 44 | dftb_params.update(directory = './dftb-worker') 45 | 46 | # - correction 47 | correction_params = dict( 48 | correction_command = inputs.QUIP_COMMAND, 49 | param_filename = './GAP.xml', 50 | calc_args = 'local_gap_variance', 51 | ) 52 | 53 | xdftb_params = dftb_shared_params.copy() 54 | xdftb_params.update( 55 | dict( 56 | directory = './xdftb-worker', 57 | correction_params = correction_params 58 | ) 59 | ) 60 | 61 | # - reference 62 | vasp_params = inputs.VASP_PARAMS.copy() 63 | vasp_params.update( 64 | dict( 65 | command=inputs.VASP_COMMAND, 66 | directory=inputs.VASP_WORKDIR, 67 | ) 68 | ) 69 | 70 | # - calculators 71 | calculators = { 72 | 'basic': XDFTB, 73 | 'corrected': XDFTB, 74 | 'reference': Vasp2, 75 | } 76 | 77 | calcParams ={ 78 | 'basic': dftb_params, 79 | 'corrected': xdftb_params, 80 | 'reference': vasp_params, 81 | } 82 | 83 | # ===== molecular dynamics ===== 84 | timestep = 2.0 * units.fs 85 | temperature = 300 # in Kelvin 86 | 87 | MaxwellBoltzmannDistribution(atoms, temperature*units.kB) 88 | force_temperature(atoms, temperature) 89 | 90 | trainer = MetaAMLP( 91 | atoms = atoms, 92 | constraints = cons, 93 | calculators = calculators, 94 | calcParams = calcParams, 95 | gapfitCommand = inputs.GAPFIT_COMMAND, 96 | # md stages 97 | mdEngines = [NoseHoover, NoseHoover], 98 | mdParams = [ 99 | dict( 100 | nsteps = 0, 101 | plumedInput = 'plumed-1.dat', 102 | nvt_q = 334., temperature = temperature*units.kB 103 | ), 104 | dict( 105 | nsteps = 40000, 106 | init_atoms = atoms.copy(), 107 | plumedInput = 'plumed-2.dat', 108 | nvt_q = 334., temperature = temperature*units.kB 109 | ) 110 | ], 111 | timestep = timestep, # fixed timestep 112 | # sample details 113 | maxSteps = 100000, 114 | minSamples = 1, 115 | sampleInterval = 2, 116 | tolerances = { 117 | 'energy': 1000, 118 | 'forces': 0.04, 119 | 'force_percent': 0.20, 120 | 'force_threhold': 0.02 121 | }, 122 | retrain_criteria = { 123 | 'min_interval': 10, 'max_interval': 1000, 'new_samples': 5 124 | }, 125 | restart = False, 126 | ) 127 | 128 | trainer.run() 129 | -------------------------------------------------------------------------------- /examples/CO-PtSurf111/dftb-gap/surf-CO.xyz: -------------------------------------------------------------------------------- 1 | 18 2 | Lattice="5.6102 0.0 0.0 -2.8051 4.85857572 0.0 0.0 0.0 31.871" Properties=species:S:1:pos:R:3 pbc="T T T" 3 | C 0.03804000 4.83476000 8.91387000 4 | O 0.05579000 4.82295000 10.07228000 5 | Pt 1.40257000 4.04879000 2.29049000 6 | Pt 1.40255000 2.42928000 0.00000000 7 | Pt -1.40252000 4.04879000 2.29049000 8 | Pt -1.40255000 2.42928000 0.00000000 9 | Pt 2.80512000 1.61950000 2.29049000 10 | Pt 2.80509000 0.00000000 0.00000000 11 | Pt 0.00003000 1.61950000 2.29049000 12 | Pt -2.78759000 4.85166000 6.81503000 13 | Pt 2.81337000 3.23430000 4.54148000 14 | Pt 1.41671000 2.41689000 6.81477000 15 | Pt 0.00808000 3.25864000 4.57426000 16 | Pt -1.38328000 2.41806000 6.81423000 17 | Pt 4.19457000 0.79195000 4.57480000 18 | Pt 0.01689000 4.84885000 7.05929000 19 | Pt 1.42950000 0.79403000 4.57211000 20 | Pt 0.00000000 0.00000000 0.00000000 21 | -------------------------------------------------------------------------------- /examples/CO-PtSurf111/gap/acc_meta.slurm: -------------------------------------------------------------------------------- 1 | #!/bin/bash -l 2 | #SBATCH --partition=k2-hipri # queue 3 | #SBATCH --job-name=acc_meta # Job name 4 | #SBATCH --ntasks=32 # Number of cores 5 | #SBATCH --time=3:00:00 # Time limit hrs:min:sec 6 | #SBATCH --output=output.txt # Standard output and error log 7 | #SBATCH --error=error.txt # Standard output and error log 8 | 9 | source ~/envs/source_quip.sh 10 | 11 | export VASP_COMMAND="mpirun -n 32 /mnt/scratch/chemistry-apps/dkb01416/vasp/installed/intel-2016/5.4.4/vasp_std" 12 | export VASP_PP_PATH="/mnt/scratch/chemistry-apps/dkb01416/vasp/PseudoPotential" 13 | 14 | export QUIP_COMMAND="quip" 15 | export GAPFIT_EXEC="gap_fit" 16 | 17 | export PYTHONPATH="$PYTHONPATH:/users/40247882/repository/accelerate-metadynamics" 18 | 19 | echo `date "+%Y-%m-%d %H:%M:%S"` `pwd` >> $HOME/submitted 20 | python -u ./run.py 2>&1 > acc.out 21 | echo `date "+%Y-%m-%d %H:%M:%S"` `pwd` >> $HOME/finished 22 | -------------------------------------------------------------------------------- /examples/CO-PtSurf111/gap/inputs.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | import os 5 | 6 | # ===== VASP ===== 7 | VASP_WORKDIR = './vasp-worker' 8 | VASP_COMMAND = os.environ['VASP_COMMAND'] 9 | 10 | VASP_PARAMS = dict( 11 | # INCAR 12 | system='CO-Pt111', nwrite=2, istart=0, 13 | lcharg = False, lwave= False, 14 | npar = 4, 15 | xc='PBE', encut=400, prec='Normal', ediff=1E-5, nelm=120, nelmin=6, 16 | ispin=1, 17 | ismear=1, sigma = 0.2, 18 | algo = 'Fast', lreal = 'Auto', isym = 0, 19 | nsw=0, 20 | # KPOINTS 21 | kpts=(4,4,1), gamma=True, 22 | ) 23 | 24 | # ===== QUIP and GAP ===== 25 | QUIP_COMMAND = os.environ['QUIP_COMMAND'] 26 | GAPFIT_EXEC = os.environ['GAPFIT_EXEC'] 27 | 28 | GAPFIT_XMLNAME = 'GAP.xml' 29 | ENERGY_SIGMA = 0.008 30 | FORCES_SIGMA = 0.04 31 | VIRIAL_SIGMA = 0.04 32 | HESSIAN_SIGMA = 0.0 33 | 34 | GAPFIT_COMMAND = ( 35 | GAPFIT_EXEC + 36 | " energy_parameter_name=free_energy" + 37 | " force_parameter_name=forces" + 38 | " virial_parameter_name=virial" + 39 | " do_copy_at_file=F" + 40 | " sparse_separate_file=F" + 41 | " gp_file=%s" %GAPFIT_XMLNAME + 42 | " at_file=./train.xyz" + 43 | " default_sigma={%f %f %f %f}" %(ENERGY_SIGMA, FORCES_SIGMA, VIRIAL_SIGMA, HESSIAN_SIGMA) + 44 | " e0={C:0.0:O:0.0:Pt:0.0}" + 45 | " gap={" + 46 | " distance_2b cutoff=5.000000 Z1=6 Z2=8 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 47 | " distance_2b cutoff=5.000000 Z1=6 Z2=78 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 48 | " distance_2b cutoff=5.000000 Z1=8 Z2=78 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 49 | " distance_2b cutoff=5.000000 Z1=78 Z2=78 covariance_type=ard_se delta=0.200000 theta_uniform=0.500000 sparse_method=uniform n_sparse=50 add_species=F : " + 50 | " {soap cutoff=5.000000 covariance_type=dot_product delta=0.20000 sparse_method=cur_points n_sparse=1200 zeta=2 l_max=6 n_max=12 atom_sigma=0.5} " + 51 | " }" 52 | ) 53 | 54 | -------------------------------------------------------------------------------- /examples/CO-PtSurf111/gap/plumed-1.dat: -------------------------------------------------------------------------------- 1 | # 2 | FLUSH STRIDE=1 3 | 4 | # auxiliary 5 | cell: CELL 6 | pos: POSITION ATOM=1 SCALED_COMPONENTS # carbon atom 7 | 8 | # coordination number 9 | cn1: COORDINATION GROUPA=1 GROUPB=10,12,14,16 NN=18 MM=36 R_0=0.24 10 | 11 | # C-Pt (Top) distance 12 | dis0: DISTANCE ATOMS=1,16 13 | 14 | # calculate distance between the carbon and the surface plane 15 | MATHEVAL ... 16 | LABEL=dis1 17 | ARG=cell.cz,pos.c 18 | VAR=cz,pz 19 | FUNC=cz*(pz-0.21) 20 | PERIODIC=NO 21 | ... MATHEVAL 22 | 23 | #res1: RESTRAINT ARG=dis1 AT=0.25 KAPPA=200000.0 24 | METAD ... 25 | LABEL=metad 26 | ARG=dis1,cn1 27 | PACE=10 28 | HEIGHT=2.5 29 | SIGMA=0.02,0.1 30 | FILE=hills-1 31 | ... METAD 32 | 33 | # set metaMD region 34 | lw0: LOWER_WALLS ARG=dis1 AT=0.11 KAPPA=10000.0 35 | uw0: UPPER_WALLS ARG=dis1 AT=0.50 KAPPA=10000.0 36 | 37 | lw1: LOWER_WALLS ARG=cn1 AT=0.0 KAPPA=10000.0 38 | uw1: UPPER_WALLS ARG=cn1 AT=3.2 KAPPA=10000.0 39 | 40 | PRINT STRIDE=1 ARG=dis0,dis1,lw0.bias,uw0.bias,cn1,lw1.bias,uw1.bias,metad.bias FILE=bias-1 41 | -------------------------------------------------------------------------------- /examples/CO-PtSurf111/gap/plumed-2.dat: -------------------------------------------------------------------------------- 1 | # 2 | FLUSH STRIDE=1 3 | 4 | # auxiliary 5 | cell: CELL 6 | pos: POSITION ATOM=1 SCALED_COMPONENTS # carbon atom 7 | 8 | # coordination number 9 | cn1: COORDINATION GROUPA=1 GROUPB=10,12,14,16 NN=18 MM=36 R_0=0.24 10 | 11 | # C-Pt (Top) distance 12 | dis0: DISTANCE ATOMS=1,16 13 | 14 | # calculate distance between the carbon and the surface plane 15 | MATHEVAL ... 16 | LABEL=dis1 17 | ARG=cell.cz,pos.c 18 | VAR=cz,pz 19 | FUNC=cz*(pz-0.21) 20 | PERIODIC=NO 21 | ... MATHEVAL 22 | 23 | #res1: RESTRAINT ARG=dis1 AT=0.25 KAPPA=200000.0 24 | METAD ... 25 | LABEL=metad 26 | ARG=dis1,cn1 27 | PACE=10 28 | HEIGHT=2.5 29 | SIGMA=0.01,0.1 30 | FILE=hills-2 31 | ... METAD 32 | 33 | # set metaMD region 34 | lw0: LOWER_WALLS ARG=dis1 AT=0.11 KAPPA=10000.0 35 | uw0: UPPER_WALLS ARG=dis1 AT=0.50 KAPPA=10000.0 36 | 37 | lw1: LOWER_WALLS ARG=cn1 AT=0.0 KAPPA=10000.0 38 | uw1: UPPER_WALLS ARG=cn1 AT=3.2 KAPPA=10000.0 39 | 40 | PRINT STRIDE=1 ARG=dis0,dis1,lw0.bias,uw0.bias,cn1,lw1.bias,uw1.bias,metad.bias FILE=bias-2 41 | -------------------------------------------------------------------------------- /examples/CO-PtSurf111/gap/run.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | from ase import units 5 | 6 | from ase.io import read, write 7 | from ase.calculators.vasp import Vasp2 8 | 9 | from ase.constraints import FixAtoms 10 | 11 | from ase.md.velocitydistribution import MaxwellBoltzmannDistribution 12 | 13 | from AccMetaD.nosehoover import NoseHoover 14 | from AccMetaD.md_utils import force_temperature 15 | from AccMetaD.MetaAMLP import MetaAMLP 16 | from AccMetaD.xquip import XQuip 17 | 18 | if __name__ == '__main__': 19 | import inputs # all parameters 20 | 21 | # ===== system ===== 22 | atoms = read('./surf-CO.xyz') 23 | 24 | cons = FixAtoms(indices=[atom.index for atom in atoms if atom.position[2]<4.0]) 25 | atoms.set_constraint(cons) 26 | 27 | # - correction 28 | xquip_params = dict( 29 | command = inputs.QUIP_COMMAND, 30 | param_filename = './GAP.xml', 31 | calc_args = 'local_gap_variance', 32 | ) 33 | 34 | # - reference 35 | vasp_params = inputs.VASP_PARAMS.copy() 36 | vasp_params.update( 37 | dict( 38 | command=inputs.VASP_COMMAND, 39 | directory=inputs.VASP_WORKDIR, 40 | ) 41 | ) 42 | 43 | # - calculators 44 | calculators = { 45 | 'basic': None, 46 | 'corrected': XQuip, 47 | 'reference': Vasp2, 48 | } 49 | 50 | calcParams ={ 51 | 'basic': None, 52 | 'corrected': xquip_params, 53 | 'reference': vasp_params, 54 | } 55 | 56 | # ===== molecular dynamics ===== 57 | timestep = 2.0 * units.fs 58 | temperature = 300 # in Kelvin 59 | 60 | MaxwellBoltzmannDistribution(atoms, temperature*units.kB) 61 | force_temperature(atoms, temperature) 62 | 63 | trainer = MetaAMLP( 64 | atoms = atoms, 65 | constraints = cons, 66 | calculators = calculators, 67 | calcParams = calcParams, 68 | gapfitCommand = inputs.GAPFIT_COMMAND, 69 | # md stages 70 | mdEngines = [NoseHoover, NoseHoover], 71 | mdParams = [ 72 | dict( 73 | nsteps = 0, 74 | plumedInput = 'plumed-1.dat', 75 | nvt_q = 334., temperature = 300*units.kB 76 | ), 77 | dict( 78 | nsteps = 40000, 79 | init_atoms = atoms.copy(), 80 | plumedInput = 'plumed-2.dat', 81 | nvt_q = 334., temperature = 300*units.kB 82 | ) 83 | ], 84 | timestep = timestep, # fixed timestep 85 | # sample details 86 | maxSteps = 100000, 87 | minSamples = 1, 88 | sampleInterval = 2, 89 | tolerances = { 90 | 'energy': 10000, 91 | 'forces': 0.04, 92 | 'force_percent': 0.20, 93 | 'force_threhold': 0.02 94 | }, 95 | retrain_criteria = { 96 | 'min_interval': 0, 'max_interval': 1000, 'new_samples': 5 97 | }, 98 | restart = False, 99 | ) 100 | 101 | trainer.run() 102 | -------------------------------------------------------------------------------- /examples/CO-PtSurf111/gap/surf-CO.xyz: -------------------------------------------------------------------------------- 1 | 18 2 | Lattice="5.6102 0.0 0.0 -2.8051 4.85857572 0.0 0.0 0.0 31.871" Properties=species:S:1:pos:R:3 pbc="T T T" 3 | C 0.03804000 4.83476000 8.91387000 4 | O 0.05579000 4.82295000 10.07228000 5 | Pt 1.40257000 4.04879000 2.29049000 6 | Pt 1.40255000 2.42928000 0.00000000 7 | Pt -1.40252000 4.04879000 2.29049000 8 | Pt -1.40255000 2.42928000 0.00000000 9 | Pt 2.80512000 1.61950000 2.29049000 10 | Pt 2.80509000 0.00000000 0.00000000 11 | Pt 0.00003000 1.61950000 2.29049000 12 | Pt -2.78759000 4.85166000 6.81503000 13 | Pt 2.81337000 3.23430000 4.54148000 14 | Pt 1.41671000 2.41689000 6.81477000 15 | Pt 0.00808000 3.25864000 4.57426000 16 | Pt -1.38328000 2.41806000 6.81423000 17 | Pt 4.19457000 0.79195000 4.57480000 18 | Pt 0.01689000 4.84885000 7.05929000 19 | Pt 1.42950000 0.79403000 4.57211000 20 | Pt 0.00000000 0.00000000 0.00000000 21 | -------------------------------------------------------------------------------- /examples/skf/C-O.skf: -------------------------------------------------------------------------------- 1 | 0.05 240 2 | 12.0111 8*0.0 3.0 10*0.0 3 | 20*0.0 4 | 20*0.0 5 | 20*0.0 6 | 20*0.0 7 | 20*0.0 8 | 20*0.0 9 | 20*0.0 10 | 20*0.0 11 | 20*0.0 12 | 5*0.0 -0.91983580 -1.69136800 0.00000000 0.55770620 -1.20744200 5*0.0 0.69182660 0.87465410 0.00000000 0.09487625 0.83587330 13 | 5*0.0 -0.76469990 -1.61404800 0.00000000 0.46654720 -1.14268800 5*0.0 0.64266680 0.85575900 0.00000000 0.11389590 0.82283460 14 | 5*0.0 -0.61853880 -1.53704700 0.00000000 0.37156540 -1.09685900 5*0.0 0.59207150 0.83583800 0.00000000 0.13382030 0.81012850 15 | 5*0.0 -0.48237620 -1.46104400 0.00000000 0.27617140 -1.06537200 5*0.0 0.54056370 0.81507260 0.00000000 0.15435110 0.79774140 16 | 5*0.0 -0.35673860 -1.38660800 0.00000000 0.18279460 -1.04440900 5*0.0 0.48861250 0.79362510 0.00000000 0.17520250 0.78562430 17 | 5*0.0 -0.24175810 -1.31406700 0.00000000 0.09337852 -1.03054300 5*0.0 0.43665260 0.77152510 0.00000000 0.19604430 0.77357640 18 | 5*0.0 -0.13742990 -1.24364400 0.00000000 0.00933781 -1.02119900 5*0.0 0.38509930 0.74892030 0.00000000 0.21660930 0.76153770 19 | 5*0.0 -0.04351211 -1.17581400 0.00000000 -0.06862343 -1.01465800 5*0.0 0.33425270 0.72602700 0.00000000 0.23674030 0.74951710 20 | 5*0.0 0.04037789 -1.11051000 0.00000000 -0.13977750 -1.00910000 5*0.0 0.28447520 0.70285900 0.00000000 0.25615310 0.73733630 21 | 5*0.0 0.11477230 -1.04789100 0.00000000 -0.20397320 -1.00344400 5*0.0 0.23601600 0.67948680 0.00000000 0.27466900 0.72489510 22 | 5*0.0 0.18035790 -0.98814450 0.00000000 -0.26127040 -0.99711560 5*0.0 0.18904340 0.65617280 0.00000000 0.29223060 0.71229940 23 | 5*0.0 0.23747720 -0.93106120 0.00000000 -0.31157900 -0.98920670 5*0.0 0.14386840 0.63280120 0.00000000 0.30858010 0.69930670 24 | 5*0.0 0.28705490 -0.87681340 0.00000000 -0.35537830 -0.97968250 5*0.0 0.10052940 0.60959390 0.00000000 0.32373350 0.68602880 25 | 5*0.0 0.32952630 -0.82525330 0.00000000 -0.39288960 -0.96819370 5*0.0 0.05922985 0.58653050 0.00000000 0.33754560 0.67235520 26 | 5*0.0 0.36547190 -0.77637350 0.00000000 -0.42449790 -0.95473560 5*0.0 0.02006336 0.56373750 0.00000000 0.34999210 0.65832860 27 | 5*0.0 0.39568570 -0.73005550 0.00000000 -0.45069410 -0.93932680 5*0.0 -0.01692846 0.54121700 0.00000000 0.36102890 0.64391280 28 | 5*0.0 0.42059340 -0.68629750 0.00000000 -0.47191680 -0.92216190 5*0.0 -0.05170238 0.51910020 0.00000000 0.37068950 0.62919230 29 | 5*0.0 0.44067350 -0.64488880 0.00000000 -0.48851750 -0.90319790 5*0.0 -0.08415352 0.49731780 0.00000000 0.37888040 0.61406960 30 | 5*0.0 0.45656650 -0.60585790 0.00000000 -0.50105400 -0.88281320 5*0.0 -0.11437510 0.47602600 0.00000000 0.38572390 0.59869210 31 | 5*0.0 0.46864100 -0.56897670 0.00000000 -0.50983570 -0.86100690 5*0.0 -0.14228540 0.45514520 0.00000000 0.39114680 0.58297770 32 | 5*0.0 0.47728440 -0.53426040 0.00000000 -0.51530290 -0.83811790 5*0.0 -0.16794790 0.43482490 0.00000000 0.39526490 0.56706720 33 | 5*0.0 0.48301060 -0.50152720 0.00000000 -0.51785940 -0.81428050 5*0.0 -0.19141400 0.41497330 0.00000000 0.39808890 0.55092560 34 | 5*0.0 0.48603000 -0.47071230 0.00000000 -0.51777080 -0.78966220 5*0.0 -0.21266500 0.39569840 0.00000000 0.39965710 0.53462100 35 | 5*0.0 0.48677640 -0.44167320 0.00000000 -0.51541630 -0.76444480 5*0.0 -0.23180280 0.37692540 0.00000000 0.40002710 0.51815960 36 | 5*0.0 0.48543520 -0.41441580 0.00000000 -0.51107380 -0.73888770 5*0.0 -0.24889300 0.35880680 0.00000000 0.39932390 0.50168500 37 | 5*0.0 0.48237230 -0.38874430 0.00000000 -0.50501870 -0.71304660 5*0.0 -0.26399120 0.34122060 0.00000000 0.39754130 0.48513620 38 | 5*0.0 0.47774210 -0.36459490 0.00000000 -0.49746210 -0.68706560 5*0.0 -0.27715370 0.32419960 0.00000000 0.39475260 0.46857350 39 | 5*0.0 0.47181680 -0.34192900 0.00000000 -0.48867590 -0.66115870 5*0.0 -0.28851240 0.30781710 0.00000000 0.39108380 0.45210040 40 | 5*0.0 0.46481150 -0.32059140 0.00000000 -0.47885050 -0.63537550 5*0.0 -0.29814670 0.29196780 0.00000000 0.38656510 0.43569360 41 | 5*0.0 0.45678300 -0.30055920 0.00000000 -0.46810850 -0.60980340 5*0.0 -0.30606860 0.27673620 0.00000000 0.38124310 0.41940410 42 | 5*0.0 0.44792020 -0.28174770 0.00000000 -0.45663430 -0.58456030 5*0.0 -0.31241520 0.26210060 0.00000000 0.37522240 0.40328840 43 | 5*0.0 0.43840600 -0.26405970 0.00000000 -0.44458610 -0.55970380 5*0.0 -0.31727560 0.24801550 0.00000000 0.36854780 0.38734870 44 | 5*0.0 0.42831040 -0.24744780 0.00000000 -0.43206280 -0.53529010 5*0.0 -0.32070550 0.23450570 0.00000000 0.36127370 0.37161820 45 | 5*0.0 0.41779790 -0.23186000 0.00000000 -0.41922660 -0.51144230 5*0.0 -0.32287290 0.22157570 0.00000000 0.35353020 0.35617600 46 | 5*0.0 0.40693540 -0.21721300 0.00000000 -0.40614360 -0.48814970 5*0.0 -0.32381610 0.20918220 0.00000000 0.34532780 0.34100100 47 | 5*0.0 0.39582450 -0.20347520 0.00000000 -0.39292150 -0.46548480 5*0.0 -0.32364510 0.19734650 0.00000000 0.33675210 0.32614310 48 | 5*0.0 0.38450910 -0.19056720 0.00000000 -0.37961230 -0.44344620 5*0.0 -0.32242510 0.18602800 0.00000000 0.32784110 0.31160420 49 | 5*0.0 0.37303460 -0.17845060 0.00000000 -0.36627060 -0.42204630 5*0.0 -0.32021000 0.17522900 0.00000000 0.31863040 0.29739320 50 | 5*0.0 0.36152660 -0.16708560 0.00000000 -0.35300310 -0.40135570 5*0.0 -0.31715450 0.16494190 0.00000000 0.30922350 0.28356100 51 | 5*0.0 0.34998120 -0.15641360 0.00000000 -0.33982120 -0.38134270 5*0.0 -0.31328800 0.15513810 0.00000000 0.29963250 0.27009450 52 | 5*0.0 0.33850230 -0.14640210 0.00000000 -0.32680890 -0.36205720 5*0.0 -0.30873810 0.14581790 0.00000000 0.28993970 0.25703090 53 | 5*0.0 0.32705110 -0.13700520 0.00000000 -0.31395240 -0.34344550 5*0.0 -0.30350330 0.13695070 0.00000000 0.28013350 0.24434080 54 | 5*0.0 0.31570480 -0.12819820 0.00000000 -0.30131720 -0.32555180 5*0.0 -0.29770440 0.12854690 0.00000000 0.27029700 0.23206530 55 | 5*0.0 0.30449890 -0.11992310 0.00000000 -0.28892560 -0.30835370 5*0.0 -0.29140970 0.12055640 0.00000000 0.26045410 0.22019210 56 | 5*0.0 0.29348050 -0.11217480 0.00000000 -0.27682420 -0.29188180 5*0.0 -0.28471490 0.11299980 0.00000000 0.25067270 0.20875380 57 | 5*0.0 0.28258260 -0.10489440 0.00000000 -0.26496540 -0.27604600 5*0.0 -0.27757480 0.10582660 0.00000000 0.24090200 0.19769310 58 | 5*0.0 0.27190930 -0.09806669 0.00000000 -0.25342400 -0.26090410 5*0.0 -0.27014700 0.09904205 0.00000000 0.23124270 0.18705890 59 | 5*0.0 0.26145580 -0.09167336 0.00000000 -0.24220290 -0.24643690 5*0.0 -0.26246860 0.09263843 0.00000000 0.22171340 0.17684660 60 | 5*0.0 0.25121740 -0.08567622 0.00000000 -0.23129540 -0.23260770 5*0.0 -0.25456390 0.08658713 0.00000000 0.21231420 0.16703620 61 | 5*0.0 0.24118520 -0.08004494 0.00000000 -0.22069390 -0.21938530 5*0.0 -0.24645860 0.08086570 0.00000000 0.20304950 0.15761210 62 | 5*0.0 0.23143170 -0.07477598 0.00000000 -0.21045020 -0.20680660 5*0.0 -0.23827480 0.07548189 0.00000000 0.19399560 0.14860830 63 | 5*0.0 0.22193310 -0.06983426 0.00000000 -0.20054340 -0.19482700 5*0.0 -0.23002010 0.07040609 0.00000000 0.18514230 0.13999970 64 | 5*0.0 0.21267110 -0.06520637 0.00000000 -0.19096170 -0.18341590 5*0.0 -0.22169880 0.06563081 0.00000000 0.17648360 0.13176800 65 | 5*0.0 0.20367880 -0.06086664 0.00000000 -0.18172160 -0.17257260 5*0.0 -0.21338860 0.06113671 0.00000000 0.16805810 0.12392060 66 | 5*0.0 0.19493250 -0.05680620 0.00000000 -0.17280710 -0.16226290 5*0.0 -0.20508150 0.05691673 0.00000000 0.15985130 0.11643490 67 | 5*0.0 0.18644910 -0.05299305 0.00000000 -0.16422010 -0.15247050 5*0.0 -0.19683280 0.05294198 0.00000000 0.15188330 0.10930610 68 | 5*0.0 0.17825060 -0.04943245 0.00000000 -0.15597800 -0.14320370 5*0.0 -0.18869240 0.04922592 0.00000000 0.14418510 0.10254320 69 | 5*0.0 0.17029500 -0.04609089 0.00000000 -0.14804370 -0.13440580 5*0.0 -0.18063700 0.04573198 0.00000000 0.13672360 0.09610976 70 | 5*0.0 0.16260600 -0.04296632 0.00000000 -0.14043090 -0.12607880 5*0.0 -0.17271340 0.04246132 0.00000000 0.12952240 0.09000877 71 | 5*0.0 0.15518060 -0.04004260 0.00000000 -0.13313290 -0.11820460 5*0.0 -0.16494430 0.03940192 0.00000000 0.12258720 0.08423175 72 | 5*0.0 0.14799830 -0.03730508 0.00000000 -0.12613050 -0.11074990 5*0.0 -0.15732080 0.03653695 0.00000000 0.11590050 0.07875594 73 | 5*0.0 0.14106970 -0.03474646 0.00000000 -0.11942690 -0.10370780 5*0.0 -0.14987440 0.03386138 0.00000000 0.10947500 0.07357870 74 | 5*0.0 0.13439900 -0.03235026 0.00000000 -0.11301770 -0.09706322 5*0.0 -0.14263130 0.03135960 0.00000000 0.10331680 0.06869197 75 | 5*0.0 0.12796550 -0.03011081 0.00000000 -0.10688640 -0.09078954 5*0.0 -0.13557660 0.02902458 0.00000000 0.09740877 0.06407653 76 | 5*0.0 0.12177310 -0.02801650 0.00000000 -0.10103000 -0.08487534 5*0.0 -0.12873180 0.02684739 0.00000000 0.09175681 0.05972645 77 | 5*0.0 0.11581240 -0.02605908 0.00000000 -0.09543712 -0.07929971 5*0.0 -0.12209640 0.02481661 0.00000000 0.08635124 0.05562675 78 | 5*0.0 0.11008070 -0.02422879 0.00000000 -0.09010124 -0.07404875 5*0.0 -0.11568000 0.02292471 0.00000000 0.08119154 0.05176900 79 | 5*0.0 0.10459140 -0.02252329 0.00000000 -0.08502699 -0.06911883 5*0.0 -0.10950650 0.02116842 0.00000000 0.07628633 0.04815018 80 | 5*0.0 0.09930061 -0.02092652 0.00000000 -0.08017966 -0.06446926 5*0.0 -0.10353350 0.01953005 0.00000000 0.07159951 0.04474187 81 | 5*0.0 0.09422995 -0.01943861 0.00000000 -0.07557003 -0.06010383 5*0.0 -0.09779294 0.01801072 0.00000000 0.06714705 0.04154659 82 | 5*0.0 0.08937308 -0.01804873 0.00000000 -0.07118766 -0.05600581 5*0.0 -0.09228691 0.01659821 0.00000000 0.06292195 0.03855294 83 | 5*0.0 0.08471352 -0.01675120 0.00000000 -0.06701842 -0.05215625 5*0.0 -0.08699981 0.01528695 0.00000000 0.05890934 0.03574683 84 | 5*0.0 0.08025217 -0.01554136 0.00000000 -0.06305805 -0.04854516 5*0.0 -0.08193780 0.01407039 0.00000000 0.05510689 0.03312084 85 | 5*0.0 0.07597989 -0.01441346 0.00000000 -0.05929667 -0.04515846 5*0.0 -0.07709376 0.01294326 0.00000000 0.05150542 0.03066461 86 | 5*0.0 0.07189303 -0.01336206 0.00000000 -0.05572776 -0.04198507 5*0.0 -0.07246733 0.01189957 0.00000000 0.04809947 0.02836991 87 | 5*0.0 0.06799105 -0.01238273 0.00000000 -0.05234641 -0.03901560 5*0.0 -0.06806068 0.01093350 0.00000000 0.04488515 0.02622953 88 | 5*0.0 0.06426500 -0.01146887 0.00000000 -0.04914270 -0.03623725 5*0.0 -0.06386700 0.01003889 0.00000000 0.04185364 0.02423413 89 | 5*0.0 0.06070833 -0.01061907 0.00000000 -0.04610939 -0.03363897 5*0.0 -0.05987757 0.00921263 0.00000000 0.03899576 0.02237471 90 | 5*0.0 0.05731439 -0.00982918 0.00000000 -0.04323875 -0.03121014 5*0.0 -0.05608583 0.00845036 0.00000000 0.03630369 0.02064321 91 | 5*0.0 0.05407205 -0.00909227 0.00000000 -0.04051945 -0.02893766 5*0.0 -0.05248244 0.00774489 0.00000000 0.03376714 0.01903030 92 | 5*0.0 0.05099288 -0.00840908 0.00000000 -0.03795584 -0.02682135 5*0.0 -0.04907766 0.00709597 0.00000000 0.03138959 0.01753440 93 | 5*0.0 0.04804702 -0.00777125 0.00000000 -0.03552565 -0.02483962 5*0.0 -0.04584120 0.00649543 0.00000000 0.02914867 0.01614067 94 | 5*0.0 0.04525857 -0.00718116 0.00000000 -0.03324084 -0.02299900 5*0.0 -0.04279586 0.00594454 0.00000000 0.02705584 0.01485197 95 | 5*0.0 0.04260190 -0.00663167 0.00000000 -0.03108212 -0.02128108 5*0.0 -0.03991559 0.00543600 0.00000000 0.02509168 0.01365547 96 | 5*0.0 0.04007666 -0.00612120 0.00000000 -0.02904661 -0.01968070 5*0.0 -0.03719800 0.00496807 0.00000000 0.02325248 0.01254676 97 | 5*0.0 0.03767496 -0.00564778 0.00000000 -0.02712695 -0.01818944 5*0.0 -0.03463318 0.00453780 0.00000000 0.02152982 0.01151922 98 | 5*0.0 0.03539766 -0.00520827 0.00000000 -0.02532054 -0.01680296 5*0.0 -0.03222162 0.00414222 0.00000000 0.01992145 0.01056938 99 | 5*0.0 0.03324072 -0.00480106 0.00000000 -0.02362256 -0.01551520 5*0.0 -0.02995658 0.00377949 0.00000000 0.01842143 0.00969226 100 | 5*0.0 0.03119294 -0.00442357 0.00000000 -0.02202380 -0.01431708 5*0.0 -0.02782546 0.00344629 0.00000000 0.01702006 0.00888111 101 | 5*0.0 0.02925478 -0.00407363 0.00000000 -0.02052207 -0.01320496 5*0.0 -0.02582732 0.00314064 0.00000000 0.01571489 0.00813292 102 | 5*0.0 0.02741895 -0.00375024 0.00000000 -0.01911113 -0.01217226 5*0.0 -0.02395213 0.00286089 0.00000000 0.01449848 0.00744247 103 | 5*0.0 0.02568150 -0.00345000 0.00000000 -0.01778600 -0.01121380 5*0.0 -0.02219598 0.00260391 0.00000000 0.01336653 0.00680607 104 | 5*0.0 0.02404143 -0.00317231 0.00000000 -0.01654433 -0.01032618 5*0.0 -0.02055500 0.00236885 0.00000000 0.01231551 0.00622063 105 | 5*0.0 0.02249050 -0.00291598 0.00000000 -0.01537957 -0.00950309 5*0.0 -0.01901887 0.00215401 0.00000000 0.01133808 0.00568142 106 | 5*0.0 0.02102584 -0.00267881 0.00000000 -0.01428803 -0.00874067 5*0.0 -0.01758395 0.00195738 0.00000000 0.01043070 0.00518548 107 | 5*0.0 0.01964527 -0.00245953 0.00000000 -0.01326661 -0.00803544 5*0.0 -0.01624635 0.00177762 0.00000000 0.00958991 0.00473008 108 | 5*0.0 0.01834565 -0.00225754 0.00000000 -0.01231206 -0.00738386 5*0.0 -0.01500071 0.00161380 0.00000000 0.00881165 0.00431232 109 | 5*0.0 0.01711961 -0.00207083 0.00000000 -0.01141851 -0.00678083 5*0.0 -0.01383919 0.00146408 0.00000000 0.00809028 0.00392864 110 | 5*0.0 0.01596477 -0.00189841 0.00000000 -0.01058311 -0.00622344 5*0.0 -0.01275792 0.00132737 0.00000000 0.00742266 0.00357672 111 | 5*0.0 0.01487783 -0.00173944 0.00000000 -0.00980270 -0.00570857 5*0.0 -0.01175217 0.00120270 0.00000000 0.00680525 0.00325416 112 | 5*0.0 0.01385789 -0.00159340 0.00000000 -0.00907552 -0.00523413 5*0.0 -0.01081908 0.00108949 0.00000000 0.00623573 0.00295918 113 | 5*0.0 0.01289720 -0.00145828 0.00000000 -0.00839580 -0.00479561 5*0.0 -0.00995144 0.00098596 0.00000000 0.00570909 0.00268883 114 | 5*0.0 0.01199596 -0.00133429 0.00000000 -0.00776268 -0.00439163 5*0.0 -0.00914699 0.00089201 0.00000000 0.00522356 0.00244173 115 | 5*0.0 0.01115089 -0.00122007 0.00000000 -0.00717318 -0.00401962 5*0.0 -0.00840204 0.00080650 0.00000000 0.00477635 0.00221604 116 | 5*0.0 0.01035972 -0.00111514 0.00000000 -0.00662504 -0.00367747 5*0.0 -0.00771314 0.00072884 0.00000000 0.00436498 0.00201017 117 | 5*0.0 0.00961779 -0.00101864 0.00000000 -0.00611470 -0.00336236 5*0.0 -0.00707526 0.00065826 0.00000000 0.00398611 0.00182218 118 | 5*0.0 0.00892309 -0.00093000 0.00000000 -0.00564017 -0.00307251 5*0.0 -0.00648555 0.00059418 0.00000000 0.00363770 0.00165073 119 | 5*0.0 0.00827156 -0.00084845 0.00000000 -0.00519840 -0.00280555 5*0.0 -0.00593970 0.00053594 0.00000000 0.00331692 0.00149423 120 | 5*0.0 0.00766524 -0.00077397 0.00000000 -0.00478978 -0.00256123 5*0.0 -0.00543787 0.00048335 0.00000000 0.00302346 0.00135217 121 | 5*0.0 0.00709691 -0.00070544 0.00000000 -0.00440958 -0.00233632 5*0.0 -0.00497373 0.00043555 0.00000000 0.00275346 0.00122256 122 | 5*0.0 0.00656705 -0.00064261 0.00000000 -0.00405740 -0.00213016 5*0.0 -0.00454665 0.00039225 0.00000000 0.00250623 0.00110483 123 | 5*0.0 0.00607331 -0.00058519 0.00000000 -0.00373136 -0.00194128 5*0.0 -0.00415369 0.00035314 0.00000000 0.00227989 0.00099790 124 | 5*0.0 0.00561248 -0.00053251 0.00000000 -0.00342913 -0.00176800 5*0.0 -0.00379182 0.00031769 0.00000000 0.00207248 0.00090070 125 | 5*0.0 0.00518320 -0.00048432 0.00000000 -0.00314943 -0.00160928 5*0.0 -0.00345911 0.00028566 0.00000000 0.00188270 0.00081247 126 | 5*0.0 0.00478324 -0.00044017 0.00000000 -0.00289054 -0.00146387 5*0.0 -0.00315329 0.00025666 0.00000000 0.00170911 0.00073240 127 | 5*0.0 0.00441213 -0.00039998 0.00000000 -0.00265179 -0.00133113 5*0.0 -0.00287312 0.00023058 0.00000000 0.00155083 0.00065994 128 | 5*0.0 0.00406637 -0.00036310 0.00000000 -0.00243083 -0.00120951 5*0.0 -0.00261567 0.00020695 0.00000000 0.00140607 0.00059420 129 | 5*0.0 0.00374559 -0.00032955 0.00000000 -0.00222711 -0.00109850 5*0.0 -0.00237987 0.00018568 0.00000000 0.00127410 0.00053473 130 | 5*0.0 0.00344787 -0.00029892 0.00000000 -0.00203921 -0.00099712 5*0.0 -0.00216391 0.00016651 0.00000000 0.00115380 0.00048092 131 | 5*0.0 0.00317158 -0.00027096 0.00000000 -0.00186593 -0.00090454 5*0.0 -0.00196619 0.00014923 0.00000000 0.00104416 0.00043226 132 | 5*0.0 0.00291545 -0.00024549 0.00000000 -0.00170629 -0.00082008 5*0.0 -0.00178533 0.00013366 0.00000000 0.00094433 0.00038828 133 | 5*0.0 0.00267832 -0.00022224 0.00000000 -0.00155935 -0.00074311 5*0.0 -0.00162016 0.00011964 0.00000000 0.00085356 0.00034860 134 | 5*0.0 0.00245902 -0.00020114 0.00000000 -0.00142429 -0.00067303 5*0.0 -0.00146935 0.00010706 0.00000000 0.00077106 0.00031279 135 | 5*0.0 0.00225559 -0.00018189 0.00000000 -0.00129981 -0.00060905 5*0.0 -0.00133138 0.00009572 0.00000000 0.00069592 0.00028043 136 | 5*0.0 0.00206823 -0.00016445 0.00000000 -0.00118578 -0.00055100 5*0.0 -0.00120594 0.00008556 0.00000000 0.00062790 0.00025134 137 | 5*0.0 0.00189470 -0.00014855 0.00000000 -0.00108083 -0.00049808 5*0.0 -0.00109133 0.00007642 0.00000000 0.00056603 0.00022508 138 | 5*0.0 0.00173480 -0.00013411 0.00000000 -0.00098466 -0.00045003 5*0.0 -0.00098713 0.00006822 0.00000000 0.00051001 0.00020147 139 | 5*0.0 0.00158767 -0.00012104 0.00000000 -0.00089665 -0.00040647 5*0.0 -0.00089247 0.00006088 0.00000000 0.00045934 0.00018027 140 | 5*0.0 0.00145174 -0.00010915 0.00000000 -0.00081585 -0.00036685 5*0.0 -0.00080620 0.00005429 0.00000000 0.00041336 0.00016117 141 | 5*0.0 0.00132637 -0.00009838 0.00000000 -0.00074175 -0.00033084 5*0.0 -0.00072769 0.00004838 0.00000000 0.00037170 0.00014398 142 | 5*0.0 0.00121139 -0.00008862 0.00000000 -0.00067414 -0.00029828 5*0.0 -0.00065661 0.00004310 0.00000000 0.00033413 0.00012860 143 | 5*0.0 0.00110545 -0.00007979 0.00000000 -0.00061222 -0.00026873 5*0.0 -0.00059200 0.00003837 0.00000000 0.00030013 0.00011477 144 | 5*0.0 0.00100806 -0.00007177 0.00000000 -0.00055561 -0.00024196 5*0.0 -0.00053339 0.00003414 0.00000000 0.00026941 0.00010236 145 | 5*0.0 0.00091879 -0.00006455 0.00000000 -0.00050398 -0.00021776 5*0.0 -0.00048035 0.00003036 0.00000000 0.00024172 0.00009126 146 | 5*0.0 0.00083668 -0.00005801 0.00000000 -0.00045678 -0.00019582 5*0.0 -0.00043220 0.00002698 0.00000000 0.00021670 0.00008130 147 | 5*0.0 0.00076157 -0.00005211 0.00000000 -0.00041382 -0.00017604 5*0.0 -0.00038872 0.00002397 0.00000000 0.00019418 0.00007239 148 | 5*0.0 0.00069275 -0.00004677 0.00000000 -0.00037467 -0.00015816 5*0.0 -0.00034941 0.00002128 0.00000000 0.00017391 0.00006443 149 | 5*0.0 0.00062967 -0.00004196 0.00000000 -0.00033898 -0.00014200 5*0.0 -0.00031385 0.00001888 0.00000000 0.00015565 0.00005730 150 | 5*0.0 0.00057189 -0.00003762 0.00000000 -0.00030647 -0.00012740 5*0.0 -0.00028169 0.00001675 0.00000000 0.00013920 0.00005093 151 | 5*0.0 0.00051915 -0.00003371 0.00000000 -0.00027694 -0.00011426 5*0.0 -0.00025271 0.00001485 0.00000000 0.00012443 0.00004524 152 | 5*0.0 0.00047088 -0.00003018 0.00000000 -0.00025007 -0.00010240 5*0.0 -0.00022654 0.00001315 0.00000000 0.00011114 0.00004017 153 | 5*0.0 0.00042689 -0.00002702 0.00000000 -0.00022568 -0.00009173 5*0.0 -0.00020297 0.00001164 0.00000000 0.00009923 0.00003564 154 | 5*0.0 0.00038669 -0.00002417 0.00000000 -0.00020352 -0.00008211 5*0.0 -0.00018172 0.00001030 0.00000000 0.00008853 0.00003160 155 | 5*0.0 0.00035012 -0.00002161 0.00000000 -0.00018346 -0.00007347 5*0.0 -0.00016263 0.00000911 0.00000000 0.00007895 0.00002802 156 | 5*0.0 0.00031671 -0.00001930 0.00000000 -0.00016522 -0.00006569 5*0.0 -0.00014542 0.00000805 0.00000000 0.00007035 0.00002481 157 | 5*0.0 0.00028633 -0.00001723 0.00000000 -0.00014871 -0.00005870 5*0.0 -0.00012996 0.00000711 0.00000000 0.00006265 0.00002196 158 | 5*0.0 0.00025870 -0.00001538 0.00000000 -0.00013378 -0.00005242 5*0.0 -0.00011607 0.00000628 0.00000000 0.00005577 0.00001943 159 | 5*0.0 0.00023358 -0.00001372 0.00000000 -0.00012027 -0.00004679 5*0.0 -0.00010360 0.00000554 0.00000000 0.00004961 0.00001718 160 | 5*0.0 0.00021073 -0.00001222 0.00000000 -0.00010803 -0.00004174 5*0.0 -0.00009241 0.00000488 0.00000000 0.00004409 0.00001518 161 | 5*0.0 0.00019001 -0.00001089 0.00000000 -0.00009699 -0.00003721 5*0.0 -0.00008238 0.00000431 0.00000000 0.00003917 0.00001341 162 | 5*0.0 0.00017121 -0.00000969 0.00000000 -0.00008702 -0.00003315 5*0.0 -0.00007339 0.00000379 0.00000000 0.00003478 0.00001184 163 | 5*0.0 0.00015417 -0.00000862 0.00000000 -0.00007803 -0.00002952 5*0.0 -0.00006534 0.00000334 0.00000000 0.00003086 0.00001044 164 | 5*0.0 0.00013872 -0.00000767 0.00000000 -0.00006991 -0.00002627 5*0.0 -0.00005813 0.00000294 0.00000000 0.00002737 0.00000920 165 | 5*0.0 0.00012473 -0.00000681 0.00000000 -0.00006260 -0.00002336 5*0.0 -0.00005169 0.00000258 0.00000000 0.00002425 0.00000811 166 | 5*0.0 0.00011209 -0.00000605 0.00000000 -0.00005602 -0.00002076 5*0.0 -0.00004593 0.00000227 0.00000000 0.00002148 0.00000714 167 | 5*0.0 0.00010066 -0.00000537 0.00000000 -0.00005010 -0.00001844 5*0.0 -0.00004079 0.00000199 0.00000000 0.00001901 0.00000628 168 | 5*0.0 0.00009032 -0.00000476 0.00000000 -0.00004477 -0.00001637 5*0.0 -0.00003620 0.00000175 0.00000000 0.00001682 0.00000553 169 | 5*0.0 0.00008101 -0.00000422 0.00000000 -0.00003999 -0.00001452 5*0.0 -0.00003211 0.00000154 0.00000000 0.00001487 0.00000486 170 | 5*0.0 0.00007260 -0.00000374 0.00000000 -0.00003569 -0.00001288 5*0.0 -0.00002846 0.00000135 0.00000000 0.00001314 0.00000427 171 | 5*0.0 0.00006503 -0.00000331 0.00000000 -0.00003184 -0.00001141 5*0.0 -0.00002522 0.00000118 0.00000000 0.00001160 0.00000375 172 | 5*0.0 0.00005820 -0.00000293 0.00000000 -0.00002838 -0.00001011 5*0.0 -0.00002232 0.00000103 0.00000000 0.00001024 0.00000329 173 | 5*0.0 0.00005205 -0.00000259 0.00000000 -0.00002528 -0.00000894 5*0.0 -0.00001975 0.00000090 0.00000000 0.00000903 0.00000288 174 | 5*0.0 0.00004652 -0.00000229 0.00000000 -0.00002251 -0.00000791 5*0.0 -0.00001746 0.00000079 0.00000000 0.00000796 0.00000253 175 | 5*0.0 0.00004155 -0.00000202 0.00000000 -0.00002002 -0.00000699 5*0.0 -0.00001543 0.00000069 0.00000000 0.00000701 0.00000221 176 | 5*0.0 0.00003709 -0.00000178 0.00000000 -0.00001780 -0.00000618 5*0.0 -0.00001362 0.00000060 0.00000000 0.00000617 0.00000194 177 | 5*0.0 0.00003308 -0.00000157 0.00000000 -0.00001582 -0.00000545 5*0.0 -0.00001202 0.00000053 0.00000000 0.00000543 0.00000170 178 | 5*0.0 0.00002949 -0.00000139 0.00000000 -0.00001404 -0.00000481 5*0.0 -0.00001060 0.00000046 0.00000000 0.00000477 0.00000148 179 | 5*0.0 0.00002627 -0.00000122 0.00000000 -0.00001246 -0.00000424 5*0.0 -0.00000935 0.00000040 0.00000000 0.00000419 0.00000130 180 | 5*0.0 0.00002338 -0.00000107 0.00000000 -0.00001105 -0.00000374 5*0.0 -0.00000823 0.00000035 0.00000000 0.00000368 0.00000113 181 | 5*0.0 0.00002079 -0.00000094 0.00000000 -0.00000979 -0.00000329 5*0.0 -0.00000724 0.00000030 0.00000000 0.00000323 0.00000099 182 | 5*0.0 0.00001848 -0.00000083 0.00000000 -0.00000867 -0.00000290 5*0.0 -0.00000637 0.00000027 0.00000000 0.00000283 0.00000086 183 | 5*0.0 0.00001642 -0.00000073 0.00000000 -0.00000767 -0.00000255 5*0.0 -0.00000560 0.00000023 0.00000000 0.00000248 0.00000075 184 | 5*0.0 0.00001457 -0.00000064 0.00000000 -0.00000678 -0.00000224 5*0.0 -0.00000492 0.00000020 0.00000000 0.00000217 0.00000065 185 | 5*0.0 0.00001293 -0.00000056 0.00000000 -0.00000599 -0.00000197 5*0.0 -0.00000432 0.00000017 0.00000000 0.00000190 0.00000057 186 | 5*0.0 0.00001146 -0.00000049 0.00000000 -0.00000529 -0.00000173 5*0.0 -0.00000379 0.00000015 0.00000000 0.00000166 0.00000050 187 | 5*0.0 0.00001015 -0.00000043 0.00000000 -0.00000467 -0.00000152 5*0.0 -0.00000332 0.00000013 0.00000000 0.00000145 0.00000043 188 | 5*0.0 0.00000899 -0.00000038 0.00000000 -0.00000412 -0.00000133 5*0.0 -0.00000291 0.00000011 0.00000000 0.00000127 0.00000037 189 | 5*0.0 0.00000795 -0.00000033 0.00000000 -0.00000363 -0.00000116 5*0.0 -0.00000255 0.00000010 0.00000000 0.00000111 0.00000032 190 | 5*0.0 0.00000703 -0.00000029 0.00000000 -0.00000320 -0.00000102 5*0.0 -0.00000223 0.00000009 0.00000000 0.00000097 0.00000028 191 | 5*0.0 0.00000621 -0.00000025 0.00000000 -0.00000281 -0.00000089 5*0.0 -0.00000195 0.00000007 0.00000000 0.00000084 0.00000024 192 | 5*0.0 0.00000548 -0.00000022 0.00000000 -0.00000248 -0.00000078 5*0.0 -0.00000171 0.00000006 0.00000000 0.00000074 0.00000021 193 | 5*0.0 0.00000483 -0.00000019 0.00000000 -0.00000218 -0.00000068 5*0.0 -0.00000149 0.00000006 0.00000000 0.00000064 0.00000018 194 | 5*0.0 0.00000426 -0.00000017 0.00000000 -0.00000191 -0.00000060 5*0.0 -0.00000130 0.00000005 0.00000000 0.00000056 0.00000016 195 | 5*0.0 0.00000375 -0.00000015 0.00000000 -0.00000168 -0.00000052 5*0.0 -0.00000113 0.00000004 0.00000000 0.00000048 0.00000014 196 | 5*0.0 0.00000330 -0.00000013 0.00000000 -0.00000147 -0.00000045 5*0.0 -0.00000099 0.00000004 0.00000000 0.00000042 0.00000012 197 | 5*0.0 0.00000291 -0.00000011 0.00000000 -0.00000129 -0.00000039 5*0.0 -0.00000086 0.00000003 0.00000000 0.00000037 0.00000010 198 | 5*0.0 0.00000255 -0.00000010 0.00000000 -0.00000113 -0.00000034 5*0.0 -0.00000075 0.00000003 0.00000000 0.00000032 0.00000009 199 | 5*0.0 0.00000224 -0.00000008 0.00000000 -0.00000099 -0.00000030 5*0.0 -0.00000065 0.00000002 0.00000000 0.00000028 0.00000008 200 | 5*0.0 0.00000197 -0.00000007 0.00000000 -0.00000086 -0.00000026 5*0.0 -0.00000057 0.00000002 0.00000000 0.00000024 0.00000007 201 | 5*0.0 0.00000173 -0.00000006 0.00000000 -0.00000075 -0.00000023 5*0.0 -0.00000049 0.00000002 0.00000000 0.00000021 0.00000006 202 | 5*0.0 0.00000151 -0.00000005 0.00000000 -0.00000066 -0.00000020 5*0.0 -0.00000043 0.00000001 0.00000000 0.00000018 0.00000005 203 | 5*0.0 0.00000133 -0.00000005 0.00000000 -0.00000058 -0.00000017 5*0.0 -0.00000037 0.00000001 0.00000000 0.00000015 0.00000004 204 | 5*0.0 0.00000116 -0.00000004 0.00000000 -0.00000050 -0.00000015 5*0.0 -0.00000032 0.00000001 0.00000000 0.00000013 0.00000004 205 | 5*0.0 0.00000101 -0.00000004 0.00000000 -0.00000044 -0.00000013 5*0.0 -0.00000028 0.00000001 0.00000000 0.00000012 0.00000003 206 | 5*0.0 0.00000089 -0.00000003 0.00000000 -0.00000038 -0.00000011 5*0.0 -0.00000024 0.00000001 0.00000000 0.00000010 0.00000003 207 | 5*0.0 0.00000077 -0.00000003 0.00000000 -0.00000033 -0.00000010 5*0.0 -0.00000021 0.00000001 0.00000000 0.00000009 0.00000002 208 | 5*0.0 0.00000067 -0.00000002 0.00000000 -0.00000029 -0.00000008 5*0.0 -0.00000018 0.00000001 0.00000000 0.00000007 0.00000002 209 | 5*0.0 0.00000059 -0.00000002 0.00000000 -0.00000025 -0.00000007 5*0.0 -0.00000016 0.00000000 0.00000000 0.00000006 0.00000002 210 | 5*0.0 0.00000051 -0.00000002 0.00000000 -0.00000022 -0.00000006 5*0.0 -0.00000013 0.00000000 0.00000000 0.00000006 0.00000001 211 | 5*0.0 0.00000045 -0.00000001 0.00000000 -0.00000019 -0.00000005 5*0.0 -0.00000012 0.00000000 0.00000000 0.00000005 0.00000001 212 | 5*0.0 0.00000039 -0.00000001 0.00000000 -0.00000016 -0.00000005 5*0.0 -0.00000010 0.00000000 0.00000000 0.00000004 0.00000001 213 | 5*0.0 0.00000034 -0.00000001 0.00000000 -0.00000014 -0.00000004 5*0.0 -0.00000009 0.00000000 0.00000000 0.00000003 0.00000001 214 | 5*0.0 0.00000029 -0.00000001 0.00000000 -0.00000012 -0.00000003 5*0.0 -0.00000007 0.00000000 0.00000000 0.00000003 0.00000001 215 | 5*0.0 0.00000025 -0.00000001 0.00000000 -0.00000011 -0.00000003 5*0.0 -0.00000006 0.00000000 0.00000000 0.00000003 0.00000001 216 | 5*0.0 0.00000022 -0.00000001 0.00000000 -0.00000009 -0.00000003 5*0.0 -0.00000005 0.00000000 0.00000000 0.00000002 0.00000001 217 | 5*0.0 0.00000019 -0.00000001 0.00000000 -0.00000008 -0.00000002 5*0.0 -0.00000005 0.00000000 0.00000000 0.00000002 0.00000000 218 | 5*0.0 0.00000017 -0.00000001 0.00000000 -0.00000007 -0.00000002 5*0.0 -0.00000004 0.00000000 0.00000000 0.00000002 0.00000000 219 | 5*0.0 0.00000014 -0.00000000 0.00000000 -0.00000006 -0.00000002 5*0.0 -0.00000003 0.00000000 0.00000000 0.00000001 0.00000000 220 | 5*0.0 0.00000012 -0.00000000 0.00000000 -0.00000005 -0.00000001 5*0.0 -0.00000003 0.00000000 0.00000000 0.00000001 0.00000000 221 | 5*0.0 0.00000011 -0.00000000 0.00000000 -0.00000004 -0.00000001 5*0.0 -0.00000003 0.00000000 0.00000000 0.00000001 0.00000000 222 | 5*0.0 0.00000009 -0.00000000 0.00000000 -0.00000004 -0.00000001 5*0.0 -0.00000002 0.00000000 0.00000000 0.00000001 0.00000000 223 | 5*0.0 0.00000008 -0.00000000 0.00000000 -0.00000003 -0.00000001 5*0.0 -0.00000002 0.00000000 0.00000000 0.00000001 0.00000000 224 | 5*0.0 0.00000007 -0.00000000 0.00000000 -0.00000003 -0.00000001 5*0.0 -0.00000002 0.00000000 0.00000000 0.00000001 0.00000000 225 | 5*0.0 0.00000006 -0.00000000 0.00000000 -0.00000002 -0.00000001 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000001 0.00000000 226 | 5*0.0 0.00000005 -0.00000000 0.00000000 -0.00000002 -0.00000001 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 227 | 5*0.0 0.00000004 -0.00000000 0.00000000 -0.00000002 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 228 | 5*0.0 0.00000004 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 229 | 5*0.0 0.00000003 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 230 | 5*0.0 0.00000003 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 231 | 5*0.0 0.00000002 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 232 | 5*0.0 0.00000002 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 233 | 5*0.0 0.00000002 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 234 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 235 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 236 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 237 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 238 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 239 | 5*0.0 0.00000000 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 240 | 5*0.0 0.00000000 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 241 | 5*0.0 0.00000000 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 242 | 5*0.0 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 5*0.0 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 243 | 244 | 245 | Spline 246 | 26 3.87 247 | 1.934283333282545 3.718072645483851 -0.7282490839084601 248 | 1.3 1.4 2.6035229748112 -6.444591163477911 6.232832638667645 1.122633303643655 249 | 1.4 1.5 2.02251481815373 -5.164345636635074 6.569622629760741 -5.613166518219346 250 | 1.5 1.6 1.56616331426961 -4.018816106229505 4.885672674294936 -2.953570330208558 251 | 1.6 1.7 1.2101848600594 -3.130288681276774 3.999601575232368 -2.911502080789636 252 | 1.7 1.8 0.934240505603257 -2.417713428653991 3.126150950995478 -2.261792742873556 253 | 1.8 1.9 0.721468879504939 -1.860337020741101 2.447613128133411 -1.862307996353177 254 | 1.9 2 0.55804900071581 -1.426683635005015 1.888920729227458 -1.47686766875597 255 | 2 2.1 0.432792976838827 -1.093205519222202 1.445860428600667 -1.162440290063367 256 | 2.1 2.2 0.33676858891255 -0.8389066422039695 1.097128341581656 -0.8974454328275902 257 | 2.2 2.3 0.262951762675142 -0.6464043368724658 0.8278947117333791 -0.6813497968703626 258 | 2.3 2.4 0.205908926308359 -0.5012658884319013 0.6234897726722711 -0.5079805303275545 259 | 2.4 2.5 0.161509254661564 -0.3918073498072736 0.4710956135740046 -0.3726758608606395 260 | 2.5 2.6 0.126666799955716 -0.3087685029182918 0.3592928553158127 -0.2703692496704538 261 | 2.6 2.7 0.09911250896737447 -0.2450210093452428 0.2781820804146765 -0.1961021442967155 262 | 2.7 2.8 0.07719612669270022 -0.195267657591209 0.2193514371256617 -0.1448888133829973 263 | 2.8 2.9 0.059717986491453 -0.1557440345675667 0.1758847931107627 -0.1117442548111967 264 | 2.9 3 0.04579068671099275 -0.12391940358975 0.1423615166674037 -0.0917077284122865 265 | 3 3.1 0.03473065379027949 -0.09819833210863785 0.1148491981437177 -0.07972071697964057 266 | 3.1 3.2 0.02597959184387323 -0.07762011398928351 0.09093298304982551 -0.07109154950917919 267 | 3.2 3.3 0.01905581872593395 -0.06156626386459377 0.06960551819707174 -0.0597589472236276 268 | 3.3 3.4 0.01353548857422168 -0.04943792864188829 0.05167783402998352 -0.04477321623626898 269 | 3.4 3.5 0.009063700834096414 -0.04044555832297965 0.03824586915910282 -0.006107930871331319 270 | 3.5 3.6 0.005395495762518143 -0.03297962241729901 0.03641348989770342 0.00506799228160157 271 | 3.6 3.7 0.002466736412046875 -0.02554488466931028 0.03793388758218389 0.2032902739049307 272 | 3.7 3.8 0.0004948770948426154 -0.01185939893572556 0.09892096975366317 -0.2981468988066914 273 | 3.8 3.87 0 -0.001019611949193676 0.009476900111656059 0.8423515656559675 -17.978852974057 99.76896458829908 274 | 275 | 276 | Jiayan Xu at Queens, Thu Nov 12 23:00:53 2020 277 | elec - hotbit repl - mat-sci-03 278 | 279 | -------------------------------------------------------------------------------- /examples/skf/O-C.skf: -------------------------------------------------------------------------------- 1 | 0.05 240 2 | 16.01 8*0.0 3.0 10*0.0 3 | 20*0.0 4 | 20*0.0 5 | 20*0.0 6 | 20*0.0 7 | 20*0.0 8 | 20*0.0 9 | 20*0.0 10 | 20*0.0 11 | 20*0.0 12 | 5*0.0 -0.91982230 -1.69133900 0.00000000 -0.22437550 -1.20727100 5*0.0 0.69182660 0.87465410 0.00000000 0.27804650 0.83587330 13 | 5*0.0 -0.76467560 -1.61403900 0.00000000 -0.31468950 -1.14251000 5*0.0 0.64266680 0.85575900 0.00000000 0.30608280 0.82283460 14 | 5*0.0 -0.61850830 -1.53706400 0.00000000 -0.40171410 -1.09668600 5*0.0 0.59207150 0.83583800 0.00000000 0.33328020 0.81012850 15 | 5*0.0 -0.48233510 -1.46107000 0.00000000 -0.48350150 -1.06521200 5*0.0 0.54056370 0.81507260 0.00000000 0.35942470 0.79774140 16 | 5*0.0 -0.35670930 -1.38662100 0.00000000 -0.55892090 -1.04422000 5*0.0 0.48861250 0.79362510 0.00000000 0.38433540 0.78562430 17 | 5*0.0 -0.24171820 -1.31409900 0.00000000 -0.62718220 -1.03037900 5*0.0 0.43665260 0.77152510 0.00000000 0.40779300 0.77357640 18 | 5*0.0 -0.13736690 -1.24369000 0.00000000 -0.68775770 -1.02106800 5*0.0 0.38509930 0.74892030 0.00000000 0.42963890 0.76153770 19 | 5*0.0 -0.04346130 -1.17586100 0.00000000 -0.74065040 -1.01452600 5*0.0 0.33425270 0.72602700 0.00000000 0.44983690 0.74951710 20 | 5*0.0 0.04043818 -1.11055300 0.00000000 -0.78577980 -1.00897700 5*0.0 0.28447520 0.70285900 0.00000000 0.46821310 0.73733630 21 | 5*0.0 0.11483830 -1.04795800 0.00000000 -0.82348470 -1.00337000 5*0.0 0.23601600 0.67948680 0.00000000 0.48470790 0.72489510 22 | 5*0.0 0.18041980 -0.98819770 0.00000000 -0.85418300 -0.99702270 5*0.0 0.18904340 0.65617280 0.00000000 0.49937400 0.71229940 23 | 5*0.0 0.23754650 -0.93112300 0.00000000 -0.87808170 -0.98914550 5*0.0 0.14386840 0.63280120 0.00000000 0.51205190 0.69930670 24 | 5*0.0 0.28713050 -0.87687010 0.00000000 -0.89589110 -0.97962560 5*0.0 0.10052940 0.60959390 0.00000000 0.52286610 0.68602880 25 | 5*0.0 0.32959810 -0.82531630 0.00000000 -0.90797940 -0.96815390 5*0.0 0.05922985 0.58653050 0.00000000 0.53176170 0.67235520 26 | 5*0.0 0.36553620 -0.77643200 0.00000000 -0.91483160 -0.95470030 5*0.0 0.02006336 0.56373750 0.00000000 0.53879720 0.65832860 27 | 5*0.0 0.39576690 -0.73011880 0.00000000 -0.91707810 -0.93931640 5*0.0 -0.01692846 0.54121700 0.00000000 0.54402080 0.64391280 28 | 5*0.0 0.42066350 -0.68634830 0.00000000 -0.91513870 -0.92213810 5*0.0 -0.05170238 0.51910020 0.00000000 0.54753340 0.62919230 29 | 5*0.0 0.44074240 -0.64494690 0.00000000 -0.90943810 -0.90319340 5*0.0 -0.08415352 0.49731780 0.00000000 0.54931490 0.61406960 30 | 5*0.0 0.45663100 -0.60590790 0.00000000 -0.90053190 -0.88280430 5*0.0 -0.11437510 0.47602600 0.00000000 0.54954940 0.59869210 31 | 5*0.0 0.46871500 -0.56903390 0.00000000 -0.88875270 -0.86102030 5*0.0 -0.14228540 0.45514520 0.00000000 0.54822440 0.58297770 32 | 5*0.0 0.47734890 -0.53430460 0.00000000 -0.87448590 -0.83811860 5*0.0 -0.16794790 0.43482490 0.00000000 0.54550010 0.56706720 33 | 5*0.0 0.48306460 -0.50157730 0.00000000 -0.85816490 -0.81428700 5*0.0 -0.19141400 0.41497330 0.00000000 0.54144720 0.55092560 34 | 5*0.0 0.48609200 -0.47075490 0.00000000 -0.84002230 -0.78967250 5*0.0 -0.21266500 0.39569840 0.00000000 0.53613350 0.53462100 35 | 5*0.0 0.48684220 -0.44172670 0.00000000 -0.82042350 -0.76447670 5*0.0 -0.23180280 0.37692540 0.00000000 0.52966590 0.51815960 36 | 5*0.0 0.48549020 -0.41445320 0.00000000 -0.79958210 -0.73889970 5*0.0 -0.24889300 0.35880680 0.00000000 0.52218870 0.50168500 37 | 5*0.0 0.48242160 -0.38878050 0.00000000 -0.77779170 -0.71305930 5*0.0 -0.26399120 0.34122060 0.00000000 0.51373810 0.48513620 38 | 5*0.0 0.47779810 -0.36463590 0.00000000 -0.75523100 -0.68709230 5*0.0 -0.27715370 0.32419960 0.00000000 0.50440870 0.46857350 39 | 5*0.0 0.47186850 -0.34195860 0.00000000 -0.73212180 -0.66117420 5*0.0 -0.28851240 0.30781710 0.00000000 0.49434320 0.45210040 40 | 5*0.0 0.46484420 -0.32062690 0.00000000 -0.70864260 -0.63538690 5*0.0 -0.29814670 0.29196780 0.00000000 0.48360110 0.43569360 41 | 5*0.0 0.45681320 -0.30059170 0.00000000 -0.68489570 -0.60981530 5*0.0 -0.30606860 0.27673620 0.00000000 0.47223460 0.41940410 42 | 5*0.0 0.44795030 -0.28177330 0.00000000 -0.66103340 -0.58456740 5*0.0 -0.31241520 0.26210060 0.00000000 0.46036260 0.40328840 43 | 5*0.0 0.43843880 -0.26408730 0.00000000 -0.63719810 -0.55971750 5*0.0 -0.31727560 0.24801550 0.00000000 0.44804670 0.38734870 44 | 5*0.0 0.42835280 -0.24747660 0.00000000 -0.61346230 -0.53531670 5*0.0 -0.32070550 0.23450570 0.00000000 0.43534440 0.37161820 45 | 5*0.0 0.41783470 -0.23188370 0.00000000 -0.58994440 -0.51146140 5*0.0 -0.32287290 0.22157570 0.00000000 0.42239090 0.35617600 46 | 5*0.0 0.40696850 -0.21723760 0.00000000 -0.56671010 -0.48816960 5*0.0 -0.32381610 0.20918220 0.00000000 0.40920440 0.34100100 47 | 5*0.0 0.39585410 -0.20349600 0.00000000 -0.54383750 -0.46550140 5*0.0 -0.32364510 0.19734650 0.00000000 0.39586950 0.32614310 48 | 5*0.0 0.38453540 -0.19058800 0.00000000 -0.52136070 -0.44346110 5*0.0 -0.32242510 0.18602800 0.00000000 0.38242770 0.31160420 49 | 5*0.0 0.37306740 -0.17847120 0.00000000 -0.49932110 -0.42206780 5*0.0 -0.32021000 0.17522900 0.00000000 0.36891260 0.29739320 50 | 5*0.0 0.36155410 -0.16710370 0.00000000 -0.47778860 -0.40137290 5*0.0 -0.31715450 0.16494190 0.00000000 0.35542510 0.28356100 51 | 5*0.0 0.35001040 -0.15643190 0.00000000 -0.45677360 -0.38136260 5*0.0 -0.31328800 0.15513810 0.00000000 0.34197630 0.27009450 52 | 5*0.0 0.33852310 -0.14641780 0.00000000 -0.43632630 -0.36206950 5*0.0 -0.30873810 0.14581790 0.00000000 0.32864230 0.25703090 53 | 5*0.0 0.32707700 -0.13702190 0.00000000 -0.41643600 -0.34346370 5*0.0 -0.30350330 0.13695070 0.00000000 0.31541020 0.24434080 54 | 5*0.0 0.31573170 -0.12821050 0.00000000 -0.39713460 -0.32556820 5*0.0 -0.29770440 0.12854690 0.00000000 0.30235310 0.23206530 55 | 5*0.0 0.30452320 -0.11993650 0.00000000 -0.37843430 -0.30837010 5*0.0 -0.29140970 0.12055640 0.00000000 0.28949420 0.22019210 56 | 5*0.0 0.29349100 -0.11218430 0.00000000 -0.36035650 -0.29188650 5*0.0 -0.28471490 0.11299980 0.00000000 0.27688900 0.20875380 57 | 5*0.0 0.28260300 -0.10490550 0.00000000 -0.34286780 -0.27605950 5*0.0 -0.27757480 0.10582660 0.00000000 0.26448780 0.19769310 58 | 5*0.0 0.27192760 -0.09807831 0.00000000 -0.32600080 -0.26091730 5*0.0 -0.27014700 0.09904205 0.00000000 0.25237840 0.18705890 59 | 5*0.0 0.26146800 -0.09168254 0.00000000 -0.30974840 -0.24644440 5*0.0 -0.26246860 0.09263843 0.00000000 0.24057130 0.17684660 60 | 5*0.0 0.25122660 -0.08568382 0.00000000 -0.29409870 -0.23261280 5*0.0 -0.25456390 0.08658713 0.00000000 0.22906220 0.16703620 61 | 5*0.0 0.24120370 -0.08005475 0.00000000 -0.27903940 -0.21939840 5*0.0 -0.24645860 0.08086570 0.00000000 0.21784980 0.15761210 62 | 5*0.0 0.23144610 -0.07478406 0.00000000 -0.26458680 -0.20681650 5*0.0 -0.23827480 0.07548189 0.00000000 0.20699660 0.14860830 63 | 5*0.0 0.22194140 -0.06984198 0.00000000 -0.25071970 -0.19483300 5*0.0 -0.23002010 0.07040609 0.00000000 0.19648820 0.13999970 64 | 5*0.0 0.21268140 -0.06521293 0.00000000 -0.23742010 -0.18342280 5*0.0 -0.22169880 0.06563081 0.00000000 0.18631140 0.13176800 65 | 5*0.0 0.20368500 -0.06087262 0.00000000 -0.22468450 -0.17257650 5*0.0 -0.21338860 0.06113671 0.00000000 0.17649620 0.12392060 66 | 5*0.0 0.19494220 -0.05681060 0.00000000 -0.21249430 -0.16226840 5*0.0 -0.20508150 0.05691673 0.00000000 0.16702190 0.11643490 67 | 5*0.0 0.18646170 -0.05299969 0.00000000 -0.20083890 -0.15247980 5*0.0 -0.19683280 0.05294198 0.00000000 0.15790250 0.10930610 68 | 5*0.0 0.17825820 -0.04943671 0.00000000 -0.18971480 -0.14320830 5*0.0 -0.18869240 0.04922592 0.00000000 0.14915650 0.10254320 69 | 5*0.0 0.17030410 -0.04609595 0.00000000 -0.17909040 -0.13441200 5*0.0 -0.18063700 0.04573198 0.00000000 0.14075020 0.09610976 70 | 5*0.0 0.16261410 -0.04297116 0.00000000 -0.16896090 -0.12608470 5*0.0 -0.17271340 0.04246132 0.00000000 0.13269740 0.09000877 71 | 5*0.0 0.15518590 -0.04004645 0.00000000 -0.15931130 -0.11820790 5*0.0 -0.16494430 0.03940192 0.00000000 0.12499680 0.08423175 72 | 5*0.0 0.14800500 -0.03730887 0.00000000 -0.15011910 -0.11075430 5*0.0 -0.15732080 0.03653695 0.00000000 0.11762740 0.07875594 73 | 5*0.0 0.14107840 -0.03474944 0.00000000 -0.14137530 -0.10371300 5*0.0 -0.14987440 0.03386138 0.00000000 0.11059420 0.07357870 74 | 5*0.0 0.13440520 -0.03235325 0.00000000 -0.13306520 -0.09706695 5*0.0 -0.14263130 0.03135960 0.00000000 0.10389740 0.06869197 75 | 5*0.0 0.12797180 -0.03011367 0.00000000 -0.12516860 -0.09079354 5*0.0 -0.13557660 0.02902458 0.00000000 0.09751564 0.06407653 76 | 5*0.0 0.12177910 -0.02801911 0.00000000 -0.11767320 -0.08487896 5*0.0 -0.12873180 0.02684739 0.00000000 0.09144875 0.05972645 77 | 5*0.0 0.11581860 -0.02606185 0.00000000 -0.11056100 -0.07930378 5*0.0 -0.12209640 0.02481661 0.00000000 0.08568316 0.05562675 78 | 5*0.0 0.11008780 -0.02423187 0.00000000 -0.10381910 -0.07405362 5*0.0 -0.11568000 0.02292471 0.00000000 0.08021322 0.05176900 79 | 5*0.0 0.10459310 -0.02252516 0.00000000 -0.09743879 -0.06911994 5*0.0 -0.10950650 0.02116842 0.00000000 0.07504095 0.04815018 80 | 5*0.0 0.09930466 -0.02092883 0.00000000 -0.09139173 -0.06447204 5*0.0 -0.10353350 0.01953005 0.00000000 0.07013108 0.04474187 81 | 5*0.0 0.09423465 -0.01944029 0.00000000 -0.08567378 -0.06010660 5*0.0 -0.09779294 0.01801072 0.00000000 0.06549202 0.04154659 82 | 5*0.0 0.08937573 -0.01805023 0.00000000 -0.08026911 -0.05600738 5*0.0 -0.09228691 0.01659821 0.00000000 0.06111383 0.03855294 83 | 5*0.0 0.08471591 -0.01675251 0.00000000 -0.07516106 -0.05215758 5*0.0 -0.08699981 0.01528695 0.00000000 0.05697922 0.03574683 84 | 5*0.0 0.08025437 -0.01554275 0.00000000 -0.07033887 -0.04854651 5*0.0 -0.08193780 0.01407039 0.00000000 0.05308224 0.03312084 85 | 5*0.0 0.07598297 -0.01441477 0.00000000 -0.06578827 -0.04516033 5*0.0 -0.07709376 0.01294326 0.00000000 0.04941094 0.03066461 86 | 5*0.0 0.07189755 -0.01336318 0.00000000 -0.06149741 -0.04198754 5*0.0 -0.07246733 0.01189957 0.00000000 0.04595704 0.02836991 87 | 5*0.0 0.06799510 -0.01238368 0.00000000 -0.05745527 -0.03901785 5*0.0 -0.06806068 0.01093350 0.00000000 0.04271367 0.02622953 88 | 5*0.0 0.06426767 -0.01146998 0.00000000 -0.05364874 -0.03623880 5*0.0 -0.06386700 0.01003889 0.00000000 0.03967003 0.02423413 89 | 5*0.0 0.06070967 -0.01062007 0.00000000 -0.05006644 -0.03363981 5*0.0 -0.05987757 0.00921263 0.00000000 0.03681489 0.02237471 90 | 5*0.0 0.05731546 -0.00982987 0.00000000 -0.04669752 -0.03121071 5*0.0 -0.05608583 0.00845036 0.00000000 0.03413856 0.02064321 91 | 5*0.0 0.05407447 -0.00909319 0.00000000 -0.04352832 -0.02893906 5*0.0 -0.05248244 0.00774489 0.00000000 0.03162981 0.01903030 92 | 5*0.0 0.05099366 -0.00840962 0.00000000 -0.04055505 -0.02682177 5*0.0 -0.04907766 0.00709597 0.00000000 0.02928839 0.01753440 93 | 5*0.0 0.04805057 -0.00777212 0.00000000 -0.03775901 -0.02484160 5*0.0 -0.04584120 0.00649543 0.00000000 0.02709341 0.01614067 94 | 5*0.0 0.04526033 -0.00718162 0.00000000 -0.03514095 -0.02299991 5*0.0 -0.04279586 0.00594454 0.00000000 0.02505145 0.01485197 95 | 5*0.0 0.04260297 -0.00663211 0.00000000 -0.03268416 -0.02128165 5*0.0 -0.03991559 0.00543600 0.00000000 0.02314439 0.01365547 96 | 5*0.0 0.04007732 -0.00612166 0.00000000 -0.03038195 -0.01968108 5*0.0 -0.03719800 0.00496807 0.00000000 0.02136679 0.01254676 97 | 5*0.0 0.03767647 -0.00564822 0.00000000 -0.02822506 -0.01819021 5*0.0 -0.03463318 0.00453780 0.00000000 0.01970962 0.01151922 98 | 5*0.0 0.03539909 -0.00520874 0.00000000 -0.02620706 -0.01680372 5*0.0 -0.03222162 0.00414222 0.00000000 0.01816910 0.01056938 99 | 5*0.0 0.03324139 -0.00480140 0.00000000 -0.02432080 -0.01551556 5*0.0 -0.02995658 0.00377949 0.00000000 0.01673840 0.00969226 100 | 5*0.0 0.03119390 -0.00442389 0.00000000 -0.02255657 -0.01431756 5*0.0 -0.02782546 0.00344629 0.00000000 0.01540791 0.00888111 101 | 5*0.0 0.02925541 -0.00407392 0.00000000 -0.02090886 -0.01320526 5*0.0 -0.02582732 0.00314064 0.00000000 0.01417400 0.00813292 102 | 5*0.0 0.02741993 -0.00375037 0.00000000 -0.01937043 -0.01217266 5*0.0 -0.02395213 0.00286089 0.00000000 0.01302898 0.00744247 103 | 5*0.0 0.02568267 -0.00345023 0.00000000 -0.01793451 -0.01121433 5*0.0 -0.02219598 0.00260391 0.00000000 0.01196810 0.00680607 104 | 5*0.0 0.02404213 -0.00317256 0.00000000 -0.01659643 -0.01032653 5*0.0 -0.02055500 0.00236885 0.00000000 0.01098701 0.00622063 105 | 5*0.0 0.02249144 -0.00291619 0.00000000 -0.01534913 -0.00950355 5*0.0 -0.01901887 0.00215401 0.00000000 0.01007855 0.00568142 106 | 5*0.0 0.02102706 -0.00267899 0.00000000 -0.01418723 -0.00874121 5*0.0 -0.01758395 0.00195738 0.00000000 0.00923873 0.00518548 107 | 5*0.0 0.01964631 -0.00245972 0.00000000 -0.01310616 -0.00803592 5*0.0 -0.01624635 0.00177762 0.00000000 0.00846368 0.00473008 108 | 5*0.0 0.01834614 -0.00225765 0.00000000 -0.01210126 -0.00738407 5*0.0 -0.01500071 0.00161380 0.00000000 0.00774905 0.00431232 109 | 5*0.0 0.01712000 -0.00207091 0.00000000 -0.01116650 -0.00678098 5*0.0 -0.01383919 0.00146408 0.00000000 0.00708946 0.00392864 110 | 5*0.0 0.01596511 -0.00189851 0.00000000 -0.01029783 -0.00622357 5*0.0 -0.01275792 0.00132737 0.00000000 0.00648151 0.00357672 111 | 5*0.0 0.01487828 -0.00173957 0.00000000 -0.00949117 -0.00570875 5*0.0 -0.01175217 0.00120270 0.00000000 0.00592157 0.00325416 112 | 5*0.0 0.01385811 -0.00159346 0.00000000 -0.00874340 -0.00523421 5*0.0 -0.01081908 0.00108949 0.00000000 0.00540697 0.00295918 113 | 5*0.0 0.01289770 -0.00145840 0.00000000 -0.00804908 -0.00479581 5*0.0 -0.00995144 0.00098596 0.00000000 0.00493317 0.00268883 114 | 5*0.0 0.01199669 -0.00133441 0.00000000 -0.00740590 -0.00439193 5*0.0 -0.00914699 0.00089201 0.00000000 0.00449802 0.00244173 115 | 5*0.0 0.01115160 -0.00122018 0.00000000 -0.00681026 -0.00401991 5*0.0 -0.00840204 0.00080650 0.00000000 0.00409874 0.00221604 116 | 5*0.0 0.01036014 -0.00111520 0.00000000 -0.00625923 -0.00367761 5*0.0 -0.00771314 0.00072884 0.00000000 0.00373283 0.00201017 117 | 5*0.0 0.00961812 -0.00101870 0.00000000 -0.00574930 -0.00336247 5*0.0 -0.00707526 0.00065826 0.00000000 0.00339718 0.00182218 118 | 5*0.0 0.00892338 -0.00093006 0.00000000 -0.00527781 -0.00307260 5*0.0 -0.00648555 0.00059418 0.00000000 0.00308968 0.00165073 119 | 5*0.0 0.00827217 -0.00084854 0.00000000 -0.00484165 -0.00280578 5*0.0 -0.00593970 0.00053594 0.00000000 0.00280773 0.00149423 120 | 5*0.0 0.00766557 -0.00077401 0.00000000 -0.00443982 -0.00256134 5*0.0 -0.00543787 0.00048335 0.00000000 0.00255064 0.00135217 121 | 5*0.0 0.00709737 -0.00070548 0.00000000 -0.00406838 -0.00233646 5*0.0 -0.00497373 0.00043555 0.00000000 0.00231508 0.00122256 122 | 5*0.0 0.00656749 -0.00064266 0.00000000 -0.00372607 -0.00213029 5*0.0 -0.00454665 0.00039225 0.00000000 0.00210016 0.00110483 123 | 5*0.0 0.00607363 -0.00058522 0.00000000 -0.00341075 -0.00194135 5*0.0 -0.00415369 0.00035314 0.00000000 0.00190410 0.00099790 124 | 5*0.0 0.00561278 -0.00053253 0.00000000 -0.00312011 -0.00176807 5*0.0 -0.00379182 0.00031769 0.00000000 0.00172514 0.00090070 125 | 5*0.0 0.00518348 -0.00048434 0.00000000 -0.00285256 -0.00160933 5*0.0 -0.00345911 0.00028566 0.00000000 0.00156200 0.00081247 126 | 5*0.0 0.00478359 -0.00044021 0.00000000 -0.00260631 -0.00146395 5*0.0 -0.00315329 0.00025666 0.00000000 0.00141332 0.00073240 127 | 5*0.0 0.00441237 -0.00040000 0.00000000 -0.00238021 -0.00133116 5*0.0 -0.00287312 0.00023058 0.00000000 0.00127821 0.00065994 128 | 5*0.0 0.00406662 -0.00036312 0.00000000 -0.00217217 -0.00120954 5*0.0 -0.00261567 0.00020695 0.00000000 0.00115513 0.00059420 129 | 5*0.0 0.00374582 -0.00032956 0.00000000 -0.00198130 -0.00109851 5*0.0 -0.00237987 0.00018568 0.00000000 0.00104331 0.00053473 130 | 5*0.0 0.00344807 -0.00029893 0.00000000 -0.00180615 -0.00099712 5*0.0 -0.00216391 0.00016651 0.00000000 0.00094175 0.00048092 131 | 5*0.0 0.00317179 -0.00027097 0.00000000 -0.00164546 -0.00090454 5*0.0 -0.00196619 0.00014923 0.00000000 0.00084951 0.00043226 132 | 5*0.0 0.00291564 -0.00024548 0.00000000 -0.00149815 -0.00082007 5*0.0 -0.00178533 0.00013366 0.00000000 0.00076583 0.00038828 133 | 5*0.0 0.00267850 -0.00022224 0.00000000 -0.00136325 -0.00074309 5*0.0 -0.00162016 0.00011964 0.00000000 0.00069001 0.00034860 134 | 5*0.0 0.00245914 -0.00020114 0.00000000 -0.00123980 -0.00067298 5*0.0 -0.00146935 0.00010706 0.00000000 0.00062133 0.00031279 135 | 5*0.0 0.00225578 -0.00018188 0.00000000 -0.00112669 -0.00060902 5*0.0 -0.00133138 0.00009572 0.00000000 0.00055902 0.00028043 136 | 5*0.0 0.00206841 -0.00016444 0.00000000 -0.00102350 -0.00055096 5*0.0 -0.00120594 0.00008556 0.00000000 0.00050278 0.00025134 137 | 5*0.0 0.00189494 -0.00014855 0.00000000 -0.00092903 -0.00049805 5*0.0 -0.00109133 0.00007642 0.00000000 0.00045183 0.00022508 138 | 5*0.0 0.00173504 -0.00013411 0.00000000 -0.00084286 -0.00045000 5*0.0 -0.00098713 0.00006822 0.00000000 0.00040584 0.00020147 139 | 5*0.0 0.00158785 -0.00012102 0.00000000 -0.00076430 -0.00040641 5*0.0 -0.00089247 0.00006088 0.00000000 0.00036438 0.00018027 140 | 5*0.0 0.00145192 -0.00010914 0.00000000 -0.00069258 -0.00036678 5*0.0 -0.00080620 0.00005429 0.00000000 0.00032689 0.00016117 141 | 5*0.0 0.00132659 -0.00009836 0.00000000 -0.00062713 -0.00033079 5*0.0 -0.00072769 0.00004838 0.00000000 0.00029304 0.00014398 142 | 5*0.0 0.00121158 -0.00008861 0.00000000 -0.00056764 -0.00029822 5*0.0 -0.00065661 0.00004310 0.00000000 0.00026261 0.00012860 143 | 5*0.0 0.00110564 -0.00007977 0.00000000 -0.00051342 -0.00026866 5*0.0 -0.00059200 0.00003837 0.00000000 0.00023516 0.00011477 144 | 5*0.0 0.00100826 -0.00007176 0.00000000 -0.00046408 -0.00024188 5*0.0 -0.00053339 0.00003414 0.00000000 0.00021045 0.00010236 145 | 5*0.0 0.00091899 -0.00006453 0.00000000 -0.00041928 -0.00021768 5*0.0 -0.00048035 0.00003036 0.00000000 0.00018825 0.00009126 146 | 5*0.0 0.00083690 -0.00005799 0.00000000 -0.00037851 -0.00019575 5*0.0 -0.00043220 0.00002698 0.00000000 0.00016825 0.00008130 147 | 5*0.0 0.00076176 -0.00005208 0.00000000 -0.00034155 -0.00017595 5*0.0 -0.00038872 0.00002397 0.00000000 0.00015032 0.00007239 148 | 5*0.0 0.00069292 -0.00004674 0.00000000 -0.00030802 -0.00015807 5*0.0 -0.00034941 0.00002128 0.00000000 0.00013422 0.00006443 149 | 5*0.0 0.00062984 -0.00004194 0.00000000 -0.00027761 -0.00014191 5*0.0 -0.00031385 0.00001888 0.00000000 0.00011977 0.00005730 150 | 5*0.0 0.00057204 -0.00003759 0.00000000 -0.00025002 -0.00012732 5*0.0 -0.00028169 0.00001675 0.00000000 0.00010679 0.00005093 151 | 5*0.0 0.00051926 -0.00003369 0.00000000 -0.00022508 -0.00011419 5*0.0 -0.00025271 0.00001485 0.00000000 0.00009518 0.00004524 152 | 5*0.0 0.00047097 -0.00003016 0.00000000 -0.00020248 -0.00010233 5*0.0 -0.00022654 0.00001315 0.00000000 0.00008477 0.00004017 153 | 5*0.0 0.00042694 -0.00002699 0.00000000 -0.00018204 -0.00009166 5*0.0 -0.00020297 0.00001164 0.00000000 0.00007546 0.00003564 154 | 5*0.0 0.00038669 -0.00002414 0.00000000 -0.00016354 -0.00008203 5*0.0 -0.00018172 0.00001030 0.00000000 0.00006713 0.00003160 155 | 5*0.0 0.00035010 -0.00002158 0.00000000 -0.00014685 -0.00007339 5*0.0 -0.00016263 0.00000911 0.00000000 0.00005969 0.00002802 156 | 5*0.0 0.00031667 -0.00001928 0.00000000 -0.00013175 -0.00006561 5*0.0 -0.00014542 0.00000805 0.00000000 0.00005303 0.00002481 157 | 5*0.0 0.00028625 -0.00001720 0.00000000 -0.00011813 -0.00005862 5*0.0 -0.00012996 0.00000711 0.00000000 0.00004710 0.00002196 158 | 5*0.0 0.00025860 -0.00001535 0.00000000 -0.00010585 -0.00005234 5*0.0 -0.00011607 0.00000628 0.00000000 0.00004180 0.00001943 159 | 5*0.0 0.00023347 -0.00001369 0.00000000 -0.00009481 -0.00004671 5*0.0 -0.00010360 0.00000554 0.00000000 0.00003707 0.00001718 160 | 5*0.0 0.00021060 -0.00001220 0.00000000 -0.00008484 -0.00004165 5*0.0 -0.00009241 0.00000488 0.00000000 0.00003286 0.00001518 161 | 5*0.0 0.00018987 -0.00001086 0.00000000 -0.00007589 -0.00003712 5*0.0 -0.00008238 0.00000431 0.00000000 0.00002911 0.00001341 162 | 5*0.0 0.00017106 -0.00000967 0.00000000 -0.00006783 -0.00003307 5*0.0 -0.00007339 0.00000379 0.00000000 0.00002577 0.00001184 163 | 5*0.0 0.00015401 -0.00000860 0.00000000 -0.00006059 -0.00002944 5*0.0 -0.00006534 0.00000334 0.00000000 0.00002280 0.00001044 164 | 5*0.0 0.00013856 -0.00000764 0.00000000 -0.00005409 -0.00002619 5*0.0 -0.00005813 0.00000294 0.00000000 0.00002016 0.00000920 165 | 5*0.0 0.00012457 -0.00000679 0.00000000 -0.00004825 -0.00002328 5*0.0 -0.00005169 0.00000258 0.00000000 0.00001782 0.00000811 166 | 5*0.0 0.00011193 -0.00000603 0.00000000 -0.00004303 -0.00002069 5*0.0 -0.00004593 0.00000227 0.00000000 0.00001574 0.00000714 167 | 5*0.0 0.00010050 -0.00000535 0.00000000 -0.00003834 -0.00001837 5*0.0 -0.00004079 0.00000199 0.00000000 0.00001389 0.00000628 168 | 5*0.0 0.00009017 -0.00000474 0.00000000 -0.00003413 -0.00001630 5*0.0 -0.00003620 0.00000175 0.00000000 0.00001225 0.00000553 169 | 5*0.0 0.00008087 -0.00000421 0.00000000 -0.00003038 -0.00001446 5*0.0 -0.00003211 0.00000154 0.00000000 0.00001080 0.00000486 170 | 5*0.0 0.00007246 -0.00000372 0.00000000 -0.00002702 -0.00001282 5*0.0 -0.00002846 0.00000135 0.00000000 0.00000952 0.00000427 171 | 5*0.0 0.00006489 -0.00000330 0.00000000 -0.00002402 -0.00001136 5*0.0 -0.00002522 0.00000118 0.00000000 0.00000838 0.00000375 172 | 5*0.0 0.00005806 -0.00000292 0.00000000 -0.00002133 -0.00001005 5*0.0 -0.00002232 0.00000103 0.00000000 0.00000738 0.00000329 173 | 5*0.0 0.00005192 -0.00000258 0.00000000 -0.00001893 -0.00000889 5*0.0 -0.00001975 0.00000090 0.00000000 0.00000649 0.00000288 174 | 5*0.0 0.00004640 -0.00000228 0.00000000 -0.00001679 -0.00000786 5*0.0 -0.00001746 0.00000079 0.00000000 0.00000570 0.00000253 175 | 5*0.0 0.00004143 -0.00000201 0.00000000 -0.00001488 -0.00000695 5*0.0 -0.00001543 0.00000069 0.00000000 0.00000501 0.00000221 176 | 5*0.0 0.00003697 -0.00000177 0.00000000 -0.00001319 -0.00000614 5*0.0 -0.00001362 0.00000060 0.00000000 0.00000440 0.00000194 177 | 5*0.0 0.00003297 -0.00000156 0.00000000 -0.00001168 -0.00000542 5*0.0 -0.00001202 0.00000053 0.00000000 0.00000386 0.00000170 178 | 5*0.0 0.00002939 -0.00000138 0.00000000 -0.00001033 -0.00000478 5*0.0 -0.00001060 0.00000046 0.00000000 0.00000338 0.00000148 179 | 5*0.0 0.00002617 -0.00000121 0.00000000 -0.00000913 -0.00000421 5*0.0 -0.00000935 0.00000040 0.00000000 0.00000296 0.00000130 180 | 5*0.0 0.00002329 -0.00000107 0.00000000 -0.00000807 -0.00000371 5*0.0 -0.00000823 0.00000035 0.00000000 0.00000260 0.00000113 181 | 5*0.0 0.00002071 -0.00000094 0.00000000 -0.00000713 -0.00000326 5*0.0 -0.00000724 0.00000030 0.00000000 0.00000227 0.00000099 182 | 5*0.0 0.00001840 -0.00000083 0.00000000 -0.00000629 -0.00000287 5*0.0 -0.00000637 0.00000027 0.00000000 0.00000199 0.00000086 183 | 5*0.0 0.00001634 -0.00000072 0.00000000 -0.00000554 -0.00000252 5*0.0 -0.00000560 0.00000023 0.00000000 0.00000174 0.00000075 184 | 5*0.0 0.00001450 -0.00000064 0.00000000 -0.00000489 -0.00000222 5*0.0 -0.00000492 0.00000020 0.00000000 0.00000152 0.00000065 185 | 5*0.0 0.00001286 -0.00000056 0.00000000 -0.00000430 -0.00000195 5*0.0 -0.00000432 0.00000017 0.00000000 0.00000132 0.00000057 186 | 5*0.0 0.00001140 -0.00000049 0.00000000 -0.00000379 -0.00000171 5*0.0 -0.00000379 0.00000015 0.00000000 0.00000116 0.00000050 187 | 5*0.0 0.00001010 -0.00000043 0.00000000 -0.00000333 -0.00000150 5*0.0 -0.00000332 0.00000013 0.00000000 0.00000101 0.00000043 188 | 5*0.0 0.00000893 -0.00000038 0.00000000 -0.00000293 -0.00000131 5*0.0 -0.00000291 0.00000011 0.00000000 0.00000088 0.00000037 189 | 5*0.0 0.00000790 -0.00000033 0.00000000 -0.00000257 -0.00000115 5*0.0 -0.00000255 0.00000010 0.00000000 0.00000076 0.00000032 190 | 5*0.0 0.00000698 -0.00000029 0.00000000 -0.00000226 -0.00000101 5*0.0 -0.00000223 0.00000009 0.00000000 0.00000067 0.00000028 191 | 5*0.0 0.00000616 -0.00000025 0.00000000 -0.00000198 -0.00000088 5*0.0 -0.00000195 0.00000007 0.00000000 0.00000058 0.00000024 192 | 5*0.0 0.00000544 -0.00000022 0.00000000 -0.00000173 -0.00000077 5*0.0 -0.00000171 0.00000006 0.00000000 0.00000050 0.00000021 193 | 5*0.0 0.00000480 -0.00000019 0.00000000 -0.00000152 -0.00000067 5*0.0 -0.00000149 0.00000006 0.00000000 0.00000044 0.00000018 194 | 5*0.0 0.00000423 -0.00000017 0.00000000 -0.00000133 -0.00000059 5*0.0 -0.00000130 0.00000005 0.00000000 0.00000038 0.00000016 195 | 5*0.0 0.00000372 -0.00000015 0.00000000 -0.00000116 -0.00000051 5*0.0 -0.00000113 0.00000004 0.00000000 0.00000033 0.00000014 196 | 5*0.0 0.00000328 -0.00000013 0.00000000 -0.00000102 -0.00000045 5*0.0 -0.00000099 0.00000004 0.00000000 0.00000029 0.00000012 197 | 5*0.0 0.00000288 -0.00000011 0.00000000 -0.00000089 -0.00000039 5*0.0 -0.00000086 0.00000003 0.00000000 0.00000025 0.00000010 198 | 5*0.0 0.00000253 -0.00000010 0.00000000 -0.00000077 -0.00000034 5*0.0 -0.00000075 0.00000003 0.00000000 0.00000021 0.00000009 199 | 5*0.0 0.00000222 -0.00000008 0.00000000 -0.00000068 -0.00000029 5*0.0 -0.00000065 0.00000002 0.00000000 0.00000018 0.00000008 200 | 5*0.0 0.00000195 -0.00000007 0.00000000 -0.00000059 -0.00000026 5*0.0 -0.00000057 0.00000002 0.00000000 0.00000016 0.00000007 201 | 5*0.0 0.00000171 -0.00000006 0.00000000 -0.00000051 -0.00000022 5*0.0 -0.00000049 0.00000002 0.00000000 0.00000014 0.00000006 202 | 5*0.0 0.00000150 -0.00000005 0.00000000 -0.00000045 -0.00000019 5*0.0 -0.00000043 0.00000001 0.00000000 0.00000012 0.00000005 203 | 5*0.0 0.00000131 -0.00000005 0.00000000 -0.00000039 -0.00000017 5*0.0 -0.00000037 0.00000001 0.00000000 0.00000010 0.00000004 204 | 5*0.0 0.00000115 -0.00000004 0.00000000 -0.00000034 -0.00000014 5*0.0 -0.00000032 0.00000001 0.00000000 0.00000009 0.00000004 205 | 5*0.0 0.00000100 -0.00000004 0.00000000 -0.00000029 -0.00000013 5*0.0 -0.00000028 0.00000001 0.00000000 0.00000008 0.00000003 206 | 5*0.0 0.00000088 -0.00000003 0.00000000 -0.00000025 -0.00000011 5*0.0 -0.00000024 0.00000001 0.00000000 0.00000007 0.00000003 207 | 5*0.0 0.00000076 -0.00000003 0.00000000 -0.00000022 -0.00000009 5*0.0 -0.00000021 0.00000001 0.00000000 0.00000006 0.00000002 208 | 5*0.0 0.00000067 -0.00000002 0.00000000 -0.00000019 -0.00000008 5*0.0 -0.00000018 0.00000001 0.00000000 0.00000005 0.00000002 209 | 5*0.0 0.00000058 -0.00000002 0.00000000 -0.00000017 -0.00000007 5*0.0 -0.00000016 0.00000000 0.00000000 0.00000004 0.00000002 210 | 5*0.0 0.00000051 -0.00000002 0.00000000 -0.00000014 -0.00000006 5*0.0 -0.00000013 0.00000000 0.00000000 0.00000004 0.00000001 211 | 5*0.0 0.00000044 -0.00000001 0.00000000 -0.00000012 -0.00000005 5*0.0 -0.00000012 0.00000000 0.00000000 0.00000003 0.00000001 212 | 5*0.0 0.00000038 -0.00000001 0.00000000 -0.00000011 -0.00000004 5*0.0 -0.00000010 0.00000000 0.00000000 0.00000003 0.00000001 213 | 5*0.0 0.00000033 -0.00000001 0.00000000 -0.00000009 -0.00000004 5*0.0 -0.00000009 0.00000000 0.00000000 0.00000002 0.00000001 214 | 5*0.0 0.00000029 -0.00000001 0.00000000 -0.00000008 -0.00000003 5*0.0 -0.00000007 0.00000000 0.00000000 0.00000002 0.00000001 215 | 5*0.0 0.00000025 -0.00000001 0.00000000 -0.00000007 -0.00000003 5*0.0 -0.00000006 0.00000000 0.00000000 0.00000002 0.00000001 216 | 5*0.0 0.00000022 -0.00000001 0.00000000 -0.00000006 -0.00000002 5*0.0 -0.00000005 0.00000000 0.00000000 0.00000001 0.00000001 217 | 5*0.0 0.00000019 -0.00000001 0.00000000 -0.00000005 -0.00000002 5*0.0 -0.00000005 0.00000000 0.00000000 0.00000001 0.00000000 218 | 5*0.0 0.00000016 -0.00000000 0.00000000 -0.00000004 -0.00000002 5*0.0 -0.00000004 0.00000000 0.00000000 0.00000001 0.00000000 219 | 5*0.0 0.00000014 -0.00000000 0.00000000 -0.00000004 -0.00000002 5*0.0 -0.00000003 0.00000000 0.00000000 0.00000001 0.00000000 220 | 5*0.0 0.00000012 -0.00000000 0.00000000 -0.00000003 -0.00000001 5*0.0 -0.00000003 0.00000000 0.00000000 0.00000001 0.00000000 221 | 5*0.0 0.00000010 -0.00000000 0.00000000 -0.00000003 -0.00000001 5*0.0 -0.00000003 0.00000000 0.00000000 0.00000001 0.00000000 222 | 5*0.0 0.00000009 -0.00000000 0.00000000 -0.00000002 -0.00000001 5*0.0 -0.00000002 0.00000000 0.00000000 0.00000001 0.00000000 223 | 5*0.0 0.00000008 -0.00000000 0.00000000 -0.00000002 -0.00000001 5*0.0 -0.00000002 0.00000000 0.00000000 0.00000000 0.00000000 224 | 5*0.0 0.00000007 -0.00000000 0.00000000 -0.00000002 -0.00000001 5*0.0 -0.00000002 0.00000000 0.00000000 0.00000000 0.00000000 225 | 5*0.0 0.00000006 -0.00000000 0.00000000 -0.00000001 -0.00000001 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 226 | 5*0.0 0.00000005 -0.00000000 0.00000000 -0.00000001 -0.00000001 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 227 | 5*0.0 0.00000004 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 228 | 5*0.0 0.00000004 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 229 | 5*0.0 0.00000003 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 230 | 5*0.0 0.00000003 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 231 | 5*0.0 0.00000002 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 232 | 5*0.0 0.00000002 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 233 | 5*0.0 0.00000002 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 234 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 235 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 236 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 237 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 238 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 239 | 5*0.0 0.00000000 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 240 | 5*0.0 0.00000000 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 241 | 5*0.0 0.00000000 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 242 | 5*0.0 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 5*0.0 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 243 | 244 | 245 | Spline 246 | 26 3.87 247 | 1.934283333282545 3.718072645483851 -0.7282490839084601 248 | 1.3 1.4 2.6035229748112 -6.444591163477911 6.232832638667645 1.122633303643655 249 | 1.4 1.5 2.02251481815373 -5.164345636635074 6.569622629760741 -5.613166518219346 250 | 1.5 1.6 1.56616331426961 -4.018816106229505 4.885672674294936 -2.953570330208558 251 | 1.6 1.7 1.2101848600594 -3.130288681276774 3.999601575232368 -2.911502080789636 252 | 1.7 1.8 0.934240505603257 -2.417713428653991 3.126150950995478 -2.261792742873556 253 | 1.8 1.9 0.721468879504939 -1.860337020741101 2.447613128133411 -1.862307996353177 254 | 1.9 2 0.55804900071581 -1.426683635005015 1.888920729227458 -1.47686766875597 255 | 2 2.1 0.432792976838827 -1.093205519222202 1.445860428600667 -1.162440290063367 256 | 2.1 2.2 0.33676858891255 -0.8389066422039695 1.097128341581656 -0.8974454328275902 257 | 2.2 2.3 0.262951762675142 -0.6464043368724658 0.8278947117333791 -0.6813497968703626 258 | 2.3 2.4 0.205908926308359 -0.5012658884319013 0.6234897726722711 -0.5079805303275545 259 | 2.4 2.5 0.161509254661564 -0.3918073498072736 0.4710956135740046 -0.3726758608606395 260 | 2.5 2.6 0.126666799955716 -0.3087685029182918 0.3592928553158127 -0.2703692496704538 261 | 2.6 2.7 0.09911250896737447 -0.2450210093452428 0.2781820804146765 -0.1961021442967155 262 | 2.7 2.8 0.07719612669270022 -0.195267657591209 0.2193514371256617 -0.1448888133829973 263 | 2.8 2.9 0.059717986491453 -0.1557440345675667 0.1758847931107627 -0.1117442548111967 264 | 2.9 3 0.04579068671099275 -0.12391940358975 0.1423615166674037 -0.0917077284122865 265 | 3 3.1 0.03473065379027949 -0.09819833210863785 0.1148491981437177 -0.07972071697964057 266 | 3.1 3.2 0.02597959184387323 -0.07762011398928351 0.09093298304982551 -0.07109154950917919 267 | 3.2 3.3 0.01905581872593395 -0.06156626386459377 0.06960551819707174 -0.0597589472236276 268 | 3.3 3.4 0.01353548857422168 -0.04943792864188829 0.05167783402998352 -0.04477321623626898 269 | 3.4 3.5 0.009063700834096414 -0.04044555832297965 0.03824586915910282 -0.006107930871331319 270 | 3.5 3.6 0.005395495762518143 -0.03297962241729901 0.03641348989770342 0.00506799228160157 271 | 3.6 3.7 0.002466736412046875 -0.02554488466931028 0.03793388758218389 0.2032902739049307 272 | 3.7 3.8 0.0004948770948426154 -0.01185939893572556 0.09892096975366317 -0.2981468988066914 273 | 3.8 3.87 0 -0.001019611949193676 0.009476900111656059 0.8423515656559675 -17.978852974057 99.76896458829908 274 | 275 | mat-sci-03 276 | 277 | -------------------------------------------------------------------------------- /examples/skf/O-O.skf: -------------------------------------------------------------------------------- 1 | 0.05 240 2 | 0.0000 -0.3382 -0.8726 0.0000 0.0000 0.5084 0.5084 0.00 4.00 2.00 3 | 16.01 8*0.0 3.0 10*0.0 4 | 20*0.0 5 | 20*0.0 6 | 20*0.0 7 | 20*0.0 8 | 20*0.0 9 | 20*0.0 10 | 20*0.0 11 | 20*0.0 12 | 20*0.0 13 | 5*0.0 -0.94653550 -2.21885700 0.00000000 -0.01997294 -1.67075600 5*0.0 0.64303040 0.86989950 0.00000000 0.23314860 0.86324720 14 | 5*0.0 -0.71649950 -2.09254900 0.00000000 -0.16378080 -1.60270200 5*0.0 0.58497910 0.84661620 0.00000000 0.26091980 0.84766030 15 | 5*0.0 -0.50692870 -1.96909000 0.00000000 -0.30011310 -1.55608900 5*0.0 0.52625850 0.82235670 0.00000000 0.28808050 0.83239660 16 | 5*0.0 -0.31828030 -1.84918000 0.00000000 -0.42581810 -1.52376000 5*0.0 0.46753630 0.79727660 0.00000000 0.31424430 0.81730410 17 | 5*0.0 -0.15096110 -1.73358900 0.00000000 -0.53886620 -1.50025900 5*0.0 0.40944260 0.77158520 0.00000000 0.33909570 0.80226430 18 | 5*0.0 -0.00349995 -1.62301800 0.00000000 -0.63856120 -1.48163200 5*0.0 0.35237960 0.74549590 0.00000000 0.36242940 0.78719130 19 | 5*0.0 0.12468240 -1.51779900 0.00000000 -0.72457370 -1.46494400 5*0.0 0.29679840 0.71920510 0.00000000 0.38405400 0.77201240 20 | 5*0.0 0.23503680 -1.41786300 0.00000000 -0.79700360 -1.44774300 5*0.0 0.24307910 0.69271570 0.00000000 0.40372540 0.75648550 21 | 5*0.0 0.32893720 -1.32332300 0.00000000 -0.85641000 -1.42874000 5*0.0 0.19150420 0.66626720 0.00000000 0.42137080 0.74064140 22 | 5*0.0 0.40790770 -1.23429600 0.00000000 -0.90377840 -1.40727900 5*0.0 0.14225310 0.63999440 0.00000000 0.43696660 0.72446040 23 | 5*0.0 0.47318440 -1.15041600 0.00000000 -0.93975870 -1.38253200 5*0.0 0.09561507 0.61387520 0.00000000 0.45035150 0.70776680 24 | 5*0.0 0.52671140 -1.07184700 0.00000000 -0.96584320 -1.35488900 5*0.0 0.05154222 0.58815440 0.00000000 0.46168970 0.69072810 25 | 5*0.0 0.56947550 -0.99817490 0.00000000 -0.98279580 -1.32409400 5*0.0 0.01023862 0.56278900 0.00000000 0.47089060 0.67322090 26 | 5*0.0 0.60265170 -0.92925630 0.00000000 -0.99161090 -1.29042000 5*0.0 -0.02823719 0.53792140 0.00000000 0.47802020 0.65531570 27 | 5*0.0 0.62780770 -0.86486070 0.00000000 -0.99352210 -1.25430900 5*0.0 -0.06394543 0.51356250 0.00000000 0.48317680 0.63703440 28 | 5*0.0 0.64578240 -0.80478520 0.00000000 -0.98937950 -1.21612700 5*0.0 -0.09687720 0.48978250 0.00000000 0.48644760 0.61843720 29 | 5*0.0 0.65765170 -0.74879930 0.00000000 -0.98011400 -1.17631700 5*0.0 -0.12709460 0.46664630 0.00000000 0.48795320 0.59960090 30 | 5*0.0 0.66418130 -0.69657440 0.00000000 -0.96640230 -1.13511600 5*0.0 -0.15458110 0.44412330 0.00000000 0.48772630 0.58050530 31 | 5*0.0 0.66608090 -0.64794430 0.00000000 -0.94897130 -1.09297100 5*0.0 -0.17941830 0.42230790 0.00000000 0.48591370 0.56126470 32 | 5*0.0 0.66418970 -0.60265060 0.00000000 -0.92855350 -1.05025600 5*0.0 -0.20172230 0.40114960 0.00000000 0.48262800 0.54190390 33 | 5*0.0 0.65901410 -0.56050040 0.00000000 -0.90566050 -1.00728300 5*0.0 -0.22156490 0.38071350 0.00000000 0.47799290 0.52251420 34 | 5*0.0 0.65118100 -0.52130420 0.00000000 -0.88087010 -0.96440650 5*0.0 -0.23909000 0.36101600 0.00000000 0.47215600 0.50317510 35 | 5*0.0 0.64104130 -0.48480570 0.00000000 -0.85453850 -0.92176290 5*0.0 -0.25433710 0.34199630 0.00000000 0.46516960 0.48387880 36 | 5*0.0 0.62899990 -0.45087070 0.00000000 -0.82706580 -0.87962750 5*0.0 -0.26743840 0.32372120 0.00000000 0.45718020 0.46472520 37 | 5*0.0 0.61543490 -0.41929440 0.00000000 -0.79879480 -0.83817610 5*0.0 -0.27850880 0.30615070 0.00000000 0.44829310 0.44575370 38 | 5*0.0 0.60070900 -0.38996390 0.00000000 -0.77006900 -0.79764630 5*0.0 -0.28771330 0.28933830 0.00000000 0.43866270 0.42706070 39 | 5*0.0 0.58500560 -0.36265750 0.00000000 -0.74106370 -0.75805710 5*0.0 -0.29509960 0.27319490 0.00000000 0.42832220 0.40861860 40 | 5*0.0 0.56855070 -0.33726650 0.00000000 -0.71199960 -0.71955440 5*0.0 -0.30080530 0.25775310 0.00000000 0.41739910 0.39050370 41 | 5*0.0 0.55165080 -0.31366580 0.00000000 -0.68312910 -0.68228590 5*0.0 -0.30500820 0.24300890 0.00000000 0.40602800 0.37278120 42 | 5*0.0 0.53428510 -0.29168180 0.00000000 -0.65446510 -0.64616200 5*0.0 -0.30767720 0.22889780 0.00000000 0.39418740 0.35539780 43 | 5*0.0 0.51676080 -0.27126490 0.00000000 -0.62625930 -0.61138900 5*0.0 -0.30907430 0.21547880 0.00000000 0.38207990 0.33848290 44 | 5*0.0 0.49904910 -0.25226270 0.00000000 -0.59850680 -0.57786920 5*0.0 -0.30917640 0.20268570 0.00000000 0.36968400 0.32198340 45 | 5*0.0 0.48141310 -0.23457340 0.00000000 -0.57139160 -0.54571020 5*0.0 -0.30820330 0.19049120 0.00000000 0.35714190 0.30596310 46 | 5*0.0 0.46385080 -0.21813870 0.00000000 -0.54493480 -0.51489520 5*0.0 -0.30620190 0.17892850 0.00000000 0.34449790 0.29043940 47 | 5*0.0 0.44645380 -0.20283670 0.00000000 -0.51919270 -0.48540610 5*0.0 -0.30327650 0.16793190 0.00000000 0.33180600 0.27541020 48 | 5*0.0 0.42923750 -0.18859210 0.00000000 -0.49417510 -0.45719830 5*0.0 -0.29946810 0.15749110 0.00000000 0.31908610 0.26086360 49 | 5*0.0 0.41233650 -0.17535890 0.00000000 -0.46997710 -0.43033840 5*0.0 -0.29496730 0.14762170 0.00000000 0.30646750 0.24686890 50 | 5*0.0 0.39572160 -0.16302020 0.00000000 -0.44655920 -0.40471010 5*0.0 -0.28975540 0.13824370 0.00000000 0.29390970 0.23335900 51 | 5*0.0 0.37949240 -0.15155920 0.00000000 -0.42399100 -0.38036990 5*0.0 -0.28400680 0.12939850 0.00000000 0.28153240 0.22040210 52 | 5*0.0 0.36362650 -0.14088560 0.00000000 -0.40223840 -0.35722480 5*0.0 -0.27772740 0.12102600 0.00000000 0.26931430 0.20795030 53 | 5*0.0 0.34816010 -0.13094780 0.00000000 -0.38131340 -0.33525660 5*0.0 -0.27101140 0.11311520 0.00000000 0.25730550 0.19601550 54 | 5*0.0 0.33310780 -0.12170500 0.00000000 -0.36121420 -0.31443020 5*0.0 -0.26391990 0.10565490 0.00000000 0.24553200 0.18459250 55 | 5*0.0 0.31848620 -0.11310150 0.00000000 -0.34193360 -0.29470560 5*0.0 -0.25651800 0.09862003 0.00000000 0.23401840 0.17367440 56 | 5*0.0 0.30430620 -0.10509510 0.00000000 -0.32346370 -0.27604670 5*0.0 -0.24886920 0.09199556 0.00000000 0.22279020 0.16325700 57 | 5*0.0 0.29056730 -0.09763344 0.00000000 -0.30578240 -0.25839710 5*0.0 -0.24101230 0.08574394 0.00000000 0.21184910 0.15331630 58 | 5*0.0 0.27727560 -0.09070363 0.00000000 -0.28888420 -0.24173920 5*0.0 -0.23301210 0.07988421 0.00000000 0.20122960 0.14386240 59 | 5*0.0 0.26443810 -0.08424430 0.00000000 -0.27274830 -0.22601880 5*0.0 -0.22491710 0.07436432 0.00000000 0.19093600 0.13487220 60 | 5*0.0 0.25206380 -0.07824080 0.00000000 -0.25736690 -0.21121400 5*0.0 -0.21678600 0.06919258 0.00000000 0.18099390 0.12634830 61 | 5*0.0 0.24010420 -0.07264743 0.00000000 -0.24268720 -0.19724160 5*0.0 -0.20859100 0.06432804 0.00000000 0.17136210 0.11824290 62 | 5*0.0 0.22860350 -0.06744830 0.00000000 -0.22872160 -0.18410660 5*0.0 -0.20043980 0.05977700 0.00000000 0.16209640 0.11057850 63 | 5*0.0 0.21753080 -0.06260314 0.00000000 -0.21542960 -0.17174430 5*0.0 -0.19232880 0.05550330 0.00000000 0.15317250 0.10332060 64 | 5*0.0 0.20688250 -0.05810168 0.00000000 -0.20279400 -0.16012670 5*0.0 -0.18429000 0.05150991 0.00000000 0.14459720 0.09646144 65 | 5*0.0 0.19664250 -0.05390964 0.00000000 -0.19078510 -0.14920680 5*0.0 -0.17633960 0.04776940 0.00000000 0.13636170 0.08997965 66 | 5*0.0 0.18682520 -0.05001484 0.00000000 -0.17939560 -0.13896740 5*0.0 -0.16852910 0.04427927 0.00000000 0.12848330 0.08387361 67 | 5*0.0 0.17739930 -0.04638577 0.00000000 -0.16858700 -0.12935550 5*0.0 -0.16085280 0.04101142 0.00000000 0.12094020 0.07811564 68 | 5*0.0 0.16836780 -0.04301354 0.00000000 -0.15834580 -0.12034840 5*0.0 -0.15334120 0.03796388 0.00000000 0.11373720 0.07269774 69 | 5*0.0 0.15971880 -0.03987797 0.00000000 -0.14864830 -0.11191390 5*0.0 -0.14601100 0.03512334 0.00000000 0.10687010 0.06760643 70 | 5*0.0 0.15142540 -0.03696201 0.00000000 -0.13946230 -0.10400870 5*0.0 -0.13884890 0.03247433 0.00000000 0.10031610 0.06281680 71 | 5*0.0 0.14350170 -0.03425128 0.00000000 -0.13078000 -0.09661846 5*0.0 -0.13190100 0.03000720 0.00000000 0.09408862 0.05832690 72 | 5*0.0 0.13592070 -0.03172924 0.00000000 -0.12257030 -0.08970484 5*0.0 -0.12515490 0.02770831 0.00000000 0.08816717 0.05411504 73 | 5*0.0 0.12867900 -0.02938714 0.00000000 -0.11481730 -0.08324621 5*0.0 -0.11862620 0.02557269 0.00000000 0.08254926 0.05017163 74 | 5*0.0 0.12176860 -0.02721042 0.00000000 -0.10750130 -0.07721704 5*0.0 -0.11232510 0.02358748 0.00000000 0.07722793 0.04648382 75 | 5*0.0 0.11516370 -0.02518835 0.00000000 -0.10059410 -0.07158383 5*0.0 -0.10623370 0.02174295 0.00000000 0.07218154 0.04303151 76 | 5*0.0 0.10885920 -0.02330679 0.00000000 -0.09407914 -0.06632595 5*0.0 -0.10036510 0.02002743 0.00000000 0.06740622 0.03980500 77 | 5*0.0 0.10285410 -0.02156451 0.00000000 -0.08794425 -0.06142771 5*0.0 -0.09472740 0.01844196 0.00000000 0.06289775 0.03679611 78 | 5*0.0 0.09713224 -0.01994179 0.00000000 -0.08216626 -0.05686238 5*0.0 -0.08932099 0.01696720 0.00000000 0.05864442 0.03399067 79 | 5*0.0 0.09168977 -0.01843969 0.00000000 -0.07673249 -0.05261488 5*0.0 -0.08414652 0.01560554 0.00000000 0.05463868 0.03137957 80 | 5*0.0 0.08649677 -0.01704226 0.00000000 -0.07161416 -0.04865384 5*0.0 -0.07918053 0.01434113 0.00000000 0.05085753 0.02894380 81 | 5*0.0 0.08156093 -0.01574687 0.00000000 -0.06680512 -0.04497128 5*0.0 -0.07444130 0.01317277 0.00000000 0.04730334 0.02668007 82 | 5*0.0 0.07687398 -0.01454554 0.00000000 -0.06229020 -0.04155030 5*0.0 -0.06992785 0.01209322 0.00000000 0.04396731 0.02457867 83 | 5*0.0 0.07241663 -0.01343022 0.00000000 -0.05804892 -0.03836925 5*0.0 -0.06562410 0.01109463 0.00000000 0.04083309 0.02262619 84 | 5*0.0 0.06818344 -0.01239785 0.00000000 -0.05406910 -0.03541484 5*0.0 -0.06152827 0.01017403 0.00000000 0.03789293 0.02081459 85 | 5*0.0 0.06415899 -0.01143896 0.00000000 -0.05033301 -0.03266904 5*0.0 -0.05763002 0.00932270 0.00000000 0.03513422 0.01913308 86 | 5*0.0 0.06034781 -0.01055168 0.00000000 -0.04683455 -0.03012486 5*0.0 -0.05393920 0.00853882 0.00000000 0.03255621 0.01757796 87 | 5*0.0 0.05673436 -0.00973088 0.00000000 -0.04355752 -0.02776583 5*0.0 -0.05044019 0.00781764 0.00000000 0.03014482 0.01613857 88 | 5*0.0 0.05330391 -0.00896778 0.00000000 -0.04048571 -0.02557632 5*0.0 -0.04712318 0.00715047 0.00000000 0.02788877 0.01480563 89 | 5*0.0 0.05006075 -0.00826419 0.00000000 -0.03761465 -0.02355101 5*0.0 -0.04399169 0.00653923 0.00000000 0.02578548 0.01357551 90 | 5*0.0 0.04698027 -0.00761057 0.00000000 -0.03492405 -0.02167110 5*0.0 -0.04102357 0.00597461 0.00000000 0.02381806 0.01243654 91 | 5*0.0 0.04407711 -0.00700795 0.00000000 -0.03241487 -0.01993647 5*0.0 -0.03823590 0.00545767 0.00000000 0.02199111 0.01138900 92 | 5*0.0 0.04132494 -0.00644927 0.00000000 -0.03006712 -0.01832908 5*0.0 -0.03560194 0.00498120 0.00000000 0.02028634 0.01042113 93 | 5*0.0 0.03872781 -0.00593347 0.00000000 -0.02787709 -0.01684484 5*0.0 -0.03312637 0.00454488 0.00000000 0.01870252 0.00953052 94 | 5*0.0 0.03627067 -0.00545602 0.00000000 -0.02583129 -0.01547172 5*0.0 -0.03079480 0.00414351 0.00000000 0.01722839 0.00870948 95 | 5*0.0 0.03395093 -0.00501520 0.00000000 -0.02392324 -0.01420362 5*0.0 -0.02860407 0.00377574 0.00000000 0.01585913 0.00795404 96 | 5*0.0 0.03176176 -0.00460841 0.00000000 -0.02214451 -0.01303303 5*0.0 -0.02654747 0.00343900 0.00000000 0.01458819 0.00725938 97 | 5*0.0 0.02969941 -0.00423241 0.00000000 -0.02048822 -0.01195380 5*0.0 -0.02462239 0.00313021 0.00000000 0.01341115 0.00662184 98 | 5*0.0 0.02775496 -0.00388543 0.00000000 -0.01894556 -0.01095833 5*0.0 -0.02281853 0.00284762 0.00000000 0.01232027 0.00603634 99 | 5*0.0 0.02592398 -0.00356552 0.00000000 -0.01751017 -0.01004111 5*0.0 -0.02113123 0.00258921 0.00000000 0.01131070 0.00549933 100 | 5*0.0 0.02419990 -0.00327088 0.00000000 -0.01617497 -0.00919604 5*0.0 -0.01955304 0.00235322 0.00000000 0.01037646 0.00500684 101 | 5*0.0 0.02257573 -0.00299850 0.00000000 -0.01493268 -0.00841725 5*0.0 -0.01807780 0.00213691 0.00000000 0.00951228 0.00455528 102 | 5*0.0 0.02105119 -0.00274850 0.00000000 -0.01377978 -0.00770150 5*0.0 -0.01670314 0.00194019 0.00000000 0.00871511 0.00414235 103 | 5*0.0 0.01961724 -0.00251743 0.00000000 -0.01270856 -0.00704272 5*0.0 -0.01542117 0.00176006 0.00000000 0.00797919 0.00376441 104 | 5*0.0 0.01827095 -0.00230517 0.00000000 -0.01171462 -0.00643728 5*0.0 -0.01422721 0.00159604 0.00000000 0.00730062 0.00341890 105 | 5*0.0 0.01700629 -0.00210976 0.00000000 -0.01079225 -0.00588066 5*0.0 -0.01311519 0.00144645 0.00000000 0.00667492 0.00310301 106 | 5*0.0 0.01582089 -0.00192997 0.00000000 -0.00993760 -0.00536980 5*0.0 -0.01208229 0.00131016 0.00000000 0.00609926 0.00281481 107 | 5*0.0 0.01470853 -0.00176456 0.00000000 -0.00914523 -0.00490054 5*0.0 -0.01112192 0.00118592 0.00000000 0.00556922 0.00255164 108 | 5*0.0 0.01366836 -0.00161298 0.00000000 -0.00841246 -0.00447068 5*0.0 -0.01023203 0.00107325 0.00000000 0.00508263 0.00231202 109 | 5*0.0 0.01269236 -0.00147324 0.00000000 -0.00773335 -0.00407589 5*0.0 -0.00940537 0.00097037 0.00000000 0.00463494 0.00209336 110 | 5*0.0 0.01177959 -0.00134529 0.00000000 -0.00710544 -0.00371423 5*0.0 -0.00863950 0.00087710 0.00000000 0.00422402 0.00189428 111 | 5*0.0 0.01092625 -0.00122773 0.00000000 -0.00652510 -0.00338305 5*0.0 -0.00793081 0.00079230 0.00000000 0.00384722 0.00171319 112 | 5*0.0 0.01012956 -0.00111998 0.00000000 -0.00598930 -0.00308010 5*0.0 -0.00727594 0.00071537 0.00000000 0.00350213 0.00154863 113 | 5*0.0 0.00938479 -0.00102115 0.00000000 -0.00549426 -0.00280270 5*0.0 -0.00667006 0.00064553 0.00000000 0.00318576 0.00139896 114 | 5*0.0 0.00868953 -0.00093061 0.00000000 -0.00503734 -0.00254897 5*0.0 -0.00611038 0.00058220 0.00000000 0.00289611 0.00126300 115 | 5*0.0 0.00803984 -0.00084755 0.00000000 -0.00461544 -0.00231673 5*0.0 -0.00559294 0.00052471 0.00000000 0.00263075 0.00113942 116 | 5*0.0 0.00743630 -0.00077178 0.00000000 -0.00422743 -0.00210514 5*0.0 -0.00511742 0.00047284 0.00000000 0.00238888 0.00102763 117 | 5*0.0 0.00687209 -0.00070219 0.00000000 -0.00386915 -0.00191142 5*0.0 -0.00467782 0.00042569 0.00000000 0.00216732 0.00092601 118 | 5*0.0 0.00634784 -0.00063872 0.00000000 -0.00353970 -0.00173489 5*0.0 -0.00427382 0.00038315 0.00000000 0.00196539 0.00083409 119 | 5*0.0 0.00585933 -0.00058054 0.00000000 -0.00323621 -0.00157368 5*0.0 -0.00390168 0.00034457 0.00000000 0.00178099 0.00075078 120 | 5*0.0 0.00540596 -0.00052748 0.00000000 -0.00295745 -0.00142693 5*0.0 -0.00356021 0.00030979 0.00000000 0.00161316 0.00067551 121 | 5*0.0 0.00498444 -0.00047904 0.00000000 -0.00270114 -0.00129315 5*0.0 -0.00324629 0.00027836 0.00000000 0.00146016 0.00060741 122 | 5*0.0 0.00459257 -0.00043483 0.00000000 -0.00246551 -0.00117121 5*0.0 -0.00295776 0.00024999 0.00000000 0.00132073 0.00054580 123 | 5*0.0 0.00422892 -0.00039443 0.00000000 -0.00224919 -0.00106023 5*0.0 -0.00269318 0.00022435 0.00000000 0.00119391 0.00049017 124 | 5*0.0 0.00389199 -0.00035767 0.00000000 -0.00205082 -0.00095933 5*0.0 -0.00245084 0.00020128 0.00000000 0.00107868 0.00043999 125 | 5*0.0 0.00357954 -0.00032414 0.00000000 -0.00186883 -0.00086755 5*0.0 -0.00222879 0.00018046 0.00000000 0.00097396 0.00039470 126 | 5*0.0 0.00329012 -0.00029358 0.00000000 -0.00170203 -0.00078414 5*0.0 -0.00202553 0.00016171 0.00000000 0.00087885 0.00035387 127 | 5*0.0 0.00302250 -0.00026579 0.00000000 -0.00154933 -0.00070843 5*0.0 -0.00183982 0.00014485 0.00000000 0.00079264 0.00031712 128 | 5*0.0 0.00277478 -0.00024049 0.00000000 -0.00140948 -0.00063966 5*0.0 -0.00166994 0.00012966 0.00000000 0.00071440 0.00028401 129 | 5*0.0 0.00254576 -0.00021749 0.00000000 -0.00128152 -0.00057727 5*0.0 -0.00151476 0.00011601 0.00000000 0.00064350 0.00025420 130 | 5*0.0 0.00233386 -0.00019655 0.00000000 -0.00116439 -0.00052061 5*0.0 -0.00137291 0.00010372 0.00000000 0.00057920 0.00022736 131 | 5*0.0 0.00213881 -0.00017759 0.00000000 -0.00105758 -0.00046938 5*0.0 -0.00124391 0.00009272 0.00000000 0.00052115 0.00020330 132 | 5*0.0 0.00195848 -0.00016032 0.00000000 -0.00095985 -0.00042288 5*0.0 -0.00112609 0.00008281 0.00000000 0.00046855 0.00018164 133 | 5*0.0 0.00179229 -0.00014467 0.00000000 -0.00087070 -0.00038081 5*0.0 -0.00101880 0.00007393 0.00000000 0.00042102 0.00016221 134 | 5*0.0 0.00163937 -0.00013050 0.00000000 -0.00078942 -0.00034277 5*0.0 -0.00092128 0.00006598 0.00000000 0.00037813 0.00014479 135 | 5*0.0 0.00149845 -0.00011763 0.00000000 -0.00071530 -0.00030835 5*0.0 -0.00083250 0.00005884 0.00000000 0.00033938 0.00012916 136 | 5*0.0 0.00136877 -0.00010598 0.00000000 -0.00064774 -0.00027723 5*0.0 -0.00075180 0.00005244 0.00000000 0.00030442 0.00011514 137 | 5*0.0 0.00124944 -0.00009540 0.00000000 -0.00058619 -0.00024911 5*0.0 -0.00067847 0.00004671 0.00000000 0.00027289 0.00010259 138 | 5*0.0 0.00114015 -0.00008588 0.00000000 -0.00053031 -0.00022378 5*0.0 -0.00061209 0.00004160 0.00000000 0.00024455 0.00009138 139 | 5*0.0 0.00103947 -0.00007723 0.00000000 -0.00047937 -0.00020086 5*0.0 -0.00055170 0.00003702 0.00000000 0.00021896 0.00008133 140 | 5*0.0 0.00094713 -0.00006943 0.00000000 -0.00043308 -0.00018020 5*0.0 -0.00049697 0.00003293 0.00000000 0.00019594 0.00007234 141 | 5*0.0 0.00086238 -0.00006238 0.00000000 -0.00039102 -0.00016156 5*0.0 -0.00044737 0.00002927 0.00000000 0.00017523 0.00006431 142 | 5*0.0 0.00078477 -0.00005600 0.00000000 -0.00035285 -0.00014479 5*0.0 -0.00040251 0.00002600 0.00000000 0.00015663 0.00005715 143 | 5*0.0 0.00071374 -0.00005025 0.00000000 -0.00031825 -0.00012969 5*0.0 -0.00036195 0.00002309 0.00000000 0.00013992 0.00005075 144 | 5*0.0 0.00064868 -0.00004507 0.00000000 -0.00028687 -0.00011610 5*0.0 -0.00032524 0.00002049 0.00000000 0.00012492 0.00004505 145 | 5*0.0 0.00058916 -0.00004040 0.00000000 -0.00025844 -0.00010388 5*0.0 -0.00029208 0.00001818 0.00000000 0.00011146 0.00003996 146 | 5*0.0 0.00053468 -0.00003618 0.00000000 -0.00023267 -0.00009289 5*0.0 -0.00026211 0.00001611 0.00000000 0.00009939 0.00003542 147 | 5*0.0 0.00048504 -0.00003241 0.00000000 -0.00020940 -0.00008303 5*0.0 -0.00023512 0.00001428 0.00000000 0.00008859 0.00003139 148 | 5*0.0 0.00043961 -0.00002899 0.00000000 -0.00018825 -0.00007416 5*0.0 -0.00021074 0.00001264 0.00000000 0.00007889 0.00002780 149 | 5*0.0 0.00039822 -0.00002593 0.00000000 -0.00016917 -0.00006620 5*0.0 -0.00018879 0.00001119 0.00000000 0.00007023 0.00002460 150 | 5*0.0 0.00036047 -0.00002317 0.00000000 -0.00015191 -0.00005906 5*0.0 -0.00016901 0.00000990 0.00000000 0.00006248 0.00002176 151 | 5*0.0 0.00032608 -0.00002069 0.00000000 -0.00013632 -0.00005266 5*0.0 -0.00015120 0.00000875 0.00000000 0.00005554 0.00001924 152 | 5*0.0 0.00029483 -0.00001848 0.00000000 -0.00012228 -0.00004693 5*0.0 -0.00013521 0.00000773 0.00000000 0.00004936 0.00001700 153 | 5*0.0 0.00026638 -0.00001649 0.00000000 -0.00010962 -0.00004180 5*0.0 -0.00012083 0.00000683 0.00000000 0.00004384 0.00001501 154 | 5*0.0 0.00024049 -0.00001470 0.00000000 -0.00009818 -0.00003721 5*0.0 -0.00010789 0.00000603 0.00000000 0.00003890 0.00001325 155 | 5*0.0 0.00021698 -0.00001310 0.00000000 -0.00008790 -0.00003310 5*0.0 -0.00009629 0.00000532 0.00000000 0.00003450 0.00001169 156 | 5*0.0 0.00019567 -0.00001167 0.00000000 -0.00007864 -0.00002943 5*0.0 -0.00008589 0.00000469 0.00000000 0.00003059 0.00001030 157 | 5*0.0 0.00017633 -0.00001039 0.00000000 -0.00007033 -0.00002615 5*0.0 -0.00007656 0.00000413 0.00000000 0.00002710 0.00000908 158 | 5*0.0 0.00015878 -0.00000924 0.00000000 -0.00006284 -0.00002322 5*0.0 -0.00006820 0.00000364 0.00000000 0.00002399 0.00000799 159 | 5*0.0 0.00014288 -0.00000821 0.00000000 -0.00005611 -0.00002061 5*0.0 -0.00006071 0.00000320 0.00000000 0.00002123 0.00000703 160 | 5*0.0 0.00012851 -0.00000730 0.00000000 -0.00005008 -0.00001828 5*0.0 -0.00005402 0.00000282 0.00000000 0.00001878 0.00000619 161 | 5*0.0 0.00011550 -0.00000648 0.00000000 -0.00004467 -0.00001621 5*0.0 -0.00004803 0.00000248 0.00000000 0.00001659 0.00000544 162 | 5*0.0 0.00010373 -0.00000575 0.00000000 -0.00003982 -0.00001436 5*0.0 -0.00004268 0.00000218 0.00000000 0.00001466 0.00000478 163 | 5*0.0 0.00009313 -0.00000510 0.00000000 -0.00003548 -0.00001272 5*0.0 -0.00003791 0.00000191 0.00000000 0.00001294 0.00000420 164 | 5*0.0 0.00008352 -0.00000452 0.00000000 -0.00003158 -0.00001126 5*0.0 -0.00003364 0.00000168 0.00000000 0.00001142 0.00000368 165 | 5*0.0 0.00007487 -0.00000401 0.00000000 -0.00002810 -0.00000996 5*0.0 -0.00002984 0.00000147 0.00000000 0.00001007 0.00000323 166 | 5*0.0 0.00006706 -0.00000354 0.00000000 -0.00002498 -0.00000880 5*0.0 -0.00002644 0.00000129 0.00000000 0.00000887 0.00000283 167 | 5*0.0 0.00006003 -0.00000314 0.00000000 -0.00002220 -0.00000777 5*0.0 -0.00002342 0.00000113 0.00000000 0.00000781 0.00000248 168 | 5*0.0 0.00005371 -0.00000277 0.00000000 -0.00001972 -0.00000686 5*0.0 -0.00002074 0.00000099 0.00000000 0.00000687 0.00000217 169 | 5*0.0 0.00004801 -0.00000245 0.00000000 -0.00001750 -0.00000606 5*0.0 -0.00001835 0.00000087 0.00000000 0.00000605 0.00000190 170 | 5*0.0 0.00004290 -0.00000216 0.00000000 -0.00001552 -0.00000534 5*0.0 -0.00001622 0.00000076 0.00000000 0.00000532 0.00000166 171 | 5*0.0 0.00003830 -0.00000191 0.00000000 -0.00001376 -0.00000471 5*0.0 -0.00001434 0.00000066 0.00000000 0.00000467 0.00000145 172 | 5*0.0 0.00003417 -0.00000168 0.00000000 -0.00001219 -0.00000415 5*0.0 -0.00001266 0.00000058 0.00000000 0.00000410 0.00000127 173 | 5*0.0 0.00003047 -0.00000148 0.00000000 -0.00001079 -0.00000365 5*0.0 -0.00001117 0.00000050 0.00000000 0.00000360 0.00000111 174 | 5*0.0 0.00002715 -0.00000131 0.00000000 -0.00000954 -0.00000321 5*0.0 -0.00000985 0.00000044 0.00000000 0.00000315 0.00000097 175 | 5*0.0 0.00002417 -0.00000115 0.00000000 -0.00000844 -0.00000282 5*0.0 -0.00000868 0.00000038 0.00000000 0.00000276 0.00000084 176 | 5*0.0 0.00002150 -0.00000101 0.00000000 -0.00000745 -0.00000248 5*0.0 -0.00000765 0.00000033 0.00000000 0.00000242 0.00000073 177 | 5*0.0 0.00001912 -0.00000089 0.00000000 -0.00000658 -0.00000218 5*0.0 -0.00000673 0.00000029 0.00000000 0.00000212 0.00000064 178 | 5*0.0 0.00001699 -0.00000078 0.00000000 -0.00000581 -0.00000191 5*0.0 -0.00000592 0.00000025 0.00000000 0.00000185 0.00000056 179 | 5*0.0 0.00001509 -0.00000069 0.00000000 -0.00000512 -0.00000168 5*0.0 -0.00000521 0.00000022 0.00000000 0.00000162 0.00000048 180 | 5*0.0 0.00001338 -0.00000060 0.00000000 -0.00000451 -0.00000147 5*0.0 -0.00000457 0.00000019 0.00000000 0.00000142 0.00000042 181 | 5*0.0 0.00001187 -0.00000053 0.00000000 -0.00000397 -0.00000129 5*0.0 -0.00000402 0.00000017 0.00000000 0.00000124 0.00000037 182 | 5*0.0 0.00001052 -0.00000046 0.00000000 -0.00000350 -0.00000113 5*0.0 -0.00000352 0.00000014 0.00000000 0.00000108 0.00000032 183 | 5*0.0 0.00000931 -0.00000041 0.00000000 -0.00000307 -0.00000099 5*0.0 -0.00000309 0.00000013 0.00000000 0.00000094 0.00000028 184 | 5*0.0 0.00000824 -0.00000036 0.00000000 -0.00000270 -0.00000086 5*0.0 -0.00000271 0.00000011 0.00000000 0.00000082 0.00000024 185 | 5*0.0 0.00000729 -0.00000031 0.00000000 -0.00000237 -0.00000075 5*0.0 -0.00000237 0.00000009 0.00000000 0.00000071 0.00000021 186 | 5*0.0 0.00000644 -0.00000027 0.00000000 -0.00000208 -0.00000066 5*0.0 -0.00000207 0.00000008 0.00000000 0.00000062 0.00000018 187 | 5*0.0 0.00000568 -0.00000024 0.00000000 -0.00000182 -0.00000057 5*0.0 -0.00000181 0.00000007 0.00000000 0.00000054 0.00000015 188 | 5*0.0 0.00000502 -0.00000021 0.00000000 -0.00000160 -0.00000050 5*0.0 -0.00000159 0.00000006 0.00000000 0.00000047 0.00000013 189 | 5*0.0 0.00000442 -0.00000018 0.00000000 -0.00000140 -0.00000044 5*0.0 -0.00000138 0.00000005 0.00000000 0.00000041 0.00000012 190 | 5*0.0 0.00000390 -0.00000016 0.00000000 -0.00000123 -0.00000038 5*0.0 -0.00000121 0.00000005 0.00000000 0.00000035 0.00000010 191 | 5*0.0 0.00000343 -0.00000014 0.00000000 -0.00000107 -0.00000033 5*0.0 -0.00000105 0.00000004 0.00000000 0.00000031 0.00000009 192 | 5*0.0 0.00000302 -0.00000012 0.00000000 -0.00000094 -0.00000029 5*0.0 -0.00000092 0.00000003 0.00000000 0.00000027 0.00000007 193 | 5*0.0 0.00000265 -0.00000010 0.00000000 -0.00000082 -0.00000025 5*0.0 -0.00000080 0.00000003 0.00000000 0.00000023 0.00000006 194 | 5*0.0 0.00000233 -0.00000009 0.00000000 -0.00000071 -0.00000022 5*0.0 -0.00000070 0.00000003 0.00000000 0.00000020 0.00000006 195 | 5*0.0 0.00000205 -0.00000008 0.00000000 -0.00000062 -0.00000019 5*0.0 -0.00000061 0.00000002 0.00000000 0.00000017 0.00000005 196 | 5*0.0 0.00000179 -0.00000007 0.00000000 -0.00000054 -0.00000016 5*0.0 -0.00000053 0.00000002 0.00000000 0.00000015 0.00000004 197 | 5*0.0 0.00000157 -0.00000006 0.00000000 -0.00000047 -0.00000014 5*0.0 -0.00000046 0.00000002 0.00000000 0.00000013 0.00000004 198 | 5*0.0 0.00000138 -0.00000005 0.00000000 -0.00000041 -0.00000012 5*0.0 -0.00000040 0.00000001 0.00000000 0.00000011 0.00000003 199 | 5*0.0 0.00000120 -0.00000004 0.00000000 -0.00000036 -0.00000011 5*0.0 -0.00000034 0.00000001 0.00000000 0.00000010 0.00000003 200 | 5*0.0 0.00000105 -0.00000004 0.00000000 -0.00000031 -0.00000009 5*0.0 -0.00000030 0.00000001 0.00000000 0.00000008 0.00000002 201 | 5*0.0 0.00000092 -0.00000003 0.00000000 -0.00000027 -0.00000008 5*0.0 -0.00000026 0.00000001 0.00000000 0.00000007 0.00000002 202 | 5*0.0 0.00000080 -0.00000003 0.00000000 -0.00000023 -0.00000007 5*0.0 -0.00000022 0.00000001 0.00000000 0.00000006 0.00000002 203 | 5*0.0 0.00000070 -0.00000002 0.00000000 -0.00000020 -0.00000006 5*0.0 -0.00000019 0.00000001 0.00000000 0.00000005 0.00000001 204 | 5*0.0 0.00000061 -0.00000002 0.00000000 -0.00000018 -0.00000005 5*0.0 -0.00000017 0.00000001 0.00000000 0.00000005 0.00000001 205 | 5*0.0 0.00000053 -0.00000002 0.00000000 -0.00000015 -0.00000004 5*0.0 -0.00000014 0.00000000 0.00000000 0.00000004 0.00000001 206 | 5*0.0 0.00000046 -0.00000002 0.00000000 -0.00000013 -0.00000004 5*0.0 -0.00000012 0.00000000 0.00000000 0.00000003 0.00000001 207 | 5*0.0 0.00000040 -0.00000001 0.00000000 -0.00000011 -0.00000003 5*0.0 -0.00000011 0.00000000 0.00000000 0.00000003 0.00000001 208 | 5*0.0 0.00000035 -0.00000001 0.00000000 -0.00000010 -0.00000003 5*0.0 -0.00000009 0.00000000 0.00000000 0.00000002 0.00000001 209 | 5*0.0 0.00000030 -0.00000001 0.00000000 -0.00000008 -0.00000002 5*0.0 -0.00000008 0.00000000 0.00000000 0.00000002 0.00000001 210 | 5*0.0 0.00000026 -0.00000001 0.00000000 -0.00000007 -0.00000002 5*0.0 -0.00000007 0.00000000 0.00000000 0.00000002 0.00000000 211 | 5*0.0 0.00000023 -0.00000001 0.00000000 -0.00000006 -0.00000002 5*0.0 -0.00000006 0.00000000 0.00000000 0.00000002 0.00000000 212 | 5*0.0 0.00000020 -0.00000001 0.00000000 -0.00000005 -0.00000002 5*0.0 -0.00000005 0.00000000 0.00000000 0.00000001 0.00000000 213 | 5*0.0 0.00000017 -0.00000001 0.00000000 -0.00000005 -0.00000001 5*0.0 -0.00000004 0.00000000 0.00000000 0.00000001 0.00000000 214 | 5*0.0 0.00000015 -0.00000000 0.00000000 -0.00000004 -0.00000001 5*0.0 -0.00000004 0.00000000 0.00000000 0.00000001 0.00000000 215 | 5*0.0 0.00000013 -0.00000000 0.00000000 -0.00000003 -0.00000001 5*0.0 -0.00000003 0.00000000 0.00000000 0.00000001 0.00000000 216 | 5*0.0 0.00000011 -0.00000000 0.00000000 -0.00000003 -0.00000001 5*0.0 -0.00000003 0.00000000 0.00000000 0.00000001 0.00000000 217 | 5*0.0 0.00000009 -0.00000000 0.00000000 -0.00000003 -0.00000001 5*0.0 -0.00000002 0.00000000 0.00000000 0.00000001 0.00000000 218 | 5*0.0 0.00000008 -0.00000000 0.00000000 -0.00000002 -0.00000001 5*0.0 -0.00000002 0.00000000 0.00000000 0.00000001 0.00000000 219 | 5*0.0 0.00000007 -0.00000000 0.00000000 -0.00000002 -0.00000000 5*0.0 -0.00000002 0.00000000 0.00000000 0.00000000 0.00000000 220 | 5*0.0 0.00000006 -0.00000000 0.00000000 -0.00000002 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 221 | 5*0.0 0.00000005 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 222 | 5*0.0 0.00000004 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 223 | 5*0.0 0.00000004 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 224 | 5*0.0 0.00000003 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 225 | 5*0.0 0.00000003 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 226 | 5*0.0 0.00000002 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 227 | 5*0.0 0.00000002 -0.00000000 0.00000000 -0.00000001 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 228 | 5*0.0 0.00000002 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 229 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 230 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 231 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 232 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 233 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 234 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 235 | 5*0.0 0.00000001 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 236 | 5*0.0 0.00000000 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 237 | 5*0.0 0.00000000 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 238 | 5*0.0 0.00000000 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 239 | 5*0.0 0.00000000 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 240 | 5*0.0 0.00000000 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 241 | 5*0.0 0.00000000 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 242 | 5*0.0 0.00000000 -0.00000000 0.00000000 -0.00000000 -0.00000000 5*0.0 -0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 243 | 5*0.0 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 5*0.0 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 244 | 245 | 246 | Spline 247 | 23 3.55 248 | 1.902123141901259 3.246245867331791 -0.4158229792168582 249 | 1.3 1.4 1.75148488733339 -4.122486448589871 3.920738438018564 0.7557948771811932 250 | 1.4 1.5 1.37919942173177 -3.315664914670724 4.147476901172921 -3.778974385906665 251 | 1.5 1.6 1.08532872489052 -2.599538766013339 3.013784585400921 -1.889125233553999 252 | 1.6 1.7 0.853623568909641 -2.053455605939775 2.447047015334721 -1.820368849870964 253 | 1.7 1.8 0.67092810961914 -1.61865726836896 1.900936360373432 -1.355009646962172 254 | 1.8 1.9 0.526716736739016 -1.279120285703139 1.49443346628478 -1.07901343228406 255 | 1.9 2 0.412670029399266 -1.012603995414705 1.170729436599563 -0.8271072039010866 256 | 2 2.1 0.32228981701989 -0.8032713242118246 0.9225972754292364 -0.6353118021088832 257 | 2.1 2.2 0.250553345550891 -0.6378112231892437 0.7320037347965713 -0.4857115076672956 258 | 2.2 2.3 0.193606549072265 -0.5059818214599481 0.5862902824963825 -0.3748429972181405 259 | 2.3 2.4 0.148496426754016 -0.3999690548772162 0.4738373833309407 -0.2953699234627563 260 | 2.4 2.5 0.112942525176141 -0.3140626759149107 0.3852264062921137 -0.2409956389305919 261 | 2.5 2.6 0.08514752600864046 -0.2442472638244056 0.3129277146129361 -0.2051377208138041 262 | 2.6 2.7 0.06364693905151544 -0.1878158525262325 0.2513863983687948 -0.1813171478146021 263 | 2.7 2.8 0.04719790063476553 -0.1429780872869115 0.1969912540244142 -0.1629270679280242 264 | 2.8 2.9 0.03470707737839054 -0.1084676485198695 0.1481131336460071 -0.1437685504731091 265 | 2.9 3 0.02519767531239054 -0.08315807830486135 0.1049825685040743 -0.1161388101795934 266 | 3 3.1 0.01781555435676555 -0.06564572890943428 0.07014092545019626 -0.07794255880851722 267 | 3.1 3.2 0.01187444816151556 -0.05395582058365054 0.04675815780764107 -0.006158374586349199 268 | 3.2 3.3 0.006940289306640564 -0.04478894025971279 0.04491064543173631 0.04413812715391649 269 | 3.3 3.4 0.002954639862140577 -0.03448266735874808 0.05815208357791121 0.3093333459707222 270 | 3.4 3.5 0.0003972273080156022 -0.01357225026404414 0.150952087369128 -0.5495231553024678 271 | 3.5 3.55 0 0.0001324725507074157 -0.01390485922161253 0.5163574315989545 -8.207587820660448 47.65204943334098 272 | 273 | 274 | mat-sci-03 275 | 276 | --------------------------------------------------------------------------------