#!/usr/bin/env python




##################################################
## DEPENDENCIES
import sys
import os
import os.path
try:
    import builtins as builtin
except ImportError:
    import __builtin__ as builtin
from os.path import getmtime, exists
import time
import types
from Cheetah.Version import MinCompatibleVersion as RequiredCheetahVersion
from Cheetah.Version import MinCompatibleVersionTuple as RequiredCheetahVersionTuple
from Cheetah.Template import Template
from Cheetah.DummyTransaction import *
from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valueFromFrameOrSearchList
from Cheetah.CacheRegion import CacheRegion
import Cheetah.Filters as Filters
import Cheetah.ErrorCatchers as ErrorCatchers
from xpdeint.Segments.Integrators._Stepper import _Stepper

##################################################
## MODULE CONSTANTS
VFFSL=valueFromFrameOrSearchList
VFSL=valueFromSearchList
VFN=valueForName
currentTime=time.time
__CHEETAH_version__ = '2.4.4'
__CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
__CHEETAH_genTime__ = 1413234540.550486
__CHEETAH_genTimestamp__ = 'Tue Oct 14 08:09:00 2014'
__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.2.2/xpdeint/Segments/Integrators/RK9Stepper.tmpl'
__CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:21 2013'
__CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'

if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
    raise AssertionError(
      'This template was compiled with Cheetah version'
      ' %s. Templates compiled before version %s must be recompiled.'%(
         __CHEETAH_version__, RequiredCheetahVersion))

##################################################
## CLASSES

class RK9Stepper(_Stepper):

    ##################################################
    ## CHEETAH GENERATED METHODS


    def __init__(self, *args, **KWs):

        super(RK9Stepper, self).__init__(*args, **KWs)
        if not self._CHEETAH__instanceInitialized:
            cheetahKWArgs = {}
            allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
            for k,v in KWs.items():
                if k in allowedKWs: cheetahKWArgs[k] = v
            self._initCheetahInstance(**cheetahKWArgs)
        

    def name(self, **KWS):



        ## Generated from @def name: RK9 at line 24, col 1.
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        write(u'''RK9''')
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        

    def localInitialise(self, **KWS):



        ## CHEETAH: generated from @def localInitialise at line 37, col 1.
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        # 
        _v = super(RK9Stepper, self).localInitialise()
        if _v is not None: write(_filter(_v))
        # 
        write(u'''
// Runge Kutta method constants
real _a_raw[16];
real _a[16];
real _b[16][16];
real _c[16];
real _d[16];

for(unsigned long _i0=0; _i0 < 16; _i0++)
{
  _a_raw[_i0] = _c[_i0] = _d[_i0] = 0.0;
  for(unsigned long _i1=0; _i1 < 16; _i1++)
   _b[_i0][_i1] = 0.0;
}

_a_raw[1]  = 0.02173913043478260869565217391304347;
_a_raw[2]  = 0.09629581047800066670113001679819925;
_a_raw[3]  = 0.14444371571700100005169502519729888;
_a_raw[4]  = 0.52205882352941176470588235294117647;
_a_raw[5]  = 0.22842443612863469578031459099794265;
_a_raw[6]  = 0.54360353589933733219171338103002937;
_a_raw[7]  = 0.64335664335664335664335664335664335;
_a_raw[8]  = 0.48251748251748251748251748251748251;
_a_raw[9]  = 0.06818181818181818181818181818181818;
_a_raw[10] = 0.25060827250608272506082725060827250;
_a_raw[11] = 0.66736715965600568968278165443304378;
_a_raw[12] = 0.85507246376811594202898550724637681;
_a_raw[13] = 0.89795918367346938775510204081632653;
_a_raw[14] = 1.0;
_a_raw[15] = 1.0;

_a[0]=0.0;
for(unsigned long _i0=1; _i0 < 16; _i0++)
  _a[_i0] = _a_raw[_i0] - _a_raw[_i0-1];

_b[1][0]   = 1.0/46.0;
_b[2][0]   =-0.11698050118114486205818241524969622;
_b[2][1]   = 0.21327631165914552875931243204789548;
_b[3][0]   = 0.03611092892925025001292375629932472;
_b[3][2]   = 0.10833278678775075003877126889797416;
_b[4][0]   = 1.57329743908138605107331820072051125;
_b[4][2]   =-5.98400943754042002888532938159655553;
_b[4][3]   = 4.93277082198844574251789353381722074;
_b[5][0]   = 0.05052046351120380909008334360006234;
_b[5][3]   = 0.17686653884807108146683657390397612;
_b[5][4]   = 0.00103743376935980522339467349390418;
_b[6][0]   = 0.10543148021953768958529340893598138;
_b[6][3]   =-0.16042415162569842979496486916719383;
_b[6][4]   = 0.11643956912829316045688724281285250;
_b[6][5]   = 0.48215663817720491194449759844838932;
_b[7][0]   = 0.07148407148407148407148407148407148;
_b[7][5]   = 0.32971116090443908023196389566296464;
_b[7][6]   = 0.24216141096813279233990867620960722;
_b[8][0]   = 0.07162368881118881118881118881118881;
_b[8][5]   = 0.32859867301674234161492268975519694;
_b[8][6]   = 0.11622213117906185418927311444060725;
_b[8][7]   =-0.03392701048951048951048951048951048;
_b[9][0]   = 0.04861540768024729180628870095388582;
_b[9][5]   = 0.03998502200331629058445317782406268;
_b[9][6]   = 0.10715724786209388876739304914053506;
_b[9][7]   =-0.02177735985419485163815426357369818;
_b[9][8]   =-0.10579849950964443770179884616296721;
_b[10][0]  =-0.02540141041535143673515871979014924;
_b[10][5]  = 1.0/30.0;
_b[10][6]  =-0.16404854760069182073503553020238782;
_b[10][7]  = 0.03410548898794737788891414566528526;
_b[10][8]  = 0.15836825014108792658008718465091487;
_b[10][9]  = 0.21425115805975734472868683695127609;
_b[11][0]  = 0.00584833331460742801095934302256470;
_b[11][5]  =-0.53954170547283522916525526480339109;
_b[11][6]  = 0.20128430845560909506500331018201158;
_b[11][7]  = 0.04347222773254789483240207937678906;
_b[11][8]  =-0.00402998571475307250775349983910179;
_b[11][9]  = 0.16541535721570612771420482097898952;
_b[11][10] = 0.79491862412512344573322086551518180;
_b[12][0]  =-0.39964965968794892497157706711861448;
_b[12][5]  =-3.79096577568393158554742638116249372;
_b[12][6]  =-0.40349325653530103387515807815498044;
_b[12][7]  =-2.82463879530435263378049668286220715;
_b[12][8]  = 1.04226892772185985533374283289821416;
_b[12][9]  = 1.12510956420436603974237036536924078;
_b[12][10] = 3.32746188718986816186934832571938138;
_b[12][11] = 2.77897957186355606325818219255783627;
_b[13][0]  = 0.39545306350085237157098218205756922;
_b[13][5]  = 5.82534730759650564865380791881446903;
_b[13][6]  =-0.36527452339161313311889856846974452;
_b[13][7]  = 1.18860324058346533283780076203192232;
_b[13][8]  = 0.57970467638357921347110271762687972;
_b[13][9]  =-0.86824862589087693262676988867897834;
_b[13][10] =-5.20227677296454721392873650976792184;
_b[13][11] =-0.79895541420753382543211121058675915;
_b[13][12] = 0.14360623206363792632792463778889008;
_b[14][0]  = 8.49173149061346398013352206978380938;
_b[14][5]  = 86.32213734729036800877634194386790750;
_b[14][6]  = 1.02560575501091662034511526187393241;
_b[14][7]  = 85.77427969817339941806831550695235092;
_b[14][8]  =-13.98699305104110611795532466113248067;
_b[14][9]  =-20.71537405501426352265946477613161883;
_b[14][10] =-72.16597156619946800281180102605140463;
_b[14][11] =-76.71211139107806345587696023064419687;
_b[14][12] = 4.22319427707298828839851258893735507;
_b[14][13] =-1.25649850482823521641825667745565428;
_b[15][0]  =-0.42892119881959353241190195318730008;
_b[15][5]  =-9.16865700950084689999297912545025359;
_b[15][6]  = 1.08317616770620939241547721530003920;
_b[15][7]  =-1.23501525358323653198215832293981810;
_b[15][8]  =-1.21438272617593906232943856422371019;
_b[15][9]  = 1.37226168507232166621351243731869914;
_b[15][10] = 9.15723239697162418155377135344394113;
_b[15][11] = 1.30616301842220047563298585480401671;
_b[15][12] =-0.25285618808937955976690569433069974;
_b[15][13] = 0.38099910799663987066763679926508552;

_c[0]  = 0.01490902081978461022483617102382552;
_c[7]  =-0.20408044692054151258349120934134791;
_c[8]  = 0.22901438600570447264772469337066476;
_c[9]  = 0.12800558251147375669208211573729202;
_c[10] = 0.22380626846054143649770066956485937;
_c[11] = 0.39553165293700054420552389156421651;
_c[12] = 0.05416646758806981196568364538360743;
_c[13] = 0.12691439652445903685643385312168037;
_c[14] =-0.00052539244262118876455834655383035;
_c[15] = 1.0/31.0;

_d[0] = 1.0-_b[15][5]/_b[14][5];
_d[1] = _b[15][0]-_b[14][0]*_b[15][5]/_b[14][5];
_d[2] = _b[15][5]/_b[14][5];
_d[3] = _b[15][6]-_b[14][6]*_b[15][5]/_b[14][5];
_d[4] = _b[15][7]-_b[14][7]*_b[15][5]/_b[14][5];
_d[5] = _b[15][8]-_b[14][8]*_b[15][5]/_b[14][5];
_d[6] = _b[15][9]-_b[14][9]*_b[15][5]/_b[14][5];
_d[7] = _b[15][10]-_b[14][10]*_b[15][5]/_b[14][5];
_d[8] = _b[15][11]-_b[14][11]*_b[15][5]/_b[14][5];
_d[9] = _b[15][12]-_b[14][12]*_b[15][5]/_b[14][5];
_d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
''')
        # 
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        

    def singleIntegrationStep(self, function, **KWS):



        ## CHEETAH: generated from @def singleIntegrationStep($function) at line 182, col 1.
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        # 
        arguments = {'_step': '_step'}
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 185, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 185, col 1.
        write(u'''
// Step 1

''')
        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_akafield') # u"${copyVectors($integrationVectors, '_akafield')}" on line 189, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_akafield')}")) # from line 189, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 191, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 192, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 192, col 9.
            write(u''' = _''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 192, col 25
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 192, col 25.
            write(u''';
''')
        write(u'''
''')
        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}" on line 195, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}")) # from line 195, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 198, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 198, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 199, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 199, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 201, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 202, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 202, col 9.
            write(u''' = _akafield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 202, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 202, col 34.
            write(u''';
''')
        write(u'''
// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 206, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 206, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 209, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 209, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 210, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 210, col 1.
        write(u'''
// Step 2

''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 214, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 214, col 1.
        write(u''' += _a[1]*_step;

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[1][0]*_akafield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[1][0]*_akafield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 216, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 220, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 221, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 221, col 9.
            write(u''' = _akbfield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 221, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 221, col 34.
            write(u''';
''')
        write(u'''
''')
        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function)}" on line 224, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function)}")) # from line 224, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -2, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}" on line 227, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}")) # from line 227, col 1.
        write(u'''

// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 230, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 230, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +2, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +2, parentFunction=function)}" on line 233, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +2, parentFunction=function)}")) # from line 233, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 234, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 234, col 1.
        write(u'''
// Step 3

''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 238, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 238, col 1.
        write(u''' += _a[2]*_step;

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[2][0]*_akafield_${vector.id}[$index] + _b[2][1]*_akbfield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[2][0]*_akafield_${vector.id}[$index] + _b[2][1]*_akbfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 240, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 244, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 245, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 245, col 9.
            write(u''' = _akcfield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 245, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 245, col 34.
            write(u''';
''')
        write(u'''
''')
        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function)}" on line 248, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function)}")) # from line 248, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -3, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}" on line 251, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}")) # from line 251, col 1.
        write(u'''

// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 254, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 254, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +3, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +3, parentFunction=function)}" on line 257, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +3, parentFunction=function)}")) # from line 257, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 258, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 258, col 1.
        write(u'''
// Step 4

''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 262, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 262, col 1.
        write(u''' += _a[3]*_step;

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[3][0]*_akafield_${vector.id}[$index]
    + _b[3][1]*_akbfield_${vector.id}[$index] + _b[3][2]*_akcfield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[3][0]*_akafield_${vector.id}[$index]\n    + _b[3][1]*_akbfield_${vector.id}[$index] + _b[3][2]*_akcfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 264, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 269, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 270, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 270, col 9.
            write(u''' = _akdfield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 270, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 270, col 34.
            write(u''';
''')
        write(u'''
''')
        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function)}" on line 273, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function)}")) # from line 273, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -4, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}" on line 276, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}")) # from line 276, col 1.
        write(u'''

// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 279, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 279, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +4, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +4, parentFunction=function)}" on line 282, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +4, parentFunction=function)}")) # from line 282, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 283, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 283, col 1.
        write(u'''
// Step 5

''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 287, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 287, col 1.
        write(u''' += _a[4]*_step;

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""_akefield_${vector.id}[$index] = _${vector.id}[$index] + _b[4][0]*_akafield_${vector.id}[$index]
    + _b[4][1]*_akbfield_${vector.id}[$index] + _b[4][2]*_akcfield_${vector.id}[$index]
    + _b[4][3]*_akdfield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akefield_${vector.id}[$index] = _${vector.id}[$index] + _b[4][0]*_akafield_${vector.id}[$index]\n    + _b[4][1]*_akbfield_${vector.id}[$index] + _b[4][2]*_akcfield_${vector.id}[$index]\n    + _b[4][3]*_akdfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 289, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 295, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 296, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 296, col 9.
            write(u''' = _akefield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 296, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 296, col 34.
            write(u''';
''')
        write(u'''
''')
        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function)}" on line 299, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function)}")) # from line 299, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -5, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}" on line 302, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}")) # from line 302, col 1.
        write(u'''

// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 305, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 305, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +5, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +5, parentFunction=function)}" on line 308, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +5, parentFunction=function)}")) # from line 308, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 309, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 309, col 1.
        write(u'''
// Step 6

''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 313, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 313, col 1.
        write(u''' += _a[5]*_step;

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""_akifield_${vector.id}[$index] = _${vector.id}[$index] + _b[5][0]*_akafield_${vector.id}[$index]
    + _b[5][3]*_akdfield_${vector.id}[$index] + _b[5][4]*_akefield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akifield_${vector.id}[$index] = _${vector.id}[$index] + _b[5][0]*_akafield_${vector.id}[$index]\n    + _b[5][3]*_akdfield_${vector.id}[$index] + _b[5][4]*_akefield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 315, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 320, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 321, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 321, col 9.
            write(u''' = _akifield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 321, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 321, col 34.
            write(u''';
''')
        write(u'''
''')
        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 6, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 6, parentFunction=function)}" on line 324, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 6, parentFunction=function)}")) # from line 324, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -6, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -6, parentFunction=function)}" on line 327, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -6, parentFunction=function)}")) # from line 327, col 1.
        write(u'''

// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 330, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 330, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +6, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +6, parentFunction=function)}" on line 333, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +6, parentFunction=function)}")) # from line 333, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 334, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 334, col 1.
        write(u'''
// Step 7

''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 338, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 338, col 1.
        write(u''' += _a[6]*_step;

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""_akjfield_${vector.id}[$index] = _${vector.id}[$index] + _b[6][0]*_akafield_${vector.id}[$index]
    + _b[6][3]*_akdfield_${vector.id}[$index] + _b[6][4]*_akefield_${vector.id}[$index]
    + _b[6][5]*_akifield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akjfield_${vector.id}[$index] = _${vector.id}[$index] + _b[6][0]*_akafield_${vector.id}[$index]\n    + _b[6][3]*_akdfield_${vector.id}[$index] + _b[6][4]*_akefield_${vector.id}[$index]\n    + _b[6][5]*_akifield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 340, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 346, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 347, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 347, col 9.
            write(u''' = _akjfield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 347, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 347, col 34.
            write(u''';
''')
        write(u'''
''')
        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 7, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 7, parentFunction=function)}" on line 350, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 7, parentFunction=function)}")) # from line 350, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -7, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -7, parentFunction=function)}" on line 353, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -7, parentFunction=function)}")) # from line 353, col 1.
        write(u'''

// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 356, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 356, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +7, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +7, parentFunction=function)}" on line 359, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +7, parentFunction=function)}")) # from line 359, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 360, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 360, col 1.
        write(u'''
// Step 8

''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 364, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 364, col 1.
        write(u''' += _a[7]*_step;

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[7][0]*_akafield_${vector.id}[$index]
    + _b[7][5]*_akifield_${vector.id}[$index] + _b[7][6]*_akjfield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[7][0]*_akafield_${vector.id}[$index]\n    + _b[7][5]*_akifield_${vector.id}[$index] + _b[7][6]*_akjfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 366, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 371, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 372, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 372, col 9.
            write(u''' = _akbfield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 372, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 372, col 34.
            write(u''';
''')
        write(u'''
''')
        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 8, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 8, parentFunction=function)}" on line 375, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 8, parentFunction=function)}")) # from line 375, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -8, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -8, parentFunction=function)}" on line 378, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -8, parentFunction=function)}")) # from line 378, col 1.
        write(u'''

// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 381, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 381, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +8, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +8, parentFunction=function)}" on line 384, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +8, parentFunction=function)}")) # from line 384, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 385, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 385, col 1.
        write(u'''
// Step 9

''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 389, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 389, col 1.
        write(u''' += _a[8]*_step;

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[8][0]*_akafield_${vector.id}[$index]
    + _b[8][5]*_akifield_${vector.id}[$index] + _b[8][6]*_akjfield_${vector.id}[$index]
    + _b[8][7]*_akbfield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[8][0]*_akafield_${vector.id}[$index]\n    + _b[8][5]*_akifield_${vector.id}[$index] + _b[8][6]*_akjfield_${vector.id}[$index]\n    + _b[8][7]*_akbfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 391, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 397, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 398, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 398, col 9.
            write(u''' = _akcfield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 398, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 398, col 34.
            write(u''';
''')
        write(u'''
''')
        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 9, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 9, parentFunction=function)}" on line 401, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 9, parentFunction=function)}")) # from line 401, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -9, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -9, parentFunction=function)}" on line 404, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -9, parentFunction=function)}")) # from line 404, col 1.
        write(u'''

// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 407, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 407, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +9, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +9, parentFunction=function)}" on line 410, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +9, parentFunction=function)}")) # from line 410, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 411, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 411, col 1.
        write(u'''
// Step 10

''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 415, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 415, col 1.
        write(u''' += _a[9]*_step;

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[9][0]*_akafield_${vector.id}[$index]
    + _b[9][5]*_akifield_${vector.id}[$index] + _b[9][6]*_akjfield_${vector.id}[$index]
    + _b[9][7]*_akbfield_${vector.id}[$index] + _b[9][8]*_akcfield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[9][0]*_akafield_${vector.id}[$index]\n    + _b[9][5]*_akifield_${vector.id}[$index] + _b[9][6]*_akjfield_${vector.id}[$index]\n    + _b[9][7]*_akbfield_${vector.id}[$index] + _b[9][8]*_akcfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 417, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 423, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 424, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 424, col 9.
            write(u''' = _akdfield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 424, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 424, col 34.
            write(u''';
''')
        write(u'''
''')
        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 10, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 10, parentFunction=function)}" on line 427, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 10, parentFunction=function)}")) # from line 427, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -10, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -10, parentFunction=function)}" on line 430, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -10, parentFunction=function)}")) # from line 430, col 1.
        write(u'''

// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 433, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 433, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +10, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +10, parentFunction=function)}" on line 436, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +10, parentFunction=function)}")) # from line 436, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 437, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 437, col 1.
        write(u'''
// Step 11

''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 441, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 441, col 1.
        write(u''' += _a[10]*_step;

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""_akefield_${vector.id}[$index] = _${vector.id}[$index] + _b[10][0]*_akafield_${vector.id}[$index]
    + _b[10][5]*_akifield_${vector.id}[$index] + _b[10][6]*_akjfield_${vector.id}[$index]
    + _b[10][7]*_akbfield_${vector.id}[$index] + _b[10][8]*_akcfield_${vector.id}[$index]
    + _b[10][9]*_akdfield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akefield_${vector.id}[$index] = _${vector.id}[$index] + _b[10][0]*_akafield_${vector.id}[$index]\n    + _b[10][5]*_akifield_${vector.id}[$index] + _b[10][6]*_akjfield_${vector.id}[$index]\n    + _b[10][7]*_akbfield_${vector.id}[$index] + _b[10][8]*_akcfield_${vector.id}[$index]\n    + _b[10][9]*_akdfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 443, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 450, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 451, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 451, col 9.
            write(u''' = _akefield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 451, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 451, col 34.
            write(u''';
''')
        write(u'''
''')
        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 11, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 11, parentFunction=function)}" on line 454, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 11, parentFunction=function)}")) # from line 454, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -11, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -11, parentFunction=function)}" on line 457, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -11, parentFunction=function)}")) # from line 457, col 1.
        write(u'''

// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 460, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 460, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +11, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +11, parentFunction=function)}" on line 463, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +11, parentFunction=function)}")) # from line 463, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 464, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 464, col 1.
        write(u'''
// Step 12

''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 468, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 468, col 1.
        write(u''' += _a[11]*_step;

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""_akffield_${vector.id}[$index] = _${vector.id}[$index] + _b[11][0]*_akafield_${vector.id}[$index]
    + _b[11][5]*_akifield_${vector.id}[$index] + _b[11][6]*_akjfield_${vector.id}[$index]
    + _b[11][7]*_akbfield_${vector.id}[$index] + _b[11][8]*_akcfield_${vector.id}[$index]
    + _b[11][9]*_akdfield_${vector.id}[$index] + _b[11][10]*_akefield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akffield_${vector.id}[$index] = _${vector.id}[$index] + _b[11][0]*_akafield_${vector.id}[$index]\n    + _b[11][5]*_akifield_${vector.id}[$index] + _b[11][6]*_akjfield_${vector.id}[$index]\n    + _b[11][7]*_akbfield_${vector.id}[$index] + _b[11][8]*_akcfield_${vector.id}[$index]\n    + _b[11][9]*_akdfield_${vector.id}[$index] + _b[11][10]*_akefield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 470, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 477, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 478, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 478, col 9.
            write(u''' = _akffield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 478, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 478, col 34.
            write(u''';
''')
        write(u'''
''')
        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 12, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 12, parentFunction=function)}" on line 481, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 12, parentFunction=function)}")) # from line 481, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -12, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -12, parentFunction=function)}" on line 484, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -12, parentFunction=function)}")) # from line 484, col 1.
        write(u'''

// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 487, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 487, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +12, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +12, parentFunction=function)}" on line 490, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +12, parentFunction=function)}")) # from line 490, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 491, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 491, col 1.
        write(u'''
// Step 13

''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 495, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 495, col 1.
        write(u''' += _a[12]*_step;

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""_akgfield_${vector.id}[$index] = _${vector.id}[$index] + _b[12][0]*_akafield_${vector.id}[$index]
    + _b[12][5]*_akifield_${vector.id}[$index] + _b[12][6]*_akjfield_${vector.id}[$index]
    + _b[12][7]*_akbfield_${vector.id}[$index] + _b[12][8]*_akcfield_${vector.id}[$index]
    + _b[12][9]*_akdfield_${vector.id}[$index] + _b[12][10]*_akefield_${vector.id}[$index]
    + _b[12][11]*_akffield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akgfield_${vector.id}[$index] = _${vector.id}[$index] + _b[12][0]*_akafield_${vector.id}[$index]\n    + _b[12][5]*_akifield_${vector.id}[$index] + _b[12][6]*_akjfield_${vector.id}[$index]\n    + _b[12][7]*_akbfield_${vector.id}[$index] + _b[12][8]*_akcfield_${vector.id}[$index]\n    + _b[12][9]*_akdfield_${vector.id}[$index] + _b[12][10]*_akefield_${vector.id}[$index]\n    + _b[12][11]*_akffield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 497, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 505, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 506, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 506, col 9.
            write(u''' = _akgfield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 506, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 506, col 34.
            write(u''';
''')
        write(u'''
''')
        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 13, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 13, parentFunction=function)}" on line 509, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 13, parentFunction=function)}")) # from line 509, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -13, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -13, parentFunction=function)}" on line 512, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -13, parentFunction=function)}")) # from line 512, col 1.
        write(u'''

// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 515, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 515, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +13, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +13, parentFunction=function)}" on line 518, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +13, parentFunction=function)}")) # from line 518, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 519, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 519, col 1.
        write(u'''
// Step 14

''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 523, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 523, col 1.
        write(u''' += _a[13]*_step;

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""_akhfield_${vector.id}[$index] = _${vector.id}[$index] + _b[13][0]*_akafield_${vector.id}[$index]
    + _b[13][5]*_akifield_${vector.id}[$index] + _b[13][6]*_akjfield_${vector.id}[$index]
    + _b[13][7]*_akbfield_${vector.id}[$index] + _b[13][8]*_akcfield_${vector.id}[$index]
    + _b[13][9]*_akdfield_${vector.id}[$index] + _b[13][10]*_akefield_${vector.id}[$index]
    + _b[13][11]*_akffield_${vector.id}[$index] + _b[13][12]*_akgfield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akhfield_${vector.id}[$index] = _${vector.id}[$index] + _b[13][0]*_akafield_${vector.id}[$index]\n    + _b[13][5]*_akifield_${vector.id}[$index] + _b[13][6]*_akjfield_${vector.id}[$index]\n    + _b[13][7]*_akbfield_${vector.id}[$index] + _b[13][8]*_akcfield_${vector.id}[$index]\n    + _b[13][9]*_akdfield_${vector.id}[$index] + _b[13][10]*_akefield_${vector.id}[$index]\n    + _b[13][11]*_akffield_${vector.id}[$index] + _b[13][12]*_akgfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 525, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 533, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 534, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 534, col 9.
            write(u''' = _akhfield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 534, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 534, col 34.
            write(u''';
''')
        write(u'''
''')
        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 14, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 14, parentFunction=function)}" on line 537, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 14, parentFunction=function)}")) # from line 537, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -14, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -14, parentFunction=function)}" on line 540, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -14, parentFunction=function)}")) # from line 540, col 1.
        write(u'''

// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 543, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 543, col 1.
        write(u'''

// a_i = D(a_2*dt)[y1]
''')
        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +14, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +14, parentFunction=function)}" on line 546, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +14, parentFunction=function)}")) # from line 546, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 547, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 547, col 1.
        write(u'''
// Step 15 and 16 combined to reduce memory use

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""_akifield_${vector.id}[$index] = _${vector.id}[$index] + _b[14][0]*_akafield_${vector.id}[$index]
    + _b[14][5]*_akifield_${vector.id}[$index] + _b[14][6]*_akjfield_${vector.id}[$index]
    + _b[14][7]*_akbfield_${vector.id}[$index] + _b[14][8]*_akcfield_${vector.id}[$index]
    + _b[14][9]*_akdfield_${vector.id}[$index] + _b[14][10]*_akefield_${vector.id}[$index]
    + _b[14][11]*_akffield_${vector.id}[$index] + _b[14][12]*_akgfield_${vector.id}[$index]
    + _b[14][13]*_akhfield_${vector.id}[$index];
    
  _akjfield_${vector.id}[$index] = _d[0]*_${vector.id}[$index]
      + _d[1]*_akafield_${vector.id}[$index]
      + _d[2]*_akifield_${vector.id}[$index] 
      + _d[3]*_akjfield_${vector.id}[$index] 
      + _d[4]*_akbfield_${vector.id}[$index]
      + _d[5]*_akcfield_${vector.id}[$index]
      + _d[6]*_akdfield_${vector.id}[$index]
      + _d[7]*_akefield_${vector.id}[$index]
      + _d[8]*_akffield_${vector.id}[$index]
      + _d[9]*_akgfield_${vector.id}[$index]
      + _d[10]*_akhfield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akifield_${vector.id}[$index] = _${vector.id}[$index] + _b[14][0]*_akafield_${vector.id}[$index]\n    + _b[14][5]*_akifield_${vector.id}[$index] + _b[14][6]*_akjfield_${vector.id}[$index]\n    + _b[14][7]*_akbfield_${vector.id}[$index] + _b[14][8]*_akcfield_${vector.id}[$index]\n    + _b[14][9]*_akdfield_${vector.id}[$index] + _b[14][10]*_akefield_${vector.id}[$index]\n    + _b[14][11]*_akffield_${vector.id}[$index] + _b[14][12]*_akgfield_${vector.id}[$index]\n    + _b[14][13]*_akhfield_${vector.id}[$index];\n    \n  _akjfield_${vector.id}[$index] = _d[0]*_${vector.id}[$index]\n      + _d[1]*_akafield_${vector.id}[$index]\n      + _d[2]*_akifield_${vector.id}[$index] \n      + _d[3]*_akjfield_${vector.id}[$index] \n      + _d[4]*_akbfield_${vector.id}[$index]\n      + _d[5]*_akcfield_${vector.id}[$index]\n      + _d[6]*_akdfield_${vector.id}[$index]\n      + _d[7]*_akefield_${vector.id}[$index]\n      + _d[8]*_akffield_${vector.id}[$index]\n      + _d[9]*_akgfield_${vector.id}[$index]\n      + _d[10]*_akhfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 551, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 572, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 572, col 1.
        write(u''' += _a[14]*_step;

''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 574, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 575, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 575, col 9.
            write(u''' = _akifield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 575, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 575, col 34.
            write(u''';
''')
        write(u'''
// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 579, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 579, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 580, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 580, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 582, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 582, col 1.
        write(u''' += _a[15]*_step;

''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 584, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 585, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 585, col 9.
            write(u''' = _akjfield_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 585, col 34
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 585, col 34.
            write(u''';
''')
        write(u'''
// a_k = G[a_k, t]
''')
        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 589, col 1
        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 589, col 1.
        write(u'''
''')
        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 590, col 1
        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 590, col 1.
        write(u'''
// Take full step

''')
        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
"""
_${vector.id}[$index] += _c[0]*_akafield_${vector.id}[$index] + _c[7]*_akbfield_${vector.id}[$index] + _c[8]*_akcfield_${vector.id}[$index]
    + _c[9]*_akdfield_${vector.id}[$index] + _c[10]*_akefield_${vector.id}[$index] + _c[11]*_akffield_${vector.id}[$index]
    + _c[12]*_akgfield_${vector.id}[$index] + _c[13]*_akhfield_${vector.id}[$index] + _c[14]*_akifield_${vector.id}[$index]
    + _c[15]*_akjfield_${vector.id}[$index];
""", basis = VFFSL(SL,"homeBasis",True))
        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""\n_${vector.id}[$index] += _c[0]*_akafield_${vector.id}[$index] + _c[7]*_akbfield_${vector.id}[$index] + _c[8]*_akcfield_${vector.id}[$index]\n    + _c[9]*_akdfield_${vector.id}[$index] + _c[10]*_akefield_${vector.id}[$index] + _c[11]*_akffield_${vector.id}[$index]\n    + _c[12]*_akgfield_${vector.id}[$index] + _c[13]*_akhfield_${vector.id}[$index] + _c[14]*_akifield_${vector.id}[$index]\n    + _c[15]*_akjfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 594, col 1.
        write(u'''
''')
        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 602, col 3
            write(u'''_active_''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 603, col 9
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 603, col 9.
            write(u''' = _''')
            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 603, col 25
            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 603, col 25.
            write(u''';
''')
        # 
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        

    def writeBody(self, **KWS):



        ## CHEETAH: main method generated for this template
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        # 
        # RK9Stepper.tmpl
        # 
        # Created by Graham Dennis on 2007-10-20.
        # 
        # Copyright (c) 2008-2012, Graham Dennis
        # 
        # This program is free software: you can redistribute it and/or modify
        # it under the terms of the GNU General Public License as published by
        # the Free Software Foundation, either version 2 of the License, or
        # (at your option) any later version.
        # 
        # This program is distributed in the hope that it will be useful,
        # but WITHOUT ANY WARRANTY; without even the implied warranty of
        # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        # GNU General Public License for more details.
        # 
        # You should have received a copy of the GNU General Public License
        # along with this program.  If not, see <http://www.gnu.org/licenses/>.
        # 
        write(u'''



''')
        # 
        #   Single integration step (RK9)
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        
    ##################################################
    ## CHEETAH GENERATED ATTRIBUTES


    _CHEETAH__instanceInitialized = False

    _CHEETAH_version = __CHEETAH_version__

    _CHEETAH_versionTuple = __CHEETAH_versionTuple__

    _CHEETAH_genTime = __CHEETAH_genTime__

    _CHEETAH_genTimestamp = __CHEETAH_genTimestamp__

    _CHEETAH_src = __CHEETAH_src__

    _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__

    ipPropagationStepFractions =   [ '1.000000000000000', '0.978260869565217', '0.903704189521999', '0.855556284282999',    '0.477941176470588', '0.771575563871365', '0.456396464100663', '0.356643356643357',    '0.517482517482518', '0.931818181818182', '0.749391727493917', '0.332632840343994',    '0.144927536231884', '0.102040816326531' ]

    extraIntegrationArrayNames =   [ 'akafield', 'akbfield', 'akcfield', 'akdfield', 'akefield',    'akffield', 'akgfield', 'akhfield', 'akifield', 'akjfield' ]

    isCrossCapable = False

    integrationOrder = 9.0

    _mainCheetahMethod_for_RK9Stepper= 'writeBody'

## END CLASS DEFINITION

if not hasattr(RK9Stepper, '_initCheetahAttributes'):
    templateAPIClass = getattr(RK9Stepper, '_CHEETAH_templateClass', Template)
    templateAPIClass._addCheetahPlumbingCodeToClass(RK9Stepper)


# CHEETAH was developed by Tavis Rudd and Mike Orr
# with code, advice and input from many other volunteers.
# For more information visit http://www.CheetahTemplate.org/

##################################################
## if run from command line:
if __name__ == '__main__':
    from Cheetah.TemplateCmdLineIface import CmdLineIface
    CmdLineIface(templateObj=RK9Stepper()).run()


