/* convert from L1 to L3 */ void Model::convertL3ToL1 () { // // Level 3 allows a model to be specified without a Compartment. However // this is not valid in Level 1. Thus if a L3 model has no Compartment // one must be included // if (getNumCompartments() == 0) { createCompartment()->setId(ASSIGNED_COMPARTMENT); } dealWithModelUnits(); dealWithAssigningL1Stoichiometry(*this, false); for (unsigned int i = 0; i < getNumReactions(); i++) { Reaction *r = getReaction(i); if (r->isSetKineticLaw()) { KineticLaw *kl = r->getKineticLaw(); for (unsigned int j = 0; j < kl->getNumLocalParameters(); j++) { Parameter *lp = new Parameter(getLevel(), getVersion()); (*lp) = *(kl->getLocalParameter(j)); kl->addParameter(lp); } } } }
/* convert from L1 to L3 */ void Model::convertL3ToL2 (bool strict) { dealWithModelUnits(); dealWithStoichiometry(); dealWithEvents(strict); for (unsigned int i = 0; i < getNumReactions(); i++) { Reaction *r = getReaction(i); if (r->isSetKineticLaw()) { KineticLaw *kl = r->getKineticLaw(); for (unsigned int j = 0; j < kl->getNumLocalParameters(); j++) { Parameter *lp = new Parameter(getLevel(), getVersion()); (*lp) = *(kl->getLocalParameter(j)); kl->addParameter(lp); } } } }