Beispiel #1
0
def test_events_code_generating(tmpfile):
    dsargs, _ = vanDerPol()
    dsargs['nobuild'] = True
    ev_args = {
        'name': 'monitor',
        'eventtol': 1e-4,
        'eventdelay': 1e-5,
        'starttime': 0,
        'active': True,
        'term': False,
        'precise': True
    }
    ev = Events.makeZeroCrossEvent('y', 0, ev_args, ['y'], targetlang='c')
    dsargs['events'] = [ev]

    ode = Radau_ODEsystem(dsargs)
    ode.makeLibSource(fname=tmpfile)

    with open(tmpfile) as g:
        code = g.read()
        assert 'double monitor(unsigned n_, double t, double *Y_, double *p_, unsigned wkn_, double *wk_, unsigned xvn_, double *xv_);' in code
        assert 'int N_EVENTS = 1;' in code
        assert 'void assignEvents(EvFunType *events){\n events[0] = &monitor;\n\n}' in code
        assert '\n'.join([
            'double monitor(unsigned n_, double t, double *Y_, double *p_, unsigned wkn_, double *wk_, unsigned xvn_, double *xv_) {',
            'return  y; ', '}'
        ]) in code
Beispiel #2
0
def test_events_code_generating(tmpfile):
    dsargs, _ = vanDerPol()
    dsargs['nobuild'] = True
    ev_args = {
        'name': 'monitor',
        'eventtol': 1e-4,
        'eventdelay': 1e-5,
        'starttime': 0,
        'active': True,
        'term': False,
        'precise': True
    }
    ev = Events.makeZeroCrossEvent('y', 0, ev_args, ['y'], targetlang='c')
    dsargs['events'] = [ev]

    ode = Radau_ODEsystem(dsargs)
    ode.makeLibSource(fname=tmpfile)

    with open(tmpfile) as g:
        code = g.read()
        assert 'double monitor(unsigned n_, double t, double *Y_, double *p_, unsigned wkn_, double *wk_, unsigned xvn_, double *xv_);' in code
        assert 'int N_EVENTS = 1;' in code
        assert 'void assignEvents(EvFunType *events){\n events[0] = &monitor;\n\n}' in code
        assert '\n'.join([
        'double monitor(unsigned n_, double t, double *Y_, double *p_, unsigned wkn_, double *wk_, unsigned xvn_, double *xv_) {',
        'return  y; ',
        '}']) in code
Beispiel #3
0
def test_radau_support_mass_matrix(tmpfile):
    dsargs = dae()
    dsargs['nobuild'] = True
    ode = Radau_ODEsystem(dsargs)
    ode.makeLibSource(fname=tmpfile)
    mm_src = '\n'.join(
        ['f_[0][0] = 0;', 'f_[0][1] = 0;', 'f_[1][0] = 0;', 'f_[1][1] = 1;'])

    with open(tmpfile) as g:
        assert mm_src in g.read()
Beispiel #4
0
def test_radau_support_mass_matrix(tmpfile):
    dsargs = dae()
    dsargs['nobuild'] = True
    ode = Radau_ODEsystem(dsargs)
    ode.makeLibSource(fname=tmpfile)
    mm_src = '\n'.join([
        'f_[0][0] = 0;',
        'f_[0][1] = 0;',
        'f_[1][0] = 0;',
        'f_[1][1] = 1;'
    ])

    with open(tmpfile) as g:
        assert mm_src in g.read()