当前位置: 首页>>代码示例>>C++>>正文


C++ Domain::getSpatialId方法代码示例

本文整理汇总了C++中Domain::getSpatialId方法的典型用法代码示例。如果您正苦于以下问题:C++ Domain::getSpatialId方法的具体用法?C++ Domain::getSpatialId怎么用?C++ Domain::getSpatialId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Domain的用法示例。


在下文中一共展示了Domain::getSpatialId方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: readSpatialSBML

void readSpatialSBML() {
	SBMLDocument *document2 = readSBML("spatial_example0.xml");
  
	Model *model2 = document2->getModel();
	Compartment *comp;
	SpatialCompartmentPlugin* cplugin;
	RequiredElementsSBasePlugin* reqplugin;
	for (unsigned int i = 0; i < model2->getNumCompartments(); i++) {
		comp = model2->getCompartment(i);
		cout << "Compartment" << i << ": "  << comp->getId() << endl;
		reqplugin = static_cast<RequiredElementsSBasePlugin*>(comp->getPlugin("req"));
		if (!reqplugin->getMathOverridden().empty()) {
			cout << "Comp" << i << "  req mathOverridden: "  << reqplugin->getMathOverridden() << endl;
		}
		cplugin = static_cast<SpatialCompartmentPlugin*>(comp->getPlugin("spatial"));
		if (cplugin->getCompartmentMapping()->isSetSpatialId()) {
			cout << "Comp" << i << "  CMSpId: "  << cplugin->getCompartmentMapping()->getSpatialId() << endl;
			cout << "Comp" << i << "  CM_Comp: "  << cplugin->getCompartmentMapping()->getCompartment() << endl;
			cout << "Comp" << i << "  CM_DType: "  << cplugin->getCompartmentMapping()->getDomainType() << endl;
			cout << "Comp" << i << "  CM_UnitSz: "  << cplugin->getCompartmentMapping()->getUnitSize() << endl;
		}
	}

	Species *sp;
	SpatialSpeciesRxnPlugin* srplugin;
	for (unsigned int i = 0; i < model2->getNumSpecies(); i++) {
		sp = model2->getSpecies(i);
		cout << "Species" << i << ": "      << sp->getId()      << endl;
		srplugin = static_cast<SpatialSpeciesRxnPlugin*>(sp->getPlugin("spatial"));
		if (srplugin->getIsSpatial()) {
			cout << "species" << i << "  isSpatial: "  << srplugin->getIsSpatial() << endl;
		}
	}

	Parameter *param;
	SpatialParameterPlugin* pplugin;
	for (unsigned int i = 0; i < model2->getNumParameters(); i++) {
		param = model2->getParameter(i);
		cout << "Parameter" << i << ": "  << param->getId() << endl;
		reqplugin = static_cast<RequiredElementsSBasePlugin*>(param->getPlugin("req"));
		if (!reqplugin->getMathOverridden().empty()) {
			cout << "Parameter" << i << "  req mathOverridden: "  << reqplugin->getMathOverridden() << endl;
		}
		pplugin = static_cast<SpatialParameterPlugin*>(param->getPlugin("spatial"));
		if (pplugin->getSpatialSymbolReference()->isSetSpatialId()) {
			cout << "Parameter" << i << "  SpRefId: "  << pplugin->getSpatialSymbolReference()->getSpatialId() << endl;
			cout << "Parameter" << i << "  SpRefType: "  << pplugin->getSpatialSymbolReference()->getType() << endl;
		}
		if (pplugin->getDiffusionCoefficient()->isSetVariable()) {
			cout << "Diff_" << i << "  SpeciesVarId: "  << pplugin->getDiffusionCoefficient()->getVariable() << endl;
			cout << "Diff_" << i << "  SpCoordIndex: "  << pplugin->getDiffusionCoefficient()->getCoordinateIndex() << endl;
		}
		if (pplugin->getAdvectionCoefficient()->isSetVariable()) {
			cout << "Adv_" << i << "  SpeciesVarId: "  << pplugin->getAdvectionCoefficient()->getVariable() << endl;
			cout << "Adv_" << i << "  SpCoordIndex: "  << pplugin->getAdvectionCoefficient()->getCoordinateIndex() << endl;
		}
		if (pplugin->getBoundaryCondition()->isSetVariable()) {
			cout << "BC_" << i << "  SpeciesVarId: "  << pplugin->getBoundaryCondition()->getVariable() << endl;
			cout << "BC_" << i << "  SpCoordBoundary: "  << pplugin->getBoundaryCondition()->getCoordinateBoundary() << endl;
			cout << "BC_" << i << "  SpBoundaryType: "  << pplugin->getBoundaryCondition()->getType() << endl;
		}
	}

	Reaction *rxn;
	for (unsigned int i = 0; i < model2->getNumReactions(); i++) {
		rxn = model2->getReaction(i);
		cout << "Reaction" << i << ": "      << rxn->getId()      << endl;
		srplugin = static_cast<SpatialSpeciesRxnPlugin*>(rxn->getPlugin("spatial"));
		if (srplugin->getIsLocal()) {
			cout << "rxn" << i << "  isLocal: "  << srplugin->getIsLocal() << endl;
		}
	}

	Rule *rule;
	for (unsigned int i = 0; i < model2->getNumRules(); i++) {
		rule = model2->getRule(i);
		cout << "Rule" << i << ": "      << rule->getVariable()      << endl;
	}

	//
	// Get a SpatialModelPlugin object plugged in the model object.
	//
	// The type of the returned value of SBase::getPlugin() function is 
	// SBasePlugin*, and thus the value needs to be cast for the 
	// corresponding derived class.
	//
	SpatialModelPlugin* mplugin2;
	mplugin2 = static_cast<SpatialModelPlugin*>(model2->getPlugin("spatial"));
	cout << "URI: "      << mplugin2->getURI()      << endl;
	cout << "prefix: "      << mplugin2->getPrefix()      << endl;

	// get a Geometry object via SpatialModelPlugin object.
	Geometry* geometry2 = mplugin2->getGeometry();
	cout << "Geometry coordSystem: "      << geometry2->getCoordinateSystem()      << endl;
    
	// get a CoordComponent object via the Geometry object.	
	CoordinateComponent* coordComp = geometry2->getCoordinateComponent(0);
	std::cout << "CoordComponent spatialId: " << coordComp->getSpatialId() << std::endl;
	std::cout << "CoordComponent compType: " << coordComp->getComponentType() << std::endl;
	std::cout << "CoordComponent sbmlUnit: " << coordComp->getSbmlUnit() << std::endl;
//.........这里部分代码省略.........
开发者ID:kirichoi,项目名称:roadrunner,代码行数:101,代码来源:spatialExtTest.cpp

示例2: writeSpatialSBML


//.........这里部分代码省略.........
  SpatialModelPlugin* mplugin;
  mplugin = static_cast<SpatialModelPlugin*>(model->getPlugin("spatial"));

  //
  // Creates a geometry object via SpatialModelPlugin object.
  //
  Geometry* geometry = mplugin->getGeometry();
  geometry->setCoordinateSystem("XYZ");

  CoordinateComponent* coordX = geometry->createCoordinateComponent();
  coordX->setSpatialId("coordComp1");
  coordX->setComponentType("cartesian");
  coordX->setSbmlUnit("umeter");
  coordX->setIndex(1);
  BoundaryMin* minX = coordX->createBoundaryMin();
  minX->setSpatialId("Xmin");
  minX->setValue(0.0);
  BoundaryMax* maxX = coordX->createBoundaryMax();
  maxX->setSpatialId("Xmax");
  maxX->setValue(10.0);

  Parameter* paramX = model->createParameter();
  paramX->setId("x");
  paramX->setValue(8.0);
  // required elements package extention to parameter
  // RequiredElementsSBasePlugin* reqplugin;
  reqplugin = static_cast<RequiredElementsSBasePlugin*>(paramX->getPlugin("req"));
  reqplugin->setMathOverridden("spatial");
  reqplugin->setCoreHasAlternateMath(true);
  // spatial package extension to parameter.
  // SpatialParameterPlugin* pplugin;
  pplugin = static_cast<SpatialParameterPlugin*>(paramX->getPlugin("spatial"));
  SpatialSymbolReference* spSymRef = pplugin->getSpatialSymbolReference();
  spSymRef->setSpatialId(coordX->getSpatialId());
  spSymRef->setType(coordX->getElementName());

  DomainType* domainType = geometry->createDomainType();
  domainType->setSpatialId("dtype1");
  domainType->setSpatialDimensions(3);

  // Spatial package extension to compartment (mapping compartment with domainType)
  // required elements package extention to compartment
  reqplugin = static_cast<RequiredElementsSBasePlugin*>(compartment->getPlugin("req"));
  reqplugin->setMathOverridden("spatial");
  reqplugin->setCoreHasAlternateMath(true);
  SpatialCompartmentPlugin* cplugin;
  cplugin = static_cast<SpatialCompartmentPlugin*>(compartment->getPlugin("spatial"));
  CompartmentMapping* compMapping = cplugin->getCompartmentMapping();
  compMapping->setSpatialId("compMap1");
  compMapping->setCompartment(compartment->getId());
  compMapping->setDomainType(domainType->getSpatialId());
  compMapping->setUnitSize(1.0);
  
  Domain* domain = geometry->createDomain();
  domain->setSpatialId("domain1");
  domain->setDomainType("dtype1");
  domain->setImplicit(false);
  domain->setShapeId("circle");
  InteriorPoint* internalPt1 = domain->createInteriorPoint();
  internalPt1->setCoord1(1.0);

  domain = geometry->createDomain();
  domain->setSpatialId("domain2");
  domain->setDomainType("dtype1");
  domain->setImplicit(false);
  domain->setShapeId("square");
开发者ID:kirichoi,项目名称:roadrunner,代码行数:67,代码来源:spatialExtTest.cpp


注:本文中的Domain::getSpatialId方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。