Ejemplo n.º 1
0
 def fn(x):
     if unit == None:
         r = x
     elif x == None:
         r = unit
     else:
         r = x * unit
     return remove_unit(r, new_unit)
Ejemplo n.º 2
0
 def fn(x):
     if unit == None:
         r = x
     elif x == None:
         r = unit
     else:
         r = x*unit
     return remove_unit(r, new_unit)
Ejemplo n.º 3
0
    def advance_time(self, target_time, max_it=-1, exact_tstop=False):
        target_time = remove_unit(target_time, self.time_unit)

        if self.need_reinitialise:
            self.initialise()

        final_t_su = \
          ocaml.lam_ts_advance(self.get_lam(), self.get_full_name(),
                               exact_tstop, target_time, max_it)

        return self._ret_time(final_t_su)
Ejemplo n.º 4
0
def _remove_unit_rec(data, unit, new_unit):
    if isinstance(data, (types.FunctionType, numpy.ndarray)):
        u = unit if unit != None else 1.0
        scale_factor = remove_unit(u, new_unit)
        return (data, scale_factor)

    else:
        def fn(x):
            if unit == None:
                r = x
            elif x == None:
                r = unit
            else:
                r = x*unit
            return remove_unit(r, new_unit)

        new_data = rec_apply(fn, data)
        return (new_data, 1.0)
Ejemplo n.º 5
0
def _remove_unit_rec(data, unit, new_unit):
    if isinstance(data, (types.FunctionType, numpy.ndarray)):
        u = unit if unit != None else 1.0
        scale_factor = remove_unit(u, new_unit)
        return (data, scale_factor)

    else:

        def fn(x):
            if unit == None:
                r = x
            elif x == None:
                r = unit
            else:
                r = x * unit
            return remove_unit(r, new_unit)

        new_data = rec_apply(fn, data)
        return (new_data, 1.0)
Ejemplo n.º 6
0
    def initialise(self, initial_time=None,
                   rtol=None, atol=None,
                   pc_rtol=None, pc_atol=None):
        self.rtol = self.rtol if rtol == None else rtol
        self.atol = self.atol if atol == None else atol
        self.pc_rtol = self.pc_rtol if pc_rtol == None else pc_rtol
        self.pc_atol = self.pc_atol if pc_atol == None else pc_atol

        if initial_time == None:
            if self.initialised:
                initial_time = self.get_time()
            else:
                initial_time = self.initial_time

        if self._is_vivified():
            initial_time = remove_unit(initial_time, self.time_unit)
            ocaml.lam_ts_init(self.get_lam(), self.get_full_name(),
                              initial_time, self.rtol, self.atol)
            nlam.lam_ts_set_tols(self.get_lam(), self.get_full_name(),
                                 self.rtol, self.atol,
                                 pc_rtol=self.pc_rtol, pc_atol=self.pc_atol,
                                 pc_dtol=self.pc_dtol, pc_maxits=self.pc_maxits)
            self.initialised = True
            self.need_reinitialise = False