Beispiel #1
0
    def make_unitless(settings):
        sb = settings.simulation_box

        from units import get_unit
        defined = set()

        for s in settings.get_numeric(tuple(getattr(sb,'s'+c) for c in coords)):
            unit = get_unit(s,cache = settings.get_cache())

            if unit is None or unit in defined:
                continue

            value = (unit/s).evaluate(cache=settings.get_cache())

            if unit.function == pc.fraction:
                unit = unit.args[0]
                value = 1/value

            if  unit.is_function:
                continue

            if unit is None or unit in defined or unit.is_function:
                continue

            defined.add(unit)
            unit_name = str(unit)
            if not settings.unitless.has_name(unit_name):
                settings.unitless.create_key(unit_name,unit)

            setattr(settings.unitless,unit_name,value)
Beispiel #2
0
 def __init__(self, C=None, **kwd):
     if C is not None:
         expr = '''
         dvm/dt=__membrane_Im/C : volt
         __membrane_Im=0*unit : unit
         '''
         Equations.__init__(self, expr, C=C, unit=get_unit(C * volt / second), **kwd)
     else:
         Equations.__init__(self)
Beispiel #3
0
 def __init__(self, C=None, **kwd):
     if C is not None:
         expr = '''
         dvm/dt=__membrane_Im/C : volt
         __membrane_Im=0*unit : unit
         '''
         Equations.__init__(self,
                            expr,
                            C=C,
                            unit=get_unit(C * volt / second),
                            **kwd)
     else:
         Equations.__init__(self)