def _valid_parameter_set_bounded(self, p_bounds, optimize=None, minimize=True):
     lower = VariablePool(names=self.independent_variables)
     upper = VariablePool(names=self.independent_variables)
     for i in lower:
         lower[i] = 1e-20
         upper[i] = 1e20
         if i not in p_bounds:
             continue
         k = p_bounds[i]
         try:
             lower[i] = min(k)
             upper[i] = max(k)
         except:
             lower[i] = k
             upper[i] = k
     if optimize is not None:
         variablepool = DSCaseValidParameterSetAtSliceByOptimizingFunction(self._swigwrapper, 
                                                                           lower._swigwrapper,
                                                                           upper._swigwrapper,
                                                                           optimize,
                                                                           minimize)
     else:
         variablepool = DSCaseValidParameterSetAtSlice(self._swigwrapper, 
                                                       lower._swigwrapper,
                                                       upper._swigwrapper)
     pvals = VariablePool()
     pvals.set_swigwrapper(variablepool)
     return pvals
 def _parse_equations(self, Xi=None, match_Xi=None, **kwargs):
     auxiliary_variables = self.auxiliary_variables
     if Xi is not None:
         Xi = [i for i in Xi]
     elif match_Xi is not None:
         Xi = match_Xi.independent_variables
     if Xi is None:
         swigwrapper = DSSWIGDesignSpaceParseWrapper(
             self.equations.system, len(self.equations), auxiliary_variables, len(auxiliary_variables)
         )
     else:
         swigwrapper = DSSWIGDesignSpaceParseWrapperWithXi(
             self.equations.system, len(self.equations), auxiliary_variables, len(auxiliary_variables), Xi, len(Xi)
         )
     self.set_swigwrapper(swigwrapper)
     gma = DSDesignSpaceGMASystem(self._swigwrapper)
     eqs = DSGMASystemEquations(gma)
     equation_list = list()
     for i in xrange(0, DSGMASystemNumberOfEquations(gma)):
         expr = DSExpressionAtIndexOfExpressionArray(eqs, i)
         equation_list.append(DSExpressionAsString(expr))
         DSExpressionFree(expr)
     DSSecureFree(eqs)
     Xda = VariablePool()
     Xda.set_swigwrapper(DSVariablePoolCopy(DSGMASystemXd_a(gma)))
     equations = Equations(equation_list, auxiliary_variables=Xda.keys(), latex_symbols=self._latex)
     self._equations = equations
 def set_swigwrapper(self, ssys_swigwrapper):
     self._swigwrapper = ssys_swigwrapper
     if self._swigwrapper is None:
         return
     Xd = VariablePool()
     Xd.set_swigwrapper(DSVariablePoolCopy(DSSSystemXd(ssys_swigwrapper)))
     Xi = VariablePool()
     Xi.set_swigwrapper(DSVariablePoolCopy(DSSSystemXi(ssys_swigwrapper)))
     self._independent_variables = Xi
     self._dependent_variables = Xd
 def set_swigwrapper(self, case_swigwrapper):
     self._swigwrapper = case_swigwrapper
     Xd = VariablePool()
     Xd.set_swigwrapper(DSVariablePoolCopy(DSCaseXd(case_swigwrapper)))
     for i in VariablePool():
         if i not in self.dependent_variables:
             raise NameError, 'Dependent Variables are inconsistent'
     Xi = VariablePool()
     Xi.set_swigwrapper(DSVariablePoolCopy(DSCaseXi(case_swigwrapper)))
     self._independent_variables = Xi
 def steady_state_flux(self, parameter_values, log_out=False):
     Xd = VariablePool()
     Xd.set_swigwrapper(DSSSystemXd(self._swigwrapper))
     flux = DSSSystemSteadyStateFlux(self._swigwrapper, parameter_values._swigwrapper)
     var_names = Xd.keys()
     if log_out is False:
         steady_states = {("V_" + var_names[i]): 10 ** flux[i][0] for i in xrange(len(var_names))}
     else:
         steady_states = {("V_" + var_names[i]): flux[i][0] for i in xrange(len(var_names))}
     Xd.set_swigwrapper(None)
     return steady_states
 def steady_state(self, parameter_values, log_out=False):
     if DSSSystemHasSolution(self._swigwrapper) is False:
         return None
     Xd = VariablePool()
     Xd.set_swigwrapper(DSSSystemXd(self._swigwrapper))
     steady_states = DSSSystemSteadyStateValues(self._swigwrapper, parameter_values._swigwrapper)
     var_names = Xd.keys()
     if log_out is False:
         steady_states = {var_names[i]: 10 ** steady_states[i][0] for i in xrange(len(var_names))}
     else:
         steady_states = {var_names[i]: steady_states[i][0] for i in xrange(len(var_names))}
     Xd.set_swigwrapper(None)
     return steady_states
Пример #7
0
 def update_latex_symbols(self, symbols):
     self._latex.update(symbols)
     equation_list = list()
     for i in xrange(0, DSGMASystemNumberOfEquations(self._swigwrapper)):
         expr = DSExpressionAtIndexOfExpressionArray(eqs, i)
         equation_list.append(DSExpressionAsString(expr))
         DSExpressionFree(expr)
     DSSecureFree(eqs)
     Xda = VariablePool()
     Xda.set_swigwrapper(DSVariablePoolCopy(DSGMASystemXd_a(gma)))
     equations = Equations(equation_list, 
                           auxiliary_variables=Xda.keys(),
                           latex_symbols=self._latex)
     self._equations = equations
 def valid_parameter_set(self, p_bounds=None, optimize=None, minimize=True, strict=True):
     if p_bounds is not None:
         pvals = self._valid_parameter_set_bounded(p_bounds, 
                                                   optimize=optimize,
                                                   minimize=minimize)
         return pvals
     if optimize is not None:
         variablepool = DSCaseValidParameterSetByOptimizingFunction(self._swigwrapper, 
                                                                    optimize,
                                                                    minimize)
     else:
         variablepool = DSCaseValidParameterSet(self._swigwrapper)
     pvals = VariablePool()
     pvals.set_swigwrapper(variablepool)
     for i in pvals:
         if pvals[i] == 0.0 or pvals[i] == float('inf'):
             return self._valid_parameter_set_bounded({i:[1e-20, 1e20] for i in self.independent_variables}, 
                                                      optimize=optimize,
                                                      minimize=minimize)
     return pvals
Пример #9
0
 def _parse_equations(self, **kwargs):
     auxiliary_variables = self.auxiliary_variables
     swigwrapper = DSSWIGGMASystemParseWrapper(self.equations.system,
                                               len(self.equations),
                                               auxiliary_variables,
                                               len(auxiliary_variables)
                                               )
     self.set_swigwrapper(swigwrapper)
     eqs = DSGMASystemEquations(self._swigwrapper)
     equation_list = list()
     for i in xrange(0, DSGMASystemNumberOfEquations(self._swigwrapper)):
         expr = DSExpressionAtIndexOfExpressionArray(eqs, i)
         equation_list.append(DSExpressionAsString(expr))
         DSExpressionFree(expr)
     DSSecureFree(eqs)
     Xda = VariablePool()
     Xda.set_swigwrapper(DSVariablePoolCopy(DSGMASystemXd_a(gma)))
     equations = Equations(equation_list, 
                           auxiliary_variables=Xda.keys(), 
                           latex_symbols=self._latex)
     self._equations = equations
Пример #10
0
 def set_swigwrapper(self, case_swigwrapper):
     self._swigwrapper = case_swigwrapper
     Xd = VariablePool()
     Xd.set_swigwrapper(DSVariablePoolCopy(DSSSystemXd(DSCaseSSystem(case_swigwrapper))))
     for i in VariablePool():
         if i not in self.dependent_variables:
             raise NameError, 'Dependent Variables are inconsistent'
     self._dependent_variables = Xd
     Xi = VariablePool()
     Xi.set_swigwrapper(DSVariablePoolCopy(DSSSystemXi(DSCaseSSystem(case_swigwrapper))))
     self._independent_variables = Xi
     eqs = list()
     eqs_expr = DSSSystemEquations(DSCaseSSystem(case_swigwrapper))
     for i in xrange(0, len(super(Case, self).equations)):
         eqs.append(DSExpressionAsString(DSExpressionAtIndexOfExpressionArray(eqs_expr, i)))
         DSExpressionFree(DSExpressionAtIndexOfExpressionArray(eqs_expr, i))
     DSSecureFree(eqs_expr)
     self._ssystem = SSystem(self._equations,
                             name=self.name,
                             swigwrapper=DSCaseSSystem(case_swigwrapper),
                             latex_symbols=self._latex)
    def set_swigwrapper(self, ds_swigwrapper):
        self._swigwrapper = ds_swigwrapper

        Xd = VariablePool()
        Xd.set_swigwrapper(DSGMASystemXd(DSDesignSpaceGMASystem(ds_swigwrapper)))
        ## for i in VariablePool():
        ##     if i not in self.dependent_variables:
        ##         raise NameError, 'Dependent Variables are inconsistent'
        self._dependent_variables = Xd.copy()
        Xd.set_swigwrapper(None)
        Xi = VariablePool()
        Xi.set_swigwrapper(DSDesignSpaceXi(ds_swigwrapper))
        self._independent_variables = Xi.copy()
        Xi.set_swigwrapper(None)
Пример #12
0
    def set_swigwrapper(self, gma_swigwrapper):
        self._swigwrapper = gma_swigwrapper
        
        Xd = VariablePool()
        Xd.set_swigwrapper(DSGMASystemXd(gma_swigwrapper))
        for i in VariablePool():
            if i not in self.dependent_variables:
                raise NameError, 'Dependent Variables are inconsistent'

        Xi = VariablePool()
        Xi.set_swigwrapper(DSVariablePoolCopy(DSGMASystemXi(gma_swigwrapper)))
        self._dependent_variables = Xd.copy()
        self._independent_variables = Xi
        Xd.set_swigwrapper(None)
 def set_swigwrapper(self, swigwrapper):
     self._swigwrapper = swigwrapper
     ## ds_swigwrapper = DSCyclicalCaseInternalDesignSpace(swigwrapper)
     
     Xd = VariablePool()
     Xd.set_swigwrapper(DSCyclicalCaseXd(swigwrapper))
     for i in VariablePool():
         if i not in self.dependent_variables:
             raise NameError, 'Dependent Variables are inconsistent'
     Xi = VariablePool()
     Xi.set_swigwrapper(DSCyclicalCaseXi(swigwrapper))
     self._independent_variables = Xi.copy()
     self._dependent_variables = Xd.copy()       
     Xd.set_swigwrapper(None)
     Xi.set_swigwrapper(None)
     eqs = list()
     eqs_expr = DSSSystemEquations(DSCyclicalCaseSSystem(self._swigwrapper))
     for i in xrange(0, DSCyclicalCaseNumberOfEquations(self._swigwrapper)):
         eqs.append(DSExpressionAsString(DSExpressionAtIndexOfExpressionArray(eqs_expr, i)))
         DSExpressionFree(DSExpressionAtIndexOfExpressionArray(eqs_expr, i))
     DSSecureFree(eqs_expr)
     self._ssystem = SSystem(self._equations,
                             name=self.name,
                             swigwrapper=DSSSystemCopy(DSCyclicalCaseSSystem(swigwrapper)))
 def variables(self):
     vp = DSExpressionVariablesInExpression(self._swigwrapper)
     pv = VariablePool()
     pv.set_swigwrapper(vp)
     return pv.keys()
Пример #15
0
 def valid_parameter_and_state(self):
     variablepool = DSCaseValidParameterAndStateSet(self._swigwrapper)
     pstate = VariablePool()
     pstate.set_swigwrapper(variablepool)
     return pstate
Пример #16
0
 def consistent_parameter_and_state(self):
     variablepool = DSCaseConsistentParameterAndStateSet(self._swigwrapper)
     pstate = VariablePool()
     pstate.set_swigwrapper(variablepool)
     return pstate