
     i                     r    d Z ddlZddlmZ ddlmZ ddlmZ ddl	m
Z
mZmZmZmZmZ  G d	 d
e          ZdS )a  
FHI-AIMS Topology Parser --- :mod:`MDAnalysis.topolgy.FHIAIMSParser`
====================================================================

Reads an `FHI-AIMS`_ ``.in`` file and pulls the atom information from it.
Because an FHI-AIMS input file only has atom name information, any
information about residues and segments will not be populated.

.. _`FHI-AIMS`: https://aimsclub.fhi-berlin.mpg.de/


See Also
--------
:mod:`MDAnalysis.coordinates.FHIAIMS`


Classes
-------

.. autoclass:: FHIAIMSParser
   :members:
   :inherited-members:

    N   )openany   )TopologyReaderBase)Topology)	AtomnamesAtomidsResidsResnumsSegidsElementsc                        e Zd ZdZddgZd ZdS )FHIAIMSParsera  Parse a list of atoms from an FHI-AIMS file

    Creates the following attributes:
     - Atomnames


    .. note::

        By default, atomtypes and masses will be guessed on Universe creation.
        This may change in release 3.0.
        See :ref:`Guessers` for more information.

    .. versionchanged:: 2.8.0
        Removed type and mass guessing (attributes guessing takes place now
        through universe.guess_TopologyAttrs() API).
    INFHIAIMSc           
      l   g }g d}t          | j                  5 }|D ]                                                    d          r.|                                                    d                    Yt          fd|D                       rut          d                    | j                            t          j
        |          }t          |          }ddd           n# 1 swxY w Y   t          |          t          t          j        |          dz             t          t          j        dg                    t#          t          j        dg                    t%          t          j        dgt&          	                    t)          |          g}t+          |dd|
          }|S )ztRead the file and return the structure.

        Returns
        -------
        MDAnalysis Topology object
        )#lattice_vectorinitial_momentvelocityatomc                 :    g | ]}                     |          S  )
startswith).0taglines     k/srv/www/vhosts/g4struct/public_html/venv/lib/python3.11/site-packages/MDAnalysis/topology/FHIAIMSParser.py
<listcomp>z'FHIAIMSParser.parse.<locals>.<listcomp>c   s%    BBB,,BBB    z4Non-conforming line: ({0})in FHI-AIMS input file {0}Nr   SYSTEM)dtype)attrs)r   filenamestripr   appendsplitany
ValueErrorformatnpasarraylenr   r	   aranger
   arrayr   r   objectr   r   )	selfkwargsnames	skip_tagsinfnatomsr$   topr   s	           @r   parsezFHIAIMSParser.parseS   s    III	T]## 	 s  zz||??6** LLb!1222BBBB	BBBCC  JQQdm   
 Ju%%EZZF	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 $ eBIf%%)**28QC==!!BHaSMM""28XJf55566UOO
 vq!5111
s   CC++C/2C/N)__name__
__module____qualname____doc__r+   r9   r   r!   r   r   r   ?   s9         " IF& & & & &r!   r   )r=   numpyr,   lib.utilr   baser   core.topologyr   core.topologyattrsr   r	   r
   r   r   r   r   r   r!   r   <module>rC      s   0 0           $ $ $ $ $ $ $ $ $ $ $ $               : : : : :& : : : : :r!   