def steady_state_flux(self, parameter_values, log_out=False): steady_states = self.steady_state(parameter_values) Xd = VariablePool(names=self.dependent_variables) fluxes = dict() case_swigwrapper = DSCyclicalCaseOriginalCase(self._swigwrapper) for i in steady_states: Xd.update(steady_states[i]) flux = DSSSystemSteadyStateFluxForDependentVariables(DSCaseSSystem(case_swigwrapper), Xd._swigwrapper, parameter_values._swigwrapper) var_names = Xd.keys() if log_out is False: flux = {('V_' + var_names[j]):10**flux[j][0] for j in xrange(len(var_names))} else: flux = {('V_' + var_names[j]):flux[j][0] for j in xrange(len(var_names))} fluxes[i] = flux return fluxes
def steady_state_function(self, function, parameter_values): if isinstance(function, Expression): expr = function else: expr = Expression(function) p_values = VariablePool(names=self.independent_variables) for key in p_values: p_values[key] = parameter_values[key] ss = self.steady_state(p_values, log_out=False) flux = self.steady_state_flux(p_values, log_out=False) values = dict() for subcase in ss: p_values.update(ss[subcase]) p_values.update(flux[subcase]) value = expr.eval_with_values(p_vals=p_values) values[subcase] = value return values
def _is_valid_point_in_statespace(self, v_bounds, p_bounds): Xd_t = VariablePool() independent = VariablePool(names=self.independent_variables) ssys = self.ssystem for key in independent: value = float(p_bounds[key]) independent[key] = value for key in self.dependent_variables: if key in ssys.auxiliary_variables: continue value = float(v_bounds[key]) Xd_t[key] = value dependent = VariablePool(names=self.dependent_variables) dependent.update(v_bounds) if len(ssys.auxiliary_variables) > 0: aux = ssys.value_for_auxiliary_variables(Xd_t, independent) dependent.update(aux) return DSCaseIsValidInStateSpaceAtPoint(self._swigwrapper, dependent._swigwrapper, independent._swigwrapper)