Repository: romerogroup/pyprocar (language: python)

Issue:
Bump requests from 2.28.1 to 2.31.0
Bumps [requests](https://github.com/psf/requests) from 2.28.1 to 2.31.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/psf/requests/releases">requests's releases</a>.</em></p>
<blockquote>
<h2>v2.31.0</h2>
<h2>2.31.0 (2023-05-22)</h2>
<p><strong>Security</strong></p>
<ul>
<li>
<p>Versions of Requests between v2.3.0 and v2.30.0 are vulnerable to potential
forwarding of <code>Proxy-Authorization</code> headers to destination servers when
following HTTPS redirects.</p>
<p>When proxies are defined with user info (<a href="https://user:pass@proxy:8080">https://user:pass@proxy:8080</a>), Requests
will construct a <code>Proxy-Authorization</code> header that is attached to the request to
authenticate with the proxy.</p>
<p>In cases where Requests receives a redirect response, it previously reattached
the <code>Proxy-Authorization</code> header incorrectly, resulting in the value being
sent through the tunneled connection to the destination server. Users who rely on
defining their proxy credentials in the URL are <em>strongly</em> encouraged to upgrade
to Requests 2.31.0+ to prevent unintentional leakage and rotate their proxy
credentials once the change has been fully deployed.</p>
<p>Users who do not use a proxy or do not supply their proxy credentials through
the user information portion of their proxy URL are not subject to this
vulnerability.</p>
<p>Full details can be read in our <a href="https://github.com/psf/requests/security/advisories/GHSA-j8r2-6x86-q33q">Github Security Advisory</a>
and <a href="https://nvd.nist.gov/vuln/detail/CVE-2023-32681">CVE-2023-32681</a>.</p>
</li>
</ul>
<h2>v2.30.0</h2>
<h2>2.30.0 (2023-05-03)</h2>
<p><strong>Dependencies</strong></p>
<ul>
<li>
<p>⚠️ Added support for urllib3 2.0. ⚠️</p>
<p>This may contain minor breaking changes so we advise careful testing and
reviewing <a href="https://urllib3.readthedocs.io/en/latest/v2-migration-guide.html">https://urllib3.readthedocs.io/en/latest/v2-migration-guide.html</a>
prior to upgrading.</p>
<p>Users who wish to stay on urllib3 1.x can pin to <code>urllib3&lt;2</code>.</p>
</li>
</ul>
<h2>v2.29.0</h2>
<h2>2.29.0 (2023-04-26)</h2>
<p><strong>Improvements</strong></p>
<ul>
<li>Requests now defers chunked requests to the urllib3 implementation to improve
standardization. (<a href="https://redirect.github.com/psf/requests/issues/6226">#6226</a>)</li>
<li>Requests relaxes header component requirements to support bytes/str subclasses. (<a href="https://redirect.github.com/psf/requests/issues/6356">#6356</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/psf/requests/blob/main/HISTORY.md">requests's changelog</a>.</em></p>
<blockquote>
<h2>2.31.0 (2023-05-22)</h2>
<p><strong>Security</strong></p>
<ul>
<li>
<p>Versions of Requests between v2.3.0 and v2.30.0 are vulnerable to potential
forwarding of <code>Proxy-Authorization</code> headers to destination servers when
following HTTPS redirects.</p>
<p>When proxies are defined with user info (<a href="https://user:pass@proxy:8080">https://user:pass@proxy:8080</a>), Requests
will construct a <code>Proxy-Authorization</code> header that is attached to the request to
authenticate with the proxy.</p>
<p>In cases where Requests receives a redirect response, it previously reattached
the <code>Proxy-Authorization</code> header incorrectly, resulting in the value being
sent through the tunneled connection to the destination server. Users who rely on
defining their proxy credentials in the URL are <em>strongly</em> encouraged to upgrade
to Requests 2.31.0+ to prevent unintentional leakage and rotate their proxy
credentials once the change has been fully deployed.</p>
<p>Users who do not use a proxy or do not supply their proxy credentials through
the user information portion of their proxy URL are not subject to this
vulnerability.</p>
<p>Full details can be read in our <a href="https://github.com/psf/requests/security/advisories/GHSA-j8r2-6x86-q33q">Github Security Advisory</a>
and <a href="https://nvd.nist.gov/vuln/detail/CVE-2023-32681">CVE-2023-32681</a>.</p>
</li>
</ul>
<h2>2.30.0 (2023-05-03)</h2>
<p><strong>Dependencies</strong></p>
<ul>
<li>
<p>⚠️ Added support for urllib3 2.0. ⚠️</p>
<p>This may contain minor breaking changes so we advise careful testing and
reviewing <a href="https://urllib3.readthedocs.io/en/latest/v2-migration-guide.html">https://urllib3.readthedocs.io/en/latest/v2-migration-guide.html</a>
prior to upgrading.</p>
<p>Users who wish to stay on urllib3 1.x can pin to <code>urllib3&lt;2</code>.</p>
</li>
</ul>
<h2>2.29.0 (2023-04-26)</h2>
<p><strong>Improvements</strong></p>
<ul>
<li>Requests now defers chunked requests to the urllib3 implementation to improve
standardization. (<a href="https://redirect.github.com/psf/requests/issues/6226">#6226</a>)</li>
<li>Requests relaxes header component requirements to support bytes/str subclasses. (<a href="https://redirect.github.com/psf/requests/issues/6356">#6356</a>)</li>
</ul>
<h2>2.28.2 (2023-01-12)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/psf/requests/commit/147c8511ddbfa5e8f71bbf5c18ede0c4ceb3bba4"><code>147c851</code></a> v2.31.0</li>
<li><a href="https://github.com/psf/requests/commit/74ea7cf7a6a27a4eeb2ae24e162bcc942a6706d5"><code>74ea7cf</code></a> Merge pull request from GHSA-j8r2-6x86-q33q</li>
<li><a href="https://github.com/psf/requests/commit/302225334678490ec66b3614a9dddb8a02c5f4fe"><code>3022253</code></a> test on pypy 3.8 and pypy 3.9 on windows and macos (<a href="https://redirect.github.com/psf/requests/issues/6424">#6424</a>)</li>
<li><a href="https://github.com/psf/requests/commit/b639e66c816514e40604d46f0088fbceec1a5149"><code>b639e66</code></a> test on py3.12 (<a href="https://redirect.github.com/psf/requests/issues/6448">#6448</a>)</li>
<li><a href="https://github.com/psf/requests/commit/d3d504436ef0c2ac7ec8af13738b04dcc8c694be"><code>d3d5044</code></a> Fixed a small typo (<a href="https://redirect.github.com/psf/requests/issues/6452">#6452</a>)</li>
<li><a href="https://github.com/psf/requests/commit/2ad18e0e10e7d7ecd5384c378f25ec8821a10a29"><code>2ad18e0</code></a> v2.30.0</li>
<li><a href="https://github.com/psf/requests/commit/f2629e9e3c7ce3c3c8c025bcd8db551101cbc773"><code>f2629e9</code></a> Remove strict parameter (<a href="https://redirect.github.com/psf/requests/issues/6434">#6434</a>)</li>
<li><a href="https://github.com/psf/requests/commit/87d63de8739263bbe17034fba2285c79780da7e8"><code>87d63de</code></a> v2.29.0</li>
<li><a href="https://github.com/psf/requests/commit/51716c4ef390136b0d4b800ec7665dd5503e64fc"><code>51716c4</code></a> enable the warnings plugin (<a href="https://redirect.github.com/psf/requests/issues/6416">#6416</a>)</li>
<li><a href="https://github.com/psf/requests/commit/a7da1ab3498b10ec3a3582244c94b2845f8a8e71"><code>a7da1ab</code></a> try on ubuntu 22.04 (<a href="https://redirect.github.com/psf/requests/issues/6418">#6418</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/psf/requests/compare/v2.28.1...v2.31.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=requests&package-manager=pip&previous-version=2.28.1&new-version=2.31.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/romerogroup/pyprocar/network/alerts).

</details>
> **Note**
> Automatic rebases have been disabled on this pull request as it has been open for over 30 days.



Discussion / hints:

Fix patch:
diff --git a/pyprocar/pyposcar/__init__.py b/pyprocar/pyposcar/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/pyprocar/pyposcar/analize.py b/pyprocar/pyposcar/analize.py
new file mode 100755
index 00000000..47a3eebc
--- /dev/null
+++ b/pyprocar/pyposcar/analize.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python3
+
+import poscar
+import latticeUtils
+import defects
+import argparse
+import rdf
+
+
+
+if __name__ == '__main__':
+  parser = argparse.ArgumentParser()
+  parser.add_argument("inputfile", type=str, help="input file")
+  parser.add_argument('--size', '-n', type=int, help="size in nearest neighbors"
+                      " of the cluster to build", default=0)
+  parser.add_argument('--smooth', '-s', action='store_true')
+  parser.add_argument('--hydrogenate', '-y', action='store_true')
+
+  parser.add_argument('-v', '--verbose', action='store_true')
+  
+  
+  args = parser.parse_args()
+  
+  p = poscar.Poscar(args.inputfile, verbose=False)
+  p.parse()
+  
+  Defects = defects.FindDefect(poscar=p,verbose=args.verbose)
+  print(Defects.defects)
+
+  # going to write a new file to mark the defects
+  Defects.write_defects(method='any', filename=args.inputfile+'_defect.vasp')
+
+  import clusters
+  cluster = clusters.Clusters(p, verbose=args.verbose,
+                              neighbors=Defects.neighbors,
+                              marked=Defects.all_defects)
+  # just to avoid a warning in the automated test
+  cluster.disable_warning = True
+  cluster.extend_clusters(args.size)
+  if args.smooth:
+    cluster.smooth_edges()
+
+  if args.hydrogenate:
+    cluster.hydrogenate(args.inputfile+'_cluster.vasp')
+  else:
+    cluster.write(args.inputfile+'_cluster.vasp')
+
diff --git a/pyprocar/pyposcar/chg_raw.py b/pyprocar/pyposcar/chg_raw.py
new file mode 100755
index 00000000..4f61d2ba
--- /dev/null
+++ b/pyprocar/pyposcar/chg_raw.py
@@ -0,0 +1,519 @@
+#!/usr/bin/env python3
+
+######################
+## TODO:
+## -Chg.shift 
+## -Chg.plot_atoms (maybe in poscar.py)
+## -Chg.Charge_redistributions
+######################
+
+import argparse
+import os
+import numpy as np
+import poscar
+import re
+import math
+from scipy.interpolate import griddata
+import matplotlib.pyplot as plt
+import warnings
+import plot3d
+
+class Chg_base:
+  def __init__(self):
+    self.comment = None
+    self.Ispin = 1
+    self.NGF = []
+    self.poscar = None
+    self.File = []
+    self.Data_blocks = []
+    self.Data0 = np.array([])
+    self.Data1 = np.array([])
+    self.Data2 = np.array([])
+    self.Data3 = np.array([])
+    self.is_chg = True
+    self.is_locpot = None
+    
+  def Load(self, filename='CHGCAR', frame=0, is_chg=None, verbose=None):
+    """Load a CHG-like file 
+
+    `verbose` = False: No verbosity
+              = True: verbose output
+              = 'debug': usually unwanted verbosity level
+
+    """
+    if verbose != None:
+      self.verbose = verbose
+    if is_chg != None:
+      self.is_chg = is_chg
+    if self.verbose:
+      print("\nINFO: Loading a CHG-like with the following parameters:")
+      print("INFO: Filename: ", filename)
+      print("INFO: is_chg:   ", self.is_chg)
+    # checking if the file exist
+    if not os.path.isfile(filename):
+      print("ERROR: can't open the file, please check:", filename)
+      raise RuntimeError('File does not exist')
+    self.File = open(filename, 'r').read()
+        
+    # getting how many ionic steps were loaded
+    self.comment = re.findall(r'^[^\n]*\n', self.File)[0]
+    if self.verbose == 'debug':
+      print('DEBUG: Comment line:')
+      print(self.comment)
+
+    Nframes = len(re.findall(self.comment, self.File))
+    if self.verbose == 'debug':
+      print('DEBUG: Number of frames found:', Nframes)
+
+    if self.verbose:
+      print('INFO: Selecting the frame:', frame)
+    frames = re.split(self.comment, self.File)
+    # if the first frame is empty (a `re` thing), should be discarded
+    if len(frames[0]) == 0:
+      frames.pop(0)
+    self.File = frames[frame]
+
+    # next string to find is the line with
+    # NGFx NGFy NGFz
+    NGFline = re.findall(r'\n\s*\n(\s+\d+\s+\d+\s+\d+)\n', self.File)
+    if verbose:
+      print('INFO: NGFx NGFy NGFz', NGFline)
+    if len(NGFline) != 1:
+      raise RuntimeError('NGFline should have one and only one occurrence')
+    NGFline = NGFline[0]
+    self.NGF = np.array(NGFline.split(), dtype=int)
+    if verbose == 'debug':
+      print('DEBUG: grid size,', self.NGF)
+
+    data = re.split(NGFline, self.File)
+    ndata = len(data)
+    if self.verbose:
+      print('INFO: number of data blocks', ndata)
+    
+    # The first block is a POSCAR-like string
+    # The second block is the spin-up
+    # The third block (if present) is the spin-down
+    # The 4th and 5th blocks are Sy, Sz (1s:rho, 2nd:Sx)
+    if ndata == 2:
+      self.Ispin = 1
+      print('\nA non-magnetic calculation detected\n')
+    elif ndata == 3:
+      self.Ispin = 2
+      print('\nA spin-polarized calculation detected\n')
+    elif ndata == 5:
+      self.Ispin = 4
+      print('\nA non-collinear calculation detected\n')
+    else:
+      raise RuntimeError('Number of block data is unexpected,' + str(ndata))
+
+    # The poscar-like string would be passed to a POSCAR class
+    poscarString = self.comment + data.pop(0)
+    # print(poscarString)
+    self.poscar = poscar.Poscar(filename=None)
+    self.poscar.parse(fromString=poscarString)
+    if self.verbose == 'debug':
+      print('DEBUG: POSCAR-like info:')
+      print('\n'.join(self.poscar.poscar))
+    
+    # Now we will search for augmentation charges
+    # 'augmentation occupancies'
+    # That info will be discarded
+    temp = []
+    for block in data:
+      temp.append(re.split(r'augmentation occupancies', block)[0])
+    data = temp
+    
+    # The grid data will be processed
+    Ndata = self.NGF[0]*self.NGF[1]*self.NGF[2]
+    if self.verbose == 'debug':
+      print('DEBUG: Data points expected:', Ndata)
+      
+    self.Data0 = data[0].split()
+    ngfx, ngfy, ngfz = self.NGF[0], self.NGF[1], self.NGF[2]
+
+    # If the grid points don't agree it could be a LOCPOT with residual data 
+    if len(self.Data0) != Ndata:
+      N = self.poscar.Ntotal
+      if len(self.Data0) == Ndata + N:
+        self.is_locpot = True
+        self.Data0 = np.array(self.Data0[:-N], dtype=float).reshape(ngfz,ngfy,ngfx)
+        if self.verbose == 'debug':
+          print('INFO: a LOCTOP file was detected')
+        if self.is_chg and self.is_locpot:
+          if self.verbose == 'debug':
+            print('DEBUG: The number of grid points is not what I was expecting. '
+                  'The data I got is:')
+            print(self.Data0[:30])
+            print(self.Data0[-30:])
+          raise RuntimeError('The file is flagged as a CHGCAR-like file'
+                             ' and as a LOCPOT at the same time. This is inconsistent')
+      else:
+        raise RuntimeError('Grid points do not agree')
+    else:
+      self.Data0 = np.array(self.Data0, dtype=float).reshape(ngfz,ngfy,ngfx)
+
+    if self.is_chg:
+      self.Data0 = self.Data0 / Ndata
+      if self.verbose:
+        print('Total charge', np.sum(self.Data0))
+      
+    if self.Ispin > 1:
+      self.Data1 = data[1].split()
+      if len(self.Data1) != Ndata:
+        raise RuntimeError('Grid points do not agree')
+      self.Data1 = np.array(self.Data1, dtype=float).reshape(ngfz,ngfy,ngfx)
+      if self.is_chg:
+        self.Data1 = self.Data1 / Ndata
+        if self.verbose and self.Ispin == 2:
+          print('INFO: total magnetization,', np.sum(self.Data1))
+
+    if self.Ispin == 4:
+      self.Data2 = data[2].split()
+      self.Data3 = data[3].split()
+      if len(self.Data2) != Ndata or len(self.Data3) != Ndata:
+        raise RuntimeError('Grid points do not agree')
+      self.Data2 = np.array(self.Data2, dtype=float).reshape(ngfz,ngfy,ngfx)
+      self.Data3 = np.array(self.Data3, dtype=float).reshape(ngfz,ngfy,ngfx)
+      if self.is_chg:
+        self.Data2 = self.Data2 / Ndata
+        self.Data3 = self.Data3 / Ndata
+  
+
+class Chg:
+  def __init__(self, filename='CHG', is_chg=True, verbose=False):
+    self.chg = Chg_base()
+    self.filename = filename
+    self.is_chg = is_chg
+    self.verbose = verbose
+    self.chg.Load(filename=self.filename,
+                  frame=0,
+                  is_chg=self.is_chg,
+                  verbose=self.verbose)
+
+  def Zplot(self, level=None, spin=0, cart_level=None, direct_level=None):
+    """it plots the CHG-like file at an specific z-value, given by
+    level. Only works properly when the Z-axis (c-vector) is perpendicular to the
+    other axes.
+
+    args:
+
+    spin: the spin channel (i.e. the first `0`, or the second `1`
+    entry of the file)
+
+    level: the value of z to plot. In terms of the grid values (see
+    NGF in OUTCAR). Only one among `level`, `cart_level`, and
+    `direct_level` should be provided.
+
+    cart_level: as `level`, but the value of z is in cartesian.
+
+    direct_level: as `level`, but the value is in direct coordinates.
+
+    """
+    if (level and cart_level) or (level and direct_level) or (direct_level and cart_level):
+      raise RuntimeError('only one among `level`, `direct_level`, and'
+                         ' `cart_level` has to be provided')
+    # setting the different kind of levels in order, `cart_level` sets
+    # `direct_level` and so on
+    if cart_level:
+      c = np.linalg.norm(self.chg.poscar.lat[2])
+      direct_level = cart_level/c
+      if self.verbose:
+        print('INFO: cart_level,', cart_level)
+    if direct_level:
+      # going to a grid level, crude interpolation of the level
+      level_float = direct_level*self.chg.NGF[2]
+      level_floor = math.floor(level_float)
+      level_ceil = math.ceil(level_float)
+      delta_floor = 1-np.abs(level_float - level_floor)
+      delta_ceil = 1-np.abs(level_ceil - level_float)
+      if level_floor == level_ceil:
+        delta_floor, delta_ceil = 1,0
+      if self.verbose == 'debug':
+        print('INFO: direct_level', direct_level)
+        #print('level_float', level_float)
+        #print('level_floor, level_floor', level_floor, level_floor)
+        #print('delta_floor,delta_ceil', delta_floor,delta_ceil)
+    if level:
+      # in this case the crude interpolation shouldn't do anything
+      level_floor = level
+      level_ceil = level
+      delta_floor, delta_ceil = 0,1
+      if self.verbose == 'debug':
+        print('INFO: level', level)
+    if level is None and cart_level is None and direct_level is None:
+      level_floor = self.chg.NGF[2]/2
+      level_ceil = level_floor
+      delta_floor, delta_ceil = 0,1
+      if self.verbose == 'debug':
+        print('INFO: default is the midpoint of the axis', level_floor)
+      
+    if spin == 0:
+      data = self.chg.Data0
+    elif spin == 1:
+      data = self.chg.Data1
+    elif spin == 2:
+      data = self.chg.Data2
+    elif spin == 3:
+      data = self.chg.Data3
+    else:
+      raise RuntimeError('No such spin channel, ' + str(spin))
+    
+    zcolor = data[level_floor]*delta_floor + data[level_ceil]*delta_ceil
+      
+    Agrid, Bgrid = np.mgrid[0:1:self.chg.NGF[0]*1j, 0:1:self.chg.NGF[1]*1j]
+    #cartesian value of each point of the grid
+    xgrid = Agrid*self.chg.poscar.lat[0,0] + Bgrid*self.chg.poscar.lat[1,0]
+    ygrid = Agrid*self.chg.poscar.lat[0,1] + Bgrid*self.chg.poscar.lat[1,1]
+    if self.verbose == 'debug':
+      print('DEBUG: Agrid.shape', Agrid.shape)
+      print('DEBUG: lattice\n', self.chg.poscar.lat)
+      print('DEBUG: xgrid.shape', xgrid.shape)
+
+    xmin, xmax = xgrid.min(), xgrid.max()
+    ymin, ymax = ygrid.min(), ygrid.max()
+    xi, yi = np.mgrid[xmin:xmax:self.chg.NGF[0]*4j, ymin:ymax:self.chg.NGF[1]*4j]
+    points = np.vstack((xgrid.flatten(), ygrid.flatten())).T
+    values = zcolor.flatten()
+    if self.verbose == 'debug':    
+      print('DEBUG: points.shape', points.shape)
+      print('DEBUG: values.shape', values.shape)
+      print('DEBUG: xi.shape', xi.shape)
+      print('DEBUG: yi.shape', yi.shape)
+    zi = griddata(points, values, (xi, yi), method='linear')
+    
+    fig = plt.figure()
+    ax = fig.add_subplot(111)
+    p1= ax.pcolormesh(xi, yi, zi, cmap='seismic')
+    fig.colorbar(p1)
+    ax.set_aspect('equal')
+    return fig
+
+  def CutPlot(self, level=None, spin=0, cart_level=None, direct_level=None, axis='c'):
+    """it plots the CHG-like file at an specific value of `axis`, given by
+    `level`. Only works properly when the selected `axis` (basis vector) is perpendicular
+    to the other axes.
+
+    args:
+
+    spin: the spin channel (i.e. the first `0`, or the second `1`
+    entry of the file)
+
+    level: the value of x to plot. In terms of the grid values (see
+    NGF in OUTCAR). Only one among `level`, `cart_level`, and
+    `direct_level` should be provided.
+
+    cart_level: as `level`, but the value of z is in cartesian.
+
+    direct_level: as `level`, but the value is in direct coordinates.
+
+    axis: 'a', 'b', 'c', the basis vector to fix its value
+
+    """
+    # an utilitary dict to choose the desired axes
+    ax_dict = {'a':0, 'b':1, 'c':2}
+    # axis 3 is the axis to make the cut
+    ax3 = ax_dict[axis]
+    ax1 = np.remainder(ax_dict[axis]+1, 3)
+    ax2 = np.remainder(ax_dict[axis]+2, 3)
+    if self.verbose:
+      print('INFO: Selected axis to cut:', ax3)
+    if self.verbose=='debug':
+      print('DEBUG: The other axes are:', ax1, ax2)
+
+    
+    if (level and cart_level) or (level and direct_level) or (direct_level and cart_level):
+      raise RuntimeError('only one among `level`, `direct_level`, and'
+                         ' `cart_level` has to be provided')
+    # setting the different kind of levels in order, `cart_level` sets
+    # `direct_level` and so on
+    if cart_level:
+      # length of the perpendicular vector
+      L = np.linalg.norm(self.chg.poscar.lat[ax3])
+      direct_level = cart_level/L
+      if self.verbose:
+        print('INFO: cart_level,', cart_level)
+    if direct_level:
+      # going to a grid level, crude interpolation of the level
+      level_float = direct_level*self.chg.NGF[ax3]
+      level_floor = math.floor(level_float)
+      level_ceil = math.ceil(level_float)
+      delta_floor = 1-np.abs(level_float - level_floor)
+      delta_ceil = 1-np.abs(level_ceil - level_float)
+      if level_floor == level_ceil:
+        delta_floor, delta_ceil = 1,0
+      if self.verbose:
+        print('INFO: direct_level', direct_level)
+        # print('level_float', level_float)
+        # print('level_floor, level_floor', level_floor, level_floor)
+        # print('delta_floor,delta_ceil', delta_floor,delta_ceil)
+    if level:
+      # in this case the crude interpolation shouldn't do anything
+      level_floor = level
+      level_ceil = level
+      delta_floor, delta_ceil = 0,1
+      if self.verbose == 'debug':
+        print('INFO: level', level)
+
+    if level is None and cart_level is None and direct_level is None:
+      level_floor = self.chg.NGF[ax3]/2
+      level_ceil = level_floor
+      delta_floor, delta_ceil = 0,1
+      if self.verbose == 'debug':
+        print('INFO: default is the midpoint of the axis', level_floor)
+
+    if spin == 0:
+      data = self.chg.Data0
+    elif spin == 1:
+      data = self.chg.Data1
+    elif spin == 2:
+      data = self.chg.Data2
+    elif spin == 3:
+      data = self.chg.Data3
+    else:
+      raise RuntimeError('No such spin channel, ' + str(spin))
+
+    # building a grid with existent points
+    if axis == 'c':
+      zcolor = data[level_floor]*delta_floor + data[level_ceil]*delta_ceil
+      # a regular orthogonal grid
+      Agrid, Bgrid = np.mgrid[0:1:self.chg.NGF[0]*1j, 0:1:self.chg.NGF[1]*1j]
+      # cartesian grid
+      xgrid = Agrid*self.chg.poscar.lat[0,0] + Bgrid*self.chg.poscar.lat[1,0]
+      ygrid = Agrid*self.chg.poscar.lat[0,1] + Bgrid*self.chg.poscar.lat[1,1]
+  
+    elif axis == 'b':
+      zcolor = data[:,level_floor,:]*delta_floor + data[:,level_ceil,:]*delta_ceil
+      Agrid, Bgrid = np.mgrid[0:1:self.chg.NGF[2]*1j, 0:1:self.chg.NGF[0]*1j]
+      xgrid = Agrid*self.chg.poscar.lat[2,2] + Bgrid*self.chg.poscar.lat[0,2]
+      ygrid = Agrid*self.chg.poscar.lat[2,0] + Bgrid*self.chg.poscar.lat[0,0]
+
+    elif axis == 'a':
+      zcolor = data[:,:,level_floor]*delta_floor + data[:,:,level_ceil]*delta_ceil
+      Agrid, Bgrid = np.mgrid[0:1:self.chg.NGF[1]*1j, 0:1:self.chg.NGF[2]*1j]
+      # xgrid = Agrid*self.chg.poscar.lat[1,1] + Bgrid*self.chg.poscar.lat[1,2]
+      # ygrid = Agrid*self.chg.poscar.lat[2,1] + Bgrid*self.chg.poscar.lat[2,2]
+      xgrid = Agrid*self.chg.poscar.lat[1,1] 
+      ygrid = Bgrid*self.chg.poscar.lat[2,2] + Agrid*self.chg.poscar.lat[1,0]
+
+    if self.verbose == 'debug':
+      print('DEBUG: zcolor.shape', zcolor.shape)
+      print('DEBUG: Agrid.shape', Agrid.shape)
+      print('DEBUG: Bgrid.shape', Bgrid.shape)
+      print('DEBUG: lattice\n', self.chg.poscar.lat)
+      print('DEBUG: xgrid.shape', xgrid.shape)
+      print('DEBUG: ygrid.shape', xgrid.shape)
+    
+    xmin, xmax = xgrid.min(), xgrid.max()
+    ymin, ymax = ygrid.min(), ygrid.max()
+    # creating a regular grid to interpolate (the `4` is the resolution)
+    xi, yi = np.mgrid[xmin:xmax:self.chg.NGF[ax1]*4j, ymin:ymax:self.chg.NGF[ax2]*4j]
+    points = np.vstack((xgrid.flatten(), ygrid.flatten())).T
+    values = zcolor.flatten()
+    if self.verbose == 'debug':
+      print('points.shape', points.shape)
+      print('values.shape', values.shape)
+      print('xi.shape', xi.shape)
+      print('yi.shape', yi.shape)
+    zi = griddata(points, values, (xi, yi), method='linear')
+    
+    fig = plt.figure()
+    ax = fig.add_subplot(111)
+    p1= ax.pcolormesh(xi, yi, zi, cmap='seismic')
+    fig.colorbar(p1)
+    ax.set_aspect('equal')
+    return fig
+    
+  def shift(self, x=None, y=None, z=None):
+    pass
+  def plot_atoms(self):
+    postitions = self.chg.poscar.cpos
+    pass
+
+  def plot_cut_new(self, axis, value):
+    """Temporary function to use the plot3D class... very limited
+    functionality for now
+
+    """
+    p3d = plot3d.data3D(data=self.chg.Data0, lattice=self.chg.poscar.lat, verbose='debug')
+    p3d.cut_plane(axis=np.array([0.0, 0.0, 1.0]), value=10)
+    pass
+  
+  def average(self, axis):
+    data = self.chg.Data0
+    if axis == 'c':
+      data = np.average(data, axis=2)
+      data = np.average(data, axis=1)
+      length = np.linalg.norm(self.chg.poscar.lat[2])
+    if axis == 'b':
+      data = np.average(data, axis=2)
+      data = np.average(data, axis=0)
+      length = np.linalg.norm(self.chg.poscar.lat[1])
+    if axis == 'a':
+      data = np.average(data, axis=1)
+      data = np.average(data, axis=0)
+      length = np.linalg.norm(self.chg.poscar.lat[0])
+    print('Averaged Data shape, ', data.shape)
+    x = np.linspace(0, length, len(data))
+    plt.plot(x, data)
+    plt.show()
+    
+    
+if __name__ == "__main__":
+  parser = argparse.ArgumentParser()
+  parser.add_argument("inputfile", type=str,
+                      help="input file (CHGCAR, CHG, ELFCAR or LOCPOT)")
+  parser.add_argument('-v', '--verbose', action='store_true')
+  parser.add_argument('-d', '--debug', action='store_true',
+                      help='Even more verbosity')
+  parser.add_argument('-n', '--no_scale', action='store_true',
+                      help='Set when openning a ELFCAR or LOCPOT. The CHGCAR'
+                      ' uses a different normalization, this flag avoids it.')
+  parser.add_argument('-a', '--axis', choices=['a','b','c'], default='c',
+                      help='Axis to cut')
+  parser.add_argument('-z', action='store_true', help='Fallback utility function to plot')
+
+  parser.add_argument('--new', action='store_true', help='usage of new, not fully'
+                      ' tested methods')
+  parser.add_argument('-p', '--average', action='store_true', help='averages the '
+                      'potential (or charge) along a given axis')
+  group = parser.add_mutually_exclusive_group()
+  group.add_argument('-l', '--direct_level', type=float,
+                      help='level to plot, in direct coords')
+  group.add_argument('-c', '--cartesian_level', type=float,
+                      help='level to plot, in cartesian coords')
+  
+
+  args = parser.parse_args()
+
+  
+  if args.debug:
+    args.verbose = 'debug'
+
+  if 'POT' in args.inputfile or 'ELF' in args.inputfile:
+    if args.no_scale == False:
+      warnings.warn("It seems you are openning a LOCPOT or ELFCAR file."
+                    " If so, you should add the option '-n' to get the "
+                    "correct scaling")
+  elif 'CHG' in args.inputfile and args.no_scale == True:
+    warnings.warn("It seems you are openning a CHG or CHGCAR file."
+                  " If so, you should not add the option '-n' to get the "
+                  "correct scaling")
+  is_chg = not args.no_scale
+      
+  
+  chg = Chg(filename=args.inputfile, is_chg=is_chg, verbose=args.verbose)
+
+  
+  
+  if args.z:
+    fig = chg.Zplot(cart_level=args.cartesian_level, direct_level=args.direct_level)
+  elif args.new:
+    chg.plot_cut_new(value=args.direct_level, axis=args.axis)
+  elif args.average:
+    chg.average(axis=args.axis)
+  else:
+    fig = chg.CutPlot(cart_level=args.cartesian_level,
+                      direct_level=args.direct_level,
+                      axis=args.axis)
+  plt.show()
+  
diff --git a/pyprocar/pyposcar/clusters.py b/pyprocar/pyposcar/clusters.py
new file mode 100644
index 00000000..7cc9dfaa
--- /dev/null
+++ b/pyprocar/pyposcar/clusters.py
@@ -0,0 +1,293 @@
+
+
+import numpy as np
+import poscar
+import latticeUtils
+import poscarUtils
+import copy
+import db
+import warnings
+
+
+
+class Clusters:
+  def __init__(self, poscar, verbose=False, neighbors=None, marked=None):
+    """Class to find and define clusters. There are "marked atoms",
+    defined by the used, and the idea is to find, create, increase a
+    cluster respect to the marked atoms. Always, the marked atoms
+    belongs to a host lattice
+
+    `poscar` is an instance of the class `poscar.Poscar`
+    `neighbors` is an instance of `latticeUtils.neighbors`
+    `marked` what atoms are marked. If absent, it implies all atoms
+
+    """
+    # The poscar object shouldn't be modified within this class. It
+    # has info about the underlying lattice. Any 'changes' are
+    # virtual, in 'self.marked'
+    self.p = copy.deepcopy(poscar)
+    self.db = db.DB()
+    self.clusters = [] # it a list of lists. One list by each cluster
+    self.verbose = verbose
+    self.disable_warning = False
+    # calculating the neighbors can be demanding, using them if given
+    self.neighbors = neighbors
+    if self.neighbors is None:
+      self.neighbors = latticeUtils.Neighbors(self.p, verbose=False)
+    self.marked = set(marked)
+    if self.marked is None:
+      self.marked = set(range(self.p.Ntotal))
+    # the initial_marked atoms should not be removed by
+    # 'smooth_edges'
+    self.initial_marked = set(self.marked)
+    if self.verbose:
+      print('\n\nclusters.Clusters.__init__():')
+      print('atoms marked', self.marked)
+    self.find_clusters()
+    return
+
+  def find_clusters(self):
+    """It find the clusters (in the crystal's lattice) within the
+    "marked" atoms
+
+    """
+    # I will start assuming every atom has its own cluster, the
+    # interaction will join the sets
+    clusters = [set([i]) for i in self.marked]
+    nn_list = self.neighbors.nn_list
+
+    # In the main iteration I will modify the contents of `clusters`,
+    # then I need to loop over another, immutable object.
+    
+    # which atoms are connected to atom 0
+    for atom in self.marked:
+      # I need to search for all the pairs of interacctions
+      neighbors = nn_list[atom]
+      for neighbor in neighbors:
+        # print(atom, neighbor)
+        # finding the clusters with 'atom' and 'neighbor', removing
+        # them and then appending its union.
+        # The las term in the if is to avoid checking: 1<->2, 2<->1
+        if neighbor in self.marked and neighbor < atom:
+          for c in clusters:
+            if atom in c:
+              c1 = c
+            if neighbor in c:
+              c2 = c
+          # I am going to append `c1` (perhaps united to `c2`) to
+          # `clusters` later
+          clusters.remove(c1)
+          if c1 != c2:
+            clusters.remove(c2)
+          clusters.append(c1.union(c2))
+          # print(atom, neighbor, clusters)
+    self.clusters = [list(x) for x in clusters]
+    if self.verbose:
+      print('clusters.Clusters.find_clusters(), clusters:', self.clusters)
+    # self._set_nn_clusters()
+    return
+
+  def extend_clusters(self, n=1):
+    """
+    It 'marks' the first neighbors of a cluster (ie: they are added to
+    the cluster). It is performed `n` times
+    """
+    # the self.marked object is going to be updated, so better to
+    # create a new -static- object list(...)
+    for i in range(n):
+      if self.verbose:
+        print('clusters.Clusters.extend_clusters()... Iteration', i)
+      for atom in list(self.marked):
+        for neighbor in self.neighbors.nn_list[atom]:
+          self.marked.add(neighbor)
+      self.find_clusters()
+      if self.verbose:
+        print('clusters.Clusters.extend_clusters()... clusters:', self.clusters)
+
+  def write(self, filename):
+    # the poscar object should not be modified
+    pu = poscarUtils.poscar_modify(copy.deepcopy(self.p), verbose=False)
+    # a set with all atoms
+    to_remove = set(list(range(pu.p.Ntotal)))
+    to_remove = list(to_remove - self.marked)
+    if self.verbose:
+      print('cluster.Cluster.write() ... atoms to remove')
+      print(to_remove)
+    pu.remove(to_remove)
+    if self.verbose:
+      print('cluster.Cluster.write() ... going to write ', filename)
+    pu.write(filename)
+
+    
+    
+    
+  def smooth_edges(self, ignoreH=False, coordination=1, preserve_original=True):
+    """It removes all the 'marked' atoms with coordination equal or lower
+    than `coordination`. It is useful to invoke after
+    Clusters.extend_clusters()
+
+    `ignoreH`: If True, the H atoms with coordination 1 or larger
+    won't be unmarked, regardeless `coordination`. Default: False
+
+    `preserve_original`: If True, the atoms marked when the class was
+    defined, won't be unmarked, regardless the coordination. For
+    instance, the defect wont be touched, only the dangling bonds due
+    to clustering
+
+    """
+    nn_list = self.neighbors.nn_list
+    # not removing while iteration
+    to_unmark = []
+    if self.verbose:
+      print('clusters.Cluster.smooth_edges(): ... looking for undercoordinate edges')
+    for i in self.marked:
+      # I need to count how many neighbors are marked
+      nn = set(nn_list[i])
+      cluster_coord = len(nn & self.marked)
+      if ignoreH is True and self.p.elm[i] == 'H':
+        cutoff = 1
+      else:
+        cutoff = coordination
+        
+      if cluster_coord <= cutoff:
+        to_unmark.append(i)
+        if self.verbose:
+          print('atom', i,nn, '. cluster coordination',cluster_coord)
+    # The atoms marked as "defects" should not be unmarked, it would
+    # change the physics
+    if self.verbose:
+      print('undercoordinate atoms:', to_unmark)
+    if preserve_original:
+      to_unmark = set(to_unmark) - self.initial_marked
+    if self.verbose:
+      print('excluding the initial set of marked atoms,')
+      print('undercoordinate atoms:', to_unmark)
+    
+    self.marked = self.marked - to_unmark
+    if self.verbose:
+      print('clusters.Clusters.smooth_edges() ... atoms removed (dangling bonds)')
+      print(to_unmark)
+      
+
+      
+  def hydrogenate(self, filename=None):
+    """It replaces a 'non-marked' nearest neighbor by of the lattice by a H atom.
+    
+    The angles (directions) of the bonds are the same of the
+    underlying lattice, but the distances are scaled to better reflect
+    the real distance (inaccurately)
+    
+    It returns a `poscar_modify` object with (only) the hydrogented
+    cluster
+
+    """
+    # first, detect what atoms need to be attached a H atom
+    if self.verbose:
+      print('\n\nclusters.py -> Clusters.hydrogenate():...')
+    # I need to iterate over static elements, so better to use a list
+    # instead of a set.
+    marked = list(self.marked)
+    # the nearest neighbors need to be converted to sets. Only for
+    # marked atoms.
+    nn_set = [set(self.neighbors.nn_list[atom]) for atom in marked]
+    if self.verbose:
+      print('marked atoms and their neigbors')
+      print(list(zip(marked, nn_set)))
+    # to use '-' marked needs to be a set. Anyways, mutability is not an issue here
+    missing_atoms = [x - self.marked for x in nn_set]
+    if self.verbose:
+      print('missing_atoms', missing_atoms)
+    
+    # second, adding the H atoms
+    new_H_atoms = []
+    #  Suppose that atoms 1,2 have a common missing neighbor. The
+    #  following procedure could have two very close H atoms. I don't
+    #  know what to do. But at least print a warning to the user
+    missing_used = []
+    for atom, mas in zip(marked, missing_atoms):
+      if len(mas) > 0 and self.verbose:
+        print('atom', atom, 'missing atom', mas)
+      for ma in mas:
+        # adding the atom `ma` to the list of used neighbors
+        missing_used.append(ma)
+        # It might happen that the neigbor atom belongs to a different
+        # lattice (i.e. [0,0,0.1] and [0,0,0.9]) the H atom should be
+        # at [0,0,0.1-delta], not in [0,0,0.1+delta]. Notice, it is
+        # not necessary to compare all the 3*3*3 possibilities to get
+        # the smallest distance. If the value of any coordinate,
+        # |pos1_i-pos2_i|< 1/2, it is in the rigth cell. This is
+        # because we are working in a large supercell and the error
+        # for wrong PBCs is large too.
+        #
+        # We will start working in direct cordinates, to get the
+        # correct lattice vectors shift. Afterwards, we will add the H
+        # atom in cartesian
+        p0 = self.p.dpos[atom]
+        p1 = self.p.dpos[ma]
+        # print('atom', atom, 'missing', ma, 'p0', p0, 'p1', p1)
+        # delta is the vector to put the H atom
+        delta = p1-p0
+        shift = np.array([0,0,0])
+        # shifted = False
+        for i in [0,1,2]:
+          if delta[i] > 0.5:
+            shifted = True
+            shift[i] = -1
+          elif delta[i] < -0.5:
+            shifted = True
+            shift[i] =  1
+        # if shifted:
+        #   print('delta (rec)', delta)
+        #   print('shift direct',shift)
+        # Now that we have the rigth lattice shift, we will aply it to
+        # the cartesian positions.
+        # following the previous example:
+        # p1 = [0,0,.9]
+        # p0 = [0,0,.1]
+        # p1-p0 = [0,0,.8] -> delta
+        # shift = [0,0,-1]
+        # p1-p0-shift = [0,0,-.2]
+        # now doing the same in cartesian
+        p0 = self.p.cpos[atom]
+        p1 = self.p.cpos[ma]
+        shift = np.dot(shift, self.p.lat)
+        delta = p1 - p0 + shift
+        # if shifted:
+        #   print('shift cart', shift)
+        #   print('p1', p1)
+        #   print('p0', p0)
+        #   print('p1-p0+shift', delta)
+        # normalizing the direction delta:
+        delta = delta/np.linalg.norm(delta)
+        # bond_length
+        bond_length = 1.08 #self.db.estimateBond(self.p.elm[atom], self.p.elm[ma])
+        new_H_pos = p0 + delta*bond_length
+        # if shifted:
+        #   print('adding H at', atom, p0,p1, new_H_pos)
+        # only left to add a 'H' atom to the poscar, and mark it
+        new_H_atoms.append(new_H_pos)
+    # warning the user if there an missing atom was replaced by two or more H.
+    if self.verbose:
+      print('going to serach for duplicates (only reporting if found)')
+    if len(set(missing_used)) != len(missing_used) and self.disable_warning == False:
+      print('\nclusters.Clusters.hydrogrnate(): at least one atom was replaced'
+            ' more than than once by an H. This could be unphysical. It'
+            ' requires to be checked by the user ')
+      print('list of missing atoms replaced by H', missing_used)
+      from collections import Counter
+      print('missing atoms usage', Counter(missing_used))
+      warnings.warn('At least one atom was replaced twice (or more times)'
+                    ' by an H. Check wether this makes sense')
+    pu = poscarUtils.poscar_modify(copy.deepcopy(self.p), verbose=False)
+    # a set with all atoms, then removing all non-marked atoms
+    to_remove = set(list(range(pu.p.Ntotal)))
+    to_remove = list(to_remove - self.marked)
+    pu.remove(to_remove)
+    #adding the new H atoms
+    [pu.add('H', x) for x in new_H_atoms]
+    if filename:
+      pu.write(filename)
+    return pu.p
+    
+          
+        
diff --git a/pyprocar/pyposcar/db.py b/pyprocar/pyposcar/db.py
new file mode 100644
index 00000000..9c7d1278
--- /dev/null
+++ b/pyprocar/pyposcar/db.py
@@ -0,0 +1,31 @@
+import dbCovalentBond
+import numpy as np
+
+class DB:
+  def __init__(self):
+    cr = dbCovalentBond.covalent_radii
+    cr = cr.replace('-', 'nan')
+    cr_names = [x.split()[1] for x in cr.split('\n')]
+    cr_values = [x.split()[2:] for x in cr.split('\n')]
+    # converting the values to an array, in Angstroms
+    cr_values = [np.array(x, dtype=float)/100 for x in cr_values]
+    self.covalentRadii = dict(zip(cr_names,cr_values))
+    # print(self.covalentRadii)
+    return
+  def estimateBond(self, element1, element2):
+    """Estimates the covalent bond by summing the larger covalent radius
+    for each atoms
+    """
+    radii1 = np.nanmax(self.covalentRadii[element1])
+    radii2 = np.nanmax(self.covalentRadii[element2])
+    return radii1 + radii2
+  def get_bandwidth(self, element1, element2):
+    if((element1 == "H") or (element2 == "H")):
+      return 0.02
+    else:
+      return 0.1
+  	
+    
+    
+
+atomicDB = DB()
diff --git a/pyprocar/pyposcar/dbCovalentBond.py b/pyprocar/pyposcar/dbCovalentBond.py
new file mode 100644
index 00000000..719ac477
--- /dev/null
+++ b/pyprocar/pyposcar/dbCovalentBond.py
@@ -0,0 +1,137 @@
+# Number Element Single1 Single2 Double Triple covalent radii from the
+# two recent original determinations by Cordero et al.[1], and Pyykkö
+# and Atsumi [2]. The differences between the two single-bond values
+# are often explained by the different coordination numbers in the two
+# data bases used.
+# https://chem.libretexts.org/Ancillary_Materials/Reference/Reference_Tables/Atomic_and_Molecular_Properties/A3%3A_Covalent_Radii
+#
+# References
+#
+# 1 Beatriz Cordero, Verónica Gómez, Ana E. Platero-Prats, Marc Revés,
+# Jorge Echeverría, Eduard Cremades, Flavia Barragán and Santiago
+# Alvarez (2008). "Covalent radii revisited". Dalton Trans. (21):
+# 2832–2838 http://dx.doi.org/10.1039/b801115j
+#
+# 2 Pekka Pyykkö, Michiko Atsumi (2009). "Molecular Double-Bond
+# Covalent Radii for Elements Li–E112". Chemistry: A European Journal
+# 15 (46): 12770–12779. dx.doi.org/10.1002/chem.200901472
+
+
+covalent_radii = """1 	H 	31 	32 	- 	-
+2 	He 	28 	46 	- 	-
+3 	Li 	128 	133 	124 	-
+4 	Be 	96 	102 	90 	85
+5 	B 	84 	85 	78 	73
+6 	C 	76 	75 	67 	60
+7 	N 	71 	71 	60 	54
+8 	O 	66 	63 	57 	53
+9 	F 	57 	64 	59 	53
+10 	Ne 	58 	67 	96 	-
+11 	Na 	166 	155 	160 	-
+12 	Mg 	141 	139 	132 	127
+13 	Al 	121 	126 	113 	111
+14 	Si 	111 	116 	107 	102
+15 	P 	107 	111 	102 	94
+16 	S 	105 	103 	94 	95
+17 	Cl 	102 	99 	95 	93
+18 	Ar 	106 	96 	107 	96
+19 	K 	203 	196 	193 	-
+20 	Ca 	176 	171 	147 	133
+21 	Sc 	170 	148 	116 	114
+22 	Ti 	160 	136 	117 	108
+23 	v 	153 	134 	112 	106
+24 	Cr 	139 	122 	111 	103
+25 	Mn 	150 	119 	105 	103
+26 	Fe 	142 	116 	109 	102
+27 	Co 	138 	111 	103 	96
+28 	Ni 	124 	110 	101 	101
+29 	Cu 	132 	112 	115 	120
+30 	Zn 	122 	118 	120 	-
+31 	Ga 	122 	124 	117 	121
+32 	Ge 	120 	121 	111 	114
+33 	As 	119 	121 	114 	106
+34 	Se 	120 	116 	107 	107
+35 	Br 	120 	114 	109 	110
+36 	Kr 	116 	117 	121 	108
+37 	Rb 	220 	210 	202 	-
+38 	Sr 	195 	185 	157 	139
+39 	Y 	190 	163 	130 	124
+40 	Zr 	175 	154 	127 	121
+41 	Nb 	164 	147 	125 	116
+42 	Mo 	154 	138 	121 	113
+43 	Tc 	147 	128 	120 	110
+44 	Ru 	146 	125 	114 	103
+45 	Rh 	142 	125 	110 	106
+46 	Pd 	139 	120 	117 	112
+47 	Ag 	145 	128 	139 	137
+48 	Cd 	144 	136 	144 	-
+49 	In 	142 	142 	136 	146
+50 	Sn 	139 	140 	130 	132
+51 	Sb 	139 	140 	133 	127
+52 	Te 	138 	136 	128 	121
+53 	I 	139 	133 	129 	125
+54 	Xe 	140 	131 	135 	122
+55 	Cs 	244 	232 	209 	-
+56 	Ba 	215 	196 	161 	149
+57 	La 	207 	180 	139 	139
+58 	Ce 	204 	163 	137 	131
+59 	Pr 	203 	176 	138 	128
+60 	Nd 	201 	174 	137 	-
+61 	Pm 	199 	173 	135 	-
+62 	Sm 	198 	172 	134 	-
+63 	Eu 	198 	168 	134 	-
+64 	Gd 	196 	169 	135 	132
+65 	Tb 	194 	168 	135 	-
+66 	Dy 	192 	167 	133 	-
+67 	Ho 	192 	166 	133 	-
+68 	Er 	189 	165 	133 	-
+69 	Tm 	190 	164 	131 	-
+70 	Yb 	187 	170 	129 	-
+71 	Lu 	187 	162 	131 	131
+72 	Hf 	175 	152 	128 	122
+73 	Ta 	170 	146 	126 	119
+74 	W 	162 	137 	120 	115
+75 	Re 	151 	131 	119 	110
+76 	Os 	144 	129 	116 	109
+77 	Ir 	141 	122 	115 	107
+78 	Pt 	136 	123 	112 	110
+79 	Au 	136 	124 	121 	123
+80 	Hg 	132 	133 	142 	-
+81 	Tl 	145 	144 	142 	150
+82 	Pb 	146 	144 	135 	137
+83 	Bi 	148 	151 	141 	135
+84 	Po 	140 	145 	135 	129
+85 	At 	150 	147 	138 	138
+86 	Rn 	150 	142 	145 	133
+87 	Fr 	260 	223 	218 	-
+88 	Ra 	221 	201 	173 	159
+89 	Ac 	215 	186 	153 	140
+90 	Th 	206 	175 	143 	136
+91 	Pa 	200 	169 	138 	129
+92 	U 	196 	170 	134 	118
+93 	Np 	190 	171 	136 	116
+94 	Pu 	187 	172 	135 	-
+95 	Am 	180 	166 	135 	-
+96 	Cm 	169 	166 	136 	-
+97 	Bk 	- 	168 	139 	-
+98 	Cf 	- 	168 	140 	-
+99 	Es 	- 	165 	140 	-
+100 	Fm 	- 	167 	- 	-
+101 	Md 	- 	173 	139 	-
+102 	No 	- 	176 	159 	-
+103 	Lr 	- 	161 	141 	-
+104 	Rf 	- 	157 	140 	131
+105 	Db 	- 	149 	136 	126
+106 	Sg 	- 	143 	128 	121
+107 	Bh 	- 	141 	128 	119
+108 	Hs 	- 	134 	125 	118
+109 	Mt 	- 	129 	125 	113
+110 	Ds 	- 	128 	116 	112
+111 	Rg 	- 	121 	116 	118
+112 	Cn 	- 	122 	137 	130
+113 	Uut 	- 	136 	- 	-
+114 	Uuq 	- 	143 	- 	-
+115 	Uup 	- 	162 	- 	-
+116 	Uuh 	- 	175 	- 	-
+117 	Uus 	- 	165 	- 	-
+118 	Uuo 	- 	157 	- 	-"""
diff --git a/pyprocar/pyposcar/defects.py b/pyprocar/pyposcar/defects.py
new file mode 100644
index 00000000..d6c83e60
--- /dev/null
+++ b/pyprocar/pyposcar/defects.py
@@ -0,0 +1,364 @@
+""" 
+Defect-related utilities
+
+class
+FindDefect
+- It tries to identify any defect by statistical means    
+
+
+"""
+import latticeUtils
+import poscarUtils
+import copy
+import generalUtils
+import itertools
+import numpy as np
+try:
+  from sklearn.neighbors.kde import KernelDensity
+except:
+  from sklearn.neighbors import KernelDensity
+
+from scipy.signal import argrelextrema
+
+import matplotlib.pyplot as plt
+
+
+class FindDefect:
+  """Tries to identify a defect
+  """
+  def __init__(self, poscar, verbose=False):
+    # avoiding to modify the original poscar
+    self.p = copy.deepcopy(poscar)
+    self.verbose = verbose
+    self.defects = {} # all the defects from the different methods
+                      # should be here. It is a dictionary of lists
+    self.all_defects = [] # a simple list with all the defects found
+    self.nn_elem = [] #a descriptive list of all nearest neighbors clusters
+    self.neighbors = latticeUtils.Neighbors(self.p, verbose=False)
+    self.find_forgein_atoms()
+    self.nearest_neighbors_environment()
+
+    ## Work in progress
+    #self.local_geometry()
+    return
+  
+  def local_geometry(self):
+    #print("Defects", self.defects)
+    #print("Defects", self.defects['find_forgein_atoms'])
+    #print("Defects", self.defects['nearest_neighbors_environment'])
+    #From all the atoms that aren't defects (Have to take them out)
+    #Should i take out its neighbors as well? 
+    #Compare same cluster types
+    #Compare same distances, have to "count" them "C_1-C_2" w "C_1-C_2" not "C_1-C_3"
+    defects = self.defects['find_forgein_atoms']
+    defects.sort(reverse = True)
+    Cluster_types = self.nn_elem
+    Neighbor_Class_elements = self.neighbors.nn_list
+    D_Matrix = self.neighbors.distances
+    #We get rid of defects already found
+    for i in defects:
+      Cluster_types.pop(i)
+      Neighbor_Class_elements.pop(i)
+    Total_ClusterDistanceMatrix = []
+    #Creates distances Matrix, with each atom and its distances
+    #Using the order [(a,a)(a,b)(a,c)],[(b,a),(b,b),(b,c)...] all sorted (so that (a,a) and (b,b) are always the first entries)
+    #This should count all distances inside the clusters in the same order
+    for atom in Neighbor_Class_elements:
+      index = atom
+      all_index = list(itertools.product(index,index))
+      grouped_index = []
+      group = []
+      counter = 0
+      #Grouping indexes like "[(a,a), (a,b), (a,c)...][(b,a),(b,b),(b,c),...]""
+      for value in all_index:
+        if(value[0] == index[counter]):
+          group.append(value)
+        else:
+          grouped_index.append(group)
+          group = []
+          group.append(value)
+          counter += 1
+      grouped_index.append(group)
+      ClusterDistanceMatrix = []
+      #Takes the sorted distances
+      for distance in grouped_index:
+        Cluster = [D_Matrix[x] for x in distance]
+        Cluster.sort()
+        ClusterDistanceMatrix.append(Cluster) 
+      Total_ClusterDistanceMatrix.append(ClusterDistanceMatrix)
+    #Now I need to compare these distances accordingly 
+    #Comparing each cluster type with itself
+    print("Cluster types ", self.nn_elem)
+    Cluster_set = list(set(self.nn_elem))
+    print("Cluster set ", Cluster_set)
+    Cluster_group_index = []
+    for group in Cluster_set:
+      indexes = []
+      for idx, cluster in enumerate(self.nn_elem):
+        if(cluster == group):
+          indexes.append(idx)
+      Cluster_group_index.append(indexes)
+    print("Group Cluster Indexes ", Cluster_group_index)
+    #Comparing
+    #I want to use a delta matrix which cointains all distance matrix differences
+    #Do some "Machine Learning" with this delta matrix and get a common value for each type of cluster
+    #Use this metric to decide if a geometrical defect exists
+    Geom_defects = {}
+    Total_ClusterDistanceMatrix = np.array(Total_ClusterDistanceMatrix)
+    #Here will be all norms 
+    Delta_General_Norms = []
+    #Here will be all norms separated by type of cluster
+    All_type_norms = []
+    print("Cluster_total ", Total_ClusterDistanceMatrix)
+    for type, idxs in zip(Cluster_set, Cluster_group_index):
+      Delta_type_Norms = []
+      idx_to_compare = itertools.combinations(idxs, 2)
+      for i,j in idx_to_compare:
+        delta = Total_ClusterDistanceMatrix[i] - Total_ClusterDistanceMatrix[j]
+        #Maybe better to use the norm of this matrix than the whole matrix 
+        delta_norm = np.linalg.norm(delta)
+        Delta_type_Norms.append(delta_norm)
+        Delta_General_Norms.append(delta_norm)
+        
+        if(delta_norm > 0.1):
+          print("Geometrical Defect Found")
+      
+      All_type_norms.append([type,Delta_type_Norms])
+    
+    for type, norm in All_type_norms:
+      if len(norm) == 1:
+        continue
+      #May need to add more exceptions when a certain type of Cluster is found in low amounts
+      #Might consider just evoiding Cluster types that include defect atoms even if its not the center atom
+      norm_array = np.array(norm)
+      norm_ml = norm_array.reshape(-1,1)
+      kde = KernelDensity(kernel='gaussian',bandwidth=3).fit(norm_ml)
+      #Dont remember the idea of Delta in last implementation
+      samples = np.linspace(np.min(norm_array)*0.9, np.max(norm_array)*1.1)
+      scores = kde.score_samples(samples.reshape(-1,1))
+      samples, scores = generalUtils.remove_flat_points(samples, scores)
+      maxima = argrelextrema(scores, np.greater)[0]
+      minima = argrelextrema(scores, np.less)[0]
+      print("Cluster Tipo ", type)
+      print("Promedio" , np.average(norm_array))
+      print("Desviación estandar", np.std(norm_array))
+      print("Max", np.max(norm_array))
+      print("Promedio metodo con KDE", samples[maxima])
+      print("Minimo KDE", samples[minima])
+      plt.plot(samples,scores)
+      plt.show()
+      
+
+      
+
+    #print("All norms", All_type_norms)
+    #print("Neighbor Class element ", self.neighbors.nn_list)
+    #print("Distance Matrix ", self.neighbors.distances)
+
+
+
+    
+
+    
+    
+  
+
+  def _set_all_defects(self):
+      """
+      Updates the `self.all_defects` list from `self.defects`. It
+      should be run after any update to `self.defects`
+      """
+      indexes = list(self.defects.values())
+      indexes = [set(x) for x in indexes]
+      indexes = list(set.union(*indexes))
+      self.all_defects = indexes
+
+  def find_forgein_atoms(self):
+    numberSp = self.p.numberSp # number of atoms per element
+    if len(set(numberSp)) > 1:
+      if self.verbose:
+        print("\nFindDefect.find_forgein_atoms()")
+        print("Number of atoms per element", self.p.numberSp)
+    else:
+      self.defects['find_forgein_atoms'] = []
+      return
+    # reshaping the data for machine learning
+    numberSp = numberSp.reshape(-1, 1)
+    # print(numberSp)
+    # 
+    kde = KernelDensity(kernel='gaussian', bandwidth=3).fit(numberSp)
+    # The samples are chosen to have a `max-min-max` pattern (maybe
+    # with extra -min-max blocks)
+    delta = max(int(self.p.Ntotal*0.1),10) # to have a local maximum at start/end
+    samples = np.linspace(-delta, max(numberSp.flatten())+delta)
+    scores = kde.score_samples(samples.reshape(-1,1))
+    samples, scores = generalUtils.remove_flat_points(samples, scores)
+    print(scores)
+    #plt.plot(samples, scores)
+    #plt.show()
+    self.verbose = True
+    #
+    # The local minima of the scores denotes the groups. argrelextrema
+    # returns a tuple, only first entry is useful
+    minima = argrelextrema(scores, np.less)[0]
+    print(argrelextrema(scores, np.less))
+    maxima = argrelextrema(scores, np.greater)[0]
+    if self.verbose:
+      print('local max:',maxima,'  localmin:', minima)
+    if len(maxima) <= len(minima):
+      print('Maxima, ', maxima)
+      print('Minima, ', minima)
+      raise RuntimeError('FindDefect.find_forgein_atoms error: '
+                         'the local min/max doesnt follows '
+                         'the expected order')
+    # The threshlod to determine if an atom is forgein.
+    try: # perhaps there is no minumum
+      lower_min = minima[0]
+    except IndexError:
+      print('\n\ndefects.FindDefect.find_forgein_atoms(): No defect found')
+      self.defects['find_forgein_atoms'] = []
+      self._set_all_defects()
+      return
+    # likely only the smallest cluster of atoms are defects, but if
+    # there are three or more cluster, I am not so sure, and the user
+    # should be warned
+    if len(minima) > 1: # printing regardless verbosity
+      print("\n\nWARNING: in FindDefect.find_forgein_atoms() more than "
+            "two sets of atoms were found. Cluster delimited by "
+            "`minima`= ", minima, ', `maxima=`', maxima)
+      print('Only elements with less than ', lower_min, 'atoms are regarded as defects')
+    
+    defect_elements = []
+    # detecting what elements are defects
+    for (natoms, element) in zip(self.p.numberSp, self.p.typeSp):
+      if natoms <= lower_min:
+        defect_elements.append(element)
+    defects = []
+    for i in range(len(self.p.elm)):
+      if self.p.elm[i] in defect_elements:
+        defects.append(i)
+
+    if self.verbose:
+      print('list of defects: ')
+      print([(i,self.p.elm[i]) for i in defects])
+    self.defects['find_forgein_atoms'] = defects
+    self._set_all_defects()
+    return defects
+    
+  def nearest_neighbors_environment(self):
+    """This method looks for atoms with an statistically different
+    environment (nearest neighbors).
+
+    The enviornment of each atom (i.e. the number and type of
+    elements) are compared, and those statiscally different from the
+    rest are dubbed as defects.
+
+    A good nearest neighbors list is a must for this method.
+
+    """
+    # self.verbose = True
+    nn_elem = self.neighbors.nn_elem
+    # Building a single string with the environment, it needs to be
+    # sorted, for taking statistics
+    nn_elem = [''.join(sorted(x)) for x in nn_elem]
+    
+    # Assume in hBN a B->N defect, its environment is NNN, which seems
+    # fine, but for a B atom, not when surrounding a N. This means
+    # that the atom at which its environment is being proccesed also
+    # matters. And it can be distinguihed from its environment (no
+    # sorting)
+    
+    
+    #I need to save this as a class var
+    #For cluster comparison
+    nn_elem = [x[0]+x[1] for x in zip(self.p.elm, nn_elem)]
+    self.nn_elem = nn_elem
+    # counting the frequency of unique elements
+    from collections import Counter
+    uniques = Counter(nn_elem)
+    if self.verbose:
+      print('\nFindDefect.nearest_neighbors_environment()')
+      print('Atomic environments and their frequency:')
+      print(list(zip(uniques.keys(), uniques.values())))
+    # now determining which of them are defects
+    
+    data = np.array(list(uniques.values())).reshape(-1, 1)
+    kde = KernelDensity(kernel='gaussian', bandwidth=3).fit(data)
+    # The samples are chosen to have a `max-min-max` pattern (maybe
+    # with extra -min-max blocks)
+    delta = max(int(self.p.Ntotal*0.1),10) # to have a local maximum at start/end
+    samples = np.linspace(-delta, max(data.flatten())+delta)
+    scores = kde.score_samples(samples.reshape(-1,1))
+    # print(scores)
+    #
+    # The local minima of the scores denotes the groups. argrelextrema
+    # returns a tuple, only first entry is useful
+    minima = argrelextrema(scores, np.less)[0] 
+    maxima = argrelextrema(scores, np.greater)[0]
+
+    if self.verbose:
+      print('local max:',maxima,'  localmin:', minima)
+    if len(maxima) <= len(minima):
+      print('Maxima, ', maxima)
+      print('Minima, ', minima)
+      raise RuntimeError('FindDefect.nearest_neighbors_environment error: '
+                         'the local min/max doesnt follows '
+                         'the expected order')
+    # The threshlod to determine if an atom is forgein.
+    try:
+      lower_min = minima[0]
+    except IndexError:
+      print('\n\ndefects.FindDefect.nearest_neighbors_environment(): No defect found')
+      self.defects['nearest_neighbors_environment'] = []
+      self._set_all_defects()
+      return
+
+    # likely only the atoms with an environment less abundant than
+    # `lower_min` are to be regarded as defects. But if there are
+    # three or more statistically different types of environment, the
+    # user should be warned 
+    if len(minima) > 1: # printing regardless verbosity
+      print("\n\nWARNING: in FindDefect.nearest_neighbors_environment() more than "
+            "two sets of atoms were found. Cluster delimited by "
+            "`minima`= ", minima, ', `maxima=`', maxima)
+      print('Only elements with environments less abundant than ', lower_min,
+            ' are regarded as defects')
+    
+    defects = []
+    # detecting what atoms are defects
+    # nn_elem is ['CCC', 'CC' CCH, 'CCH', ...]
+    for i in range(len(nn_elem)):
+      environment = nn_elem[i]
+      if uniques[environment] < lower_min:
+        defects.append(i)
+
+    if self.verbose:
+      print('list of defects: ')
+      print([(i,self.p.elm[i]) for i in defects])
+    self.defects['nearest_neighbors_environment'] = defects
+    self._set_all_defects()
+    return defects
+
+  def write_defects(self, method='any', filename='defects.vasp'):
+    """
+    Writes a POSCAR file with the defects marked as dummy atoms
+    
+    `method` can be:
+    'find_forgein_atoms' -> see self.find_forgein_atoms()
+    'nearest_neighbors_environment' -> see self.nearest_neighbors_environment()
+    'any', any method will do
+
+    """
+    if method == 'any':
+      indexes = self.all_defects
+    else:
+      indexes = self.defects[method]
+
+    N = len(indexes)
+    newElements = ['D']*N
+    
+    newP = poscarUtils.poscar_modify(self.p, verbose=False)
+    newP.change_elements(indexes=indexes, newElements=newElements)
+    newP.write(filename=filename)
+    # print(indexes)
+    
diff --git a/pyprocar/pyposcar/generalUtils.py b/pyprocar/pyposcar/generalUtils.py
new file mode 100644
index 00000000..228e42b0
--- /dev/null
+++ b/pyprocar/pyposcar/generalUtils.py
@@ -0,0 +1,28 @@
+
+import numpy as np
+
+def remove_flat_points(samples, scores):
+  """To use scipy.argrelmin, or other similar method, the array needs no
+  to be flat in left or right directions, otherwise it will fail to
+  detect the minima
+
+  This method removes the points with consecutive same `score`, from
+  `samples` and `scores`.
+
+  `samples` must be ordered 
+  
+  """
+  #print('\n remove_flat_points')
+  #print(samples)
+  #print(scores)
+  last_score = scores[0]
+  new_samples, new_scores = [], []
+  new_samples.append(samples[0])
+  new_scores.append(scores[0])
+  
+  for i in range(1, len(samples)):
+    if scores[i] != last_score:
+      new_samples.append(samples[i])
+      new_scores.append(scores[i])
+    last_score = scores[i]
+  return (np.array(new_samples), np.array(new_scores))
diff --git a/pyprocar/pyposcar/honeycomb.py b/pyprocar/pyposcar/honeycomb.py
new file mode 100755
index 00000000..36b041ec
--- /dev/null
+++ b/pyprocar/pyposcar/honeycomb.py
@@ -0,0 +1,320 @@
+#!/usr/bin/env python
+
+import numpy as np
+from poscar import Poscar
+
+np.set_printoptions(precision=4, linewidth=160, suppress=True)
+
+class Neighbors:
+  def __init__(self, poscar=None, verbose=True):
+    """ poscar can be the filename or a Poscar file, already parsed"""
+    self.verbose = verbose
+    self.p = None # a poscar-object
+    self.nn_list = None
+    self.distances = None
+    self.clusters = None # a list of clusters, each cluster has a list with its atoms
+    self.nn_dict_clusters = None # a list of dict with the nearest
+                                 # neighbors, an dict for each cluster
+                                 # getting the poscar object. The keys
+                                 # are the atomic index of each atom
+                                 # blonging to the cluster
+    if isinstance(poscar, str):
+      self.p = Poscar(poscar, verbose=False)
+      self.p.parse()
+      if self.verbose:
+        print('Loaded the file:', poscar)
+    else:
+      self.p = poscar
+    
+    return
+  # there should be severals ways to define nearest neighbors
+  def set_neighbors(self, method, parameters):
+    """methods should have several posibilities, each `method` has a
+respective set of `parameters`. Currently supported:
+
+1) method='distance' (a single cutoff distance) 
+   parameters = {'max_dis':1.5,     # maximum distance in Angstroms. No default
+                 'allow_self:True'} # can an atom be its own neighbor? Default: False
+
+    """
+    # checking whether  the method exists and has the rigth parameters
+    if method == 'distance':
+      try:
+        dCutoff = parameters['max_dis']
+      except KeyError:
+        raise RuntimeError('the parameter argument doesnt have the key `max_dis`')
+      
+      d = distances(self.p.cpos, lattice=self.p.lat)
+      self.distances = d
+      if self.verbose:
+        print('distances:')
+        print(d)
+      N = len(d)
+      # setting an empty list to contain the list of neighbors
+      self.nn_list = []
+      for i in range(N):
+        temp = []
+        # is j a neighbor of i?
+        for j in range(N):
+          if d[i,j] <  dCutoff:
+            # print(i,j)
+            # if they are different atoms, always accept
+            if i!=j:
+              temp.append(j)
+            # if allow_self is True, also accept (False by default)
+            elif parameters.get('allow_self', False) is True:
+              temp.append(j)
+            # otherwise, not a neighbor
+        #print('loop over j done, neighbors found:', temp)
+        self.nn_list.append(temp)
+        
+      if self.verbose:
+        print('list of first neighbors:')
+        print(self.nn_list)
+    else:
+      raise RuntimeError('set_neighbors() does not support the method ' + str(method))
+    return
+
+  def find_clusters(self):
+    N = len(self.nn_list)
+    if self.verbose:
+      print(N, 'atoms')
+    # I will start assuming every atom has its own cluster, the
+    # interaction will join the sets
+    clusters = [set([i]) for i in range(N)]
+    nn_list = self.nn_list
+    
+    # which atoms are connected to atom 0
+    for atom in range(N):
+      # I need to search for all the pairs of interacctions
+      neighbors = nn_list[atom]
+      for neighbor in neighbors:
+        # print(atom, neighbor)
+        # finding the clusters with 'atom' and 'neighbor', removing
+        # them and then appending its union
+        for c in clusters:
+          if atom in c:
+            c1 = c
+          if neighbor in c:
+            c2 = c
+        clusters.remove(c1)
+        # maybe c1 and c2 are the same (both atoms are already in the
+        # same cluster)
+        if c2 in clusters:
+          clusters.remove(c2)
+        clusters.append( c1.union(c2) )
+        # print(clusters)
+    self.clusters = [list(x) for x in clusters]
+    if self.verbose:
+      print('clusters:', clusters)
+    self._set_nn_clusters()
+    return
+
+  def _set_nn_clusters(self):
+    # a list of nearest neighbors dict, one per cluster
+    nn_dicts = []
+    for cluster in self.clusters:
+      nn_dict = dict()
+      for atom in cluster:
+        nn_dict[atom] = self.nn_list[atom]
+      nn_dicts.append(nn_dict)
+    self.nn_dict_clusters = nn_dicts
+    if self.verbose:
+      print('clusters found:', len(self.clusters))
+      for cluster, nn_dict in zip(self.clusters, self.nn_dict_clusters):
+        print('cluster', cluster)
+        print('nearest neighbors', nn_dict)
+        
+    return
+  
+class Graphene:
+  def __init__(self, poscarFile, verbose=False):
+    self.verbose = verbose
+    if self.verbose:
+      print('loading file ', poscarFile)
+    self.p = Poscar(poscarFile, verbose=False) # a Poscar class
+    self.p.parse()
+    self.nn_list = None  # a lsit with the nearest neighbors, just by
+                         # distance, ignoring any bonding scheme.
+    self.neighbors = None # a `Neighbors class`
+    self.clusters = None # a list disjoint group of atoms
+    self.sublattices = None # [dict('A':[...], 'B':[...])] one dict
+                            # with the sublattices A,B by each
+                            # cluster, with the same order
+    self.edges = None # a list of edges, one list by each
+                      # cluster. [[edge1_cluster1, e2_c2],[e1_c2],[]]
+                      # (no edge in cluster3)
+    self.bonding = None # It is sp1-bonded C atom?
+
+    # setting all the fast things
+
+    self.set_sublattices()
+    self.find_edges()
+    
+    return
+  def set_sublattices(self):
+    # getting the nearest neighbors
+    n = Neighbors(self.p, verbose=False)
+    n.set_neighbors(method='distance', parameters={'max_dis':1.6})
+    self.nn_list = n.nn_list
+    # if there are N layers of graphene, we need to treat them separately
+    n.find_clusters()
+    self.clusters = n.clusters
+    self.neighbors = n
+    
+    if self.verbose:
+      print('\nclusters found:', len(n.clusters), '\n', n.clusters)
+
+    self.sublattices = []
+    # looping over the clusters
+    for icluster in range(len(n.clusters)):
+      cluster = n.clusters[icluster]
+      nn_dict = n.nn_dict_clusters[icluster]
+      # two empty sublattices
+      sublatticeA = set()
+      sublatticeB = set()
+      # I need a first element
+      current = cluster[0]
+      # and it must have a sublattice, lets say `A`
+      sublatticeA.add(current)
+      # looping over all atoms, if the atom is in a sublattice, then
+      # mark its neighbors and remove it from nn_dict. Otherwise ignore
+      # it.
+      while len(nn_dict) > 0:
+        for key in list(nn_dict): # cast to list to allow removing keys during iteration
+          if key in sublatticeA:        
+            for neighbor in nn_dict[key]:
+              sublatticeB.add(neighbor)
+            del nn_dict[key]
+            #print('key found in sublattice A', key, 'sublattice B is', sublatticeB)
+    
+          elif key in sublatticeB:
+            for neighbor in nn_dict[key]:
+              sublatticeA.add(neighbor)
+            del nn_dict[key]
+            #print('key found in sublattice B', key, 'sublattice A is', sublatticeA)
+      if self.verbose:
+        print('\nSublatticeA ', sublatticeA)
+        print('SublatticeB ', sublatticeB)
+      # finally storing the sublattices
+      self.sublattices.append({'A':sublatticeA, 'B':sublatticeB})
+
+  def find_edges(self, ignoreH=True):
+    self.edges = []
+    for icluster in range(len(self.clusters)):
+      cluster = self.clusters[icluster]
+      # an edge is a C atom with less than 3 nearest neighbors, or an H
+      # atom next to a C atom with coor
+      edge = [] 
+      for i in range(self.p.Ntotal):
+        if ignoreH and self.p.elm[i] == 'H':
+          pass # ignoring an H atom
+        else:
+          neighbors = self.nn_list[i]
+          counter = 0
+          for neighbor in neighbors:
+            if self.p.elm[neighbor] != 'H' or ignoreH == False:
+              counter += 1
+        if counter < 3:
+          edge.append(i)
+      if self.verbose:
+        print('edge:', edge)
+      self.edges.append(edge)
+    
+  def hidrogenate(self, outFile='POSCAR.hydrogenated'):
+
+    newHatoms = []
+    for icluster in range(len(self.clusters)):
+      for iatom in self.edges[icluster]:
+        elem = self.p.elm[iatom]
+        neighbors = self.nn_list[iatom]
+        # Only undercoordinate C atoms are needed
+        if elem in ['C','B','N'] and len(neighbors) < 3:
+          print(iatom, elem, neighbors, end=' ')
+          # it is easier to attach one H
+          if len(neighbors) == 2:
+            # I need the positions of the shortest distance within the
+            # PBC
+            n1, n2 = neighbors[0], neighbors[1]
+            # these are the distances within the PBC
+            d1 = self.neighbors.distances[iatom, n1]
+            d2 = self.neighbors.distances[iatom, n2]
+            print('d1', d1, 'd2', d2)
+            p0 = self.p.cpos[iatom]
+            lat = self.p.lat
+            # getting all the periodic disatances, if one of them
+            # fits, I will store it
+            for i in [-1, 0, 1]:
+              for j in [-1, 0, 1]:
+                for k in [-1, 0, 1]:
+                  temp_p1 = self.p.cpos[n1] + i*lat[0] + j*lat[1] + k*lat[2]
+                  temp_p2 = self.p.cpos[n2] + i*lat[0] + j*lat[1] + k*lat[2]
+                  # if it match with the minimum distance, store it
+                  if np.abs(np.linalg.norm(p0 - temp_p1) - d1) < 0.01:
+                    p1 = temp_p1
+                    #print('1:[',i,j,k,']', end=' ')
+                  if np.abs(np.linalg.norm(p0 - temp_p2) - d2) < 0.01:
+                    p2 = temp_p2
+                    #print('2:[',i,j,k,']',end=' ')
+            # Now I have the Cartesian position of each neighbor, within the PBC
+            r1, r2  = p0 - p1, p0 - p2
+            # I only need the angle, normalizing
+            r1, r2 = r1/np.linalg.norm(r1), r2/np.linalg.norm(r2)
+            # the new position has to be
+            r3 = r1+r2
+            r3 = r3/np.linalg.norm(r3) * 1.09 # C-H distance 1.09 Ang
+            newHatoms.append(r3+p0)
+
+    # I need to add all the newHatoms to poscar
+    print(newHatoms)
+    for newH in newHatoms:
+      self.p.add(newH, element='H', direct=False)
+    # writing the data to file
+    self.p.write(outFile, direct=False)
+  def sublattice_polarization(self):
+    import pyprocar
+    pro = pyprocar.ProcarParser()
+    pro.readFile('PROCAR')
+    # just gamma
+    spd = pro.spd[0]
+    # all bands all atoms, spin 0, just 'tot' orbital value
+    # spd = spd[bands, atoms]
+    spd = spd[:,0,:,-1]
+    # bands with almost no projection at all can bring numerical
+    # problems. I will normalize them to have a `tot` value of 1
+    spd = (spd.T/spd[:,-1]).T # all bands, just sum of all atoms
+    print(spd.shape)
+    
+    nn_list = self.nn_list
+    print('nearest neighbors',nn_list)
+    # an empty array
+    overlap = 0*spd[:,0]
+    counter = 0
+    for atom in range(len(nn_list)):
+      for neighbor in nn_list[atom]:
+        # print('\natom', spd[:,atom])
+        # print('neighbor', spd[:,neighbor])
+        overlap += spd[:,atom]*spd[:,neighbor]
+        # print(overlap)
+        counter += 1
+          
+    import matplotlib.pyplot as plt
+    x = np.arange(len(overlap)) + 1
+    plt.plot(x, 1/overlap/counter, 'ro--')
+    plt.show()
+  
+if __name__ == '__main__':
+  g = Graphene('POSCAR')
+  print("Clusters found", len(g.clusters))
+  for i in range(len(g.clusters)):
+    print('cluster ' +str(i)+ ':')
+    print(g.clusters[i])
+    print('Sublattices:')
+    [print(x, y) for x,y in g.sublattices[i].items() ]
+    print('edges:')
+    print(g.edges[i])
+    
+  g.hidrogenate()
+  
+
+  
diff --git a/pyprocar/pyposcar/latticeUtils.py b/pyprocar/pyposcar/latticeUtils.py
new file mode 100644
index 00000000..099978a0
--- /dev/null
+++ b/pyprocar/pyposcar/latticeUtils.py
@@ -0,0 +1,199 @@
+"""General lattice related utilities.
+
+-distances(positions, lattice=None, verbose=False):
+ calculates the PBC-aware distances among all positions.
+
+
+add RDF here
+
+"""
+import numpy as np
+import db
+import rdf
+np.set_printoptions(precision=4, linewidth=160, suppress=True)
+
+
+def distances(positions, lattice=None, allow_self=True, verbose=False):
+  """Calculates all the pasirwise distances. The `positions` have to be
+  in cartesian coordinates, size Nx3. The lattice should be a 3x3
+  array-like.
+
+  `allow_self`: it allows to an atom to be its own neighbor, in
+  another lattice
+
+  return: a NxN array with distances.
+
+  """ 
+  
+  # I will calculate the whole distance matrix, first I need to expand
+  # the arrays by replicating the data
+  
+  pbc_list = []
+  if lattice is not None:
+    for i in [-1, 0, 1]:
+      for j in [-1, 0, 1]:
+        for k in [-1, 0, 1]:
+          pbc_list.append(i*lattice[0] + j*lattice[1] + k*lattice[2])
+  else:
+    pbc_list = [np.array([0,0,0])]
+  pbc_list = np.array(pbc_list)
+  if verbose:
+    print('PBC lists:')
+    print(pbc_list)
+    
+  N = len(positions)
+  if verbose:
+    print('positions')
+    print(positions, positions.shape)
+    
+  # d is a list of NxN distance-matrices (one per pbc_list)
+  d = []
+  for vector in pbc_list:
+    # rows have the position in the central cell
+    rows = positions.repeat(N,axis=0)
+    rows.shape = (N, N, 3)
+    # columns have position on the extended cells
+    npos = positions + vector
+    columns = npos.repeat(N,axis=0)
+    columns.shape = (N, N, 3)
+    columns = np.transpose(columns, axes=(1,0,2))
+    if verbose:
+      print('rows[0]')
+      print(rows[0], rows.shape)
+      print('columns[0]')
+      print(columns[0], columns.shape)
+      # calculating the distance
+    d.append( np.linalg.norm(rows-columns, axis=2) )
+    
+  # lets assume the first distance is the minimum distance
+  dist = d.pop(0)
+  for matrix in d:
+    # np.minimum is element-wise
+    dist = np.minimum(dist, matrix)
+
+  # now we are looking for the self-distances in another cell
+  if allow_self:
+    # I popped one entry of `d` before, but it can't be the nearest
+    # self-image (it is shited in [-1,-1,-1], and the nearest
+    # neighborh are shifted in only one lattice vector)
+    for matrix in d:
+      for i in range(N):
+        # any non-zero value is a good guess
+        if dist[i,i] == 0 and matrix[i,i] != 0:
+          dist[i,i] = matrix[i,i]
+        # but I want the smallest non-sero value
+        elif matrix[i,i] < dist[i,i]:
+          dist[i,i] = matrix[i,i]          
+    
+  if verbose:
+    print('distances')
+    print(dist, dist.max())
+  return dist
+
+class Neighbors:
+  def __init__(self, poscar, verbose=False):
+    self.poscar = poscar
+    self.verbose = verbose
+    self.nn_list = None # a list of N lists with neighbor indexes
+    self.nn_elem = None # the atomic elements of the nn_list
+
+    self.db = db.atomicDB # database with atomic info
+    self.distances = distances(positions=self.poscar.cpos,
+                               lattice=self.poscar.lat)
+    # Maximum distance of a nearest neighbor NxN matrix
+    self.estimateMaxBondDist()
+    self.nn_list = self.set_neighbors()
+    self.d_Max = None # maximum distance for a nearest neighbor (a
+                      # dict, for all interactions)
+    return
+
+  def estimateMaxBondDist(self):
+    """Based on the covalent radii, it estimates (crudely) the maximum
+    distance to be regarded as a first neighbor.
+
+    The covalent bond distance d0 is:
+    d0 = radii_1 + radii_2
+
+    The maximum bond distance is defined as:
+    d_Max = (1+sqrt(2))/2 * d0
+    
+    which is half way between the first and second neighbors in a FCC lattice
+
+    It returns a Natoms x Natoms matrix with d_Max for each pair of atoms
+
+    """
+    if self.verbose:
+      print('Find_neighbors.estimateMaxBondDist:')
+    elements = self.poscar.elm
+    # removing duplicates, and going to write a dictionary with
+    # distances
+    nelems = list(set(elements))
+    
+    if self.verbose:
+      print('elements to use:', nelems)
+    names = [x+y for x in nelems for y in nelems]
+    values = [self.db.estimateBond(x,y) for x in nelems for y in nelems]
+    max_dist = dict(zip(names, values))
+    if self.verbose:
+      print('Estimated covalent radius (not maximum yet) ', max_dist)
+    
+    d_Max = [[max_dist[x+y] for x in elements] for y in elements]
+    # rescaling to allow intermediate distances (FCC-like)
+    d_Max = np.array(d_Max)*(1+np.sqrt(2))/2
+    self.d_Max = d_Max
+    if self.verbose:
+      print('Estimation of the Maximum bond length:')
+      print(self.d_Max)
+    return self.d_Max
+
+  def set_neighbors(self,allow_self=True):
+    """setting the nearest neighbors by using self.d_Max as cutoff
+    distance
+
+     Arguments: 
+
+     `allow_self`: allows to an atom to be its own neighbor, likely
+    to be useless in a large supercell.  Beware, if the
+    self-distance is zero, this could be troublesome
+
+     """
+    self.nn_list = []
+    N = self.poscar.Ntotal
+    
+    my_RDF = rdf.RDF(self.poscar)
+    
+    self.d_Max = np.minimum(my_RDF.CutoffMatrix, self.d_Max)
+    
+    if self.verbose:
+      print(self.d_Max)
+      
+    ### Añadir MIS minimos
+    
+    
+    for i in range(N):
+      # to store all defects
+      temp = []
+      for j in range(N):
+        if self.distances[i,j] < self.d_Max[i,j]:
+          # The self-neighbors may/maynot be included
+          if i!=j:
+            temp.append(j)
+            # if allow_self is True, also accept
+          elif 'allow_self':
+            temp.append(j)
+      self.nn_list.append(temp)
+
+    self._set_nn_elem()
+    if self.verbose:
+      print('list of first neighbors:')
+      print(list(zip(self.nn_list, self.nn_elem)))
+    return self.nn_list
+    
+  def _set_nn_elem(self):
+    """ sets the elements of the list of nearest neighbors  """
+    nn_elem = []
+    for nns in self.nn_list:
+      temp = [self.poscar.elm[x] for x in nns]
+      nn_elem.append(temp)
+    self.nn_elem = nn_elem
+    
diff --git a/pyprocar/pyposcar/outcarParser.py b/pyprocar/pyposcar/outcarParser.py
new file mode 100755
index 00000000..b3ad220b
--- /dev/null
+++ b/pyprocar/pyposcar/outcarParser.py
@@ -0,0 +1,62 @@
+#!/usr/bin/env python3
+import re 
+import os
+
+class outcarParser:
+
+    def __init__(self, OUTCAR):
+        #May be some important values left adding for predicting user intention
+        #Currently Finding: ISPIN, NKPOINTS, ORBTIAL_MAG, NBANDS, EMIN, EMAX
+
+        self.outcar = str(OUTCAR)      
+        f = open(self.outcar, "r")
+        self.outcar = f.readlines()
+        #ISPIN
+        self.ISPIN = int(re.findall(r'ISPIN\s*=\s*(\d*)', ''.join(self.outcar))[0])
+        print('ISPIN',self.ISPIN)
+
+
+        #NKPOINTS
+        self.NKPOINTS = int(re.findall(r'NKPTS\s*=\s*(\d*)', ''.join(self.outcar))[0])
+        print('NKPOINTS',self.NKPOINTS)
+
+
+        #MAGMOM(?)
+
+        #ORBITAL MAG(?)
+        self.ORBITAL_MAG = re.findall(r'ORBITALMAG\s*=\s*(\S*)', ''.join(self.outcar))[0]
+        print("ORBITAL_MAG", self.ORBITAL_MAG)
+
+
+        #NBANDS(?)
+        self.NBANDS = int(re.findall(r'NBANDS\s*=\s*(\d*)', ''.join(self.outcar))[0])
+        print('NBANDS',self.NBANDS)
+
+
+        #EMIN EMAX(?) dont know if to reverse the values for bandplots, this values are for DOS
+        self.EMIN = int(re.findall(r'EMIN\s*=\s*(-*\d*)', ''.join(self.outcar))[0])
+        print('EMIN',self.EMIN)
+        self.EMAX = int(re.findall(r'EMAX\s*=\s*(-*\d*)', ''.join(self.outcar))[0])
+        print('EMAX',self.EMAX)
+
+
+    def kpointPlotState(self):
+        if(self.NKPOINTS == 0):
+            state = None
+        if(self.NKPOINTS == 1):
+            state = 'atomic'
+        
+        #Here I should also check if it is a KPOINT mesh or a path
+        #Need to know where to find path or mesh if added
+        else:
+            state = 'parametric'
+
+
+        return state
+    
+    def IsMagnetic(self):
+        if(self.ISPIN == 0):
+            value = False
+        if(self.ISPIN == 1):
+            value = True    
+        return value
diff --git a/pyprocar/pyposcar/plot3d.py b/pyprocar/pyposcar/plot3d.py
new file mode 100644
index 00000000..e3db43d2
--- /dev/null
+++ b/pyprocar/pyposcar/plot3d.py
@@ -0,0 +1,166 @@
+
+import matplotlib.pyplot as plt
+import numpy as np
+class data3D:
+  def __init__(self, data, lattice, verbose='debug'):
+    """args:
+
+    `data` is a 3D mesh numpy array. It is understood that their
+    domain ranges from 0 to 1
+
+    `lattice` is the matrix to convert the points in `data` from [0,1)
+    to their real domain, non-orthogonal lattices are accepted
+
+    `verbose`: verbosity level. Three values are accepted {False, True, 'debug'}
+
+    """
+    
+    self.data = data
+    self.verbose = verbose
+    self.lattice = lattice
+    if self.verbose == 'debug':
+      print('DEBUG: data3D... init()')
+      print('DEBUG: data.shape, ', self.data.shape)
+    return
+
+
+  def _get_plane_vectors(self, axis):
+    """This method find two vectors perpendicular to a given axis. It
+    doesn't matter how axis is chosen (it does matter in the method
+    that invokes it)
+
+    """
+    # I any need two vectors orthogonal to axis, lets try x,y,z, in that order
+    axis = axis/np.linalg.norm(axis)
+    x,y,z = np.array([1,0,0]), np.array([0,1,0]), np.array([0,0,1])
+    proj_x = np.dot(x,axis)
+    proj_y = np.dot(y,axis)
+    proj_z = np.dot(z,axis)
+
+    v1 = None
+    v2 = None
+    # I will choose the least projected cartesian vector, and get the
+    # perpendicular (to `axis`) component
+    if np.abs(proj_x) <= np.abs(proj_y) and np.abs(proj_x) <= np.abs(proj_z):
+      v1 = x - proj_x*axis
+    if np.abs(proj_y) <= np.abs(proj_x) and np.abs(proj_y) <= np.abs(proj_z) and v1 is None:
+      v1 = y - proj_y*axis
+    if np.abs(proj_z) <= np.abs(proj_x) and np.abs(proj_z) <= np.abs(proj_y) and v1 is None:
+      v1 = z - proj_z*axis
+    v1 = v1/np.linalg.norm(v1)
+    
+    # the second vector is orthogonal to both, axis
+    v2 = np.cross(axis, v1)
+    # this should be unnecessary
+    v2 = v2/np.linalg.norm(v2)
+    
+    if self.verbose == 'debug':
+      print('DEBUG: projections (x,y,z),', proj_x, proj_y, proj_z)
+      print('DEBUG: _get_plane_vectors(), plane vectors')      
+      print(v1, v2)
+    return v1, v2
+    
+    
+    
+    
+
+    
+    
+  def cut_plane(self, axis, value):
+    """
+    plot the data along the desired axis at the selected `value`.
+
+    args:
+
+    `axis` can be several things:
+      - a vector respect to the `lattice`. `axis` will be normalized
+
+    """
+    if self.verbose=='debug':
+      print('DEBUG: cut_plane:...')
+      print('DEBUG: axis,', axis)
+      print('DEBUG: value,', value)
+      
+      
+    from scipy.ndimage.interpolation import map_coordinates
+    
+    # I need to vectors passing for the plane 
+    v1, v2 = self._get_plane_vectors(axis)
+    
+    # from these points I need to get points to interpolate. Several
+    # points will be generated, and these outside of the box will be
+    # discarded
+    ###
+    ### Mind, here I could made two list, one applying PBCs, if I am
+    ### interested on that
+    ###
+    d_shape = self.data.shape
+    s_max = np.max(d_shape)
+    coord_x = v1*np.linspace(-smax, smax, d_shape*0)
+
+    
+
+    ###
+    ### I will disregard anything related to lattices by the moment
+    ###
+    
+    # the axis (let's say `v`) is in a non-orthonormal lattice
+    # It has to be changed to an orthonormal lattice (e1, e2, e3) with e1=[1,0,0]
+    # In that lattice it will be v', satisfying:
+    #
+    # lattice * v' = v,  or 
+    # lattice^{-1} * v = v'
+    #
+    # However, for interpolation purposes, a *evenly* sampled
+    # orthogonal grid is the rule: it isn't normalized to unity
+    # 
+    v = axis
+    invLatt = np.linalg.inv(self.lattice)
+    vp = invLatt*v
+    vp = vp/np.linalg.norm(vp)
+    # `value` is not scaled by this transformation
+
+    
+
+  def interpolate_data(self, method='nearest'):
+    pss
+  
+  def rot_matrix_2vec(self, axis1, axis2):
+    """
+
+    It returns a rotation matrix to rotate `axis1` to `axis2`
+    
+    """
+    if self.verbose == 'debug':
+      print('\nDEBUG: data3D.rot_matrix_2vec: ...', )
+    # making sure these are unit vectors
+    axis1 = np.array(axis1)/np.linalg.norm(axis1)
+    axis2 = np.array(axis2)/np.linalg.norm(axis2)
+    if self.verbose == 'debug':
+      print('DEBUG: axis1 (normalized)', axis1)
+      print('DEBUG: axis1 (normalized)', axis1)
+
+    u = np.cross(axis1, axis2)
+    u = np.array(u)/np.linalg.norm(u)
+    if self.verbose == 'debug':
+      print('DEBUG: axis of rotation matrix', u)
+    ux, uy, uz = u[0], u[1], u[2]
+    uxx, uxy, uxz = ux*ux, ux*uy, uy*uz
+    uyx, uyy, uyz = uy*ux, uy*uy, uy*uz
+    uzx, uzy, uzz = uz*ux, uz*uy, uz*uz
+    
+    # angle 'theta' or `T` for shorter
+    T = np.arccos(np.dot(axis1, axis2))
+    if self.verbose == 'debug':
+      print('DEBUG: angle of rotation matrix', u)
+    
+    cT, sT = np.cos(T), np.sin(T)
+    
+    R = np.array([[   cT + uxx*(1-cT), uxy*(1-cT) - uz*sT, uxz*(1-cT) + uy*sT],
+                  [uyx*(1-cT) + uz*sT,    cT + uyy*(1-cT), uyz*(1-cT) - ux*sT],
+                  [uzx*(1-cT) - uy*sT, uzy*(1-cT) + ux*sT,    cT + uzz*(1-cT)]])
+    
+    if self.verbose == 'debug':
+      print('DEBUUG: rotation matrix')
+      print(R)
+    return R
diff --git a/pyprocar/pyposcar/plotBands.py b/pyprocar/pyposcar/plotBands.py
new file mode 100755
index 00000000..97d24d26
--- /dev/null
+++ b/pyprocar/pyposcar/plotBands.py
@@ -0,0 +1,141 @@
+#!/usr/bin/env python3
+import re 
+import poscar
+import argparse
+import defects
+import os
+
+class plotBands:
+    def __init__(self, POSCAR, PROCAR = "PROCAR", OUTCAR = "OUTCAR", savefigure = "savefigure"):
+            self.poscar = POSCAR
+            self.procar = PROCAR
+            self.outcar = OUTCAR
+            self.savefigure = savefigure
+            #Some default values 
+            self.ORB_Dict =  {"s" :  [0], "p":[1,2,3], "d":[4,5,6,7,8], "f":[9,10,11,12,13,14,15]}
+            self.elimit = [-2,2]
+            self.mode_ = "parametric"
+
+    def plot(self, orbitals):
+        
+        """ Writes a script that uses pyprocar.bansplot() to plot the bands from a PROCAR and OUTCAR file
+        for defect atoms from a given POSCAR file
+
+        -Can select orbitals to plot
+        -Can select a file to save the figure plotted
+        """
+        #Get list of defects for atoms
+        f = open("plot_file.py", "w")
+        f.write("#!/usr/bin/env python3 \n")
+        f.write("import pyprocar \n")
+        f.write("##Asumed default values are \n")
+        f.write("#Energy limit values \n")
+        f.write("elimit = [-2,2] \n")
+        f.write("#Orbital dictionary used \n")
+        f.write("ORB_Dict  = {'s' :  [0], 'p':[1,2,3], 'd':[4,5,6,7,8], 'f':[9,10,11,12,13,14,15]}\n")
+        f.write("#POSCAR,PROCAR, OUTCAR, and Ploted figure files \n")
+        f.write("POSCAR = '"+self.poscar+"'\n")
+        f.write("PROCAR = '"+self.procar+"'\n")
+        f.write("OUTCAR = '"+self.outcar+"'\n")
+        f.write("savefigure = '"+self.savefigure+"'\n")
+
+
+
+
+        POSCAR_ = poscar.Poscar(self.poscar)
+        POSCAR_.parse()
+        # looking for geometry features
+        try:
+          Defects = defects.FindDefect(POSCAR_)
+          atoms  = Defects.all_defects
+        # if there are none it will fail
+        except IndexError:
+          atoms = []
+        #If no defects were found, default to use all atoms instead
+        if(atoms == []):
+            print("No defects were found on ", self.poscar)
+            atoms = range(POSCAR_.Ntotal)
+        line = "#The defects found on "+self.poscar+" were \n"
+        f.write(line)
+        f.write("atoms = [".rstrip("\n"))
+        f.write(str(atoms[0]).rstrip("\n"))
+        for i in atoms[1:]:
+            f.write(",".rstrip("\n"))
+            f.write(str(i).rstrip("\n"))
+        f.write("] \n")
+
+
+        asked_orb = []
+        #Picking and writing Orbitals
+        for i in orbitals:
+            asked_orb += self.ORB_Dict[i]
+        f.write("#Orbitals used for this plot\n")
+        f.write("orbitals = [".rstrip("\n"))
+        f.write(str(asked_orb[0]).rstrip("\n"))
+        if(asked_orb[1:]):
+            for i in asked_orb[1:]:
+                f.write(",".rstrip("\n"))
+                f.write(str(i).rstrip("\n"))
+        f.write("] \n")
+
+        #Checking OUTCAR for SPIN and Kpoint information
+        out = open(self.outcar ,"r")
+        out = out.readlines()
+        if(out):
+            match_KPOINTS = [re.findall(r'NKPTS\s*=\s*(\d*)', line) for line in out]
+            match_SPIN = [re.findall(r'ISPIN\s*=\s*(\d*)', line) for line in out]
+            KPOINTS = int([x for x in match_KPOINTS if(x)][0][0])
+            ISPIN = int([x for x in match_SPIN if(x)][0][0])
+            if(ISPIN == 2):
+                f.write("cmap = 'seismic'\n")
+                f.write("vmax = 1.0\n")
+                f.write("vmin = -1.0\n")
+            else:
+                f.write("cmap = 'jet'\n")
+                f.write("vmax = None\n")
+                f.write("vmin = None\n")            
+            if(KPOINTS != 1):
+                f.write("mode = 'parametric'\n")
+            else:
+                f.write("mode = 'atomic'\n")
+        else:
+            print("Couldn't find OUTCAR file, assuming default mode and cmap")
+            f.write("cmap = 'jet'\n")
+            f.write("mode = 'parametric'\n")
+
+        f.write("#We then plot the bands specified \n")
+        f.write("pyprocar.bandsplot(PROCAR,outcar = OUTCAR,elimit = elimit,mode = mode,savefig = savefigure,atoms = atoms,orbitals = orbitals, cmap = cmap, vmax = vmax, vmin = vmin)")
+        f.write('\n')
+        f.close()
+        os.system("chmod +rwx plot_file.py") 
+        #pyprocar.bandsplot(PROCAR,outcar = outcar, elimit = elimit, mode = mode_,savefig = savefigure ,atoms = atoms, orbitals = asked_orb)
+
+        return
+
+if __name__ == '__main__':
+    #plot(orbitals='s', POSCAR='POSCAR')
+    parser = argparse.ArgumentParser()
+    parser.add_argument("--orbitals","-o", type=str,default = "spd", help = "Orbitals asked for ploting Ex = spd")
+    parser.add_argument("--poscar","-g", type=str,default = "POSCAR", help = "POSCAR file name")
+    parser.add_argument("--procar","-p", type=str,default = "PROCAR", help = "PROCAR file name")
+    parser.add_argument("--outcar","-t", type=str,default = "OUTCAR", help = "OUTCAR file name")
+    parser.add_argument("--bandplot","-b", type=str,default = "Band_Plot", help = "Plot file name")
+    parser.add_argument("--run", action='store_true')
+    args = parser.parse_args()
+    if args.orbitals:
+        orbitals = [*args.orbitals]
+    if args.poscar:
+        POSCAR = args.poscar
+    if args.procar:
+        PROCAR = args.procar
+    if args.outcar:
+        OUTCAR = args.outcar
+    if args.bandplot:
+        savefigure = args.bandplot
+
+    
+    plotBands(POSCAR = POSCAR, PROCAR = PROCAR, OUTCAR = OUTCAR, savefigure = savefigure).plot(orbitals = orbitals)
+    if args.run:
+        os.system("./plot_file.py")
+        
+        
\ No newline at end of file
diff --git a/pyprocar/pyposcar/plotbands.py b/pyprocar/pyposcar/plotbands.py
new file mode 100755
index 00000000..7cb03db0
--- /dev/null
+++ b/pyprocar/pyposcar/plotbands.py
@@ -0,0 +1,133 @@
+#!/usr/bin/env python3
+import re 
+import poscar
+import argparse
+import defects
+import os
+
+ORB_Dict  = {"s" :  [0], "p":[1,2,3], "d":[4,5,6,7,8], "f":[9,10,11,12,13,14,15]}
+#Need default value for elimit
+elimit = [-2,2]
+mode_ = "parametric"
+
+###CLASSIFY
+def plot(orbitals, POSCAR = "POSCAR", PROCAR = "PROCAR",OUTCAR = "OUTCAR", savefigure = "Band_plot"):
+    """ Writes a script that uses pyprocar.bansplot() to plot the bands from a PROCAR and OUTCAR file
+        for defect atoms from a given POSCAR file
+
+        -Can select orbitals to plot
+        -Can select a file to save the figure plotted
+    """
+    #Get list of defects for atoms
+    f = open("plot_file.py", "w")
+    f.write("#!/usr/bin/env python3 \n")
+    f.write("import pyprocar \n")
+    f.write("##Asumed default values are \n")
+    f.write("#Energy limit values \n")
+    f.write("elimit = [-2,2] \n")
+    f.write("#Orbital dictionary used \n")
+    f.write("ORB_Dict  = {'s' :  [0], 'p':[1,2,3], 'd':[4,5,6,7,8], 'f':[9,10,11,12,13,14,15]}\n")
+    f.write("#POSCAR,PROCAR, OUTCAR, and Ploted figure files \n")
+    f.write("POSCAR = '"+POSCAR+"'\n")
+    f.write("PROCAR = '"+PROCAR+"'\n")
+    f.write("OUTCAR = '"+OUTCAR+"'\n")
+    f.write("savefigure = '"+savefigure+"'\n")
+
+
+
+    
+    POSCAR_ = poscar.Poscar(POSCAR)
+    POSCAR_.parse()
+    # looking for geometry features
+    try:
+      Defects = defects.FindDefect(POSCAR_)
+      atoms  = Defects.all_defects
+    # if there are none it will fail
+    except IndexError:
+      atoms = []
+    #If no defects were found, default to use all atoms instead
+    if(atoms == []):
+        print("No defects were found on ", POSCAR)
+        atoms = range(POSCAR_.Ntotal)
+    line = "#The defects found on "+POSCAR+" were \n"
+    f.write(line)
+    f.write("atoms = [".rstrip("\n"))
+    f.write(str(atoms[0]).rstrip("\n"))
+    for i in atoms[1:]:
+        f.write(",".rstrip("\n"))
+        f.write(str(i).rstrip("\n"))
+    f.write("] \n")
+
+
+    asked_orb = []
+    #Picking and writing Orbitals
+    for i in orbitals:
+        asked_orb += ORB_Dict[i]
+    f.write("#Orbitals used for this plot\n")
+    f.write("orbitals = [".rstrip("\n"))
+    f.write(str(asked_orb[0]).rstrip("\n"))
+    if(asked_orb[1:]):
+        for i in asked_orb[1:]:
+            f.write(",".rstrip("\n"))
+            f.write(str(i).rstrip("\n"))
+    f.write("] \n")
+
+    #Checking OUTCAR for SPIN and Kpoint information
+    out = open(OUTCAR ,"r")
+    out = out.readlines()
+    if(out):
+        match_KPOINTS = [re.findall(r'NKPTS\s*=\s*(\d*)', line) for line in out]
+        match_SPIN = [re.findall(r'ISPIN\s*=\s*(\d*)', line) for line in out]
+        KPOINTS = int([x for x in match_KPOINTS if(x)][0][0])
+        ISPIN = int([x for x in match_SPIN if(x)][0][0])
+        if(ISPIN == 2):
+            f.write("cmap = 'seismic'\n")
+            f.write("vmax = 1.0\n")
+            f.write("vmin = -1.0\n")
+        else:
+            f.write("cmap = 'jet'\n")
+            f.write("vmax = None\n")
+            f.write("vmin = None\n")            
+        if(KPOINTS != 1):
+            f.write("mode = 'parametric'\n")
+        else:
+            f.write("mode = 'atomic'\n")
+    else:
+        print("Couldn't find OUTCAR file, assuming default mode and cmap")
+        f.write("cmap = 'jet'\n")
+        f.write("mode = 'parametric'\n")
+
+    f.write("#We then plot the bands specified \n")
+    f.write("pyprocar.bandsplot(PROCAR,outcar = OUTCAR,elimit = elimit,mode = mode,savefig = savefigure,atoms = atoms,orbitals = orbitals, cmap = cmap, vmax = vmax, vmin = vmin)")
+    f.write('\n')
+    f.close()
+    os.system("chmod +rwx plot_file.py") 
+    #pyprocar.bandsplot(PROCAR,outcar = outcar, elimit = elimit, mode = mode_,savefig = savefigure ,atoms = atoms, orbitals = asked_orb)
+
+if __name__ == '__main__':
+    #plot(orbitals='s', POSCAR='POSCAR')
+    parser = argparse.ArgumentParser()
+    parser.add_argument("--orbitals","-o", type=str,default = "spd", help = "Orbitals asked for ploting Ex = spd")
+    parser.add_argument("--poscar","-g", type=str,default = "POSCAR", help = "POSCAR file name")
+    parser.add_argument("--procar","-p", type=str,default = "PROCAR", help = "PROCAR file name")
+    parser.add_argument("--outcar","-t", type=str,default = "OUTCAR", help = "OUTCAR file name")
+    parser.add_argument("--bandplot","-b", type=str,default = "Band_Plot", help = "Plot file name")
+    parser.add_argument("--run", action='store_true')
+    args = parser.parse_args()
+    if args.orbitals:
+        orbitals = [*args.orbitals]
+    if args.poscar:
+        POSCAR = args.poscar
+    if args.procar:
+        PROCAR = args.procar
+    if args.outcar:
+        OUTCAR = args.outcar
+    if args.bandplot:
+        savefigure = args.bandplot
+    plot(orbitals = orbitals, POSCAR = POSCAR, PROCAR = PROCAR, OUTCAR = OUTCAR, savefigure = savefigure)
+    if args.run:
+        os.system("./plot_file.py")
+    
+
+
+    
diff --git a/pyprocar/pyposcar/poscar.py b/pyprocar/pyposcar/poscar.py
new file mode 100755
index 00000000..ae468c87
--- /dev/null
+++ b/pyprocar/pyposcar/poscar.py
@@ -0,0 +1,353 @@
+#!/usr/bin/env python
+import sys
+import re
+import numpy as np
+import argparse
+
+
+class Poscar:
+  """Stores the settings of a POSCAR. The Cartesian and direct coords
+    must be updated together all the time.  The scaling factor, is
+    internally set to 1.0, always.
+
+    Methods:
+    parse(self)                    # loads the whole file
+    _set_cartesian(self)           # set direct -> cartesian (internal)
+    _set_direct(self)              # set cartesian -> direct (internal)
+    _unparse(self, direct)         # data to string, called by write()
+    write(self, filename, direct)  # saves the class to a POSCAR-like file
+    xyz(self, filename)            # saves a xyz file from the data
+    sort(self)                     # sorts the atoms, grouping them by element
+    remove()                       # removes one or more atoms from poscar
+    add(position, element, direct) # add one atom at the time
+  """
+
+  def __init__(self, filename, verbose=False):
+    self.verbose = verbose
+    self.filename = filename
+    self.poscar = None
+    self.cpos = None # cartesian coordinates
+    self.dpos = None # direct coordinates
+    self.lat = None # lattice
+    self.typeSp = None # Name of atomic species
+    self.numberSp = None # Number of atoms per specie
+    self.Ntotal = None # Total atoms in system
+    self.elm = None # Element of each atoms one-by-one. list(str)
+    self.selective = None # Selective dynamics
+    self.selectFlags = None # all the T,F from selective dynamics. np.array(str)
+    self.volume = None
+    return
+    
+  def parse(self, fromString=None):
+    """Loads into memory all the content of the POSCAR file.
+    Args:
+    
+    `fromString` : If present, instead of loading a file, it uses this
+    variable as a string with the contents of the POSCAR file. Default=None
+
+    """
+    if fromString and isinstance(fromString, str):
+      self.poscar = fromString.split('\n')
+    elif fromString and isinstance(fromString, list):
+      self.poscar = fromString
+    else:
+      self.poscar = open(self.filename, 'r')
+      self.poscar = self.poscar.readlines()
+
+    # getting the scale factor
+    scale = re.findall(r'[.\d]+', self.poscar[1])
+    scale = float(scale[0])
+    if self.verbose:
+      print('scaling factor: ', scale)
+    
+    # parsing the lattice
+    self.lat = re.findall(r'[-.\d]+\s+[-.\d]+\s+[-.\d]+\s*\n*', ''.join(self.poscar[2:5]))
+    self.lat = np.array([x.split() for x in self.lat], dtype=float)*scale
+    if self.verbose:
+      print( 'lattice:\n', self.lat)
+
+    # type of atoms and number of atoms per type
+    self.typeSp = re.findall(r'(\w+)\s*', self.poscar[5])
+    if len(self.typeSp) == 0:
+      raise RuntimeError("No data about the atomic species found. Correct it.")
+    if self.verbose:
+      print( 'atoms per species:\n', self.typeSp)
+    self.numberSp = re.findall(r'(\d+)\s*', self.poscar[6])
+    self.numberSp = np.array(self.numberSp, dtype=int)
+    self.Ntotal = np.sum(self.numberSp)
+    if self.verbose:
+      print( 'atomic species:\n', self.numberSp)
+      print( 'The total is ' + str(self.Ntotal) + ' atoms')
+    
+    # selective dynamics? setting a offset
+    if re.findall(r'^\s*[sS]', self.poscar[7]) :
+      self.selective = True
+      offset = 1
+      if self.verbose:
+        print( "Selective Dynamics")
+    else:
+      self.selective = False
+      offset = 0
+      
+    # Direct coordinates unless otherwise
+    direct = True
+    if not re.findall(r'^\s*[Dd]', self.poscar[7+offset]) :
+      direct = False
+      if self.verbose:
+        print('Positions in Cartesian coordinates')
+    else:
+      if self.verbose:
+        print('Positions in Direct coordinates')
+
+    # parsing the positions
+    start, end = 8+offset, 8+offset+ self.Ntotal
+    string = r'([-.\d]+)\s+([-.\d]+)\s+([-.\d]+)\s*'
+    pos = re.findall(string, ''.join(self.poscar[start:end]))
+    if direct:
+      self.dpos = np.array(pos, dtype=float)
+      self._set_cartesian()
+    else:
+      self.cpos = np.array(pos, dtype=float)
+      self._set_direct()
+    if self.verbose:
+      print( "Atomic positions (direct)\n", self.dpos)
+      print( "Atomic positions (cartesian)\n", self.cpos)
+
+    # parsing selective dynamics
+    if self.selective == True:
+      string = r'([TF]+)\s+([TF]+)\s+([TF]+)\s+'
+      selectFlags = re.findall(string, ''.join(self.poscar[start:end]))
+      self.selectFlags = np.array(selectFlags)
+      print('Flags of selective dynamics:\n', self.selectFlags)
+      
+    # setting a list of elements:
+    elementList = zip(self.typeSp, self.numberSp)
+    self.elm = ' '.join([' '.join([x]*y) for x,y in elementList]).split()
+    if self.verbose:
+      print('Elements: ', self.elm)
+
+    # setting the volume, just as an utility
+    self.volume = np.linalg.det(self.lat)
+    return
+
+  def _set_cartesian(self):
+    cart = np.dot(self.lat.T, self.dpos.T)
+    cart = cart.T
+    self.cpos = cart
+    
+  def _set_direct(self):
+    inverse = np.linalg.inv(self.lat)
+    direct = np.dot(inverse.T, self.cpos.T)
+    direct = direct.T
+    self.dpos = direct
+    
+  def _unparse(self, direct=True):
+    """writes a POSCAR file with the info stored in the arrays. The
+    information is as it is. No PBC are applied, and no checks are
+    performed at this stage.
+    The scaling factor is 1.0, always.
+    """
+
+    # We will start with getting the positions
+    if direct == True:
+      pos = self.dpos
+    else:
+      pos = self.cpos
+      
+    # creating a list of text lines with positions
+    pos = [' '.join([str(coord) for coord in line]) for line in pos]
+
+    # Now we will look whether selective dynamics are used
+    if self.selective == True:
+      # a list of text lines with flags
+      flags = [' '.join([flag for flag in line]) for line in pos]
+      pos = [pos + ' ' + flag for (pos, flag) in zip(pos,flags)]
+
+    pos = '\n'.join(pos)
+
+    # Creating the POSCAR text string
+    self.poscar = "poscar.py\n"
+    self.poscar += "1.0\n"
+    self.poscar += '\n'.join([' '.join([str(y) for y in x]) for x in self.lat]) + '\n'
+    self.poscar += ' '.join(self.typeSp) + '\n'
+    self.poscar += ' '.join([str(x) for x in self.numberSp]) + '\n'
+    if self.selective:
+      self.poscar += 'Selective Dynamics\n'
+    if direct == False:
+      self.poscar += 'Cartesian\n'
+    else:
+      self.poscar += 'Direct\n'
+    self.poscar += pos # already set with the the T, F -if needed
+    self.poscar += '\n'
+    
+    if self.verbose:
+      print("\n\n unparsed POSCAR\n\n")
+      print('unparse, self.poscar\n', self.poscar)
+
+
+  def write(self, filename='POSCAR.out', direct=True):
+    self._unparse(direct=direct)
+    fout = open(filename, 'w')
+    fout.write(self.poscar)
+    if self.verbose:
+      print('File '  + filename + ' written.')
+    return
+      
+  def xyz(self, filename):
+    xyzf = open(filename, 'w')
+    xyzf.write(str(self.Ntotal) + '\n')
+
+    # The comment line has the lettice
+    latStr = np.array(self.lat, dtype=str).flatten()
+    latStr = ' '.join(latStr)
+    xyzf.write('Lattice="'  + latStr + '"\n')
+    
+    # continuing with the positions
+    pos = self.cpos
+    pos = np.array(pos, dtype=str)
+    pos = [' '.join(x) for x in pos]
+    elm = list(self.elm)
+    xyzstr = '\n'.join( [ x + ' ' + y for x,y in zip(elm, pos) ] )
+    xyzf.write(xyzstr)
+    xyzf.write('\n')
+    xyzf.close()
+    if self.verbose:
+      print(filename + ' written as xyz')
+      
+  def sort(self):
+    #
+    # self.typeSp, self.elem, self.dpos
+    # must be present and updated (they can be disordered)
+    #
+    from collections import OrderedDict
+    # getting the different element's names, without repetitions
+    self.typeSp = list(OrderedDict.fromkeys(self.typeSp))
+    if self.verbose:
+      print('The list of elements is ', self.typeSp)
+    # lists of ordered atoms
+    atoms = []
+    elements = []
+    if self.verbose:
+      print('to sort: ', self.elm, '\n', self.dpos)
+    
+    # ordering the positions accordiong to its element.
+    for thiselem in self.typeSp:
+      # Joining each element with its position
+      for elem, pos in zip(self.elm, self.dpos):
+        if thiselem == elem:
+          atoms.append(pos)
+          elements.append(elem)
+    if self.verbose:
+      print('sorted: ', elements, '\n', np.array(atoms))
+
+    self.elm = elements
+    # setting the position's list in direct coords.
+    self.dpos = np.array(atoms)
+    # and in cartesian coords as well
+    self._set_cartesian()
+
+    # How many atoms by element?
+    from collections import Counter
+    # a dict of elements and its repetitions
+    counter = Counter(elements)
+    self.numberSp = [counter[x] for x in self.typeSp]
+    
+    self.Ntotal = sum(self.numberSp)
+    if self.verbose:
+      print ("N atoms per specie, ", self.numberSp, '. Total: ', self.Ntotal)
+
+  def remove(self, atoms):
+    # atoms maybe (or not) just one atom (an int, not a one-sized list)
+    if self.verbose:
+      print('going to delete the following atom(s):', atoms)
+    try:
+      iterator = iter(atoms)
+    except TypeError:
+      atoms = [atoms]
+      
+    # we will populate a list with the atoms to keep
+    keep = [True]*self.Ntotal
+    for atom in atoms:
+      if atom >= self.Ntotal:
+        raise RuntimeError('Error: atom index is larger than the atom number')
+      keep[atom] = False
+    # creating new arrays without the removed elements
+    self.cpos = self.cpos[keep]
+    self.dpos = self.dpos[keep]
+    self.Ntotal = len(self.cpos)
+    
+    # self.elm is a list, I am not sure why, but I will cast it back to list
+    self.elm = np.array(self.elm)
+    self.elm = self.elm[keep]
+    self.elm = list(self.elm)
+    
+    if self.selective:
+      self.selectFlags = self.selectFlags[keep]
+    # the atoms types and their number can be modified, we need to
+    # count them from self.elm
+    # Also I want to keep the order of elements
+    from collections import OrderedDict
+    self.typeSp = list(OrderedDict.fromkeys(self.elm).keys())
+    self.numberSp = [self.elm.count(x) for x in self.typeSp]
+    if self.verbose:
+      print('Elements', self.elm)
+      print(self.typeSp, self.numberSp)
+    # no need to sort, deleting doesn't alters the occurence
+    return
+
+  def add(self, position, element, direct=True, selectiveFlags=None):
+    """ Atoms must be added one at the time """
+    position = np.array(position, dtype=float)
+    position.shape = (1,3)
+    if self.verbose:
+      print('going to add an ' +element+  ' atom at', position, end=',')
+      if direct:
+        print('in direct coordinates')
+      else:
+        print('in Cartesian coordiantes')
+    # setting the data
+    if direct:
+      self.dpos = np.concatenate((self.dpos, position))
+    else:
+      self.cpos = np.concatenate((self.cpos, position))
+    self.Ntotal = self.Ntotal + 1
+    self.elm.append(element)
+    if self.selective and selectiveFlags:
+      if self.verbose:
+        print('selective flag found.')
+      selectiveFlags = np.array(selectiveFlags, dtype=str)
+      self.selectFlags = np.concatenate(self.selectFlags, selectiveFlags)
+    # setting the other data
+    if direct:
+      self._set_cartesian()
+    else:
+      self._set_direct()
+    # the atoms types and their number can be modified, we need to
+    # count them from self.elm
+    # Also I want to keep the order of elements
+    from collections import OrderedDict
+    self.typeSp = list(OrderedDict.fromkeys(self.elm).keys())
+    self.numberSp = [self.elm.count(x) for x in self.typeSp]
+    if self.verbose:
+      print('Elements', self.elm)
+      print(self.typeSp, self.numberSp)
+    # sorting the data
+    self.sort()
+    return
+
+    
+        
+      
+if __name__ == '__main__':
+  parser = argparse.ArgumentParser()
+  parser.add_argument("inputfile", type=str, help="input file")
+  parser.add_argument('-v', '--verbose', action='store_true')
+  parser.add_argument('--xyz', action='store_true')
+  
+  args = parser.parse_args()
+
+  p = Poscar(args.inputfile, verbose=args.verbose)
+  p.parse()
+
+  if args.xyz:
+    p.xyz(args.inputfile + '.xyz')
diff --git a/pyprocar/pyposcar/poscarUtils.py b/pyprocar/pyposcar/poscarUtils.py
new file mode 100755
index 00000000..4c3eef13
--- /dev/null
+++ b/pyprocar/pyposcar/poscarUtils.py
@@ -0,0 +1,650 @@
+#!/usr/bin/env python
+
+import argparse
+import numpy as np
+from poscar import Poscar
+import latticeUtils
+
+
+def poscarDiff(poscar1, poscar2, tolerance=0.01):
+  """It compares two different Poscar objects. Small numerical errors
+  up to `tolerance` are ignored.
+
+  Return: a dictionary with the differences found. If the files are
+  the same, it returns an empty dictionary
+
+  The comparison does:
+  -comparison between elements
+  -comparison between lattices (distances and angles)
+  -comparison of the relative distances between atoms
+
+  """
+  differences = {}
+  #Checking for type of elements
+  if(list(poscar1.elm) != list(poscar2.elm)):
+    differences['Elements'] = (list(poscar1.elm),list(poscar2.elm))
+    return differences
+  #The rest only makes sense to check if elements are the same
+  #Checking lattice
+  lat_delta = np.zeros((3,3))
+  for i in [0,1,2]:
+    for j in [0,1,2]:
+      #We compare the module of all lattice vectors 
+      lat_1 = np.dot(poscar1.lat[i], poscar1.lat[j])
+      lat_2 = np.dot(poscar2.lat[i], poscar2.lat[j])
+      lat_delta[i,j] = np.abs(lat_1 - lat_2)
+  for delta in lat_delta:
+    if(any([x > tolerance for x in delta])):
+      differences['lattices'] = lat_delta
+  #Checking distances
+  #We get the distance matrix, wich includes distances between atoms for all atoms 
+  d1 = latticeUtils.distances(poscar1.cpos, lattice=poscar1.lat)
+  d2 = latticeUtils.distances(poscar2.cpos, lattice=poscar2.lat)
+  delta = d1 - d2
+  #We take the norm of the difference between the distances
+  delta = np.linalg.norm(delta)
+  if(delta > tolerance):
+    differences['distances'] = delta
+  return differences
+  
+  
+
+class poscar_modify:
+  """ class to change properties of a Poscar-object.
+      It requires a poscar-object, not a filename.
+
+  Methods:
+
+  write(filename, cartesian, xyz)   # write the poscar with `filename`, in `cartesian`?
+  pos_multiply(factor, cartesian)   # multiply the position of each atoms by `factor`
+  pos_sum(factor, cartesian)        # sums `factor` to each position
+  remove(self, atoms, human)        # removes a list of `atoms`
+  add(element, position, cartesian) # add a single atom with  `element` at `position`
+  shift(amount, cartesian)          # shift all the positions by `amount`
+  scale_lattice(factor, cartesian)  # scale the lattice by `factor`. are `cartesian` fixed?
+
+  """
+  def __init__(self, poscar, verbose=False):
+    self.p = poscar
+    self.verbose = verbose
+
+  def write(self, filename, cartesian=False, xyz=False):
+    """It just invokes the write method from the poscar. Is here just
+    for convenience
+
+    filename: the name of the file to be written
+    cartesian: write in cartesian or direct coordinates
+    xyz: should a xyz be written too?
+
+    """
+    direct = True
+    if cartesian:
+      direct=False
+    self.p.write(filename, direct=direct)
+    if xyz:
+      self.p.xyz(filename + '.xyz')
+
+    if self.verbose:
+      print("new POSCAR:")
+      print(self.p.poscar)
+      if xyz:
+        print('XYZ file written')
+    
+  def pos_multiply(self, factor, cartesian=True):
+    """ Multiplies each (x,y,z) position by the Factor (Fx,Fy,Fz)
+    args:
+
+    factor: a list or array with 3 numbers
+    cartesian: should the operation be done in Cartesian or direct coordinates
+    
+    """
+    factor = np.array(factor, dtype=float)
+    if verbose:
+      print("Multiply positions, factor = ", factor)
+      print("old positions:")
+      if cartesian:
+        print(self.p.cpos)
+      else:
+        print(self.p.dpos)
+        
+    if cartesian is True:
+      self.p.cpos = self.p.cpos*factor
+      self.p._set_direct()
+    else:
+      self.p.dpos = self.p.dpos*factor
+      self.p._set_cartesian()
+
+    if verbose:
+      print("\nnew positions:")
+      if cartesian:
+        print(self.p.cpos)
+      else:
+        print(self.p.dpos)      
+    return
+
+  def pos_sum(self, factor, cartesian=True):
+    """ Add each (x,y,z) position by the Factor (Fx,Fy,Fz)
+    args:
+
+    factor: a list or array with 3 numbers
+    cartesian: should the operation be done in Cartesian or direct coordinates
+    
+    """
+    factor = np.array(factor, dtype=float)
+    
+    if verbose:
+      print("summing to positions, factor = ", factor)
+      print("old positions:")
+      if cartesian:
+        print(self.p.cpos)
+      else:
+        print(self.p.dpos)
+
+    if cartesian is True:
+      self.p.cpos = self.p.cpos + factor
+      self.p._set_direct()
+    else:
+      self.p.dpos = self.p.dpos + factor
+      self.p._set_cartesian()
+
+    if verbose:
+      print("\nnew positions:")
+      if cartesian:
+        print(self.p.cpos)
+      else:
+        print(self.p.dpos)      
+    return
+
+  def change_elements(self, indexes, newElements, human=False):
+    """It changes the Element of an atom in a poscar object.
+
+    args:
+
+    indexes: the 0-based indexes of the atom to be replaced. A single
+    number, or list
+
+    newElements: the element to replace. Same size of `indexes`
+
+    human: if True, the index will be one-based
+
+    """
+    # converting anything to list
+    try:
+      indexes = np.array(indexes, dtype=int)
+      newElements = list(newElements)
+    except TypeError:
+      indexes = np.array([indexes], dtype=int)
+      newElements = [newElements]
+    if human:
+      indexes = indexes - 1
+      
+    # first retrive the positions
+    dpos = self.p.dpos[indexes]
+    
+    # then removing
+    self.remove(indexes, human=False)
+    # and finally adding a new atoms, one at a time
+    for pos,elem in zip(dpos,newElements):
+      self.add(elem, pos, cartesian=False)
+               
+    if self.verbose:
+      print('Added element ', newElement, 'at direct coord:', dpos)
+      
+  def remove(self, atoms, human=False):
+    """Removes a list of atoms from the Poscar object. The order of
+    remotion is not trivial, but the method (at the Poscar-class
+    level) sort it before removing the atoms.
+    
+    args:
+    
+    atoms: a list with the indexes of the atoms
+    human: does `atoms` start from 1 (True) or 0 (False)?
+    """
+    atoms = np.array(atoms)
+    # the atoms list could be disordered, Poscar.remove is safe
+    if human:
+      atoms = atoms - 1
+    self.p.remove(atoms)
+    if self.verbose:
+      print('removing the following atoms (0-based indexes):', atoms)
+      print(self.p.numberSp, self.p.typeSp)
+
+  def add(self, element, position, cartesian=True):
+    """Adds a single atom to the Poscar object.
+    
+    args:
+    
+    element: a string with the atomic specie, e.g. 'Cu'
+    position: [X, Y, Z]
+    cartesian: Cartesian (True) or direct coordiantes (False)?
+    """
+    position = np.array(position, dtype=float)
+    if self.verbose:
+      print('New atom:', element, position)
+    direct = True
+    if cartesian is True:
+      direct = False
+    self.p.add(position=position, element=element, direct=direct)
+
+  def shift(self, amount, cartesian):
+    """Shift all the positions by `amount`, given in cartesian or direct
+    coordinates. The PBCs are always enforced (i.e. [0,1] in direct
+    coords)
+
+    args:
+    amount: [X,Y,Z] a list or array with the shift along each basios vector
+    cartesian: is `amount` given in cartesian (True) or direct (False) coords?
+
+    """
+    amount = np.array(amount, dtype=float)
+    if cartesian:
+      if self.verbose:
+        print('\nOriginal Cartesian coords:')
+        print(p.cpos)
+      self.p.cpos = self.p.cpos + amount
+      self.p._set_direct()
+      if self.verbose:
+        print('\nShifted Cartesian coords:')
+        print(p.cpos)        
+    else:
+      if self.verbose:
+        print('\nOriginal Direct coords:')
+        print(p.dpos)      
+      self.p.dpos = self.p.dpos + amount
+      self.p._set_cartesian()
+      if self.verbose:
+        print('\nShifted Cartesian coords:')
+        print(p.cpos)        
+
+    # enforcing the PBCs
+    self.p.dpos = np.mod(self.p.dpos, 1.0)
+    self.p._set_cartesian()
+    return
+
+  def scale_lattice(self, factor, cartesian):
+    """ Scale the lattice vectors by factor [a,b,c] 
+
+    args:
+
+    factor: [A,B,C] the first lattice vector is multiplied by A, etc.
+    cartesian: What cooddinates should remain constant? Cartesian or direct?
+    """
+    if self.verbose:
+      print("Old lattice")
+      print(self.p.lat)
+
+    self.p.lat = (self.p.lat.T * factor).T
+    if self.verbose:
+      print("New lattice")
+      print(self.p.lat)
+
+    if cartesian:
+      # if cartesian positions are to remain constant, the direct ones
+      # needs to be updated
+      self.p._set_direct()
+    else:
+      self.p._set_cartesian()
+    return
+
+  
+
+class poscar_supercell:
+  """ class to generate a supercell 
+  """
+  
+  def __init__(self, poscar, verbose=False):
+    self.poscar = poscar
+    self.verbose = verbose
+
+  def supercell(self, size):
+    """ 
+    Creates a new poscar object with size:
+
+    size = [[b1x, b1y, b1z],
+            [b2x, b2y, b2z],
+            [b3x, b3y, b3z]]
+    """
+    lat = self.poscar.lat
+    pos = self.poscar.dpos
+    elem = self.poscar.elm
+    scell = np.array(size, dtype=int)
+  
+    if self.verbose:
+      print("original lattice:\n", lat, "\n")
+      print("New lattice (in terms of the original vectors)\n", scell, "\n")
+      print("Cartesian coordinates new lattice:\n", np.dot(scell, lat))
+
+    # inverse: a=ocell*b
+    ocell = np.linalg.inv(scell)
+    if self.verbose:
+      print( "inverse transformation:\n", ocell)
+      print( "atoms, direct\n", pos)
+      print( "atoms in cart\n")
+      print(  np.einsum('ij,jk', pos, lat))
+
+      print( "in terms of new lattice\n")
+    spos = np.einsum('ij,jk', pos, ocell)
+
+    # I need to find the values of n_i, a_i *inside* the supercell.
+    # n_i*a_i = n_i*ocell_ij*b_j
+    # then, the condition is : 0 < n_i*ocell_ij < 1
+    b = np.ones(3)
+    n = np.einsum('j,ji', b, scell )
+    n = int(np.max(np.abs(n)))
+    if self.verbose:
+      print( "maximum value of n to search for repetitions : ", n)
+
+    n = np.arange(-n,n)
+
+    n = np.array([(x,y,z) for z in n for y in n for x in n])
+    nuseful = []
+    #checking which of the previous repetitions works
+    for trial in n:
+      value = np.einsum('i,ij', trial, ocell)
+      if value.min() >= 0 and value.max() < 1:
+        nuseful.append(trial)
+      
+    if self.verbose:
+      print( "set of new coords\n", nuseful)
+    npos = []
+    for nn in nuseful:
+      npos.append(spos + np.einsum('i,ij', nn, ocell))
+    
+    if self.verbose:
+      print( "positions:")
+    npos = np.concatenate(npos)
+    npos = np.mod(npos, 1)
+    if self.verbose:
+      print( npos, npos.shape)
+
+    # I can have repeated elements, such as '0 0 1', and '0 0 0'
+    # (the 1 can be 0.9999999 and fail the previous filter)
+    tol = 0.001
+    temp = []
+    for i in range(len(npos)):
+      repeated = False
+      for j in range(i):
+        d = np.abs(npos[i] - npos[j])
+        for k in range(len(d)):
+          if abs(d[k]-1) < d[k]:
+            d[k]=d[k]-1
+        #print d
+        if np.linalg.norm(d) < tol and i != j:
+          repeated = True
+          if self.verbose:
+            print( i, j, npos[i], npos[j])
+      if not repeated:
+        temp.append(npos[i])
+      
+    temp = np.concatenate(temp)
+    temp.shape = (-1,3)
+    if self.verbose:
+      print( temp.shape)
+    npos = temp[:]
+    
+    elem = elem*len(nuseful)
+    #print elem
+    self.poscar.elm = elem
+    self.poscar.lat = np.dot(scell, lat)
+    self.poscar.dpos = npos
+    self.poscar._set_cartesian()
+  
+    self.poscar.sort()
+
+    return self.poscar
+
+  def write(self, filename, cartesian=False, xyz=False):
+    """Just a convenience method 
+
+    """
+    pm = poscar_modify(self.poscar, verbose=False)
+    pm.write(filename=filename, cartesian=cartesian, xyz=xyz)
+  
+    return
+
+  
+  
+  
+def p_atoms_f(args):
+  print('Operations related with atomic positions')
+  if args.verbose:
+    print('Input:     ', args.input)
+    print('Output:    ', args.output)
+    print('sum:       ', args.sum)
+    print('multiply:  ', args.multiply)
+    print('xyz:       ', args.xyz)
+    print('cartesian: ', args.cart)
+    print('save_cart: ', args.sc)
+    print('remove:    ', args.remove)
+    print('human:     ', args.human)
+    print('add:       ', args.add)
+
+  p = Poscar(args.input, verbose=False)
+  p.parse()
+
+  Modifier = poscar_modify(p, verbose=args.verbose)
+  
+  # first dealing with the maths
+  if args.multiply:
+    Modifier.pos_multiply(factor, cartesian=args.cart)
+      
+  if args.sum:
+    Modifier.pos_sum(factor, cartesian=args.cart)
+
+
+  if args.remove:
+    Modifier.remove(args.remove, human=args.human)
+
+  if args.add:
+    # parsing the string: 'C 1.2 4 -5.0'
+    # args.add = args.add.split()
+    element = args.add[0]
+    position = args.add[1:]
+    if len(position) != 3:
+      raise RuntimeError("the --add parameter has a wrong format, " +  args.add)
+    position = np.array(position, dtype=float)
+    Modifier.add(element=element, position=position, cartesian=args.cartesian)
+
+  # Now we are done with all modifications  
+
+  Modifier.write(args.output, cartesian=args.sc, xyz=args.xyz)
+  return
+
+def p_pbc_f(args):
+  print('PBC-related utilities')
+  if args.verbose:
+    print('Input:     ', args.input)
+    print('Output:    ', args.output)
+    print('shift:     ', args.shift)
+    print('xyz:       ', args.xyz)
+    print('cartesian: ', args.cart)
+    print('save_cart: ', args.sc)
+
+  p = Poscar(args.input, verbose=False)
+  p.parse()
+
+  Modifier = poscar_modify(p, verbose=args.verbose)
+    
+  if args.shift:
+    Modifier.shift(args.shift, args.cart)
+  Modifier.write(args.output, cartesian=args.sc, xyz=args.xyz)
+
+  return
+    
+def p_lattice_f(args):
+  print('Lattice stuff')
+  if args.verbose:
+    print('Input:     ', args.input)
+    print('Output:    ', args.output)
+    print('scale:     ', args.scale)
+    print('factor:    ', args.factor)
+    print('xyz:       ', args.xyz)
+    print('cartesian: ', args.cart)
+    print('save_cart: ', args.sc)
+
+  p = Poscar(args.input, verbose=False)
+  p.parse()
+
+  Modifier = poscar_modify(p, verbose=args.verbose)
+  
+  # first dealing with the factors, if any
+  if args.factor == None:
+    args.factor = 1.0
+  if args.scale == None:
+    scale = np.array([1.0, 1.0, 1.0])
+  
+  factor = factor*scale
+  # Now changing the lattice vectors
+  Modifier.scale_lattice(factor=factor, cartesian=args.cart)
+  # and writing
+  Modifier.write(args.output, cartesian=args.sc, xyz=args.xyz)      
+  return
+
+def p_scell_f(args):
+
+  print('Supercell creation')
+  if args.verbose:
+    print('Input:     ', args.input)
+    print('Output:    ', args.output)
+    print('b1:        ', args.b1)
+    print('b2:        ', args.b2)
+    print('b3:        ', args.b3)
+    print('xyz:       ', args.xyz)
+    print('save_cart: ', args.sc)
+
+  p = Poscar(args.input)
+  p.parse()
+  
+  supercell = poscar_supercell(p, verbose=args.verbose)
+  supercell.supercell(size=[args.b1, args.b2, args.b3])
+  supercell.write(args.output,)
+
+  supercell.write(filename=args.output, cartesian=args.sc, xyz=args.xyz)
+  return
+
+  
+
+if __name__ == "__main__":
+  parser = argparse.ArgumentParser(description='Utilities related to poscar.')
+  subparsers = parser.add_subparsers(help='sub-command')
+  
+    
+  # defining subparsers
+  p_atoms = subparsers.add_parser('atoms', help='operations related with '
+                                  'atomic positions, leaving the lattice unchanged')
+  p_atoms.set_defaults(func=p_atoms_f)
+  
+  p_pbc = subparsers.add_parser('pbc', help='boundaries-related operations. It always'
+                                ' applies PCBs at the atomic positions. ')
+  p_pbc.set_defaults(func=p_pbc_f)
+  
+  p_lattice = subparsers.add_parser('lattice', help='lattice-related operations. '
+                                    'The positions may/may not be modified with the '
+                                    'lattice')
+  p_lattice.set_defaults(func=p_lattice_f)
+  
+  p_scell = subparsers.add_parser('supercell', help='Creates a supercell')
+  p_scell.set_defaults(func=p_scell_f)
+  
+  # filing the subparser options
+  p_atoms.add_argument('input', type=str, help='Input POSCAR file ')
+  p_atoms.add_argument('output', type=str, help='Output POSCAR file')
+  p_atoms.add_argument('-s', '--sum', type=float, nargs=3, help='Sum (adds) [X Y Z] to each '
+                       'position. This is in Direct coordinates by default, see `--cart`.' 
+                       ' The PBC are NOT taken in to account, i.e. [0.5 0.5 0.5] + '
+                       '[0.0 0.0 0.7] = [0.5 0.5 1.2]. Multiplication precedes addition.'
+                       ' Nevertheless it is recommended to separate the operation in '
+                       'different calls')
+
+  p_atoms.add_argument('-m', '--multiply', type=float, nargs=3, help='Multiplies [X Y Z]'
+                       ' element-wise each postion. This is in Direct coords by default,'
+                       ' see `--cart`. PBC are not taken into account, i.e. [0.1 0.2 0.7]'
+                       ' * [0.5 1.0 2.0] = [0.05 0.2 1.4]. Multiplication precedes addition.'
+                       ' Nevertheless it is recommended to separate the operation in '
+                       'different calls')
+  
+  p_atoms.add_argument('--xyz', action='store_true', help='writes an xyz file')
+  
+  p_atoms.add_argument('-c', '--cart', action='store_true', help='set to perform the '
+                       'operations in the cartesian positions. By default Direct coords'
+                       ' are used' )
+  p_atoms.add_argument('--sc', action='store_true', help='set to save the file in '
+                          'Cartesian. By default Direct coords are used, even if the '
+                       'operations are  done in cartesians')
+  p_atoms.add_argument('-v', '--verbose', action='store_true')
+  p_atoms.add_argument('--remove', '-r', nargs='+', type=int, help='removes the atoms'
+                       ' with the given indexes. They indexes start from 0, unless you'
+                       ' set `--human`')
+  p_atoms.add_argument('--human', '-u', action='store_true', help='All the indexes '
+                       'from the input are put in `human` format, starting from 1 (i.e'
+                       '.: the first atom is 1, and so on)')
+  p_atoms.add_argument('--add', '-a', nargs=4, type=str, help='`--add C 0.5 0.3 0.1`,'
+                       ' adds an C atom at the given direct coordinate. The coordinates'
+                       ' can be direct (default) or Cartesian, see `--cart`')
+  # p_atoms.add_argument('--duplicates', action='store_true', help="removes the duplicate "
+  #                      "atoms, i.e. Those that are almost in the same position. Mind the"
+  #                      "program will keep only the first occurrence. See `duplicate_tol`")
+  # p_atoms.add_argument('--duplicate_tol', type=float, default=0.1, help='Tolerance '
+  #                      'critetion for setting an atom as `duplicate`')
+  
+  #########
+  
+  p_pbc.add_argument('input', type=str, help='input file')
+  p_pbc.add_argument('output', type=str, help='output file')
+  # p_pbc.add_argument('-p', '--pbc', action='store_true', help='it actually imposes'
+  #                    ' PBCs, by moving all the atoms into the [0, 1) interval. ')
+  p_pbc.add_argument('-s', '--shift', type=float, nargs=3, help='it adds [X, Y ,Z] '
+                     'to each coordinate, and then applies PBCs. see `--cart`, `--sc`')
+  p_pbc.add_argument('--cart', action='store_true', help='The shift is given and made'
+                     ' in Cartesian coords. ')
+  p_pbc.add_argument('--sc', action='store_true', help='sets the output POSCAR file in'
+                     ' cartesian coords. The default is direct')
+  p_pbc.add_argument('--xyz', action='store_true', help='also saves a XYZ file')
+  p_pbc.add_argument('-v', '--verbose', action='store_true')
+    
+  #########
+  
+  p_lattice.add_argument('input', type=str, help='Input POSCAR file ')
+  p_lattice.add_argument('output', type=str, help='Output POSCAR file')
+  p_lattice.add_argument('-s', '--scale', type=float, nargs=3, help='multiplies each '
+                         'lattice vector by the [X Y Z] factor. The positions may/may '
+                         'not be affeted. See `cart`')
+  p_lattice.add_argument('-f', '--factor', type=float, default=1.0,
+                         help='multiplies all the lattice'
+                         ' by the given factor. The position may/may not be affected, '
+                         'see `--cart`')
+  p_lattice.add_argument('-c', '--cart', action='store_true', help='The positions are'
+                           ' keep fixed in cartesian coordinates, their value in direct'
+                         ' coords change with the lattice. The default is to keep the'
+                         ' positions unaltered in direct coords.')
+  p_lattice.add_argument('--sc', action='store_true', help='set it to write the output'
+                         ' file in cartesian coords. Te default is in direct coords.')
+  p_lattice.add_argument('-v', '--verbose', action='store_true')
+  p_lattice.add_argument('--xyz', action='store_true', help='also a XYZ file is writtem')
+  # p.lattice.add_argument('-r', '--rotate')
+  
+  ##########
+  
+  p_scell.add_argument('input', type=str, help='input file')
+  p_scell.add_argument('output', type=str, help='output file')
+  
+  p_scell.add_argument("--b1", nargs=3, type=int, default=[1,0,0],
+                       help="first supercell vector, eg '1 2 -1'" )
+  p_scell.add_argument("--b2", nargs=3, type=int, default=[0,1,0],
+                       help="first supercell vector, eg '1 1 1'" )
+  p_scell.add_argument("--b3", nargs=3, type=int, default=[0,0,1],
+                       help="first supercell vector, eg '0 0 10'" )
+  p_scell.add_argument("--xyz", action="store_true")
+  p_scell.add_argument('--sc', action='store_true', help='set it to write the output'
+                       ' file in cartesian coords. The default is in direct coords.')
+  p_scell.add_argument('-v', '--verbose', action='store_true')
+
+  #########################################
+
+  # there is a python 3 bug. If no argument provided an exception is raised
+  #try:
+  args = parser.parse_args()
+
+  args.func(args)
+  #except AttributeError:
+  #  parser.error("too few arguments")
diff --git a/pyprocar/pyposcar/rdf.py b/pyprocar/pyposcar/rdf.py
new file mode 100755
index 00000000..235002e8
--- /dev/null
+++ b/pyprocar/pyposcar/rdf.py
@@ -0,0 +1,191 @@
+from code import interact
+import numpy as np
+from poscar import Poscar
+import latticeUtils
+try:
+  from sklearn.neighbors.kde import KernelDensity
+except:
+  from sklearn.neighbors import KernelDensity
+import scipy
+import scipy.signal
+import matplotlib.pyplot as plt
+import generalUtils
+import db
+
+
+class RDF:
+    #Add distances as optional argument
+    def __init__(self, poscar = None):
+        """ This Class mainly obtains cutoff values for first neighbor criteria by utilizing KernelDensity
+        It can obtain a single cutoff value for the whole distance matrix 
+        Or a cutoff value for each type of interaction (Ex = C-H) 
+
+        """
+        self.distances = latticeUtils.distances(poscar.cpos, lattice=poscar.lat, allow_self=False)
+        self.species = poscar.numberSp
+        self.species_name = poscar.typeSp
+        self.spDict = dict(zip(self.species_name,self.species))
+        # x-axis space for KDE calculations
+        self.KDE_space = np.arange(0,6, 0.05)
+
+        #Container for a single minimum value for all distances
+        self.neighbor_threshold = None
+        #Array of first minimums for each Interaction
+        self.neighbor_thresholdSp = None
+        #Matrix of first minimums formated to work with latticeUtils
+        self.CutoffMatrix = None
+        #All Species Interactions (C-H = H-C)
+        self.interactions = None
+        self.KDE_CurveSp()
+        self.FindNeighborsSp()
+
+
+    def _addUp(self,Species):
+        """" Used to make some calculations easier
+        returns the sum of all atom Species up until the species especified"""
+
+        index = self.species_name.index(Species)
+        add_up = np.sum(self.species[0:index])
+
+        return add_up
+            
+    def _findBlock(self, Interaction_X, Interaction_Y):
+        """Finds the sub-matrix of interactions X-Y from the distances matrix """
+
+        Starting_index_X = self._addUp(Species = Interaction_X)
+        Starting_index_Y = self._addUp(Species = Interaction_Y)
+
+        Block = self.distances[Starting_index_X : Starting_index_X + self.spDict[Interaction_X], Starting_index_Y:Starting_index_Y + self.spDict[Interaction_Y] ]
+
+        return Block
+
+
+    
+        
+    def KDE_CurveSp(self):
+        """ Finding the kde curves for each interaction posible """
+        kde_curveSp = []
+        interactions = []
+        for I in self.spDict.keys():
+            for J in self.spDict.keys():
+                
+                #Here we skip the bottom half of the diagonal blocks in the distance matrix given that it is symmetric
+                if(list(self.spDict.keys()).index(I) > list(self.spDict.keys()).index(J)):
+                    continue
+
+                aux_block = self._findBlock(Interaction_X = I,Interaction_Y = J)
+                
+                #We need to extract the zeros from the diagonals of the same Species interactions
+                if(I == J):
+                    aux_block = np.extract(1-np.eye(len(aux_block)), aux_block)
+                else:
+                    aux_block = aux_block.flatten()
+                #Here we make sure that the sub_matrix taken contains physical distances
+                #For example interactions C-C when there is only one C atom
+                if (all(x == 0 for x in aux_block)):
+                    continue
+                aux_block = aux_block.reshape(-1,1)
+                
+                bandwidth = db.DB()
+                #Here we get an adaptable Bandwidth that checks if there is H present
+                #If there is bandwidth is 0.05, if there isn't, bandwidth is 0.1
+                #This could be expanded into a whole database for each atom interaction or individualy
+                bandwidth = bandwidth.get_bandwidth(I,J)
+                kde_curve_fit = KernelDensity(kernel = 'gaussian', bandwidth=bandwidth).fit(aux_block)
+                kde_curveSp.append(kde_curve_fit.score_samples(self.KDE_space.reshape(-1,1)))
+                interactions.append([I,J])
+
+        kde_curveSp = np.array(kde_curveSp)
+        interactions = np.array(interactions)
+
+        self.interactions = interactions
+
+        return kde_curveSp
+
+    def KDE_Curve(self):
+
+        """This calculates a single kde curve for the whole distance matrix"""
+        
+        non_zero_distances = np.extract(1-np.eye(len(self.distances)), self.distances)
+        non_zero_distances = non_zero_distances.reshape(-1,1)
+
+        kde_curve_fit = KernelDensity(kernel = 'gaussian', bandwidth=0.25).fit(non_zero_distances)
+
+        kde_curve = kde_curve_fit.score_samples(self.KDE_space.reshape(-1,1))
+
+        return kde_curve
+
+    def FindNeighbors(self):
+
+        """This method's main purpose is to find the single cutoff value for the whole distance matrix
+         
+        """
+
+        kde = self.KDE_Curve()
+
+        min_index = scipy.signal.argrelextrema(kde,np.less)[0]
+        min = self.KDE_space[min_index][0]
+
+        self.neighbor_threshold = min
+
+        return min
+
+
+
+
+
+
+    def FindNeighborsSp(self):
+
+        """This method's main objective is to find the cutoff values for each Species
+        As well as formating it as a matrix where the minimum [i,j] corresponds to the atom [i,j]
+        in the distance matrix
+        """
+        mins = []
+        KDE = self.KDE_CurveSp()
+        neighborsSp = []
+        temp_min_interaction = np.zeros(self.distances.shape)
+        for kde, interaction in zip(KDE,self.interactions):
+            
+            #Here we check that the amount of data from the interactions is enough to use Kernel Density
+            #If not, we use the only distances available from the interaction
+            data = self._findBlock(Interaction_X = interaction[0],Interaction_Y= interaction[1])
+            if ((data.shape == (2,2))):
+                min = data[0][1]*1.01
+            elif((data.shape == (1,1))):
+                min = data[0][0]*1.01
+            else:
+                #Here we make sure that there isn't any flat points that could
+                #hide local minimums
+                KDE_space, kde_aux = generalUtils.remove_flat_points(self.KDE_space , kde)
+                min_index = scipy.signal.argrelextrema(kde_aux,np.less)[0]
+                
+                min = KDE_space[min_index][0]
+            
+            mins.append(min)
+
+            #Here we make the cutoff value matrix 
+            x_start = self._addUp(Species=interaction[0])
+            y_start = self._addUp(Species=interaction[1])
+            temp_min_interaction[x_start : x_start + self.spDict[interaction[0]], y_start : y_start + self.spDict[interaction[1]] ] = min
+            temp_min_interaction[y_start : y_start + self.spDict[interaction[1]], x_start : x_start + self.spDict[interaction[0]] ] = min
+
+        self.CutoffMatrix = temp_min_interaction
+        mins = np.array(mins)
+        self.neighbor_thresholdSp = mins
+         
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pyprocar/pyposcar/relax-cell-2d.py b/pyprocar/pyposcar/relax-cell-2d.py
new file mode 100755
index 00000000..a3f01694
--- /dev/null
+++ b/pyprocar/pyposcar/relax-cell-2d.py
@@ -0,0 +1,363 @@
+#!/usr/bin/env python3
+
+import poscarUtils
+import poscar
+import os
+import argparse
+import re
+import numpy as np
+import sys
+
+def get_data(old=12, max_iterations=100):
+  """Getting the information from two sources:
+  1) The 'OPT_SUM' file, if it exists it has the energies and lattice
+  data of previous iterations
+
+  2) The 'OUTCAR' file, it is useful to guess a first step if there
+  is no enough data to fit a parabola
+  
+  The OPT_SUM file will be updated (and created if needed).
+  This file contains:
+
+  lat_a lat_b angle_ab energy stress_a stress_b stress_theta
+  
+  args:
+  `old`: discard history data older than this iteration
+  `max_iterations`: if reached the calculation stops
+  """
+
+  if not os.path.isfile('OUTCAR'):
+    raise RuntimeError('File OUTCAR does not exist')
+  outcar = open('OUTCAR', 'r').read()
+  energy = re.findall(r'energy without entropy =\s*([-.\d]+)', outcar)
+  energy = float(energy[-1])
+  print('energy, ', energy)
+
+  stress = re.findall(r'Total[-.\s\d]+\s*in kB', outcar)
+  stress = stress[-1].split()
+  stress_A = float(stress[1])
+  stress_B = float(stress[2])
+  stress_theta = float(stress[4])
+  print('stress A,', stress_A)
+  print('stress B,', stress_B)
+  print('stress theta,', stress_theta)
+
+  # locating the parameters
+  vectors = re.findall(r'reciprocal lattice vectors[-.\d\s]*', outcar)
+  vectors = vectors[-1].split()
+  vec_a = np.array(vectors[3:6], dtype=float)
+  vec_b = np.array(vectors[9:12], dtype=float)
+  print('2D lattice, ', vec_a, vec_b)
+  length_a = np.linalg.norm(vec_a)
+  length_b = np.linalg.norm(vec_b)
+  print('length A, ', length_a)
+  print('length B, ', length_b)
+  angle_ab = np.arccos(np.dot(vec_a, vec_b)/length_a/length_b)
+  print('angle AB', angle_ab*180/np.pi, '(deg)', ', ', angle_ab, ' (rad)')
+  
+  
+  # updating and perhaps creating a file with energies
+  line = ''
+  line += str(length_a) + ' '
+  line += str(length_b) + ' '
+  line += str(angle_ab) + ' '
+  line += str(energy) + ' '
+  line += str(stress_A) + ' '
+  line += str(stress_B) + ' '
+  line += str(stress_theta) + '\n'
+  
+  
+  print('New line to OPT_SUM\n',line)
+  f_histo = open('OPT_SUM', 'a')
+  f_histo.write(line)
+  f_histo.close()
+
+  # reading the full history
+  history = open('OPT_SUM', 'r').readlines()
+  print('number of history points', len(history))
+  if len(history) > max_iterations:
+    continue_loop(False)
+    raise RuntimeError('Maximum number of iteration reached')
+  if len(history) > old:
+    history = history[-old:]
+    print('Deleting old values from history')
+  history = list(set(history))
+  history = [x.split() for x in history]
+  history = np.array(history, dtype=float)
+  print('History (excluding duplicate points, unsorted)')
+  print(history)
+
+  # passing the relevant info:
+  return history
+
+def make_prediction_a(history, maxStep=0.01):
+  raise NotImplementedError
+
+def make_prediction_b(history, maxStep=0.01):
+  raise NotImplementedError
+
+def make_prediction_a_and_b(history, maxStep=0.01):
+  raise NotImplementedError
+
+def make_prediction_theta(history, maxStep=0.01):
+  raise NotImplementedError
+
+
+
+def make_prediction_ab(history, tolerance=0.1, maxStep=0.01):
+  """`history` is an array with the form:
+  [[lat_a lat_b angle_ab energy stress_a stress_b stress_theta],
+   [...],
+   [...]]
+  
+  maxStep: relative maximum change. Its default, 0.01 is 1%
+
+  tolerance: maximum value (absolute) of stress to consider the
+  minimization achieved. In eV/A
+
+  return value:
+  True: if new step was predicted
+  False: if convergence has been achieved
+
+  """
+  print('\n\nStarting prediction:\n')
+
+  # filtering only relevant data from history. The stress is the
+  # average value.
+  stress = (history[:,4] + history[:,5])/2
+  param_a = history[:,0]
+  param_b = history[:,1]
+  energy = history[:,3]
+
+  # looking if the convergence has been achieved
+  if np.min(np.abs(stress)) <= tolerance:
+    print('Convergence achieved!')
+    return False
+
+  # with one data points, there is nothing to interpolate. Just
+  # moving a little bit from the lowest energy point
+  if len(history) == 1:
+    e = energy[0] # just one data point
+    s = stress[0] # just one data point
+    print('Initial point, initial stress', s, 'initial parameters,', param_a, param_b)
+    if s < 0: # negative stress -> decrease the unit cell
+      new_param_a = param_a[0]*(1 - maxStep)
+      new_param_b = param_b[0]*(1 - maxStep)      
+    else:
+      new_param_a = param_a[0]*(1 + maxStep)
+      new_param_b = param_b[0]*(1 + maxStep)
+  # I will handle the cases of 2, 3 or more data points together
+  elif len(history) >= 2:
+    i_min, i_max = np.argmin(energy), np.argmax(energy)
+    # The fitting of the parabola depends on how many data points
+    if len(history) == 2:
+      print('There are two data points...')
+      # I will fit them an parabola with the next conditions:
+      # 1 passing by (param_a[0], energy[0]) 
+      # 2 passing by (param_a[1], energy[1])
+      # the ratio of the derivatives at `param_a[0], param_a[1]` is the ratio
+      # between the stress values.
+      parabola = parabola_two_points_derivative(param_a[0], energy[0], stress[0],
+                                                param_a[1], energy[1], stress[1])
+    elif len(history) == 3:
+      print("There are three data points...")
+      parabola = parabola_three_points(param_a[0], energy[0],
+                                       param_a[1], energy[1],
+                                       param_a[2], energy[2],)
+    else:
+      parabola = fit_parabola_1D_close_min(param_a, energy)
+    # y = a*x^2 + b*x + c
+    a, b, c = parabola[0], parabola[1], parabola[2]
+    # the minimum of the parabola is 
+    new_param_a = -b/2/a
+
+    min_energy = a*new_param_a**2 + b*new_param_a + c
+    print('Fitting a parabola yield (param_a_min, E_min)', new_param_a, min_energy)
+    if a<0:
+      print('\nThe parabola is inverted!\n, falling back to a simple prediction\n')
+      if stress[i_min] < 0: # negative stress -> decrease the unit cell
+        new_param_a = param_a[i_min]*(1 - maxStep)
+        new_param_b = param_b[i_min]*(1 - maxStep)      
+      else:
+        new_param_a = param_a[i_min]*(1 + maxStep)
+        new_param_b = param_b[i_min]*(1 + maxStep)
+
+
+    # if stress is negative param_a has to decrease
+    if stress[i_min] < 0:
+      # I will keep the smaller decrement (larger value) among the
+      # predicted minimum and the maxStep
+      new_param_a = max(param_a[i_min]*(1 - maxStep), new_param_a)
+    else:
+      new_param_a = min(param_a[i_min]*(1 + maxStep), new_param_a)
+    # fitting param_b from new_param_a
+    factor = new_param_a/param_a[i_min]
+    new_param_b = param_b[i_min]*factor
+
+  print('New parameter a,', new_param_a)
+  print('New parameter b,', new_param_b)
+
+  #####
+  ##### Caution, the factors should be applied on the MINIMUM values,
+  ##### not on the current POSCAR file
+  #####
+  p = poscar.Poscar('CONTCAR')
+  p.parse()
+  lat_a = np.linalg.norm(p.lat[0])
+  factor = new_param_a/lat_a
+  factor = np.array([factor, factor, 1.0])
+  print('factors to modify current POSCAR:', factor )
+  new_p = poscarUtils.poscar_modify(p)
+  new_p.scale_lattice(factor, cartesian=False)
+  new_p.write('POSCAR-NEW')
+
+  return True
+
+def parabola_two_points_derivative(x1, y1, dy1, x2, y2, dy2):
+  """It calculates the of a parabola passing by (x1, y1) and (x2, y2),
+  and with derivatives `dy1`, `dy2` 
+  """
+  A = np.array([[2*(dy1*x2-dy2*x1), dy1-dy2, 0],
+                [            x1*x1,      x1, 1],
+                [            x2*x2,      x2, 1]])
+  C = np.array([[0],
+                [y1],
+                [y2]])
+  #print('The matrix A is')
+  #print(A)
+  #print('The matrix C is')
+  #print(C)
+  X = np.dot(np.linalg.inv(A), C)
+  X.shape = (3)
+  #print('the solution is,' )
+  #print(X)
+  return X
+
+def parabola_three_points(x1, y1, x2, y2, x3, y3):
+  """It calculates the of a parabola passing by (x1, y1) , (x2, y2) and
+  (x3, y3)
+
+  """
+  A = np.array([[x1*x1, x1, 1],
+                [x2*x2, x2, 1],
+                [x3*x3, x3, 1]])
+  C = np.array([[y1],
+                [y2],
+                [y3]])
+  X = np.dot(np.linalg.inv(A), C)
+  X.shape = (3)
+  return X
+
+
+def fit_parabola_1D(x,y):
+  # 
+  import scipy.optimize
+  def parabola(x, a, b, c):
+    return a*x*x + b*x + c
+  fit_params, pcov = scipy.optimize.curve_fit(parabola, x, y)
+  #print('fitting,', fit_params)
+  return fit_params
+
+def continue_loop(value):
+  if value == True:
+    # convergence has NOT been achieved
+    open('RELAX-CONTINUE', 'a').close()
+  else:
+    try:
+      os.remove('RELAX-CONTINUE')
+    except FileNotFoundError:
+      pass
+
+    
+
+def fit_parabola_1D_close_min(x,y, max_data=6):
+  """It fits a parabola with all the data, locates the minimum, and then
+  it keeps up to `max_data` data points, discarding those farther from
+  the minimum. 
+
+  In the rare case there are points rqually far from the
+  minimum, both points are kept to re-calculate the parabola
+
+  return:
+  [A,B,C] # A*x*x + B*x + C = y
+
+  """
+  x = np.array(x) # just in case
+  params = fit_parabola_1D(x,y)
+  a, b, c = params[0], params[1], params[2]
+  x_min = -b/2/a
+  distances = np.abs((x-x_min))
+
+  if len(x) <= max_data:
+    return params
+  else:
+    d_cutoff = np.sort(distances)[max_data]
+    new_x = []
+    new_y = []
+    for i in range(len(x)):
+      if distances[i] <= d_cutoff:
+        new_x.append(x[i])
+        new_y.append(y[i])
+    params = fit_parabola_1D(x,y)
+    return params
+  
+if __name__ == '__main__':
+  parser = argparse.ArgumentParser(description='A lattice optimizer for a 2D'
+                                    ' lattice. It will look to the old data and'
+                                    ' try to fit a parabola (1D or 2D) on it')
+
+  parser.add_argument('--constrain', '-c',  help='What has to to be optimized? '
+                      'just `a`?, just `b`?, `ab` (both a,b keeping the aspect '
+                      'ratio)?, the angle `theta`?, or both `a_and_b` (varied '
+                      'independently)', choices=['a','b', 'ab', 'theta'],
+                      default='ab')
+  parser.add_argument('-tolerance', '-t', type=float, help='maximum stress allowed'
+                      ' (absolute value, in eV/A)', default=0.1)
+  parser.add_argument('-s', '--script', action='store_true', help='It creates a '
+                      'sample snippet of a script to run the relaxation. Then quit')
+  parser.add_argument('-o', '--discard_old', default=12, help='Discard data older'
+                      ' than this value, in iterations')
+  parser.add_argument('-m', '--max_iterations', default=100, help='Max number of'
+                      ' iterations, before failing')
+  args = parser.parse_args()
+
+  if args.script:
+    string = '#!/usr/bin/env bash\n\n'
+    string += 'VASPCOMMAND="mpirun -np 24 vasp_std" # e.g. mpirun -np 12 vasp_std\n'
+    string += 'RELAXCOMMAND="relax-cell-2d.py" # the actual command to run this code\n\n'
+    # I need to have a vasp_simulation to start
+    string += 'if [ ! -f OUTCAR ]; then\n'
+    string += '    echo "OUTCAR file does not exists. Running VASP"\n'
+    string += '    $VASPCOMMAND\n'
+    string += 'fi\n\n'
+    # I need at least one point to decide if iterate
+    string += '$RELAXCOMMAND\n\n'
+    # while RELAX-CONTINUE exists iterate
+    string += 'while [ -f RELAX-CONTINUE ]\n'
+    string += 'do\n'
+    string += '    rm RELAX-CONTINUE\n' # just in case, I don't want to iterate forever
+    string += '    cp POSCAR-NEW POSCAR\n'
+    string += '    $VASPCOMMAND\n'
+    string += '    $RELAXCOMMAND\n'
+    string += 'done\n'
+    string += 'cp CONTCAR POSCAR'
+    f = open('sample-script.sh', 'w')
+    f.write(string)
+    f.close()
+    sys.exit()
+  
+  history = get_data(old=args.discard_old, max_iterations=args.max_iterations)
+  if args.constrain == 'a':
+    prediction = make_prediction_a(history, args.tolerance)
+  if args.constrain == 'b':
+    prediction = make_prediction_b(history, args.tolerance)
+  if args.constrain == 'ab':
+    prediction = make_prediction_ab(history, args.tolerance)
+  if args.constrain == 'a_and_b':
+    prediction = make_prediction_a_and_b(history, args.tolerance)
+  if args.constrain == 'theta':
+    prediction = make_prediction_theta(history, args.tolerance)
+
+  continue_loop(prediction)
+  
+
diff --git a/pyprocar/pyposcar/setup.py b/pyprocar/pyposcar/setup.py
new file mode 100644
index 00000000..07071eef
--- /dev/null
+++ b/pyprocar/pyposcar/setup.py
@@ -0,0 +1,3 @@
+from setuptools import setup, find_packages
+
+setup(name='pyposcar', version='1.0', packages=find_packages())
diff --git a/requirements_docs.txt b/requirements_docs.txt
index 09d6d083..7c22eef5 100644
--- a/requirements_docs.txt
+++ b/requirements_docs.txt
@@ -30,7 +30,7 @@ matminer==0.7.4
 matplotlib==3.6.2
 monty==2021.8.17
 mordred==1.2.0
-mpmath==1.2.1
+mpmath==1.3.0
 networkx==3.0
 numpy==1.24.0
 numpydoc==1.5.0
@@ -53,7 +53,7 @@ pytz==2022.7
 pyvista==0.37.0
 pyvistaqt==0.2.0
 PyWavelets==1.4.1
-requests==2.28.1
+requests==2.31.0
 ruamel.yaml==0.17.16
 scikit-image==0.19.3
 scipy==1.10.0


Test patch:
diff --git a/pyprocar/pyposcar/test.py b/pyprocar/pyposcar/test.py
new file mode 100755
index 00000000..b20d0430
--- /dev/null
+++ b/pyprocar/pyposcar/test.py
@@ -0,0 +1,14 @@
+#!/usr/bin/env python3
+
+import plotbands
+import defects
+import poscar
+import outcarParser
+#plotbands.plot(orbitals = ["s","p"])
+
+pos = outcarParser.outcarParser("OUTCAR")
+
+
+
+
+
diff --git a/tests/pyposcar/ERRORS b/tests/pyposcar/ERRORS
new file mode 100644
index 00000000..e610a6b3
--- /dev/null
+++ b/tests/pyposcar/ERRORS
@@ -0,0 +1,11 @@
+
+Errors in POSCAR-7-9-B:
+likely the lattice vector shift has to be reversed
+
+Errors:
+17 {5}
+adding H at 17 [ 0.   15.    1.42] [38.0367 15.      0.71  ] [ 1.5197 15.      1.392 ]
+
+31 {46}
+adding H at 31 [ 0.   15.    2.84] [38.0367 15.      3.55  ] [ 1.5197 15.      2.868 ]
+Done
diff --git a/tests/pyposcar/POSCAR b/tests/pyposcar/POSCAR
new file mode 100644
index 00000000..f919e56c
--- /dev/null
+++ b/tests/pyposcar/POSCAR
@@ -0,0 +1,203 @@
+POSCAR file written by OVITO Basic 3.5.3
+   1.00000000000000     
+     8.7400216172000000  -15.1381615003000007    0.0000000000000000
+     8.7400216172000000   15.1381615003000007    0.0000000000000000
+     0.0000000000000000    0.0000000000000000   16.0000000000000000
+   B    N    C 
+    48    48     1
+Direct
+  0.0463717997729276  0.0944224843942152  0.2000000000000028
+  0.0458474746327795  0.2372094516029861  0.2000000000000028
+  0.0463717997732687  0.3805207439442597  0.2000000000000028
+  0.0480268734143507  0.5239235904915986  0.2000000000000028
+  0.0493524899422866  0.6673639730743304  0.2000000000000028
+  0.0493524899436650  0.8105599454418453  0.2000000000000028
+  0.0480268734136615  0.9526747114955896  0.2000000000000028
+  0.1905142169649068  0.0958837532245767  0.2000000000000028
+  0.1883936945303617  0.2369862846006541  0.2000000000000028
+  0.1883936945317473  0.3799788384999374  0.2000000000000028
+  0.1905142169642176  0.5232018923095296  0.2000000000000028
+  0.1917805584311623  0.6667219362097114  0.2000000000000028
+  0.1920786283008766  0.8103250284352015  0.2000000000000028
+  0.1917805584315104  0.9536300507989850  0.2000000000000028
+  0.3344205295026867  0.0975744527918252  0.2000000000000028
+  0.3331671487939332  0.2399252565830352  0.2000000000000028
+  0.3291926059680534  0.3788820172669745  0.2000000000000028
+  0.3331671487942742  0.5218133207847941  0.2000000000000028
+  0.3344205295066800  0.6654175052836990  0.2000000000000028
+  0.3346046512685348  0.8094997433670201  0.2000000000000028
+  0.3346046512674974  0.9536763364747074  0.2000000000000028
+  0.4768117077653500  0.0983198446972153  0.2000000000000028
+  0.4767646517527027  0.2450119112587998  0.2000000000000028
+  0.4748706067650872  0.3938743579525195  0.2000000000000028
+  0.4748706067640569  0.5095676773821083  0.2000000000000028
+  0.4767646517577333  0.6603241690714441  0.2000000000000028
+  0.4768117077650018  0.8070632916380305  0.2000000000000028
+  0.4767932289230359  0.9526823287504484  0.2000000000000028
+  0.6186380938966636  0.0959609024503720  0.2000000000000028
+  0.6186467244081584  0.2406677686407903  0.2000000000000028
+  0.6182219028961029  0.3847396748764638  0.2000000000000028
+  0.6182219028997480  0.6620536565928248  0.2000000000000028
+  0.6186467244088547  0.8065503843419322  0.2000000000000028
+  0.6186380939010050  0.9512486200198325  0.2000000000000028
+  0.7607694538352519  0.0946704412029149  0.2000000000000028
+  0.7608599691643363  0.2384591171692563  0.2000000000000028
+  0.7612388914152604  0.3819495720986126  0.2000000000000028
+  0.7645021900539604  0.5260352343539836  0.2000000000000028
+  0.7645021900586499  0.6670383842778520  0.2000000000000028
+  0.7612388914145711  0.8078607478868847  0.2000000000000028
+  0.7608599691697080  0.9509722805732963  0.2000000000000028
+  0.9033278011225434  0.0942876015126544  0.2000000000000028
+  0.9033278011272259  0.2376116281841121  0.2000000000000028
+  0.9039490297119528  0.3810487783043541  0.2000000000000028
+  0.9057028617228084  0.5245075339990066  0.2000000000000028
+  0.9073548404441922  0.6679631345105150  0.2000000000000028
+  0.9057028617231495  0.8097667562987212  0.2000000000000028
+  0.9039490297159460  0.9514716799814877  0.2000000000000028
+  0.0950490721386217  0.0477396876889102  0.2000000000000028
+  0.0933155161358172  0.1894164844871895  0.2000000000000028
+  0.0933155161347798  0.3324704602174791  0.2000000000000028
+  0.0950490721436523  0.4758808130265564  0.2000000000000028
+  0.0964156272155776  0.6192989789810355  0.2000000000000028
+  0.0967997138343222  0.7626855712057505  0.2000000000000028
+  0.0964156272159187  0.9056880768040827  0.2000000000000028
+  0.2389878453241963  0.0489979947930195  0.2000000000000028
+  0.2375187555243912  0.1909653395470627  0.2000000000000028
+  0.2348485676078695  0.3317099980907088  0.2000000000000028
+  0.2375187555280434  0.4751248445498177  0.2000000000000028
+  0.2389878453248855  0.6185612791050517  0.2000000000000028
+  0.2393635325173662  0.7621563950706403  0.2000000000000028
+  0.2393635325187518  0.9057785660209561  0.2000000000000028
+  0.3817074418715833  0.0494535877773217  0.2000000000000028
+  0.3816263401217626  0.1934073341095583  0.2000000000000028
+  0.3795898795044650  0.3349569358180773  0.2000000000000028
+  0.3795898795091475  0.4732043722635595  0.2000000000000028
+  0.3816263401210733  0.6167904345817519  0.2000000000000028
+  0.3817074418769622  0.7608252826717887  0.2000000000000028
+  0.3817062419475334  0.9051388352587111  0.2000000000000028
+  0.5235863292039866  0.0488468018190886  0.2000000000000028
+  0.5235687630881642  0.1948869332946614  0.2000000000000028
+  0.5233852669597070  0.3432828431628465  0.2000000000000028
+  0.5233852669600552  0.6086738523710906  0.2000000000000028
+  0.5235687630921575  0.7572532583666884  0.2000000000000028
+  0.5235863292050240  0.9033109559594834  0.2000000000000028
+  0.6656057260651664  0.0470885773188314  0.2000000000000028
+  0.6656558851184826  0.1916887504387859  0.2000000000000028
+  0.6658582505015929  0.3362703673211129  0.2000000000000028
+  0.6686107722044525  0.4806281251604076  0.2000000000000028
+  0.6686107722001111  0.6165540756172305  0.2000000000000028
+  0.6658582505066235  0.7581593117583623  0.2000000000000028
+  0.6656558851181344  0.9025385632499336  0.2000000000000028
+  0.8080904741221389  0.0464913709154970  0.2000000000000028
+  0.8080904741177974  0.1901705317761824  0.2000000000000028
+  0.8085519182185337  0.3338612996617059  0.2000000000000028
+  0.8102003416120596  0.4772035026430999  0.2000000000000028
+  0.8123263288067193  0.6204488786906452  0.2000000000000028
+  0.8102003416124077  0.7615682675458118  0.2000000000000028
+  0.8085519182192229  0.9032620471317401  0.2000000000000028
+  0.9510882677844634  0.0466522656881381  0.2000000000000028
+  0.9506557322084888  0.1896135803897039  0.2000000000000028
+  0.9510882677848116  0.3330074306695181  0.2000000000000028
+  0.9525984065978790  0.4764363212915086  0.2000000000000028
+  0.9540814678383924  0.6197786607333313  0.2000000000000028
+  0.9540814678430678  0.7628742356832774  0.2000000000000028
+  0.9525984065938857  0.9047335138802524  0.2000000000000028
+  0.6241788398966222  0.5263751342354297  0.2000000000000028
+ 
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
+  0.00000000E+00  0.00000000E+00  0.00000000E+00
diff --git a/tests/pyposcar/POSCAR-7-9-B.vasp b/tests/pyposcar/POSCAR-7-9-B.vasp
new file mode 100644
index 00000000..54e8e6cd
--- /dev/null
+++ b/tests/pyposcar/POSCAR-7-9-B.vasp
@@ -0,0 +1,128 @@
+generated by phonopy
+   1.0
+    39.2664718204934928    0.0000000000000000    0.0000000000000000
+     0.0000000000000000   30.0000000000000000    0.0000000000000000
+     0.0000000000000000    0.0000000000000000   25.56
+C H B
+  94 24 2
+Direct
+       0.09395467 0.5         0.19444444
+       0.09395467 0.5         0.36111111
+       0.03131822 0.5         0.02777778
+       0.03131822 0.5         0.19444444
+       0.03131822 0.5         0.36111111
+       0.96868178 0.5         0.02777778
+       0.96868178 0.5         0.19444444
+       0.96868178 0.5         0.36111111
+       0.90604533 0.5         0.02777778
+       0.90604533 0.5         0.19444444
+       0.90604533 0.5         0.36111111
+       0.12527289 0.5         0.05555556
+       0.12527289 0.5         0.22222222
+       0.12527289 0.5         0.38888889
+       0.06263644 0.5         0.05555556
+       0.06263644 0.5         0.22222222
+       0.06263644 0.5         0.38888889
+       0.         0.5         0.05555556
+       0.         0.5         0.22222222
+       0.         0.5         0.38888889
+       0.93736356 0.5         0.05555556
+       0.93736356 0.5         0.22222222
+       0.93736356 0.5         0.38888889
+       0.87472711 0.5         0.05555556
+       0.87472711 0.5         0.22222222
+       0.87472711 0.5         0.38888889
+       0.12527289 0.5         0.11111111
+       0.12527289 0.5         0.27777778
+       0.12527289 0.5         0.44444444
+       0.06263644 0.5         0.27777778
+       0.06263644 0.5         0.44444444
+       0.         0.5         0.11111111
+       0.         0.5         0.27777778
+       0.         0.5         0.44444444
+       0.93736356 0.5         0.11111111
+       0.93736356 0.5         0.27777778
+       0.93736356 0.5         0.44444444
+       0.87472711 0.5         0.11111111
+       0.87472711 0.5         0.27777778
+       0.87472711 0.5         0.44444444
+       0.09395467 0.5         0.13888889
+       0.09395467 0.5         0.30555556
+       0.09395467 0.5         0.47222222
+       0.03131822 0.5         0.13888889
+       0.03131822 0.5         0.30555556
+       0.03131822 0.5         0.47222222
+       0.96868178 0.5         0.13888889
+       0.96868178 0.5         0.30555556
+       0.96868178 0.5         0.47222222
+       0.90604533 0.5         0.13888889
+       0.90604533 0.5         0.30555556
+       0.90604533 0.5         0.47222222
+       0.06263644 0.5        0.61111111
+       0.06263644 0.5        0.77777778
+       0.06263644 0.5        0.94444444
+       0.         0.5        0.61111111
+       0.         0.5        0.77777778
+       0.         0.5        0.94444444
+       0.93736356 0.5        0.61111111
+       0.93736356 0.5        0.77777778
+       0.93736356 0.5        0.94444444
+       0.09395467 0.5        0.63888889
+       0.09395467 0.5        0.80555556
+       0.09395467 0.5        0.97222222
+       0.03131822 0.5        0.63888889
+       0.03131822 0.5        0.80555556
+       0.03131822 0.5        0.97222222
+       0.96868178 0.5        0.63888889
+       0.96868178 0.5        0.80555556
+       0.96868178 0.5        0.97222222
+       0.90604533 0.5        0.63888889
+       0.90604533 0.5        0.80555556
+       0.90604533 0.5        0.97222222
+       0.09395467 0.5        0.52777778
+       0.09395467 0.5        0.69444444
+       0.09395467 0.5        0.86111111
+       0.03131822 0.5        0.52777778
+       0.03131822 0.5        0.69444444
+       0.03131822 0.5        0.86111111
+       0.96868178 0.5        0.52777778
+       0.96868178 0.5        0.69444444
+       0.96868178 0.5        0.86111111
+       0.90604533 0.5        0.52777778
+       0.90604533 0.5        0.69444444
+       0.90604533 0.5        0.86111111
+       0.06263644 0.5        0.55555556
+       0.06263644 0.5        0.72222222
+       0.06263644 0.5        0.88888889
+       0.         0.5        0.55555556
+       0.         0.5        0.72222222
+       0.         0.5        0.88888889
+       0.93736356 0.5        0.55555556
+       0.93736356 0.5        0.72222222
+       0.93736356 0.5        0.88888889
+       0.85068707 0.5         0.03423318
+       0.85068707 0.5         0.20089984
+       0.85068707 0.5         0.36756651
+       0.14931293 0.5         0.03423318
+       0.14931293 0.5         0.20089984
+       0.14931293 0.5         0.36756651
+       0.85068707 0.5         0.13243349
+       0.85068707 0.5         0.29910016
+       0.85068707 0.5         0.46576682
+       0.14931293 0.5         0.13243349
+       0.14931293 0.5         0.29910016
+       0.14931293 0.5         0.46576682
+       0.88200529 0.5        0.61756651
+       0.88200529 0.5        0.78423318
+       0.88200529 0.5        0.95089984
+       0.11799471 0.5        0.61756651
+       0.11799471 0.5        0.78423318
+       0.11799471 0.5        0.95089984
+       0.88200529 0.5        0.54910016
+       0.88200529 0.5        0.71576682
+       0.88200529 0.5        0.88243349
+       0.11799471 0.5        0.54910016
+       0.11799471 0.5        0.71576682
+       0.11799471 0.5        0.88243349
+       0.09395467 0.5         0.02777778
+       0.06263644 0.5         0.11111111
diff --git a/tests/pyposcar/POSCAR-7-9.vasp b/tests/pyposcar/POSCAR-7-9.vasp
new file mode 100644
index 00000000..b82d9b76
--- /dev/null
+++ b/tests/pyposcar/POSCAR-7-9.vasp
@@ -0,0 +1,128 @@
+generated by phonopy
+   1.0
+    39.2664718204934928    0.0000000000000000    0.0000000000000000
+     0.0000000000000000   30.0000000000000000    0.0000000000000000
+     0.0000000000000000    0.0000000000000000   25.56
+C H
+  96 24
+Direct
+       0.09395467 0.5         0.02777778
+       0.09395467 0.5         0.19444444
+       0.09395467 0.5         0.36111111
+       0.03131822 0.5         0.02777778
+       0.03131822 0.5         0.19444444
+       0.03131822 0.5         0.36111111
+       0.96868178 0.5         0.02777778
+       0.96868178 0.5         0.19444444
+       0.96868178 0.5         0.36111111
+       0.90604533 0.5         0.02777778
+       0.90604533 0.5         0.19444444
+       0.90604533 0.5         0.36111111
+       0.12527289 0.5         0.05555556
+       0.12527289 0.5         0.22222222
+       0.12527289 0.5         0.38888889
+       0.06263644 0.5         0.05555556
+       0.06263644 0.5         0.22222222
+       0.06263644 0.5         0.38888889
+       0.         0.5         0.05555556
+       0.         0.5         0.22222222
+       0.         0.5         0.38888889
+       0.93736356 0.5         0.05555556
+       0.93736356 0.5         0.22222222
+       0.93736356 0.5         0.38888889
+       0.87472711 0.5         0.05555556
+       0.87472711 0.5         0.22222222
+       0.87472711 0.5         0.38888889
+       0.12527289 0.5         0.11111111
+       0.12527289 0.5         0.27777778
+       0.12527289 0.5         0.44444444
+       0.06263644 0.5         0.11111111
+       0.06263644 0.5         0.27777778
+       0.06263644 0.5         0.44444444
+       0.         0.5         0.11111111
+       0.         0.5         0.27777778
+       0.         0.5         0.44444444
+       0.93736356 0.5         0.11111111
+       0.93736356 0.5         0.27777778
+       0.93736356 0.5         0.44444444
+       0.87472711 0.5         0.11111111
+       0.87472711 0.5         0.27777778
+       0.87472711 0.5         0.44444444
+       0.09395467 0.5         0.13888889
+       0.09395467 0.5         0.30555556
+       0.09395467 0.5         0.47222222
+       0.03131822 0.5         0.13888889
+       0.03131822 0.5         0.30555556
+       0.03131822 0.5         0.47222222
+       0.96868178 0.5         0.13888889
+       0.96868178 0.5         0.30555556
+       0.96868178 0.5         0.47222222
+       0.90604533 0.5         0.13888889
+       0.90604533 0.5         0.30555556
+       0.90604533 0.5         0.47222222
+       0.06263644 0.5        0.61111111
+       0.06263644 0.5        0.77777778
+       0.06263644 0.5        0.94444444
+       0.         0.5        0.61111111
+       0.         0.5        0.77777778
+       0.         0.5        0.94444444
+       0.93736356 0.5        0.61111111
+       0.93736356 0.5        0.77777778
+       0.93736356 0.5        0.94444444
+       0.09395467 0.5        0.63888889
+       0.09395467 0.5        0.80555556
+       0.09395467 0.5        0.97222222
+       0.03131822 0.5        0.63888889
+       0.03131822 0.5        0.80555556
+       0.03131822 0.5        0.97222222
+       0.96868178 0.5        0.63888889
+       0.96868178 0.5        0.80555556
+       0.96868178 0.5        0.97222222
+       0.90604533 0.5        0.63888889
+       0.90604533 0.5        0.80555556
+       0.90604533 0.5        0.97222222
+       0.09395467 0.5        0.52777778
+       0.09395467 0.5        0.69444444
+       0.09395467 0.5        0.86111111
+       0.03131822 0.5        0.52777778
+       0.03131822 0.5        0.69444444
+       0.03131822 0.5        0.86111111
+       0.96868178 0.5        0.52777778
+       0.96868178 0.5        0.69444444
+       0.96868178 0.5        0.86111111
+       0.90604533 0.5        0.52777778
+       0.90604533 0.5        0.69444444
+       0.90604533 0.5        0.86111111
+       0.06263644 0.5        0.55555556
+       0.06263644 0.5        0.72222222
+       0.06263644 0.5        0.88888889
+       0.         0.5        0.55555556
+       0.         0.5        0.72222222
+       0.         0.5        0.88888889
+       0.93736356 0.5        0.55555556
+       0.93736356 0.5        0.72222222
+       0.93736356 0.5        0.88888889
+       0.85068707 0.5         0.03423318
+       0.85068707 0.5         0.20089984
+       0.85068707 0.5         0.36756651
+       0.14931293 0.5         0.03423318
+       0.14931293 0.5         0.20089984
+       0.14931293 0.5         0.36756651
+       0.85068707 0.5         0.13243349
+       0.85068707 0.5         0.29910016
+       0.85068707 0.5         0.46576682
+       0.14931293 0.5         0.13243349
+       0.14931293 0.5         0.29910016
+       0.14931293 0.5         0.46576682
+       0.88200529 0.5        0.61756651
+       0.88200529 0.5        0.78423318
+       0.88200529 0.5        0.95089984
+       0.11799471 0.5        0.61756651
+       0.11799471 0.5        0.78423318
+       0.11799471 0.5        0.95089984
+       0.88200529 0.5        0.54910016
+       0.88200529 0.5        0.71576682
+       0.88200529 0.5        0.88243349
+       0.11799471 0.5        0.54910016
+       0.11799471 0.5        0.71576682
+       0.11799471 0.5        0.88243349
diff --git a/tests/pyposcar/POSCAR-C3Si.vasp b/tests/pyposcar/POSCAR-C3Si.vasp
new file mode 100644
index 00000000..e9063893
--- /dev/null
+++ b/tests/pyposcar/POSCAR-C3Si.vasp
@@ -0,0 +1,106 @@
+poscar.py                               
+   1.00000000000000     
+     8.7534720000000004  -15.1614582466315522    0.0000000000000000
+     8.7534720000000004   15.1614582466315522    0.0000000000000000
+     0.0000000000000000    0.0000000000000000   16.0000000000000000
+   N    B    C Si
+    47    47  3 1
+C
+ 1.250496 -0.7219742023649449 0.0
+ 2.500992 -2.887896809026595 0.0
+ 3.751488 -5.053819415688245 0.0
+ 5.001984 -7.219742022349895 0.0
+ 6.25248 -9.385664629011545 0.0
+ 7.5029759999999985 -11.551587235673194 0.0
+ 8.753472 -13.717509842334845 0.0
+ 2.5009919999999997 1.443948404296705 0.0
+ 3.751488 -0.7219742023649451 0.0
+ 5.001984 -2.8878968090265955 0.0
+ 6.252479999999999 -5.053819415688245 0.0
+ 7.502975999999999 -7.219742022349895 0.0
+ 8.753471999999999 -9.385664629011544 0.0
+ 10.003968 -11.551587235673196 0.0
+ 3.751488 3.609871010958355 0.0
+ 5.001984 1.4439484042967048 0.0
+ 6.25248 -0.7219742023649456 0.0
+ 7.502976 -2.8878968090265955 0.0
+ 8.753472 -5.053819415688245 0.0
+ 10.003967999999999 -7.2197420223498945 0.0
+ 11.254464 -9.385664629011545 0.0
+ 5.001983999999999 5.775793617620006 0.0
+ 6.25248 3.6098710109583556 0.0
+ 7.502976 1.4439484042967052 0.0
+ 10.003968 -2.8878968090265946 0.0
+ 11.254463999999999 -5.053819415688244 0.0
+ 12.50496 -7.2197420223498945 0.0
+ 6.252479999999999 7.941716224281657 0.0
+ 7.502976 5.775793617620007 0.0
+ 8.753472 3.609871010958356 0.0
+ 10.003968 1.4439484042967061 0.0
+ 12.504959999999999 -2.887896809026593 0.0
+ 13.755455999999999 -5.053819415688244 0.0
+ 7.502975999999999 10.107638830943305 0.0
+ 8.753472 7.941716224281656 0.0
+ 10.003968 5.775793617620005 0.0
+ 11.254463999999999 3.609871010958355 0.0
+ 12.50496 1.4439484042967052 0.0
+ 13.755455999999999 -0.7219742023649438 0.0
+ 15.005952 -2.8878968090265946 0.0
+ 8.753472 12.273561437604956 0.0
+ 10.003968 10.107638830943307 0.0
+ 11.254464 7.941716224281656 0.0
+ 12.50496 5.775793617620006 0.0
+ 13.755455999999999 3.609871010958356 0.0
+ 15.005951999999999 1.443948404296707 0.0
+ 16.256448 -0.7219742023649438 0.0
+ 1.250496 0.7219742023649449 0.0
+ 2.5009919999999997 -1.443948404296705 0.0
+ 3.751488 -3.609871010958355 0.0
+ 5.001983999999999 -5.775793617620006 0.0
+ 6.252479999999999 -7.941716224281657 0.0
+ 7.502975999999999 -10.107638830943305 0.0
+ 8.753472 -12.273561437604956 0.0
+ 2.500992 2.887896809026595 0.0
+ 3.751488 0.7219742023649451 0.0
+ 5.001984 -1.4439484042967048 0.0
+ 6.25248 -3.6098710109583556 0.0
+ 7.502976 -5.775793617620007 0.0
+ 8.753472 -7.941716224281656 0.0
+ 10.003968 -10.107638830943307 0.0
+ 3.751488 5.053819415688245 0.0
+ 5.001984 2.8878968090265955 0.0
+ 6.25248 0.7219742023649456 0.0
+ 7.502976 -1.4439484042967052 0.0
+ 8.753472 -3.609871010958356 0.0
+ 10.003968 -5.775793617620005 0.0
+ 11.254464 -7.941716224281656 0.0
+ 5.001984 7.219742022349895 0.0
+ 6.252479999999999 5.053819415688245 0.0
+ 7.502976 2.8878968090265955 0.0
+ 11.254463999999999 -3.609871010958355 0.0
+ 12.50496 -5.775793617620006 0.0
+ 6.25248 9.385664629011545 0.0
+ 7.502975999999999 7.219742022349895 0.0
+ 8.753472 5.053819415688245 0.0
+ 10.003968 2.8878968090265946 0.0
+ 11.254463999999999 0.7219742023649438 0.0
+ 12.50496 -1.4439484042967052 0.0
+ 13.755455999999999 -3.609871010958356 0.0
+ 7.5029759999999985 11.551587235673194 0.0
+ 8.753471999999999 9.385664629011544 0.0
+ 10.003967999999999 7.2197420223498945 0.0
+ 11.254463999999999 5.053819415688244 0.0
+ 12.504959999999999 2.887896809026593 0.0
+ 13.755455999999999 0.7219742023649438 0.0
+ 15.005951999999999 -1.443948404296707 0.0
+ 8.753472 13.717509842334845 0.0
+ 10.003968 11.551587235673196 0.0
+ 11.254464 9.385664629011545 0.0
+ 12.50496 7.2197420223498945 0.0
+ 13.755455999999999 5.053819415688244 0.0
+ 15.005952 2.8878968090265946 0.0
+ 16.256448 0.7219742023649438 0.0
+ 8.753471999999999 0.7219742023649447 0.0
+ 10.003968 -1.4439484042967061 0.0
+ 8.753471999999999 -0.7219742023649447 0.0
+ 11.254463999999999 -0.7219742023649438 0.0
diff --git a/tests/pyposcar/POSCAR-C4.vasp b/tests/pyposcar/POSCAR-C4.vasp
new file mode 100644
index 00000000..5ebccace
--- /dev/null
+++ b/tests/pyposcar/POSCAR-C4.vasp
@@ -0,0 +1,106 @@
+poscar.py                               
+   1.00000000000000     
+     8.7534720000000004  -15.1614582466315522    0.0000000000000000
+     8.7534720000000004   15.1614582466315522    0.0000000000000000
+     0.0000000000000000    0.0000000000000000   16.0000000000000000
+   N    B    C 
+    47    47  4
+C
+ 1.250496 -0.7219742023649449 0.0
+ 2.500992 -2.887896809026595 0.0
+ 3.751488 -5.053819415688245 0.0
+ 5.001984 -7.219742022349895 0.0
+ 6.25248 -9.385664629011545 0.0
+ 7.5029759999999985 -11.551587235673194 0.0
+ 8.753472 -13.717509842334845 0.0
+ 2.5009919999999997 1.443948404296705 0.0
+ 3.751488 -0.7219742023649451 0.0
+ 5.001984 -2.8878968090265955 0.0
+ 6.252479999999999 -5.053819415688245 0.0
+ 7.502975999999999 -7.219742022349895 0.0
+ 8.753471999999999 -9.385664629011544 0.0
+ 10.003968 -11.551587235673196 0.0
+ 3.751488 3.609871010958355 0.0
+ 5.001984 1.4439484042967048 0.0
+ 6.25248 -0.7219742023649456 0.0
+ 7.502976 -2.8878968090265955 0.0
+ 8.753472 -5.053819415688245 0.0
+ 10.003967999999999 -7.2197420223498945 0.0
+ 11.254464 -9.385664629011545 0.0
+ 5.001983999999999 5.775793617620006 0.0
+ 6.25248 3.6098710109583556 0.0
+ 7.502976 1.4439484042967052 0.0
+ 10.003968 -2.8878968090265946 0.0
+ 11.254463999999999 -5.053819415688244 0.0
+ 12.50496 -7.2197420223498945 0.0
+ 6.252479999999999 7.941716224281657 0.0
+ 7.502976 5.775793617620007 0.0
+ 8.753472 3.609871010958356 0.0
+ 10.003968 1.4439484042967061 0.0
+ 12.504959999999999 -2.887896809026593 0.0
+ 13.755455999999999 -5.053819415688244 0.0
+ 7.502975999999999 10.107638830943305 0.0
+ 8.753472 7.941716224281656 0.0
+ 10.003968 5.775793617620005 0.0
+ 11.254463999999999 3.609871010958355 0.0
+ 12.50496 1.4439484042967052 0.0
+ 13.755455999999999 -0.7219742023649438 0.0
+ 15.005952 -2.8878968090265946 0.0
+ 8.753472 12.273561437604956 0.0
+ 10.003968 10.107638830943307 0.0
+ 11.254464 7.941716224281656 0.0
+ 12.50496 5.775793617620006 0.0
+ 13.755455999999999 3.609871010958356 0.0
+ 15.005951999999999 1.443948404296707 0.0
+ 16.256448 -0.7219742023649438 0.0
+ 1.250496 0.7219742023649449 0.0
+ 2.5009919999999997 -1.443948404296705 0.0
+ 3.751488 -3.609871010958355 0.0
+ 5.001983999999999 -5.775793617620006 0.0
+ 6.252479999999999 -7.941716224281657 0.0
+ 7.502975999999999 -10.107638830943305 0.0
+ 8.753472 -12.273561437604956 0.0
+ 2.500992 2.887896809026595 0.0
+ 3.751488 0.7219742023649451 0.0
+ 5.001984 -1.4439484042967048 0.0
+ 6.25248 -3.6098710109583556 0.0
+ 7.502976 -5.775793617620007 0.0
+ 8.753472 -7.941716224281656 0.0
+ 10.003968 -10.107638830943307 0.0
+ 3.751488 5.053819415688245 0.0
+ 5.001984 2.8878968090265955 0.0
+ 6.25248 0.7219742023649456 0.0
+ 7.502976 -1.4439484042967052 0.0
+ 8.753472 -3.609871010958356 0.0
+ 10.003968 -5.775793617620005 0.0
+ 11.254464 -7.941716224281656 0.0
+ 5.001984 7.219742022349895 0.0
+ 6.252479999999999 5.053819415688245 0.0
+ 7.502976 2.8878968090265955 0.0
+ 11.254463999999999 -3.609871010958355 0.0
+ 12.50496 -5.775793617620006 0.0
+ 6.25248 9.385664629011545 0.0
+ 7.502975999999999 7.219742022349895 0.0
+ 8.753472 5.053819415688245 0.0
+ 10.003968 2.8878968090265946 0.0
+ 11.254463999999999 0.7219742023649438 0.0
+ 12.50496 -1.4439484042967052 0.0
+ 13.755455999999999 -3.609871010958356 0.0
+ 7.5029759999999985 11.551587235673194 0.0
+ 8.753471999999999 9.385664629011544 0.0
+ 10.003967999999999 7.2197420223498945 0.0
+ 11.254463999999999 5.053819415688244 0.0
+ 12.504959999999999 2.887896809026593 0.0
+ 13.755455999999999 0.7219742023649438 0.0
+ 15.005951999999999 -1.443948404296707 0.0
+ 8.753472 13.717509842334845 0.0
+ 10.003968 11.551587235673196 0.0
+ 11.254464 9.385664629011545 0.0
+ 12.50496 7.2197420223498945 0.0
+ 13.755455999999999 5.053819415688244 0.0
+ 15.005952 2.8878968090265946 0.0
+ 16.256448 0.7219742023649438 0.0
+ 8.753471999999999 0.7219742023649447 0.0
+ 10.003968 -1.4439484042967061 0.0
+ 8.753471999999999 -0.7219742023649447 0.0
+ 11.254463999999999 -0.7219742023649438 0.0
diff --git a/tests/pyposcar/POSCAR-C6.vasp b/tests/pyposcar/POSCAR-C6.vasp
new file mode 100644
index 00000000..7f229b1f
--- /dev/null
+++ b/tests/pyposcar/POSCAR-C6.vasp
@@ -0,0 +1,106 @@
+poscar.py                               
+   1.00000000000000     
+     8.7534720000000004  -15.1614582466315522    0.0000000000000000
+     8.7534720000000004   15.1614582466315522    0.0000000000000000
+     0.0000000000000000    0.0000000000000000   16.0000000000000000
+   N    B    C 
+    47    45  6
+C
+ 1.250496 -0.7219742023649449 0.0
+ 2.500992 -2.887896809026595 0.0
+ 3.751488 -5.053819415688245 0.0
+ 5.001984 -7.219742022349895 0.0
+ 6.25248 -9.385664629011545 0.0
+ 7.5029759999999985 -11.551587235673194 0.0
+ 8.753472 -13.717509842334845 0.0
+ 2.5009919999999997 1.443948404296705 0.0
+ 3.751488 -0.7219742023649451 0.0
+ 5.001984 -2.8878968090265955 0.0
+ 6.252479999999999 -5.053819415688245 0.0
+ 7.502975999999999 -7.219742022349895 0.0
+ 8.753471999999999 -9.385664629011544 0.0
+ 10.003968 -11.551587235673196 0.0
+ 3.751488 3.609871010958355 0.0
+ 5.001984 1.4439484042967048 0.0
+ 6.25248 -0.7219742023649456 0.0
+ 7.502976 -2.8878968090265955 0.0
+ 8.753472 -5.053819415688245 0.0
+ 10.003967999999999 -7.2197420223498945 0.0
+ 11.254464 -9.385664629011545 0.0
+ 5.001983999999999 5.775793617620006 0.0
+ 6.25248 3.6098710109583556 0.0
+ 7.502976 1.4439484042967052 0.0
+ 10.003968 -2.8878968090265946 0.0
+ 11.254463999999999 -5.053819415688244 0.0
+ 12.50496 -7.2197420223498945 0.0
+ 6.252479999999999 7.941716224281657 0.0
+ 7.502976 5.775793617620007 0.0
+ 8.753472 3.609871010958356 0.0
+ 12.504959999999999 -2.887896809026593 0.0
+ 13.755455999999999 -5.053819415688244 0.0
+ 7.502975999999999 10.107638830943305 0.0
+ 8.753472 7.941716224281656 0.0
+ 10.003968 5.775793617620005 0.0
+ 11.254463999999999 3.609871010958355 0.0
+ 12.50496 1.4439484042967052 0.0
+ 13.755455999999999 -0.7219742023649438 0.0
+ 15.005952 -2.8878968090265946 0.0
+ 8.753472 12.273561437604956 0.0
+ 10.003968 10.107638830943307 0.0
+ 11.254464 7.941716224281656 0.0
+ 12.50496 5.775793617620006 0.0
+ 13.755455999999999 3.609871010958356 0.0
+ 15.005951999999999 1.443948404296707 0.0
+ 16.256448 -0.7219742023649438 0.0
+ 1.250496 0.7219742023649449 0.0
+ 2.5009919999999997 -1.443948404296705 0.0
+ 3.751488 -3.609871010958355 0.0
+ 5.001983999999999 -5.775793617620006 0.0
+ 6.252479999999999 -7.941716224281657 0.0
+ 7.502975999999999 -10.107638830943305 0.0
+ 8.753472 -12.273561437604956 0.0
+ 2.500992 2.887896809026595 0.0
+ 3.751488 0.7219742023649451 0.0
+ 5.001984 -1.4439484042967048 0.0
+ 6.25248 -3.6098710109583556 0.0
+ 7.502976 -5.775793617620007 0.0
+ 8.753472 -7.941716224281656 0.0
+ 10.003968 -10.107638830943307 0.0
+ 3.751488 5.053819415688245 0.0
+ 5.001984 2.8878968090265955 0.0
+ 6.25248 0.7219742023649456 0.0
+ 7.502976 -1.4439484042967052 0.0
+ 8.753472 -3.609871010958356 0.0
+ 10.003968 -5.775793617620005 0.0
+ 11.254464 -7.941716224281656 0.0
+ 5.001984 7.219742022349895 0.0
+ 6.252479999999999 5.053819415688245 0.0
+ 7.502976 2.8878968090265955 0.0
+ 11.254463999999999 -3.609871010958355 0.0
+ 12.50496 -5.775793617620006 0.0
+ 6.25248 9.385664629011545 0.0
+ 7.502975999999999 7.219742022349895 0.0
+ 8.753472 5.053819415688245 0.0
+ 10.003968 2.8878968090265946 0.0
+ 12.50496 -1.4439484042967052 0.0
+ 13.755455999999999 -3.609871010958356 0.0
+ 7.5029759999999985 11.551587235673194 0.0
+ 8.753471999999999 9.385664629011544 0.0
+ 10.003967999999999 7.2197420223498945 0.0
+ 11.254463999999999 5.053819415688244 0.0
+ 12.504959999999999 2.887896809026593 0.0
+ 13.755455999999999 0.7219742023649438 0.0
+ 15.005951999999999 -1.443948404296707 0.0
+ 8.753472 13.717509842334845 0.0
+ 10.003968 11.551587235673196 0.0
+ 11.254464 9.385664629011545 0.0
+ 12.50496 7.2197420223498945 0.0
+ 13.755455999999999 5.053819415688244 0.0
+ 15.005952 2.8878968090265946 0.0
+ 16.256448 0.7219742023649438 0.0
+ 8.753471999999999 0.7219742023649447 0.0
+ 10.003968 -1.4439484042967061 0.0
+ 8.753471999999999 -0.7219742023649447 0.0
+ 11.254463999999999 -0.7219742023649438 0.0
+ 10.003968 1.4439484042967061 0.0
+ 11.254463999999999 0.7219742023649438 0.0
diff --git a/tests/pyposcar/POSCAR-C6H.vasp b/tests/pyposcar/POSCAR-C6H.vasp
new file mode 100644
index 00000000..3cf52a47
--- /dev/null
+++ b/tests/pyposcar/POSCAR-C6H.vasp
@@ -0,0 +1,107 @@
+poscar.py                               
+   1.00000000000000     
+     8.7534720000000004  -15.1614582466315522    0.0000000000000000
+     8.7534720000000004   15.1614582466315522    0.0000000000000000
+     0.0000000000000000    0.0000000000000000   16.0000000000000000
+   N    B    C H
+    47    45  6 1
+C
+ 1.250496 -0.7219742023649449 0.0
+ 2.500992 -2.887896809026595 0.0
+ 3.751488 -5.053819415688245 0.0
+ 5.001984 -7.219742022349895 0.0
+ 6.25248 -9.385664629011545 0.0
+ 7.5029759999999985 -11.551587235673194 0.0
+ 8.753472 -13.717509842334845 0.0
+ 2.5009919999999997 1.443948404296705 0.0
+ 3.751488 -0.7219742023649451 0.0
+ 5.001984 -2.8878968090265955 0.0
+ 6.252479999999999 -5.053819415688245 0.0
+ 7.502975999999999 -7.219742022349895 0.0
+ 8.753471999999999 -9.385664629011544 0.0
+ 10.003968 -11.551587235673196 0.0
+ 3.751488 3.609871010958355 0.0
+ 5.001984 1.4439484042967048 0.0
+ 6.25248 -0.7219742023649456 0.0
+ 7.502976 -2.8878968090265955 0.0
+ 8.753472 -5.053819415688245 0.0
+ 10.003967999999999 -7.2197420223498945 0.0
+ 11.254464 -9.385664629011545 0.0
+ 5.001983999999999 5.775793617620006 0.0
+ 6.25248 3.6098710109583556 0.0
+ 7.502976 1.4439484042967052 0.0
+ 10.003968 -2.8878968090265946 0.0
+ 11.254463999999999 -5.053819415688244 0.0
+ 12.50496 -7.2197420223498945 0.0
+ 6.252479999999999 7.941716224281657 0.0
+ 7.502976 5.775793617620007 0.0
+ 8.753472 3.609871010958356 0.0
+ 12.504959999999999 -2.887896809026593 0.0
+ 13.755455999999999 -5.053819415688244 0.0
+ 7.502975999999999 10.107638830943305 0.0
+ 8.753472 7.941716224281656 0.0
+ 10.003968 5.775793617620005 0.0
+ 11.254463999999999 3.609871010958355 0.0
+ 12.50496 1.4439484042967052 0.0
+ 13.755455999999999 -0.7219742023649438 0.0
+ 15.005952 -2.8878968090265946 0.0
+ 8.753472 12.273561437604956 0.0
+ 10.003968 10.107638830943307 0.0
+ 11.254464 7.941716224281656 0.0
+ 12.50496 5.775793617620006 0.0
+ 13.755455999999999 3.609871010958356 0.0
+ 15.005951999999999 1.443948404296707 0.0
+ 16.256448 -0.7219742023649438 0.0
+ 1.250496 0.7219742023649449 0.0
+ 2.5009919999999997 -1.443948404296705 0.0
+ 3.751488 -3.609871010958355 0.0
+ 5.001983999999999 -5.775793617620006 0.0
+ 6.252479999999999 -7.941716224281657 0.0
+ 7.502975999999999 -10.107638830943305 0.0
+ 8.753472 -12.273561437604956 0.0
+ 2.500992 2.887896809026595 0.0
+ 3.751488 0.7219742023649451 0.0
+ 5.001984 -1.4439484042967048 0.0
+ 6.25248 -3.6098710109583556 0.0
+ 7.502976 -5.775793617620007 0.0
+ 8.753472 -7.941716224281656 0.0
+ 10.003968 -10.107638830943307 0.0
+ 3.751488 5.053819415688245 0.0
+ 5.001984 2.8878968090265955 0.0
+ 6.25248 0.7219742023649456 0.0
+ 7.502976 -1.4439484042967052 0.0
+ 8.753472 -3.609871010958356 0.0
+ 10.003968 -5.775793617620005 0.0
+ 11.254464 -7.941716224281656 0.0
+ 5.001984 7.219742022349895 0.0
+ 6.252479999999999 5.053819415688245 0.0
+ 7.502976 2.8878968090265955 0.0
+ 11.254463999999999 -3.609871010958355 0.0
+ 12.50496 -5.775793617620006 0.0
+ 6.25248 9.385664629011545 0.0
+ 7.502975999999999 7.219742022349895 0.0
+ 8.753472 5.053819415688245 0.0
+ 10.003968 2.8878968090265946 0.0
+ 12.50496 -1.4439484042967052 0.0
+ 13.755455999999999 -3.609871010958356 0.0
+ 7.5029759999999985 11.551587235673194 0.0
+ 8.753471999999999 9.385664629011544 0.0
+ 10.003967999999999 7.2197420223498945 0.0
+ 11.254463999999999 5.053819415688244 0.0
+ 12.504959999999999 2.887896809026593 0.0
+ 13.755455999999999 0.7219742023649438 0.0
+ 15.005951999999999 -1.443948404296707 0.0
+ 8.753472 13.717509842334845 0.0
+ 10.003968 11.551587235673196 0.0
+ 11.254464 9.385664629011545 0.0
+ 12.50496 7.2197420223498945 0.0
+ 13.755455999999999 5.053819415688244 0.0
+ 15.005952 2.8878968090265946 0.0
+ 16.256448 0.7219742023649438 0.0
+ 8.753471999999999 0.7219742023649447 0.0
+ 10.003968 -1.4439484042967061 0.0
+ 8.753471999999999 -0.7219742023649447 0.0
+ 11.254463999999999 -0.7219742023649438 0.0
+ 10.003968 1.4439484042967061 0.0
+ 11.254463999999999 0.7219742023649438 0.0
+ 10.00396799999 0.3609871009658807 0.3
diff --git a/tests/pyposcar/POSCAR-SiV.vasp b/tests/pyposcar/POSCAR-SiV.vasp
new file mode 100644
index 00000000..9bc9f08b
--- /dev/null
+++ b/tests/pyposcar/POSCAR-SiV.vasp
@@ -0,0 +1,520 @@
+poscar.py                               
+   1.00000000000000     
+    14.2473    0.0000    0.0000
+     0.0000   14.2473    0.0000
+     0.0000    0.0000   14.2473
+   C    Si
+   510     1
+Direct
+  0.9922963738396930  0.1252158111620290  0.1252158111620290
+  0.1252158111620290  0.9922963738396930  0.1252158111620290
+  0.1252158111620290  0.1252158111620290  0.9922963738396930
+  0.0603132372629247  0.1850183129284844  0.1850183129284844
+  0.1850183129284844  0.0603132372629247  0.1850183129284844
+  0.1850183129284844  0.1850183129284844  0.0603132372629247
+  0.2502749849761727  0.9995095511858310  0.9995095511858310
+  0.2481093523413591  0.1234959657115127  0.1234959657115127
+  0.3748384051912907  0.9996556373905889  0.1247681679730874
+  0.3748384051912907  0.1247681679730874  0.9996556373905889
+  0.3120762287629333  0.0619121991084199  0.0619121991084199
+  0.3112059277232575  0.1865259383110214  0.1865259383110214
+  0.4371543118497385  0.0622460346437776  0.1872724920509938
+  0.4371543118497385  0.1872724920509938  0.0622460346437776
+  0.5000967740344464  0.9999622175248959  0.9999622175248959
+  0.4996938489792768  0.1249032075827188  0.1249032075827188
+  0.6248890629114143  0.0000675647629080  0.1251941545067723
+  0.6248890629114143  0.1251941545067723  0.0000675647629080
+  0.5624032259655536  0.0625377824751041  0.0625377824751041
+  0.5620769183451486  0.1874846665729564  0.1874846665729564
+  0.6870411186457659  0.0626083855507105  0.1878758943402161
+  0.6870411186457659  0.1878758943402161  0.0626083855507105
+  0.7504237712370667  0.0005878008915801  0.0005878008915801
+  0.7495298757449476  0.1252954879007717  0.1252954879007717
+  0.8731307995842599  0.9995662939375691  0.1279591148113539
+  0.8731307995842599  0.1279591148113539  0.9995662939375691
+  0.8122250150238273  0.0629904488141690  0.0629904488141690
+  0.8116014776945093  0.1879194373062560  0.1879194373062560
+  0.9345408851886461  0.0629337060624309  0.1893692004157401
+  0.9345408851886461  0.1893692004157401  0.0629337060624309
+  0.9995095511858310  0.2502749849761727  0.9995095511858310
+  0.9996556373905889  0.3748384051912907  0.1247681679730874
+  0.1234959657115127  0.2481093523413591  0.1234959657115127
+  0.1247681679730874  0.3748384051912907  0.9996556373905889
+  0.0619121991084199  0.3120762287629333  0.0619121991084199
+  0.0622460346437776  0.4371543118497385  0.1872724920509938
+  0.1865259383110214  0.3112059277232575  0.1865259383110214
+  0.1872724920509938  0.4371543118497385  0.0622460346437776
+  0.2493060901560398  0.2493060901560398  0.9992081589379467
+  0.2494199406491617  0.3742461815682532  0.1245418082903385
+  0.3742461815682532  0.2494199406491617  0.1245418082903385
+  0.3747422135454173  0.3747422135454173  0.9997603218032580
+  0.3118665838096462  0.3118665838096462  0.0619662767832310
+  0.3121044770599752  0.4369226213862163  0.1872235973796492
+  0.4369226213862163  0.3121044770599752  0.1872235973796492
+  0.4372738623353456  0.4372738623353456  0.0623785656373315
+  0.4997725022290425  0.2499871783213479  0.9998818005402867
+  0.4996010915061717  0.3748197143601502  0.1249038502795159
+  0.6245557295312949  0.2501427677896189  0.1250514631228725
+  0.6245796981769658  0.3753966363493149  0.9999525141492356
+  0.5621555404765530  0.3125732310757030  0.0624436860623163
+  0.5621837316800722  0.4374222752875099  0.1874769898317012
+  0.6869971030181148  0.3127377428931908  0.1875864047350788
+  0.6871033636506851  0.4379203018230342  0.0625474858507644
+  0.7489321799796116  0.2511288594312120  0.9999316230207640
+  0.7493189410783287  0.3756265150108717  0.1250433437140188
+  0.8732732011623270  0.2515519094421919  0.1250720962463276
+  0.8746241056597839  0.3754588813542341  0.9998916144492895
+  0.8113711405687880  0.3135678200203884  0.0625683769792360
+  0.8121867911027323  0.4377189886004800  0.1875824358951448
+  0.9368052185377209  0.3126683074099432  0.1873966451552107
+  0.9373058454932277  0.4376109370885857  0.0624324352370920
+  0.9999622175248959  0.5000967740344464  0.9999622175248959
+  0.0000675647629080  0.6248890629114143  0.1251941545067723
+  0.1249032075827188  0.4996938489792768  0.1249032075827188
+  0.1251941545067723  0.6248890629114143  0.0000675647629080
+  0.0625377824751041  0.5624032259655536  0.0625377824751041
+  0.0626083855507105  0.6870411186457659  0.1878758943402161
+  0.1874846665729564  0.5620769183451486  0.1874846665729564
+  0.1878758943402161  0.6870411186457659  0.0626083855507105
+  0.2499871783213479  0.4997725022290425  0.9998818005402867
+  0.2501427677896189  0.6245557295312949  0.1250514631228725
+  0.3748197143601502  0.4996010915061717  0.1249038502795159
+  0.3753966363493149  0.6245796981769658  0.9999525141492356
+  0.3125732310757030  0.5621555404765530  0.0624436860623163
+  0.3127377428931908  0.6869971030181148  0.1875864047350788
+  0.4374222752875099  0.5621837316800722  0.1874769898317012
+  0.4379203018230342  0.6871033636506851  0.0625474858507644
+  0.4999677711967934  0.4999677711967934  0.9999503580635007
+  0.5001086293311587  0.6247595982280671  0.1250528455635589
+  0.6247595982280671  0.5001086293311587  0.1250528455635589
+  0.6252261376646544  0.6252261376646544  0.0001214343626685
+  0.5625322288032066  0.5625322288032066  0.0625496419364993
+  0.5625205353304921  0.6873530369309861  0.1876170673463307
+  0.6873530369309861  0.5625205353304921  0.1876170673463307
+  0.6877577864545827  0.6877577864545827  0.0627396781967420
+  0.7499267689242970  0.5003444595234470  0.0000563139376837
+  0.7499752636010157  0.6250484783715251  0.1252200187222030
+  0.8748803435631061  0.5000994532469534  0.1250607874084295
+  0.8752275079490062  0.6253456881502615  0.0002539653562224
+  0.8125128216786521  0.5627274977709575  0.0626181994597133
+  0.8124091120342101  0.6873321279342122  0.1878163533568156
+  0.9374392125915705  0.5624005467530466  0.1876196564368939
+  0.9377318320269126  0.6876615948087093  0.0628443626094111
+  0.0005878008915801  0.7504237712370667  0.0005878008915801
+  0.9995662939375691  0.8731307995842599  0.1279591148113539
+  0.1252954879007717  0.7495298757449476  0.1252954879007717
+  0.1279591148113539  0.8731307995842599  0.9995662939375691
+  0.0629904488141690  0.8122250150238273  0.0629904488141690
+  0.0629337060624309  0.9345408851886461  0.1893692004157401
+  0.1879194373062560  0.8116014776945093  0.1879194373062560
+  0.1893692004157401  0.9345408851886461  0.0629337060624309
+  0.2511288594312120  0.7489321799796116  0.9999316230207640
+  0.2515519094421919  0.8732732011623270  0.1250720962463276
+  0.3756265150108717  0.7493189410783287  0.1250433437140188
+  0.3754588813542341  0.8746241056597839  0.9998916144492895
+  0.3135678200203884  0.8113711405687880  0.0625683769792360
+  0.3126683074099432  0.9368052185377209  0.1873966451552107
+  0.4377189886004800  0.8121867911027323  0.1875824358951448
+  0.4376109370885857  0.9373058454932277  0.0624324352370920
+  0.5003444595234470  0.7499267689242970  0.0000563139376837
+  0.5000994532469534  0.8748803435631061  0.1250607874084295
+  0.6250484783715251  0.7499752636010157  0.1252200187222030
+  0.6253456881502615  0.8752275079490062  0.0002539653562224
+  0.5627274977709575  0.8125128216786521  0.0626181994597133
+  0.5624005467530466  0.9374392125915705  0.1876196564368939
+  0.6873321279342122  0.8124091120342101  0.1878163533568156
+  0.6876615948087093  0.9377318320269126  0.0628443626094111
+  0.7506334161903538  0.7506334161903538  0.0005337232167690
+  0.7498316925900568  0.8751033548447893  0.1256947814622791
+  0.8751033548447893  0.7498316925900568  0.1256947814622791
+  0.8774816870715156  0.8774816870715156  0.0021867627370753
+  0.8131939098439602  0.8131939098439602  0.0632918410620533
+  0.8109480905578081  0.9374279037536724  0.1892267988376730
+  0.9374279037536724  0.8109480905578081  0.1892267988376730
+  0.9372841888379710  0.9372841888379710  0.0702036261603070
+  0.9995095511858310  0.9995095511858310  0.2502749849761727
+  0.9996556373905889  0.1247681679730874  0.3748384051912907
+  0.1247681679730874  0.9996556373905889  0.3748384051912907
+  0.1234959657115127  0.1234959657115127  0.2481093523413591
+  0.0619121991084199  0.0619121991084199  0.3120762287629333
+  0.0622460346437776  0.1872724920509938  0.4371543118497385
+  0.1872724920509938  0.0622460346437776  0.4371543118497385
+  0.1865259383110214  0.1865259383110214  0.3112059277232575
+  0.2493060901560398  0.9992081589379467  0.2493060901560398
+  0.2494199406491617  0.1245418082903385  0.3742461815682532
+  0.3747422135454173  0.9997603218032580  0.3747422135454173
+  0.3742461815682532  0.1245418082903385  0.2494199406491617
+  0.3118665838096462  0.0619662767832310  0.3118665838096462
+  0.3121044770599752  0.1872235973796492  0.4369226213862163
+  0.4372738623353456  0.0623785656373315  0.4372738623353456
+  0.4369226213862163  0.1872235973796492  0.3121044770599752
+  0.4997725022290425  0.9998818005402867  0.2499871783213479
+  0.4996010915061717  0.1249038502795159  0.3748197143601502
+  0.6245796981769658  0.9999525141492356  0.3753966363493149
+  0.6245557295312949  0.1250514631228725  0.2501427677896189
+  0.5621555404765530  0.0624436860623163  0.3125732310757030
+  0.5621837316800722  0.1874769898317012  0.4374222752875099
+  0.6871033636506851  0.0625474858507644  0.4379203018230342
+  0.6869971030181148  0.1875864047350788  0.3127377428931908
+  0.7489321799796116  0.9999316230207640  0.2511288594312120
+  0.7493189410783287  0.1250433437140188  0.3756265150108717
+  0.8746241056597839  0.9998916144492895  0.3754588813542341
+  0.8732732011623270  0.1250720962463276  0.2515519094421919
+  0.8113711405687880  0.0625683769792360  0.3135678200203884
+  0.8121867911027323  0.1875824358951448  0.4377189886004800
+  0.9373058454932277  0.0624324352370920  0.4376109370885857
+  0.9368052185377209  0.1873966451552107  0.3126683074099432
+  0.9992081589379467  0.2493060901560398  0.2493060901560398
+  0.9997603218032580  0.3747422135454173  0.3747422135454173
+  0.1245418082903385  0.2494199406491617  0.3742461815682532
+  0.1245418082903385  0.3742461815682532  0.2494199406491617
+  0.0619662767832310  0.3118665838096462  0.3118665838096462
+  0.0623785656373315  0.4372738623353456  0.4372738623353456
+  0.1872235973796492  0.3121044770599752  0.4369226213862163
+  0.1872235973796492  0.4369226213862163  0.3121044770599752
+  0.2491504000005023  0.2491504000005023  0.2491504000005023
+  0.2497131676078297  0.3745620153373608  0.3745620153373608
+  0.3745620153373608  0.2497131676078297  0.3745620153373608
+  0.3745620153373608  0.3745620153373608  0.2497131676078297
+  0.3119315628779020  0.3119315628779020  0.3119315628779020
+  0.3123373779011018  0.4372143977195861  0.4372143977195861
+  0.4372143977195861  0.3123373779011018  0.4372143977195861
+  0.4372143977195861  0.4372143977195861  0.3123373779011018
+  0.4994956244664124  0.2498262317297488  0.2498262317297488
+  0.4997227698817284  0.3748766291175016  0.3748766291175016
+  0.6245995110599054  0.2500340528006291  0.3750375686275405
+  0.6245995110599054  0.3750375686275405  0.2500340528006291
+  0.5620893888672924  0.3124258299455249  0.3124258299455249
+  0.5623403702971146  0.4374467041126380  0.4374467041126380
+  0.6872477178003962  0.3125547798053745  0.4375190928588708
+  0.6872477178003962  0.4375190928588708  0.3125547798053745
+  0.7493701362645737  0.2502303352819055  0.2502303352819055
+  0.7497511673377488  0.3750833693056990  0.3750833693056990
+  0.8746836466431844  0.2500908879657899  0.3751678720657878
+  0.8746836466431844  0.3751678720657878  0.2500908879657899
+  0.8121639120863691  0.3126056846357059  0.3126056846357059
+  0.8123537429970042  0.4375716978082309  0.4375716978082309
+  0.9372799812777970  0.3125247363989843  0.4374515216284749
+  0.9372799812777970  0.4374515216284749  0.3125247363989843
+  0.9998818005402867  0.4997725022290425  0.2499871783213479
+  0.9999525141492356  0.6245796981769658  0.3753966363493149
+  0.1249038502795159  0.4996010915061717  0.3748197143601502
+  0.1250514631228725  0.6245557295312949  0.2501427677896189
+  0.0624436860623163  0.5621555404765530  0.3125732310757030
+  0.0625474858507644  0.6871033636506851  0.4379203018230342
+  0.1874769898317012  0.5621837316800722  0.4374222752875099
+  0.1875864047350788  0.6869971030181148  0.3127377428931908
+  0.2498262317297488  0.4994956244664124  0.2498262317297488
+  0.2500340528006291  0.6245995110599054  0.3750375686275405
+  0.3748766291175016  0.4997227698817284  0.3748766291175016
+  0.3750375686275405  0.6245995110599054  0.2500340528006291
+  0.3124258299455249  0.5620893888672924  0.3124258299455249
+  0.3125547798053745  0.6872477178003962  0.4375190928588708
+  0.4374467041126380  0.5623403702971146  0.4374467041126380
+  0.4375190928588708  0.6872477178003962  0.3125547798053745
+  0.4997978942833541  0.4997978942833541  0.2499813033376626
+  0.4999819843286133  0.6248643733483306  0.3750633164823185
+  0.6248643733483306  0.4999819843286133  0.3750633164823185
+  0.6249283021917691  0.6249283021917691  0.2501462570029958
+  0.5623803272361414  0.5623803272361414  0.3125411643022744
+  0.5625180156713867  0.6874366835176815  0.4376356266516694
+  0.6874366835176815  0.5625180156713867  0.4376356266516694
+  0.6874166306943010  0.6874166306943010  0.3127488326622512
+  0.7497969614070286  0.5000680732346083  0.2501381393081559
+  0.7499452201946255  0.6249809071411292  0.3752522821995967
+  0.8748829326536693  0.4999794646695079  0.3751469630690139
+  0.8749175641048552  0.6247810113995200  0.2503132088972677
+  0.8123618606918441  0.5624319267653917  0.3127030385929714
+  0.8124659471993709  0.6874624313724595  0.4379004889400946
+  0.9374471544364411  0.5623913706688413  0.4377404017719329
+  0.9374566562859812  0.6868734849891283  0.3131810589216713
+  0.9999316230207640  0.7489321799796116  0.2511288594312120
+  0.9998916144492895  0.8746241056597839  0.3754588813542341
+  0.1250433437140188  0.7493189410783287  0.3756265150108717
+  0.1250720962463276  0.8732732011623270  0.2515519094421919
+  0.0625683769792360  0.8113711405687880  0.3135678200203884
+  0.0624324352370920  0.9373058454932277  0.4376109370885857
+  0.1875824358951448  0.8121867911027323  0.4377189886004800
+  0.1873966451552107  0.9368052185377209  0.3126683074099432
+  0.2502303352819055  0.7493701362645737  0.2502303352819055
+  0.2500908879657899  0.8746836466431844  0.3751678720657878
+  0.3750833693056990  0.7497511673377488  0.3750833693056990
+  0.3751678720657878  0.8746836466431844  0.2500908879657899
+  0.3126056846357059  0.8121639120863691  0.3126056846357059
+  0.3125247363989843  0.9372799812777970  0.4374515216284749
+  0.4375716978082309  0.8123537429970042  0.4375716978082309
+  0.4374515216284749  0.9372799812777970  0.3125247363989843
+  0.5000680732346083  0.7497969614070286  0.2501381393081559
+  0.4999794646695079  0.8748829326536693  0.3751469630690139
+  0.6249809071411292  0.7499452201946255  0.3752522821995967
+  0.6247810113995200  0.8749175641048552  0.2503132088972677
+  0.5624319267653917  0.8123618606918441  0.3127030385929714
+  0.5623913706688413  0.9374471544364411  0.4377404017719329
+  0.6874624313724595  0.8124659471993709  0.4379004889400946
+  0.6868734849891283  0.9374566562859812  0.3131810589216713
+  0.7498943153642941  0.7498943153642941  0.2503360879136309
+  0.7497622571068092  0.8749135952649212  0.3755028969818852
+  0.8749135952649212  0.7497622571068092  0.3755028969818852
+  0.8745805626937440  0.8745805626937440  0.2508985223054978
+  0.8122696647180945  0.8122696647180945  0.3131298637354263
+  0.8123572322103811  0.9374485368771275  0.4379442704687051
+  0.9374485368771275  0.8123572322103811  0.4379442704687051
+  0.9372045120992283  0.9372045120992283  0.3129701242550524
+  0.9999622175248959  0.9999622175248959  0.5000967740344464
+  0.0000675647629080  0.1251941545067723  0.6248890629114143
+  0.1251941545067723  0.0000675647629080  0.6248890629114143
+  0.1249032075827188  0.1249032075827188  0.4996938489792768
+  0.0625377824751041  0.0625377824751041  0.5624032259655536
+  0.0626083855507105  0.1878758943402161  0.6870411186457659
+  0.1878758943402161  0.0626083855507105  0.6870411186457659
+  0.1874846665729564  0.1874846665729564  0.5620769183451486
+  0.2499871783213479  0.9998818005402867  0.4997725022290425
+  0.2501427677896189  0.1250514631228725  0.6245557295312949
+  0.3753966363493149  0.9999525141492356  0.6245796981769658
+  0.3748197143601502  0.1249038502795159  0.4996010915061717
+  0.3125732310757030  0.0624436860623163  0.5621555404765530
+  0.3127377428931908  0.1875864047350788  0.6869971030181148
+  0.4379203018230342  0.0625474858507644  0.6871033636506851
+  0.4374222752875099  0.1874769898317012  0.5621837316800722
+  0.4999677711967934  0.9999503580635007  0.4999677711967934
+  0.5001086293311587  0.1250528455635589  0.6247595982280671
+  0.6252261376646544  0.0001214343626685  0.6252261376646544
+  0.6247595982280671  0.1250528455635589  0.5001086293311587
+  0.5625322288032066  0.0625496419364993  0.5625322288032066
+  0.5625205353304921  0.1876170673463307  0.6873530369309861
+  0.6877577864545827  0.0627396781967420  0.6877577864545827
+  0.6873530369309861  0.1876170673463307  0.5625205353304921
+  0.7499267689242970  0.0000563139376837  0.5003444595234470
+  0.7499752636010157  0.1252200187222030  0.6250484783715251
+  0.8752275079490062  0.0002539653562224  0.6253456881502615
+  0.8748803435631061  0.1250607874084295  0.5000994532469534
+  0.8125128216786521  0.0626181994597133  0.5627274977709575
+  0.8124091120342101  0.1878163533568156  0.6873321279342122
+  0.9377318320269126  0.0628443626094111  0.6876615948087093
+  0.9374392125915705  0.1876196564368939  0.5624005467530466
+  0.9998818005402867  0.2499871783213479  0.4997725022290425
+  0.9999525141492356  0.3753966363493149  0.6245796981769658
+  0.1250514631228725  0.2501427677896189  0.6245557295312949
+  0.1249038502795159  0.3748197143601502  0.4996010915061717
+  0.0624436860623163  0.3125732310757030  0.5621555404765530
+  0.0625474858507644  0.4379203018230342  0.6871033636506851
+  0.1875864047350788  0.3127377428931908  0.6869971030181148
+  0.1874769898317012  0.4374222752875099  0.5621837316800722
+  0.2498262317297488  0.2498262317297488  0.4994956244664124
+  0.2500340528006291  0.3750375686275405  0.6245995110599054
+  0.3750375686275405  0.2500340528006291  0.6245995110599054
+  0.3748766291175016  0.3748766291175016  0.4997227698817284
+  0.3124258299455249  0.3124258299455249  0.5620893888672924
+  0.3125547798053745  0.4375190928588708  0.6872477178003962
+  0.4375190928588708  0.3125547798053745  0.6872477178003962
+  0.4374467041126380  0.4374467041126380  0.5623403702971146
+  0.4997978942833541  0.2499813033376626  0.4997978942833541
+  0.4999819843286133  0.3750633164823185  0.6248643733483306
+  0.6249283021917691  0.2501462570029958  0.6249283021917691
+  0.6248643733483306  0.3750633164823185  0.4999819843286133
+  0.5623803272361414  0.3125411643022744  0.5623803272361414
+  0.5625180156713867  0.4376356266516694  0.6874366835176815
+  0.6874166306943010  0.3127488326622512  0.6874166306943010
+  0.6874366835176815  0.4376356266516694  0.5625180156713867
+  0.7497969614070286  0.2501381393081559  0.5000680732346083
+  0.7499452201946255  0.3752522821995967  0.6249809071411292
+  0.8749175641048552  0.2503132088972677  0.6247810113995200
+  0.8748829326536693  0.3751469630690139  0.4999794646695079
+  0.8123618606918441  0.3127030385929714  0.5624319267653917
+  0.8124659471993709  0.4379004889400946  0.6874624313724595
+  0.9374566562859812  0.3131810589216713  0.6868734849891283
+  0.9374471544364411  0.4377404017719329  0.5623913706688413
+  0.9999503580635007  0.4999677711967934  0.4999677711967934
+  0.0001214343626685  0.6252261376646544  0.6252261376646544
+  0.1250528455635589  0.5001086293311587  0.6247595982280671
+  0.1250528455635589  0.6247595982280671  0.5001086293311587
+  0.0625496419364993  0.5625322288032066  0.5625322288032066
+  0.0627396781967420  0.6877577864545827  0.6877577864545827
+  0.1876170673463307  0.5625205353304921  0.6873530369309861
+  0.1876170673463307  0.6873530369309861  0.5625205353304921
+  0.2499813033376626  0.4997978942833541  0.4997978942833541
+  0.2501462570029958  0.6249283021917691  0.6249283021917691
+  0.3750633164823185  0.4999819843286133  0.6248643733483306
+  0.3750633164823185  0.6248643733483306  0.4999819843286133
+  0.3125411643022744  0.5623803272361414  0.5623803272361414
+  0.3127488326622512  0.6874166306943010  0.6874166306943010
+  0.4376356266516694  0.5625180156713867  0.6874366835176815
+  0.4376356266516694  0.6874366835176815  0.5625180156713867
+  0.4999571462127292  0.4999571462127292  0.4999571462127292
+  0.5001596297028854  0.6250532958873620  0.6250532958873620
+  0.6250532958873620  0.5001596297028854  0.6250532958873620
+  0.6250532958873620  0.6250532958873620  0.5001596297028854
+  0.5625428537872779  0.5625428537872779  0.5625428537872779
+  0.5627772301182716  0.6876233708824984  0.6876233708824984
+  0.6876233708824984  0.5627772301182716  0.6876233708824984
+  0.6876233708824984  0.6876233708824984  0.5627772301182716
+  0.7499588356977256  0.5001196727638586  0.5001196727638586
+  0.7501626220988982  0.6252856022804139  0.6252856022804139
+  0.8750230101682988  0.5003162683199278  0.6250777247124972
+  0.8750230101682988  0.6250777247124972  0.5003162683199278
+  0.8125186966623374  0.5627021057166459  0.5627021057166459
+  0.8127868323921703  0.6879379846626392  0.6879379846626392
+  0.9375961497204841  0.5628989084938283  0.6876802856398498
+  0.9375961497204841  0.6876802856398498  0.5628989084938283
+  0.0000563139376837  0.7499267689242970  0.5003444595234470
+  0.0002539653562224  0.8752275079490062  0.6253456881502615
+  0.1252200187222030  0.7499752636010157  0.6250484783715251
+  0.1250607874084295  0.8748803435631061  0.5000994532469534
+  0.0626181994597133  0.8125128216786521  0.5627274977709575
+  0.0628443626094111  0.9377318320269126  0.6876615948087093
+  0.1878163533568156  0.8124091120342101  0.6873321279342122
+  0.1876196564368939  0.9374392125915705  0.5624005467530466
+  0.2501381393081559  0.7497969614070286  0.5000680732346083
+  0.2503132088972677  0.8749175641048552  0.6247810113995200
+  0.3752522821995967  0.7499452201946255  0.6249809071411292
+  0.3751469630690139  0.8748829326536693  0.4999794646695079
+  0.3127030385929714  0.8123618606918441  0.5624319267653917
+  0.3131810589216713  0.9374566562859812  0.6868734849891283
+  0.4379004889400946  0.8124659471993709  0.6874624313724595
+  0.4377404017719329  0.9374471544364411  0.5623913706688413
+  0.5001196727638586  0.7499588356977256  0.5001196727638586
+  0.5003162683199278  0.8750230101682988  0.6250777247124972
+  0.6252856022804139  0.7501626220988982  0.6252856022804139
+  0.6250777247124972  0.8750230101682988  0.5003162683199278
+  0.5627021057166459  0.8125186966623374  0.5627021057166459
+  0.5628989084938283  0.9375961497204841  0.6876802856398498
+  0.6879379846626392  0.8127868323921703  0.6879379846626392
+  0.6876802856398498  0.9375961497204841  0.5628989084938283
+  0.7500741700544751  0.7500741700544751  0.5004106111327076
+  0.7503955229400248  0.8752764026203508  0.6255773786137837
+  0.8752764026203508  0.7503955229400248  0.6255773786137837
+  0.8750153334270436  0.8750153334270436  0.5004230816548514
+  0.8126737682702512  0.8126737682702512  0.5630043755335876
+  0.8130800593508454  0.9379581917096615  0.6882538184317468
+  0.9379581917096615  0.8130800593508454  0.6882538184317468
+  0.9375967924172812  0.9375967924172812  0.5628061510207232
+  0.0005878008915801  0.0005878008915801  0.7504237712370667
+  0.9995662939375691  0.1279591148113539  0.8731307995842599
+  0.1279591148113539  0.9995662939375691  0.8731307995842599
+  0.1252954879007717  0.1252954879007717  0.7495298757449476
+  0.0629904488141690  0.0629904488141690  0.8122250150238273
+  0.0629337060624309  0.1893692004157401  0.9345408851886461
+  0.1893692004157401  0.0629337060624309  0.9345408851886461
+  0.1879194373062560  0.1879194373062560  0.8116014776945093
+  0.2511288594312120  0.9999316230207640  0.7489321799796116
+  0.2515519094421919  0.1250720962463276  0.8732732011623270
+  0.3754588813542341  0.9998916144492895  0.8746241056597839
+  0.3756265150108717  0.1250433437140188  0.7493189410783287
+  0.3135678200203884  0.0625683769792360  0.8113711405687880
+  0.3126683074099432  0.1873966451552107  0.9368052185377209
+  0.4376109370885857  0.0624324352370920  0.9373058454932277
+  0.4377189886004800  0.1875824358951448  0.8121867911027323
+  0.5003444595234470  0.0000563139376837  0.7499267689242970
+  0.5000994532469534  0.1250607874084295  0.8748803435631061
+  0.6253456881502615  0.0002539653562224  0.8752275079490062
+  0.6250484783715251  0.1252200187222030  0.7499752636010157
+  0.5627274977709575  0.0626181994597133  0.8125128216786521
+  0.5624005467530466  0.1876196564368939  0.9374392125915705
+  0.6876615948087093  0.0628443626094111  0.9377318320269126
+  0.6873321279342122  0.1878163533568156  0.8124091120342101
+  0.7506334161903538  0.0005337232167690  0.7506334161903538
+  0.7498316925900568  0.1256947814622791  0.8751033548447893
+  0.8774816870715156  0.0021867627370753  0.8774816870715156
+  0.8751033548447893  0.1256947814622791  0.7498316925900568
+  0.8131939098439602  0.0632918410620533  0.8131939098439602
+  0.8109480905578081  0.1892267988376730  0.9374279037536724
+  0.9372841888379710  0.0702036261603070  0.9372841888379710
+  0.9374279037536724  0.1892267988376730  0.8109480905578081
+  0.9999316230207640  0.2511288594312120  0.7489321799796116
+  0.9998916144492895  0.3754588813542341  0.8746241056597839
+  0.1250720962463276  0.2515519094421919  0.8732732011623270
+  0.1250433437140188  0.3756265150108717  0.7493189410783287
+  0.0625683769792360  0.3135678200203884  0.8113711405687880
+  0.0624324352370920  0.4376109370885857  0.9373058454932277
+  0.1873966451552107  0.3126683074099432  0.9368052185377209
+  0.1875824358951448  0.4377189886004800  0.8121867911027323
+  0.2502303352819055  0.2502303352819055  0.7493701362645737
+  0.2500908879657899  0.3751678720657878  0.8746836466431844
+  0.3751678720657878  0.2500908879657899  0.8746836466431844
+  0.3750833693056990  0.3750833693056990  0.7497511673377488
+  0.3126056846357059  0.3126056846357059  0.8121639120863691
+  0.3125247363989843  0.4374515216284749  0.9372799812777970
+  0.4374515216284749  0.3125247363989843  0.9372799812777970
+  0.4375716978082309  0.4375716978082309  0.8123537429970042
+  0.5000680732346083  0.2501381393081559  0.7497969614070286
+  0.4999794646695079  0.3751469630690139  0.8748829326536693
+  0.6247810113995200  0.2503132088972677  0.8749175641048552
+  0.6249809071411292  0.3752522821995967  0.7499452201946255
+  0.5624319267653917  0.3127030385929714  0.8123618606918441
+  0.5623913706688413  0.4377404017719329  0.9374471544364411
+  0.6868734849891283  0.3131810589216713  0.9374566562859812
+  0.6874624313724595  0.4379004889400946  0.8124659471993709
+  0.7498943153642941  0.2503360879136309  0.7498943153642941
+  0.7497622571068092  0.3755028969818852  0.8749135952649212
+  0.8745805626937440  0.2508985223054978  0.8745805626937440
+  0.8749135952649212  0.3755028969818852  0.7497622571068092
+  0.8122696647180945  0.3131298637354263  0.8122696647180945
+  0.8123572322103811  0.4379442704687051  0.9374485368771275
+  0.9372045120992283  0.3129701242550524  0.9372045120992283
+  0.9374485368771275  0.4379442704687051  0.8123572322103811
+  0.0000563139376837  0.5003444595234470  0.7499267689242970
+  0.0002539653562224  0.6253456881502615  0.8752275079490062
+  0.1250607874084295  0.5000994532469534  0.8748803435631061
+  0.1252200187222030  0.6250484783715251  0.7499752636010157
+  0.0626181994597133  0.5627274977709575  0.8125128216786521
+  0.0628443626094111  0.6876615948087093  0.9377318320269126
+  0.1876196564368939  0.5624005467530466  0.9374392125915705
+  0.1878163533568156  0.6873321279342122  0.8124091120342101
+  0.2501381393081559  0.5000680732346083  0.7497969614070286
+  0.2503132088972677  0.6247810113995200  0.8749175641048552
+  0.3751469630690139  0.4999794646695079  0.8748829326536693
+  0.3752522821995967  0.6249809071411292  0.7499452201946255
+  0.3127030385929714  0.5624319267653917  0.8123618606918441
+  0.3131810589216713  0.6868734849891283  0.9374566562859812
+  0.4377404017719329  0.5623913706688413  0.9374471544364411
+  0.4379004889400946  0.6874624313724595  0.8124659471993709
+  0.5001196727638586  0.5001196727638586  0.7499588356977256
+  0.5003162683199278  0.6250777247124972  0.8750230101682988
+  0.6250777247124972  0.5003162683199278  0.8750230101682988
+  0.6252856022804139  0.6252856022804139  0.7501626220988982
+  0.5627021057166459  0.5627021057166459  0.8125186966623374
+  0.5628989084938283  0.6876802856398498  0.9375961497204841
+  0.6876802856398498  0.5628989084938283  0.9375961497204841
+  0.6879379846626392  0.6879379846626392  0.8127868323921703
+  0.7500741700544751  0.5004106111327076  0.7500741700544751
+  0.7503955229400248  0.6255773786137837  0.8752764026203508
+  0.8750153334270436  0.5004230816548514  0.8750153334270436
+  0.8752764026203508  0.6255773786137837  0.7503955229400248
+  0.8126737682702512  0.5630043755335876  0.8126737682702512
+  0.8130800593508454  0.6882538184317468  0.9379581917096615
+  0.9375967924172812  0.5628061510207232  0.9375967924172812
+  0.9379581917096615  0.6882538184317468  0.8130800593508454
+  0.0005337232167690  0.7506334161903538  0.7506334161903538
+  0.0021867627370753  0.8774816870715156  0.8774816870715156
+  0.1256947814622791  0.7498316925900568  0.8751033548447893
+  0.1256947814622791  0.8751033548447893  0.7498316925900568
+  0.0632918410620533  0.8131939098439602  0.8131939098439602
+  0.0702036261603070  0.9372841888379710  0.9372841888379710
+  0.1892267988376730  0.8109480905578081  0.9374279037536724
+  0.1892267988376730  0.9374279037536724  0.8109480905578081
+  0.2503360879136309  0.7498943153642941  0.7498943153642941
+  0.2508985223054978  0.8745805626937440  0.8745805626937440
+  0.3755028969818852  0.7497622571068092  0.8749135952649212
+  0.3755028969818852  0.8749135952649212  0.7497622571068092
+  0.3131298637354263  0.8122696647180945  0.8122696647180945
+  0.3129701242550524  0.9372045120992283  0.9372045120992283
+  0.4379442704687051  0.8123572322103811  0.9374485368771275
+  0.4379442704687051  0.9374485368771275  0.8123572322103811
+  0.5004106111327076  0.7500741700544751  0.7500741700544751
+  0.5004230816548514  0.8750153334270436  0.8750153334270436
+  0.6255773786137837  0.7503955229400248  0.8752764026203508
+  0.6255773786137837  0.8752764026203508  0.7503955229400248
+  0.5630043755335876  0.8126737682702512  0.8126737682702512
+  0.5628061510207232  0.9375967924172812  0.9375967924172812
+  0.6882538184317468  0.8130800593508454  0.9379581917096615
+  0.6882538184317468  0.9379581917096615  0.8130800593508454
+  0.7505684371220980  0.7505684371220980  0.7505684371220980
+  0.7512940722767425  0.8759740616889786  0.8759740616889786
+  0.8759740616889786  0.7512940722767425  0.8759740616889786
+  0.8759740616889786  0.8759740616889786  0.7512940722767425
+  0.8133495999994977  0.8133495999994977  0.8133495999994977
+  0.8143906476586409  0.9390040342884873  0.9390040342884873
+  0.9390040342884873  0.8143906476586409  0.9390040342884873
+  0.9390040342884873  0.9390040342884873  0.8143906476586409
+  0.0310  0.0310  0.0310
+
diff --git a/tests/pyposcar/POSCAR-V2.vasp b/tests/pyposcar/POSCAR-V2.vasp
new file mode 100644
index 00000000..61a76636
--- /dev/null
+++ b/tests/pyposcar/POSCAR-V2.vasp
@@ -0,0 +1,519 @@
+poscar.py                               
+   1.00000000000000     
+    14.2473    0.0000    0.0000
+     0.0000   14.2473    0.0000
+     0.0000    0.0000   14.2473
+   C
+   510
+Direct
+  0.9922963738396930  0.1252158111620290  0.1252158111620290
+  0.1252158111620290  0.9922963738396930  0.1252158111620290
+  0.1252158111620290  0.1252158111620290  0.9922963738396930
+  0.0603132372629247  0.1850183129284844  0.1850183129284844
+  0.1850183129284844  0.0603132372629247  0.1850183129284844
+  0.1850183129284844  0.1850183129284844  0.0603132372629247
+  0.2502749849761727  0.9995095511858310  0.9995095511858310
+  0.2481093523413591  0.1234959657115127  0.1234959657115127
+  0.3748384051912907  0.9996556373905889  0.1247681679730874
+  0.3748384051912907  0.1247681679730874  0.9996556373905889
+  0.3120762287629333  0.0619121991084199  0.0619121991084199
+  0.3112059277232575  0.1865259383110214  0.1865259383110214
+  0.4371543118497385  0.0622460346437776  0.1872724920509938
+  0.4371543118497385  0.1872724920509938  0.0622460346437776
+  0.5000967740344464  0.9999622175248959  0.9999622175248959
+  0.4996938489792768  0.1249032075827188  0.1249032075827188
+  0.6248890629114143  0.0000675647629080  0.1251941545067723
+  0.6248890629114143  0.1251941545067723  0.0000675647629080
+  0.5624032259655536  0.0625377824751041  0.0625377824751041
+  0.5620769183451486  0.1874846665729564  0.1874846665729564
+  0.6870411186457659  0.0626083855507105  0.1878758943402161
+  0.6870411186457659  0.1878758943402161  0.0626083855507105
+  0.7504237712370667  0.0005878008915801  0.0005878008915801
+  0.7495298757449476  0.1252954879007717  0.1252954879007717
+  0.8731307995842599  0.9995662939375691  0.1279591148113539
+  0.8731307995842599  0.1279591148113539  0.9995662939375691
+  0.8122250150238273  0.0629904488141690  0.0629904488141690
+  0.8116014776945093  0.1879194373062560  0.1879194373062560
+  0.9345408851886461  0.0629337060624309  0.1893692004157401
+  0.9345408851886461  0.1893692004157401  0.0629337060624309
+  0.9995095511858310  0.2502749849761727  0.9995095511858310
+  0.9996556373905889  0.3748384051912907  0.1247681679730874
+  0.1234959657115127  0.2481093523413591  0.1234959657115127
+  0.1247681679730874  0.3748384051912907  0.9996556373905889
+  0.0619121991084199  0.3120762287629333  0.0619121991084199
+  0.0622460346437776  0.4371543118497385  0.1872724920509938
+  0.1865259383110214  0.3112059277232575  0.1865259383110214
+  0.1872724920509938  0.4371543118497385  0.0622460346437776
+  0.2493060901560398  0.2493060901560398  0.9992081589379467
+  0.2494199406491617  0.3742461815682532  0.1245418082903385
+  0.3742461815682532  0.2494199406491617  0.1245418082903385
+  0.3747422135454173  0.3747422135454173  0.9997603218032580
+  0.3118665838096462  0.3118665838096462  0.0619662767832310
+  0.3121044770599752  0.4369226213862163  0.1872235973796492
+  0.4369226213862163  0.3121044770599752  0.1872235973796492
+  0.4372738623353456  0.4372738623353456  0.0623785656373315
+  0.4997725022290425  0.2499871783213479  0.9998818005402867
+  0.4996010915061717  0.3748197143601502  0.1249038502795159
+  0.6245557295312949  0.2501427677896189  0.1250514631228725
+  0.6245796981769658  0.3753966363493149  0.9999525141492356
+  0.5621555404765530  0.3125732310757030  0.0624436860623163
+  0.5621837316800722  0.4374222752875099  0.1874769898317012
+  0.6869971030181148  0.3127377428931908  0.1875864047350788
+  0.6871033636506851  0.4379203018230342  0.0625474858507644
+  0.7489321799796116  0.2511288594312120  0.9999316230207640
+  0.7493189410783287  0.3756265150108717  0.1250433437140188
+  0.8732732011623270  0.2515519094421919  0.1250720962463276
+  0.8746241056597839  0.3754588813542341  0.9998916144492895
+  0.8113711405687880  0.3135678200203884  0.0625683769792360
+  0.8121867911027323  0.4377189886004800  0.1875824358951448
+  0.9368052185377209  0.3126683074099432  0.1873966451552107
+  0.9373058454932277  0.4376109370885857  0.0624324352370920
+  0.9999622175248959  0.5000967740344464  0.9999622175248959
+  0.0000675647629080  0.6248890629114143  0.1251941545067723
+  0.1249032075827188  0.4996938489792768  0.1249032075827188
+  0.1251941545067723  0.6248890629114143  0.0000675647629080
+  0.0625377824751041  0.5624032259655536  0.0625377824751041
+  0.0626083855507105  0.6870411186457659  0.1878758943402161
+  0.1874846665729564  0.5620769183451486  0.1874846665729564
+  0.1878758943402161  0.6870411186457659  0.0626083855507105
+  0.2499871783213479  0.4997725022290425  0.9998818005402867
+  0.2501427677896189  0.6245557295312949  0.1250514631228725
+  0.3748197143601502  0.4996010915061717  0.1249038502795159
+  0.3753966363493149  0.6245796981769658  0.9999525141492356
+  0.3125732310757030  0.5621555404765530  0.0624436860623163
+  0.3127377428931908  0.6869971030181148  0.1875864047350788
+  0.4374222752875099  0.5621837316800722  0.1874769898317012
+  0.4379203018230342  0.6871033636506851  0.0625474858507644
+  0.4999677711967934  0.4999677711967934  0.9999503580635007
+  0.5001086293311587  0.6247595982280671  0.1250528455635589
+  0.6247595982280671  0.5001086293311587  0.1250528455635589
+  0.6252261376646544  0.6252261376646544  0.0001214343626685
+  0.5625322288032066  0.5625322288032066  0.0625496419364993
+  0.5625205353304921  0.6873530369309861  0.1876170673463307
+  0.6873530369309861  0.5625205353304921  0.1876170673463307
+  0.6877577864545827  0.6877577864545827  0.0627396781967420
+  0.7499267689242970  0.5003444595234470  0.0000563139376837
+  0.7499752636010157  0.6250484783715251  0.1252200187222030
+  0.8748803435631061  0.5000994532469534  0.1250607874084295
+  0.8752275079490062  0.6253456881502615  0.0002539653562224
+  0.8125128216786521  0.5627274977709575  0.0626181994597133
+  0.8124091120342101  0.6873321279342122  0.1878163533568156
+  0.9374392125915705  0.5624005467530466  0.1876196564368939
+  0.9377318320269126  0.6876615948087093  0.0628443626094111
+  0.0005878008915801  0.7504237712370667  0.0005878008915801
+  0.9995662939375691  0.8731307995842599  0.1279591148113539
+  0.1252954879007717  0.7495298757449476  0.1252954879007717
+  0.1279591148113539  0.8731307995842599  0.9995662939375691
+  0.0629904488141690  0.8122250150238273  0.0629904488141690
+  0.0629337060624309  0.9345408851886461  0.1893692004157401
+  0.1879194373062560  0.8116014776945093  0.1879194373062560
+  0.1893692004157401  0.9345408851886461  0.0629337060624309
+  0.2511288594312120  0.7489321799796116  0.9999316230207640
+  0.2515519094421919  0.8732732011623270  0.1250720962463276
+  0.3756265150108717  0.7493189410783287  0.1250433437140188
+  0.3754588813542341  0.8746241056597839  0.9998916144492895
+  0.3135678200203884  0.8113711405687880  0.0625683769792360
+  0.3126683074099432  0.9368052185377209  0.1873966451552107
+  0.4377189886004800  0.8121867911027323  0.1875824358951448
+  0.4376109370885857  0.9373058454932277  0.0624324352370920
+  0.5003444595234470  0.7499267689242970  0.0000563139376837
+  0.5000994532469534  0.8748803435631061  0.1250607874084295
+  0.6250484783715251  0.7499752636010157  0.1252200187222030
+  0.6253456881502615  0.8752275079490062  0.0002539653562224
+  0.5627274977709575  0.8125128216786521  0.0626181994597133
+  0.5624005467530466  0.9374392125915705  0.1876196564368939
+  0.6873321279342122  0.8124091120342101  0.1878163533568156
+  0.6876615948087093  0.9377318320269126  0.0628443626094111
+  0.7506334161903538  0.7506334161903538  0.0005337232167690
+  0.7498316925900568  0.8751033548447893  0.1256947814622791
+  0.8751033548447893  0.7498316925900568  0.1256947814622791
+  0.8774816870715156  0.8774816870715156  0.0021867627370753
+  0.8131939098439602  0.8131939098439602  0.0632918410620533
+  0.8109480905578081  0.9374279037536724  0.1892267988376730
+  0.9374279037536724  0.8109480905578081  0.1892267988376730
+  0.9372841888379710  0.9372841888379710  0.0702036261603070
+  0.9995095511858310  0.9995095511858310  0.2502749849761727
+  0.9996556373905889  0.1247681679730874  0.3748384051912907
+  0.1247681679730874  0.9996556373905889  0.3748384051912907
+  0.1234959657115127  0.1234959657115127  0.2481093523413591
+  0.0619121991084199  0.0619121991084199  0.3120762287629333
+  0.0622460346437776  0.1872724920509938  0.4371543118497385
+  0.1872724920509938  0.0622460346437776  0.4371543118497385
+  0.1865259383110214  0.1865259383110214  0.3112059277232575
+  0.2493060901560398  0.9992081589379467  0.2493060901560398
+  0.2494199406491617  0.1245418082903385  0.3742461815682532
+  0.3747422135454173  0.9997603218032580  0.3747422135454173
+  0.3742461815682532  0.1245418082903385  0.2494199406491617
+  0.3118665838096462  0.0619662767832310  0.3118665838096462
+  0.3121044770599752  0.1872235973796492  0.4369226213862163
+  0.4372738623353456  0.0623785656373315  0.4372738623353456
+  0.4369226213862163  0.1872235973796492  0.3121044770599752
+  0.4997725022290425  0.9998818005402867  0.2499871783213479
+  0.4996010915061717  0.1249038502795159  0.3748197143601502
+  0.6245796981769658  0.9999525141492356  0.3753966363493149
+  0.6245557295312949  0.1250514631228725  0.2501427677896189
+  0.5621555404765530  0.0624436860623163  0.3125732310757030
+  0.5621837316800722  0.1874769898317012  0.4374222752875099
+  0.6871033636506851  0.0625474858507644  0.4379203018230342
+  0.6869971030181148  0.1875864047350788  0.3127377428931908
+  0.7489321799796116  0.9999316230207640  0.2511288594312120
+  0.7493189410783287  0.1250433437140188  0.3756265150108717
+  0.8746241056597839  0.9998916144492895  0.3754588813542341
+  0.8732732011623270  0.1250720962463276  0.2515519094421919
+  0.8113711405687880  0.0625683769792360  0.3135678200203884
+  0.8121867911027323  0.1875824358951448  0.4377189886004800
+  0.9373058454932277  0.0624324352370920  0.4376109370885857
+  0.9368052185377209  0.1873966451552107  0.3126683074099432
+  0.9992081589379467  0.2493060901560398  0.2493060901560398
+  0.9997603218032580  0.3747422135454173  0.3747422135454173
+  0.1245418082903385  0.2494199406491617  0.3742461815682532
+  0.1245418082903385  0.3742461815682532  0.2494199406491617
+  0.0619662767832310  0.3118665838096462  0.3118665838096462
+  0.0623785656373315  0.4372738623353456  0.4372738623353456
+  0.1872235973796492  0.3121044770599752  0.4369226213862163
+  0.1872235973796492  0.4369226213862163  0.3121044770599752
+  0.2491504000005023  0.2491504000005023  0.2491504000005023
+  0.2497131676078297  0.3745620153373608  0.3745620153373608
+  0.3745620153373608  0.2497131676078297  0.3745620153373608
+  0.3745620153373608  0.3745620153373608  0.2497131676078297
+  0.3119315628779020  0.3119315628779020  0.3119315628779020
+  0.3123373779011018  0.4372143977195861  0.4372143977195861
+  0.4372143977195861  0.3123373779011018  0.4372143977195861
+  0.4372143977195861  0.4372143977195861  0.3123373779011018
+  0.4994956244664124  0.2498262317297488  0.2498262317297488
+  0.4997227698817284  0.3748766291175016  0.3748766291175016
+  0.6245995110599054  0.2500340528006291  0.3750375686275405
+  0.6245995110599054  0.3750375686275405  0.2500340528006291
+  0.5620893888672924  0.3124258299455249  0.3124258299455249
+  0.5623403702971146  0.4374467041126380  0.4374467041126380
+  0.6872477178003962  0.3125547798053745  0.4375190928588708
+  0.6872477178003962  0.4375190928588708  0.3125547798053745
+  0.7493701362645737  0.2502303352819055  0.2502303352819055
+  0.7497511673377488  0.3750833693056990  0.3750833693056990
+  0.8746836466431844  0.2500908879657899  0.3751678720657878
+  0.8746836466431844  0.3751678720657878  0.2500908879657899
+  0.8121639120863691  0.3126056846357059  0.3126056846357059
+  0.8123537429970042  0.4375716978082309  0.4375716978082309
+  0.9372799812777970  0.3125247363989843  0.4374515216284749
+  0.9372799812777970  0.4374515216284749  0.3125247363989843
+  0.9998818005402867  0.4997725022290425  0.2499871783213479
+  0.9999525141492356  0.6245796981769658  0.3753966363493149
+  0.1249038502795159  0.4996010915061717  0.3748197143601502
+  0.1250514631228725  0.6245557295312949  0.2501427677896189
+  0.0624436860623163  0.5621555404765530  0.3125732310757030
+  0.0625474858507644  0.6871033636506851  0.4379203018230342
+  0.1874769898317012  0.5621837316800722  0.4374222752875099
+  0.1875864047350788  0.6869971030181148  0.3127377428931908
+  0.2498262317297488  0.4994956244664124  0.2498262317297488
+  0.2500340528006291  0.6245995110599054  0.3750375686275405
+  0.3748766291175016  0.4997227698817284  0.3748766291175016
+  0.3750375686275405  0.6245995110599054  0.2500340528006291
+  0.3124258299455249  0.5620893888672924  0.3124258299455249
+  0.3125547798053745  0.6872477178003962  0.4375190928588708
+  0.4374467041126380  0.5623403702971146  0.4374467041126380
+  0.4375190928588708  0.6872477178003962  0.3125547798053745
+  0.4997978942833541  0.4997978942833541  0.2499813033376626
+  0.4999819843286133  0.6248643733483306  0.3750633164823185
+  0.6248643733483306  0.4999819843286133  0.3750633164823185
+  0.6249283021917691  0.6249283021917691  0.2501462570029958
+  0.5623803272361414  0.5623803272361414  0.3125411643022744
+  0.5625180156713867  0.6874366835176815  0.4376356266516694
+  0.6874366835176815  0.5625180156713867  0.4376356266516694
+  0.6874166306943010  0.6874166306943010  0.3127488326622512
+  0.7497969614070286  0.5000680732346083  0.2501381393081559
+  0.7499452201946255  0.6249809071411292  0.3752522821995967
+  0.8748829326536693  0.4999794646695079  0.3751469630690139
+  0.8749175641048552  0.6247810113995200  0.2503132088972677
+  0.8123618606918441  0.5624319267653917  0.3127030385929714
+  0.8124659471993709  0.6874624313724595  0.4379004889400946
+  0.9374471544364411  0.5623913706688413  0.4377404017719329
+  0.9374566562859812  0.6868734849891283  0.3131810589216713
+  0.9999316230207640  0.7489321799796116  0.2511288594312120
+  0.9998916144492895  0.8746241056597839  0.3754588813542341
+  0.1250433437140188  0.7493189410783287  0.3756265150108717
+  0.1250720962463276  0.8732732011623270  0.2515519094421919
+  0.0625683769792360  0.8113711405687880  0.3135678200203884
+  0.0624324352370920  0.9373058454932277  0.4376109370885857
+  0.1875824358951448  0.8121867911027323  0.4377189886004800
+  0.1873966451552107  0.9368052185377209  0.3126683074099432
+  0.2502303352819055  0.7493701362645737  0.2502303352819055
+  0.2500908879657899  0.8746836466431844  0.3751678720657878
+  0.3750833693056990  0.7497511673377488  0.3750833693056990
+  0.3751678720657878  0.8746836466431844  0.2500908879657899
+  0.3126056846357059  0.8121639120863691  0.3126056846357059
+  0.3125247363989843  0.9372799812777970  0.4374515216284749
+  0.4375716978082309  0.8123537429970042  0.4375716978082309
+  0.4374515216284749  0.9372799812777970  0.3125247363989843
+  0.5000680732346083  0.7497969614070286  0.2501381393081559
+  0.4999794646695079  0.8748829326536693  0.3751469630690139
+  0.6249809071411292  0.7499452201946255  0.3752522821995967
+  0.6247810113995200  0.8749175641048552  0.2503132088972677
+  0.5624319267653917  0.8123618606918441  0.3127030385929714
+  0.5623913706688413  0.9374471544364411  0.4377404017719329
+  0.6874624313724595  0.8124659471993709  0.4379004889400946
+  0.6868734849891283  0.9374566562859812  0.3131810589216713
+  0.7498943153642941  0.7498943153642941  0.2503360879136309
+  0.7497622571068092  0.8749135952649212  0.3755028969818852
+  0.8749135952649212  0.7497622571068092  0.3755028969818852
+  0.8745805626937440  0.8745805626937440  0.2508985223054978
+  0.8122696647180945  0.8122696647180945  0.3131298637354263
+  0.8123572322103811  0.9374485368771275  0.4379442704687051
+  0.9374485368771275  0.8123572322103811  0.4379442704687051
+  0.9372045120992283  0.9372045120992283  0.3129701242550524
+  0.9999622175248959  0.9999622175248959  0.5000967740344464
+  0.0000675647629080  0.1251941545067723  0.6248890629114143
+  0.1251941545067723  0.0000675647629080  0.6248890629114143
+  0.1249032075827188  0.1249032075827188  0.4996938489792768
+  0.0625377824751041  0.0625377824751041  0.5624032259655536
+  0.0626083855507105  0.1878758943402161  0.6870411186457659
+  0.1878758943402161  0.0626083855507105  0.6870411186457659
+  0.1874846665729564  0.1874846665729564  0.5620769183451486
+  0.2499871783213479  0.9998818005402867  0.4997725022290425
+  0.2501427677896189  0.1250514631228725  0.6245557295312949
+  0.3753966363493149  0.9999525141492356  0.6245796981769658
+  0.3748197143601502  0.1249038502795159  0.4996010915061717
+  0.3125732310757030  0.0624436860623163  0.5621555404765530
+  0.3127377428931908  0.1875864047350788  0.6869971030181148
+  0.4379203018230342  0.0625474858507644  0.6871033636506851
+  0.4374222752875099  0.1874769898317012  0.5621837316800722
+  0.4999677711967934  0.9999503580635007  0.4999677711967934
+  0.5001086293311587  0.1250528455635589  0.6247595982280671
+  0.6252261376646544  0.0001214343626685  0.6252261376646544
+  0.6247595982280671  0.1250528455635589  0.5001086293311587
+  0.5625322288032066  0.0625496419364993  0.5625322288032066
+  0.5625205353304921  0.1876170673463307  0.6873530369309861
+  0.6877577864545827  0.0627396781967420  0.6877577864545827
+  0.6873530369309861  0.1876170673463307  0.5625205353304921
+  0.7499267689242970  0.0000563139376837  0.5003444595234470
+  0.7499752636010157  0.1252200187222030  0.6250484783715251
+  0.8752275079490062  0.0002539653562224  0.6253456881502615
+  0.8748803435631061  0.1250607874084295  0.5000994532469534
+  0.8125128216786521  0.0626181994597133  0.5627274977709575
+  0.8124091120342101  0.1878163533568156  0.6873321279342122
+  0.9377318320269126  0.0628443626094111  0.6876615948087093
+  0.9374392125915705  0.1876196564368939  0.5624005467530466
+  0.9998818005402867  0.2499871783213479  0.4997725022290425
+  0.9999525141492356  0.3753966363493149  0.6245796981769658
+  0.1250514631228725  0.2501427677896189  0.6245557295312949
+  0.1249038502795159  0.3748197143601502  0.4996010915061717
+  0.0624436860623163  0.3125732310757030  0.5621555404765530
+  0.0625474858507644  0.4379203018230342  0.6871033636506851
+  0.1875864047350788  0.3127377428931908  0.6869971030181148
+  0.1874769898317012  0.4374222752875099  0.5621837316800722
+  0.2498262317297488  0.2498262317297488  0.4994956244664124
+  0.2500340528006291  0.3750375686275405  0.6245995110599054
+  0.3750375686275405  0.2500340528006291  0.6245995110599054
+  0.3748766291175016  0.3748766291175016  0.4997227698817284
+  0.3124258299455249  0.3124258299455249  0.5620893888672924
+  0.3125547798053745  0.4375190928588708  0.6872477178003962
+  0.4375190928588708  0.3125547798053745  0.6872477178003962
+  0.4374467041126380  0.4374467041126380  0.5623403702971146
+  0.4997978942833541  0.2499813033376626  0.4997978942833541
+  0.4999819843286133  0.3750633164823185  0.6248643733483306
+  0.6249283021917691  0.2501462570029958  0.6249283021917691
+  0.6248643733483306  0.3750633164823185  0.4999819843286133
+  0.5623803272361414  0.3125411643022744  0.5623803272361414
+  0.5625180156713867  0.4376356266516694  0.6874366835176815
+  0.6874166306943010  0.3127488326622512  0.6874166306943010
+  0.6874366835176815  0.4376356266516694  0.5625180156713867
+  0.7497969614070286  0.2501381393081559  0.5000680732346083
+  0.7499452201946255  0.3752522821995967  0.6249809071411292
+  0.8749175641048552  0.2503132088972677  0.6247810113995200
+  0.8748829326536693  0.3751469630690139  0.4999794646695079
+  0.8123618606918441  0.3127030385929714  0.5624319267653917
+  0.8124659471993709  0.4379004889400946  0.6874624313724595
+  0.9374566562859812  0.3131810589216713  0.6868734849891283
+  0.9374471544364411  0.4377404017719329  0.5623913706688413
+  0.9999503580635007  0.4999677711967934  0.4999677711967934
+  0.0001214343626685  0.6252261376646544  0.6252261376646544
+  0.1250528455635589  0.5001086293311587  0.6247595982280671
+  0.1250528455635589  0.6247595982280671  0.5001086293311587
+  0.0625496419364993  0.5625322288032066  0.5625322288032066
+  0.0627396781967420  0.6877577864545827  0.6877577864545827
+  0.1876170673463307  0.5625205353304921  0.6873530369309861
+  0.1876170673463307  0.6873530369309861  0.5625205353304921
+  0.2499813033376626  0.4997978942833541  0.4997978942833541
+  0.2501462570029958  0.6249283021917691  0.6249283021917691
+  0.3750633164823185  0.4999819843286133  0.6248643733483306
+  0.3750633164823185  0.6248643733483306  0.4999819843286133
+  0.3125411643022744  0.5623803272361414  0.5623803272361414
+  0.3127488326622512  0.6874166306943010  0.6874166306943010
+  0.4376356266516694  0.5625180156713867  0.6874366835176815
+  0.4376356266516694  0.6874366835176815  0.5625180156713867
+  0.4999571462127292  0.4999571462127292  0.4999571462127292
+  0.5001596297028854  0.6250532958873620  0.6250532958873620
+  0.6250532958873620  0.5001596297028854  0.6250532958873620
+  0.6250532958873620  0.6250532958873620  0.5001596297028854
+  0.5625428537872779  0.5625428537872779  0.5625428537872779
+  0.5627772301182716  0.6876233708824984  0.6876233708824984
+  0.6876233708824984  0.5627772301182716  0.6876233708824984
+  0.6876233708824984  0.6876233708824984  0.5627772301182716
+  0.7499588356977256  0.5001196727638586  0.5001196727638586
+  0.7501626220988982  0.6252856022804139  0.6252856022804139
+  0.8750230101682988  0.5003162683199278  0.6250777247124972
+  0.8750230101682988  0.6250777247124972  0.5003162683199278
+  0.8125186966623374  0.5627021057166459  0.5627021057166459
+  0.8127868323921703  0.6879379846626392  0.6879379846626392
+  0.9375961497204841  0.5628989084938283  0.6876802856398498
+  0.9375961497204841  0.6876802856398498  0.5628989084938283
+  0.0000563139376837  0.7499267689242970  0.5003444595234470
+  0.0002539653562224  0.8752275079490062  0.6253456881502615
+  0.1252200187222030  0.7499752636010157  0.6250484783715251
+  0.1250607874084295  0.8748803435631061  0.5000994532469534
+  0.0626181994597133  0.8125128216786521  0.5627274977709575
+  0.0628443626094111  0.9377318320269126  0.6876615948087093
+  0.1878163533568156  0.8124091120342101  0.6873321279342122
+  0.1876196564368939  0.9374392125915705  0.5624005467530466
+  0.2501381393081559  0.7497969614070286  0.5000680732346083
+  0.2503132088972677  0.8749175641048552  0.6247810113995200
+  0.3752522821995967  0.7499452201946255  0.6249809071411292
+  0.3751469630690139  0.8748829326536693  0.4999794646695079
+  0.3127030385929714  0.8123618606918441  0.5624319267653917
+  0.3131810589216713  0.9374566562859812  0.6868734849891283
+  0.4379004889400946  0.8124659471993709  0.6874624313724595
+  0.4377404017719329  0.9374471544364411  0.5623913706688413
+  0.5001196727638586  0.7499588356977256  0.5001196727638586
+  0.5003162683199278  0.8750230101682988  0.6250777247124972
+  0.6252856022804139  0.7501626220988982  0.6252856022804139
+  0.6250777247124972  0.8750230101682988  0.5003162683199278
+  0.5627021057166459  0.8125186966623374  0.5627021057166459
+  0.5628989084938283  0.9375961497204841  0.6876802856398498
+  0.6879379846626392  0.8127868323921703  0.6879379846626392
+  0.6876802856398498  0.9375961497204841  0.5628989084938283
+  0.7500741700544751  0.7500741700544751  0.5004106111327076
+  0.7503955229400248  0.8752764026203508  0.6255773786137837
+  0.8752764026203508  0.7503955229400248  0.6255773786137837
+  0.8750153334270436  0.8750153334270436  0.5004230816548514
+  0.8126737682702512  0.8126737682702512  0.5630043755335876
+  0.8130800593508454  0.9379581917096615  0.6882538184317468
+  0.9379581917096615  0.8130800593508454  0.6882538184317468
+  0.9375967924172812  0.9375967924172812  0.5628061510207232
+  0.0005878008915801  0.0005878008915801  0.7504237712370667
+  0.9995662939375691  0.1279591148113539  0.8731307995842599
+  0.1279591148113539  0.9995662939375691  0.8731307995842599
+  0.1252954879007717  0.1252954879007717  0.7495298757449476
+  0.0629904488141690  0.0629904488141690  0.8122250150238273
+  0.0629337060624309  0.1893692004157401  0.9345408851886461
+  0.1893692004157401  0.0629337060624309  0.9345408851886461
+  0.1879194373062560  0.1879194373062560  0.8116014776945093
+  0.2511288594312120  0.9999316230207640  0.7489321799796116
+  0.2515519094421919  0.1250720962463276  0.8732732011623270
+  0.3754588813542341  0.9998916144492895  0.8746241056597839
+  0.3756265150108717  0.1250433437140188  0.7493189410783287
+  0.3135678200203884  0.0625683769792360  0.8113711405687880
+  0.3126683074099432  0.1873966451552107  0.9368052185377209
+  0.4376109370885857  0.0624324352370920  0.9373058454932277
+  0.4377189886004800  0.1875824358951448  0.8121867911027323
+  0.5003444595234470  0.0000563139376837  0.7499267689242970
+  0.5000994532469534  0.1250607874084295  0.8748803435631061
+  0.6253456881502615  0.0002539653562224  0.8752275079490062
+  0.6250484783715251  0.1252200187222030  0.7499752636010157
+  0.5627274977709575  0.0626181994597133  0.8125128216786521
+  0.5624005467530466  0.1876196564368939  0.9374392125915705
+  0.6876615948087093  0.0628443626094111  0.9377318320269126
+  0.6873321279342122  0.1878163533568156  0.8124091120342101
+  0.7506334161903538  0.0005337232167690  0.7506334161903538
+  0.7498316925900568  0.1256947814622791  0.8751033548447893
+  0.8774816870715156  0.0021867627370753  0.8774816870715156
+  0.8751033548447893  0.1256947814622791  0.7498316925900568
+  0.8131939098439602  0.0632918410620533  0.8131939098439602
+  0.8109480905578081  0.1892267988376730  0.9374279037536724
+  0.9372841888379710  0.0702036261603070  0.9372841888379710
+  0.9374279037536724  0.1892267988376730  0.8109480905578081
+  0.9999316230207640  0.2511288594312120  0.7489321799796116
+  0.9998916144492895  0.3754588813542341  0.8746241056597839
+  0.1250720962463276  0.2515519094421919  0.8732732011623270
+  0.1250433437140188  0.3756265150108717  0.7493189410783287
+  0.0625683769792360  0.3135678200203884  0.8113711405687880
+  0.0624324352370920  0.4376109370885857  0.9373058454932277
+  0.1873966451552107  0.3126683074099432  0.9368052185377209
+  0.1875824358951448  0.4377189886004800  0.8121867911027323
+  0.2502303352819055  0.2502303352819055  0.7493701362645737
+  0.2500908879657899  0.3751678720657878  0.8746836466431844
+  0.3751678720657878  0.2500908879657899  0.8746836466431844
+  0.3750833693056990  0.3750833693056990  0.7497511673377488
+  0.3126056846357059  0.3126056846357059  0.8121639120863691
+  0.3125247363989843  0.4374515216284749  0.9372799812777970
+  0.4374515216284749  0.3125247363989843  0.9372799812777970
+  0.4375716978082309  0.4375716978082309  0.8123537429970042
+  0.5000680732346083  0.2501381393081559  0.7497969614070286
+  0.4999794646695079  0.3751469630690139  0.8748829326536693
+  0.6247810113995200  0.2503132088972677  0.8749175641048552
+  0.6249809071411292  0.3752522821995967  0.7499452201946255
+  0.5624319267653917  0.3127030385929714  0.8123618606918441
+  0.5623913706688413  0.4377404017719329  0.9374471544364411
+  0.6868734849891283  0.3131810589216713  0.9374566562859812
+  0.6874624313724595  0.4379004889400946  0.8124659471993709
+  0.7498943153642941  0.2503360879136309  0.7498943153642941
+  0.7497622571068092  0.3755028969818852  0.8749135952649212
+  0.8745805626937440  0.2508985223054978  0.8745805626937440
+  0.8749135952649212  0.3755028969818852  0.7497622571068092
+  0.8122696647180945  0.3131298637354263  0.8122696647180945
+  0.8123572322103811  0.4379442704687051  0.9374485368771275
+  0.9372045120992283  0.3129701242550524  0.9372045120992283
+  0.9374485368771275  0.4379442704687051  0.8123572322103811
+  0.0000563139376837  0.5003444595234470  0.7499267689242970
+  0.0002539653562224  0.6253456881502615  0.8752275079490062
+  0.1250607874084295  0.5000994532469534  0.8748803435631061
+  0.1252200187222030  0.6250484783715251  0.7499752636010157
+  0.0626181994597133  0.5627274977709575  0.8125128216786521
+  0.0628443626094111  0.6876615948087093  0.9377318320269126
+  0.1876196564368939  0.5624005467530466  0.9374392125915705
+  0.1878163533568156  0.6873321279342122  0.8124091120342101
+  0.2501381393081559  0.5000680732346083  0.7497969614070286
+  0.2503132088972677  0.6247810113995200  0.8749175641048552
+  0.3751469630690139  0.4999794646695079  0.8748829326536693
+  0.3752522821995967  0.6249809071411292  0.7499452201946255
+  0.3127030385929714  0.5624319267653917  0.8123618606918441
+  0.3131810589216713  0.6868734849891283  0.9374566562859812
+  0.4377404017719329  0.5623913706688413  0.9374471544364411
+  0.4379004889400946  0.6874624313724595  0.8124659471993709
+  0.5001196727638586  0.5001196727638586  0.7499588356977256
+  0.5003162683199278  0.6250777247124972  0.8750230101682988
+  0.6250777247124972  0.5003162683199278  0.8750230101682988
+  0.6252856022804139  0.6252856022804139  0.7501626220988982
+  0.5627021057166459  0.5627021057166459  0.8125186966623374
+  0.5628989084938283  0.6876802856398498  0.9375961497204841
+  0.6876802856398498  0.5628989084938283  0.9375961497204841
+  0.6879379846626392  0.6879379846626392  0.8127868323921703
+  0.7500741700544751  0.5004106111327076  0.7500741700544751
+  0.7503955229400248  0.6255773786137837  0.8752764026203508
+  0.8750153334270436  0.5004230816548514  0.8750153334270436
+  0.8752764026203508  0.6255773786137837  0.7503955229400248
+  0.8126737682702512  0.5630043755335876  0.8126737682702512
+  0.8130800593508454  0.6882538184317468  0.9379581917096615
+  0.9375967924172812  0.5628061510207232  0.9375967924172812
+  0.9379581917096615  0.6882538184317468  0.8130800593508454
+  0.0005337232167690  0.7506334161903538  0.7506334161903538
+  0.0021867627370753  0.8774816870715156  0.8774816870715156
+  0.1256947814622791  0.7498316925900568  0.8751033548447893
+  0.1256947814622791  0.8751033548447893  0.7498316925900568
+  0.0632918410620533  0.8131939098439602  0.8131939098439602
+  0.0702036261603070  0.9372841888379710  0.9372841888379710
+  0.1892267988376730  0.8109480905578081  0.9374279037536724
+  0.1892267988376730  0.9374279037536724  0.8109480905578081
+  0.2503360879136309  0.7498943153642941  0.7498943153642941
+  0.2508985223054978  0.8745805626937440  0.8745805626937440
+  0.3755028969818852  0.7497622571068092  0.8749135952649212
+  0.3755028969818852  0.8749135952649212  0.7497622571068092
+  0.3131298637354263  0.8122696647180945  0.8122696647180945
+  0.3129701242550524  0.9372045120992283  0.9372045120992283
+  0.4379442704687051  0.8123572322103811  0.9374485368771275
+  0.4379442704687051  0.9374485368771275  0.8123572322103811
+  0.5004106111327076  0.7500741700544751  0.7500741700544751
+  0.5004230816548514  0.8750153334270436  0.8750153334270436
+  0.6255773786137837  0.7503955229400248  0.8752764026203508
+  0.6255773786137837  0.8752764026203508  0.7503955229400248
+  0.5630043755335876  0.8126737682702512  0.8126737682702512
+  0.5628061510207232  0.9375967924172812  0.9375967924172812
+  0.6882538184317468  0.8130800593508454  0.9379581917096615
+  0.6882538184317468  0.9379581917096615  0.8130800593508454
+  0.7505684371220980  0.7505684371220980  0.7505684371220980
+  0.7512940722767425  0.8759740616889786  0.8759740616889786
+  0.8759740616889786  0.7512940722767425  0.8759740616889786
+  0.8759740616889786  0.8759740616889786  0.7512940722767425
+  0.8133495999994977  0.8133495999994977  0.8133495999994977
+  0.8143906476586409  0.9390040342884873  0.9390040342884873
+  0.9390040342884873  0.8143906476586409  0.9390040342884873
+  0.9390040342884873  0.9390040342884873  0.8143906476586409
+
diff --git a/tests/pyposcar/POSCAR-nv.vasp b/tests/pyposcar/POSCAR-nv.vasp
new file mode 100644
index 00000000..5faf263d
--- /dev/null
+++ b/tests/pyposcar/POSCAR-nv.vasp
@@ -0,0 +1,1007 @@
+poscar.py
+1.0
+17.835 0.0 0.0
+0.0 17.835 0.0
+0.0 0.0 17.835
+C N
+998 1
+Direct
+0.0 0.1 0.1
+0.1 0.0 0.1
+0.1 0.1 0.0
+0.05 0.15 0.15
+0.15 0.05 0.15
+0.15 0.15 0.05
+0.2 0.0 0.0
+0.2 0.1 0.1
+0.3 0.0 0.1
+0.3 0.1 0.0
+0.25 0.05 0.05
+0.25 0.15 0.15
+0.35 0.05 0.15
+0.35 0.15 0.05
+0.4 0.0 0.0
+0.4 0.1 0.1
+0.5 0.0 0.1
+0.5 0.1 0.0
+0.45 0.05 0.05
+0.45 0.15 0.15
+0.55 0.05 0.15
+0.55 0.15 0.05
+0.6 0.0 0.0
+0.6 0.1 0.1
+0.7 0.0 0.1
+0.7 0.1 0.0
+0.65 0.05 0.05
+0.65 0.15 0.15
+0.75 0.05 0.15
+0.75 0.15 0.05
+0.8 0.0 0.0
+0.8 0.1 0.1
+0.9 0.0 0.1
+0.9 0.1 0.0
+0.85 0.05 0.05
+0.85 0.15 0.15
+0.95 0.05 0.15
+0.95 0.15 0.05
+0.0 0.2 0.0
+0.0 0.3 0.1
+0.1 0.2 0.1
+0.1 0.3 0.0
+0.05 0.25 0.05
+0.05 0.35 0.15
+0.15 0.25 0.15
+0.15 0.35 0.05
+0.2 0.2 0.0
+0.2 0.3 0.1
+0.3 0.2 0.1
+0.3 0.3 0.0
+0.25 0.25 0.05
+0.25 0.35 0.15
+0.35 0.25 0.15
+0.35 0.35 0.05
+0.4 0.2 0.0
+0.4 0.3 0.1
+0.5 0.2 0.1
+0.5 0.3 0.0
+0.45 0.25 0.05
+0.45 0.35 0.15
+0.55 0.25 0.15
+0.55 0.35 0.05
+0.6 0.2 0.0
+0.6 0.3 0.1
+0.7 0.2 0.1
+0.7 0.3 0.0
+0.65 0.25 0.05
+0.65 0.35 0.15
+0.75 0.25 0.15
+0.75 0.35 0.05
+0.8 0.2 0.0
+0.8 0.3 0.1
+0.9 0.2 0.1
+0.9 0.3 0.0
+0.85 0.25 0.05
+0.85 0.35 0.15
+0.95 0.25 0.15
+0.95 0.35 0.05
+0.0 0.4 0.0
+0.0 0.5 0.1
+0.1 0.4 0.1
+0.1 0.5 0.0
+0.05 0.45 0.05
+0.05 0.55 0.15
+0.15 0.45 0.15
+0.15 0.55 0.05
+0.2 0.4 0.0
+0.2 0.5 0.1
+0.3 0.4 0.1
+0.3 0.5 0.0
+0.25 0.45 0.05
+0.25 0.55 0.15
+0.35 0.45 0.15
+0.35 0.55 0.05
+0.4 0.4 0.0
+0.4 0.5 0.1
+0.5 0.4 0.1
+0.5 0.5 0.0
+0.45 0.45 0.05
+0.45 0.55 0.15
+0.55 0.45 0.15
+0.55 0.55 0.05
+0.6 0.4 0.0
+0.6 0.5 0.1
+0.7 0.4 0.1
+0.7 0.5 0.0
+0.65 0.45 0.05
+0.65 0.55 0.15
+0.75 0.45 0.15
+0.75 0.55 0.05
+0.8 0.4 0.0
+0.8 0.5 0.1
+0.9 0.4 0.1
+0.9 0.5 0.0
+0.85 0.45 0.05
+0.85 0.55 0.15
+0.95 0.45 0.15
+0.95 0.55 0.05
+0.0 0.6 0.0
+0.0 0.7 0.1
+0.1 0.6 0.1
+0.1 0.7 0.0
+0.05 0.65 0.05
+0.05 0.75 0.15
+0.15 0.65 0.15
+0.15 0.75 0.05
+0.2 0.6 0.0
+0.2 0.7 0.1
+0.3 0.6 0.1
+0.3 0.7 0.0
+0.25 0.65 0.05
+0.25 0.75 0.15
+0.35 0.65 0.15
+0.35 0.75 0.05
+0.4 0.6 0.0
+0.4 0.7 0.1
+0.5 0.6 0.1
+0.5 0.7 0.0
+0.45 0.65 0.05
+0.45 0.75 0.15
+0.55 0.65 0.15
+0.55 0.75 0.05
+0.6 0.6 0.0
+0.6 0.7 0.1
+0.7 0.6 0.1
+0.7 0.7 0.0
+0.65 0.65 0.05
+0.65 0.75 0.15
+0.75 0.65 0.15
+0.75 0.75 0.05
+0.8 0.6 0.0
+0.8 0.7 0.1
+0.9 0.6 0.1
+0.9 0.7 0.0
+0.85 0.65 0.05
+0.85 0.75 0.15
+0.95 0.65 0.15
+0.95 0.75 0.05
+0.0 0.8 0.0
+0.0 0.9 0.1
+0.1 0.8 0.1
+0.1 0.9 0.0
+0.05 0.85 0.05
+0.05 0.95 0.15
+0.15 0.85 0.15
+0.15 0.95 0.05
+0.2 0.8 0.0
+0.2 0.9 0.1
+0.3 0.8 0.1
+0.3 0.9 0.0
+0.25 0.85 0.05
+0.25 0.95 0.15
+0.35 0.85 0.15
+0.35 0.95 0.05
+0.4 0.8 0.0
+0.4 0.9 0.1
+0.5 0.8 0.1
+0.5 0.9 0.0
+0.45 0.85 0.05
+0.45 0.95 0.15
+0.55 0.85 0.15
+0.55 0.95 0.05
+0.6 0.8 0.0
+0.6 0.9 0.1
+0.7 0.8 0.1
+0.7 0.9 0.0
+0.65 0.85 0.05
+0.65 0.95 0.15
+0.75 0.85 0.15
+0.75 0.95 0.05
+0.8 0.8 0.0
+0.8 0.9 0.1
+0.9 0.8 0.1
+0.9 0.9 0.0
+0.85 0.85 0.05
+0.85 0.95 0.15
+0.95 0.85 0.15
+0.95 0.95 0.05
+0.0 0.0 0.2
+0.0 0.1 0.3
+0.1 0.0 0.3
+0.1 0.1 0.2
+0.05 0.05 0.25
+0.05 0.15 0.35
+0.15 0.05 0.35
+0.15 0.15 0.25
+0.2 0.0 0.2
+0.2 0.1 0.3
+0.3 0.0 0.3
+0.3 0.1 0.2
+0.25 0.05 0.25
+0.25 0.15 0.35
+0.35 0.05 0.35
+0.35 0.15 0.25
+0.4 0.0 0.2
+0.4 0.1 0.3
+0.5 0.0 0.3
+0.5 0.1 0.2
+0.45 0.05 0.25
+0.45 0.15 0.35
+0.55 0.05 0.35
+0.55 0.15 0.25
+0.6 0.0 0.2
+0.6 0.1 0.3
+0.7 0.0 0.3
+0.7 0.1 0.2
+0.65 0.05 0.25
+0.65 0.15 0.35
+0.75 0.05 0.35
+0.75 0.15 0.25
+0.8 0.0 0.2
+0.8 0.1 0.3
+0.9 0.0 0.3
+0.9 0.1 0.2
+0.85 0.05 0.25
+0.85 0.15 0.35
+0.95 0.05 0.35
+0.95 0.15 0.25
+0.0 0.2 0.2
+0.0 0.3 0.3
+0.1 0.2 0.3
+0.1 0.3 0.2
+0.05 0.25 0.25
+0.05 0.35 0.35
+0.15 0.25 0.35
+0.15 0.35 0.25
+0.2 0.2 0.2
+0.2 0.3 0.3
+0.3 0.2 0.3
+0.3 0.3 0.2
+0.25 0.25 0.25
+0.25 0.35 0.35
+0.35 0.25 0.35
+0.35 0.35 0.25
+0.4 0.2 0.2
+0.4 0.3 0.3
+0.5 0.2 0.3
+0.5 0.3 0.2
+0.45 0.25 0.25
+0.45 0.35 0.35
+0.55 0.25 0.35
+0.55 0.35 0.25
+0.6 0.2 0.2
+0.6 0.3 0.3
+0.7 0.2 0.3
+0.7 0.3 0.2
+0.65 0.25 0.25
+0.65 0.35 0.35
+0.75 0.25 0.35
+0.75 0.35 0.25
+0.8 0.2 0.2
+0.8 0.3 0.3
+0.9 0.2 0.3
+0.9 0.3 0.2
+0.85 0.25 0.25
+0.85 0.35 0.35
+0.95 0.25 0.35
+0.95 0.35 0.25
+0.0 0.4 0.2
+0.0 0.5 0.3
+0.1 0.4 0.3
+0.1 0.5 0.2
+0.05 0.45 0.25
+0.05 0.55 0.35
+0.15 0.45 0.35
+0.15 0.55 0.25
+0.2 0.4 0.2
+0.2 0.5 0.3
+0.3 0.4 0.3
+0.3 0.5 0.2
+0.25 0.45 0.25
+0.25 0.55 0.35
+0.35 0.45 0.35
+0.35 0.55 0.25
+0.4 0.4 0.2
+0.4 0.5 0.3
+0.5 0.4 0.3
+0.5 0.5 0.2
+0.45 0.45 0.25
+0.45 0.55 0.35
+0.55 0.45 0.35
+0.55 0.55 0.25
+0.6 0.4 0.2
+0.6 0.5 0.3
+0.7 0.4 0.3
+0.7 0.5 0.2
+0.65 0.45 0.25
+0.65 0.55 0.35
+0.75 0.45 0.35
+0.75 0.55 0.25
+0.8 0.4 0.2
+0.8 0.5 0.3
+0.9 0.4 0.3
+0.9 0.5 0.2
+0.85 0.45 0.25
+0.85 0.55 0.35
+0.95 0.45 0.35
+0.95 0.55 0.25
+0.0 0.6 0.2
+0.0 0.7 0.3
+0.1 0.6 0.3
+0.1 0.7 0.2
+0.05 0.65 0.25
+0.05 0.75 0.35
+0.15 0.65 0.35
+0.15 0.75 0.25
+0.2 0.6 0.2
+0.2 0.7 0.3
+0.3 0.6 0.3
+0.3 0.7 0.2
+0.25 0.65 0.25
+0.25 0.75 0.35
+0.35 0.65 0.35
+0.35 0.75 0.25
+0.4 0.6 0.2
+0.4 0.7 0.3
+0.5 0.6 0.3
+0.5 0.7 0.2
+0.45 0.65 0.25
+0.45 0.75 0.35
+0.55 0.65 0.35
+0.55 0.75 0.25
+0.6 0.6 0.2
+0.6 0.7 0.3
+0.7 0.6 0.3
+0.7 0.7 0.2
+0.65 0.65 0.25
+0.65 0.75 0.35
+0.75 0.65 0.35
+0.75 0.75 0.25
+0.8 0.6 0.2
+0.8 0.7 0.3
+0.9 0.6 0.3
+0.9 0.7 0.2
+0.85 0.65 0.25
+0.85 0.75 0.35
+0.95 0.65 0.35
+0.95 0.75 0.25
+0.0 0.8 0.2
+0.0 0.9 0.3
+0.1 0.8 0.3
+0.1 0.9 0.2
+0.05 0.85 0.25
+0.05 0.95 0.35
+0.15 0.85 0.35
+0.15 0.95 0.25
+0.2 0.8 0.2
+0.2 0.9 0.3
+0.3 0.8 0.3
+0.3 0.9 0.2
+0.25 0.85 0.25
+0.25 0.95 0.35
+0.35 0.85 0.35
+0.35 0.95 0.25
+0.4 0.8 0.2
+0.4 0.9 0.3
+0.5 0.8 0.3
+0.5 0.9 0.2
+0.45 0.85 0.25
+0.45 0.95 0.35
+0.55 0.85 0.35
+0.55 0.95 0.25
+0.6 0.8 0.2
+0.6 0.9 0.3
+0.7 0.8 0.3
+0.7 0.9 0.2
+0.65 0.85 0.25
+0.65 0.95 0.35
+0.75 0.85 0.35
+0.75 0.95 0.25
+0.8 0.8 0.2
+0.8 0.9 0.3
+0.9 0.8 0.3
+0.9 0.9 0.2
+0.85 0.85 0.25
+0.85 0.95 0.35
+0.95 0.85 0.35
+0.95 0.95 0.25
+0.0 0.0 0.4
+0.0 0.1 0.5
+0.1 0.0 0.5
+0.1 0.1 0.4
+0.05 0.05 0.45
+0.05 0.15 0.55
+0.15 0.05 0.55
+0.15 0.15 0.45
+0.2 0.0 0.4
+0.2 0.1 0.5
+0.3 0.0 0.5
+0.3 0.1 0.4
+0.25 0.05 0.45
+0.25 0.15 0.55
+0.35 0.05 0.55
+0.35 0.15 0.45
+0.4 0.0 0.4
+0.4 0.1 0.5
+0.5 0.0 0.5
+0.5 0.1 0.4
+0.45 0.05 0.45
+0.45 0.15 0.55
+0.55 0.05 0.55
+0.55 0.15 0.45
+0.6 0.0 0.4
+0.6 0.1 0.5
+0.7 0.0 0.5
+0.7 0.1 0.4
+0.65 0.05 0.45
+0.65 0.15 0.55
+0.75 0.05 0.55
+0.75 0.15 0.45
+0.8 0.0 0.4
+0.8 0.1 0.5
+0.9 0.0 0.5
+0.9 0.1 0.4
+0.85 0.05 0.45
+0.85 0.15 0.55
+0.95 0.05 0.55
+0.95 0.15 0.45
+0.0 0.2 0.4
+0.0 0.3 0.5
+0.1 0.2 0.5
+0.1 0.3 0.4
+0.05 0.25 0.45
+0.05 0.35 0.55
+0.15 0.25 0.55
+0.15 0.35 0.45
+0.2 0.2 0.4
+0.2 0.3 0.5
+0.3 0.2 0.5
+0.3 0.3 0.4
+0.25 0.25 0.45
+0.25 0.35 0.55
+0.35 0.25 0.55
+0.35 0.35 0.45
+0.4 0.2 0.4
+0.4 0.3 0.5
+0.5 0.2 0.5
+0.5 0.3 0.4
+0.45 0.25 0.45
+0.45 0.35 0.55
+0.55 0.25 0.55
+0.55 0.35 0.45
+0.6 0.2 0.4
+0.6 0.3 0.5
+0.7 0.2 0.5
+0.7 0.3 0.4
+0.65 0.25 0.45
+0.65 0.35 0.55
+0.75 0.25 0.55
+0.75 0.35 0.45
+0.8 0.2 0.4
+0.8 0.3 0.5
+0.9 0.2 0.5
+0.9 0.3 0.4
+0.85 0.25 0.45
+0.85 0.35 0.55
+0.95 0.25 0.55
+0.95 0.35 0.45
+0.0 0.4 0.4
+0.0 0.5 0.5
+0.1 0.4 0.5
+0.1 0.5 0.4
+0.05 0.45 0.45
+0.05 0.55 0.55
+0.15 0.45 0.55
+0.15 0.55 0.45
+0.2 0.4 0.4
+0.2 0.5 0.5
+0.3 0.4 0.5
+0.3 0.5 0.4
+0.25 0.45 0.45
+0.25 0.55 0.55
+0.35 0.45 0.55
+0.35 0.55 0.45
+0.4 0.4 0.4
+0.4 0.5 0.5
+0.5 0.4 0.5
+0.5 0.5 0.4
+0.45 0.45 0.45
+0.45 0.55 0.55
+0.55 0.45 0.55
+0.55 0.55 0.45
+0.6 0.4 0.4
+0.6 0.5 0.5
+0.7 0.4 0.5
+0.7 0.5 0.4
+0.65 0.45 0.45
+0.65 0.55 0.55
+0.75 0.45 0.55
+0.75 0.55 0.45
+0.8 0.4 0.4
+0.8 0.5 0.5
+0.9 0.4 0.5
+0.9 0.5 0.4
+0.85 0.45 0.45
+0.85 0.55 0.55
+0.95 0.45 0.55
+0.95 0.55 0.45
+0.0 0.6 0.4
+0.0 0.7 0.5
+0.1 0.6 0.5
+0.1 0.7 0.4
+0.05 0.65 0.45
+0.05 0.75 0.55
+0.15 0.65 0.55
+0.15 0.75 0.45
+0.2 0.6 0.4
+0.2 0.7 0.5
+0.3 0.6 0.5
+0.3 0.7 0.4
+0.25 0.65 0.45
+0.25 0.75 0.55
+0.35 0.65 0.55
+0.35 0.75 0.45
+0.4 0.6 0.4
+0.4 0.7 0.5
+0.5 0.6 0.5
+0.5 0.7 0.4
+0.45 0.65 0.45
+0.45 0.75 0.55
+0.55 0.65 0.55
+0.55 0.75 0.45
+0.6 0.6 0.4
+0.6 0.7 0.5
+0.7 0.6 0.5
+0.7 0.7 0.4
+0.65 0.65 0.45
+0.65 0.75 0.55
+0.75 0.65 0.55
+0.75 0.75 0.45
+0.8 0.6 0.4
+0.8 0.7 0.5
+0.9 0.6 0.5
+0.9 0.7 0.4
+0.85 0.65 0.45
+0.85 0.75 0.55
+0.95 0.65 0.55
+0.95 0.75 0.45
+0.0 0.8 0.4
+0.0 0.9 0.5
+0.1 0.8 0.5
+0.1 0.9 0.4
+0.05 0.85 0.45
+0.05 0.95 0.55
+0.15 0.85 0.55
+0.15 0.95 0.45
+0.2 0.8 0.4
+0.2 0.9 0.5
+0.3 0.8 0.5
+0.3 0.9 0.4
+0.25 0.85 0.45
+0.25 0.95 0.55
+0.35 0.85 0.55
+0.35 0.95 0.45
+0.4 0.8 0.4
+0.4 0.9 0.5
+0.5 0.8 0.5
+0.5 0.9 0.4
+0.45 0.85 0.45
+0.45 0.95 0.55
+0.55 0.85 0.55
+0.55 0.95 0.45
+0.6 0.8 0.4
+0.6 0.9 0.5
+0.7 0.8 0.5
+0.7 0.9 0.4
+0.65 0.85 0.45
+0.65 0.95 0.55
+0.75 0.85 0.55
+0.75 0.95 0.45
+0.8 0.8 0.4
+0.8 0.9 0.5
+0.9 0.8 0.5
+0.9 0.9 0.4
+0.85 0.85 0.45
+0.85 0.95 0.55
+0.95 0.85 0.55
+0.95 0.95 0.45
+0.0 0.0 0.6
+0.0 0.1 0.7
+0.1 0.0 0.7
+0.1 0.1 0.6
+0.05 0.05 0.65
+0.05 0.15 0.75
+0.15 0.05 0.75
+0.15 0.15 0.65
+0.2 0.0 0.6
+0.2 0.1 0.7
+0.3 0.0 0.7
+0.3 0.1 0.6
+0.25 0.05 0.65
+0.25 0.15 0.75
+0.35 0.05 0.75
+0.35 0.15 0.65
+0.4 0.0 0.6
+0.4 0.1 0.7
+0.5 0.0 0.7
+0.5 0.1 0.6
+0.45 0.05 0.65
+0.45 0.15 0.75
+0.55 0.05 0.75
+0.55 0.15 0.65
+0.6 0.0 0.6
+0.6 0.1 0.7
+0.7 0.0 0.7
+0.7 0.1 0.6
+0.65 0.05 0.65
+0.65 0.15 0.75
+0.75 0.05 0.75
+0.75 0.15 0.65
+0.8 0.0 0.6
+0.8 0.1 0.7
+0.9 0.0 0.7
+0.9 0.1 0.6
+0.85 0.05 0.65
+0.85 0.15 0.75
+0.95 0.05 0.75
+0.95 0.15 0.65
+0.0 0.2 0.6
+0.0 0.3 0.7
+0.1 0.2 0.7
+0.1 0.3 0.6
+0.05 0.25 0.65
+0.05 0.35 0.75
+0.15 0.25 0.75
+0.15 0.35 0.65
+0.2 0.2 0.6
+0.2 0.3 0.7
+0.3 0.2 0.7
+0.3 0.3 0.6
+0.25 0.25 0.65
+0.25 0.35 0.75
+0.35 0.25 0.75
+0.35 0.35 0.65
+0.4 0.2 0.6
+0.4 0.3 0.7
+0.5 0.2 0.7
+0.5 0.3 0.6
+0.45 0.25 0.65
+0.45 0.35 0.75
+0.55 0.25 0.75
+0.55 0.35 0.65
+0.6 0.2 0.6
+0.6 0.3 0.7
+0.7 0.2 0.7
+0.7 0.3 0.6
+0.65 0.25 0.65
+0.65 0.35 0.75
+0.75 0.25 0.75
+0.75 0.35 0.65
+0.8 0.2 0.6
+0.8 0.3 0.7
+0.9 0.2 0.7
+0.9 0.3 0.6
+0.85 0.25 0.65
+0.85 0.35 0.75
+0.95 0.25 0.75
+0.95 0.35 0.65
+0.0 0.4 0.6
+0.0 0.5 0.7
+0.1 0.4 0.7
+0.1 0.5 0.6
+0.05 0.45 0.65
+0.05 0.55 0.75
+0.15 0.45 0.75
+0.15 0.55 0.65
+0.2 0.4 0.6
+0.2 0.5 0.7
+0.3 0.4 0.7
+0.3 0.5 0.6
+0.25 0.45 0.65
+0.25 0.55 0.75
+0.35 0.45 0.75
+0.35 0.55 0.65
+0.4 0.4 0.6
+0.4 0.5 0.7
+0.5 0.4 0.7
+0.5 0.5 0.6
+0.45 0.45 0.65
+0.45 0.55 0.75
+0.55 0.45 0.75
+0.55 0.55 0.65
+0.6 0.4 0.6
+0.6 0.5 0.7
+0.7 0.4 0.7
+0.7 0.5 0.6
+0.65 0.45 0.65
+0.65 0.55 0.75
+0.75 0.45 0.75
+0.75 0.55 0.65
+0.8 0.4 0.6
+0.8 0.5 0.7
+0.9 0.4 0.7
+0.9 0.5 0.6
+0.85 0.45 0.65
+0.85 0.55 0.75
+0.95 0.45 0.75
+0.95 0.55 0.65
+0.0 0.6 0.6
+0.0 0.7 0.7
+0.1 0.6 0.7
+0.1 0.7 0.6
+0.05 0.65 0.65
+0.05 0.75 0.75
+0.15 0.65 0.75
+0.15 0.75 0.65
+0.2 0.6 0.6
+0.2 0.7 0.7
+0.3 0.6 0.7
+0.3 0.7 0.6
+0.25 0.65 0.65
+0.25 0.75 0.75
+0.35 0.65 0.75
+0.35 0.75 0.65
+0.4 0.6 0.6
+0.4 0.7 0.7
+0.5 0.6 0.7
+0.5 0.7 0.6
+0.45 0.65 0.65
+0.45 0.75 0.75
+0.55 0.65 0.75
+0.55 0.75 0.65
+0.6 0.6 0.6
+0.6 0.7 0.7
+0.7 0.6 0.7
+0.7 0.7 0.6
+0.65 0.65 0.65
+0.65 0.75 0.75
+0.75 0.65 0.75
+0.75 0.75 0.65
+0.8 0.6 0.6
+0.8 0.7 0.7
+0.9 0.6 0.7
+0.9 0.7 0.6
+0.85 0.65 0.65
+0.85 0.75 0.75
+0.95 0.65 0.75
+0.95 0.75 0.65
+0.0 0.8 0.6
+0.0 0.9 0.7
+0.1 0.8 0.7
+0.1 0.9 0.6
+0.05 0.85 0.65
+0.05 0.95 0.75
+0.15 0.85 0.75
+0.15 0.95 0.65
+0.2 0.8 0.6
+0.2 0.9 0.7
+0.3 0.8 0.7
+0.3 0.9 0.6
+0.25 0.85 0.65
+0.25 0.95 0.75
+0.35 0.85 0.75
+0.35 0.95 0.65
+0.4 0.8 0.6
+0.4 0.9 0.7
+0.5 0.8 0.7
+0.5 0.9 0.6
+0.45 0.85 0.65
+0.45 0.95 0.75
+0.55 0.85 0.75
+0.55 0.95 0.65
+0.6 0.8 0.6
+0.6 0.9 0.7
+0.7 0.8 0.7
+0.7 0.9 0.6
+0.65 0.85 0.65
+0.65 0.95 0.75
+0.75 0.85 0.75
+0.75 0.95 0.65
+0.8 0.8 0.6
+0.8 0.9 0.7
+0.9 0.8 0.7
+0.9 0.9 0.6
+0.85 0.85 0.65
+0.85 0.95 0.75
+0.95 0.85 0.75
+0.95 0.95 0.65
+0.0 0.0 0.8
+0.0 0.1 0.9
+0.1 0.0 0.9
+0.1 0.1 0.8
+0.05 0.05 0.85
+0.05 0.15 0.95
+0.15 0.05 0.95
+0.15 0.15 0.85
+0.2 0.0 0.8
+0.2 0.1 0.9
+0.3 0.0 0.9
+0.3 0.1 0.8
+0.25 0.05 0.85
+0.25 0.15 0.95
+0.35 0.05 0.95
+0.35 0.15 0.85
+0.4 0.0 0.8
+0.4 0.1 0.9
+0.5 0.0 0.9
+0.5 0.1 0.8
+0.45 0.05 0.85
+0.45 0.15 0.95
+0.55 0.05 0.95
+0.55 0.15 0.85
+0.6 0.0 0.8
+0.6 0.1 0.9
+0.7 0.0 0.9
+0.7 0.1 0.8
+0.65 0.05 0.85
+0.65 0.15 0.95
+0.75 0.05 0.95
+0.75 0.15 0.85
+0.8 0.0 0.8
+0.8 0.1 0.9
+0.9 0.0 0.9
+0.9 0.1 0.8
+0.85 0.05 0.85
+0.85 0.15 0.95
+0.95 0.05 0.95
+0.95 0.15 0.85
+0.0 0.2 0.8
+0.0 0.3 0.9
+0.1 0.2 0.9
+0.1 0.3 0.8
+0.05 0.25 0.85
+0.05 0.35 0.95
+0.15 0.25 0.95
+0.15 0.35 0.85
+0.2 0.2 0.8
+0.2 0.3 0.9
+0.3 0.2 0.9
+0.3 0.3 0.8
+0.25 0.25 0.85
+0.25 0.35 0.95
+0.35 0.25 0.95
+0.35 0.35 0.85
+0.4 0.2 0.8
+0.4 0.3 0.9
+0.5 0.2 0.9
+0.5 0.3 0.8
+0.45 0.25 0.85
+0.45 0.35 0.95
+0.55 0.25 0.95
+0.55 0.35 0.85
+0.6 0.2 0.8
+0.6 0.3 0.9
+0.7 0.2 0.9
+0.7 0.3 0.8
+0.65 0.25 0.85
+0.65 0.35 0.95
+0.75 0.25 0.95
+0.75 0.35 0.85
+0.8 0.2 0.8
+0.8 0.3 0.9
+0.9 0.2 0.9
+0.9 0.3 0.8
+0.85 0.25 0.85
+0.85 0.35 0.95
+0.95 0.25 0.95
+0.95 0.35 0.85
+0.0 0.4 0.8
+0.0 0.5 0.9
+0.1 0.4 0.9
+0.1 0.5 0.8
+0.05 0.45 0.85
+0.05 0.55 0.95
+0.15 0.45 0.95
+0.15 0.55 0.85
+0.2 0.4 0.8
+0.2 0.5 0.9
+0.3 0.4 0.9
+0.3 0.5 0.8
+0.25 0.45 0.85
+0.25 0.55 0.95
+0.35 0.45 0.95
+0.35 0.55 0.85
+0.4 0.4 0.8
+0.4 0.5 0.9
+0.5 0.4 0.9
+0.5 0.5 0.8
+0.45 0.45 0.85
+0.45 0.55 0.95
+0.55 0.45 0.95
+0.55 0.55 0.85
+0.6 0.4 0.8
+0.6 0.5 0.9
+0.7 0.4 0.9
+0.7 0.5 0.8
+0.65 0.45 0.85
+0.65 0.55 0.95
+0.75 0.45 0.95
+0.75 0.55 0.85
+0.8 0.4 0.8
+0.8 0.5 0.9
+0.9 0.4 0.9
+0.9 0.5 0.8
+0.85 0.45 0.85
+0.85 0.55 0.95
+0.95 0.45 0.95
+0.95 0.55 0.85
+0.0 0.6 0.8
+0.0 0.7 0.9
+0.1 0.6 0.9
+0.1 0.7 0.8
+0.05 0.65 0.85
+0.05 0.75 0.95
+0.15 0.65 0.95
+0.15 0.75 0.85
+0.2 0.6 0.8
+0.2 0.7 0.9
+0.3 0.6 0.9
+0.3 0.7 0.8
+0.25 0.65 0.85
+0.25 0.75 0.95
+0.35 0.65 0.95
+0.35 0.75 0.85
+0.4 0.6 0.8
+0.4 0.7 0.9
+0.5 0.6 0.9
+0.5 0.7 0.8
+0.45 0.65 0.85
+0.45 0.75 0.95
+0.55 0.65 0.95
+0.55 0.75 0.85
+0.6 0.6 0.8
+0.6 0.7 0.9
+0.7 0.6 0.9
+0.7 0.7 0.8
+0.65 0.65 0.85
+0.65 0.75 0.95
+0.75 0.65 0.95
+0.75 0.75 0.85
+0.8 0.6 0.8
+0.8 0.7 0.9
+0.9 0.6 0.9
+0.9 0.7 0.8
+0.85 0.65 0.85
+0.85 0.75 0.95
+0.95 0.65 0.95
+0.95 0.75 0.85
+0.0 0.8 0.8
+0.0 0.9 0.9
+0.1 0.8 0.9
+0.1 0.9 0.8
+0.05 0.85 0.85
+0.05 0.95 0.95
+0.15 0.85 0.95
+0.15 0.95 0.85
+0.2 0.8 0.8
+0.2 0.9 0.9
+0.3 0.8 0.9
+0.3 0.9 0.8
+0.25 0.85 0.85
+0.25 0.95 0.95
+0.35 0.85 0.95
+0.35 0.95 0.85
+0.4 0.8 0.8
+0.4 0.9 0.9
+0.5 0.8 0.9
+0.5 0.9 0.8
+0.45 0.85 0.85
+0.45 0.95 0.95
+0.55 0.85 0.95
+0.55 0.95 0.85
+0.6 0.8 0.8
+0.6 0.9 0.9
+0.7 0.8 0.9
+0.7 0.9 0.8
+0.65 0.85 0.85
+0.65 0.95 0.95
+0.75 0.85 0.95
+0.75 0.95 0.85
+0.8 0.8 0.8
+0.8 0.9 0.9
+0.9 0.8 0.9
+0.9 0.9 0.8
+0.85 0.85 0.85
+0.85 0.95 0.95
+0.95 0.85 0.95
+0.95 0.95 0.85
+0.0 0.0 0.0
diff --git a/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-h1.vasp b/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-h1.vasp
new file mode 100644
index 00000000..064eeaf0
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-h1.vasp
@@ -0,0 +1,24 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C B H
+6 2 8
+Direct
+0.12527289 0.5 0.05555556
+0.06263644 0.5 0.05555556
+0.12527289 0.5 0.11111111
+0.09395467 0.5 0.13888889
+0.03131822 0.5 0.13888889
+0.09395467 0.5 0.97222222
+0.09395467 0.5 0.02777778
+0.06263644 0.5 0.11111111
+0.09395467 0.5 0.18114241112676055
+0.03131822 0.5 0.18114241112676055
+0.00749872818788915 0.5 0.11776212726352848
+0.1490923814067921 0.5 0.03442879618503316
+0.038816948187889146 0.5 0.034428797263528495
+0.1490923814067921 0.5 0.13223787381496685
+0.07013517628648094 0.5 0.9510954623229054
+0.11777416140679209 0.5 0.9510954561850332
diff --git a/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-h2.vasp b/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-h2.vasp
new file mode 100644
index 00000000..db0a974d
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-h2.vasp
@@ -0,0 +1,34 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C B H
+14 2 10
+Direct
+0.09395467 0.5 0.19444444
+0.03131822 0.5 0.02777778
+0.03131822 0.5 0.19444444
+0.12527289 0.5 0.05555556
+0.06263644 0.5 0.05555556
+0.06263644 0.5 0.22222222
+0.0 0.5 0.05555556
+0.12527289 0.5 0.11111111
+0.0 0.5 0.11111111
+0.09395467 0.5 0.13888889
+0.03131822 0.5 0.13888889
+0.06263644 0.5 0.9444444400000002
+0.09395467 0.5 0.97222222
+0.03131822 0.5 0.97222222
+0.09395467 0.5 0.02777778
+0.06263644 0.5 0.11111111
+0.11777416181211085 0.5 0.2155712027364715
+0.00749872818788915 0.5 0.2155712027364715
+0.007498728187889139 0.5 0.9510954572635285
+0.1490923814067921 0.5 0.03442879618503316
+0.06263644 0.5 0.2644757411267606
+-0.023819491812110825 0.5 0.03442879726352843
+0.06263644 0.5 0.9021909188732395
+0.1490923814067921 0.5 0.13223787381496685
+0.11777416140679209 0.5 0.9510954561850332
+-0.023819491812110825 0.5 0.13223787273647156
diff --git a/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-n1.vasp b/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-n1.vasp
new file mode 100644
index 00000000..a687dc7d
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-n1.vasp
@@ -0,0 +1,23 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C H B
+11 2 2
+Direct
+0.09395467 0.5 0.19444444
+0.03131822 0.5 0.02777778
+0.03131822 0.5 0.19444444
+0.12527289 0.5 0.05555556
+0.06263644 0.5 0.05555556
+0.12527289 0.5 0.11111111
+0.0 0.5 0.11111111
+0.09395467 0.5 0.13888889
+0.03131822 0.5 0.13888889
+0.06263644 0.5 0.94444444
+0.09395467 0.5 0.97222222
+0.14931293 0.5 0.03423318
+0.11799471 0.5 0.95089984
+0.09395467 0.5 0.02777778
+0.06263644 0.5 0.11111111
diff --git a/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-n2.vasp b/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-n2.vasp
new file mode 100644
index 00000000..f9aebb7e
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-n2.vasp
@@ -0,0 +1,31 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C H B
+18 3 2
+Direct
+0.09395467 0.5 0.19444444
+0.03131822 0.5 0.02777778
+0.03131822 0.5 0.19444444
+0.12527289 0.5 0.05555556
+0.12527289 0.5 0.22222222
+0.06263644 0.5 0.05555556
+0.06263644 0.5 0.22222222
+0.0 0.5 0.05555556
+0.0 0.5 0.22222222
+0.12527289 0.5 0.11111111
+0.0 0.5 0.11111111
+0.09395467 0.5 0.13888889
+0.03131822 0.5 0.13888889
+0.96868178 0.5 0.13888889
+0.06263644 0.5 0.94444444
+0.09395467 0.5 0.97222222
+0.03131822 0.5 0.97222222
+0.06263644 0.5 0.88888889
+0.14931293 0.5 0.03423318
+0.14931293 0.5 0.13243349
+0.11799471 0.5 0.95089984
+0.09395467 0.5 0.02777778
+0.06263644 0.5 0.11111111
diff --git a/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-s1.vasp b/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-s1.vasp
new file mode 100644
index 00000000..3e46e281
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-s1.vasp
@@ -0,0 +1,16 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C B
+6 2
+Direct
+0.12527289 0.5 0.05555556
+0.06263644 0.5 0.05555556
+0.12527289 0.5 0.11111111
+0.09395467 0.5 0.13888889
+0.03131822 0.5 0.13888889
+0.09395467 0.5 0.97222222
+0.09395467 0.5 0.02777778
+0.06263644 0.5 0.11111111
diff --git a/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-s2.vasp b/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-s2.vasp
new file mode 100644
index 00000000..fda19111
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster-s2.vasp
@@ -0,0 +1,24 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C B
+14 2
+Direct
+0.09395467 0.5 0.19444444
+0.03131822 0.5 0.02777778
+0.03131822 0.5 0.19444444
+0.12527289 0.5 0.05555556
+0.06263644 0.5 0.05555556
+0.06263644 0.5 0.22222222
+0.0 0.5 0.05555556
+0.12527289 0.5 0.11111111
+0.0 0.5 0.11111111
+0.09395467 0.5 0.13888889
+0.03131822 0.5 0.13888889
+0.06263644 0.5 0.94444444
+0.09395467 0.5 0.97222222
+0.03131822 0.5 0.97222222
+0.09395467 0.5 0.02777778
+0.06263644 0.5 0.11111111
diff --git a/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster.vasp b/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster.vasp
new file mode 100644
index 00000000..ec7c9f2b
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9-B.vasp_cluster.vasp
@@ -0,0 +1,15 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C B
+5 2
+Direct
+0.12527289 0.5 0.05555556
+0.06263644 0.5 0.05555556
+0.09395467 0.5 0.13888889
+0.03131822 0.5 0.13888889
+0.09395467 0.5 0.97222222
+0.09395467 0.5 0.02777778
+0.06263644 0.5 0.11111111
diff --git a/tests/pyposcar/results/POSCAR-7-9-B.vasp_defect.vasp b/tests/pyposcar/results/POSCAR-7-9-B.vasp_defect.vasp
new file mode 100644
index 00000000..83bd7ad6
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9-B.vasp_defect.vasp
@@ -0,0 +1,128 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C H D
+89 24 7
+Direct
+0.09395467 0.5 0.19444444
+0.09395467 0.5 0.36111111
+0.03131822 0.5 0.02777778
+0.03131822 0.5 0.19444444
+0.03131822 0.5 0.36111111
+0.96868178 0.5 0.02777778
+0.96868178 0.5 0.19444444
+0.96868178 0.5 0.36111111
+0.90604533 0.5 0.02777778
+0.90604533 0.5 0.19444444
+0.90604533 0.5 0.36111111
+0.12527289 0.5 0.22222222
+0.12527289 0.5 0.38888889
+0.06263644 0.5 0.22222222
+0.06263644 0.5 0.38888889
+0.0 0.5 0.05555556
+0.0 0.5 0.22222222
+0.0 0.5 0.38888889
+0.93736356 0.5 0.05555556
+0.93736356 0.5 0.22222222
+0.93736356 0.5 0.38888889
+0.87472711 0.5 0.05555556
+0.87472711 0.5 0.22222222
+0.87472711 0.5 0.38888889
+0.12527289 0.5 0.11111111
+0.12527289 0.5 0.27777778
+0.12527289 0.5 0.44444444
+0.06263644 0.5 0.27777778
+0.06263644 0.5 0.44444444
+0.0 0.5 0.11111111
+0.0 0.5 0.27777778
+0.0 0.5 0.44444444
+0.93736356 0.5 0.11111111
+0.93736356 0.5 0.27777778
+0.93736356 0.5 0.44444444
+0.87472711 0.5 0.11111111
+0.87472711 0.5 0.27777778
+0.87472711 0.5 0.44444444
+0.09395467 0.5 0.30555556
+0.09395467 0.5 0.47222222
+0.03131822 0.5 0.30555556
+0.03131822 0.5 0.47222222
+0.96868178 0.5 0.13888889
+0.96868178 0.5 0.30555556
+0.96868178 0.5 0.47222222
+0.90604533 0.5 0.13888889
+0.90604533 0.5 0.30555556
+0.90604533 0.5 0.47222222
+0.06263644 0.5 0.61111111
+0.06263644 0.5 0.77777778
+0.06263644 0.5 0.94444444
+0.0 0.5 0.61111111
+0.0 0.5 0.77777778
+0.0 0.5 0.94444444
+0.93736356 0.5 0.61111111
+0.93736356 0.5 0.77777778
+0.93736356 0.5 0.94444444
+0.09395467 0.5 0.63888889
+0.09395467 0.5 0.80555556
+0.03131822 0.5 0.63888889
+0.03131822 0.5 0.80555556
+0.03131822 0.5 0.97222222
+0.96868178 0.5 0.63888889
+0.96868178 0.5 0.80555556
+0.96868178 0.5 0.97222222
+0.90604533 0.5 0.63888889
+0.90604533 0.5 0.80555556
+0.90604533 0.5 0.97222222
+0.09395467 0.5 0.52777778
+0.09395467 0.5 0.69444444
+0.09395467 0.5 0.86111111
+0.03131822 0.5 0.52777778
+0.03131822 0.5 0.69444444
+0.03131822 0.5 0.86111111
+0.96868178 0.5 0.52777778
+0.96868178 0.5 0.69444444
+0.96868178 0.5 0.86111111
+0.90604533 0.5 0.52777778
+0.90604533 0.5 0.69444444
+0.90604533 0.5 0.86111111
+0.06263644 0.5 0.55555556
+0.06263644 0.5 0.72222222
+0.06263644 0.5 0.88888889
+0.0 0.5 0.55555556
+0.0 0.5 0.72222222
+0.0 0.5 0.88888889
+0.93736356 0.5 0.55555556
+0.93736356 0.5 0.72222222
+0.93736356 0.5 0.88888889
+0.85068707 0.5 0.03423318
+0.85068707 0.5 0.20089984
+0.85068707 0.5 0.36756651
+0.14931293 0.5 0.03423318
+0.14931293 0.5 0.20089984
+0.14931293 0.5 0.36756651
+0.85068707 0.5 0.13243349
+0.85068707 0.5 0.29910016
+0.85068707 0.5 0.46576682
+0.14931293 0.5 0.13243349
+0.14931293 0.5 0.29910016
+0.14931293 0.5 0.46576682
+0.88200529 0.5 0.61756651
+0.88200529 0.5 0.78423318
+0.88200529 0.5 0.95089984
+0.11799471 0.5 0.61756651
+0.11799471 0.5 0.78423318
+0.11799471 0.5 0.95089984
+0.88200529 0.5 0.54910016
+0.88200529 0.5 0.71576682
+0.88200529 0.5 0.88243349
+0.11799471 0.5 0.54910016
+0.11799471 0.5 0.71576682
+0.11799471 0.5 0.88243349
+0.09395467 0.5 0.13888889
+0.03131822 0.5 0.13888889
+0.12527289 0.5 0.05555556
+0.06263644 0.5 0.05555556
+0.09395467 0.5 0.02777778
+0.06263644 0.5 0.11111111
+0.09395467 0.5 0.97222222
diff --git a/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-h1.vasp b/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-h1.vasp
new file mode 100644
index 00000000..9fb963f5
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-h1.vasp
@@ -0,0 +1,104 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C H
+48 48
+Direct
+0.09395467 0.5 0.02777778
+0.09395467 0.5 0.19444444
+0.09395467 0.5 0.36111111
+0.90604533 0.5 0.02777778
+0.90604533 0.5 0.19444444
+0.90604533 0.5 0.36111111
+0.12527289 0.5 0.05555556
+0.12527289 0.5 0.22222222
+0.12527289 0.5 0.38888889
+0.87472711 0.5 0.05555556
+0.87472711 0.5 0.22222222
+0.87472711 0.5 0.38888889
+0.12527289 0.5 0.11111111
+0.12527289 0.5 0.27777778
+0.12527289 0.5 0.44444444
+0.87472711 0.5 0.11111111
+0.87472711 0.5 0.27777778
+0.87472711 0.5 0.44444444
+0.09395467 0.5 0.13888889
+0.09395467 0.5 0.30555556
+0.09395467 0.5 0.4722222200000001
+0.90604533 0.5 0.13888889
+0.90604533 0.5 0.30555556
+0.90604533 0.5 0.4722222200000001
+0.06263644 0.5 0.61111111
+0.06263644 0.5 0.77777778
+0.06263644 0.5 0.9444444400000002
+0.9373635600000001 0.5 0.61111111
+0.9373635600000001 0.5 0.77777778
+0.9373635600000001 0.5 0.9444444400000002
+0.09395467 0.5 0.63888889
+0.09395467 0.5 0.80555556
+0.09395467 0.5 0.97222222
+0.90604533 0.5 0.63888889
+0.90604533 0.5 0.80555556
+0.90604533 0.5 0.97222222
+0.09395467 0.5 0.52777778
+0.09395467 0.5 0.69444444
+0.09395467 0.5 0.8611111100000001
+0.90604533 0.5 0.52777778
+0.90604533 0.5 0.69444444
+0.90604533 0.5 0.8611111100000001
+0.06263644 0.5 0.55555556
+0.06263644 0.5 0.72222222
+0.06263644 0.5 0.8888888900000002
+0.9373635600000001 0.5 0.55555556
+0.9373635600000001 0.5 0.72222222
+0.9373635600000001 0.5 0.8888888900000002
+0.85068707 0.5 0.03423318
+0.85068707 0.5 0.20089984
+0.85068707 0.5 0.36756651
+0.14931293 0.5 0.03423318
+0.14931293 0.5 0.20089984
+0.14931293 0.5 0.36756651
+0.85068707 0.5 0.13243349
+0.85068707 0.5 0.29910016
+0.85068707 0.5 0.46576682
+0.14931293 0.5 0.13243349
+0.14931293 0.5 0.29910016
+0.14931293 0.5 0.46576682
+0.88200529 0.5 0.61756651
+0.88200529 0.5 0.78423318
+0.88200529 0.5 0.95089984
+0.11799471 0.5 0.61756651
+0.11799471 0.5 0.78423318
+0.11799471 0.5 0.95089984
+0.88200529 0.5 0.54910016
+0.88200529 0.5 0.71576682
+0.88200529 0.5 0.88243349
+0.11799471 0.5 0.54910016
+0.11799471 0.5 0.71576682
+0.11799471 0.5 0.88243349
+0.07013517628648094 0.5 0.048904537677094614
+0.07013517628648094 0.5 0.21557119767709462
+0.07013517628648094 0.5 0.3822378676770946
+0.929864823713519 0.5 0.048904537677094614
+0.929864823713519 0.5 0.21557119767709462
+0.9298648237135192 0.5 0.3822378676770946
+0.07013517628648094 0.5 0.11776213232290537
+0.07013517628648096 0.5 0.2844288023229054
+0.07013517628648097 0.5 0.4510954623229054
+0.929864823713519 0.5 0.11776213232290539
+0.929864823713519 0.5 0.2844288023229054
+0.929864823713519 0.5 0.4510954623229054
+0.038816948187889166 0.5 0.6322378727364715
+0.038816948187889166 0.5 0.7989045427364715
+0.03881694818788914 0.5 0.9655712027364717
+0.9611830518121108 0.5 0.6322378727364715
+0.9611830518121108 0.5 0.7989045427364715
+0.961183051812111 0.5 0.9655712027364717
+0.038816948187889146 0.5 0.5344287972635284
+0.03881694818788914 0.5 0.7010954572635285
+0.038816948187889166 0.5 0.8677621272635286
+0.961183051812111 0.5 0.5344287972635285
+0.961183051812111 0.5 0.7010954572635286
+0.9611830518121108 0.5 0.8677621272635286
diff --git a/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-h2.vasp b/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-h2.vasp
new file mode 100644
index 00000000..c8622fb7
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-h2.vasp
@@ -0,0 +1,124 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C H
+68 48
+Direct
+0.09395467 0.5 0.02777778
+0.09395467 0.5 0.19444444
+0.09395467 0.5 0.36111111
+0.90604533 0.5 0.02777778
+0.90604533 0.5 0.19444444
+0.90604533 0.5 0.36111111
+0.12527289 0.5 0.05555556
+0.12527289 0.5 0.22222222
+0.12527289 0.5 0.38888889
+0.06263644 0.5 0.05555556
+0.06263644 0.5 0.22222222
+0.06263644 0.5 0.38888889
+0.9373635600000001 0.5 0.05555556
+0.9373635600000001 0.5 0.22222222
+0.9373635600000001 0.5 0.38888889
+0.87472711 0.5 0.05555556
+0.87472711 0.5 0.22222222
+0.87472711 0.5 0.38888889
+0.12527289 0.5 0.11111111
+0.12527289 0.5 0.27777778
+0.12527289 0.5 0.44444444
+0.06263644 0.5 0.11111111
+0.06263644 0.5 0.27777778
+0.06263644 0.5 0.44444444
+0.9373635600000001 0.5 0.11111111
+0.9373635600000001 0.5 0.27777778
+0.9373635600000001 0.5 0.44444444
+0.87472711 0.5 0.11111111
+0.87472711 0.5 0.27777778
+0.87472711 0.5 0.44444444
+0.09395467 0.5 0.13888889
+0.09395467 0.5 0.30555556
+0.09395467 0.5 0.4722222200000001
+0.90604533 0.5 0.13888889
+0.90604533 0.5 0.30555556
+0.90604533 0.5 0.4722222200000001
+0.06263644 0.5 0.61111111
+0.06263644 0.5 0.77777778
+0.06263644 0.5 0.9444444400000002
+0.9373635600000001 0.5 0.61111111
+0.9373635600000001 0.5 0.77777778
+0.9373635600000001 0.5 0.9444444400000002
+0.09395467 0.5 0.63888889
+0.09395467 0.5 0.80555556
+0.09395467 0.5 0.97222222
+0.03131822 0.5 0.63888889
+0.03131822 0.5 0.80555556
+0.9686817800000002 0.5 0.63888889
+0.9686817800000002 0.5 0.80555556
+0.90604533 0.5 0.63888889
+0.90604533 0.5 0.80555556
+0.90604533 0.5 0.97222222
+0.09395467 0.5 0.52777778
+0.09395467 0.5 0.69444444
+0.09395467 0.5 0.8611111100000001
+0.03131822 0.5 0.69444444
+0.03131822 0.5 0.8611111100000001
+0.9686817800000002 0.5 0.69444444
+0.9686817800000002 0.5 0.8611111100000001
+0.90604533 0.5 0.52777778
+0.90604533 0.5 0.69444444
+0.90604533 0.5 0.8611111100000001
+0.06263644 0.5 0.55555556
+0.06263644 0.5 0.72222222
+0.06263644 0.5 0.8888888900000002
+0.9373635600000001 0.5 0.55555556
+0.9373635600000001 0.5 0.72222222
+0.9373635600000001 0.5 0.8888888900000002
+0.85068707 0.5 0.03423318
+0.85068707 0.5 0.20089984
+0.85068707 0.5 0.36756651
+0.14931293 0.5 0.03423318
+0.14931293 0.5 0.20089984
+0.14931293 0.5 0.36756651
+0.85068707 0.5 0.13243349
+0.85068707 0.5 0.29910016
+0.85068707 0.5 0.46576682
+0.14931293 0.5 0.13243349
+0.14931293 0.5 0.29910016
+0.14931293 0.5 0.46576682
+0.88200529 0.5 0.61756651
+0.88200529 0.5 0.78423318
+0.88200529 0.5 0.95089984
+0.11799471 0.5 0.61756651
+0.11799471 0.5 0.78423318
+0.11799471 0.5 0.95089984
+0.88200529 0.5 0.54910016
+0.88200529 0.5 0.71576682
+0.88200529 0.5 0.88243349
+0.11799471 0.5 0.54910016
+0.11799471 0.5 0.71576682
+0.11799471 0.5 0.88243349
+0.038816948187889146 0.5 0.034428797263528495
+0.038816948187889146 0.5 0.20109545726352848
+0.03881694818788914 0.5 0.3677621272635285
+0.961183051812111 0.5 0.03442879726352853
+0.961183051812111 0.5 0.2010954572635285
+0.961183051812111 0.5 0.3677621272635285
+0.038816948187889146 0.5 0.1322378727364715
+0.03881694818788915 0.5 0.2989045427364715
+0.038816948187889166 0.5 0.4655712027364715
+0.961183051812111 0.5 0.13223787273647147
+0.961183051812111 0.5 0.2989045427364715
+0.9611830518121108 0.5 0.4655712027364715
+0.03881694818788914 0.5 0.9655712027364717
+0.961183051812111 0.5 0.9655712027364717
+0.00749872818788917 0.5 0.6177621272635285
+0.00749872818788917 0.5 0.7844287972635284
+0.9925012718121109 0.5 0.6177621272635285
+0.9925012718121109 0.5 0.7844287972635283
+0.007498728187889139 0.5 0.7155712027364716
+0.00749872818788917 0.5 0.8822378727364716
+0.9925012718121109 0.5 0.7155712027364716
+0.9925012718121109 0.5 0.8822378727364717
+0.038816948187889146 0.5 0.5344287972635284
+0.961183051812111 0.5 0.5344287972635285
diff --git a/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-n1.vasp b/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-n1.vasp
new file mode 100644
index 00000000..4eb5d27f
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-n1.vasp
@@ -0,0 +1,80 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C H
+48 24
+Direct
+0.09395467 0.5 0.02777778
+0.09395467 0.5 0.19444444
+0.09395467 0.5 0.36111111
+0.90604533 0.5 0.02777778
+0.90604533 0.5 0.19444444
+0.90604533 0.5 0.36111111
+0.12527289 0.5 0.05555556
+0.12527289 0.5 0.22222222
+0.12527289 0.5 0.38888889
+0.87472711 0.5 0.05555556
+0.87472711 0.5 0.22222222
+0.87472711 0.5 0.38888889
+0.12527289 0.5 0.11111111
+0.12527289 0.5 0.27777778
+0.12527289 0.5 0.44444444
+0.87472711 0.5 0.11111111
+0.87472711 0.5 0.27777778
+0.87472711 0.5 0.44444444
+0.09395467 0.5 0.13888889
+0.09395467 0.5 0.30555556
+0.09395467 0.5 0.47222222
+0.90604533 0.5 0.13888889
+0.90604533 0.5 0.30555556
+0.90604533 0.5 0.47222222
+0.06263644 0.5 0.61111111
+0.06263644 0.5 0.77777778
+0.06263644 0.5 0.94444444
+0.93736356 0.5 0.61111111
+0.93736356 0.5 0.77777778
+0.93736356 0.5 0.94444444
+0.09395467 0.5 0.63888889
+0.09395467 0.5 0.80555556
+0.09395467 0.5 0.97222222
+0.90604533 0.5 0.63888889
+0.90604533 0.5 0.80555556
+0.90604533 0.5 0.97222222
+0.09395467 0.5 0.52777778
+0.09395467 0.5 0.69444444
+0.09395467 0.5 0.86111111
+0.90604533 0.5 0.52777778
+0.90604533 0.5 0.69444444
+0.90604533 0.5 0.86111111
+0.06263644 0.5 0.55555556
+0.06263644 0.5 0.72222222
+0.06263644 0.5 0.88888889
+0.93736356 0.5 0.55555556
+0.93736356 0.5 0.72222222
+0.93736356 0.5 0.88888889
+0.85068707 0.5 0.03423318
+0.85068707 0.5 0.20089984
+0.85068707 0.5 0.36756651
+0.14931293 0.5 0.03423318
+0.14931293 0.5 0.20089984
+0.14931293 0.5 0.36756651
+0.85068707 0.5 0.13243349
+0.85068707 0.5 0.29910016
+0.85068707 0.5 0.46576682
+0.14931293 0.5 0.13243349
+0.14931293 0.5 0.29910016
+0.14931293 0.5 0.46576682
+0.88200529 0.5 0.61756651
+0.88200529 0.5 0.78423318
+0.88200529 0.5 0.95089984
+0.11799471 0.5 0.61756651
+0.11799471 0.5 0.78423318
+0.11799471 0.5 0.95089984
+0.88200529 0.5 0.54910016
+0.88200529 0.5 0.71576682
+0.88200529 0.5 0.88243349
+0.11799471 0.5 0.54910016
+0.11799471 0.5 0.71576682
+0.11799471 0.5 0.88243349
diff --git a/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-n2.vasp b/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-n2.vasp
new file mode 100644
index 00000000..63a5d3dc
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-n2.vasp
@@ -0,0 +1,104 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C H
+72 24
+Direct
+0.09395467 0.5 0.02777778
+0.09395467 0.5 0.19444444
+0.09395467 0.5 0.36111111
+0.90604533 0.5 0.02777778
+0.90604533 0.5 0.19444444
+0.90604533 0.5 0.36111111
+0.12527289 0.5 0.05555556
+0.12527289 0.5 0.22222222
+0.12527289 0.5 0.38888889
+0.06263644 0.5 0.05555556
+0.06263644 0.5 0.22222222
+0.06263644 0.5 0.38888889
+0.93736356 0.5 0.05555556
+0.93736356 0.5 0.22222222
+0.93736356 0.5 0.38888889
+0.87472711 0.5 0.05555556
+0.87472711 0.5 0.22222222
+0.87472711 0.5 0.38888889
+0.12527289 0.5 0.11111111
+0.12527289 0.5 0.27777778
+0.12527289 0.5 0.44444444
+0.06263644 0.5 0.11111111
+0.06263644 0.5 0.27777778
+0.06263644 0.5 0.44444444
+0.93736356 0.5 0.11111111
+0.93736356 0.5 0.27777778
+0.93736356 0.5 0.44444444
+0.87472711 0.5 0.11111111
+0.87472711 0.5 0.27777778
+0.87472711 0.5 0.44444444
+0.09395467 0.5 0.13888889
+0.09395467 0.5 0.30555556
+0.09395467 0.5 0.47222222
+0.90604533 0.5 0.13888889
+0.90604533 0.5 0.30555556
+0.90604533 0.5 0.47222222
+0.06263644 0.5 0.61111111
+0.06263644 0.5 0.77777778
+0.06263644 0.5 0.94444444
+0.93736356 0.5 0.61111111
+0.93736356 0.5 0.77777778
+0.93736356 0.5 0.94444444
+0.09395467 0.5 0.63888889
+0.09395467 0.5 0.80555556
+0.09395467 0.5 0.97222222
+0.03131822 0.5 0.63888889
+0.03131822 0.5 0.80555556
+0.03131822 0.5 0.97222222
+0.96868178 0.5 0.63888889
+0.96868178 0.5 0.80555556
+0.96868178 0.5 0.97222222
+0.90604533 0.5 0.63888889
+0.90604533 0.5 0.80555556
+0.90604533 0.5 0.97222222
+0.09395467 0.5 0.52777778
+0.09395467 0.5 0.69444444
+0.09395467 0.5 0.86111111
+0.03131822 0.5 0.52777778
+0.03131822 0.5 0.69444444
+0.03131822 0.5 0.86111111
+0.96868178 0.5 0.52777778
+0.96868178 0.5 0.69444444
+0.96868178 0.5 0.86111111
+0.90604533 0.5 0.52777778
+0.90604533 0.5 0.69444444
+0.90604533 0.5 0.86111111
+0.06263644 0.5 0.55555556
+0.06263644 0.5 0.72222222
+0.06263644 0.5 0.88888889
+0.93736356 0.5 0.55555556
+0.93736356 0.5 0.72222222
+0.93736356 0.5 0.88888889
+0.85068707 0.5 0.03423318
+0.85068707 0.5 0.20089984
+0.85068707 0.5 0.36756651
+0.14931293 0.5 0.03423318
+0.14931293 0.5 0.20089984
+0.14931293 0.5 0.36756651
+0.85068707 0.5 0.13243349
+0.85068707 0.5 0.29910016
+0.85068707 0.5 0.46576682
+0.14931293 0.5 0.13243349
+0.14931293 0.5 0.29910016
+0.14931293 0.5 0.46576682
+0.88200529 0.5 0.61756651
+0.88200529 0.5 0.78423318
+0.88200529 0.5 0.95089984
+0.11799471 0.5 0.61756651
+0.11799471 0.5 0.78423318
+0.11799471 0.5 0.95089984
+0.88200529 0.5 0.54910016
+0.88200529 0.5 0.71576682
+0.88200529 0.5 0.88243349
+0.11799471 0.5 0.54910016
+0.11799471 0.5 0.71576682
+0.11799471 0.5 0.88243349
diff --git a/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-s1.vasp b/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-s1.vasp
new file mode 100644
index 00000000..4eb5d27f
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-s1.vasp
@@ -0,0 +1,80 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C H
+48 24
+Direct
+0.09395467 0.5 0.02777778
+0.09395467 0.5 0.19444444
+0.09395467 0.5 0.36111111
+0.90604533 0.5 0.02777778
+0.90604533 0.5 0.19444444
+0.90604533 0.5 0.36111111
+0.12527289 0.5 0.05555556
+0.12527289 0.5 0.22222222
+0.12527289 0.5 0.38888889
+0.87472711 0.5 0.05555556
+0.87472711 0.5 0.22222222
+0.87472711 0.5 0.38888889
+0.12527289 0.5 0.11111111
+0.12527289 0.5 0.27777778
+0.12527289 0.5 0.44444444
+0.87472711 0.5 0.11111111
+0.87472711 0.5 0.27777778
+0.87472711 0.5 0.44444444
+0.09395467 0.5 0.13888889
+0.09395467 0.5 0.30555556
+0.09395467 0.5 0.47222222
+0.90604533 0.5 0.13888889
+0.90604533 0.5 0.30555556
+0.90604533 0.5 0.47222222
+0.06263644 0.5 0.61111111
+0.06263644 0.5 0.77777778
+0.06263644 0.5 0.94444444
+0.93736356 0.5 0.61111111
+0.93736356 0.5 0.77777778
+0.93736356 0.5 0.94444444
+0.09395467 0.5 0.63888889
+0.09395467 0.5 0.80555556
+0.09395467 0.5 0.97222222
+0.90604533 0.5 0.63888889
+0.90604533 0.5 0.80555556
+0.90604533 0.5 0.97222222
+0.09395467 0.5 0.52777778
+0.09395467 0.5 0.69444444
+0.09395467 0.5 0.86111111
+0.90604533 0.5 0.52777778
+0.90604533 0.5 0.69444444
+0.90604533 0.5 0.86111111
+0.06263644 0.5 0.55555556
+0.06263644 0.5 0.72222222
+0.06263644 0.5 0.88888889
+0.93736356 0.5 0.55555556
+0.93736356 0.5 0.72222222
+0.93736356 0.5 0.88888889
+0.85068707 0.5 0.03423318
+0.85068707 0.5 0.20089984
+0.85068707 0.5 0.36756651
+0.14931293 0.5 0.03423318
+0.14931293 0.5 0.20089984
+0.14931293 0.5 0.36756651
+0.85068707 0.5 0.13243349
+0.85068707 0.5 0.29910016
+0.85068707 0.5 0.46576682
+0.14931293 0.5 0.13243349
+0.14931293 0.5 0.29910016
+0.14931293 0.5 0.46576682
+0.88200529 0.5 0.61756651
+0.88200529 0.5 0.78423318
+0.88200529 0.5 0.95089984
+0.11799471 0.5 0.61756651
+0.11799471 0.5 0.78423318
+0.11799471 0.5 0.95089984
+0.88200529 0.5 0.54910016
+0.88200529 0.5 0.71576682
+0.88200529 0.5 0.88243349
+0.11799471 0.5 0.54910016
+0.11799471 0.5 0.71576682
+0.11799471 0.5 0.88243349
diff --git a/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-s2.vasp b/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-s2.vasp
new file mode 100644
index 00000000..5e729018
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9.vasp_cluster-s2.vasp
@@ -0,0 +1,100 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C H
+68 24
+Direct
+0.09395467 0.5 0.02777778
+0.09395467 0.5 0.19444444
+0.09395467 0.5 0.36111111
+0.90604533 0.5 0.02777778
+0.90604533 0.5 0.19444444
+0.90604533 0.5 0.36111111
+0.12527289 0.5 0.05555556
+0.12527289 0.5 0.22222222
+0.12527289 0.5 0.38888889
+0.06263644 0.5 0.05555556
+0.06263644 0.5 0.22222222
+0.06263644 0.5 0.38888889
+0.93736356 0.5 0.05555556
+0.93736356 0.5 0.22222222
+0.93736356 0.5 0.38888889
+0.87472711 0.5 0.05555556
+0.87472711 0.5 0.22222222
+0.87472711 0.5 0.38888889
+0.12527289 0.5 0.11111111
+0.12527289 0.5 0.27777778
+0.12527289 0.5 0.44444444
+0.06263644 0.5 0.11111111
+0.06263644 0.5 0.27777778
+0.06263644 0.5 0.44444444
+0.93736356 0.5 0.11111111
+0.93736356 0.5 0.27777778
+0.93736356 0.5 0.44444444
+0.87472711 0.5 0.11111111
+0.87472711 0.5 0.27777778
+0.87472711 0.5 0.44444444
+0.09395467 0.5 0.13888889
+0.09395467 0.5 0.30555556
+0.09395467 0.5 0.47222222
+0.90604533 0.5 0.13888889
+0.90604533 0.5 0.30555556
+0.90604533 0.5 0.47222222
+0.06263644 0.5 0.61111111
+0.06263644 0.5 0.77777778
+0.06263644 0.5 0.94444444
+0.93736356 0.5 0.61111111
+0.93736356 0.5 0.77777778
+0.93736356 0.5 0.94444444
+0.09395467 0.5 0.63888889
+0.09395467 0.5 0.80555556
+0.09395467 0.5 0.97222222
+0.03131822 0.5 0.63888889
+0.03131822 0.5 0.80555556
+0.96868178 0.5 0.63888889
+0.96868178 0.5 0.80555556
+0.90604533 0.5 0.63888889
+0.90604533 0.5 0.80555556
+0.90604533 0.5 0.97222222
+0.09395467 0.5 0.52777778
+0.09395467 0.5 0.69444444
+0.09395467 0.5 0.86111111
+0.03131822 0.5 0.69444444
+0.03131822 0.5 0.86111111
+0.96868178 0.5 0.69444444
+0.96868178 0.5 0.86111111
+0.90604533 0.5 0.52777778
+0.90604533 0.5 0.69444444
+0.90604533 0.5 0.86111111
+0.06263644 0.5 0.55555556
+0.06263644 0.5 0.72222222
+0.06263644 0.5 0.88888889
+0.93736356 0.5 0.55555556
+0.93736356 0.5 0.72222222
+0.93736356 0.5 0.88888889
+0.85068707 0.5 0.03423318
+0.85068707 0.5 0.20089984
+0.85068707 0.5 0.36756651
+0.14931293 0.5 0.03423318
+0.14931293 0.5 0.20089984
+0.14931293 0.5 0.36756651
+0.85068707 0.5 0.13243349
+0.85068707 0.5 0.29910016
+0.85068707 0.5 0.46576682
+0.14931293 0.5 0.13243349
+0.14931293 0.5 0.29910016
+0.14931293 0.5 0.46576682
+0.88200529 0.5 0.61756651
+0.88200529 0.5 0.78423318
+0.88200529 0.5 0.95089984
+0.11799471 0.5 0.61756651
+0.11799471 0.5 0.78423318
+0.11799471 0.5 0.95089984
+0.88200529 0.5 0.54910016
+0.88200529 0.5 0.71576682
+0.88200529 0.5 0.88243349
+0.11799471 0.5 0.54910016
+0.11799471 0.5 0.71576682
+0.11799471 0.5 0.88243349
diff --git a/tests/pyposcar/results/POSCAR-7-9.vasp_cluster.vasp b/tests/pyposcar/results/POSCAR-7-9.vasp_cluster.vasp
new file mode 100644
index 00000000..e6e13dd7
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9.vasp_cluster.vasp
@@ -0,0 +1,56 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C H
+24 24
+Direct
+0.12527289 0.5 0.05555556
+0.12527289 0.5 0.22222222
+0.12527289 0.5 0.38888889
+0.87472711 0.5 0.05555556
+0.87472711 0.5 0.22222222
+0.87472711 0.5 0.38888889
+0.12527289 0.5 0.11111111
+0.12527289 0.5 0.27777778
+0.12527289 0.5 0.44444444
+0.87472711 0.5 0.11111111
+0.87472711 0.5 0.27777778
+0.87472711 0.5 0.44444444
+0.09395467 0.5 0.63888889
+0.09395467 0.5 0.80555556
+0.09395467 0.5 0.97222222
+0.90604533 0.5 0.63888889
+0.90604533 0.5 0.80555556
+0.90604533 0.5 0.97222222
+0.09395467 0.5 0.52777778
+0.09395467 0.5 0.69444444
+0.09395467 0.5 0.86111111
+0.90604533 0.5 0.52777778
+0.90604533 0.5 0.69444444
+0.90604533 0.5 0.86111111
+0.85068707 0.5 0.03423318
+0.85068707 0.5 0.20089984
+0.85068707 0.5 0.36756651
+0.14931293 0.5 0.03423318
+0.14931293 0.5 0.20089984
+0.14931293 0.5 0.36756651
+0.85068707 0.5 0.13243349
+0.85068707 0.5 0.29910016
+0.85068707 0.5 0.46576682
+0.14931293 0.5 0.13243349
+0.14931293 0.5 0.29910016
+0.14931293 0.5 0.46576682
+0.88200529 0.5 0.61756651
+0.88200529 0.5 0.78423318
+0.88200529 0.5 0.95089984
+0.11799471 0.5 0.61756651
+0.11799471 0.5 0.78423318
+0.11799471 0.5 0.95089984
+0.88200529 0.5 0.54910016
+0.88200529 0.5 0.71576682
+0.88200529 0.5 0.88243349
+0.11799471 0.5 0.54910016
+0.11799471 0.5 0.71576682
+0.11799471 0.5 0.88243349
diff --git a/tests/pyposcar/results/POSCAR-7-9.vasp_defect.vasp b/tests/pyposcar/results/POSCAR-7-9.vasp_defect.vasp
new file mode 100644
index 00000000..2da8aa12
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-7-9.vasp_defect.vasp
@@ -0,0 +1,128 @@
+poscar.py
+1.0
+39.26647182049349 0.0 0.0
+0.0 30.0 0.0
+0.0 0.0 25.56
+C D
+72 48
+Direct
+0.09395467 0.5 0.02777778
+0.09395467 0.5 0.19444444
+0.09395467 0.5 0.36111111
+0.03131822 0.5 0.02777778
+0.03131822 0.5 0.19444444
+0.03131822 0.5 0.36111111
+0.96868178 0.5 0.02777778
+0.96868178 0.5 0.19444444
+0.96868178 0.5 0.36111111
+0.90604533 0.5 0.02777778
+0.90604533 0.5 0.19444444
+0.90604533 0.5 0.36111111
+0.06263644 0.5 0.05555556
+0.06263644 0.5 0.22222222
+0.06263644 0.5 0.38888889
+0.0 0.5 0.05555556
+0.0 0.5 0.22222222
+0.0 0.5 0.38888889
+0.93736356 0.5 0.05555556
+0.93736356 0.5 0.22222222
+0.93736356 0.5 0.38888889
+0.06263644 0.5 0.11111111
+0.06263644 0.5 0.27777778
+0.06263644 0.5 0.44444444
+0.0 0.5 0.11111111
+0.0 0.5 0.27777778
+0.0 0.5 0.44444444
+0.93736356 0.5 0.11111111
+0.93736356 0.5 0.27777778
+0.93736356 0.5 0.44444444
+0.09395467 0.5 0.13888889
+0.09395467 0.5 0.30555556
+0.09395467 0.5 0.47222222
+0.03131822 0.5 0.13888889
+0.03131822 0.5 0.30555556
+0.03131822 0.5 0.47222222
+0.96868178 0.5 0.13888889
+0.96868178 0.5 0.30555556
+0.96868178 0.5 0.47222222
+0.90604533 0.5 0.13888889
+0.90604533 0.5 0.30555556
+0.90604533 0.5 0.47222222
+0.06263644 0.5 0.61111111
+0.06263644 0.5 0.77777778
+0.06263644 0.5 0.94444444
+0.0 0.5 0.61111111
+0.0 0.5 0.77777778
+0.0 0.5 0.94444444
+0.93736356 0.5 0.61111111
+0.93736356 0.5 0.77777778
+0.93736356 0.5 0.94444444
+0.03131822 0.5 0.63888889
+0.03131822 0.5 0.80555556
+0.03131822 0.5 0.97222222
+0.96868178 0.5 0.63888889
+0.96868178 0.5 0.80555556
+0.96868178 0.5 0.97222222
+0.03131822 0.5 0.52777778
+0.03131822 0.5 0.69444444
+0.03131822 0.5 0.86111111
+0.96868178 0.5 0.52777778
+0.96868178 0.5 0.69444444
+0.96868178 0.5 0.86111111
+0.06263644 0.5 0.55555556
+0.06263644 0.5 0.72222222
+0.06263644 0.5 0.88888889
+0.0 0.5 0.55555556
+0.0 0.5 0.72222222
+0.0 0.5 0.88888889
+0.93736356 0.5 0.55555556
+0.93736356 0.5 0.72222222
+0.93736356 0.5 0.88888889
+0.12527289 0.5 0.05555556
+0.12527289 0.5 0.22222222
+0.12527289 0.5 0.38888889
+0.87472711 0.5 0.05555556
+0.87472711 0.5 0.22222222
+0.87472711 0.5 0.38888889
+0.12527289 0.5 0.11111111
+0.12527289 0.5 0.27777778
+0.12527289 0.5 0.44444444
+0.87472711 0.5 0.11111111
+0.87472711 0.5 0.27777778
+0.87472711 0.5 0.44444444
+0.09395467 0.5 0.63888889
+0.09395467 0.5 0.80555556
+0.09395467 0.5 0.97222222
+0.90604533 0.5 0.63888889
+0.90604533 0.5 0.80555556
+0.90604533 0.5 0.97222222
+0.09395467 0.5 0.52777778
+0.09395467 0.5 0.69444444
+0.09395467 0.5 0.86111111
+0.90604533 0.5 0.52777778
+0.90604533 0.5 0.69444444
+0.90604533 0.5 0.86111111
+0.85068707 0.5 0.03423318
+0.85068707 0.5 0.20089984
+0.85068707 0.5 0.36756651
+0.14931293 0.5 0.03423318
+0.14931293 0.5 0.20089984
+0.14931293 0.5 0.36756651
+0.85068707 0.5 0.13243349
+0.85068707 0.5 0.29910016
+0.85068707 0.5 0.46576682
+0.14931293 0.5 0.13243349
+0.14931293 0.5 0.29910016
+0.14931293 0.5 0.46576682
+0.88200529 0.5 0.61756651
+0.88200529 0.5 0.78423318
+0.88200529 0.5 0.95089984
+0.11799471 0.5 0.61756651
+0.11799471 0.5 0.78423318
+0.11799471 0.5 0.95089984
+0.88200529 0.5 0.54910016
+0.88200529 0.5 0.71576682
+0.88200529 0.5 0.88243349
+0.11799471 0.5 0.54910016
+0.11799471 0.5 0.71576682
+0.11799471 0.5 0.88243349
diff --git a/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-h1.vasp b/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-h1.vasp
new file mode 100644
index 00000000..874f573b
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-h1.vasp
@@ -0,0 +1,34 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C Si H
+6 6 3 1 10
+Direct
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.3333333333285714 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.6546642458353342 0.3453357541646658 0.0
+0.797521388692477 0.48819289702180857 0.0
+0.6546642458460191 0.7378999202563826 0.0
+0.7975213887031621 0.7378999202563828 0.0
+0.34533575415398077 0.26210007974361726 0.0
+0.48819289701112367 0.26210007974361726 0.0
+0.3453357541646658 0.5118071029781914 0.0
+0.48819289702180857 0.6546642458353342 0.0
+0.8807570631135255 0.654664245846019 0.0
+0.26210007974361726 0.34533575415398077 0.0
diff --git a/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-h2.vasp b/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-h2.vasp
new file mode 100644
index 00000000..43fd44fe
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-h2.vasp
@@ -0,0 +1,44 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C Si H
+10 10 3 1 12
+Direct
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.3333333333285714 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.3333333333285714 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.34533575415398077 0.26210007974361726 0.0
+0.48819289701112367 0.26210007974361726 0.0
+0.3453357541646658 0.6546642458353342 0.0
+0.8807570631135255 0.654664245846019 0.0
+0.48819289702180857 0.797521388692477 0.0
+0.8807570631135254 0.7975213887031619 0.0
+0.26210007974361726 0.34533575415398077 0.0
+0.6546642458353342 0.3453357541646658 0.0
+0.26210007974361726 0.48819289701112367 0.0
+0.797521388692477 0.48819289702180857 0.0
+0.654664245846019 0.8807570631135255 0.0
+0.7975213887031619 0.8807570631135254 0.0
diff --git a/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-n1.vasp b/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-n1.vasp
new file mode 100644
index 00000000..ef4c7f84
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-n1.vasp
@@ -0,0 +1,28 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C Si
+8 8 3 1
+Direct
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
diff --git a/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-n2.vasp b/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-n2.vasp
new file mode 100644
index 00000000..ba99ce79
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-n2.vasp
@@ -0,0 +1,40 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C Si
+14 14 3 1
+Direct
+0.2380952381 0.3333333333285714 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.6666666666714286 0.3333333333285714 0.0
+0.2380952381 0.4761904761857143 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.8095238095285713 0.4761904761857143 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.3333333333285714 0.2380952381 0.0
+0.4761904761857143 0.2380952381 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.9047619047571427 0.6666666666714285 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.9047619047571429 0.8095238095285713 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
diff --git a/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-s1.vasp b/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-s1.vasp
new file mode 100644
index 00000000..6c3290ca
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-s1.vasp
@@ -0,0 +1,24 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C Si
+6 6 3 1
+Direct
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
diff --git a/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-s2.vasp b/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-s2.vasp
new file mode 100644
index 00000000..2b9ca558
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster-s2.vasp
@@ -0,0 +1,32 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C Si
+10 10 3 1
+Direct
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
diff --git a/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster.vasp b/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster.vasp
new file mode 100644
index 00000000..ea64c11f
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C3Si.vasp_cluster.vasp
@@ -0,0 +1,18 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C Si
+3 3 3 1
+Direct
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
diff --git a/tests/pyposcar/results/POSCAR-C3Si.vasp_defect.vasp b/tests/pyposcar/results/POSCAR-C3Si.vasp_defect.vasp
new file mode 100644
index 00000000..00c18225
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C3Si.vasp_defect.vasp
@@ -0,0 +1,106 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B D
+44 44 10
+Direct
+0.09523809524285715 0.04761904761428571 0.0
+0.2380952381 0.0476190476142857 0.0
+0.3809523809571429 0.04761904761428573 0.0
+0.5238095238142857 0.0476190476142857 0.0
+0.6666666666714285 0.04761904761428576 0.0
+0.8095238095285713 0.0476190476142857 0.0
+0.9523809523857143 0.04761904761428576 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.23809523810000002 0.19047619047142858 0.0
+0.38095238095714284 0.19047619047142855 0.0
+0.5238095238142857 0.19047619047142852 0.0
+0.6666666666714285 0.19047619047142855 0.0
+0.8095238095285713 0.19047619047142855 0.0
+0.9523809523857143 0.19047619047142855 0.0
+0.09523809524285717 0.3333333333285714 0.0
+0.2380952381 0.3333333333285714 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.6666666666714286 0.3333333333285714 0.0
+0.8095238095285713 0.3333333333285713 0.0
+0.9523809523857143 0.3333333333285715 0.0
+0.09523809524285706 0.4761904761857142 0.0
+0.2380952381 0.4761904761857143 0.0
+0.8095238095285713 0.4761904761857143 0.0
+0.9523809523857143 0.4761904761857143 0.0
+0.09523809524285709 0.6190476190428571 0.0
+0.2380952381 0.6190476190428572 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.9523809523857141 0.6190476190428571 0.0
+0.09523809524285715 0.7619047618999999 0.0
+0.2380952381 0.7619047619 0.0
+0.38095238095714284 0.7619047618999999 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.9523809523857143 0.7619047619000001 0.0
+0.09523809524285715 0.9047619047571429 0.0
+0.23809523809999994 0.9047619047571429 0.0
+0.3809523809571429 0.9047619047571429 0.0
+0.5238095238142857 0.9047619047571429 0.0
+0.6666666666714285 0.9047619047571427 0.0
+0.8095238095285713 0.9047619047571429 0.0
+0.9523809523857142 0.9047619047571428 0.0
+0.04761904761428571 0.09523809524285715 0.0
+0.19047619047142852 0.09523809524285712 0.0
+0.3333333333285714 0.09523809524285717 0.0
+0.4761904761857142 0.09523809524285706 0.0
+0.6190476190428571 0.09523809524285709 0.0
+0.7619047618999999 0.09523809524285715 0.0
+0.9047619047571429 0.09523809524285715 0.0
+0.0476190476142857 0.2380952381 0.0
+0.19047619047142858 0.23809523810000002 0.0
+0.3333333333285714 0.2380952381 0.0
+0.4761904761857143 0.2380952381 0.0
+0.6190476190428572 0.2380952381 0.0
+0.7619047619 0.2380952381 0.0
+0.9047619047571429 0.23809523809999994 0.0
+0.04761904761428573 0.3809523809571429 0.0
+0.19047619047142855 0.38095238095714284 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.7619047618999999 0.38095238095714284 0.0
+0.9047619047571429 0.3809523809571429 0.0
+0.0476190476142857 0.5238095238142857 0.0
+0.19047619047142852 0.5238095238142857 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.9047619047571429 0.5238095238142857 0.0
+0.04761904761428576 0.6666666666714285 0.0
+0.19047619047142855 0.6666666666714285 0.0
+0.3333333333285714 0.6666666666714286 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.9047619047571427 0.6666666666714285 0.0
+0.0476190476142857 0.8095238095285713 0.0
+0.19047619047142855 0.8095238095285713 0.0
+0.3333333333285713 0.8095238095285713 0.0
+0.4761904761857143 0.8095238095285713 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.9047619047571429 0.8095238095285713 0.0
+0.04761904761428576 0.9523809523857143 0.0
+0.19047619047142855 0.9523809523857143 0.0
+0.3333333333285715 0.9523809523857143 0.0
+0.4761904761857143 0.9523809523857143 0.0
+0.6190476190428571 0.9523809523857141 0.0
+0.7619047619000001 0.9523809523857143 0.0
+0.9047619047571428 0.9523809523857142 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
diff --git a/tests/pyposcar/results/POSCAR-C4.vasp_cluster-h1.vasp b/tests/pyposcar/results/POSCAR-C4.vasp_cluster-h1.vasp
new file mode 100644
index 00000000..78f223a8
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C4.vasp_cluster-h1.vasp
@@ -0,0 +1,34 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C H
+6 6 4 10
+Direct
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.3333333333285714 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.6546642458353342 0.3453357541646658 0.0
+0.797521388692477 0.48819289702180857 0.0
+0.6546642458460191 0.7378999202563826 0.0
+0.7975213887031621 0.7378999202563828 0.0
+0.34533575415398077 0.26210007974361726 0.0
+0.48819289701112367 0.26210007974361726 0.0
+0.3453357541646658 0.5118071029781914 0.0
+0.48819289702180857 0.6546642458353342 0.0
+0.8807570631135255 0.654664245846019 0.0
+0.26210007974361726 0.34533575415398077 0.0
diff --git a/tests/pyposcar/results/POSCAR-C4.vasp_cluster-h2.vasp b/tests/pyposcar/results/POSCAR-C4.vasp_cluster-h2.vasp
new file mode 100644
index 00000000..dc065618
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C4.vasp_cluster-h2.vasp
@@ -0,0 +1,44 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C H
+10 10 4 12
+Direct
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.3333333333285714 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.3333333333285714 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.34533575415398077 0.26210007974361726 0.0
+0.48819289701112367 0.26210007974361726 0.0
+0.3453357541646658 0.6546642458353342 0.0
+0.8807570631135255 0.654664245846019 0.0
+0.48819289702180857 0.797521388692477 0.0
+0.8807570631135254 0.7975213887031619 0.0
+0.26210007974361726 0.34533575415398077 0.0
+0.6546642458353342 0.3453357541646658 0.0
+0.26210007974361726 0.48819289701112367 0.0
+0.797521388692477 0.48819289702180857 0.0
+0.654664245846019 0.8807570631135255 0.0
+0.7975213887031619 0.8807570631135254 0.0
diff --git a/tests/pyposcar/results/POSCAR-C4.vasp_cluster-n1.vasp b/tests/pyposcar/results/POSCAR-C4.vasp_cluster-n1.vasp
new file mode 100644
index 00000000..f5dbe62a
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C4.vasp_cluster-n1.vasp
@@ -0,0 +1,28 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C
+8 8 4
+Direct
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
diff --git a/tests/pyposcar/results/POSCAR-C4.vasp_cluster-n2.vasp b/tests/pyposcar/results/POSCAR-C4.vasp_cluster-n2.vasp
new file mode 100644
index 00000000..1198361a
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C4.vasp_cluster-n2.vasp
@@ -0,0 +1,40 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C
+14 14 4
+Direct
+0.2380952381 0.3333333333285714 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.6666666666714286 0.3333333333285714 0.0
+0.2380952381 0.4761904761857143 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.8095238095285713 0.4761904761857143 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.3333333333285714 0.2380952381 0.0
+0.4761904761857143 0.2380952381 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.9047619047571427 0.6666666666714285 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.9047619047571429 0.8095238095285713 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
diff --git a/tests/pyposcar/results/POSCAR-C4.vasp_cluster-s1.vasp b/tests/pyposcar/results/POSCAR-C4.vasp_cluster-s1.vasp
new file mode 100644
index 00000000..d25c1856
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C4.vasp_cluster-s1.vasp
@@ -0,0 +1,24 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C
+6 6 4
+Direct
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
diff --git a/tests/pyposcar/results/POSCAR-C4.vasp_cluster-s2.vasp b/tests/pyposcar/results/POSCAR-C4.vasp_cluster-s2.vasp
new file mode 100644
index 00000000..e05d0dec
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C4.vasp_cluster-s2.vasp
@@ -0,0 +1,32 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C
+10 10 4
+Direct
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
diff --git a/tests/pyposcar/results/POSCAR-C4.vasp_cluster.vasp b/tests/pyposcar/results/POSCAR-C4.vasp_cluster.vasp
new file mode 100644
index 00000000..c0bdad0b
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C4.vasp_cluster.vasp
@@ -0,0 +1,18 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C
+3 3 4
+Direct
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
diff --git a/tests/pyposcar/results/POSCAR-C4.vasp_defect.vasp b/tests/pyposcar/results/POSCAR-C4.vasp_defect.vasp
new file mode 100644
index 00000000..00c18225
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C4.vasp_defect.vasp
@@ -0,0 +1,106 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B D
+44 44 10
+Direct
+0.09523809524285715 0.04761904761428571 0.0
+0.2380952381 0.0476190476142857 0.0
+0.3809523809571429 0.04761904761428573 0.0
+0.5238095238142857 0.0476190476142857 0.0
+0.6666666666714285 0.04761904761428576 0.0
+0.8095238095285713 0.0476190476142857 0.0
+0.9523809523857143 0.04761904761428576 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.23809523810000002 0.19047619047142858 0.0
+0.38095238095714284 0.19047619047142855 0.0
+0.5238095238142857 0.19047619047142852 0.0
+0.6666666666714285 0.19047619047142855 0.0
+0.8095238095285713 0.19047619047142855 0.0
+0.9523809523857143 0.19047619047142855 0.0
+0.09523809524285717 0.3333333333285714 0.0
+0.2380952381 0.3333333333285714 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.6666666666714286 0.3333333333285714 0.0
+0.8095238095285713 0.3333333333285713 0.0
+0.9523809523857143 0.3333333333285715 0.0
+0.09523809524285706 0.4761904761857142 0.0
+0.2380952381 0.4761904761857143 0.0
+0.8095238095285713 0.4761904761857143 0.0
+0.9523809523857143 0.4761904761857143 0.0
+0.09523809524285709 0.6190476190428571 0.0
+0.2380952381 0.6190476190428572 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.9523809523857141 0.6190476190428571 0.0
+0.09523809524285715 0.7619047618999999 0.0
+0.2380952381 0.7619047619 0.0
+0.38095238095714284 0.7619047618999999 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.9523809523857143 0.7619047619000001 0.0
+0.09523809524285715 0.9047619047571429 0.0
+0.23809523809999994 0.9047619047571429 0.0
+0.3809523809571429 0.9047619047571429 0.0
+0.5238095238142857 0.9047619047571429 0.0
+0.6666666666714285 0.9047619047571427 0.0
+0.8095238095285713 0.9047619047571429 0.0
+0.9523809523857142 0.9047619047571428 0.0
+0.04761904761428571 0.09523809524285715 0.0
+0.19047619047142852 0.09523809524285712 0.0
+0.3333333333285714 0.09523809524285717 0.0
+0.4761904761857142 0.09523809524285706 0.0
+0.6190476190428571 0.09523809524285709 0.0
+0.7619047618999999 0.09523809524285715 0.0
+0.9047619047571429 0.09523809524285715 0.0
+0.0476190476142857 0.2380952381 0.0
+0.19047619047142858 0.23809523810000002 0.0
+0.3333333333285714 0.2380952381 0.0
+0.4761904761857143 0.2380952381 0.0
+0.6190476190428572 0.2380952381 0.0
+0.7619047619 0.2380952381 0.0
+0.9047619047571429 0.23809523809999994 0.0
+0.04761904761428573 0.3809523809571429 0.0
+0.19047619047142855 0.38095238095714284 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.7619047618999999 0.38095238095714284 0.0
+0.9047619047571429 0.3809523809571429 0.0
+0.0476190476142857 0.5238095238142857 0.0
+0.19047619047142852 0.5238095238142857 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.9047619047571429 0.5238095238142857 0.0
+0.04761904761428576 0.6666666666714285 0.0
+0.19047619047142855 0.6666666666714285 0.0
+0.3333333333285714 0.6666666666714286 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.9047619047571427 0.6666666666714285 0.0
+0.0476190476142857 0.8095238095285713 0.0
+0.19047619047142855 0.8095238095285713 0.0
+0.3333333333285713 0.8095238095285713 0.0
+0.4761904761857143 0.8095238095285713 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.9047619047571429 0.8095238095285713 0.0
+0.04761904761428576 0.9523809523857143 0.0
+0.19047619047142855 0.9523809523857143 0.0
+0.3333333333285715 0.9523809523857143 0.0
+0.4761904761857143 0.9523809523857143 0.0
+0.6190476190428571 0.9523809523857141 0.0
+0.7619047619000001 0.9523809523857143 0.0
+0.9047619047571428 0.9523809523857142 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
diff --git a/tests/pyposcar/results/POSCAR-C6.vasp_cluster-h1.vasp b/tests/pyposcar/results/POSCAR-C6.vasp_cluster-h1.vasp
new file mode 100644
index 00000000..59a010a8
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6.vasp_cluster-h1.vasp
@@ -0,0 +1,54 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C H
+13 9 6 18
+Direct
+0.09523809524285715 0.0476190476142857 0.0
+0.9523809523857143 0.0476190476142857 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.3333333333285714 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.0476190476142857 0.09523809524285715 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.3333333333285714 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.05962146843969511 -0.023614205970668444 0.0
+0.16647134882781134 0.08323567441744784 0.0
+0.9167643255825524 -0.02361420597066849 0.0
+0.9167643255932372 0.08323567440676283 0.0
+0.05962146845038005 0.22609281726390565 0.0
+0.16647134882781128 0.22609281727459063 0.0
+0.34533575415398077 0.26210007974361726 0.0
+0.48819289701112367 0.26210007974361726 0.0
+0.3453357541646658 0.6546642458353342 0.0
+0.8807570631135255 0.654664245846019 0.0
+0.48819289702180857 0.797521388692477 0.0
+0.8807570631135254 0.7975213887031619 0.0
+0.26210007974361726 0.34533575415398077 0.0
+0.6546642458353342 0.3453357541646658 0.0
+0.26210007974361726 0.48819289701112367 0.0
+0.797521388692477 0.48819289702180857 0.0
+0.654664245846019 0.8807570631135255 0.0
+0.7975213887031619 0.8807570631135254 0.0
diff --git a/tests/pyposcar/results/POSCAR-C6.vasp_cluster-h2.vasp b/tests/pyposcar/results/POSCAR-C6.vasp_cluster-h2.vasp
new file mode 100644
index 00000000..79ad4462
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6.vasp_cluster-h2.vasp
@@ -0,0 +1,66 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C H
+18 17 6 17
+Direct
+0.09523809524285715 0.0476190476142857 0.0
+0.9523809523857143 0.0476190476142857 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.23809523810000002 0.19047619047142858 0.0
+0.9523809523857143 0.19047619047142855 0.0
+0.2380952381 0.3333333333285714 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.3333333333285714 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.8095238095285714 0.904761904757143 0.0
+0.9523809523857142 0.9047619047571428 0.0
+0.0476190476142857 0.09523809524285715 0.0
+0.19047619047142852 0.09523809524285712 0.0
+0.9047619047571429 0.09523809524285703 0.0
+0.0476190476142857 0.2380952381 0.0
+0.19047619047142858 0.23809523810000002 0.0
+0.3333333333285714 0.2380952381 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.3333333333285714 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.904761904757143 0.8095238095285714 0.0
+0.0476190476142857 0.9523809523857143 0.0
+0.9047619047571428 0.9523809523857142 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.9167643255932372 0.22609281726390562 0.0
+0.20247861130752293 0.36894996012104847 0.0
+0.48819289701112367 0.26210007974361726 0.0
+0.3453357541646658 0.6546642458353342 0.0
+0.8807570631135255 0.654664245846019 0.0
+0.48819289702180857 0.797521388692477 0.0
+0.7739071827360944 0.94037853154962 0.0
+0.22609281726390565 0.05962146845038005 0.0
+0.8335286511721887 0.0596214684396954 0.0
+0.08323567441744781 0.30932849168495424 0.0
+0.36894996012104847 0.20247861130752293 0.0
+0.6546642458353342 0.3453357541646658 0.0
+0.26210007974361726 0.48819289701112367 0.0
+0.797521388692477 0.48819289702180857 0.0
+0.654664245846019 0.8807570631135255 0.0
+0.94037853154962 0.7739071827360944 0.0
+0.08323567440676283 0.9167643255932372 0.0
diff --git a/tests/pyposcar/results/POSCAR-C6.vasp_cluster-n1.vasp b/tests/pyposcar/results/POSCAR-C6.vasp_cluster-n1.vasp
new file mode 100644
index 00000000..f95754ea
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6.vasp_cluster-n1.vasp
@@ -0,0 +1,42 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C
+13 15 6
+Direct
+0.09523809524285715 0.04761904761428571 0.0
+0.9523809523857143 0.04761904761428576 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.04761904761428571 0.09523809524285715 0.0
+0.19047619047142852 0.09523809524285712 0.0
+0.9047619047571429 0.09523809524285715 0.0
+0.0476190476142857 0.2380952381 0.0
+0.19047619047142858 0.23809523810000002 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.04761904761428576 0.9523809523857143 0.0
+0.9047619047571428 0.9523809523857142 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
diff --git a/tests/pyposcar/results/POSCAR-C6.vasp_cluster-n2.vasp b/tests/pyposcar/results/POSCAR-C6.vasp_cluster-n2.vasp
new file mode 100644
index 00000000..abe09840
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6.vasp_cluster-n2.vasp
@@ -0,0 +1,61 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C
+26 21 6
+Direct
+0.09523809524285715 0.04761904761428571 0.0
+0.2380952381 0.0476190476142857 0.0
+0.8095238095285713 0.0476190476142857 0.0
+0.9523809523857143 0.04761904761428576 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.23809523810000002 0.19047619047142858 0.0
+0.9523809523857143 0.19047619047142855 0.0
+0.09523809524285717 0.3333333333285714 0.0
+0.2380952381 0.3333333333285714 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.6666666666714286 0.3333333333285714 0.0
+0.2380952381 0.4761904761857143 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.8095238095285713 0.4761904761857143 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.09523809524285715 0.9047619047571429 0.0
+0.6666666666714285 0.9047619047571427 0.0
+0.8095238095285713 0.9047619047571429 0.0
+0.9523809523857142 0.9047619047571428 0.0
+0.04761904761428571 0.09523809524285715 0.0
+0.19047619047142852 0.09523809524285712 0.0
+0.9047619047571429 0.09523809524285715 0.0
+0.0476190476142857 0.2380952381 0.0
+0.19047619047142858 0.23809523810000002 0.0
+0.3333333333285714 0.2380952381 0.0
+0.4761904761857143 0.2380952381 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.3333333333285714 0.6666666666714286 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.9047619047571427 0.6666666666714285 0.0
+0.4761904761857143 0.8095238095285713 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.9047619047571429 0.8095238095285713 0.0
+0.04761904761428576 0.9523809523857143 0.0
+0.9047619047571428 0.9523809523857142 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
diff --git a/tests/pyposcar/results/POSCAR-C6.vasp_cluster-s1.vasp b/tests/pyposcar/results/POSCAR-C6.vasp_cluster-s1.vasp
new file mode 100644
index 00000000..bc0a8882
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6.vasp_cluster-s1.vasp
@@ -0,0 +1,36 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C
+13 9 6
+Direct
+0.09523809524285715 0.04761904761428571 0.0
+0.9523809523857143 0.04761904761428576 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.04761904761428571 0.09523809524285715 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
diff --git a/tests/pyposcar/results/POSCAR-C6.vasp_cluster-s2.vasp b/tests/pyposcar/results/POSCAR-C6.vasp_cluster-s2.vasp
new file mode 100644
index 00000000..fe6cb26f
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6.vasp_cluster-s2.vasp
@@ -0,0 +1,49 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C
+18 17 6
+Direct
+0.09523809524285715 0.04761904761428571 0.0
+0.9523809523857143 0.04761904761428576 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.23809523810000002 0.19047619047142858 0.0
+0.9523809523857143 0.19047619047142855 0.0
+0.2380952381 0.3333333333285714 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.8095238095285713 0.9047619047571429 0.0
+0.9523809523857142 0.9047619047571428 0.0
+0.04761904761428571 0.09523809524285715 0.0
+0.19047619047142852 0.09523809524285712 0.0
+0.9047619047571429 0.09523809524285715 0.0
+0.0476190476142857 0.2380952381 0.0
+0.19047619047142858 0.23809523810000002 0.0
+0.3333333333285714 0.2380952381 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.9047619047571429 0.8095238095285713 0.0
+0.04761904761428576 0.9523809523857143 0.0
+0.9047619047571428 0.9523809523857142 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
diff --git a/tests/pyposcar/results/POSCAR-C6.vasp_cluster.vasp b/tests/pyposcar/results/POSCAR-C6.vasp_cluster.vasp
new file mode 100644
index 00000000..2c911f34
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6.vasp_cluster.vasp
@@ -0,0 +1,24 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C
+7 3 6
+Direct
+0.09523809524285715 0.04761904761428571 0.0
+0.9523809523857143 0.04761904761428576 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.6666666666714286 0.7619047619 0.0
+0.04761904761428571 0.09523809524285715 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
diff --git a/tests/pyposcar/results/POSCAR-C6.vasp_defect.vasp b/tests/pyposcar/results/POSCAR-C6.vasp_defect.vasp
new file mode 100644
index 00000000..70052f4e
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6.vasp_defect.vasp
@@ -0,0 +1,106 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B D
+40 42 16
+Direct
+0.2380952381 0.0476190476142857 0.0
+0.3809523809571429 0.04761904761428573 0.0
+0.5238095238142857 0.0476190476142857 0.0
+0.6666666666714285 0.04761904761428576 0.0
+0.8095238095285713 0.0476190476142857 0.0
+0.23809523810000002 0.19047619047142858 0.0
+0.38095238095714284 0.19047619047142855 0.0
+0.5238095238142857 0.19047619047142852 0.0
+0.6666666666714285 0.19047619047142855 0.0
+0.8095238095285713 0.19047619047142855 0.0
+0.9523809523857143 0.19047619047142855 0.0
+0.09523809524285717 0.3333333333285714 0.0
+0.2380952381 0.3333333333285714 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.6666666666714286 0.3333333333285714 0.0
+0.8095238095285713 0.3333333333285713 0.0
+0.9523809523857143 0.3333333333285715 0.0
+0.09523809524285706 0.4761904761857142 0.0
+0.2380952381 0.4761904761857143 0.0
+0.8095238095285713 0.4761904761857143 0.0
+0.9523809523857143 0.4761904761857143 0.0
+0.09523809524285709 0.6190476190428571 0.0
+0.2380952381 0.6190476190428572 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.9523809523857141 0.6190476190428571 0.0
+0.09523809524285715 0.7619047618999999 0.0
+0.2380952381 0.7619047619 0.0
+0.38095238095714284 0.7619047618999999 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.9523809523857143 0.7619047619000001 0.0
+0.09523809524285715 0.9047619047571429 0.0
+0.23809523809999994 0.9047619047571429 0.0
+0.3809523809571429 0.9047619047571429 0.0
+0.5238095238142857 0.9047619047571429 0.0
+0.6666666666714285 0.9047619047571427 0.0
+0.8095238095285713 0.9047619047571429 0.0
+0.9523809523857142 0.9047619047571428 0.0
+0.19047619047142852 0.09523809524285712 0.0
+0.3333333333285714 0.09523809524285717 0.0
+0.4761904761857142 0.09523809524285706 0.0
+0.6190476190428571 0.09523809524285709 0.0
+0.7619047618999999 0.09523809524285715 0.0
+0.9047619047571429 0.09523809524285715 0.0
+0.0476190476142857 0.2380952381 0.0
+0.19047619047142858 0.23809523810000002 0.0
+0.3333333333285714 0.2380952381 0.0
+0.4761904761857143 0.2380952381 0.0
+0.6190476190428572 0.2380952381 0.0
+0.7619047619 0.2380952381 0.0
+0.9047619047571429 0.23809523809999994 0.0
+0.04761904761428573 0.3809523809571429 0.0
+0.19047619047142855 0.38095238095714284 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.7619047618999999 0.38095238095714284 0.0
+0.9047619047571429 0.3809523809571429 0.0
+0.0476190476142857 0.5238095238142857 0.0
+0.19047619047142852 0.5238095238142857 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.9047619047571429 0.5238095238142857 0.0
+0.04761904761428576 0.6666666666714285 0.0
+0.19047619047142855 0.6666666666714285 0.0
+0.3333333333285714 0.6666666666714286 0.0
+0.9047619047571427 0.6666666666714285 0.0
+0.0476190476142857 0.8095238095285713 0.0
+0.19047619047142855 0.8095238095285713 0.0
+0.3333333333285713 0.8095238095285713 0.0
+0.4761904761857143 0.8095238095285713 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.9047619047571429 0.8095238095285713 0.0
+0.04761904761428576 0.9523809523857143 0.0
+0.19047619047142855 0.9523809523857143 0.0
+0.3333333333285715 0.9523809523857143 0.0
+0.4761904761857143 0.9523809523857143 0.0
+0.6190476190428571 0.9523809523857141 0.0
+0.7619047619000001 0.9523809523857143 0.0
+0.9047619047571428 0.9523809523857142 0.0
+0.09523809524285715 0.04761904761428571 0.0
+0.9523809523857143 0.04761904761428576 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.6666666666714286 0.7619047619 0.0
+0.04761904761428571 0.09523809524285715 0.0
+0.4761904761857143 0.3809523809571429 0.0
diff --git a/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-h1.vasp b/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-h1.vasp
new file mode 100644
index 00000000..8bdadd2b
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-h1.vasp
@@ -0,0 +1,55 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C H
+13 9 6 19
+Direct
+0.09523809524285715 0.0476190476142857 0.0
+0.9523809523857143 0.0476190476142857 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.3333333333285714 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.0476190476142857 0.09523809524285715 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.3333333333285714 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.5595238095280002 0.5833333333280002 0.01875
+0.05962146843969511 -0.023614205970668444 0.0
+0.16647134882781134 0.08323567441744784 0.0
+0.9167643255825524 -0.02361420597066849 0.0
+0.9167643255932372 0.08323567440676283 0.0
+0.05962146845038005 0.22609281726390565 0.0
+0.16647134882781128 0.22609281727459063 0.0
+0.34533575415398077 0.26210007974361726 0.0
+0.48819289701112367 0.26210007974361726 0.0
+0.3453357541646658 0.6546642458353342 0.0
+0.8807570631135255 0.654664245846019 0.0
+0.48819289702180857 0.797521388692477 0.0
+0.8807570631135254 0.7975213887031619 0.0
+0.26210007974361726 0.34533575415398077 0.0
+0.6546642458353342 0.3453357541646658 0.0
+0.26210007974361726 0.48819289701112367 0.0
+0.797521388692477 0.48819289702180857 0.0
+0.654664245846019 0.8807570631135255 0.0
+0.7975213887031619 0.8807570631135254 0.0
diff --git a/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-h2.vasp b/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-h2.vasp
new file mode 100644
index 00000000..739b2777
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-h2.vasp
@@ -0,0 +1,67 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C H
+18 17 6 18
+Direct
+0.09523809524285715 0.0476190476142857 0.0
+0.9523809523857143 0.0476190476142857 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.23809523810000002 0.19047619047142858 0.0
+0.9523809523857143 0.19047619047142855 0.0
+0.2380952381 0.3333333333285714 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.3333333333285714 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.8095238095285714 0.904761904757143 0.0
+0.9523809523857142 0.9047619047571428 0.0
+0.0476190476142857 0.09523809524285715 0.0
+0.19047619047142852 0.09523809524285712 0.0
+0.9047619047571429 0.09523809524285703 0.0
+0.0476190476142857 0.2380952381 0.0
+0.19047619047142858 0.23809523810000002 0.0
+0.3333333333285714 0.2380952381 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.3333333333285714 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.904761904757143 0.8095238095285714 0.0
+0.0476190476142857 0.9523809523857143 0.0
+0.9047619047571428 0.9523809523857142 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.5595238095280002 0.5833333333280002 0.01875
+0.9167643255932372 0.22609281726390562 0.0
+0.20247861130752293 0.36894996012104847 0.0
+0.48819289701112367 0.26210007974361726 0.0
+0.3453357541646658 0.6546642458353342 0.0
+0.8807570631135255 0.654664245846019 0.0
+0.48819289702180857 0.797521388692477 0.0
+0.7739071827360944 0.94037853154962 0.0
+0.22609281726390565 0.05962146845038005 0.0
+0.8335286511721887 0.0596214684396954 0.0
+0.08323567441744781 0.30932849168495424 0.0
+0.36894996012104847 0.20247861130752293 0.0
+0.6546642458353342 0.3453357541646658 0.0
+0.26210007974361726 0.48819289701112367 0.0
+0.797521388692477 0.48819289702180857 0.0
+0.654664245846019 0.8807570631135255 0.0
+0.94037853154962 0.7739071827360944 0.0
+0.08323567440676283 0.9167643255932372 0.0
diff --git a/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-n1.vasp b/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-n1.vasp
new file mode 100644
index 00000000..699c89dd
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-n1.vasp
@@ -0,0 +1,43 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C H
+13 15 6 1
+Direct
+0.09523809524285715 0.04761904761428571 0.0
+0.9523809523857143 0.04761904761428576 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.04761904761428571 0.09523809524285715 0.0
+0.19047619047142852 0.09523809524285712 0.0
+0.9047619047571429 0.09523809524285715 0.0
+0.0476190476142857 0.2380952381 0.0
+0.19047619047142858 0.23809523810000002 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.04761904761428576 0.9523809523857143 0.0
+0.9047619047571428 0.9523809523857142 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.5595238095280002 0.5833333333280002 0.01875
diff --git a/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-n2.vasp b/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-n2.vasp
new file mode 100644
index 00000000..4aa48665
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-n2.vasp
@@ -0,0 +1,62 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C H
+26 21 6 1
+Direct
+0.09523809524285715 0.04761904761428571 0.0
+0.2380952381 0.0476190476142857 0.0
+0.8095238095285713 0.0476190476142857 0.0
+0.9523809523857143 0.04761904761428576 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.23809523810000002 0.19047619047142858 0.0
+0.9523809523857143 0.19047619047142855 0.0
+0.09523809524285717 0.3333333333285714 0.0
+0.2380952381 0.3333333333285714 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.6666666666714286 0.3333333333285714 0.0
+0.2380952381 0.4761904761857143 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.8095238095285713 0.4761904761857143 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.09523809524285715 0.9047619047571429 0.0
+0.6666666666714285 0.9047619047571427 0.0
+0.8095238095285713 0.9047619047571429 0.0
+0.9523809523857142 0.9047619047571428 0.0
+0.04761904761428571 0.09523809524285715 0.0
+0.19047619047142852 0.09523809524285712 0.0
+0.9047619047571429 0.09523809524285715 0.0
+0.0476190476142857 0.2380952381 0.0
+0.19047619047142858 0.23809523810000002 0.0
+0.3333333333285714 0.2380952381 0.0
+0.4761904761857143 0.2380952381 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.3333333333285714 0.6666666666714286 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.9047619047571427 0.6666666666714285 0.0
+0.4761904761857143 0.8095238095285713 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.9047619047571429 0.8095238095285713 0.0
+0.04761904761428576 0.9523809523857143 0.0
+0.9047619047571428 0.9523809523857142 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.5595238095280002 0.5833333333280002 0.01875
diff --git a/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-s1.vasp b/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-s1.vasp
new file mode 100644
index 00000000..d1b58e94
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-s1.vasp
@@ -0,0 +1,37 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C H
+13 9 6 1
+Direct
+0.09523809524285715 0.04761904761428571 0.0
+0.9523809523857143 0.04761904761428576 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.04761904761428571 0.09523809524285715 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.5595238095280002 0.5833333333280002 0.01875
diff --git a/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-s2.vasp b/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-s2.vasp
new file mode 100644
index 00000000..182a6129
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6H.vasp_cluster-s2.vasp
@@ -0,0 +1,50 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C H
+18 17 6 1
+Direct
+0.09523809524285715 0.04761904761428571 0.0
+0.9523809523857143 0.04761904761428576 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.23809523810000002 0.19047619047142858 0.0
+0.9523809523857143 0.19047619047142855 0.0
+0.2380952381 0.3333333333285714 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.6666666666714286 0.7619047619 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.8095238095285713 0.9047619047571429 0.0
+0.9523809523857142 0.9047619047571428 0.0
+0.04761904761428571 0.09523809524285715 0.0
+0.19047619047142852 0.09523809524285712 0.0
+0.9047619047571429 0.09523809524285715 0.0
+0.0476190476142857 0.2380952381 0.0
+0.19047619047142858 0.23809523810000002 0.0
+0.3333333333285714 0.2380952381 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.9047619047571429 0.8095238095285713 0.0
+0.04761904761428576 0.9523809523857143 0.0
+0.9047619047571428 0.9523809523857142 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.5595238095280002 0.5833333333280002 0.01875
diff --git a/tests/pyposcar/results/POSCAR-C6H.vasp_cluster.vasp b/tests/pyposcar/results/POSCAR-C6H.vasp_cluster.vasp
new file mode 100644
index 00000000..2015cfa9
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6H.vasp_cluster.vasp
@@ -0,0 +1,25 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B C H
+7 3 6 1
+Direct
+0.09523809524285715 0.04761904761428571 0.0
+0.9523809523857143 0.04761904761428576 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.6666666666714286 0.7619047619 0.0
+0.04761904761428571 0.09523809524285715 0.0
+0.4761904761857143 0.3809523809571429 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.5595238095280002 0.5833333333280002 0.01875
diff --git a/tests/pyposcar/results/POSCAR-C6H.vasp_defect.vasp b/tests/pyposcar/results/POSCAR-C6H.vasp_defect.vasp
new file mode 100644
index 00000000..cbe26751
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-C6H.vasp_defect.vasp
@@ -0,0 +1,107 @@
+poscar.py
+1.0
+8.753472 -15.161458246631552 0.0
+8.753472 15.161458246631552 0.0
+0.0 0.0 16.0
+N B D
+40 42 17
+Direct
+0.2380952381 0.0476190476142857 0.0
+0.3809523809571429 0.04761904761428573 0.0
+0.5238095238142857 0.0476190476142857 0.0
+0.6666666666714285 0.04761904761428576 0.0
+0.8095238095285713 0.0476190476142857 0.0
+0.23809523810000002 0.19047619047142858 0.0
+0.38095238095714284 0.19047619047142855 0.0
+0.5238095238142857 0.19047619047142852 0.0
+0.6666666666714285 0.19047619047142855 0.0
+0.8095238095285713 0.19047619047142855 0.0
+0.9523809523857143 0.19047619047142855 0.0
+0.09523809524285717 0.3333333333285714 0.0
+0.2380952381 0.3333333333285714 0.0
+0.3809523809571429 0.3333333333285714 0.0
+0.5238095238142858 0.33333333332857146 0.0
+0.6666666666714286 0.3333333333285714 0.0
+0.8095238095285713 0.3333333333285713 0.0
+0.9523809523857143 0.3333333333285715 0.0
+0.09523809524285706 0.4761904761857142 0.0
+0.2380952381 0.4761904761857143 0.0
+0.8095238095285713 0.4761904761857143 0.0
+0.9523809523857143 0.4761904761857143 0.0
+0.09523809524285709 0.6190476190428571 0.0
+0.2380952381 0.6190476190428572 0.0
+0.38095238095714284 0.6190476190428571 0.0
+0.8095238095285713 0.6190476190428571 0.0
+0.9523809523857141 0.6190476190428571 0.0
+0.09523809524285715 0.7619047618999999 0.0
+0.2380952381 0.7619047619 0.0
+0.38095238095714284 0.7619047618999999 0.0
+0.5238095238142857 0.7619047618999999 0.0
+0.8095238095285713 0.7619047618999999 0.0
+0.9523809523857143 0.7619047619000001 0.0
+0.09523809524285715 0.9047619047571429 0.0
+0.23809523809999994 0.9047619047571429 0.0
+0.3809523809571429 0.9047619047571429 0.0
+0.5238095238142857 0.9047619047571429 0.0
+0.6666666666714285 0.9047619047571427 0.0
+0.8095238095285713 0.9047619047571429 0.0
+0.9523809523857142 0.9047619047571428 0.0
+0.19047619047142852 0.09523809524285712 0.0
+0.3333333333285714 0.09523809524285717 0.0
+0.4761904761857142 0.09523809524285706 0.0
+0.6190476190428571 0.09523809524285709 0.0
+0.7619047618999999 0.09523809524285715 0.0
+0.9047619047571429 0.09523809524285715 0.0
+0.0476190476142857 0.2380952381 0.0
+0.19047619047142858 0.23809523810000002 0.0
+0.3333333333285714 0.2380952381 0.0
+0.4761904761857143 0.2380952381 0.0
+0.6190476190428572 0.2380952381 0.0
+0.7619047619 0.2380952381 0.0
+0.9047619047571429 0.23809523809999994 0.0
+0.04761904761428573 0.3809523809571429 0.0
+0.19047619047142855 0.38095238095714284 0.0
+0.3333333333285714 0.3809523809571429 0.0
+0.6190476190428571 0.38095238095714284 0.0
+0.7619047618999999 0.38095238095714284 0.0
+0.9047619047571429 0.3809523809571429 0.0
+0.0476190476142857 0.5238095238142857 0.0
+0.19047619047142852 0.5238095238142857 0.0
+0.33333333332857146 0.5238095238142858 0.0
+0.7619047618999999 0.5238095238142857 0.0
+0.9047619047571429 0.5238095238142857 0.0
+0.04761904761428576 0.6666666666714285 0.0
+0.19047619047142855 0.6666666666714285 0.0
+0.3333333333285714 0.6666666666714286 0.0
+0.9047619047571427 0.6666666666714285 0.0
+0.0476190476142857 0.8095238095285713 0.0
+0.19047619047142855 0.8095238095285713 0.0
+0.3333333333285713 0.8095238095285713 0.0
+0.4761904761857143 0.8095238095285713 0.0
+0.6190476190428571 0.8095238095285713 0.0
+0.7619047618999999 0.8095238095285713 0.0
+0.9047619047571429 0.8095238095285713 0.0
+0.04761904761428576 0.9523809523857143 0.0
+0.19047619047142855 0.9523809523857143 0.0
+0.3333333333285715 0.9523809523857143 0.0
+0.4761904761857143 0.9523809523857143 0.0
+0.6190476190428571 0.9523809523857141 0.0
+0.7619047619000001 0.9523809523857143 0.0
+0.9047619047571428 0.9523809523857142 0.0
+0.09523809524285715 0.04761904761428571 0.0
+0.9523809523857143 0.04761904761428576 0.0
+0.09523809524285712 0.19047619047142852 0.0
+0.47619047618571425 0.6666666666714285 0.0
+0.7619047619 0.6666666666714286 0.0
+0.3809523809571429 0.4761904761857143 0.0
+0.6666666666714285 0.47619047618571425 0.0
+0.4761904761857142 0.5238095238142856 0.0
+0.6190476190428571 0.5238095238142857 0.0
+0.5238095238142856 0.4761904761857142 0.0
+0.6666666666714285 0.6190476190428571 0.0
+0.5238095238142857 0.6190476190428571 0.0
+0.6190476190428571 0.6666666666714285 0.0
+0.5595238095280002 0.5833333333280002 0.01875
+0.6666666666714286 0.7619047619 0.0
+0.04761904761428571 0.09523809524285715 0.0
+0.4761904761857143 0.3809523809571429 0.0
diff --git a/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-h1.vasp b/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-h1.vasp
new file mode 100644
index 00000000..1d22eb2c
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-h1.vasp
@@ -0,0 +1,57 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C Si H
+18 1 30
+Direct
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.8731307995842599 0.9995662939375691 0.1279591148113539
+0.8731307995842599 0.1279591148113539 0.9995662939375691
+0.9345408851886461 0.0629337060624309 0.1893692004157401
+0.9345408851886461 0.1893692004157401 0.0629337060624309
+0.9995662939375691 0.8731307995842599 0.1279591148113539
+0.1279591148113539 0.8731307995842599 0.9995662939375691
+0.0629337060624309 0.9345408851886461 0.1893692004157401
+0.1893692004157401 0.9345408851886461 0.0629337060624309
+0.937284188837971 0.937284188837971 0.070203626160307
+0.9995662939375691 0.1279591148113539 0.8731307995842599
+0.1279591148113539 0.9995662939375691 0.8731307995842599
+0.0629337060624309 0.1893692004157401 0.9345408851886461
+0.1893692004157401 0.0629337060624309 0.9345408851886461
+0.937284188837971 0.070203626160307 0.937284188837971
+0.070203626160307 0.937284188837971 0.937284188837971
+0.031 0.031 0.031
+1.0398029891679987 0.1669850769602949 0.1669850769602949
+0.1669850769602949 1.0398029891679987 0.1669850769602949
+0.1669850769602949 0.1669850769602949 1.0398029891679987
+0.1068929299979297 0.2333597773025895 0.8911976341943466
+0.018958667978788497 0.23159813039943777 0.9795868076298408
+0.23159813039943777 0.018958667978788497 0.9795868076298408
+0.2333597773025895 0.1068929299979297 0.8911976341943466
+0.08291319237015915 1.0435413320212115 0.8309018696005621
+0.17130236580565325 0.9556070700020703 0.8291402226974105
+0.8309018696005621 1.0435413320212115 0.08291319237015915
+0.8291402226974105 0.9556070700020703 0.17130236580565325
+0.8309018696005621 0.08291319237015915 1.0435413320212115
+0.8291402226974105 0.17130236580565325 0.9556070700020703
+0.8911976341943466 0.1068929299979297 0.2333597773025895
+0.9795868076298408 0.018958667978788497 0.23159813039943777
+0.8911976341943466 0.2333597773025895 0.1068929299979297
+0.9795868076298408 0.23159813039943777 0.018958667978788497
+0.8955149230397051 0.022697010832001402 0.8955149230397051
+1.0435413320212115 0.8309018696005621 0.08291319237015915
+0.9556070700020703 0.8291402226974105 0.17130236580565325
+0.08291319237015915 0.8309018696005621 1.0435413320212115
+0.17130236580565325 0.8291402226974105 0.9556070700020703
+0.022697010832001402 0.8955149230397051 0.8955149230397051
+0.1068929299979297 0.8911976341943466 0.2333597773025895
+0.018958667978788497 0.9795868076298408 0.23159813039943777
+0.23159813039943777 0.9795868076298408 0.018958667978788497
+0.2333597773025895 0.8911976341943466 0.1068929299979297
+0.8955149230397051 0.8955149230397051 0.022697010832001402
+1.0435413320212115 0.08291319237015915 0.8309018696005621
+0.9556070700020703 0.17130236580565325 0.8291402226974105
diff --git a/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-h2.vasp b/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-h2.vasp
new file mode 100644
index 00000000..77ad0e52
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-h2.vasp
@@ -0,0 +1,87 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C Si H
+36 1 42
+Direct
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.0603132372629247 0.1850183129284844 0.1850183129284844
+0.1850183129284844 0.0603132372629247 0.1850183129284844
+0.1850183129284844 0.1850183129284844 0.0603132372629247
+0.2502749849761727 0.999509551185831 0.999509551185831
+0.2481093523413591 0.1234959657115127 0.1234959657115127
+0.8731307995842599 0.9995662939375691 0.1279591148113539
+0.8731307995842599 0.1279591148113539 0.9995662939375691
+0.8122250150238273 0.062990448814169 0.062990448814169
+0.9345408851886461 0.0629337060624309 0.1893692004157401
+0.9345408851886461 0.1893692004157401 0.0629337060624309
+0.999509551185831 0.2502749849761727 0.999509551185831
+0.1234959657115127 0.2481093523413591 0.1234959657115127
+0.9995662939375691 0.8731307995842599 0.1279591148113539
+0.1279591148113539 0.8731307995842599 0.9995662939375691
+0.062990448814169 0.8122250150238273 0.062990448814169
+0.0629337060624309 0.9345408851886461 0.1893692004157401
+0.1893692004157401 0.9345408851886461 0.0629337060624309
+0.8774816870715156 0.8774816870715156 0.0021867627370753
+0.937284188837971 0.937284188837971 0.070203626160307
+0.999509551185831 0.999509551185831 0.2502749849761727
+0.1234959657115127 0.1234959657115127 0.2481093523413591
+0.9995662939375691 0.1279591148113539 0.8731307995842599
+0.1279591148113539 0.9995662939375691 0.8731307995842599
+0.062990448814169 0.062990448814169 0.8122250150238273
+0.0629337060624309 0.1893692004157401 0.9345408851886461
+0.1893692004157401 0.0629337060624309 0.9345408851886461
+0.8774816870715156 0.0021867627370753 0.8774816870715156
+0.937284188837971 0.070203626160307 0.937284188837971
+0.0021867627370753 0.8774816870715156 0.8774816870715156
+0.070203626160307 0.937284188837971 0.937284188837971
+0.8143906476586409 0.9390040342884873 0.9390040342884873
+0.9390040342884873 0.8143906476586409 0.9390040342884873
+0.9390040342884873 0.9390040342884873 0.8143906476586409
+0.031 0.031 0.031
+0.01802847524105865 0.2295055050817218 0.2295055050817218
+0.2295055050817218 0.01802847524105865 0.2295055050817218
+0.2295055050817218 0.2295055050817218 0.01802847524105865
+0.1068929299979297 0.2333597773025895 0.8911976341943466
+0.2333597773025895 0.1068929299979297 0.8911976341943466
+0.17130236580565325 0.9556070700020703 0.8291402226974105
+0.08029494676325268 0.08029494676325268 0.29298212308563265
+0.16724591574219372 0.16724591574219372 0.29190553225730387
+0.29298212308563265 0.08029494676325268 0.08029494676325268
+0.29190553225730387 0.16724591574219372 0.16724591574219372
+0.2937578006884491 1.0434155095988764 1.0434155095988764
+0.2942224598406261 0.9558355252456786 0.9558355252456786
+0.1066644747543214 0.1066644747543214 0.7682775401593739
+0.019084490401123387 0.019084490401123387 0.7687421993115507
+0.8329944949182783 0.044471524758941325 0.8329944949182783
+0.8291402226974105 0.17130236580565325 0.9556070700020703
+0.8291402226974105 0.9556070700020703 0.17130236580565325
+0.7687421993115507 0.019084490401123394 0.019084490401123394
+0.7682775401593739 0.1066644747543214 0.1066644747543214
+0.8911976341943466 0.1068929299979297 0.2333597773025895
+0.8911976341943466 0.2333597773025895 0.1068929299979297
+1.0434155095988764 0.2937578006884491 1.0434155095988764
+0.9558355252456786 0.2942224598406261 0.9558355252456786
+0.08029494676325268 0.29298212308563265 0.08029494676325268
+0.16724591574219372 0.29190553225730387 0.16724591574219372
+0.044471524758941325 0.8329944949182783 0.8329944949182783
+0.9556070700020703 0.8291402226974105 0.17130236580565325
+0.17130236580565325 0.8291402226974105 0.9556070700020703
+0.1066644747543214 0.7682775401593739 0.1066644747543214
+0.019084490401123394 0.7687421993115507 0.019084490401123394
+0.1068929299979297 0.8911976341943466 0.2333597773025895
+0.2333597773025895 0.8911976341943466 0.1068929299979297
+0.8329944949182783 0.8329944949182783 0.044471524758941325
+0.7695178769143672 0.9822050532367473 0.9822050532367473
+0.7705944677426961 0.8952540842578064 0.8952540842578064
+0.8952540842578064 0.7705944677426961 0.8952540842578064
+0.9822050532367473 0.7695178769143672 0.9822050532367473
+0.8952540842578064 0.8952540842578064 0.7705944677426961
+0.9822050532367473 0.9822050532367473 0.7695178769143672
+1.0434155095988764 1.0434155095988764 0.2937578006884491
+0.9558355252456786 0.9558355252456786 0.2942224598406261
+0.9556070700020703 0.17130236580565325 0.8291402226974105
diff --git a/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-n1.vasp b/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-n1.vasp
new file mode 100644
index 00000000..4f7f8aee
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-n1.vasp
@@ -0,0 +1,33 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C Si
+24 1
+Direct
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.0603132372629247 0.1850183129284844 0.1850183129284844
+0.1850183129284844 0.0603132372629247 0.1850183129284844
+0.1850183129284844 0.1850183129284844 0.0603132372629247
+0.8731307995842599 0.9995662939375691 0.1279591148113539
+0.8731307995842599 0.1279591148113539 0.9995662939375691
+0.9345408851886461 0.0629337060624309 0.1893692004157401
+0.9345408851886461 0.1893692004157401 0.0629337060624309
+0.9995662939375691 0.8731307995842599 0.1279591148113539
+0.1279591148113539 0.8731307995842599 0.9995662939375691
+0.0629337060624309 0.9345408851886461 0.1893692004157401
+0.1893692004157401 0.9345408851886461 0.0629337060624309
+0.8774816870715156 0.8774816870715156 0.0021867627370753
+0.937284188837971 0.937284188837971 0.070203626160307
+0.9995662939375691 0.1279591148113539 0.8731307995842599
+0.1279591148113539 0.9995662939375691 0.8731307995842599
+0.0629337060624309 0.1893692004157401 0.9345408851886461
+0.1893692004157401 0.0629337060624309 0.9345408851886461
+0.8774816870715156 0.0021867627370753 0.8774816870715156
+0.937284188837971 0.070203626160307 0.937284188837971
+0.0021867627370753 0.8774816870715156 0.8774816870715156
+0.070203626160307 0.937284188837971 0.937284188837971
+0.031 0.031 0.031
diff --git a/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-n2.vasp b/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-n2.vasp
new file mode 100644
index 00000000..ae532f22
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-n2.vasp
@@ -0,0 +1,63 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C Si
+54 1
+Direct
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.0603132372629247 0.1850183129284844 0.1850183129284844
+0.1850183129284844 0.0603132372629247 0.1850183129284844
+0.1850183129284844 0.1850183129284844 0.0603132372629247
+0.2502749849761727 0.999509551185831 0.999509551185831
+0.2481093523413591 0.1234959657115127 0.1234959657115127
+0.8731307995842599 0.9995662939375691 0.1279591148113539
+0.8731307995842599 0.1279591148113539 0.9995662939375691
+0.8122250150238273 0.062990448814169 0.062990448814169
+0.9345408851886461 0.0629337060624309 0.1893692004157401
+0.9345408851886461 0.1893692004157401 0.0629337060624309
+0.999509551185831 0.2502749849761727 0.999509551185831
+0.1234959657115127 0.2481093523413591 0.1234959657115127
+0.2493060901560398 0.2493060901560398 0.9992081589379467
+0.873273201162327 0.2515519094421919 0.1250720962463276
+0.9995662939375691 0.8731307995842599 0.1279591148113539
+0.1279591148113539 0.8731307995842599 0.9995662939375691
+0.062990448814169 0.8122250150238273 0.062990448814169
+0.0629337060624309 0.9345408851886461 0.1893692004157401
+0.1893692004157401 0.9345408851886461 0.0629337060624309
+0.2515519094421919 0.873273201162327 0.1250720962463276
+0.8774816870715156 0.8774816870715156 0.0021867627370753
+0.8131939098439602 0.8131939098439602 0.0632918410620533
+0.8109480905578081 0.9374279037536724 0.189226798837673
+0.9374279037536724 0.8109480905578081 0.189226798837673
+0.937284188837971 0.937284188837971 0.070203626160307
+0.999509551185831 0.999509551185831 0.2502749849761727
+0.1234959657115127 0.1234959657115127 0.2481093523413591
+0.2493060901560398 0.9992081589379467 0.2493060901560398
+0.873273201162327 0.1250720962463276 0.2515519094421919
+0.9992081589379467 0.2493060901560398 0.2493060901560398
+0.1250720962463276 0.873273201162327 0.2515519094421919
+0.9995662939375691 0.1279591148113539 0.8731307995842599
+0.1279591148113539 0.9995662939375691 0.8731307995842599
+0.062990448814169 0.062990448814169 0.8122250150238273
+0.0629337060624309 0.1893692004157401 0.9345408851886461
+0.1893692004157401 0.0629337060624309 0.9345408851886461
+0.2515519094421919 0.1250720962463276 0.873273201162327
+0.8774816870715156 0.0021867627370753 0.8774816870715156
+0.8131939098439602 0.0632918410620533 0.8131939098439602
+0.8109480905578081 0.189226798837673 0.9374279037536724
+0.937284188837971 0.070203626160307 0.937284188837971
+0.9374279037536724 0.189226798837673 0.8109480905578081
+0.1250720962463276 0.2515519094421919 0.873273201162327
+0.0021867627370753 0.8774816870715156 0.8774816870715156
+0.0632918410620533 0.8131939098439602 0.8131939098439602
+0.070203626160307 0.937284188837971 0.937284188837971
+0.189226798837673 0.8109480905578081 0.9374279037536724
+0.189226798837673 0.9374279037536724 0.8109480905578081
+0.8143906476586409 0.9390040342884873 0.9390040342884873
+0.9390040342884873 0.8143906476586409 0.9390040342884873
+0.9390040342884873 0.9390040342884873 0.8143906476586409
+0.031 0.031 0.031
diff --git a/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-s1.vasp b/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-s1.vasp
new file mode 100644
index 00000000..115ce0a6
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-s1.vasp
@@ -0,0 +1,27 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C Si
+18 1
+Direct
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.8731307995842599 0.9995662939375691 0.1279591148113539
+0.8731307995842599 0.1279591148113539 0.9995662939375691
+0.9345408851886461 0.0629337060624309 0.1893692004157401
+0.9345408851886461 0.1893692004157401 0.0629337060624309
+0.9995662939375691 0.8731307995842599 0.1279591148113539
+0.1279591148113539 0.8731307995842599 0.9995662939375691
+0.0629337060624309 0.9345408851886461 0.1893692004157401
+0.1893692004157401 0.9345408851886461 0.0629337060624309
+0.937284188837971 0.937284188837971 0.070203626160307
+0.9995662939375691 0.1279591148113539 0.8731307995842599
+0.1279591148113539 0.9995662939375691 0.8731307995842599
+0.0629337060624309 0.1893692004157401 0.9345408851886461
+0.1893692004157401 0.0629337060624309 0.9345408851886461
+0.937284188837971 0.070203626160307 0.937284188837971
+0.070203626160307 0.937284188837971 0.937284188837971
+0.031 0.031 0.031
diff --git a/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-s2.vasp b/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-s2.vasp
new file mode 100644
index 00000000..d95508a9
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-SiV.vasp_cluster-s2.vasp
@@ -0,0 +1,45 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C Si
+36 1
+Direct
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.0603132372629247 0.1850183129284844 0.1850183129284844
+0.1850183129284844 0.0603132372629247 0.1850183129284844
+0.1850183129284844 0.1850183129284844 0.0603132372629247
+0.2502749849761727 0.999509551185831 0.999509551185831
+0.2481093523413591 0.1234959657115127 0.1234959657115127
+0.8731307995842599 0.9995662939375691 0.1279591148113539
+0.8731307995842599 0.1279591148113539 0.9995662939375691
+0.8122250150238273 0.062990448814169 0.062990448814169
+0.9345408851886461 0.0629337060624309 0.1893692004157401
+0.9345408851886461 0.1893692004157401 0.0629337060624309
+0.999509551185831 0.2502749849761727 0.999509551185831
+0.1234959657115127 0.2481093523413591 0.1234959657115127
+0.9995662939375691 0.8731307995842599 0.1279591148113539
+0.1279591148113539 0.8731307995842599 0.9995662939375691
+0.062990448814169 0.8122250150238273 0.062990448814169
+0.0629337060624309 0.9345408851886461 0.1893692004157401
+0.1893692004157401 0.9345408851886461 0.0629337060624309
+0.8774816870715156 0.8774816870715156 0.0021867627370753
+0.937284188837971 0.937284188837971 0.070203626160307
+0.999509551185831 0.999509551185831 0.2502749849761727
+0.1234959657115127 0.1234959657115127 0.2481093523413591
+0.9995662939375691 0.1279591148113539 0.8731307995842599
+0.1279591148113539 0.9995662939375691 0.8731307995842599
+0.062990448814169 0.062990448814169 0.8122250150238273
+0.0629337060624309 0.1893692004157401 0.9345408851886461
+0.1893692004157401 0.0629337060624309 0.9345408851886461
+0.8774816870715156 0.0021867627370753 0.8774816870715156
+0.937284188837971 0.070203626160307 0.937284188837971
+0.0021867627370753 0.8774816870715156 0.8774816870715156
+0.070203626160307 0.937284188837971 0.937284188837971
+0.8143906476586409 0.9390040342884873 0.9390040342884873
+0.9390040342884873 0.8143906476586409 0.9390040342884873
+0.9390040342884873 0.9390040342884873 0.8143906476586409
+0.031 0.031 0.031
diff --git a/tests/pyposcar/results/POSCAR-SiV.vasp_cluster.vasp b/tests/pyposcar/results/POSCAR-SiV.vasp_cluster.vasp
new file mode 100644
index 00000000..9fead238
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-SiV.vasp_cluster.vasp
@@ -0,0 +1,15 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C Si
+6 1
+Direct
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.937284188837971 0.937284188837971 0.070203626160307
+0.937284188837971 0.070203626160307 0.937284188837971
+0.070203626160307 0.937284188837971 0.937284188837971
+0.031 0.031 0.031
diff --git a/tests/pyposcar/results/POSCAR-SiV.vasp_defect.vasp b/tests/pyposcar/results/POSCAR-SiV.vasp_defect.vasp
new file mode 100644
index 00000000..d354c3a9
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-SiV.vasp_defect.vasp
@@ -0,0 +1,519 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C D
+504 7
+Direct
+0.0603132372629247 0.1850183129284844 0.1850183129284844
+0.1850183129284844 0.0603132372629247 0.1850183129284844
+0.1850183129284844 0.1850183129284844 0.0603132372629247
+0.2502749849761727 0.999509551185831 0.999509551185831
+0.2481093523413591 0.1234959657115127 0.1234959657115127
+0.3748384051912907 0.9996556373905889 0.1247681679730874
+0.3748384051912907 0.1247681679730874 0.9996556373905889
+0.3120762287629333 0.0619121991084199 0.0619121991084199
+0.3112059277232575 0.1865259383110214 0.1865259383110214
+0.4371543118497385 0.0622460346437776 0.1872724920509938
+0.4371543118497385 0.1872724920509938 0.0622460346437776
+0.5000967740344464 0.9999622175248959 0.9999622175248959
+0.4996938489792768 0.1249032075827188 0.1249032075827188
+0.6248890629114143 6.7564762908e-05 0.1251941545067723
+0.6248890629114143 0.1251941545067723 6.7564762908e-05
+0.5624032259655536 0.0625377824751041 0.0625377824751041
+0.5620769183451486 0.1874846665729564 0.1874846665729564
+0.6870411186457659 0.0626083855507105 0.1878758943402161
+0.6870411186457659 0.1878758943402161 0.0626083855507105
+0.7504237712370667 0.0005878008915801 0.0005878008915801
+0.7495298757449476 0.1252954879007717 0.1252954879007717
+0.8731307995842599 0.9995662939375691 0.1279591148113539
+0.8731307995842599 0.1279591148113539 0.9995662939375691
+0.8122250150238273 0.062990448814169 0.062990448814169
+0.8116014776945093 0.187919437306256 0.187919437306256
+0.9345408851886461 0.0629337060624309 0.1893692004157401
+0.9345408851886461 0.1893692004157401 0.0629337060624309
+0.999509551185831 0.2502749849761727 0.999509551185831
+0.9996556373905889 0.3748384051912907 0.1247681679730874
+0.1234959657115127 0.2481093523413591 0.1234959657115127
+0.1247681679730874 0.3748384051912907 0.9996556373905889
+0.0619121991084199 0.3120762287629333 0.0619121991084199
+0.0622460346437776 0.4371543118497385 0.1872724920509938
+0.1865259383110214 0.3112059277232575 0.1865259383110214
+0.1872724920509938 0.4371543118497385 0.0622460346437776
+0.2493060901560398 0.2493060901560398 0.9992081589379467
+0.2494199406491617 0.3742461815682532 0.1245418082903385
+0.3742461815682532 0.2494199406491617 0.1245418082903385
+0.3747422135454173 0.3747422135454173 0.999760321803258
+0.3118665838096462 0.3118665838096462 0.061966276783231
+0.3121044770599752 0.4369226213862163 0.1872235973796492
+0.4369226213862163 0.3121044770599752 0.1872235973796492
+0.4372738623353456 0.4372738623353456 0.0623785656373315
+0.4997725022290425 0.2499871783213479 0.9998818005402867
+0.4996010915061717 0.3748197143601502 0.1249038502795159
+0.6245557295312949 0.2501427677896189 0.1250514631228725
+0.6245796981769658 0.3753966363493149 0.9999525141492356
+0.562155540476553 0.312573231075703 0.0624436860623163
+0.5621837316800722 0.4374222752875099 0.1874769898317012
+0.6869971030181148 0.3127377428931908 0.1875864047350788
+0.6871033636506851 0.4379203018230342 0.0625474858507644
+0.7489321799796116 0.251128859431212 0.999931623020764
+0.7493189410783287 0.3756265150108717 0.1250433437140188
+0.873273201162327 0.2515519094421919 0.1250720962463276
+0.8746241056597839 0.3754588813542341 0.9998916144492895
+0.811371140568788 0.3135678200203884 0.062568376979236
+0.8121867911027323 0.43771898860048 0.1875824358951448
+0.9368052185377209 0.3126683074099432 0.1873966451552107
+0.9373058454932277 0.4376109370885857 0.062432435237092
+0.9999622175248959 0.5000967740344464 0.9999622175248959
+6.7564762908e-05 0.6248890629114143 0.1251941545067723
+0.1249032075827188 0.4996938489792768 0.1249032075827188
+0.1251941545067723 0.6248890629114143 6.7564762908e-05
+0.0625377824751041 0.5624032259655536 0.0625377824751041
+0.0626083855507105 0.6870411186457659 0.1878758943402161
+0.1874846665729564 0.5620769183451486 0.1874846665729564
+0.1878758943402161 0.6870411186457659 0.0626083855507105
+0.2499871783213479 0.4997725022290425 0.9998818005402867
+0.2501427677896189 0.6245557295312949 0.1250514631228725
+0.3748197143601502 0.4996010915061717 0.1249038502795159
+0.3753966363493149 0.6245796981769658 0.9999525141492356
+0.312573231075703 0.562155540476553 0.0624436860623163
+0.3127377428931908 0.6869971030181148 0.1875864047350788
+0.4374222752875099 0.5621837316800722 0.1874769898317012
+0.4379203018230342 0.6871033636506851 0.0625474858507644
+0.4999677711967934 0.4999677711967934 0.9999503580635007
+0.5001086293311587 0.6247595982280671 0.1250528455635589
+0.6247595982280671 0.5001086293311587 0.1250528455635589
+0.6252261376646544 0.6252261376646544 0.0001214343626685
+0.5625322288032066 0.5625322288032066 0.0625496419364993
+0.5625205353304921 0.6873530369309861 0.1876170673463307
+0.6873530369309861 0.5625205353304921 0.1876170673463307
+0.6877577864545827 0.6877577864545827 0.062739678196742
+0.749926768924297 0.500344459523447 5.63139376837e-05
+0.7499752636010157 0.6250484783715251 0.125220018722203
+0.8748803435631061 0.5000994532469534 0.1250607874084295
+0.8752275079490062 0.6253456881502615 0.0002539653562224
+0.8125128216786521 0.5627274977709575 0.0626181994597133
+0.8124091120342101 0.6873321279342122 0.1878163533568156
+0.9374392125915705 0.5624005467530466 0.1876196564368939
+0.9377318320269126 0.6876615948087093 0.0628443626094111
+0.0005878008915801 0.7504237712370667 0.0005878008915801
+0.9995662939375691 0.8731307995842599 0.1279591148113539
+0.1252954879007717 0.7495298757449476 0.1252954879007717
+0.1279591148113539 0.8731307995842599 0.9995662939375691
+0.062990448814169 0.8122250150238273 0.062990448814169
+0.0629337060624309 0.9345408851886461 0.1893692004157401
+0.187919437306256 0.8116014776945093 0.187919437306256
+0.1893692004157401 0.9345408851886461 0.0629337060624309
+0.251128859431212 0.7489321799796116 0.999931623020764
+0.2515519094421919 0.873273201162327 0.1250720962463276
+0.3756265150108717 0.7493189410783287 0.1250433437140188
+0.3754588813542341 0.8746241056597839 0.9998916144492895
+0.3135678200203884 0.811371140568788 0.062568376979236
+0.3126683074099432 0.9368052185377209 0.1873966451552107
+0.43771898860048 0.8121867911027323 0.1875824358951448
+0.4376109370885857 0.9373058454932277 0.062432435237092
+0.500344459523447 0.749926768924297 5.63139376837e-05
+0.5000994532469534 0.8748803435631061 0.1250607874084295
+0.6250484783715251 0.7499752636010157 0.125220018722203
+0.6253456881502615 0.8752275079490062 0.0002539653562224
+0.5627274977709575 0.8125128216786521 0.0626181994597133
+0.5624005467530466 0.9374392125915705 0.1876196564368939
+0.6873321279342122 0.8124091120342101 0.1878163533568156
+0.6876615948087093 0.9377318320269126 0.0628443626094111
+0.7506334161903538 0.7506334161903538 0.000533723216769
+0.7498316925900568 0.8751033548447893 0.1256947814622791
+0.8751033548447893 0.7498316925900568 0.1256947814622791
+0.8774816870715156 0.8774816870715156 0.0021867627370753
+0.8131939098439602 0.8131939098439602 0.0632918410620533
+0.8109480905578081 0.9374279037536724 0.189226798837673
+0.9374279037536724 0.8109480905578081 0.189226798837673
+0.999509551185831 0.999509551185831 0.2502749849761727
+0.9996556373905889 0.1247681679730874 0.3748384051912907
+0.1247681679730874 0.9996556373905889 0.3748384051912907
+0.1234959657115127 0.1234959657115127 0.2481093523413591
+0.0619121991084199 0.0619121991084199 0.3120762287629333
+0.0622460346437776 0.1872724920509938 0.4371543118497385
+0.1872724920509938 0.0622460346437776 0.4371543118497385
+0.1865259383110214 0.1865259383110214 0.3112059277232575
+0.2493060901560398 0.9992081589379467 0.2493060901560398
+0.2494199406491617 0.1245418082903385 0.3742461815682532
+0.3747422135454173 0.999760321803258 0.3747422135454173
+0.3742461815682532 0.1245418082903385 0.2494199406491617
+0.3118665838096462 0.061966276783231 0.3118665838096462
+0.3121044770599752 0.1872235973796492 0.4369226213862163
+0.4372738623353456 0.0623785656373315 0.4372738623353456
+0.4369226213862163 0.1872235973796492 0.3121044770599752
+0.4997725022290425 0.9998818005402867 0.2499871783213479
+0.4996010915061717 0.1249038502795159 0.3748197143601502
+0.6245796981769658 0.9999525141492356 0.3753966363493149
+0.6245557295312949 0.1250514631228725 0.2501427677896189
+0.562155540476553 0.0624436860623163 0.312573231075703
+0.5621837316800722 0.1874769898317012 0.4374222752875099
+0.6871033636506851 0.0625474858507644 0.4379203018230342
+0.6869971030181148 0.1875864047350788 0.3127377428931908
+0.7489321799796116 0.999931623020764 0.251128859431212
+0.7493189410783287 0.1250433437140188 0.3756265150108717
+0.8746241056597839 0.9998916144492895 0.3754588813542341
+0.873273201162327 0.1250720962463276 0.2515519094421919
+0.811371140568788 0.062568376979236 0.3135678200203884
+0.8121867911027323 0.1875824358951448 0.43771898860048
+0.9373058454932277 0.062432435237092 0.4376109370885857
+0.9368052185377209 0.1873966451552107 0.3126683074099432
+0.9992081589379467 0.2493060901560398 0.2493060901560398
+0.999760321803258 0.3747422135454173 0.3747422135454173
+0.1245418082903385 0.2494199406491617 0.3742461815682532
+0.1245418082903385 0.3742461815682532 0.2494199406491617
+0.061966276783231 0.3118665838096462 0.3118665838096462
+0.0623785656373315 0.4372738623353456 0.4372738623353456
+0.1872235973796492 0.3121044770599752 0.4369226213862163
+0.1872235973796492 0.4369226213862163 0.3121044770599752
+0.2491504000005023 0.2491504000005023 0.2491504000005023
+0.2497131676078297 0.3745620153373608 0.3745620153373608
+0.3745620153373608 0.2497131676078297 0.3745620153373608
+0.3745620153373608 0.3745620153373608 0.2497131676078297
+0.311931562877902 0.311931562877902 0.311931562877902
+0.3123373779011018 0.4372143977195861 0.4372143977195861
+0.4372143977195861 0.3123373779011018 0.4372143977195861
+0.4372143977195861 0.4372143977195861 0.3123373779011018
+0.4994956244664124 0.2498262317297488 0.2498262317297488
+0.4997227698817284 0.3748766291175016 0.3748766291175016
+0.6245995110599054 0.2500340528006291 0.3750375686275405
+0.6245995110599054 0.3750375686275405 0.2500340528006291
+0.5620893888672924 0.3124258299455249 0.3124258299455249
+0.5623403702971146 0.437446704112638 0.437446704112638
+0.6872477178003962 0.3125547798053745 0.4375190928588708
+0.6872477178003962 0.4375190928588708 0.3125547798053745
+0.7493701362645737 0.2502303352819055 0.2502303352819055
+0.7497511673377488 0.375083369305699 0.375083369305699
+0.8746836466431844 0.2500908879657899 0.3751678720657878
+0.8746836466431844 0.3751678720657878 0.2500908879657899
+0.8121639120863691 0.3126056846357059 0.3126056846357059
+0.8123537429970042 0.4375716978082309 0.4375716978082309
+0.937279981277797 0.3125247363989843 0.4374515216284749
+0.937279981277797 0.4374515216284749 0.3125247363989843
+0.9998818005402867 0.4997725022290425 0.2499871783213479
+0.9999525141492356 0.6245796981769658 0.3753966363493149
+0.1249038502795159 0.4996010915061717 0.3748197143601502
+0.1250514631228725 0.6245557295312949 0.2501427677896189
+0.0624436860623163 0.562155540476553 0.312573231075703
+0.0625474858507644 0.6871033636506851 0.4379203018230342
+0.1874769898317012 0.5621837316800722 0.4374222752875099
+0.1875864047350788 0.6869971030181148 0.3127377428931908
+0.2498262317297488 0.4994956244664124 0.2498262317297488
+0.2500340528006291 0.6245995110599054 0.3750375686275405
+0.3748766291175016 0.4997227698817284 0.3748766291175016
+0.3750375686275405 0.6245995110599054 0.2500340528006291
+0.3124258299455249 0.5620893888672924 0.3124258299455249
+0.3125547798053745 0.6872477178003962 0.4375190928588708
+0.437446704112638 0.5623403702971146 0.437446704112638
+0.4375190928588708 0.6872477178003962 0.3125547798053745
+0.4997978942833541 0.4997978942833541 0.2499813033376626
+0.4999819843286133 0.6248643733483306 0.3750633164823185
+0.6248643733483306 0.4999819843286133 0.3750633164823185
+0.6249283021917691 0.6249283021917691 0.2501462570029958
+0.5623803272361414 0.5623803272361414 0.3125411643022744
+0.5625180156713867 0.6874366835176815 0.4376356266516694
+0.6874366835176815 0.5625180156713867 0.4376356266516694
+0.687416630694301 0.687416630694301 0.3127488326622512
+0.7497969614070286 0.5000680732346083 0.2501381393081559
+0.7499452201946255 0.6249809071411292 0.3752522821995967
+0.8748829326536693 0.4999794646695079 0.3751469630690139
+0.8749175641048552 0.62478101139952 0.2503132088972677
+0.8123618606918441 0.5624319267653917 0.3127030385929714
+0.8124659471993709 0.6874624313724595 0.4379004889400946
+0.9374471544364411 0.5623913706688413 0.4377404017719329
+0.9374566562859812 0.6868734849891283 0.3131810589216713
+0.999931623020764 0.7489321799796116 0.251128859431212
+0.9998916144492895 0.8746241056597839 0.3754588813542341
+0.1250433437140188 0.7493189410783287 0.3756265150108717
+0.1250720962463276 0.873273201162327 0.2515519094421919
+0.062568376979236 0.811371140568788 0.3135678200203884
+0.062432435237092 0.9373058454932277 0.4376109370885857
+0.1875824358951448 0.8121867911027323 0.43771898860048
+0.1873966451552107 0.9368052185377209 0.3126683074099432
+0.2502303352819055 0.7493701362645737 0.2502303352819055
+0.2500908879657899 0.8746836466431844 0.3751678720657878
+0.375083369305699 0.7497511673377488 0.375083369305699
+0.3751678720657878 0.8746836466431844 0.2500908879657899
+0.3126056846357059 0.8121639120863691 0.3126056846357059
+0.3125247363989843 0.937279981277797 0.4374515216284749
+0.4375716978082309 0.8123537429970042 0.4375716978082309
+0.4374515216284749 0.937279981277797 0.3125247363989843
+0.5000680732346083 0.7497969614070286 0.2501381393081559
+0.4999794646695079 0.8748829326536693 0.3751469630690139
+0.6249809071411292 0.7499452201946255 0.3752522821995967
+0.62478101139952 0.8749175641048552 0.2503132088972677
+0.5624319267653917 0.8123618606918441 0.3127030385929714
+0.5623913706688413 0.9374471544364411 0.4377404017719329
+0.6874624313724595 0.8124659471993709 0.4379004889400946
+0.6868734849891283 0.9374566562859812 0.3131810589216713
+0.7498943153642941 0.7498943153642941 0.2503360879136309
+0.7497622571068092 0.8749135952649212 0.3755028969818852
+0.8749135952649212 0.7497622571068092 0.3755028969818852
+0.874580562693744 0.874580562693744 0.2508985223054978
+0.8122696647180945 0.8122696647180945 0.3131298637354263
+0.8123572322103811 0.9374485368771275 0.4379442704687051
+0.9374485368771275 0.8123572322103811 0.4379442704687051
+0.9372045120992283 0.9372045120992283 0.3129701242550524
+0.9999622175248959 0.9999622175248959 0.5000967740344464
+6.7564762908e-05 0.1251941545067723 0.6248890629114143
+0.1251941545067723 6.7564762908e-05 0.6248890629114143
+0.1249032075827188 0.1249032075827188 0.4996938489792768
+0.0625377824751041 0.0625377824751041 0.5624032259655536
+0.0626083855507105 0.1878758943402161 0.6870411186457659
+0.1878758943402161 0.0626083855507105 0.6870411186457659
+0.1874846665729564 0.1874846665729564 0.5620769183451486
+0.2499871783213479 0.9998818005402867 0.4997725022290425
+0.2501427677896189 0.1250514631228725 0.6245557295312949
+0.3753966363493149 0.9999525141492356 0.6245796981769658
+0.3748197143601502 0.1249038502795159 0.4996010915061717
+0.312573231075703 0.0624436860623163 0.562155540476553
+0.3127377428931908 0.1875864047350788 0.6869971030181148
+0.4379203018230342 0.0625474858507644 0.6871033636506851
+0.4374222752875099 0.1874769898317012 0.5621837316800722
+0.4999677711967934 0.9999503580635007 0.4999677711967934
+0.5001086293311587 0.1250528455635589 0.6247595982280671
+0.6252261376646544 0.0001214343626685 0.6252261376646544
+0.6247595982280671 0.1250528455635589 0.5001086293311587
+0.5625322288032066 0.0625496419364993 0.5625322288032066
+0.5625205353304921 0.1876170673463307 0.6873530369309861
+0.6877577864545827 0.062739678196742 0.6877577864545827
+0.6873530369309861 0.1876170673463307 0.5625205353304921
+0.749926768924297 5.63139376837e-05 0.500344459523447
+0.7499752636010157 0.125220018722203 0.6250484783715251
+0.8752275079490062 0.0002539653562224 0.6253456881502615
+0.8748803435631061 0.1250607874084295 0.5000994532469534
+0.8125128216786521 0.0626181994597133 0.5627274977709575
+0.8124091120342101 0.1878163533568156 0.6873321279342122
+0.9377318320269126 0.0628443626094111 0.6876615948087093
+0.9374392125915705 0.1876196564368939 0.5624005467530466
+0.9998818005402867 0.2499871783213479 0.4997725022290425
+0.9999525141492356 0.3753966363493149 0.6245796981769658
+0.1250514631228725 0.2501427677896189 0.6245557295312949
+0.1249038502795159 0.3748197143601502 0.4996010915061717
+0.0624436860623163 0.312573231075703 0.562155540476553
+0.0625474858507644 0.4379203018230342 0.6871033636506851
+0.1875864047350788 0.3127377428931908 0.6869971030181148
+0.1874769898317012 0.4374222752875099 0.5621837316800722
+0.2498262317297488 0.2498262317297488 0.4994956244664124
+0.2500340528006291 0.3750375686275405 0.6245995110599054
+0.3750375686275405 0.2500340528006291 0.6245995110599054
+0.3748766291175016 0.3748766291175016 0.4997227698817284
+0.3124258299455249 0.3124258299455249 0.5620893888672924
+0.3125547798053745 0.4375190928588708 0.6872477178003962
+0.4375190928588708 0.3125547798053745 0.6872477178003962
+0.437446704112638 0.437446704112638 0.5623403702971146
+0.4997978942833541 0.2499813033376626 0.4997978942833541
+0.4999819843286133 0.3750633164823185 0.6248643733483306
+0.6249283021917691 0.2501462570029958 0.6249283021917691
+0.6248643733483306 0.3750633164823185 0.4999819843286133
+0.5623803272361414 0.3125411643022744 0.5623803272361414
+0.5625180156713867 0.4376356266516694 0.6874366835176815
+0.687416630694301 0.3127488326622512 0.687416630694301
+0.6874366835176815 0.4376356266516694 0.5625180156713867
+0.7497969614070286 0.2501381393081559 0.5000680732346083
+0.7499452201946255 0.3752522821995967 0.6249809071411292
+0.8749175641048552 0.2503132088972677 0.62478101139952
+0.8748829326536693 0.3751469630690139 0.4999794646695079
+0.8123618606918441 0.3127030385929714 0.5624319267653917
+0.8124659471993709 0.4379004889400946 0.6874624313724595
+0.9374566562859812 0.3131810589216713 0.6868734849891283
+0.9374471544364411 0.4377404017719329 0.5623913706688413
+0.9999503580635007 0.4999677711967934 0.4999677711967934
+0.0001214343626685 0.6252261376646544 0.6252261376646544
+0.1250528455635589 0.5001086293311587 0.6247595982280671
+0.1250528455635589 0.6247595982280671 0.5001086293311587
+0.0625496419364993 0.5625322288032066 0.5625322288032066
+0.062739678196742 0.6877577864545827 0.6877577864545827
+0.1876170673463307 0.5625205353304921 0.6873530369309861
+0.1876170673463307 0.6873530369309861 0.5625205353304921
+0.2499813033376626 0.4997978942833541 0.4997978942833541
+0.2501462570029958 0.6249283021917691 0.6249283021917691
+0.3750633164823185 0.4999819843286133 0.6248643733483306
+0.3750633164823185 0.6248643733483306 0.4999819843286133
+0.3125411643022744 0.5623803272361414 0.5623803272361414
+0.3127488326622512 0.687416630694301 0.687416630694301
+0.4376356266516694 0.5625180156713867 0.6874366835176815
+0.4376356266516694 0.6874366835176815 0.5625180156713867
+0.4999571462127292 0.4999571462127292 0.4999571462127292
+0.5001596297028854 0.625053295887362 0.625053295887362
+0.625053295887362 0.5001596297028854 0.625053295887362
+0.625053295887362 0.625053295887362 0.5001596297028854
+0.5625428537872779 0.5625428537872779 0.5625428537872779
+0.5627772301182716 0.6876233708824984 0.6876233708824984
+0.6876233708824984 0.5627772301182716 0.6876233708824984
+0.6876233708824984 0.6876233708824984 0.5627772301182716
+0.7499588356977256 0.5001196727638586 0.5001196727638586
+0.7501626220988982 0.6252856022804139 0.6252856022804139
+0.8750230101682988 0.5003162683199278 0.6250777247124972
+0.8750230101682988 0.6250777247124972 0.5003162683199278
+0.8125186966623374 0.5627021057166459 0.5627021057166459
+0.8127868323921703 0.6879379846626392 0.6879379846626392
+0.9375961497204841 0.5628989084938283 0.6876802856398498
+0.9375961497204841 0.6876802856398498 0.5628989084938283
+5.63139376837e-05 0.749926768924297 0.500344459523447
+0.0002539653562224 0.8752275079490062 0.6253456881502615
+0.125220018722203 0.7499752636010157 0.6250484783715251
+0.1250607874084295 0.8748803435631061 0.5000994532469534
+0.0626181994597133 0.8125128216786521 0.5627274977709575
+0.0628443626094111 0.9377318320269126 0.6876615948087093
+0.1878163533568156 0.8124091120342101 0.6873321279342122
+0.1876196564368939 0.9374392125915705 0.5624005467530466
+0.2501381393081559 0.7497969614070286 0.5000680732346083
+0.2503132088972677 0.8749175641048552 0.62478101139952
+0.3752522821995967 0.7499452201946255 0.6249809071411292
+0.3751469630690139 0.8748829326536693 0.4999794646695079
+0.3127030385929714 0.8123618606918441 0.5624319267653917
+0.3131810589216713 0.9374566562859812 0.6868734849891283
+0.4379004889400946 0.8124659471993709 0.6874624313724595
+0.4377404017719329 0.9374471544364411 0.5623913706688413
+0.5001196727638586 0.7499588356977256 0.5001196727638586
+0.5003162683199278 0.8750230101682988 0.6250777247124972
+0.6252856022804139 0.7501626220988982 0.6252856022804139
+0.6250777247124972 0.8750230101682988 0.5003162683199278
+0.5627021057166459 0.8125186966623374 0.5627021057166459
+0.5628989084938283 0.9375961497204841 0.6876802856398498
+0.6879379846626392 0.8127868323921703 0.6879379846626392
+0.6876802856398498 0.9375961497204841 0.5628989084938283
+0.7500741700544751 0.7500741700544751 0.5004106111327076
+0.7503955229400248 0.8752764026203508 0.6255773786137837
+0.8752764026203508 0.7503955229400248 0.6255773786137837
+0.8750153334270436 0.8750153334270436 0.5004230816548514
+0.8126737682702512 0.8126737682702512 0.5630043755335876
+0.8130800593508454 0.9379581917096615 0.6882538184317468
+0.9379581917096615 0.8130800593508454 0.6882538184317468
+0.9375967924172812 0.9375967924172812 0.5628061510207232
+0.0005878008915801 0.0005878008915801 0.7504237712370667
+0.9995662939375691 0.1279591148113539 0.8731307995842599
+0.1279591148113539 0.9995662939375691 0.8731307995842599
+0.1252954879007717 0.1252954879007717 0.7495298757449476
+0.062990448814169 0.062990448814169 0.8122250150238273
+0.0629337060624309 0.1893692004157401 0.9345408851886461
+0.1893692004157401 0.0629337060624309 0.9345408851886461
+0.187919437306256 0.187919437306256 0.8116014776945093
+0.251128859431212 0.999931623020764 0.7489321799796116
+0.2515519094421919 0.1250720962463276 0.873273201162327
+0.3754588813542341 0.9998916144492895 0.8746241056597839
+0.3756265150108717 0.1250433437140188 0.7493189410783287
+0.3135678200203884 0.062568376979236 0.811371140568788
+0.3126683074099432 0.1873966451552107 0.9368052185377209
+0.4376109370885857 0.062432435237092 0.9373058454932277
+0.43771898860048 0.1875824358951448 0.8121867911027323
+0.500344459523447 5.63139376837e-05 0.749926768924297
+0.5000994532469534 0.1250607874084295 0.8748803435631061
+0.6253456881502615 0.0002539653562224 0.8752275079490062
+0.6250484783715251 0.125220018722203 0.7499752636010157
+0.5627274977709575 0.0626181994597133 0.8125128216786521
+0.5624005467530466 0.1876196564368939 0.9374392125915705
+0.6876615948087093 0.0628443626094111 0.9377318320269126
+0.6873321279342122 0.1878163533568156 0.8124091120342101
+0.7506334161903538 0.000533723216769 0.7506334161903538
+0.7498316925900568 0.1256947814622791 0.8751033548447893
+0.8774816870715156 0.0021867627370753 0.8774816870715156
+0.8751033548447893 0.1256947814622791 0.7498316925900568
+0.8131939098439602 0.0632918410620533 0.8131939098439602
+0.8109480905578081 0.189226798837673 0.9374279037536724
+0.9374279037536724 0.189226798837673 0.8109480905578081
+0.999931623020764 0.251128859431212 0.7489321799796116
+0.9998916144492895 0.3754588813542341 0.8746241056597839
+0.1250720962463276 0.2515519094421919 0.873273201162327
+0.1250433437140188 0.3756265150108717 0.7493189410783287
+0.062568376979236 0.3135678200203884 0.811371140568788
+0.062432435237092 0.4376109370885857 0.9373058454932277
+0.1873966451552107 0.3126683074099432 0.9368052185377209
+0.1875824358951448 0.43771898860048 0.8121867911027323
+0.2502303352819055 0.2502303352819055 0.7493701362645737
+0.2500908879657899 0.3751678720657878 0.8746836466431844
+0.3751678720657878 0.2500908879657899 0.8746836466431844
+0.375083369305699 0.375083369305699 0.7497511673377488
+0.3126056846357059 0.3126056846357059 0.8121639120863691
+0.3125247363989843 0.4374515216284749 0.937279981277797
+0.4374515216284749 0.3125247363989843 0.937279981277797
+0.4375716978082309 0.4375716978082309 0.8123537429970042
+0.5000680732346083 0.2501381393081559 0.7497969614070286
+0.4999794646695079 0.3751469630690139 0.8748829326536693
+0.62478101139952 0.2503132088972677 0.8749175641048552
+0.6249809071411292 0.3752522821995967 0.7499452201946255
+0.5624319267653917 0.3127030385929714 0.8123618606918441
+0.5623913706688413 0.4377404017719329 0.9374471544364411
+0.6868734849891283 0.3131810589216713 0.9374566562859812
+0.6874624313724595 0.4379004889400946 0.8124659471993709
+0.7498943153642941 0.2503360879136309 0.7498943153642941
+0.7497622571068092 0.3755028969818852 0.8749135952649212
+0.874580562693744 0.2508985223054978 0.874580562693744
+0.8749135952649212 0.3755028969818852 0.7497622571068092
+0.8122696647180945 0.3131298637354263 0.8122696647180945
+0.8123572322103811 0.4379442704687051 0.9374485368771275
+0.9372045120992283 0.3129701242550524 0.9372045120992283
+0.9374485368771275 0.4379442704687051 0.8123572322103811
+5.63139376837e-05 0.500344459523447 0.749926768924297
+0.0002539653562224 0.6253456881502615 0.8752275079490062
+0.1250607874084295 0.5000994532469534 0.8748803435631061
+0.125220018722203 0.6250484783715251 0.7499752636010157
+0.0626181994597133 0.5627274977709575 0.8125128216786521
+0.0628443626094111 0.6876615948087093 0.9377318320269126
+0.1876196564368939 0.5624005467530466 0.9374392125915705
+0.1878163533568156 0.6873321279342122 0.8124091120342101
+0.2501381393081559 0.5000680732346083 0.7497969614070286
+0.2503132088972677 0.62478101139952 0.8749175641048552
+0.3751469630690139 0.4999794646695079 0.8748829326536693
+0.3752522821995967 0.6249809071411292 0.7499452201946255
+0.3127030385929714 0.5624319267653917 0.8123618606918441
+0.3131810589216713 0.6868734849891283 0.9374566562859812
+0.4377404017719329 0.5623913706688413 0.9374471544364411
+0.4379004889400946 0.6874624313724595 0.8124659471993709
+0.5001196727638586 0.5001196727638586 0.7499588356977256
+0.5003162683199278 0.6250777247124972 0.8750230101682988
+0.6250777247124972 0.5003162683199278 0.8750230101682988
+0.6252856022804139 0.6252856022804139 0.7501626220988982
+0.5627021057166459 0.5627021057166459 0.8125186966623374
+0.5628989084938283 0.6876802856398498 0.9375961497204841
+0.6876802856398498 0.5628989084938283 0.9375961497204841
+0.6879379846626392 0.6879379846626392 0.8127868323921703
+0.7500741700544751 0.5004106111327076 0.7500741700544751
+0.7503955229400248 0.6255773786137837 0.8752764026203508
+0.8750153334270436 0.5004230816548514 0.8750153334270436
+0.8752764026203508 0.6255773786137837 0.7503955229400248
+0.8126737682702512 0.5630043755335876 0.8126737682702512
+0.8130800593508454 0.6882538184317468 0.9379581917096615
+0.9375967924172812 0.5628061510207232 0.9375967924172812
+0.9379581917096615 0.6882538184317468 0.8130800593508454
+0.000533723216769 0.7506334161903538 0.7506334161903538
+0.0021867627370753 0.8774816870715156 0.8774816870715156
+0.1256947814622791 0.7498316925900568 0.8751033548447893
+0.1256947814622791 0.8751033548447893 0.7498316925900568
+0.0632918410620533 0.8131939098439602 0.8131939098439602
+0.189226798837673 0.8109480905578081 0.9374279037536724
+0.189226798837673 0.9374279037536724 0.8109480905578081
+0.2503360879136309 0.7498943153642941 0.7498943153642941
+0.2508985223054978 0.874580562693744 0.874580562693744
+0.3755028969818852 0.7497622571068092 0.8749135952649212
+0.3755028969818852 0.8749135952649212 0.7497622571068092
+0.3131298637354263 0.8122696647180945 0.8122696647180945
+0.3129701242550524 0.9372045120992283 0.9372045120992283
+0.4379442704687051 0.8123572322103811 0.9374485368771275
+0.4379442704687051 0.9374485368771275 0.8123572322103811
+0.5004106111327076 0.7500741700544751 0.7500741700544751
+0.5004230816548514 0.8750153334270436 0.8750153334270436
+0.6255773786137837 0.7503955229400248 0.8752764026203508
+0.6255773786137837 0.8752764026203508 0.7503955229400248
+0.5630043755335876 0.8126737682702512 0.8126737682702512
+0.5628061510207232 0.9375967924172812 0.9375967924172812
+0.6882538184317468 0.8130800593508454 0.9379581917096615
+0.6882538184317468 0.9379581917096615 0.8130800593508454
+0.750568437122098 0.750568437122098 0.750568437122098
+0.7512940722767425 0.8759740616889786 0.8759740616889786
+0.8759740616889786 0.7512940722767425 0.8759740616889786
+0.8759740616889786 0.8759740616889786 0.7512940722767425
+0.8133495999994977 0.8133495999994977 0.8133495999994977
+0.8143906476586409 0.9390040342884873 0.9390040342884873
+0.9390040342884873 0.8143906476586409 0.9390040342884873
+0.9390040342884873 0.9390040342884873 0.8143906476586409
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.070203626160307 0.937284188837971 0.937284188837971
+0.937284188837971 0.070203626160307 0.937284188837971
+0.937284188837971 0.937284188837971 0.070203626160307
+0.031 0.031 0.031
diff --git a/tests/pyposcar/results/POSCAR-V2.vasp_cluster-h1.vasp b/tests/pyposcar/results/POSCAR-V2.vasp_cluster-h1.vasp
new file mode 100644
index 00000000..980ffc55
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-V2.vasp_cluster-h1.vasp
@@ -0,0 +1,56 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C H
+18 30
+Direct
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.8731307995842599 0.9995662939375691 0.1279591148113539
+0.8731307995842599 0.1279591148113539 0.9995662939375691
+0.9345408851886461 0.0629337060624309 0.1893692004157401
+0.9345408851886461 0.1893692004157401 0.0629337060624309
+0.9995662939375691 0.8731307995842599 0.1279591148113539
+0.1279591148113539 0.8731307995842599 0.9995662939375691
+0.0629337060624309 0.9345408851886461 0.1893692004157401
+0.1893692004157401 0.9345408851886461 0.0629337060624309
+0.937284188837971 0.937284188837971 0.070203626160307
+0.9995662939375691 0.1279591148113539 0.8731307995842599
+0.1279591148113539 0.9995662939375691 0.8731307995842599
+0.0629337060624309 0.1893692004157401 0.9345408851886461
+0.1893692004157401 0.0629337060624309 0.9345408851886461
+0.937284188837971 0.070203626160307 0.937284188837971
+0.070203626160307 0.937284188837971 0.937284188837971
+1.0398029891679987 0.1669850769602949 0.1669850769602949
+0.1669850769602949 1.0398029891679987 0.1669850769602949
+0.1669850769602949 0.1669850769602949 1.0398029891679987
+0.1068929299979297 0.2333597773025895 0.8911976341943466
+0.018958667978788497 0.23159813039943777 0.9795868076298408
+0.23159813039943777 0.018958667978788497 0.9795868076298408
+0.2333597773025895 0.1068929299979297 0.8911976341943466
+0.08291319237015915 1.0435413320212115 0.8309018696005621
+0.17130236580565325 0.9556070700020703 0.8291402226974105
+0.08291319237015915 0.8309018696005621 1.0435413320212115
+0.17130236580565325 0.8291402226974105 0.9556070700020703
+0.022697010832001402 0.8955149230397051 0.8955149230397051
+0.1068929299979297 0.8911976341943466 0.2333597773025895
+0.018958667978788497 0.9795868076298408 0.23159813039943777
+0.23159813039943777 0.9795868076298408 0.018958667978788497
+0.2333597773025895 0.8911976341943466 0.1068929299979297
+1.0435413320212115 0.08291319237015915 0.8309018696005621
+0.9556070700020703 0.17130236580565325 0.8291402226974105
+0.8955149230397051 0.8955149230397051 0.022697010832001402
+0.8309018696005621 1.0435413320212115 0.08291319237015915
+0.8291402226974105 0.9556070700020703 0.17130236580565325
+0.8309018696005621 0.08291319237015915 1.0435413320212115
+0.8291402226974105 0.17130236580565325 0.9556070700020703
+0.8911976341943466 0.1068929299979297 0.2333597773025895
+0.9795868076298408 0.018958667978788497 0.23159813039943777
+0.8911976341943466 0.2333597773025895 0.1068929299979297
+0.9795868076298408 0.23159813039943777 0.018958667978788497
+0.8955149230397051 0.022697010832001402 0.8955149230397051
+1.0435413320212115 0.8309018696005621 0.08291319237015915
+0.9556070700020703 0.8291402226974105 0.17130236580565325
diff --git a/tests/pyposcar/results/POSCAR-V2.vasp_cluster-h2.vasp b/tests/pyposcar/results/POSCAR-V2.vasp_cluster-h2.vasp
new file mode 100644
index 00000000..0e9a34b4
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-V2.vasp_cluster-h2.vasp
@@ -0,0 +1,86 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C H
+36 42
+Direct
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.0603132372629247 0.1850183129284844 0.1850183129284844
+0.1850183129284844 0.0603132372629247 0.1850183129284844
+0.1850183129284844 0.1850183129284844 0.0603132372629247
+0.2502749849761727 0.999509551185831 0.999509551185831
+0.2481093523413591 0.1234959657115127 0.1234959657115127
+0.8731307995842599 0.9995662939375691 0.1279591148113539
+0.8731307995842599 0.1279591148113539 0.9995662939375691
+0.8122250150238273 0.062990448814169 0.062990448814169
+0.9345408851886461 0.0629337060624309 0.1893692004157401
+0.9345408851886461 0.1893692004157401 0.0629337060624309
+0.999509551185831 0.2502749849761727 0.999509551185831
+0.1234959657115127 0.2481093523413591 0.1234959657115127
+0.9995662939375691 0.8731307995842599 0.1279591148113539
+0.1279591148113539 0.8731307995842599 0.9995662939375691
+0.062990448814169 0.8122250150238273 0.062990448814169
+0.0629337060624309 0.9345408851886461 0.1893692004157401
+0.1893692004157401 0.9345408851886461 0.0629337060624309
+0.8774816870715156 0.8774816870715156 0.0021867627370753
+0.937284188837971 0.937284188837971 0.070203626160307
+0.999509551185831 0.999509551185831 0.2502749849761727
+0.1234959657115127 0.1234959657115127 0.2481093523413591
+0.9995662939375691 0.1279591148113539 0.8731307995842599
+0.1279591148113539 0.9995662939375691 0.8731307995842599
+0.062990448814169 0.062990448814169 0.8122250150238273
+0.0629337060624309 0.1893692004157401 0.9345408851886461
+0.1893692004157401 0.0629337060624309 0.9345408851886461
+0.8774816870715156 0.0021867627370753 0.8774816870715156
+0.937284188837971 0.070203626160307 0.937284188837971
+0.0021867627370753 0.8774816870715156 0.8774816870715156
+0.070203626160307 0.937284188837971 0.937284188837971
+0.8143906476586409 0.9390040342884873 0.9390040342884873
+0.9390040342884873 0.8143906476586409 0.9390040342884873
+0.9390040342884873 0.9390040342884873 0.8143906476586409
+0.01802847524105865 0.2295055050817218 0.2295055050817218
+0.2295055050817218 0.01802847524105865 0.2295055050817218
+0.2295055050817218 0.2295055050817218 0.01802847524105865
+0.1068929299979297 0.2333597773025895 0.8911976341943466
+0.2333597773025895 0.1068929299979297 0.8911976341943466
+0.17130236580565325 0.9556070700020703 0.8291402226974105
+0.08029494676325268 0.08029494676325268 0.29298212308563265
+0.16724591574219372 0.16724591574219372 0.29190553225730387
+0.29298212308563265 0.08029494676325268 0.08029494676325268
+0.29190553225730387 0.16724591574219372 0.16724591574219372
+0.2937578006884491 1.0434155095988764 1.0434155095988764
+0.2942224598406261 0.9558355252456786 0.9558355252456786
+0.1066644747543214 0.1066644747543214 0.7682775401593739
+0.019084490401123387 0.019084490401123387 0.7687421993115507
+0.8329944949182783 0.044471524758941325 0.8329944949182783
+0.8291402226974105 0.17130236580565325 0.9556070700020703
+0.8291402226974105 0.9556070700020703 0.17130236580565325
+0.7687421993115507 0.019084490401123394 0.019084490401123394
+0.7682775401593739 0.1066644747543214 0.1066644747543214
+0.8911976341943466 0.1068929299979297 0.2333597773025895
+0.8911976341943466 0.2333597773025895 0.1068929299979297
+1.0434155095988764 0.2937578006884491 1.0434155095988764
+0.9558355252456786 0.2942224598406261 0.9558355252456786
+0.08029494676325268 0.29298212308563265 0.08029494676325268
+0.16724591574219372 0.29190553225730387 0.16724591574219372
+0.044471524758941325 0.8329944949182783 0.8329944949182783
+0.9556070700020703 0.8291402226974105 0.17130236580565325
+0.17130236580565325 0.8291402226974105 0.9556070700020703
+0.1066644747543214 0.7682775401593739 0.1066644747543214
+0.019084490401123394 0.7687421993115507 0.019084490401123394
+0.1068929299979297 0.8911976341943466 0.2333597773025895
+0.2333597773025895 0.8911976341943466 0.1068929299979297
+0.8329944949182783 0.8329944949182783 0.044471524758941325
+0.7695178769143672 0.9822050532367473 0.9822050532367473
+0.7705944677426961 0.8952540842578064 0.8952540842578064
+0.8952540842578064 0.7705944677426961 0.8952540842578064
+0.9822050532367473 0.7695178769143672 0.9822050532367473
+0.8952540842578064 0.8952540842578064 0.7705944677426961
+0.9822050532367473 0.9822050532367473 0.7695178769143672
+1.0434155095988764 1.0434155095988764 0.2937578006884491
+0.9558355252456786 0.9558355252456786 0.2942224598406261
+0.9556070700020703 0.17130236580565325 0.8291402226974105
diff --git a/tests/pyposcar/results/POSCAR-V2.vasp_cluster-n1.vasp b/tests/pyposcar/results/POSCAR-V2.vasp_cluster-n1.vasp
new file mode 100644
index 00000000..886d2e34
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-V2.vasp_cluster-n1.vasp
@@ -0,0 +1,32 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C
+24
+Direct
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.0603132372629247 0.1850183129284844 0.1850183129284844
+0.1850183129284844 0.0603132372629247 0.1850183129284844
+0.1850183129284844 0.1850183129284844 0.0603132372629247
+0.8731307995842599 0.9995662939375691 0.1279591148113539
+0.8731307995842599 0.1279591148113539 0.9995662939375691
+0.9345408851886461 0.0629337060624309 0.1893692004157401
+0.9345408851886461 0.1893692004157401 0.0629337060624309
+0.9995662939375691 0.8731307995842599 0.1279591148113539
+0.1279591148113539 0.8731307995842599 0.9995662939375691
+0.0629337060624309 0.9345408851886461 0.1893692004157401
+0.1893692004157401 0.9345408851886461 0.0629337060624309
+0.8774816870715156 0.8774816870715156 0.0021867627370753
+0.937284188837971 0.937284188837971 0.070203626160307
+0.9995662939375691 0.1279591148113539 0.8731307995842599
+0.1279591148113539 0.9995662939375691 0.8731307995842599
+0.0629337060624309 0.1893692004157401 0.9345408851886461
+0.1893692004157401 0.0629337060624309 0.9345408851886461
+0.8774816870715156 0.0021867627370753 0.8774816870715156
+0.937284188837971 0.070203626160307 0.937284188837971
+0.0021867627370753 0.8774816870715156 0.8774816870715156
+0.070203626160307 0.937284188837971 0.937284188837971
diff --git a/tests/pyposcar/results/POSCAR-V2.vasp_cluster-n2.vasp b/tests/pyposcar/results/POSCAR-V2.vasp_cluster-n2.vasp
new file mode 100644
index 00000000..421da24e
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-V2.vasp_cluster-n2.vasp
@@ -0,0 +1,62 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C
+54
+Direct
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.0603132372629247 0.1850183129284844 0.1850183129284844
+0.1850183129284844 0.0603132372629247 0.1850183129284844
+0.1850183129284844 0.1850183129284844 0.0603132372629247
+0.2502749849761727 0.999509551185831 0.999509551185831
+0.2481093523413591 0.1234959657115127 0.1234959657115127
+0.8731307995842599 0.9995662939375691 0.1279591148113539
+0.8731307995842599 0.1279591148113539 0.9995662939375691
+0.8122250150238273 0.062990448814169 0.062990448814169
+0.9345408851886461 0.0629337060624309 0.1893692004157401
+0.9345408851886461 0.1893692004157401 0.0629337060624309
+0.999509551185831 0.2502749849761727 0.999509551185831
+0.1234959657115127 0.2481093523413591 0.1234959657115127
+0.2493060901560398 0.2493060901560398 0.9992081589379467
+0.873273201162327 0.2515519094421919 0.1250720962463276
+0.9995662939375691 0.8731307995842599 0.1279591148113539
+0.1279591148113539 0.8731307995842599 0.9995662939375691
+0.062990448814169 0.8122250150238273 0.062990448814169
+0.0629337060624309 0.9345408851886461 0.1893692004157401
+0.1893692004157401 0.9345408851886461 0.0629337060624309
+0.2515519094421919 0.873273201162327 0.1250720962463276
+0.8774816870715156 0.8774816870715156 0.0021867627370753
+0.8131939098439602 0.8131939098439602 0.0632918410620533
+0.8109480905578081 0.9374279037536724 0.189226798837673
+0.9374279037536724 0.8109480905578081 0.189226798837673
+0.937284188837971 0.937284188837971 0.070203626160307
+0.999509551185831 0.999509551185831 0.2502749849761727
+0.1234959657115127 0.1234959657115127 0.2481093523413591
+0.2493060901560398 0.9992081589379467 0.2493060901560398
+0.873273201162327 0.1250720962463276 0.2515519094421919
+0.9992081589379467 0.2493060901560398 0.2493060901560398
+0.1250720962463276 0.873273201162327 0.2515519094421919
+0.9995662939375691 0.1279591148113539 0.8731307995842599
+0.1279591148113539 0.9995662939375691 0.8731307995842599
+0.062990448814169 0.062990448814169 0.8122250150238273
+0.0629337060624309 0.1893692004157401 0.9345408851886461
+0.1893692004157401 0.0629337060624309 0.9345408851886461
+0.2515519094421919 0.1250720962463276 0.873273201162327
+0.8774816870715156 0.0021867627370753 0.8774816870715156
+0.8131939098439602 0.0632918410620533 0.8131939098439602
+0.8109480905578081 0.189226798837673 0.9374279037536724
+0.937284188837971 0.070203626160307 0.937284188837971
+0.9374279037536724 0.189226798837673 0.8109480905578081
+0.1250720962463276 0.2515519094421919 0.873273201162327
+0.0021867627370753 0.8774816870715156 0.8774816870715156
+0.0632918410620533 0.8131939098439602 0.8131939098439602
+0.070203626160307 0.937284188837971 0.937284188837971
+0.189226798837673 0.8109480905578081 0.9374279037536724
+0.189226798837673 0.9374279037536724 0.8109480905578081
+0.8143906476586409 0.9390040342884873 0.9390040342884873
+0.9390040342884873 0.8143906476586409 0.9390040342884873
+0.9390040342884873 0.9390040342884873 0.8143906476586409
diff --git a/tests/pyposcar/results/POSCAR-V2.vasp_cluster-s1.vasp b/tests/pyposcar/results/POSCAR-V2.vasp_cluster-s1.vasp
new file mode 100644
index 00000000..02f3841a
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-V2.vasp_cluster-s1.vasp
@@ -0,0 +1,26 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C
+18
+Direct
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.8731307995842599 0.9995662939375691 0.1279591148113539
+0.8731307995842599 0.1279591148113539 0.9995662939375691
+0.9345408851886461 0.0629337060624309 0.1893692004157401
+0.9345408851886461 0.1893692004157401 0.0629337060624309
+0.9995662939375691 0.8731307995842599 0.1279591148113539
+0.1279591148113539 0.8731307995842599 0.9995662939375691
+0.0629337060624309 0.9345408851886461 0.1893692004157401
+0.1893692004157401 0.9345408851886461 0.0629337060624309
+0.937284188837971 0.937284188837971 0.070203626160307
+0.9995662939375691 0.1279591148113539 0.8731307995842599
+0.1279591148113539 0.9995662939375691 0.8731307995842599
+0.0629337060624309 0.1893692004157401 0.9345408851886461
+0.1893692004157401 0.0629337060624309 0.9345408851886461
+0.937284188837971 0.070203626160307 0.937284188837971
+0.070203626160307 0.937284188837971 0.937284188837971
diff --git a/tests/pyposcar/results/POSCAR-V2.vasp_cluster-s2.vasp b/tests/pyposcar/results/POSCAR-V2.vasp_cluster-s2.vasp
new file mode 100644
index 00000000..2709aad2
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-V2.vasp_cluster-s2.vasp
@@ -0,0 +1,44 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C
+36
+Direct
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.0603132372629247 0.1850183129284844 0.1850183129284844
+0.1850183129284844 0.0603132372629247 0.1850183129284844
+0.1850183129284844 0.1850183129284844 0.0603132372629247
+0.2502749849761727 0.999509551185831 0.999509551185831
+0.2481093523413591 0.1234959657115127 0.1234959657115127
+0.8731307995842599 0.9995662939375691 0.1279591148113539
+0.8731307995842599 0.1279591148113539 0.9995662939375691
+0.8122250150238273 0.062990448814169 0.062990448814169
+0.9345408851886461 0.0629337060624309 0.1893692004157401
+0.9345408851886461 0.1893692004157401 0.0629337060624309
+0.999509551185831 0.2502749849761727 0.999509551185831
+0.1234959657115127 0.2481093523413591 0.1234959657115127
+0.9995662939375691 0.8731307995842599 0.1279591148113539
+0.1279591148113539 0.8731307995842599 0.9995662939375691
+0.062990448814169 0.8122250150238273 0.062990448814169
+0.0629337060624309 0.9345408851886461 0.1893692004157401
+0.1893692004157401 0.9345408851886461 0.0629337060624309
+0.8774816870715156 0.8774816870715156 0.0021867627370753
+0.937284188837971 0.937284188837971 0.070203626160307
+0.999509551185831 0.999509551185831 0.2502749849761727
+0.1234959657115127 0.1234959657115127 0.2481093523413591
+0.9995662939375691 0.1279591148113539 0.8731307995842599
+0.1279591148113539 0.9995662939375691 0.8731307995842599
+0.062990448814169 0.062990448814169 0.8122250150238273
+0.0629337060624309 0.1893692004157401 0.9345408851886461
+0.1893692004157401 0.0629337060624309 0.9345408851886461
+0.8774816870715156 0.0021867627370753 0.8774816870715156
+0.937284188837971 0.070203626160307 0.937284188837971
+0.0021867627370753 0.8774816870715156 0.8774816870715156
+0.070203626160307 0.937284188837971 0.937284188837971
+0.8143906476586409 0.9390040342884873 0.9390040342884873
+0.9390040342884873 0.8143906476586409 0.9390040342884873
+0.9390040342884873 0.9390040342884873 0.8143906476586409
diff --git a/tests/pyposcar/results/POSCAR-V2.vasp_cluster.vasp b/tests/pyposcar/results/POSCAR-V2.vasp_cluster.vasp
new file mode 100644
index 00000000..45fc3865
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-V2.vasp_cluster.vasp
@@ -0,0 +1,14 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C
+6
+Direct
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.937284188837971 0.937284188837971 0.070203626160307
+0.937284188837971 0.070203626160307 0.937284188837971
+0.070203626160307 0.937284188837971 0.937284188837971
diff --git a/tests/pyposcar/results/POSCAR-V2.vasp_defect.vasp b/tests/pyposcar/results/POSCAR-V2.vasp_defect.vasp
new file mode 100644
index 00000000..b4b5f105
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-V2.vasp_defect.vasp
@@ -0,0 +1,518 @@
+poscar.py
+1.0
+14.2473 0.0 0.0
+0.0 14.2473 0.0
+0.0 0.0 14.2473
+C D
+504 6
+Direct
+0.0603132372629247 0.1850183129284844 0.1850183129284844
+0.1850183129284844 0.0603132372629247 0.1850183129284844
+0.1850183129284844 0.1850183129284844 0.0603132372629247
+0.2502749849761727 0.999509551185831 0.999509551185831
+0.2481093523413591 0.1234959657115127 0.1234959657115127
+0.3748384051912907 0.9996556373905889 0.1247681679730874
+0.3748384051912907 0.1247681679730874 0.9996556373905889
+0.3120762287629333 0.0619121991084199 0.0619121991084199
+0.3112059277232575 0.1865259383110214 0.1865259383110214
+0.4371543118497385 0.0622460346437776 0.1872724920509938
+0.4371543118497385 0.1872724920509938 0.0622460346437776
+0.5000967740344464 0.9999622175248959 0.9999622175248959
+0.4996938489792768 0.1249032075827188 0.1249032075827188
+0.6248890629114143 6.7564762908e-05 0.1251941545067723
+0.6248890629114143 0.1251941545067723 6.7564762908e-05
+0.5624032259655536 0.0625377824751041 0.0625377824751041
+0.5620769183451486 0.1874846665729564 0.1874846665729564
+0.6870411186457659 0.0626083855507105 0.1878758943402161
+0.6870411186457659 0.1878758943402161 0.0626083855507105
+0.7504237712370667 0.0005878008915801 0.0005878008915801
+0.7495298757449476 0.1252954879007717 0.1252954879007717
+0.8731307995842599 0.9995662939375691 0.1279591148113539
+0.8731307995842599 0.1279591148113539 0.9995662939375691
+0.8122250150238273 0.062990448814169 0.062990448814169
+0.8116014776945093 0.187919437306256 0.187919437306256
+0.9345408851886461 0.0629337060624309 0.1893692004157401
+0.9345408851886461 0.1893692004157401 0.0629337060624309
+0.999509551185831 0.2502749849761727 0.999509551185831
+0.9996556373905889 0.3748384051912907 0.1247681679730874
+0.1234959657115127 0.2481093523413591 0.1234959657115127
+0.1247681679730874 0.3748384051912907 0.9996556373905889
+0.0619121991084199 0.3120762287629333 0.0619121991084199
+0.0622460346437776 0.4371543118497385 0.1872724920509938
+0.1865259383110214 0.3112059277232575 0.1865259383110214
+0.1872724920509938 0.4371543118497385 0.0622460346437776
+0.2493060901560398 0.2493060901560398 0.9992081589379467
+0.2494199406491617 0.3742461815682532 0.1245418082903385
+0.3742461815682532 0.2494199406491617 0.1245418082903385
+0.3747422135454173 0.3747422135454173 0.999760321803258
+0.3118665838096462 0.3118665838096462 0.061966276783231
+0.3121044770599752 0.4369226213862163 0.1872235973796492
+0.4369226213862163 0.3121044770599752 0.1872235973796492
+0.4372738623353456 0.4372738623353456 0.0623785656373315
+0.4997725022290425 0.2499871783213479 0.9998818005402867
+0.4996010915061717 0.3748197143601502 0.1249038502795159
+0.6245557295312949 0.2501427677896189 0.1250514631228725
+0.6245796981769658 0.3753966363493149 0.9999525141492356
+0.562155540476553 0.312573231075703 0.0624436860623163
+0.5621837316800722 0.4374222752875099 0.1874769898317012
+0.6869971030181148 0.3127377428931908 0.1875864047350788
+0.6871033636506851 0.4379203018230342 0.0625474858507644
+0.7489321799796116 0.251128859431212 0.999931623020764
+0.7493189410783287 0.3756265150108717 0.1250433437140188
+0.873273201162327 0.2515519094421919 0.1250720962463276
+0.8746241056597839 0.3754588813542341 0.9998916144492895
+0.811371140568788 0.3135678200203884 0.062568376979236
+0.8121867911027323 0.43771898860048 0.1875824358951448
+0.9368052185377209 0.3126683074099432 0.1873966451552107
+0.9373058454932277 0.4376109370885857 0.062432435237092
+0.9999622175248959 0.5000967740344464 0.9999622175248959
+6.7564762908e-05 0.6248890629114143 0.1251941545067723
+0.1249032075827188 0.4996938489792768 0.1249032075827188
+0.1251941545067723 0.6248890629114143 6.7564762908e-05
+0.0625377824751041 0.5624032259655536 0.0625377824751041
+0.0626083855507105 0.6870411186457659 0.1878758943402161
+0.1874846665729564 0.5620769183451486 0.1874846665729564
+0.1878758943402161 0.6870411186457659 0.0626083855507105
+0.2499871783213479 0.4997725022290425 0.9998818005402867
+0.2501427677896189 0.6245557295312949 0.1250514631228725
+0.3748197143601502 0.4996010915061717 0.1249038502795159
+0.3753966363493149 0.6245796981769658 0.9999525141492356
+0.312573231075703 0.562155540476553 0.0624436860623163
+0.3127377428931908 0.6869971030181148 0.1875864047350788
+0.4374222752875099 0.5621837316800722 0.1874769898317012
+0.4379203018230342 0.6871033636506851 0.0625474858507644
+0.4999677711967934 0.4999677711967934 0.9999503580635007
+0.5001086293311587 0.6247595982280671 0.1250528455635589
+0.6247595982280671 0.5001086293311587 0.1250528455635589
+0.6252261376646544 0.6252261376646544 0.0001214343626685
+0.5625322288032066 0.5625322288032066 0.0625496419364993
+0.5625205353304921 0.6873530369309861 0.1876170673463307
+0.6873530369309861 0.5625205353304921 0.1876170673463307
+0.6877577864545827 0.6877577864545827 0.062739678196742
+0.749926768924297 0.500344459523447 5.63139376837e-05
+0.7499752636010157 0.6250484783715251 0.125220018722203
+0.8748803435631061 0.5000994532469534 0.1250607874084295
+0.8752275079490062 0.6253456881502615 0.0002539653562224
+0.8125128216786521 0.5627274977709575 0.0626181994597133
+0.8124091120342101 0.6873321279342122 0.1878163533568156
+0.9374392125915705 0.5624005467530466 0.1876196564368939
+0.9377318320269126 0.6876615948087093 0.0628443626094111
+0.0005878008915801 0.7504237712370667 0.0005878008915801
+0.9995662939375691 0.8731307995842599 0.1279591148113539
+0.1252954879007717 0.7495298757449476 0.1252954879007717
+0.1279591148113539 0.8731307995842599 0.9995662939375691
+0.062990448814169 0.8122250150238273 0.062990448814169
+0.0629337060624309 0.9345408851886461 0.1893692004157401
+0.187919437306256 0.8116014776945093 0.187919437306256
+0.1893692004157401 0.9345408851886461 0.0629337060624309
+0.251128859431212 0.7489321799796116 0.999931623020764
+0.2515519094421919 0.873273201162327 0.1250720962463276
+0.3756265150108717 0.7493189410783287 0.1250433437140188
+0.3754588813542341 0.8746241056597839 0.9998916144492895
+0.3135678200203884 0.811371140568788 0.062568376979236
+0.3126683074099432 0.9368052185377209 0.1873966451552107
+0.43771898860048 0.8121867911027323 0.1875824358951448
+0.4376109370885857 0.9373058454932277 0.062432435237092
+0.500344459523447 0.749926768924297 5.63139376837e-05
+0.5000994532469534 0.8748803435631061 0.1250607874084295
+0.6250484783715251 0.7499752636010157 0.125220018722203
+0.6253456881502615 0.8752275079490062 0.0002539653562224
+0.5627274977709575 0.8125128216786521 0.0626181994597133
+0.5624005467530466 0.9374392125915705 0.1876196564368939
+0.6873321279342122 0.8124091120342101 0.1878163533568156
+0.6876615948087093 0.9377318320269126 0.0628443626094111
+0.7506334161903538 0.7506334161903538 0.000533723216769
+0.7498316925900568 0.8751033548447893 0.1256947814622791
+0.8751033548447893 0.7498316925900568 0.1256947814622791
+0.8774816870715156 0.8774816870715156 0.0021867627370753
+0.8131939098439602 0.8131939098439602 0.0632918410620533
+0.8109480905578081 0.9374279037536724 0.189226798837673
+0.9374279037536724 0.8109480905578081 0.189226798837673
+0.999509551185831 0.999509551185831 0.2502749849761727
+0.9996556373905889 0.1247681679730874 0.3748384051912907
+0.1247681679730874 0.9996556373905889 0.3748384051912907
+0.1234959657115127 0.1234959657115127 0.2481093523413591
+0.0619121991084199 0.0619121991084199 0.3120762287629333
+0.0622460346437776 0.1872724920509938 0.4371543118497385
+0.1872724920509938 0.0622460346437776 0.4371543118497385
+0.1865259383110214 0.1865259383110214 0.3112059277232575
+0.2493060901560398 0.9992081589379467 0.2493060901560398
+0.2494199406491617 0.1245418082903385 0.3742461815682532
+0.3747422135454173 0.999760321803258 0.3747422135454173
+0.3742461815682532 0.1245418082903385 0.2494199406491617
+0.3118665838096462 0.061966276783231 0.3118665838096462
+0.3121044770599752 0.1872235973796492 0.4369226213862163
+0.4372738623353456 0.0623785656373315 0.4372738623353456
+0.4369226213862163 0.1872235973796492 0.3121044770599752
+0.4997725022290425 0.9998818005402867 0.2499871783213479
+0.4996010915061717 0.1249038502795159 0.3748197143601502
+0.6245796981769658 0.9999525141492356 0.3753966363493149
+0.6245557295312949 0.1250514631228725 0.2501427677896189
+0.562155540476553 0.0624436860623163 0.312573231075703
+0.5621837316800722 0.1874769898317012 0.4374222752875099
+0.6871033636506851 0.0625474858507644 0.4379203018230342
+0.6869971030181148 0.1875864047350788 0.3127377428931908
+0.7489321799796116 0.999931623020764 0.251128859431212
+0.7493189410783287 0.1250433437140188 0.3756265150108717
+0.8746241056597839 0.9998916144492895 0.3754588813542341
+0.873273201162327 0.1250720962463276 0.2515519094421919
+0.811371140568788 0.062568376979236 0.3135678200203884
+0.8121867911027323 0.1875824358951448 0.43771898860048
+0.9373058454932277 0.062432435237092 0.4376109370885857
+0.9368052185377209 0.1873966451552107 0.3126683074099432
+0.9992081589379467 0.2493060901560398 0.2493060901560398
+0.999760321803258 0.3747422135454173 0.3747422135454173
+0.1245418082903385 0.2494199406491617 0.3742461815682532
+0.1245418082903385 0.3742461815682532 0.2494199406491617
+0.061966276783231 0.3118665838096462 0.3118665838096462
+0.0623785656373315 0.4372738623353456 0.4372738623353456
+0.1872235973796492 0.3121044770599752 0.4369226213862163
+0.1872235973796492 0.4369226213862163 0.3121044770599752
+0.2491504000005023 0.2491504000005023 0.2491504000005023
+0.2497131676078297 0.3745620153373608 0.3745620153373608
+0.3745620153373608 0.2497131676078297 0.3745620153373608
+0.3745620153373608 0.3745620153373608 0.2497131676078297
+0.311931562877902 0.311931562877902 0.311931562877902
+0.3123373779011018 0.4372143977195861 0.4372143977195861
+0.4372143977195861 0.3123373779011018 0.4372143977195861
+0.4372143977195861 0.4372143977195861 0.3123373779011018
+0.4994956244664124 0.2498262317297488 0.2498262317297488
+0.4997227698817284 0.3748766291175016 0.3748766291175016
+0.6245995110599054 0.2500340528006291 0.3750375686275405
+0.6245995110599054 0.3750375686275405 0.2500340528006291
+0.5620893888672924 0.3124258299455249 0.3124258299455249
+0.5623403702971146 0.437446704112638 0.437446704112638
+0.6872477178003962 0.3125547798053745 0.4375190928588708
+0.6872477178003962 0.4375190928588708 0.3125547798053745
+0.7493701362645737 0.2502303352819055 0.2502303352819055
+0.7497511673377488 0.375083369305699 0.375083369305699
+0.8746836466431844 0.2500908879657899 0.3751678720657878
+0.8746836466431844 0.3751678720657878 0.2500908879657899
+0.8121639120863691 0.3126056846357059 0.3126056846357059
+0.8123537429970042 0.4375716978082309 0.4375716978082309
+0.937279981277797 0.3125247363989843 0.4374515216284749
+0.937279981277797 0.4374515216284749 0.3125247363989843
+0.9998818005402867 0.4997725022290425 0.2499871783213479
+0.9999525141492356 0.6245796981769658 0.3753966363493149
+0.1249038502795159 0.4996010915061717 0.3748197143601502
+0.1250514631228725 0.6245557295312949 0.2501427677896189
+0.0624436860623163 0.562155540476553 0.312573231075703
+0.0625474858507644 0.6871033636506851 0.4379203018230342
+0.1874769898317012 0.5621837316800722 0.4374222752875099
+0.1875864047350788 0.6869971030181148 0.3127377428931908
+0.2498262317297488 0.4994956244664124 0.2498262317297488
+0.2500340528006291 0.6245995110599054 0.3750375686275405
+0.3748766291175016 0.4997227698817284 0.3748766291175016
+0.3750375686275405 0.6245995110599054 0.2500340528006291
+0.3124258299455249 0.5620893888672924 0.3124258299455249
+0.3125547798053745 0.6872477178003962 0.4375190928588708
+0.437446704112638 0.5623403702971146 0.437446704112638
+0.4375190928588708 0.6872477178003962 0.3125547798053745
+0.4997978942833541 0.4997978942833541 0.2499813033376626
+0.4999819843286133 0.6248643733483306 0.3750633164823185
+0.6248643733483306 0.4999819843286133 0.3750633164823185
+0.6249283021917691 0.6249283021917691 0.2501462570029958
+0.5623803272361414 0.5623803272361414 0.3125411643022744
+0.5625180156713867 0.6874366835176815 0.4376356266516694
+0.6874366835176815 0.5625180156713867 0.4376356266516694
+0.687416630694301 0.687416630694301 0.3127488326622512
+0.7497969614070286 0.5000680732346083 0.2501381393081559
+0.7499452201946255 0.6249809071411292 0.3752522821995967
+0.8748829326536693 0.4999794646695079 0.3751469630690139
+0.8749175641048552 0.62478101139952 0.2503132088972677
+0.8123618606918441 0.5624319267653917 0.3127030385929714
+0.8124659471993709 0.6874624313724595 0.4379004889400946
+0.9374471544364411 0.5623913706688413 0.4377404017719329
+0.9374566562859812 0.6868734849891283 0.3131810589216713
+0.999931623020764 0.7489321799796116 0.251128859431212
+0.9998916144492895 0.8746241056597839 0.3754588813542341
+0.1250433437140188 0.7493189410783287 0.3756265150108717
+0.1250720962463276 0.873273201162327 0.2515519094421919
+0.062568376979236 0.811371140568788 0.3135678200203884
+0.062432435237092 0.9373058454932277 0.4376109370885857
+0.1875824358951448 0.8121867911027323 0.43771898860048
+0.1873966451552107 0.9368052185377209 0.3126683074099432
+0.2502303352819055 0.7493701362645737 0.2502303352819055
+0.2500908879657899 0.8746836466431844 0.3751678720657878
+0.375083369305699 0.7497511673377488 0.375083369305699
+0.3751678720657878 0.8746836466431844 0.2500908879657899
+0.3126056846357059 0.8121639120863691 0.3126056846357059
+0.3125247363989843 0.937279981277797 0.4374515216284749
+0.4375716978082309 0.8123537429970042 0.4375716978082309
+0.4374515216284749 0.937279981277797 0.3125247363989843
+0.5000680732346083 0.7497969614070286 0.2501381393081559
+0.4999794646695079 0.8748829326536693 0.3751469630690139
+0.6249809071411292 0.7499452201946255 0.3752522821995967
+0.62478101139952 0.8749175641048552 0.2503132088972677
+0.5624319267653917 0.8123618606918441 0.3127030385929714
+0.5623913706688413 0.9374471544364411 0.4377404017719329
+0.6874624313724595 0.8124659471993709 0.4379004889400946
+0.6868734849891283 0.9374566562859812 0.3131810589216713
+0.7498943153642941 0.7498943153642941 0.2503360879136309
+0.7497622571068092 0.8749135952649212 0.3755028969818852
+0.8749135952649212 0.7497622571068092 0.3755028969818852
+0.874580562693744 0.874580562693744 0.2508985223054978
+0.8122696647180945 0.8122696647180945 0.3131298637354263
+0.8123572322103811 0.9374485368771275 0.4379442704687051
+0.9374485368771275 0.8123572322103811 0.4379442704687051
+0.9372045120992283 0.9372045120992283 0.3129701242550524
+0.9999622175248959 0.9999622175248959 0.5000967740344464
+6.7564762908e-05 0.1251941545067723 0.6248890629114143
+0.1251941545067723 6.7564762908e-05 0.6248890629114143
+0.1249032075827188 0.1249032075827188 0.4996938489792768
+0.0625377824751041 0.0625377824751041 0.5624032259655536
+0.0626083855507105 0.1878758943402161 0.6870411186457659
+0.1878758943402161 0.0626083855507105 0.6870411186457659
+0.1874846665729564 0.1874846665729564 0.5620769183451486
+0.2499871783213479 0.9998818005402867 0.4997725022290425
+0.2501427677896189 0.1250514631228725 0.6245557295312949
+0.3753966363493149 0.9999525141492356 0.6245796981769658
+0.3748197143601502 0.1249038502795159 0.4996010915061717
+0.312573231075703 0.0624436860623163 0.562155540476553
+0.3127377428931908 0.1875864047350788 0.6869971030181148
+0.4379203018230342 0.0625474858507644 0.6871033636506851
+0.4374222752875099 0.1874769898317012 0.5621837316800722
+0.4999677711967934 0.9999503580635007 0.4999677711967934
+0.5001086293311587 0.1250528455635589 0.6247595982280671
+0.6252261376646544 0.0001214343626685 0.6252261376646544
+0.6247595982280671 0.1250528455635589 0.5001086293311587
+0.5625322288032066 0.0625496419364993 0.5625322288032066
+0.5625205353304921 0.1876170673463307 0.6873530369309861
+0.6877577864545827 0.062739678196742 0.6877577864545827
+0.6873530369309861 0.1876170673463307 0.5625205353304921
+0.749926768924297 5.63139376837e-05 0.500344459523447
+0.7499752636010157 0.125220018722203 0.6250484783715251
+0.8752275079490062 0.0002539653562224 0.6253456881502615
+0.8748803435631061 0.1250607874084295 0.5000994532469534
+0.8125128216786521 0.0626181994597133 0.5627274977709575
+0.8124091120342101 0.1878163533568156 0.6873321279342122
+0.9377318320269126 0.0628443626094111 0.6876615948087093
+0.9374392125915705 0.1876196564368939 0.5624005467530466
+0.9998818005402867 0.2499871783213479 0.4997725022290425
+0.9999525141492356 0.3753966363493149 0.6245796981769658
+0.1250514631228725 0.2501427677896189 0.6245557295312949
+0.1249038502795159 0.3748197143601502 0.4996010915061717
+0.0624436860623163 0.312573231075703 0.562155540476553
+0.0625474858507644 0.4379203018230342 0.6871033636506851
+0.1875864047350788 0.3127377428931908 0.6869971030181148
+0.1874769898317012 0.4374222752875099 0.5621837316800722
+0.2498262317297488 0.2498262317297488 0.4994956244664124
+0.2500340528006291 0.3750375686275405 0.6245995110599054
+0.3750375686275405 0.2500340528006291 0.6245995110599054
+0.3748766291175016 0.3748766291175016 0.4997227698817284
+0.3124258299455249 0.3124258299455249 0.5620893888672924
+0.3125547798053745 0.4375190928588708 0.6872477178003962
+0.4375190928588708 0.3125547798053745 0.6872477178003962
+0.437446704112638 0.437446704112638 0.5623403702971146
+0.4997978942833541 0.2499813033376626 0.4997978942833541
+0.4999819843286133 0.3750633164823185 0.6248643733483306
+0.6249283021917691 0.2501462570029958 0.6249283021917691
+0.6248643733483306 0.3750633164823185 0.4999819843286133
+0.5623803272361414 0.3125411643022744 0.5623803272361414
+0.5625180156713867 0.4376356266516694 0.6874366835176815
+0.687416630694301 0.3127488326622512 0.687416630694301
+0.6874366835176815 0.4376356266516694 0.5625180156713867
+0.7497969614070286 0.2501381393081559 0.5000680732346083
+0.7499452201946255 0.3752522821995967 0.6249809071411292
+0.8749175641048552 0.2503132088972677 0.62478101139952
+0.8748829326536693 0.3751469630690139 0.4999794646695079
+0.8123618606918441 0.3127030385929714 0.5624319267653917
+0.8124659471993709 0.4379004889400946 0.6874624313724595
+0.9374566562859812 0.3131810589216713 0.6868734849891283
+0.9374471544364411 0.4377404017719329 0.5623913706688413
+0.9999503580635007 0.4999677711967934 0.4999677711967934
+0.0001214343626685 0.6252261376646544 0.6252261376646544
+0.1250528455635589 0.5001086293311587 0.6247595982280671
+0.1250528455635589 0.6247595982280671 0.5001086293311587
+0.0625496419364993 0.5625322288032066 0.5625322288032066
+0.062739678196742 0.6877577864545827 0.6877577864545827
+0.1876170673463307 0.5625205353304921 0.6873530369309861
+0.1876170673463307 0.6873530369309861 0.5625205353304921
+0.2499813033376626 0.4997978942833541 0.4997978942833541
+0.2501462570029958 0.6249283021917691 0.6249283021917691
+0.3750633164823185 0.4999819843286133 0.6248643733483306
+0.3750633164823185 0.6248643733483306 0.4999819843286133
+0.3125411643022744 0.5623803272361414 0.5623803272361414
+0.3127488326622512 0.687416630694301 0.687416630694301
+0.4376356266516694 0.5625180156713867 0.6874366835176815
+0.4376356266516694 0.6874366835176815 0.5625180156713867
+0.4999571462127292 0.4999571462127292 0.4999571462127292
+0.5001596297028854 0.625053295887362 0.625053295887362
+0.625053295887362 0.5001596297028854 0.625053295887362
+0.625053295887362 0.625053295887362 0.5001596297028854
+0.5625428537872779 0.5625428537872779 0.5625428537872779
+0.5627772301182716 0.6876233708824984 0.6876233708824984
+0.6876233708824984 0.5627772301182716 0.6876233708824984
+0.6876233708824984 0.6876233708824984 0.5627772301182716
+0.7499588356977256 0.5001196727638586 0.5001196727638586
+0.7501626220988982 0.6252856022804139 0.6252856022804139
+0.8750230101682988 0.5003162683199278 0.6250777247124972
+0.8750230101682988 0.6250777247124972 0.5003162683199278
+0.8125186966623374 0.5627021057166459 0.5627021057166459
+0.8127868323921703 0.6879379846626392 0.6879379846626392
+0.9375961497204841 0.5628989084938283 0.6876802856398498
+0.9375961497204841 0.6876802856398498 0.5628989084938283
+5.63139376837e-05 0.749926768924297 0.500344459523447
+0.0002539653562224 0.8752275079490062 0.6253456881502615
+0.125220018722203 0.7499752636010157 0.6250484783715251
+0.1250607874084295 0.8748803435631061 0.5000994532469534
+0.0626181994597133 0.8125128216786521 0.5627274977709575
+0.0628443626094111 0.9377318320269126 0.6876615948087093
+0.1878163533568156 0.8124091120342101 0.6873321279342122
+0.1876196564368939 0.9374392125915705 0.5624005467530466
+0.2501381393081559 0.7497969614070286 0.5000680732346083
+0.2503132088972677 0.8749175641048552 0.62478101139952
+0.3752522821995967 0.7499452201946255 0.6249809071411292
+0.3751469630690139 0.8748829326536693 0.4999794646695079
+0.3127030385929714 0.8123618606918441 0.5624319267653917
+0.3131810589216713 0.9374566562859812 0.6868734849891283
+0.4379004889400946 0.8124659471993709 0.6874624313724595
+0.4377404017719329 0.9374471544364411 0.5623913706688413
+0.5001196727638586 0.7499588356977256 0.5001196727638586
+0.5003162683199278 0.8750230101682988 0.6250777247124972
+0.6252856022804139 0.7501626220988982 0.6252856022804139
+0.6250777247124972 0.8750230101682988 0.5003162683199278
+0.5627021057166459 0.8125186966623374 0.5627021057166459
+0.5628989084938283 0.9375961497204841 0.6876802856398498
+0.6879379846626392 0.8127868323921703 0.6879379846626392
+0.6876802856398498 0.9375961497204841 0.5628989084938283
+0.7500741700544751 0.7500741700544751 0.5004106111327076
+0.7503955229400248 0.8752764026203508 0.6255773786137837
+0.8752764026203508 0.7503955229400248 0.6255773786137837
+0.8750153334270436 0.8750153334270436 0.5004230816548514
+0.8126737682702512 0.8126737682702512 0.5630043755335876
+0.8130800593508454 0.9379581917096615 0.6882538184317468
+0.9379581917096615 0.8130800593508454 0.6882538184317468
+0.9375967924172812 0.9375967924172812 0.5628061510207232
+0.0005878008915801 0.0005878008915801 0.7504237712370667
+0.9995662939375691 0.1279591148113539 0.8731307995842599
+0.1279591148113539 0.9995662939375691 0.8731307995842599
+0.1252954879007717 0.1252954879007717 0.7495298757449476
+0.062990448814169 0.062990448814169 0.8122250150238273
+0.0629337060624309 0.1893692004157401 0.9345408851886461
+0.1893692004157401 0.0629337060624309 0.9345408851886461
+0.187919437306256 0.187919437306256 0.8116014776945093
+0.251128859431212 0.999931623020764 0.7489321799796116
+0.2515519094421919 0.1250720962463276 0.873273201162327
+0.3754588813542341 0.9998916144492895 0.8746241056597839
+0.3756265150108717 0.1250433437140188 0.7493189410783287
+0.3135678200203884 0.062568376979236 0.811371140568788
+0.3126683074099432 0.1873966451552107 0.9368052185377209
+0.4376109370885857 0.062432435237092 0.9373058454932277
+0.43771898860048 0.1875824358951448 0.8121867911027323
+0.500344459523447 5.63139376837e-05 0.749926768924297
+0.5000994532469534 0.1250607874084295 0.8748803435631061
+0.6253456881502615 0.0002539653562224 0.8752275079490062
+0.6250484783715251 0.125220018722203 0.7499752636010157
+0.5627274977709575 0.0626181994597133 0.8125128216786521
+0.5624005467530466 0.1876196564368939 0.9374392125915705
+0.6876615948087093 0.0628443626094111 0.9377318320269126
+0.6873321279342122 0.1878163533568156 0.8124091120342101
+0.7506334161903538 0.000533723216769 0.7506334161903538
+0.7498316925900568 0.1256947814622791 0.8751033548447893
+0.8774816870715156 0.0021867627370753 0.8774816870715156
+0.8751033548447893 0.1256947814622791 0.7498316925900568
+0.8131939098439602 0.0632918410620533 0.8131939098439602
+0.8109480905578081 0.189226798837673 0.9374279037536724
+0.9374279037536724 0.189226798837673 0.8109480905578081
+0.999931623020764 0.251128859431212 0.7489321799796116
+0.9998916144492895 0.3754588813542341 0.8746241056597839
+0.1250720962463276 0.2515519094421919 0.873273201162327
+0.1250433437140188 0.3756265150108717 0.7493189410783287
+0.062568376979236 0.3135678200203884 0.811371140568788
+0.062432435237092 0.4376109370885857 0.9373058454932277
+0.1873966451552107 0.3126683074099432 0.9368052185377209
+0.1875824358951448 0.43771898860048 0.8121867911027323
+0.2502303352819055 0.2502303352819055 0.7493701362645737
+0.2500908879657899 0.3751678720657878 0.8746836466431844
+0.3751678720657878 0.2500908879657899 0.8746836466431844
+0.375083369305699 0.375083369305699 0.7497511673377488
+0.3126056846357059 0.3126056846357059 0.8121639120863691
+0.3125247363989843 0.4374515216284749 0.937279981277797
+0.4374515216284749 0.3125247363989843 0.937279981277797
+0.4375716978082309 0.4375716978082309 0.8123537429970042
+0.5000680732346083 0.2501381393081559 0.7497969614070286
+0.4999794646695079 0.3751469630690139 0.8748829326536693
+0.62478101139952 0.2503132088972677 0.8749175641048552
+0.6249809071411292 0.3752522821995967 0.7499452201946255
+0.5624319267653917 0.3127030385929714 0.8123618606918441
+0.5623913706688413 0.4377404017719329 0.9374471544364411
+0.6868734849891283 0.3131810589216713 0.9374566562859812
+0.6874624313724595 0.4379004889400946 0.8124659471993709
+0.7498943153642941 0.2503360879136309 0.7498943153642941
+0.7497622571068092 0.3755028969818852 0.8749135952649212
+0.874580562693744 0.2508985223054978 0.874580562693744
+0.8749135952649212 0.3755028969818852 0.7497622571068092
+0.8122696647180945 0.3131298637354263 0.8122696647180945
+0.8123572322103811 0.4379442704687051 0.9374485368771275
+0.9372045120992283 0.3129701242550524 0.9372045120992283
+0.9374485368771275 0.4379442704687051 0.8123572322103811
+5.63139376837e-05 0.500344459523447 0.749926768924297
+0.0002539653562224 0.6253456881502615 0.8752275079490062
+0.1250607874084295 0.5000994532469534 0.8748803435631061
+0.125220018722203 0.6250484783715251 0.7499752636010157
+0.0626181994597133 0.5627274977709575 0.8125128216786521
+0.0628443626094111 0.6876615948087093 0.9377318320269126
+0.1876196564368939 0.5624005467530466 0.9374392125915705
+0.1878163533568156 0.6873321279342122 0.8124091120342101
+0.2501381393081559 0.5000680732346083 0.7497969614070286
+0.2503132088972677 0.62478101139952 0.8749175641048552
+0.3751469630690139 0.4999794646695079 0.8748829326536693
+0.3752522821995967 0.6249809071411292 0.7499452201946255
+0.3127030385929714 0.5624319267653917 0.8123618606918441
+0.3131810589216713 0.6868734849891283 0.9374566562859812
+0.4377404017719329 0.5623913706688413 0.9374471544364411
+0.4379004889400946 0.6874624313724595 0.8124659471993709
+0.5001196727638586 0.5001196727638586 0.7499588356977256
+0.5003162683199278 0.6250777247124972 0.8750230101682988
+0.6250777247124972 0.5003162683199278 0.8750230101682988
+0.6252856022804139 0.6252856022804139 0.7501626220988982
+0.5627021057166459 0.5627021057166459 0.8125186966623374
+0.5628989084938283 0.6876802856398498 0.9375961497204841
+0.6876802856398498 0.5628989084938283 0.9375961497204841
+0.6879379846626392 0.6879379846626392 0.8127868323921703
+0.7500741700544751 0.5004106111327076 0.7500741700544751
+0.7503955229400248 0.6255773786137837 0.8752764026203508
+0.8750153334270436 0.5004230816548514 0.8750153334270436
+0.8752764026203508 0.6255773786137837 0.7503955229400248
+0.8126737682702512 0.5630043755335876 0.8126737682702512
+0.8130800593508454 0.6882538184317468 0.9379581917096615
+0.9375967924172812 0.5628061510207232 0.9375967924172812
+0.9379581917096615 0.6882538184317468 0.8130800593508454
+0.000533723216769 0.7506334161903538 0.7506334161903538
+0.0021867627370753 0.8774816870715156 0.8774816870715156
+0.1256947814622791 0.7498316925900568 0.8751033548447893
+0.1256947814622791 0.8751033548447893 0.7498316925900568
+0.0632918410620533 0.8131939098439602 0.8131939098439602
+0.189226798837673 0.8109480905578081 0.9374279037536724
+0.189226798837673 0.9374279037536724 0.8109480905578081
+0.2503360879136309 0.7498943153642941 0.7498943153642941
+0.2508985223054978 0.874580562693744 0.874580562693744
+0.3755028969818852 0.7497622571068092 0.8749135952649212
+0.3755028969818852 0.8749135952649212 0.7497622571068092
+0.3131298637354263 0.8122696647180945 0.8122696647180945
+0.3129701242550524 0.9372045120992283 0.9372045120992283
+0.4379442704687051 0.8123572322103811 0.9374485368771275
+0.4379442704687051 0.9374485368771275 0.8123572322103811
+0.5004106111327076 0.7500741700544751 0.7500741700544751
+0.5004230816548514 0.8750153334270436 0.8750153334270436
+0.6255773786137837 0.7503955229400248 0.8752764026203508
+0.6255773786137837 0.8752764026203508 0.7503955229400248
+0.5630043755335876 0.8126737682702512 0.8126737682702512
+0.5628061510207232 0.9375967924172812 0.9375967924172812
+0.6882538184317468 0.8130800593508454 0.9379581917096615
+0.6882538184317468 0.9379581917096615 0.8130800593508454
+0.750568437122098 0.750568437122098 0.750568437122098
+0.7512940722767425 0.8759740616889786 0.8759740616889786
+0.8759740616889786 0.7512940722767425 0.8759740616889786
+0.8759740616889786 0.8759740616889786 0.7512940722767425
+0.8133495999994977 0.8133495999994977 0.8133495999994977
+0.8143906476586409 0.9390040342884873 0.9390040342884873
+0.9390040342884873 0.8143906476586409 0.9390040342884873
+0.9390040342884873 0.9390040342884873 0.8143906476586409
+0.992296373839693 0.125215811162029 0.125215811162029
+0.125215811162029 0.992296373839693 0.125215811162029
+0.125215811162029 0.125215811162029 0.992296373839693
+0.070203626160307 0.937284188837971 0.937284188837971
+0.937284188837971 0.070203626160307 0.937284188837971
+0.937284188837971 0.937284188837971 0.070203626160307
diff --git a/tests/pyposcar/results/POSCAR-nv.vasp_cluster-h1.vasp b/tests/pyposcar/results/POSCAR-nv.vasp_cluster-h1.vasp
new file mode 100644
index 00000000..8115c0ba
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-nv.vasp_cluster-h1.vasp
@@ -0,0 +1,57 @@
+poscar.py
+1.0
+17.835 0.0 0.0
+0.0 17.835 0.0
+0.0 0.0 17.835
+C N H
+18 1 30
+Direct
+0.0 0.1 0.1
+0.1 0.0 0.1
+0.1 0.1 0.0
+0.9 0.0 0.1
+0.9 0.1 0.0
+0.95 0.05 0.15
+0.95 0.15 0.05
+0.0 0.9 0.1
+0.1 0.9 0.0
+0.05 0.95 0.15
+0.15 0.95 0.05
+0.95 0.95 0.05
+0.0 0.1 0.9
+0.1 0.0 0.9
+0.05 0.15 0.95
+0.15 0.05 0.95
+0.95 0.05 0.95
+0.05 0.95 0.95
+0.0 0.0 0.0
+0.034961496536293574 0.13496149653629358 0.13496149653629358
+0.13496149653629358 0.034961496536293574 0.13496149653629358
+0.13496149653629358 0.13496149653629358 0.034961496536293574
+0.034961496536293574 0.8650385034637065 0.06503850346370643
+-0.03496149653629362 0.8650385034637065 0.13496149653629355
+0.06503850346370643 0.034961496536293574 0.8650385034637065
+0.13496149653629355 -0.03496149653629362 0.8650385034637065
+0.06503850346370643 0.8650385034637065 0.034961496536293574
+0.13496149653629355 0.8650385034637065 -0.03496149653629362
+0.8650385034637065 0.06503850346370643 0.034961496536293574
+0.8650385034637065 0.13496149653629355 -0.03496149653629362
+0.08496149653629359 0.9150385034637064 0.1849614965362936
+0.01503850346370645 0.9849614965362935 0.18496149653629354
+0.9150385034637064 0.08496149653629359 0.1849614965362936
+0.9849614965362935 0.01503850346370645 0.18496149653629354
+0.9150385034637064 0.1849614965362936 0.08496149653629359
+0.9849614965362935 0.18496149653629354 0.01503850346370645
+0.18496149653629354 0.9849614965362935 0.01503850346370645
+0.1849614965362936 0.9150385034637064 0.08496149653629359
+0.08496149653629359 0.1849614965362936 0.9150385034637064
+0.01503850346370645 0.18496149653629354 0.9849614965362935
+0.18496149653629354 0.01503850346370645 0.9849614965362935
+0.1849614965362936 0.08496149653629359 0.9150385034637064
+0.8650385034637065 0.034961496536293574 0.06503850346370643
+0.8650385034637065 -0.03496149653629362 0.13496149653629355
+0.034961496536293574 0.06503850346370643 0.8650385034637065
+-0.03496149653629362 0.13496149653629355 0.8650385034637065
+0.015038503463706382 0.9150385034637064 0.9150385034637064
+0.9150385034637064 0.015038503463706382 0.9150385034637064
+0.9150385034637064 0.9150385034637064 0.015038503463706382
diff --git a/tests/pyposcar/results/POSCAR-nv.vasp_cluster-h2.vasp b/tests/pyposcar/results/POSCAR-nv.vasp_cluster-h2.vasp
new file mode 100644
index 00000000..8454d5a9
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-nv.vasp_cluster-h2.vasp
@@ -0,0 +1,87 @@
+poscar.py
+1.0
+17.835 0.0 0.0
+0.0 17.835 0.0
+0.0 0.0 17.835
+C N H
+36 1 42
+Direct
+0.0 0.1 0.1
+0.1 0.0 0.1
+0.1 0.1 0.0
+0.05 0.15 0.15
+0.15 0.05 0.15
+0.15 0.15 0.05
+0.2 0.0 0.0
+0.2 0.1 0.1
+0.9 0.0 0.1
+0.9 0.1 0.0
+0.85 0.05 0.05
+0.95 0.05 0.15
+0.95 0.15 0.05
+0.0 0.2 0.0
+0.1 0.2 0.1
+0.0 0.9 0.1
+0.1 0.9 0.0
+0.05 0.85 0.05
+0.05 0.95 0.15
+0.15 0.95 0.05
+0.9 0.9 0.0
+0.95 0.95 0.05
+0.0 0.0 0.2
+0.1 0.1 0.2
+0.0 0.1 0.9
+0.1 0.0 0.9
+0.05 0.05 0.85
+0.05 0.15 0.95
+0.15 0.05 0.95
+0.9 0.0 0.9
+0.95 0.05 0.95
+0.0 0.9 0.9
+0.05 0.95 0.95
+0.85 0.95 0.95
+0.95 0.85 0.95
+0.95 0.95 0.85
+0.0 0.0 0.0
+0.015038503463706426 0.1849614965362936 0.1849614965362936
+0.1849614965362936 0.015038503463706426 0.1849614965362936
+0.1849614965362936 0.1849614965362936 0.015038503463706426
+0.23496149653629358 0.034961496536293574 0.034961496536293574
+0.23496149653629353 -0.034961496536293594 -0.034961496536293594
+0.23496149653629358 0.06503850346370643 0.06503850346370643
+0.23496149653629358 0.13496149653629358 0.13496149653629358
+-0.03496149653629362 0.13496149653629355 0.8650385034637065
+0.13496149653629355 -0.03496149653629362 0.8650385034637065
+0.13496149653629355 0.8650385034637065 -0.03496149653629362
+0.8650385034637065 0.13496149653629355 -0.03496149653629362
+0.08496149653629359 0.9150385034637064 0.1849614965362936
+0.9150385034637064 0.08496149653629359 0.1849614965362936
+0.9150385034637064 0.1849614965362936 0.08496149653629359
+0.1849614965362936 0.9150385034637064 0.08496149653629359
+0.08496149653629359 0.1849614965362936 0.9150385034637064
+0.1849614965362936 0.08496149653629359 0.9150385034637064
+0.8650385034637065 -0.03496149653629362 0.13496149653629355
+-0.03496149653629362 0.8650385034637065 0.13496149653629355
+0.06503850346370643 0.23496149653629358 0.06503850346370643
+0.13496149653629358 0.23496149653629358 0.13496149653629358
+0.8150385034637064 0.015038503463706426 0.015038503463706426
+0.8150385034637064 0.08496149653629358 0.08496149653629358
+0.034961496536293574 0.23496149653629358 0.034961496536293574
+-0.034961496536293594 0.23496149653629353 -0.034961496536293594
+0.08496149653629358 0.8150385034637064 0.08496149653629358
+0.015038503463706426 0.8150385034637064 0.015038503463706426
+0.034961496536293574 0.8650385034637065 0.8650385034637065
+0.8650385034637065 0.034961496536293574 0.8650385034637065
+0.8650385034637065 0.8650385034637065 0.034961496536293574
+0.08496149653629358 0.08496149653629358 0.8150385034637064
+0.015038503463706426 0.015038503463706426 0.8150385034637064
+0.034961496536293574 0.034961496536293574 0.23496149653629358
+-0.034961496536293594 -0.034961496536293594 0.23496149653629353
+0.06503850346370643 0.06503850346370643 0.23496149653629358
+0.13496149653629358 0.13496149653629358 0.23496149653629358
+0.8150385034637064 0.9849614965362935 0.9849614965362935
+0.8150385034637063 0.9150385034637064 0.9150385034637064
+0.9150385034637064 0.8150385034637063 0.9150385034637064
+0.9849614965362935 0.8150385034637064 0.9849614965362935
+0.9150385034637064 0.9150385034637064 0.8150385034637063
+0.9849614965362935 0.9849614965362935 0.8150385034637064
diff --git a/tests/pyposcar/results/POSCAR-nv.vasp_cluster-n1.vasp b/tests/pyposcar/results/POSCAR-nv.vasp_cluster-n1.vasp
new file mode 100644
index 00000000..b7f7a151
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-nv.vasp_cluster-n1.vasp
@@ -0,0 +1,33 @@
+poscar.py
+1.0
+17.835 0.0 0.0
+0.0 17.835 0.0
+0.0 0.0 17.835
+C N
+24 1
+Direct
+0.0 0.1 0.1
+0.1 0.0 0.1
+0.1 0.1 0.0
+0.05 0.15 0.15
+0.15 0.05 0.15
+0.15 0.15 0.05
+0.9 0.0 0.1
+0.9 0.1 0.0
+0.95 0.05 0.15
+0.95 0.15 0.05
+0.0 0.9 0.1
+0.1 0.9 0.0
+0.05 0.95 0.15
+0.15 0.95 0.05
+0.9 0.9 0.0
+0.95 0.95 0.05
+0.0 0.1 0.9
+0.1 0.0 0.9
+0.05 0.15 0.95
+0.15 0.05 0.95
+0.9 0.0 0.9
+0.95 0.05 0.95
+0.0 0.9 0.9
+0.05 0.95 0.95
+0.0 0.0 0.0
diff --git a/tests/pyposcar/results/POSCAR-nv.vasp_cluster-n2.vasp b/tests/pyposcar/results/POSCAR-nv.vasp_cluster-n2.vasp
new file mode 100644
index 00000000..98e0216b
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-nv.vasp_cluster-n2.vasp
@@ -0,0 +1,63 @@
+poscar.py
+1.0
+17.835 0.0 0.0
+0.0 17.835 0.0
+0.0 0.0 17.835
+C N
+54 1
+Direct
+0.0 0.1 0.1
+0.1 0.0 0.1
+0.1 0.1 0.0
+0.05 0.15 0.15
+0.15 0.05 0.15
+0.15 0.15 0.05
+0.2 0.0 0.0
+0.2 0.1 0.1
+0.9 0.0 0.1
+0.9 0.1 0.0
+0.85 0.05 0.05
+0.95 0.05 0.15
+0.95 0.15 0.05
+0.0 0.2 0.0
+0.1 0.2 0.1
+0.2 0.2 0.0
+0.9 0.2 0.1
+0.0 0.9 0.1
+0.1 0.9 0.0
+0.05 0.85 0.05
+0.05 0.95 0.15
+0.15 0.95 0.05
+0.2 0.9 0.1
+0.9 0.9 0.0
+0.85 0.85 0.05
+0.85 0.95 0.15
+0.95 0.85 0.15
+0.95 0.95 0.05
+0.0 0.0 0.2
+0.1 0.1 0.2
+0.2 0.0 0.2
+0.9 0.1 0.2
+0.0 0.2 0.2
+0.1 0.9 0.2
+0.0 0.1 0.9
+0.1 0.0 0.9
+0.05 0.05 0.85
+0.05 0.15 0.95
+0.15 0.05 0.95
+0.2 0.1 0.9
+0.9 0.0 0.9
+0.85 0.05 0.85
+0.85 0.15 0.95
+0.95 0.05 0.95
+0.95 0.15 0.85
+0.1 0.2 0.9
+0.0 0.9 0.9
+0.05 0.85 0.85
+0.05 0.95 0.95
+0.15 0.85 0.95
+0.15 0.95 0.85
+0.85 0.95 0.95
+0.95 0.85 0.95
+0.95 0.95 0.85
+0.0 0.0 0.0
diff --git a/tests/pyposcar/results/POSCAR-nv.vasp_cluster-s1.vasp b/tests/pyposcar/results/POSCAR-nv.vasp_cluster-s1.vasp
new file mode 100644
index 00000000..5d70dcac
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-nv.vasp_cluster-s1.vasp
@@ -0,0 +1,27 @@
+poscar.py
+1.0
+17.835 0.0 0.0
+0.0 17.835 0.0
+0.0 0.0 17.835
+C N
+18 1
+Direct
+0.0 0.1 0.1
+0.1 0.0 0.1
+0.1 0.1 0.0
+0.9 0.0 0.1
+0.9 0.1 0.0
+0.95 0.05 0.15
+0.95 0.15 0.05
+0.0 0.9 0.1
+0.1 0.9 0.0
+0.05 0.95 0.15
+0.15 0.95 0.05
+0.95 0.95 0.05
+0.0 0.1 0.9
+0.1 0.0 0.9
+0.05 0.15 0.95
+0.15 0.05 0.95
+0.95 0.05 0.95
+0.05 0.95 0.95
+0.0 0.0 0.0
diff --git a/tests/pyposcar/results/POSCAR-nv.vasp_cluster-s2.vasp b/tests/pyposcar/results/POSCAR-nv.vasp_cluster-s2.vasp
new file mode 100644
index 00000000..5f2dfb5b
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-nv.vasp_cluster-s2.vasp
@@ -0,0 +1,45 @@
+poscar.py
+1.0
+17.835 0.0 0.0
+0.0 17.835 0.0
+0.0 0.0 17.835
+C N
+36 1
+Direct
+0.0 0.1 0.1
+0.1 0.0 0.1
+0.1 0.1 0.0
+0.05 0.15 0.15
+0.15 0.05 0.15
+0.15 0.15 0.05
+0.2 0.0 0.0
+0.2 0.1 0.1
+0.9 0.0 0.1
+0.9 0.1 0.0
+0.85 0.05 0.05
+0.95 0.05 0.15
+0.95 0.15 0.05
+0.0 0.2 0.0
+0.1 0.2 0.1
+0.0 0.9 0.1
+0.1 0.9 0.0
+0.05 0.85 0.05
+0.05 0.95 0.15
+0.15 0.95 0.05
+0.9 0.9 0.0
+0.95 0.95 0.05
+0.0 0.0 0.2
+0.1 0.1 0.2
+0.0 0.1 0.9
+0.1 0.0 0.9
+0.05 0.05 0.85
+0.05 0.15 0.95
+0.15 0.05 0.95
+0.9 0.0 0.9
+0.95 0.05 0.95
+0.0 0.9 0.9
+0.05 0.95 0.95
+0.85 0.95 0.95
+0.95 0.85 0.95
+0.95 0.95 0.85
+0.0 0.0 0.0
diff --git a/tests/pyposcar/results/POSCAR-nv.vasp_cluster.vasp b/tests/pyposcar/results/POSCAR-nv.vasp_cluster.vasp
new file mode 100644
index 00000000..a6f479a6
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-nv.vasp_cluster.vasp
@@ -0,0 +1,15 @@
+poscar.py
+1.0
+17.835 0.0 0.0
+0.0 17.835 0.0
+0.0 0.0 17.835
+C N
+6 1
+Direct
+0.0 0.1 0.1
+0.1 0.0 0.1
+0.1 0.1 0.0
+0.95 0.95 0.05
+0.95 0.05 0.95
+0.05 0.95 0.95
+0.0 0.0 0.0
diff --git a/tests/pyposcar/results/POSCAR-nv.vasp_defect.vasp b/tests/pyposcar/results/POSCAR-nv.vasp_defect.vasp
new file mode 100644
index 00000000..e4c29dd9
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR-nv.vasp_defect.vasp
@@ -0,0 +1,1007 @@
+poscar.py
+1.0
+17.835 0.0 0.0
+0.0 17.835 0.0
+0.0 0.0 17.835
+C D
+992 7
+Direct
+0.05 0.15 0.15
+0.15 0.05 0.15
+0.15 0.15 0.05
+0.2 0.0 0.0
+0.2 0.1 0.1
+0.3 0.0 0.1
+0.3 0.1 0.0
+0.25 0.05 0.05
+0.25 0.15 0.15
+0.35 0.05 0.15
+0.35 0.15 0.05
+0.4 0.0 0.0
+0.4 0.1 0.1
+0.5 0.0 0.1
+0.5 0.1 0.0
+0.45 0.05 0.05
+0.45 0.15 0.15
+0.55 0.05 0.15
+0.55 0.15 0.05
+0.6 0.0 0.0
+0.6 0.1 0.1
+0.7 0.0 0.1
+0.7 0.1 0.0
+0.65 0.05 0.05
+0.65 0.15 0.15
+0.75 0.05 0.15
+0.75 0.15 0.05
+0.8 0.0 0.0
+0.8 0.1 0.1
+0.9 0.0 0.1
+0.9 0.1 0.0
+0.85 0.05 0.05
+0.85 0.15 0.15
+0.95 0.05 0.15
+0.95 0.15 0.05
+0.0 0.2 0.0
+0.0 0.3 0.1
+0.1 0.2 0.1
+0.1 0.3 0.0
+0.05 0.25 0.05
+0.05 0.35 0.15
+0.15 0.25 0.15
+0.15 0.35 0.05
+0.2 0.2 0.0
+0.2 0.3 0.1
+0.3 0.2 0.1
+0.3 0.3 0.0
+0.25 0.25 0.05
+0.25 0.35 0.15
+0.35 0.25 0.15
+0.35 0.35 0.05
+0.4 0.2 0.0
+0.4 0.3 0.1
+0.5 0.2 0.1
+0.5 0.3 0.0
+0.45 0.25 0.05
+0.45 0.35 0.15
+0.55 0.25 0.15
+0.55 0.35 0.05
+0.6 0.2 0.0
+0.6 0.3 0.1
+0.7 0.2 0.1
+0.7 0.3 0.0
+0.65 0.25 0.05
+0.65 0.35 0.15
+0.75 0.25 0.15
+0.75 0.35 0.05
+0.8 0.2 0.0
+0.8 0.3 0.1
+0.9 0.2 0.1
+0.9 0.3 0.0
+0.85 0.25 0.05
+0.85 0.35 0.15
+0.95 0.25 0.15
+0.95 0.35 0.05
+0.0 0.4 0.0
+0.0 0.5 0.1
+0.1 0.4 0.1
+0.1 0.5 0.0
+0.05 0.45 0.05
+0.05 0.55 0.15
+0.15 0.45 0.15
+0.15 0.55 0.05
+0.2 0.4 0.0
+0.2 0.5 0.1
+0.3 0.4 0.1
+0.3 0.5 0.0
+0.25 0.45 0.05
+0.25 0.55 0.15
+0.35 0.45 0.15
+0.35 0.55 0.05
+0.4 0.4 0.0
+0.4 0.5 0.1
+0.5 0.4 0.1
+0.5 0.5 0.0
+0.45 0.45 0.05
+0.45 0.55 0.15
+0.55 0.45 0.15
+0.55 0.55 0.05
+0.6 0.4 0.0
+0.6 0.5 0.1
+0.7 0.4 0.1
+0.7 0.5 0.0
+0.65 0.45 0.05
+0.65 0.55 0.15
+0.75 0.45 0.15
+0.75 0.55 0.05
+0.8 0.4 0.0
+0.8 0.5 0.1
+0.9 0.4 0.1
+0.9 0.5 0.0
+0.85 0.45 0.05
+0.85 0.55 0.15
+0.95 0.45 0.15
+0.95 0.55 0.05
+0.0 0.6 0.0
+0.0 0.7 0.1
+0.1 0.6 0.1
+0.1 0.7 0.0
+0.05 0.65 0.05
+0.05 0.75 0.15
+0.15 0.65 0.15
+0.15 0.75 0.05
+0.2 0.6 0.0
+0.2 0.7 0.1
+0.3 0.6 0.1
+0.3 0.7 0.0
+0.25 0.65 0.05
+0.25 0.75 0.15
+0.35 0.65 0.15
+0.35 0.75 0.05
+0.4 0.6 0.0
+0.4 0.7 0.1
+0.5 0.6 0.1
+0.5 0.7 0.0
+0.45 0.65 0.05
+0.45 0.75 0.15
+0.55 0.65 0.15
+0.55 0.75 0.05
+0.6 0.6 0.0
+0.6 0.7 0.1
+0.7 0.6 0.1
+0.7 0.7 0.0
+0.65 0.65 0.05
+0.65 0.75 0.15
+0.75 0.65 0.15
+0.75 0.75 0.05
+0.8 0.6 0.0
+0.8 0.7 0.1
+0.9 0.6 0.1
+0.9 0.7 0.0
+0.85 0.65 0.05
+0.85 0.75 0.15
+0.95 0.65 0.15
+0.95 0.75 0.05
+0.0 0.8 0.0
+0.0 0.9 0.1
+0.1 0.8 0.1
+0.1 0.9 0.0
+0.05 0.85 0.05
+0.05 0.95 0.15
+0.15 0.85 0.15
+0.15 0.95 0.05
+0.2 0.8 0.0
+0.2 0.9 0.1
+0.3 0.8 0.1
+0.3 0.9 0.0
+0.25 0.85 0.05
+0.25 0.95 0.15
+0.35 0.85 0.15
+0.35 0.95 0.05
+0.4 0.8 0.0
+0.4 0.9 0.1
+0.5 0.8 0.1
+0.5 0.9 0.0
+0.45 0.85 0.05
+0.45 0.95 0.15
+0.55 0.85 0.15
+0.55 0.95 0.05
+0.6 0.8 0.0
+0.6 0.9 0.1
+0.7 0.8 0.1
+0.7 0.9 0.0
+0.65 0.85 0.05
+0.65 0.95 0.15
+0.75 0.85 0.15
+0.75 0.95 0.05
+0.8 0.8 0.0
+0.8 0.9 0.1
+0.9 0.8 0.1
+0.9 0.9 0.0
+0.85 0.85 0.05
+0.85 0.95 0.15
+0.95 0.85 0.15
+0.0 0.0 0.2
+0.0 0.1 0.3
+0.1 0.0 0.3
+0.1 0.1 0.2
+0.05 0.05 0.25
+0.05 0.15 0.35
+0.15 0.05 0.35
+0.15 0.15 0.25
+0.2 0.0 0.2
+0.2 0.1 0.3
+0.3 0.0 0.3
+0.3 0.1 0.2
+0.25 0.05 0.25
+0.25 0.15 0.35
+0.35 0.05 0.35
+0.35 0.15 0.25
+0.4 0.0 0.2
+0.4 0.1 0.3
+0.5 0.0 0.3
+0.5 0.1 0.2
+0.45 0.05 0.25
+0.45 0.15 0.35
+0.55 0.05 0.35
+0.55 0.15 0.25
+0.6 0.0 0.2
+0.6 0.1 0.3
+0.7 0.0 0.3
+0.7 0.1 0.2
+0.65 0.05 0.25
+0.65 0.15 0.35
+0.75 0.05 0.35
+0.75 0.15 0.25
+0.8 0.0 0.2
+0.8 0.1 0.3
+0.9 0.0 0.3
+0.9 0.1 0.2
+0.85 0.05 0.25
+0.85 0.15 0.35
+0.95 0.05 0.35
+0.95 0.15 0.25
+0.0 0.2 0.2
+0.0 0.3 0.3
+0.1 0.2 0.3
+0.1 0.3 0.2
+0.05 0.25 0.25
+0.05 0.35 0.35
+0.15 0.25 0.35
+0.15 0.35 0.25
+0.2 0.2 0.2
+0.2 0.3 0.3
+0.3 0.2 0.3
+0.3 0.3 0.2
+0.25 0.25 0.25
+0.25 0.35 0.35
+0.35 0.25 0.35
+0.35 0.35 0.25
+0.4 0.2 0.2
+0.4 0.3 0.3
+0.5 0.2 0.3
+0.5 0.3 0.2
+0.45 0.25 0.25
+0.45 0.35 0.35
+0.55 0.25 0.35
+0.55 0.35 0.25
+0.6 0.2 0.2
+0.6 0.3 0.3
+0.7 0.2 0.3
+0.7 0.3 0.2
+0.65 0.25 0.25
+0.65 0.35 0.35
+0.75 0.25 0.35
+0.75 0.35 0.25
+0.8 0.2 0.2
+0.8 0.3 0.3
+0.9 0.2 0.3
+0.9 0.3 0.2
+0.85 0.25 0.25
+0.85 0.35 0.35
+0.95 0.25 0.35
+0.95 0.35 0.25
+0.0 0.4 0.2
+0.0 0.5 0.3
+0.1 0.4 0.3
+0.1 0.5 0.2
+0.05 0.45 0.25
+0.05 0.55 0.35
+0.15 0.45 0.35
+0.15 0.55 0.25
+0.2 0.4 0.2
+0.2 0.5 0.3
+0.3 0.4 0.3
+0.3 0.5 0.2
+0.25 0.45 0.25
+0.25 0.55 0.35
+0.35 0.45 0.35
+0.35 0.55 0.25
+0.4 0.4 0.2
+0.4 0.5 0.3
+0.5 0.4 0.3
+0.5 0.5 0.2
+0.45 0.45 0.25
+0.45 0.55 0.35
+0.55 0.45 0.35
+0.55 0.55 0.25
+0.6 0.4 0.2
+0.6 0.5 0.3
+0.7 0.4 0.3
+0.7 0.5 0.2
+0.65 0.45 0.25
+0.65 0.55 0.35
+0.75 0.45 0.35
+0.75 0.55 0.25
+0.8 0.4 0.2
+0.8 0.5 0.3
+0.9 0.4 0.3
+0.9 0.5 0.2
+0.85 0.45 0.25
+0.85 0.55 0.35
+0.95 0.45 0.35
+0.95 0.55 0.25
+0.0 0.6 0.2
+0.0 0.7 0.3
+0.1 0.6 0.3
+0.1 0.7 0.2
+0.05 0.65 0.25
+0.05 0.75 0.35
+0.15 0.65 0.35
+0.15 0.75 0.25
+0.2 0.6 0.2
+0.2 0.7 0.3
+0.3 0.6 0.3
+0.3 0.7 0.2
+0.25 0.65 0.25
+0.25 0.75 0.35
+0.35 0.65 0.35
+0.35 0.75 0.25
+0.4 0.6 0.2
+0.4 0.7 0.3
+0.5 0.6 0.3
+0.5 0.7 0.2
+0.45 0.65 0.25
+0.45 0.75 0.35
+0.55 0.65 0.35
+0.55 0.75 0.25
+0.6 0.6 0.2
+0.6 0.7 0.3
+0.7 0.6 0.3
+0.7 0.7 0.2
+0.65 0.65 0.25
+0.65 0.75 0.35
+0.75 0.65 0.35
+0.75 0.75 0.25
+0.8 0.6 0.2
+0.8 0.7 0.3
+0.9 0.6 0.3
+0.9 0.7 0.2
+0.85 0.65 0.25
+0.85 0.75 0.35
+0.95 0.65 0.35
+0.95 0.75 0.25
+0.0 0.8 0.2
+0.0 0.9 0.3
+0.1 0.8 0.3
+0.1 0.9 0.2
+0.05 0.85 0.25
+0.05 0.95 0.35
+0.15 0.85 0.35
+0.15 0.95 0.25
+0.2 0.8 0.2
+0.2 0.9 0.3
+0.3 0.8 0.3
+0.3 0.9 0.2
+0.25 0.85 0.25
+0.25 0.95 0.35
+0.35 0.85 0.35
+0.35 0.95 0.25
+0.4 0.8 0.2
+0.4 0.9 0.3
+0.5 0.8 0.3
+0.5 0.9 0.2
+0.45 0.85 0.25
+0.45 0.95 0.35
+0.55 0.85 0.35
+0.55 0.95 0.25
+0.6 0.8 0.2
+0.6 0.9 0.3
+0.7 0.8 0.3
+0.7 0.9 0.2
+0.65 0.85 0.25
+0.65 0.95 0.35
+0.75 0.85 0.35
+0.75 0.95 0.25
+0.8 0.8 0.2
+0.8 0.9 0.3
+0.9 0.8 0.3
+0.9 0.9 0.2
+0.85 0.85 0.25
+0.85 0.95 0.35
+0.95 0.85 0.35
+0.95 0.95 0.25
+0.0 0.0 0.4
+0.0 0.1 0.5
+0.1 0.0 0.5
+0.1 0.1 0.4
+0.05 0.05 0.45
+0.05 0.15 0.55
+0.15 0.05 0.55
+0.15 0.15 0.45
+0.2 0.0 0.4
+0.2 0.1 0.5
+0.3 0.0 0.5
+0.3 0.1 0.4
+0.25 0.05 0.45
+0.25 0.15 0.55
+0.35 0.05 0.55
+0.35 0.15 0.45
+0.4 0.0 0.4
+0.4 0.1 0.5
+0.5 0.0 0.5
+0.5 0.1 0.4
+0.45 0.05 0.45
+0.45 0.15 0.55
+0.55 0.05 0.55
+0.55 0.15 0.45
+0.6 0.0 0.4
+0.6 0.1 0.5
+0.7 0.0 0.5
+0.7 0.1 0.4
+0.65 0.05 0.45
+0.65 0.15 0.55
+0.75 0.05 0.55
+0.75 0.15 0.45
+0.8 0.0 0.4
+0.8 0.1 0.5
+0.9 0.0 0.5
+0.9 0.1 0.4
+0.85 0.05 0.45
+0.85 0.15 0.55
+0.95 0.05 0.55
+0.95 0.15 0.45
+0.0 0.2 0.4
+0.0 0.3 0.5
+0.1 0.2 0.5
+0.1 0.3 0.4
+0.05 0.25 0.45
+0.05 0.35 0.55
+0.15 0.25 0.55
+0.15 0.35 0.45
+0.2 0.2 0.4
+0.2 0.3 0.5
+0.3 0.2 0.5
+0.3 0.3 0.4
+0.25 0.25 0.45
+0.25 0.35 0.55
+0.35 0.25 0.55
+0.35 0.35 0.45
+0.4 0.2 0.4
+0.4 0.3 0.5
+0.5 0.2 0.5
+0.5 0.3 0.4
+0.45 0.25 0.45
+0.45 0.35 0.55
+0.55 0.25 0.55
+0.55 0.35 0.45
+0.6 0.2 0.4
+0.6 0.3 0.5
+0.7 0.2 0.5
+0.7 0.3 0.4
+0.65 0.25 0.45
+0.65 0.35 0.55
+0.75 0.25 0.55
+0.75 0.35 0.45
+0.8 0.2 0.4
+0.8 0.3 0.5
+0.9 0.2 0.5
+0.9 0.3 0.4
+0.85 0.25 0.45
+0.85 0.35 0.55
+0.95 0.25 0.55
+0.95 0.35 0.45
+0.0 0.4 0.4
+0.0 0.5 0.5
+0.1 0.4 0.5
+0.1 0.5 0.4
+0.05 0.45 0.45
+0.05 0.55 0.55
+0.15 0.45 0.55
+0.15 0.55 0.45
+0.2 0.4 0.4
+0.2 0.5 0.5
+0.3 0.4 0.5
+0.3 0.5 0.4
+0.25 0.45 0.45
+0.25 0.55 0.55
+0.35 0.45 0.55
+0.35 0.55 0.45
+0.4 0.4 0.4
+0.4 0.5 0.5
+0.5 0.4 0.5
+0.5 0.5 0.4
+0.45 0.45 0.45
+0.45 0.55 0.55
+0.55 0.45 0.55
+0.55 0.55 0.45
+0.6 0.4 0.4
+0.6 0.5 0.5
+0.7 0.4 0.5
+0.7 0.5 0.4
+0.65 0.45 0.45
+0.65 0.55 0.55
+0.75 0.45 0.55
+0.75 0.55 0.45
+0.8 0.4 0.4
+0.8 0.5 0.5
+0.9 0.4 0.5
+0.9 0.5 0.4
+0.85 0.45 0.45
+0.85 0.55 0.55
+0.95 0.45 0.55
+0.95 0.55 0.45
+0.0 0.6 0.4
+0.0 0.7 0.5
+0.1 0.6 0.5
+0.1 0.7 0.4
+0.05 0.65 0.45
+0.05 0.75 0.55
+0.15 0.65 0.55
+0.15 0.75 0.45
+0.2 0.6 0.4
+0.2 0.7 0.5
+0.3 0.6 0.5
+0.3 0.7 0.4
+0.25 0.65 0.45
+0.25 0.75 0.55
+0.35 0.65 0.55
+0.35 0.75 0.45
+0.4 0.6 0.4
+0.4 0.7 0.5
+0.5 0.6 0.5
+0.5 0.7 0.4
+0.45 0.65 0.45
+0.45 0.75 0.55
+0.55 0.65 0.55
+0.55 0.75 0.45
+0.6 0.6 0.4
+0.6 0.7 0.5
+0.7 0.6 0.5
+0.7 0.7 0.4
+0.65 0.65 0.45
+0.65 0.75 0.55
+0.75 0.65 0.55
+0.75 0.75 0.45
+0.8 0.6 0.4
+0.8 0.7 0.5
+0.9 0.6 0.5
+0.9 0.7 0.4
+0.85 0.65 0.45
+0.85 0.75 0.55
+0.95 0.65 0.55
+0.95 0.75 0.45
+0.0 0.8 0.4
+0.0 0.9 0.5
+0.1 0.8 0.5
+0.1 0.9 0.4
+0.05 0.85 0.45
+0.05 0.95 0.55
+0.15 0.85 0.55
+0.15 0.95 0.45
+0.2 0.8 0.4
+0.2 0.9 0.5
+0.3 0.8 0.5
+0.3 0.9 0.4
+0.25 0.85 0.45
+0.25 0.95 0.55
+0.35 0.85 0.55
+0.35 0.95 0.45
+0.4 0.8 0.4
+0.4 0.9 0.5
+0.5 0.8 0.5
+0.5 0.9 0.4
+0.45 0.85 0.45
+0.45 0.95 0.55
+0.55 0.85 0.55
+0.55 0.95 0.45
+0.6 0.8 0.4
+0.6 0.9 0.5
+0.7 0.8 0.5
+0.7 0.9 0.4
+0.65 0.85 0.45
+0.65 0.95 0.55
+0.75 0.85 0.55
+0.75 0.95 0.45
+0.8 0.8 0.4
+0.8 0.9 0.5
+0.9 0.8 0.5
+0.9 0.9 0.4
+0.85 0.85 0.45
+0.85 0.95 0.55
+0.95 0.85 0.55
+0.95 0.95 0.45
+0.0 0.0 0.6
+0.0 0.1 0.7
+0.1 0.0 0.7
+0.1 0.1 0.6
+0.05 0.05 0.65
+0.05 0.15 0.75
+0.15 0.05 0.75
+0.15 0.15 0.65
+0.2 0.0 0.6
+0.2 0.1 0.7
+0.3 0.0 0.7
+0.3 0.1 0.6
+0.25 0.05 0.65
+0.25 0.15 0.75
+0.35 0.05 0.75
+0.35 0.15 0.65
+0.4 0.0 0.6
+0.4 0.1 0.7
+0.5 0.0 0.7
+0.5 0.1 0.6
+0.45 0.05 0.65
+0.45 0.15 0.75
+0.55 0.05 0.75
+0.55 0.15 0.65
+0.6 0.0 0.6
+0.6 0.1 0.7
+0.7 0.0 0.7
+0.7 0.1 0.6
+0.65 0.05 0.65
+0.65 0.15 0.75
+0.75 0.05 0.75
+0.75 0.15 0.65
+0.8 0.0 0.6
+0.8 0.1 0.7
+0.9 0.0 0.7
+0.9 0.1 0.6
+0.85 0.05 0.65
+0.85 0.15 0.75
+0.95 0.05 0.75
+0.95 0.15 0.65
+0.0 0.2 0.6
+0.0 0.3 0.7
+0.1 0.2 0.7
+0.1 0.3 0.6
+0.05 0.25 0.65
+0.05 0.35 0.75
+0.15 0.25 0.75
+0.15 0.35 0.65
+0.2 0.2 0.6
+0.2 0.3 0.7
+0.3 0.2 0.7
+0.3 0.3 0.6
+0.25 0.25 0.65
+0.25 0.35 0.75
+0.35 0.25 0.75
+0.35 0.35 0.65
+0.4 0.2 0.6
+0.4 0.3 0.7
+0.5 0.2 0.7
+0.5 0.3 0.6
+0.45 0.25 0.65
+0.45 0.35 0.75
+0.55 0.25 0.75
+0.55 0.35 0.65
+0.6 0.2 0.6
+0.6 0.3 0.7
+0.7 0.2 0.7
+0.7 0.3 0.6
+0.65 0.25 0.65
+0.65 0.35 0.75
+0.75 0.25 0.75
+0.75 0.35 0.65
+0.8 0.2 0.6
+0.8 0.3 0.7
+0.9 0.2 0.7
+0.9 0.3 0.6
+0.85 0.25 0.65
+0.85 0.35 0.75
+0.95 0.25 0.75
+0.95 0.35 0.65
+0.0 0.4 0.6
+0.0 0.5 0.7
+0.1 0.4 0.7
+0.1 0.5 0.6
+0.05 0.45 0.65
+0.05 0.55 0.75
+0.15 0.45 0.75
+0.15 0.55 0.65
+0.2 0.4 0.6
+0.2 0.5 0.7
+0.3 0.4 0.7
+0.3 0.5 0.6
+0.25 0.45 0.65
+0.25 0.55 0.75
+0.35 0.45 0.75
+0.35 0.55 0.65
+0.4 0.4 0.6
+0.4 0.5 0.7
+0.5 0.4 0.7
+0.5 0.5 0.6
+0.45 0.45 0.65
+0.45 0.55 0.75
+0.55 0.45 0.75
+0.55 0.55 0.65
+0.6 0.4 0.6
+0.6 0.5 0.7
+0.7 0.4 0.7
+0.7 0.5 0.6
+0.65 0.45 0.65
+0.65 0.55 0.75
+0.75 0.45 0.75
+0.75 0.55 0.65
+0.8 0.4 0.6
+0.8 0.5 0.7
+0.9 0.4 0.7
+0.9 0.5 0.6
+0.85 0.45 0.65
+0.85 0.55 0.75
+0.95 0.45 0.75
+0.95 0.55 0.65
+0.0 0.6 0.6
+0.0 0.7 0.7
+0.1 0.6 0.7
+0.1 0.7 0.6
+0.05 0.65 0.65
+0.05 0.75 0.75
+0.15 0.65 0.75
+0.15 0.75 0.65
+0.2 0.6 0.6
+0.2 0.7 0.7
+0.3 0.6 0.7
+0.3 0.7 0.6
+0.25 0.65 0.65
+0.25 0.75 0.75
+0.35 0.65 0.75
+0.35 0.75 0.65
+0.4 0.6 0.6
+0.4 0.7 0.7
+0.5 0.6 0.7
+0.5 0.7 0.6
+0.45 0.65 0.65
+0.45 0.75 0.75
+0.55 0.65 0.75
+0.55 0.75 0.65
+0.6 0.6 0.6
+0.6 0.7 0.7
+0.7 0.6 0.7
+0.7 0.7 0.6
+0.65 0.65 0.65
+0.65 0.75 0.75
+0.75 0.65 0.75
+0.75 0.75 0.65
+0.8 0.6 0.6
+0.8 0.7 0.7
+0.9 0.6 0.7
+0.9 0.7 0.6
+0.85 0.65 0.65
+0.85 0.75 0.75
+0.95 0.65 0.75
+0.95 0.75 0.65
+0.0 0.8 0.6
+0.0 0.9 0.7
+0.1 0.8 0.7
+0.1 0.9 0.6
+0.05 0.85 0.65
+0.05 0.95 0.75
+0.15 0.85 0.75
+0.15 0.95 0.65
+0.2 0.8 0.6
+0.2 0.9 0.7
+0.3 0.8 0.7
+0.3 0.9 0.6
+0.25 0.85 0.65
+0.25 0.95 0.75
+0.35 0.85 0.75
+0.35 0.95 0.65
+0.4 0.8 0.6
+0.4 0.9 0.7
+0.5 0.8 0.7
+0.5 0.9 0.6
+0.45 0.85 0.65
+0.45 0.95 0.75
+0.55 0.85 0.75
+0.55 0.95 0.65
+0.6 0.8 0.6
+0.6 0.9 0.7
+0.7 0.8 0.7
+0.7 0.9 0.6
+0.65 0.85 0.65
+0.65 0.95 0.75
+0.75 0.85 0.75
+0.75 0.95 0.65
+0.8 0.8 0.6
+0.8 0.9 0.7
+0.9 0.8 0.7
+0.9 0.9 0.6
+0.85 0.85 0.65
+0.85 0.95 0.75
+0.95 0.85 0.75
+0.95 0.95 0.65
+0.0 0.0 0.8
+0.0 0.1 0.9
+0.1 0.0 0.9
+0.1 0.1 0.8
+0.05 0.05 0.85
+0.05 0.15 0.95
+0.15 0.05 0.95
+0.15 0.15 0.85
+0.2 0.0 0.8
+0.2 0.1 0.9
+0.3 0.0 0.9
+0.3 0.1 0.8
+0.25 0.05 0.85
+0.25 0.15 0.95
+0.35 0.05 0.95
+0.35 0.15 0.85
+0.4 0.0 0.8
+0.4 0.1 0.9
+0.5 0.0 0.9
+0.5 0.1 0.8
+0.45 0.05 0.85
+0.45 0.15 0.95
+0.55 0.05 0.95
+0.55 0.15 0.85
+0.6 0.0 0.8
+0.6 0.1 0.9
+0.7 0.0 0.9
+0.7 0.1 0.8
+0.65 0.05 0.85
+0.65 0.15 0.95
+0.75 0.05 0.95
+0.75 0.15 0.85
+0.8 0.0 0.8
+0.8 0.1 0.9
+0.9 0.0 0.9
+0.9 0.1 0.8
+0.85 0.05 0.85
+0.85 0.15 0.95
+0.95 0.15 0.85
+0.0 0.2 0.8
+0.0 0.3 0.9
+0.1 0.2 0.9
+0.1 0.3 0.8
+0.05 0.25 0.85
+0.05 0.35 0.95
+0.15 0.25 0.95
+0.15 0.35 0.85
+0.2 0.2 0.8
+0.2 0.3 0.9
+0.3 0.2 0.9
+0.3 0.3 0.8
+0.25 0.25 0.85
+0.25 0.35 0.95
+0.35 0.25 0.95
+0.35 0.35 0.85
+0.4 0.2 0.8
+0.4 0.3 0.9
+0.5 0.2 0.9
+0.5 0.3 0.8
+0.45 0.25 0.85
+0.45 0.35 0.95
+0.55 0.25 0.95
+0.55 0.35 0.85
+0.6 0.2 0.8
+0.6 0.3 0.9
+0.7 0.2 0.9
+0.7 0.3 0.8
+0.65 0.25 0.85
+0.65 0.35 0.95
+0.75 0.25 0.95
+0.75 0.35 0.85
+0.8 0.2 0.8
+0.8 0.3 0.9
+0.9 0.2 0.9
+0.9 0.3 0.8
+0.85 0.25 0.85
+0.85 0.35 0.95
+0.95 0.25 0.95
+0.95 0.35 0.85
+0.0 0.4 0.8
+0.0 0.5 0.9
+0.1 0.4 0.9
+0.1 0.5 0.8
+0.05 0.45 0.85
+0.05 0.55 0.95
+0.15 0.45 0.95
+0.15 0.55 0.85
+0.2 0.4 0.8
+0.2 0.5 0.9
+0.3 0.4 0.9
+0.3 0.5 0.8
+0.25 0.45 0.85
+0.25 0.55 0.95
+0.35 0.45 0.95
+0.35 0.55 0.85
+0.4 0.4 0.8
+0.4 0.5 0.9
+0.5 0.4 0.9
+0.5 0.5 0.8
+0.45 0.45 0.85
+0.45 0.55 0.95
+0.55 0.45 0.95
+0.55 0.55 0.85
+0.6 0.4 0.8
+0.6 0.5 0.9
+0.7 0.4 0.9
+0.7 0.5 0.8
+0.65 0.45 0.85
+0.65 0.55 0.95
+0.75 0.45 0.95
+0.75 0.55 0.85
+0.8 0.4 0.8
+0.8 0.5 0.9
+0.9 0.4 0.9
+0.9 0.5 0.8
+0.85 0.45 0.85
+0.85 0.55 0.95
+0.95 0.45 0.95
+0.95 0.55 0.85
+0.0 0.6 0.8
+0.0 0.7 0.9
+0.1 0.6 0.9
+0.1 0.7 0.8
+0.05 0.65 0.85
+0.05 0.75 0.95
+0.15 0.65 0.95
+0.15 0.75 0.85
+0.2 0.6 0.8
+0.2 0.7 0.9
+0.3 0.6 0.9
+0.3 0.7 0.8
+0.25 0.65 0.85
+0.25 0.75 0.95
+0.35 0.65 0.95
+0.35 0.75 0.85
+0.4 0.6 0.8
+0.4 0.7 0.9
+0.5 0.6 0.9
+0.5 0.7 0.8
+0.45 0.65 0.85
+0.45 0.75 0.95
+0.55 0.65 0.95
+0.55 0.75 0.85
+0.6 0.6 0.8
+0.6 0.7 0.9
+0.7 0.6 0.9
+0.7 0.7 0.8
+0.65 0.65 0.85
+0.65 0.75 0.95
+0.75 0.65 0.95
+0.75 0.75 0.85
+0.8 0.6 0.8
+0.8 0.7 0.9
+0.9 0.6 0.9
+0.9 0.7 0.8
+0.85 0.65 0.85
+0.85 0.75 0.95
+0.95 0.65 0.95
+0.95 0.75 0.85
+0.0 0.8 0.8
+0.0 0.9 0.9
+0.1 0.8 0.9
+0.1 0.9 0.8
+0.05 0.85 0.85
+0.15 0.85 0.95
+0.15 0.95 0.85
+0.2 0.8 0.8
+0.2 0.9 0.9
+0.3 0.8 0.9
+0.3 0.9 0.8
+0.25 0.85 0.85
+0.25 0.95 0.95
+0.35 0.85 0.95
+0.35 0.95 0.85
+0.4 0.8 0.8
+0.4 0.9 0.9
+0.5 0.8 0.9
+0.5 0.9 0.8
+0.45 0.85 0.85
+0.45 0.95 0.95
+0.55 0.85 0.95
+0.55 0.95 0.85
+0.6 0.8 0.8
+0.6 0.9 0.9
+0.7 0.8 0.9
+0.7 0.9 0.8
+0.65 0.85 0.85
+0.65 0.95 0.95
+0.75 0.85 0.95
+0.75 0.95 0.85
+0.8 0.8 0.8
+0.8 0.9 0.9
+0.9 0.8 0.9
+0.9 0.9 0.8
+0.85 0.85 0.85
+0.85 0.95 0.95
+0.95 0.85 0.95
+0.95 0.95 0.85
+0.0 0.1 0.1
+0.1 0.0 0.1
+0.1 0.1 0.0
+0.05 0.95 0.95
+0.95 0.05 0.95
+0.95 0.95 0.05
+0.0 0.0 0.0
diff --git a/tests/pyposcar/results/POSCAR_cluster-h1.vasp b/tests/pyposcar/results/POSCAR_cluster-h1.vasp
new file mode 100644
index 00000000..f28e3814
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR_cluster-h1.vasp
@@ -0,0 +1,25 @@
+poscar.py
+1.0
+8.7400216172 -15.1381615003 0.0
+8.7400216172 15.1381615003 0.0
+0.0 0.0 16.0
+B N C H
+4 4 1 8
+Direct
+0.4748706067650872 0.39387435795251957 0.2000000000000028
+0.4748706067640568 0.5095676773821082 0.2000000000000028
+0.6182219028961028 0.38473967487646366 0.2000000000000028
+0.618221902899748 0.6620536565928248 0.2000000000000028
+0.523385266959707 0.3432828431628465 0.2000000000000028
+0.523385266960055 0.6086738523710905 0.2000000000000028
+0.6686107722044525 0.48062812516040765 0.2000000000000028
+0.6686107722001111 0.6165540756172305 0.2000000000000028
+0.6241788398966222 0.5263751342354297 0.2000000000000028
+0.48955433068526283 0.27197109362641897 0.2000000000000028
+0.4895543306886798 0.646154665635841 0.2000000000000028
+0.7399203388804957 0.5143950810905759 0.2000000000000028
+0.7399203388761709 0.6540966863630658 0.2000000000000028
+0.4041847949146717 0.35016535262224785 0.2000000000000028
+0.40418479491433223 0.48259087086627184 0.2000000000000028
+0.6535837299738173 0.34875951773798175 0.2000000000000028
+0.6535837299768641 0.7333956408092255 0.2000000000000028
diff --git a/tests/pyposcar/results/POSCAR_cluster-h2.vasp b/tests/pyposcar/results/POSCAR_cluster-h2.vasp
new file mode 100644
index 00000000..400c3f15
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR_cluster-h2.vasp
@@ -0,0 +1,33 @@
+poscar.py
+1.0
+8.7400216172 -15.1381615003 0.0
+8.7400216172 15.1381615003 0.0
+0.0 0.0 16.0
+B N C H
+7 7 1 10
+Direct
+0.3291926059680534 0.3788820172669745 0.2000000000000028
+0.4748706067650872 0.39387435795251957 0.2000000000000028
+0.4748706067640568 0.5095676773821082 0.2000000000000028
+0.6182219028961028 0.38473967487646366 0.2000000000000028
+0.618221902899748 0.6620536565928248 0.2000000000000028
+0.7645021900539604 0.5260352343539836 0.2000000000000028
+0.7645021900586498 0.6670383842778519 0.2000000000000028
+0.379589879504465 0.3349569358180773 0.2000000000000028
+0.3795898795091475 0.47320437226355944 0.2000000000000028
+0.523385266959707 0.3432828431628465 0.2000000000000028
+0.523385266960055 0.6086738523710905 0.2000000000000028
+0.6686107722044525 0.48062812516040765 0.2000000000000028
+0.6686107722001111 0.6165540756172305 0.2000000000000028
+0.8123263288067193 0.6204488786906452 0.2000000000000028
+0.6241788398966222 0.5263751342354297 0.2000000000000028
+0.34474214116728424 0.2636203504634734 0.2000000000000028
+0.3447421411691778 0.5096932192780314 0.2000000000000028
+0.7989848381137115 0.4891880674265905 0.2000000000000028
+0.7989848381155663 0.7383681992651369 0.2000000000000028
+0.48955433068526283 0.27197109362641897 0.2000000000000028
+0.4895543306886798 0.646154665635841 0.2000000000000028
+0.2578497285663444 0.3432105785690133 0.2000000000000028
+0.8836692062084283 0.6561203173923505 0.2000000000000028
+0.6535837299738173 0.34875951773798175 0.2000000000000028
+0.6535837299768641 0.7333956408092255 0.2000000000000028
diff --git a/tests/pyposcar/results/POSCAR_cluster-n1.vasp b/tests/pyposcar/results/POSCAR_cluster-n1.vasp
new file mode 100644
index 00000000..a632f183
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR_cluster-n1.vasp
@@ -0,0 +1,21 @@
+poscar.py
+1.0
+8.7400216172 -15.1381615003 0.0
+8.7400216172 15.1381615003 0.0
+0.0 0.0 16.0
+B N C
+6 6 1
+Direct
+0.4748706067650872 0.3938743579525195 0.2000000000000028
+0.4748706067640569 0.5095676773821083 0.2000000000000028
+0.6182219028961029 0.3847396748764638 0.2000000000000028
+0.618221902899748 0.6620536565928248 0.2000000000000028
+0.7645021900539604 0.5260352343539836 0.2000000000000028
+0.7645021900586499 0.667038384277852 0.2000000000000028
+0.379589879504465 0.3349569358180773 0.2000000000000028
+0.3795898795091475 0.4732043722635595 0.2000000000000028
+0.523385266959707 0.3432828431628465 0.2000000000000028
+0.5233852669600552 0.6086738523710906 0.2000000000000028
+0.6686107722044525 0.4806281251604076 0.2000000000000028
+0.6686107722001111 0.6165540756172305 0.2000000000000028
+0.6241788398966222 0.5263751342354297 0.2000000000000028
diff --git a/tests/pyposcar/results/POSCAR_cluster-n2.vasp b/tests/pyposcar/results/POSCAR_cluster-n2.vasp
new file mode 100644
index 00000000..1ac2e7c3
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR_cluster-n2.vasp
@@ -0,0 +1,31 @@
+poscar.py
+1.0
+8.7400216172 -15.1381615003 0.0
+8.7400216172 15.1381615003 0.0
+0.0 0.0 16.0
+B N C
+11 11 1
+Direct
+0.3331671487939332 0.2399252565830352 0.2000000000000028
+0.3291926059680534 0.3788820172669745 0.2000000000000028
+0.3331671487942742 0.5218133207847941 0.2000000000000028
+0.4767646517527027 0.2450119112587998 0.2000000000000028
+0.4748706067650872 0.3938743579525195 0.2000000000000028
+0.4748706067640569 0.5095676773821083 0.2000000000000028
+0.4767646517577333 0.6603241690714441 0.2000000000000028
+0.6182219028961029 0.3847396748764638 0.2000000000000028
+0.618221902899748 0.6620536565928248 0.2000000000000028
+0.7645021900539604 0.5260352343539836 0.2000000000000028
+0.7645021900586499 0.667038384277852 0.2000000000000028
+0.379589879504465 0.3349569358180773 0.2000000000000028
+0.3795898795091475 0.4732043722635595 0.2000000000000028
+0.523385266959707 0.3432828431628465 0.2000000000000028
+0.5233852669600552 0.6086738523710906 0.2000000000000028
+0.6658582505015929 0.3362703673211129 0.2000000000000028
+0.6686107722044525 0.4806281251604076 0.2000000000000028
+0.6686107722001111 0.6165540756172305 0.2000000000000028
+0.6658582505066235 0.7581593117583623 0.2000000000000028
+0.8102003416120596 0.4772035026430999 0.2000000000000028
+0.8123263288067193 0.6204488786906452 0.2000000000000028
+0.8102003416124077 0.7615682675458118 0.2000000000000028
+0.6241788398966222 0.5263751342354297 0.2000000000000028
diff --git a/tests/pyposcar/results/POSCAR_cluster-s1.vasp b/tests/pyposcar/results/POSCAR_cluster-s1.vasp
new file mode 100644
index 00000000..141f374b
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR_cluster-s1.vasp
@@ -0,0 +1,17 @@
+poscar.py
+1.0
+8.7400216172 -15.1381615003 0.0
+8.7400216172 15.1381615003 0.0
+0.0 0.0 16.0
+B N C
+4 4 1
+Direct
+0.4748706067650872 0.3938743579525195 0.2000000000000028
+0.4748706067640569 0.5095676773821083 0.2000000000000028
+0.6182219028961029 0.3847396748764638 0.2000000000000028
+0.618221902899748 0.6620536565928248 0.2000000000000028
+0.523385266959707 0.3432828431628465 0.2000000000000028
+0.5233852669600552 0.6086738523710906 0.2000000000000028
+0.6686107722044525 0.4806281251604076 0.2000000000000028
+0.6686107722001111 0.6165540756172305 0.2000000000000028
+0.6241788398966222 0.5263751342354297 0.2000000000000028
diff --git a/tests/pyposcar/results/POSCAR_cluster-s2.vasp b/tests/pyposcar/results/POSCAR_cluster-s2.vasp
new file mode 100644
index 00000000..35123f5a
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR_cluster-s2.vasp
@@ -0,0 +1,23 @@
+poscar.py
+1.0
+8.7400216172 -15.1381615003 0.0
+8.7400216172 15.1381615003 0.0
+0.0 0.0 16.0
+B N C
+7 7 1
+Direct
+0.3291926059680534 0.3788820172669745 0.2000000000000028
+0.4748706067650872 0.3938743579525195 0.2000000000000028
+0.4748706067640569 0.5095676773821083 0.2000000000000028
+0.6182219028961029 0.3847396748764638 0.2000000000000028
+0.618221902899748 0.6620536565928248 0.2000000000000028
+0.7645021900539604 0.5260352343539836 0.2000000000000028
+0.7645021900586499 0.667038384277852 0.2000000000000028
+0.379589879504465 0.3349569358180773 0.2000000000000028
+0.3795898795091475 0.4732043722635595 0.2000000000000028
+0.523385266959707 0.3432828431628465 0.2000000000000028
+0.5233852669600552 0.6086738523710906 0.2000000000000028
+0.6686107722044525 0.4806281251604076 0.2000000000000028
+0.6686107722001111 0.6165540756172305 0.2000000000000028
+0.8123263288067193 0.6204488786906452 0.2000000000000028
+0.6241788398966222 0.5263751342354297 0.2000000000000028
diff --git a/tests/pyposcar/results/POSCAR_cluster.vasp b/tests/pyposcar/results/POSCAR_cluster.vasp
new file mode 100644
index 00000000..235499df
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR_cluster.vasp
@@ -0,0 +1,13 @@
+poscar.py
+1.0
+8.7400216172 -15.1381615003 0.0
+8.7400216172 15.1381615003 0.0
+0.0 0.0 16.0
+B N C
+2 2 1
+Direct
+0.4748706067650872 0.3938743579525195 0.2000000000000028
+0.4748706067640569 0.5095676773821083 0.2000000000000028
+0.6686107722044525 0.4806281251604076 0.2000000000000028
+0.6686107722001111 0.6165540756172305 0.2000000000000028
+0.6241788398966222 0.5263751342354297 0.2000000000000028
diff --git a/tests/pyposcar/results/POSCAR_defect.vasp b/tests/pyposcar/results/POSCAR_defect.vasp
new file mode 100644
index 00000000..ac61a18e
--- /dev/null
+++ b/tests/pyposcar/results/POSCAR_defect.vasp
@@ -0,0 +1,105 @@
+poscar.py
+1.0
+8.7400216172 -15.1381615003 0.0
+8.7400216172 15.1381615003 0.0
+0.0 0.0 16.0
+B N D
+46 46 5
+Direct
+0.0463717997729276 0.0944224843942152 0.2000000000000028
+0.0458474746327795 0.2372094516029861 0.2000000000000028
+0.0463717997732687 0.3805207439442597 0.2000000000000028
+0.0480268734143507 0.5239235904915986 0.2000000000000028
+0.0493524899422866 0.6673639730743304 0.2000000000000028
+0.049352489943665 0.8105599454418453 0.2000000000000028
+0.0480268734136615 0.9526747114955896 0.2000000000000028
+0.1905142169649068 0.0958837532245767 0.2000000000000028
+0.1883936945303617 0.2369862846006541 0.2000000000000028
+0.1883936945317473 0.3799788384999374 0.2000000000000028
+0.1905142169642176 0.5232018923095296 0.2000000000000028
+0.1917805584311623 0.6667219362097114 0.2000000000000028
+0.1920786283008766 0.8103250284352015 0.2000000000000028
+0.1917805584315104 0.953630050798985 0.2000000000000028
+0.3344205295026867 0.0975744527918252 0.2000000000000028
+0.3331671487939332 0.2399252565830352 0.2000000000000028
+0.3291926059680534 0.3788820172669745 0.2000000000000028
+0.3331671487942742 0.5218133207847941 0.2000000000000028
+0.33442052950668 0.665417505283699 0.2000000000000028
+0.3346046512685348 0.8094997433670201 0.2000000000000028
+0.3346046512674974 0.9536763364747074 0.2000000000000028
+0.47681170776535 0.0983198446972153 0.2000000000000028
+0.4767646517527027 0.2450119112587998 0.2000000000000028
+0.4767646517577333 0.6603241690714441 0.2000000000000028
+0.4768117077650018 0.8070632916380305 0.2000000000000028
+0.4767932289230359 0.9526823287504484 0.2000000000000028
+0.6186380938966636 0.095960902450372 0.2000000000000028
+0.6186467244081584 0.2406677686407903 0.2000000000000028
+0.6182219028961029 0.3847396748764638 0.2000000000000028
+0.618221902899748 0.6620536565928248 0.2000000000000028
+0.6186467244088547 0.8065503843419322 0.2000000000000028
+0.618638093901005 0.9512486200198325 0.2000000000000028
+0.7607694538352519 0.0946704412029149 0.2000000000000028
+0.7608599691643363 0.2384591171692563 0.2000000000000028
+0.7612388914152604 0.3819495720986126 0.2000000000000028
+0.7645021900539604 0.5260352343539836 0.2000000000000028
+0.7645021900586499 0.667038384277852 0.2000000000000028
+0.7612388914145711 0.8078607478868847 0.2000000000000028
+0.760859969169708 0.9509722805732963 0.2000000000000028
+0.9033278011225434 0.0942876015126544 0.2000000000000028
+0.9033278011272259 0.2376116281841121 0.2000000000000028
+0.9039490297119528 0.3810487783043541 0.2000000000000028
+0.9057028617228084 0.5245075339990066 0.2000000000000028
+0.9073548404441922 0.667963134510515 0.2000000000000028
+0.9057028617231495 0.8097667562987212 0.2000000000000028
+0.903949029715946 0.9514716799814877 0.2000000000000028
+0.0950490721386217 0.0477396876889102 0.2000000000000028
+0.0933155161358172 0.1894164844871895 0.2000000000000028
+0.0933155161347798 0.3324704602174791 0.2000000000000028
+0.0950490721436523 0.4758808130265564 0.2000000000000028
+0.0964156272155776 0.6192989789810355 0.2000000000000028
+0.0967997138343222 0.7626855712057505 0.2000000000000028
+0.0964156272159187 0.9056880768040827 0.2000000000000028
+0.2389878453241963 0.0489979947930195 0.2000000000000028
+0.2375187555243912 0.1909653395470627 0.2000000000000028
+0.2348485676078695 0.3317099980907088 0.2000000000000028
+0.2375187555280434 0.4751248445498177 0.2000000000000028
+0.2389878453248855 0.6185612791050517 0.2000000000000028
+0.2393635325173662 0.7621563950706403 0.2000000000000028
+0.2393635325187518 0.9057785660209561 0.2000000000000028
+0.3817074418715833 0.0494535877773217 0.2000000000000028
+0.3816263401217626 0.1934073341095583 0.2000000000000028
+0.379589879504465 0.3349569358180773 0.2000000000000028
+0.3795898795091475 0.4732043722635595 0.2000000000000028
+0.3816263401210733 0.6167904345817519 0.2000000000000028
+0.3817074418769622 0.7608252826717887 0.2000000000000028
+0.3817062419475334 0.9051388352587111 0.2000000000000028
+0.5235863292039866 0.0488468018190886 0.2000000000000028
+0.5235687630881642 0.1948869332946614 0.2000000000000028
+0.523385266959707 0.3432828431628465 0.2000000000000028
+0.5233852669600552 0.6086738523710906 0.2000000000000028
+0.5235687630921575 0.7572532583666884 0.2000000000000028
+0.523586329205024 0.9033109559594834 0.2000000000000028
+0.6656057260651664 0.0470885773188314 0.2000000000000028
+0.6656558851184826 0.1916887504387859 0.2000000000000028
+0.6658582505015929 0.3362703673211129 0.2000000000000028
+0.6658582505066235 0.7581593117583623 0.2000000000000028
+0.6656558851181344 0.9025385632499336 0.2000000000000028
+0.8080904741221389 0.046491370915497 0.2000000000000028
+0.8080904741177974 0.1901705317761824 0.2000000000000028
+0.8085519182185337 0.3338612996617059 0.2000000000000028
+0.8102003416120596 0.4772035026430999 0.2000000000000028
+0.8123263288067193 0.6204488786906452 0.2000000000000028
+0.8102003416124077 0.7615682675458118 0.2000000000000028
+0.8085519182192229 0.9032620471317401 0.2000000000000028
+0.9510882677844634 0.0466522656881381 0.2000000000000028
+0.9506557322084888 0.1896135803897039 0.2000000000000028
+0.9510882677848116 0.3330074306695181 0.2000000000000028
+0.952598406597879 0.4764363212915086 0.2000000000000028
+0.9540814678383924 0.6197786607333313 0.2000000000000028
+0.9540814678430678 0.7628742356832774 0.2000000000000028
+0.9525984065938857 0.9047335138802524 0.2000000000000028
+0.6241788398966222 0.5263751342354297 0.2000000000000028
+0.4748706067650872 0.3938743579525195 0.2000000000000028
+0.4748706067640569 0.5095676773821083 0.2000000000000028
+0.6686107722044525 0.4806281251604076 0.2000000000000028
+0.6686107722001111 0.6165540756172305 0.2000000000000028
diff --git a/tests/pyposcar/results/error-h1 b/tests/pyposcar/results/error-h1
new file mode 100644
index 00000000..05cd2b9a
--- /dev/null
+++ b/tests/pyposcar/results/error-h1
@@ -0,0 +1,6 @@
+/research/svn/pyposcar/clusters.py:277: UserWarning: At least one atom was replaced twice (or more times) by an H. Check wether this makes sense
+  warnings.warn('At least one atom was replaced twice (or more times)'
+/research/svn/pyposcar/clusters.py:277: UserWarning: At least one atom was replaced twice (or more times) by an H. Check wether this makes sense
+  warnings.warn('At least one atom was replaced twice (or more times)'
+/research/svn/pyposcar/clusters.py:277: UserWarning: At least one atom was replaced twice (or more times) by an H. Check wether this makes sense
+  warnings.warn('At least one atom was replaced twice (or more times)'
diff --git a/tests/pyposcar/results/error-h2 b/tests/pyposcar/results/error-h2
new file mode 100644
index 00000000..5318202e
--- /dev/null
+++ b/tests/pyposcar/results/error-h2
@@ -0,0 +1,8 @@
+/research/svn/pyposcar/clusters.py:277: UserWarning: At least one atom was replaced twice (or more times) by an H. Check wether this makes sense
+  warnings.warn('At least one atom was replaced twice (or more times)'
+/research/svn/pyposcar/clusters.py:277: UserWarning: At least one atom was replaced twice (or more times) by an H. Check wether this makes sense
+  warnings.warn('At least one atom was replaced twice (or more times)'
+/research/svn/pyposcar/clusters.py:277: UserWarning: At least one atom was replaced twice (or more times) by an H. Check wether this makes sense
+  warnings.warn('At least one atom was replaced twice (or more times)'
+/research/svn/pyposcar/clusters.py:277: UserWarning: At least one atom was replaced twice (or more times) by an H. Check wether this makes sense
+  warnings.warn('At least one atom was replaced twice (or more times)'
diff --git a/tests/pyposcar/results/results b/tests/pyposcar/results/results
new file mode 100644
index 00000000..9d7a2960
--- /dev/null
+++ b/tests/pyposcar/results/results
@@ -0,0 +1,1 @@
+{'find_forgein_atoms': [], 'nearest_neighbors_environment': [0, 1, 2, 125, 412, 483]}
diff --git a/tests/pyposcar/results/results-n1 b/tests/pyposcar/results/results-n1
new file mode 100644
index 00000000..9d7a2960
--- /dev/null
+++ b/tests/pyposcar/results/results-n1
@@ -0,0 +1,1 @@
+{'find_forgein_atoms': [], 'nearest_neighbors_environment': [0, 1, 2, 125, 412, 483]}
diff --git a/tests/pyposcar/results/results-n2 b/tests/pyposcar/results/results-n2
new file mode 100644
index 00000000..9d7a2960
--- /dev/null
+++ b/tests/pyposcar/results/results-n2
@@ -0,0 +1,1 @@
+{'find_forgein_atoms': [], 'nearest_neighbors_environment': [0, 1, 2, 125, 412, 483]}
diff --git a/tests/pyposcar/run.py b/tests/pyposcar/run.py
new file mode 100755
index 00000000..d835c390
--- /dev/null
+++ b/tests/pyposcar/run.py
@@ -0,0 +1,123 @@
+#!/usr/bin/env python3
+import poscarUtils
+import poscar
+import os
+
+
+executable = '../analize.py'
+auxdir = 'aux/'
+resultsdir = 'results/'
+
+POSCAR = ["POSCAR-7-9-B.vasp",
+          "POSCAR-7-9.vasp" ,
+          "POSCAR-C3Si.vasp",
+          "POSCAR-C4.vasp" ,
+          "POSCAR-C6H.vasp",
+          "POSCAR-C6.vasp",
+          "POSCAR-nv.vasp" ,
+          "POSCAR-SiV.vasp",
+          "POSCAR-V2.vasp"]
+
+# identification of the defect
+identification = {'options': ' ',
+                  'suffix' : '_defect.vasp',
+                  'outfile' : '_defect.vasp',
+                  'print': '\nTesting the identification of defects (whole cell)'}
+# clusters with #N nearest neighbors 
+cluster_nn0 = {'options': ' -n 0 ',
+               'suffix' : '_cluster.vasp',
+               'outfile' : '_cluster.vasp',
+               'print' : '\nTesting the building of clusters (0 nearest neighbors)'}
+cluster_nn1 = {'options': ' -n 1 ',
+               'suffix' : '_cluster-n1.vasp',
+               'outfile' : '_cluster.vasp',
+               'print' : '\nTesting the building of clusters (1 nearest neighbors)'}
+cluster_nn2 = {'options': ' -n 2 ',
+               'suffix' : '_cluster-n2.vasp',
+               'outfile' : '_cluster.vasp',
+               'print' : '\nTesting the building of clusters (2 nearest neighbors)'}
+# smoothed clusters with #N nearest neighbors
+s_cluster_nn1 = {'options': ' -n 1 -s ',
+                 'suffix' : '_cluster-s1.vasp',
+                 'outfile' : '_cluster.vasp',
+                 'print' : '\nTesting smoothed  clusters (1 nearest neighbors)'}
+s_cluster_nn2 = {'options': ' -n 2 -s ',
+                 'suffix' : '_cluster-s2.vasp',
+                 'outfile' : '_cluster.vasp',
+                 'print' : '\nTesting smoothed  clusters (2 nearest neighbors)'}
+# hydrogenated smoothed clusters with #N nearest neighbors
+h_cluster_nn1 = {'options': ' -n 1 -s -y ',
+                 'suffix' : '_cluster-h1.vasp',
+                 'outfile' : '_cluster.vasp',
+                 'print' : '\nTesting hydrogenated clusters (1 nearest neighbors)'}
+h_cluster_nn2 = {'options': ' -n 2 -s -y ',
+                 'suffix' : '_cluster-h2.vasp',
+                 'outfile' : '_cluster.vasp',
+                 'print' : '\nTesting hydrogenated clusters (2 nearest neighbors)'}
+
+tasks = [identification,
+         cluster_nn0,
+         cluster_nn1,
+         cluster_nn2,
+         s_cluster_nn1,
+         s_cluster_nn2,
+         h_cluster_nn1,
+         h_cluster_nn2]
+
+
+
+for task in tasks:
+  print(task['print'])
+  for filename in POSCAR:
+    
+    # first running analize.py
+    print(filename + ' ... ', end='')
+    command = executable
+    outfile = ' >> ' + auxdir + 'temp'
+    cmdline = ' '.join([command, task['options'], filename, outfile])
+    # print(cmd_1)
+    os.system(cmdline)
+
+    # second, moving the useful output to aux and removing the other file
+    useful_str = filename + task['outfile']
+    new_str = auxdir + filename + task['suffix']
+    cmdline = 'mv ' + useful_str + ' ' + new_str
+    os.system(cmdline)
+
+    defect_str = filename  + '_defect.vasp' 
+    cluster_str = filename + '_cluster.vasp'
+    cmdline = " rm -f "+ defect_str + " " + cluster_str
+    os.system(cmdline)
+    
+
+    # third, comparing the output with curated results
+    path_p1 = auxdir + filename + task['suffix']
+    path_p2 = resultsdir + filename + task['suffix']
+    p1 = poscar.Poscar(path_p1)
+    p1.parse()
+    p2 = poscar.Poscar(path_p2)
+    p2.parse()
+    comparison = poscarUtils.poscarDiff(p1, p2)
+
+    if not comparison:
+      print('ok')
+    else:
+      print('Results differs.')
+      print(path_p1)
+      print(path_p2)
+      print(comparison)
+      
+    
+#     print(poscarUtils.poscarDiff(poscar_defect_1,poscar_defect_2))
+#   else:
+#     continue
+#   if(poscarUtils.poscarDiff(poscar_cluster_1,poscar_cluster_2)):
+#     print(poscarUtils.poscarDiff(poscar_cluster_1,poscar_cluster_2))
+#   else:
+#     continue 
+    
+
+
+
+
+