void BuildModel::exportAsBIF(ProjectItem* item, QList<QPair<QString, QString>> &result) { auto path = __project->dir().absoluteFilePath(item->path()); gum::prm::o3prm::O3prmReader<double> reader; reader.addClassPath( __project->dir().absolutePath().toStdString() ); auto package = __retrievePackage( item ); reader.readFile(path.toStdString(), package.toStdString()); auto prm = reader.prm(); reader.showElegantErrorsAndWarnings(); for ( auto sys: prm->systems() ) { gum::BayesNet<double> bn; gum::BayesNetFactory<double> bn_fact(&bn); sys->groundedBN(bn_fact); gum::BIFWriter<double> writer; std::stringstream str; writer.write(str, bn); auto name = QString::fromStdString(sys->name()); auto ground = QString::fromStdString( str.str() ); auto pair = qMakePair(name, ground); result.push_back(pair); } delete prm; }
void Model::initializeEntities( System* const aSystem ) { aSystem->initialize(); if( !aSystem->getStepper() ) { THROW_EXCEPTION( InitializationFailed, "No stepper is connected with [" + aSystem->getFullID().asString() + "]." ); } System::Variables variables( aSystem->getVariables() ); std::for_each( boost::begin( variables ), boost::end( variables ), ComposeUnary( boost::bind( &Variable::initialize, _1 ), SelectSecond< boost::range_value< System::Variables >::type >() ) ); System::Processes processes( aSystem->getProcesses() ); std::for_each( boost::begin( processes ), boost::end( processes ), ComposeUnary( boost::bind( &Process::initialize, _1 ), SelectSecond< boost::range_value< System::Processes >::type >() ) ); System::Systems systems( aSystem->getSystems() ); std::for_each( boost::begin( systems ), boost::end( systems ), ComposeUnary( boost::bind( &Model::initializeEntities, _1 ), SelectSecond< boost::range_value< System::Systems >::type >() ) ); }
void BuildModel::skeleton(ProjectItem* item, QList<QPair<QString, QString>> &result) { auto path = __project->dir().absoluteFilePath(item->path()); gum::prm::o3prm::O3prmReader<double> reader; reader.addClassPath( __project->dir().absolutePath().toStdString() ); auto package = __retrievePackage( item ); reader.readFile(path.toStdString(), package.toStdString()); auto prm = reader.prm(); if (not prm->systems().empty()) { for ( auto sys: prm->systems() ) { QString name = QString::fromStdString(sys->name()); QString skeleton = __skeleton(*sys); auto pair = qMakePair(name, skeleton); result.push_back(pair); } } delete prm; }
QSharedPointer<OSListItem> VRFSystemListController::itemAt(int i) { QSharedPointer<OSListItem> item; if( i == 0 ) { item = QSharedPointer<VRFSystemListDropZoneItem>(new VRFSystemListDropZoneItem(this)); } else if( i > 0 && i < count() ) { item = QSharedPointer<VRFSystemListItem>(new VRFSystemListItem(systems()[i - 1],this)); } return item; }
void Model::preinitializeEntities( System* aSystem ) { aSystem->preinitialize(); System::Variables variables( aSystem->getVariables() ); std::for_each( boost::begin( variables ), boost::end( variables ), ComposeUnary( boost::bind( &Variable::preinitialize, _1 ), SelectSecond< boost::range_value< System::Variables >::type >() ) ); System::Processes processes( aSystem->getProcesses() ); std::for_each( boost::begin( processes ), boost::end( processes ), ComposeUnary( boost::bind( &Process::preinitialize, _1 ), SelectSecond< boost::range_value< System::Processes >::type >() ) ); System::Systems systems( aSystem->getSystems() ); std::for_each( boost::begin( systems ), boost::end( systems ), ComposeUnary( boost::bind( &Model::preinitializeEntities, _1 ), SelectSecond< boost::range_value< System::Systems >::type >() ) ); }
int RefrigerationSystemListController::systemIndex(const model::RefrigerationSystem & system) const { std::vector<model::RefrigerationSystem> _systems = systems(); int i = 1; for( std::vector<model::RefrigerationSystem>::const_iterator it = _systems.begin(); it != _systems.end(); it++ ) { if( *it == system ) { break; } i++; } return i; }
int VRFSystemListController::systemIndex(const model::AirConditionerVariableRefrigerantFlow & system) const { std::vector<model::AirConditionerVariableRefrigerantFlow> _systems = systems(); int i = 1; for( std::vector<model::AirConditionerVariableRefrigerantFlow>::const_iterator it = _systems.begin(); it != _systems.end(); ++it ) { if( *it == system ) { break; } i++; } return i; }
void TestParticleSystem::runTest() { double timeStart; timeStart = currentTime(); // Create systems Vector<TestParticleSystem*> systems(NUM_SYSTEMS); for (int i = 0; i < NUM_SYSTEMS; i++) { systems.pushBack(TestParticleSystem::create()); } double timeAfterCreate = currentTime(); CCLOG("TIME creation %f\n", timeAfterCreate - timeStart); timeStart = currentTime(); // Update systems for (int frame = 0; frame < NUM_FRAMES; frame++) { for (int i = 0; i < NUM_SYSTEMS; i++) { TestParticleSystem* system = systems.at(i); system->update(1.0 / 60.0); } } double timeAfterUpdates = currentTime(); CCLOG("TIME updates %f\n", timeAfterUpdates - timeStart); timeStart = currentTime(); // Update systems for (int frame = 0; frame < NUM_FRAMES; frame++) { for (int i = 0; i < NUM_SYSTEMS; i++) { TestParticleSystem* system = systems.at(i); system->paint(); } } double timeAfterMatrices = currentTime(); CCLOG("TIME matrices %f\n", timeAfterMatrices - timeStart); }
int RefrigerationSystemListController::count() { return systems().size() + 1; }
int VRFSystemListController::count() { return systems().size() + 1; }