Source code for pyscf.pbc.gto.pseudo.split_GTH_POTENTIALS

#!/usr/bin/python
# Copyright 2014-2020 The PySCF Developers. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[docs] def main(): file_GTH = 'GTH_POTENTIALS' header = [] is_header = True is_footer = False xcs = [] all_pseudos = [] current_pseudo = [] with open(file_GTH,'r') as searchfile: for line in searchfile: if 'functional' in line: xc = line.split()[1] xcs.append(xc) if len(current_pseudo) > 0: all_pseudos.append(current_pseudo) current_pseudo = [] current_pseudo.append(line) banner_count = 1 is_header = False is_footer = False else: if is_header: header.append(line) else: if banner_count > 3 and '#####' in line: current_pseudo.pop() is_footer = True if banner_count < 3 or is_footer: current_pseudo.append(line) else: current_pseudo.append(line.replace('#','#PSEUDOPOTENTIAL')) banner_count += 1 # The last one: all_pseudos.append(current_pseudo) print("Found", len(xcs), "XC pseudopotentials.") # for line in header: # print(line) # for xc, pseudo in zip(xcs, all_pseudos): with open('gth-%s.dat'%(xc.lower()),'w') as f: for line in header: f.write(line) for line in pseudo: f.write(line) f.close()
if __name__ == '__main__': main()