diff --git a/nomad/parsing/__init__.py b/nomad/parsing/__init__.py index 728f61288c5e6ade930c771f9f98bb404d804e78..af6858c7a81f3a90afdff293fcd85e897618a5dd 100644 --- a/nomad/parsing/__init__.py +++ b/nomad/parsing/__init__.py @@ -172,7 +172,7 @@ parsers = [ TemplateParser(), ChaosParser(), LegacyParser( - name='parsers/phonopy', code_name='Phonopy', + name='parsers/phonopy', code_name='Phonopy' ,code_homepage='https://phonopy.github.io/phonopy/' parser_class_name='phonopyparser.PhonopyParserWrapper', # mainfile_contents_re=r'', # Empty regex since this code calls other DFT codes. mainfile_name_re=(r'.*/phonopy-FHI-aims-displacement-0*1/control.in$') @@ -190,19 +190,19 @@ parsers = [ supported_compressions=['gz', 'bz2', 'xz'] ), VaspOutcarParser( - name='parsers/vasp-outcar', code_name='VASP', + name='parsers/vasp-outcar', code_name='VASP', code_homepage='https://www.vasp.at/', parser_class_name='vaspparser.VaspOutcarParser', mainfile_name_re=r'(.*/)?OUTCAR(\.[^\.]*)?', mainfile_contents_re=(r'^\svasp\.') ), LegacyParser( - name='parsers/exciting', code_name='exciting', + name='parsers/exciting', code_name='exciting', code_homepage='http://exciting-code.org/', parser_class_name='excitingparser.ExcitingParser', mainfile_name_re=r'^.*.OUT(\.[^/]*)?$', mainfile_contents_re=(r'EXCITING.*started') ), LegacyParser( - name='parsers/fhi-aims', code_name='FHI-aims', + name='parsers/fhi-aims', code_name='FHI-aims', code_homepage='https://aimsclub.fhi-berlin.mpg.de/', parser_class_name='fhiaimsparser.FHIaimsParser', mainfile_contents_re=( r'^(.*\n)*' @@ -211,7 +211,7 @@ parsers = [ ) ), LegacyParser( - name='parsers/cp2k', code_name='CP2K', + name='parsers/cp2k', code_name='CP2K', code_homepage='https://www.cp2k.org/', parser_class_name='cp2kparser.CP2KParser', mainfile_contents_re=( r'\*\*\*\* \*\*\*\* \*\*\*\*\*\* \*\* PROGRAM STARTED AT\s.*\n' @@ -222,7 +222,7 @@ parsers = [ ) ), LegacyParser( - name='parsers/crystal', code_name='Crystal', + name='parsers/crystal', code_name='Crystal', code_homepage='https://www.crystal.unito.it/', parser_class_name='crystalparser.CrystalParser', mainfile_contents_re=( r'(CRYSTAL\s*\n\d+ \d+ \d+)|(CRYSTAL will run on \d+ processors)|' @@ -234,7 +234,7 @@ parsers = [ # when searching through the first 500 bytes of main files. We decided # to use only a portion of the regex to avoid that issue. LegacyParser( - name='parsers/cpmd', code_name='CPMD', + name='parsers/cpmd', code_name='CPMD', code_homepage='https://www.lcrc.anl.gov/for-users/software/available-software/cpmd/', parser_class_name='cpmdparser.CPMDParser', mainfile_contents_re=( # r'\s+\*\*\*\*\*\* \*\*\*\*\*\* \*\*\*\* \*\*\*\* \*\*\*\*\*\*\s*' @@ -248,14 +248,14 @@ parsers = [ ) ), LegacyParser( - name='parsers/nwchem', code_name='NWChem', + name='parsers/nwchem', code_name='NWChem', code_homepage='http://www.nwchem-sw.org/', parser_class_name='nwchemparser.NWChemParser', mainfile_contents_re=( r'Northwest Computational Chemistry Package \(NWChem\) (\d+\.)+\d+' ) ), LegacyParser( - name='parsers/bigdft', code_name='BigDFT', + name='parsers/bigdft', code_name='BigDFT', code_homepage='http://bigdft.org/', parser_class_name='bigdftparser.BigDFTParser', mainfile_contents_re=( # r'__________________________________ A fast and precise DFT wavelet code\s*' @@ -286,16 +286,16 @@ parsers = [ ) ), LegacyParser( - name='parsers/wien2k', code_name='WIEN2k', + name='parsers/wien2k', code_name='WIEN2k', code_homepage='http://www.wien2k.at/', parser_class_name='wien2kparser.Wien2kParser', mainfile_contents_re=r'\s*---------\s*:ITE[0-9]+:\s*[0-9]+\.\s*ITERATION\s*---------' ), LegacyParser( - name='parsers/band', code_name='BAND', + name='parsers/band', code_name='BAND', code_homepage='https://www.scm.com/product/band_periodicdft/', parser_class_name='bandparser.BANDParser', mainfile_contents_re=r' +\* +Amsterdam Density Functional +\(ADF\)'), LegacyParser( - name='parsers/gaussian', code_name='Gaussian', + name='parsers/gaussian', code_name='Gaussian', code_homepage='http://gaussian.com/', parser_class_name='gaussianparser.GaussianParser', mainfile_mime_re=r'.*', mainfile_contents_re=( @@ -303,7 +303,7 @@ parsers = [ r'\s*Gaussian [0-9]+, Revision [A-Za-z0-9\.]*,') ), LegacyParser( - name='parsers/quantumespresso', code_name='Quantum Espresso', + name='parsers/quantumespresso', code_name='Quantum Espresso', code_homepage='https://www.quantum-espresso.org/', parser_class_name='quantumespressoparser.QuantumEspressoParserPWSCF', mainfile_contents_re=( r'(Program PWSCF.*starts)|' @@ -314,12 +314,12 @@ parsers = [ # r'(?:\s*\n?)*This program is part of the open-source Quantum') ), LegacyParser( - name='parsers/abinit', code_name='ABINIT', + name='parsers/abinit', code_name='ABINIT', code_homepage='https://www.abinit.org/', parser_class_name='abinitparser.AbinitParser', mainfile_contents_re=(r'^\n*\.Version\s*[0-9.]*\s*of ABINIT\s*') ), LegacyParser( - name='parsers/orca', code_name='ORCA', + name='parsers/orca', code_name='ORCA', code_homepage='https://orcaforum.kofo.mpg.de/', parser_class_name='orcaparser.OrcaParser', mainfile_contents_re=( r'\s+\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\**\s*' @@ -329,22 +329,22 @@ parsers = [ r'\s*--- An Ab Initio, DFT and Semiempirical electronic structure package ---\s*') ), LegacyParser( - name='parsers/castep', code_name='CASTEP', + name='parsers/castep', code_name='CASTEP', code_homepage='http://www.castep.org/', parser_class_name='castepparser.CastepParser', mainfile_contents_re=(r'\s\|\s*CCC\s*AA\s*SSS\s*TTTTT\s*EEEEE\s*PPPP\s*\|\s*') ), LegacyParser( - name='parsers/dl-poly', code_name='DL_POLY', + name='parsers/dl-poly', code_name='DL_POLY', code_homepage='https://www.scd.stfc.ac.uk/Pages/DL_POLY.aspx', parser_class_name='dlpolyparser.DlPolyParserWrapper', mainfile_contents_re=(r'\*\* DL_POLY \*\*') ), LegacyParser( - name='parsers/lib-atoms', code_name='libAtoms', + name='parsers/lib-atoms', code_name='libAtoms', code_homepage='https://libatoms.github.io/', parser_class_name='libatomsparser.LibAtomsParserWrapper', mainfile_contents_re=(r'\s*<GAP_params\s') ), LegacyParser( - name='parsers/octopus', code_name='Octopus', + name='parsers/octopus', code_name='Octopus', code_homepage='https://octopus-code.org/', parser_class_name='octopusparser.OctopusParserWrapper', mainfile_contents_re=(r'\|0\) ~ \(0\) \|') # We decided to use the octopus eyes instead of @@ -352,20 +352,20 @@ parsers = [ ), # match gpaw2 first, other .gpw files are then considered to be "gpaw1" LegacyParser( - name='parsers/gpaw2', code_name='GPAW', + name='parsers/gpaw2', code_name='GPAW', code_homepage=None, parser_class_name='gpawparser.GPAWParser2Wrapper', mainfile_binary_header=b'GPAW', mainfile_name_re=(r'^.*\.(gpw2|gpw)$'), mainfile_mime_re=r'application/(x-tar|octet-stream)' ), LegacyParser( - name='parsers/gpaw', code_name='GPAW', + name='parsers/gpaw', code_name='GPAW', code_homepage='https://wiki.fysik.dtu.dk/gpaw/', parser_class_name='gpawparser.GPAWParserWrapper', mainfile_name_re=(r'^.*\.gpw$'), mainfile_mime_re=r'application/(x-tar|octet-stream)' ), LegacyParser( - name='parsers/atk', code_name='ATK', + name='parsers/atk', code_name='ATK', code_homepage='https://www.synopsys.com/silicon/quantumatk.html', parser_class_name='atkparser.ATKParserWrapper', # mainfile_contents_re=r'', # We can't read .gpw as txt - of UlmGPAW|AFFormatGPAW' mainfile_name_re=r'^.*\.nc', @@ -373,7 +373,7 @@ parsers = [ mainfile_mime_re=r'application/octet-stream' ), LegacyParser( - name='parsers/gulp', code_name='gulp', + name='parsers/gulp', code_name='gulp', code_homepage='http://gulp.curtin.edu.au/gulp/', parser_class_name='gulpparser.GULPParser', mainfile_contents_re=( r'\s*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*' @@ -381,24 +381,24 @@ parsers = [ r'\s*\*\s*GENERAL UTILITY LATTICE PROGRAM\s*\*\s*') ), LegacyParser( - name='parsers/siesta', code_name='Siesta', + name='parsers/siesta', code_name='Siesta', code_homepage='https://departments.icmab.es/leem/siesta/', parser_class_name='siestaparser.SiestaParser', mainfile_contents_re=( r'(Siesta Version: siesta-|SIESTA [0-9]\.[0-9]\.[0-9])|' r'(\*\s*WELCOME TO SIESTA\s*\*)') ), LegacyParser( - name='parsers/elk', code_name='elk', + name='parsers/elk', code_name='elk', code_homepage='http://elk.sourceforge.net/', parser_class_name='elkparser.ElkParser', mainfile_contents_re=r'\| Elk version [0-9.a-zA-Z]+ started \|' ), LegacyParser( - name='parsers/elastic', code_name='elastic', + name='parsers/elastic', code_name='elastic', code_homepage='http://exciting-code.org/elastic', parser_class_name='elasticparser.ElasticParser', mainfile_contents_re=r'\s*Order of elastic constants\s*=\s*[0-9]+\s*' ), LegacyParser( - name='parsers/gamess', code_name='GAMESS', + name='parsers/gamess', code_name='GAMESS', code_homepage='https://www.msg.chem.iastate.edu/gamess/versions.html', parser_class_name='gamessparser.GamessParser', mainfile_contents_re=( r'\s*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\**\s*' @@ -406,61 +406,62 @@ parsers = [ r'\s*\*\s*FROM IOWA STATE UNIVERSITY\s*\*\s*') ), LegacyParser( - name='parsers/turbomole', code_name='turbomole', + name='parsers/turbomole', code_name='turbomole', code_homepage='https://www.turbomole.org/', parser_class_name='turbomoleparser.TurbomoleParser', mainfile_contents_re=( r'Copyright \(C\) [0-9]+ TURBOMOLE GmbH, Karlsruhe') ), LegacyParser( - name='parsers/skeleton', code_name='skeleton', domain='ems', + name='parsers/skeleton', code_name='skeleton', code_homepage=None, + domain='ems', parser_class_name='skeletonparser.SkeletonParserInterface', mainfile_mime_re=r'(application/json)|(text/.*)', mainfile_contents_re=(r'skeleton experimental metadata format') ), LegacyParser( - name='parsers/mpes', code_name='mpes', domain='ems', + name='parsers/mpes', code_name='mpes', code_homepage='https://github.com/mpes-kit/mpes', domain='ems', parser_class_name='mpesparser.MPESParserInterface', mainfile_mime_re=r'(application/json)|(text/.*)', mainfile_name_re=(r'.*.meta'), mainfile_contents_re=(r'"data_repository_name": "zenodo.org"') ), LegacyParser( - name='parsers/aptfim', code_name='mpes', domain='ems', + name='parsers/aptfim', code_name='mpes', code_homepage='https://github.com/mpes-kit/mpes', domain='ems', parser_class_name='aptfimparser.APTFIMParserInterface', mainfile_mime_re=r'(application/json)|(text/.*)', mainfile_name_re=(r'.*.aptfim') ), LegacyParser( - name='parsers/eels', code_name='eels', domain='ems', + name='parsers/eels', code_name='eels', code_homepage='https://eelsdb.eu/', domain='ems', parser_class_name='eelsparser.EelsParserInterface', mainfile_mime_re=r'text/.*', mainfile_name_re=(r'.*.txt'), mainfile_contents_re=(r'api_permalink = https://api\.eelsdb\.eu') ), LegacyParser( - name='parsers/qbox', code_name='qbox', domain='dft', + name='parsers/qbox', code_name='qbox', code_homepage='http://qboxcode.org/', domain='dft', parser_class_name='qboxparser.QboxParser', mainfile_mime_re=r'(application/xml)|(text/.*)', mainfile_contents_re=(r'http://qboxcode.org') ), LegacyParser( - name='parsers/dmol', code_name='DMol3', domain='dft', + name='parsers/dmol', code_name='DMol3', code_homepage='http://dmol3.web.psi.ch/dmol3.html', domain='dft', parser_class_name='dmol3parser.Dmol3Parser', mainfile_name_re=r'.*\.outmol', mainfile_contents_re=r'Materials Studio DMol\^3' ), LegacyParser( - name='parsers/fleur', code_name='fleur', domain='dft', + name='parsers/fleur', code_name='fleur', code_homepage='https://www.flapw.de/', domain='dft', parser_class_name='fleurparser.FleurParser', mainfile_contents_re=r'This output is generated by fleur.' ), LegacyParser( - name='parsers/molcas', code_name='MOLCAS', domain='dft', + name='parsers/molcas', code_name='MOLCAS', code_homepage='http://www.molcas.org/', domain='dft', parser_class_name='molcasparser.MolcasParser', mainfile_contents_re=r'M O L C A S' ), LegacyParser( - name='parsers/onetep', code_name='ONETEP', domain='dft', + name='parsers/onetep', code_name='ONETEP', code_homepage='https://www.onetep.org/', domain='dft', parser_class_name='onetepparser.OnetepParser', mainfile_contents_re=r'####### # # ####### ####### ####### ######' ) @@ -468,19 +469,23 @@ parsers = [ empty_parsers = [ EmptyParser( - name='missing/octopus', code_name='Octopus', domain='dft', + name='missing/octopus', code_name='Octopus', code_homepage='https://octopus-code.org/', + domain='dft', mainfile_name_re=r'(inp)|(.*/inp)' ), EmptyParser( - name='missing/crystal', code_name='Crystal', domain='dft', + name='missing/crystal', code_name='Crystal', code_homepage='https://www.crystal.unito.it/index.php', + domain='dft', mainfile_name_re=r'.*\.cryst\.out' ), EmptyParser( - name='missing/wien2k', code_name='WIEN2k', domain='dft', + name='missing/wien2k', code_name='WIEN2k', code_homepage='http://www.wien2k.at/', + domain='dft', mainfile_name_re=r'.*\.scf' ), EmptyParser( - name='missing/fhi-aims', code_name='FHI-aims', domain='dft', + name='missing/fhi-aims', code_name='FHI-aims', code_homepage='https://aimsclub.fhi-berlin.mpg.de/', + domain='dft', mainfile_name_re=r'.*\.fhiaims' ) ]