Example #1
0
  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;
  }
Example #2
0
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 >() ) );
}
Example #3
0
  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;
  }
Example #4
0
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;
}
Example #5
0
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;
}
Example #7
0
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;
}
Example #8
0
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;
}
Example #10
0
int VRFSystemListController::count()
{
  return systems().size() + 1;
}