Analysis of Strange Side Effects

The effects include isolated cells and lack of grid convergence in the final position of the interface when the system shuts down.

  • To deal with the isolated cells, cells that are surrounded by an electrode will be switched to electrode when the level set update is called.

  • To check the interface drifting we need to check if the velocity has shut down if the interface is still moving due to level set updates.

  • Need to run simulations with changing values for the level set update frequency


In [1]:
%load_ext autoreload
%autoreload 2
from tools import getSMTRecords, smt_ipy_table
records = getSMTRecords()
annular10Records = getSMTRecords(records=records, tags=['annular10'])


Created Django record store using PostgreSQL
/users/wd15/hg/sumatra/sumatra/programs.py:57: Warning: Python could not be found. Please supply the path to the /users/wd15/.virtualenvs/fipy/bin/python executable.
  warnings.warn(errmsg)

In [2]:
from tools import getSMTRecords
import numpy as np
from multiViewer import MultiViewer
import pandas as pd

def plotSandNx(rboundary, titlesub=400, Nxs=(100, 200, 400, 800), spacing_ratios=(1.2,)):

    def getrecord(s, n):
        rs = getSMTRecords(records=annular10Records, parameters={'Nx' : n, 'rboundary' : rboundary, 'spacing_ratio' : s})
        if len(rs) > 0:
            return rs[0]
        else:
            return None
    tmp = [[getrecord(s, n) for n in Nxs] for s in spacing_ratios]
    def columntitle(r):
        if r:
            return r'$N$={0}'.format(r.parameters['Nx'])
        else:
            return r'$N$={0}'.format(titlesub)
    viewer = MultiViewer(tmp,
                         columntitle=columntitle,
                         rowtitle=lambda r: r'$s$={0}'.format(r.parameters['spacing_ratio']),
                         figsize=(1.5, 6))
    viewer.plot(times=np.arange(10) * 4000. / 9.)
    return smt_ipy_table([j for i in tmp for j in i if j], fields=['label', 'timestamp', 'parameters', 'duration', 'version', 'tags'], parameters=['spacing_ratio', 'rboundary', 'Nx', 'kPlus', 'kMinus'])

In [3]:
plotSandNx(20e-6, Nxs=(400, 800), spacing_ratios=(1.2,), titlesub=800)


Out[3]:
LabelTimestampParametersDurationVersionTags
98668e1a93552013-08-09 13:12spacing_ratio: 1.2, rboundary: 2e-05, Nx: 400, kPlus: 400.0, kMinus: 24500000.017h 51m 42.78sf6403f5bae47annular10
fc22a715eb752013-08-09 13:12spacing_ratio: 1.2, rboundary: 2e-05, Nx: 800, kPlus: 400.0, kMinus: 24500000.08d 8h 13m 5.08sf6403f5bae47annular10

In [4]:
plotSandNx(320e-6, Nxs=(100, 200, 400), spacing_ratios=(1.8,))


Out[4]:
LabelTimestampParametersDurationVersionTags
82f194131ae12013-08-09 13:12spacing_ratio: 1.8, rboundary: 0.00032, Nx: 100, kPlus: 400.0, kMinus: 24500000.01h 27m 3.15sf6403f5bae47annular10
262b89f689452013-08-09 13:12spacing_ratio: 1.8, rboundary: 0.00032, Nx: 200, kPlus: 400.0, kMinus: 24500000.03h 9m 52.39sf6403f5bae47annular10
70ed66df5afa2013-08-09 13:12spacing_ratio: 1.8, rboundary: 0.00032, Nx: 400, kPlus: 400.0, kMinus: 24500000.08h 19m 44.50sf6403f5bae47annular10

In [29]:
testRecord = getSMTRecords(records=annular10Records, parameters={'Nx' : 800, 'rboundary' : 2e-5, 'spacing_ratio' : 1.2})[0]
smt_ipy_table([testRecord], fields=['label', 'timestamp', 'parameters', 'duration', 'version', 'tags'], parameters=['spacing_ratio', 'rboundary', 'Nx', 'kPlus', 'kMinus'])


Out[29]:
LabelTimestampParametersDurationVersionTags
fc22a715eb752013-08-09 13:12spacing_ratio: 1.2, rboundary: 2e-05, Nx: 800, kPlus: 400.0, kMinus: 24500000.08d 8h 13m 5.08sf6403f5bae47annular10

In [17]:
testRecord = getSMTRecords(records=annular10Records, parameters={'Nx' : 400, 'rboundary' : 2e-5, 'spacing_ratio' : 1.2})[0]
smt_ipy_table([testRecord], fields=['label', 'timestamp', 'parameters', 'duration', 'version', 'tags'], parameters=['spacing_ratio', 'rboundary', 'Nx', 'kPlus', 'kMinus'])


Out[17]:
LabelTimestampParametersDurationVersionTags
98668e1a93552013-08-09 13:12spacing_ratio: 1.2, rboundary: 2e-05, Nx: 400, kPlus: 400.0, kMinus: 24500000.017h 51m 42.78sf6403f5bae47annular10

In [35]:
from contourViewer import ContourViewer
cv = ContourViewer(testRecord)
cv.plot((4000,))
print cv.phi.shape
print np.amax(cv.phi[:,:200], axis=0)


(102, 842)
[ -3.98999000e+00  -3.91999000e+00  -3.84999000e+00  -3.77999000e+00
  -3.70999000e+00  -3.63999000e+00  -3.56999000e+00  -3.49999000e+00
  -3.42999000e+00  -3.35999000e+00  -3.28999000e+00  -3.21999000e+00
  -3.14999000e+00  -3.07999000e+00  -3.00999000e+00  -2.93999000e+00
  -2.86999000e+00  -2.79999000e+00  -2.72999000e+00  -2.65999000e+00
  -2.58999000e+00  -2.51999000e+00  -2.44999000e+00  -2.37999000e+00
  -2.30999000e+00  -2.23999000e+00  -2.16999000e+00  -2.09999000e+00
  -2.02999000e+00  -1.95999000e+00  -1.88999000e+00  -1.81999000e+00
  -1.74999000e+00  -1.67999000e+00  -1.60999000e+00  -1.53999000e+00
  -1.46999000e+00  -1.39999000e+00  -1.32999000e+00  -1.25999000e+00
  -1.18999000e+00  -1.11999000e+00  -1.04999000e+00  -9.79990000e-01
  -9.09990000e-01  -8.39990000e-01  -7.69990000e-01  -6.99990000e-01
  -6.29990000e-01  -5.59990000e-01  -4.89990000e-01  -4.19990000e-01
  -3.49990000e-01  -2.79990000e-01  -2.09990000e-01  -1.39990000e-01
  -6.99900000e-02   1.00000000e-05   7.07106780e-06  -6.99900000e-02
  -1.39989024e-01  -2.09988698e-01  -2.09971049e-01  -1.39971883e-01
  -6.99743837e-02   1.81134824e-05  -6.99743837e-02   7.07078349e-06
  -6.99900004e-02  -6.99929287e-02   1.00000000e-05  -6.99929287e-02
  -6.99900000e-02   1.00000000e-05  -6.99900000e-02  -6.99867286e-02
   9.38430435e-06   8.50148802e-06  -6.99652716e-02   2.45567201e-05
  -6.99652716e-02  -1.39961881e-01  -2.09960751e-01  -2.79960374e-01
  -3.49960248e-01  -2.79993881e-01  -2.09993784e-01  -1.39993493e-01
  -6.99926195e-02   1.00000000e-05   2.43874702e-04   1.08788135e-05
  -6.99722738e-02   1.96053795e-05   9.87134593e-06  -6.99860398e-02
  -6.99211094e-02   5.57840982e-05  -6.99211094e-02  -1.39913407e-01
  -2.09910840e-01  -2.79909984e-01  -3.49909699e-01  -4.19880819e-01
  -3.49880945e-01  -2.79881321e-01  -2.09882449e-01  -1.39885834e-01
  -6.98959888e-02   7.35470515e-05  -6.98959888e-02   6.23387260e-05
   7.23589330e-06  -6.99389580e-02   4.31631864e-05  -6.99389580e-02
  -6.99286480e-02   5.04534546e-05  -6.99286480e-02  -6.99896139e-02
   7.34409239e-06  -6.99896139e-02  -1.39988600e-01  -2.09950174e-01
  -1.39951609e-01  -6.99559132e-02   3.11740964e-05  -6.99559132e-02
  -1.39951609e-01  -2.09883111e-01  -1.39886477e-01  -6.98965747e-02
   7.31327400e-05  -6.98965747e-02  -6.99708531e-02   2.06099606e-05
  -6.99708531e-02  -6.98866377e-02   8.01592220e-05   3.03688278e-04
  -6.95705199e-02   1.48402712e-04   7.07094641e-06  -6.99404531e-02
   4.21059871e-05   6.73154596e-05  -6.99048016e-02  -6.97767812e-02
   1.57839535e-04   5.98429811e-04  -6.91536924e-02  -6.94958583e-02
   3.56482024e-04   2.23242962e-04  -6.96842868e-02  -6.91509815e-02
   6.00346744e-04  -6.91509815e-02  -1.39068091e-01  -2.09040461e-01
  -2.79031251e-01  -3.49028181e-01  -4.19027157e-01  -4.89026816e-01
  -5.59026702e-01  -6.29026665e-01  -5.59935474e-01  -4.89935482e-01
  -4.19935504e-01  -3.49935572e-01  -2.79935776e-01  -2.09936386e-01
  -1.39938218e-01  -6.99437135e-02   3.98005985e-05  -6.99437135e-02
  -1.36478958e-01  -6.67921458e-02   2.26829147e-03   4.17629748e-05
  -6.98929169e-02   7.57191838e-05   3.35044275e-03  -6.52617325e-02
   2.55297295e-04  -6.77706135e-02   1.57641421e-03   1.26406389e-03
  -6.82123437e-02  -6.99480317e-02   3.67471227e-05   1.54106100e-03
  -6.78206105e-02   1.85749448e-04   8.25006135e-04  -6.88332651e-02
   5.66271019e-04   2.59296640e-04   3.24520120e-03   6.93436810e-03]

Method to delete islands, just deletes the anomolous islands that form.

class DistanceVariableNonUniform(fp.DistanceVariable):
    def deleteIslands(self):
        from fipy.tools import numerix
        from fipy.tools.numerix import MA

        cellToCellIDs = self.mesh._getCellToCellIDs()
        adjVals = numerix.take(self.value, cellToCellIDs)
        adjInterfaceValues = MA.masked_array(adjVals, mask = (adjVals * self.value) > 0)
        masksum = numerix.sum(numerix.logical_not(MA.getmask(adjInterfaceValues)), 0)
        tmp = MA.logical_and(masksum == 4, self.value > 0)
        self.value = numerix.array(MA.where(tmp, -1, self.value))

In [ ]:
# Simulations launched on 08/27/2013

Varying `Nx`, `levelset_update_frequency` and `delete_islands`

In [28]:
from tools import batch_launch
    
reason = "Testing island deletion and levelset_update_frequency"
    
for Nx in (100, 200, 400, 800):
    for levelset_update_frequency in (25, 50, 100, 200, 400):
        for delete_islands in (0, 1):
            batch_launch(reason=reason,
                         tags=['annular13'],
                         kPlus=400.,
                         rboundary=2e-5,
                         Nx=Nx,
                         spacing_ratio=1.2,
                         levelset_update_frequency=levelset_update_frequency,
                         delete_islands=delete_islands)

In [34]:
!date
!qstat


Tue Aug 27 15:42:31 EDT 2013
job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID 
-----------------------------------------------------------------------------------------------------------------
1686003 0.06250 launcher   wd15         r     08/27/2013 15:26:37 ctcms@r017                         1        
1686004 0.06250 launcher   wd15         r     08/27/2013 15:26:37 ctcms@r019                         1        
1686005 0.06250 launcher   wd15         r     08/27/2013 15:26:37 ctcms@r018                         1        
1686006 0.06250 launcher   wd15         r     08/27/2013 15:26:37 ctcms@r015                         1        
1686007 0.06250 launcher   wd15         r     08/27/2013 15:26:37 ctcms@r018                         1        
1686008 0.06250 launcher   wd15         r     08/27/2013 15:26:37 ctcms@r019                         1        
1686009 0.06250 launcher   wd15         r     08/27/2013 15:26:37 ctcms@r017                         1        
1686010 0.06250 launcher   wd15         r     08/27/2013 15:26:37 ctcms@r015                         1        
1686011 0.06250 launcher   wd15         r     08/27/2013 15:26:37 wide64@r033                        1        
1686012 0.06250 launcher   wd15         r     08/27/2013 15:26:37 ctcms@r017                         1        
1686013 0.06250 launcher   wd15         r     08/27/2013 15:26:37 ctcms@r019                         1        
1686014 0.06250 launcher   wd15         r     08/27/2013 15:26:52 ctcms@r018                         1        
1686015 0.06250 launcher   wd15         r     08/27/2013 15:26:52 ctcms@r015                         1        
1686016 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686017 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686018 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686019 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686020 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686021 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686022 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686023 0.06250 launcher   wd15         r     08/27/2013 15:26:52 ctcms@r019                         1        
1686024 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686025 0.06250 launcher   wd15         r     08/27/2013 15:26:52 ctcms@r018                         1        
1686026 0.06250 launcher   wd15         r     08/27/2013 15:26:52 ctcms@r017                         1        
1686027 0.06250 launcher   wd15         r     08/27/2013 15:26:52 ctcms@r015                         1        
1686028 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686029 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686030 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686031 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r037                        1        
1686032 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686033 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r037                        1        
1686034 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686035 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r037                        1        
1686036 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686037 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r037                        1        
1686038 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        
1686039 0.06250 launcher   wd15         r     08/27/2013 15:26:52 ctcms@r016                         1        
1686040 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r037                        1        
1686041 0.06250 launcher   wd15         r     08/27/2013 15:26:52 ctcms@r019                         1        
1686042 0.06250 launcher   wd15         r     08/27/2013 15:26:52 wide64@r033                        1        

In [1]:
%load_ext autoreload
%autoreload 2
from tools import getSMTRecords, smt_ipy_table
records = getSMTRecords()
annular13Records = getSMTRecords(records=records, tags=['annular13'])


Created Django record store using PostgreSQL
/users/wd15/hg/sumatra/sumatra/programs.py:57: Warning: Python could not be found. Please supply the path to the /users/wd15/.virtualenvs/fipy/bin/python executable.
  warnings.warn(errmsg)

In [2]:
smt_ipy_table(annular13Records, fields=['label', 'timestamp', 'parameters', 'duration', 'version', 'tags'], parameters=['Nx', 'delete_islands', 'levelset_update_frequency'])


Out[2]:
LabelTimestampParametersDurationVersionTags
de2d48a71a5b2013-08-27 15:26Nx: 400, delete_islands: 0, levelset_update_frequency: 40019h 11m 34.29s4de8691f0452annular13
4028da198cfc2013-08-27 15:26Nx: 400, delete_islands: 1, levelset_update_frequency: 509h 41m 26.88s4de8691f0452annular13
cc3c483e73222013-08-27 15:26Nx: 200, delete_islands: 0, levelset_update_frequency: 503h 9m 32.04s4de8691f0452annular13
b5959bc6b2b22013-08-27 15:26Nx: 400, delete_islands: 0, levelset_update_frequency: 1009h 31m 55.01s4de8691f0452annular13
1f89a1a0cbc12013-08-27 15:26Nx: 400, delete_islands: 0, levelset_update_frequency: 2510h 24m 49.02s4de8691f0452annular13
11d5eb15ad682013-08-27 15:26Nx: 400, delete_islands: 0, levelset_update_frequency: 509h 41m 29.18s4de8691f0452annular13
a96ed3a4cf362013-08-27 15:26Nx: 200, delete_islands: 1, levelset_update_frequency: 252h 11m 10.68s4de8691f0452annular13
652035f92d422013-08-27 15:26Nx: 100, delete_islands: 1, levelset_update_frequency: 4001h 19m 0.41s4de8691f0452annular13
02e27371c7a42013-08-27 15:26Nx: 100, delete_islands: 0, levelset_update_frequency: 251h 17m 24.58s4de8691f0452annular13
69b2ee901f0e2013-08-27 15:26Nx: 100, delete_islands: 0, levelset_update_frequency: 2001h 2m 24.24s4de8691f0452annular13
6564deefd63c2013-08-27 15:26Nx: 100, delete_islands: 0, levelset_update_frequency: 501h 18m 11.70s4de8691f0452annular13
f2f1d5d824ff2013-08-27 15:26Nx: 100, delete_islands: 0, levelset_update_frequency: 1001h 14m 48.47s4de8691f0452annular13
3011233581a72013-08-27 15:26Nx: 100, delete_islands: 1, levelset_update_frequency: 251h 11m 13.25s4de8691f0452annular13
8faf44fe4c362013-08-27 15:26Nx: 100, delete_islands: 1, levelset_update_frequency: 1001h 15m 46.53s4de8691f0452annular13
b5e759b78c0c2013-08-27 15:26Nx: 200, delete_islands: 0, levelset_update_frequency: 253h 22m 25.08s4de8691f0452annular13
b0f55ea3928d2013-08-27 15:26Nx: 100, delete_islands: 1, levelset_update_frequency: 20045m 49.65s4de8691f0452annular13
aa763be6f2f42013-08-27 15:26Nx: 100, delete_islands: 1, levelset_update_frequency: 501h 4m 43.02s4de8691f0452annular13

In [3]:
from tools import getSMTRecords
import numpy as np
from multiViewer import MultiViewer
import pandas as pd

def plotFandNx(Nxs=(100, 200, 400, 800), levelset_update_frequency=(25, 50, 100, 200, 400), delete_islands=0, times=np.arange(10) * 4000. / 9.):

    def getrecord(s, n):
        rs = getSMTRecords(records=annular13Records, parameters={'Nx' : n, 'levelset_update_frequency' : s, 'delete_islands' : delete_islands})
        if len(rs) > 0:
            return rs[0]
        else:
            return None
    tmp = [[getrecord(s, n) for n in Nxs] for s in levelset_update_frequency]
    def columntitle(r):
        if r:
            return r'$N$={0}'.format(r.parameters['Nx'])
        else:
            return r'$N$={0}'.format('?')
    def rowtitle(r):
        if r:
            return r'$f$={0}'.format(r.parameters['levelset_update_frequency'])
        else:
            return r'$f$={0}'.format('?')
    viewer = MultiViewer(tmp,
                         columntitle=columntitle,
                         rowtitle=rowtitle,
                         figsize=(1.5, 6))
    viewer.plot(times=times)
    return smt_ipy_table([j for i in tmp for j in i if j], fields=['label', 'timestamp', 'parameters', 'duration', 'version', 'tags'], parameters=['Nx', 'levelset_update_frequency', 'delete_islands'])

In [4]:
plotFandNx(delete_islands=0, times=np.arange(10) * 4000. / 9.)


Out[4]:
LabelTimestampParametersDurationVersionTags
02e27371c7a42013-08-27 15:26Nx: 100, levelset_update_frequency: 25, delete_islands: 01h 17m 24.58s4de8691f0452annular13
b5e759b78c0c2013-08-27 15:26Nx: 200, levelset_update_frequency: 25, delete_islands: 03h 22m 25.08s4de8691f0452annular13
1f89a1a0cbc12013-08-27 15:26Nx: 400, levelset_update_frequency: 25, delete_islands: 010h 24m 49.02s4de8691f0452annular13
6564deefd63c2013-08-27 15:26Nx: 100, levelset_update_frequency: 50, delete_islands: 01h 18m 11.70s4de8691f0452annular13
cc3c483e73222013-08-27 15:26Nx: 200, levelset_update_frequency: 50, delete_islands: 03h 9m 32.04s4de8691f0452annular13
11d5eb15ad682013-08-27 15:26Nx: 400, levelset_update_frequency: 50, delete_islands: 09h 41m 29.18s4de8691f0452annular13
f2f1d5d824ff2013-08-27 15:26Nx: 100, levelset_update_frequency: 100, delete_islands: 01h 14m 48.47s4de8691f0452annular13
b5959bc6b2b22013-08-27 15:26Nx: 400, levelset_update_frequency: 100, delete_islands: 09h 31m 55.01s4de8691f0452annular13
69b2ee901f0e2013-08-27 15:26Nx: 100, levelset_update_frequency: 200, delete_islands: 01h 2m 24.24s4de8691f0452annular13
de2d48a71a5b2013-08-27 15:26Nx: 400, levelset_update_frequency: 400, delete_islands: 019h 11m 34.29s4de8691f0452annular13

In [5]:
plotFandNx(delete_islands=1)


Out[5]:
LabelTimestampParametersDurationVersionTags
3011233581a72013-08-27 15:26Nx: 100, levelset_update_frequency: 25, delete_islands: 11h 11m 13.25s4de8691f0452annular13
a96ed3a4cf362013-08-27 15:26Nx: 200, levelset_update_frequency: 25, delete_islands: 12h 11m 10.68s4de8691f0452annular13
aa763be6f2f42013-08-27 15:26Nx: 100, levelset_update_frequency: 50, delete_islands: 11h 4m 43.02s4de8691f0452annular13
4028da198cfc2013-08-27 15:26Nx: 400, levelset_update_frequency: 50, delete_islands: 19h 41m 26.88s4de8691f0452annular13
8faf44fe4c362013-08-27 15:26Nx: 100, levelset_update_frequency: 100, delete_islands: 11h 15m 46.53s4de8691f0452annular13
b0f55ea3928d2013-08-27 15:26Nx: 100, levelset_update_frequency: 200, delete_islands: 145m 49.65s4de8691f0452annular13
652035f92d422013-08-27 15:26Nx: 100, levelset_update_frequency: 400, delete_islands: 11h 19m 0.41s4de8691f0452annular13

In [42]:
import os.path
from dicttable import DictTable

def getDepositionRates(record):
    datafile = os.path.join(record.datastore.root, record.output_data[0].path)
    data = DictTable(datafile, 'r')
    latestIndex = data.getLatestIndex()
    indexJump = 10
    index = 0
    elapsedTimes = []
    depositionRates = []
    while index <= latestIndex:
        d = data[index]
        elapsedTimes.append(d['elapsedTime'])
        depositionRates.append(d['extensionGlobalValue'])
        index += indexJump
    return elapsedTimes, depositionRates

In [43]:
record = getSMTRecords(records=annular13Records, parameters={'Nx' : 100, 'levelset_update_frequency' : 50, 'delete_islands' : 0})
print len(record)


1

In [45]:
t, d = getDepositionRates(record[0])
plt.semilogy(t, d)


Out[45]:
[<matplotlib.lines.Line2D at 0x21ff33090>]

In [47]:
for Nx in (100, 200, 400):
    record = getSMTRecords(records=annular13Records, parameters={'Nx' : Nx, 'levelset_update_frequency' : 25, 'delete_islands' : 0})[0]
    t, d = getDepositionRates(record)
    plt.semilogy(t, d)



In [48]:
for Nx in (100, 200, 400):
    record = getSMTRecords(records=annular13Records, parameters={'Nx' : Nx, 'levelset_update_frequency' : 50, 'delete_islands' : 0})[0]
    t, d = getDepositionRates(record)
    plt.semilogy(t, d)



In [59]:
for Nx in (100, 200, 400):
    record = getSMTRecords(records=annular13Records, parameters={'Nx' : Nx, 'levelset_update_frequency' : 50, 'delete_islands' : 0})[0]
    t, d = getDepositionRates(record)
    print np.array(t)[np.array(d) > 10**(-12)][-1]
    plt.semilogy(t, d)


1292.56189572
2188.73436045
2579.34329142

In [65]:
plotFandNx(delete_islands=0, times=np.arange(10) * 2400. / 9., levelset_update_frequency=(50,))


Out[65]:
LabelTimestampParametersDurationVersionTags
6564deefd63c2013-08-27 15:26Nx: 100, levelset_update_frequency: 50, delete_islands: 01h 18m 11.70s4de8691f0452annular13
cc3c483e73222013-08-27 15:26Nx: 200, levelset_update_frequency: 50, delete_islands: 03h 9m 32.04s4de8691f0452annular13
11d5eb15ad682013-08-27 15:26Nx: 400, levelset_update_frequency: 50, delete_islands: 09h 41m 29.18s4de8691f0452annular13

In [67]:
plotFandNx(delete_islands=0, times=np.arange(10) * 4000. / 9., levelset_update_frequency=(50,))


Out[67]:
LabelTimestampParametersDurationVersionTags
6564deefd63c2013-08-27 15:26Nx: 100, levelset_update_frequency: 50, delete_islands: 01h 18m 11.70s4de8691f0452annular13
cc3c483e73222013-08-27 15:26Nx: 200, levelset_update_frequency: 50, delete_islands: 03h 9m 32.04s4de8691f0452annular13
11d5eb15ad682013-08-27 15:26Nx: 400, levelset_update_frequency: 50, delete_islands: 09h 41m 29.18s4de8691f0452annular13

In [ ]:
rm