MCPcopy Create free account
hub / github.com/InteractiveComputerGraphics/SPlisHSPlasH / deferredInit

Method deferredInit

Simulator/SimulatorBase.cpp:531–577  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

529}
530
531void SimulatorBase::deferredInit()
532{
533 m_boundarySimulator->initBoundaryData();
534
535 Simulation* sim = Simulation::getCurrent();
536 if (sim->getBoundaryHandlingMethod() == BoundaryHandlingMethods::Akinci2012)
537 {
538 unsigned int nBoundaryParticles = 0;
539 for (unsigned int i = 0; i < sim->numberOfBoundaryModels(); i++)
540 nBoundaryParticles += static_cast<BoundaryModel_Akinci2012*>(sim->getBoundaryModel(i))->numberOfParticles();
541
542 LOG_INFO << "Number of boundary particles: " << nBoundaryParticles;
543 }
544
545#ifdef USE_EMBEDDED_PYTHON
546 m_scriptObject = new ScriptObject(this);
547 m_scriptObject->init();
548 getSceneLoader()->readParameterObject("Configuration", (ParameterObject*)m_scriptObject);
549#else
550 if (getSceneLoader()->hasValue("Configuration", "scriptFile"))
551 LOG_WARN << "Key 'scriptFile' is set in the scene but SPlisHSPlasH is built without embedded Python support.";
552#endif
553
554 if (m_useGUI)
555 {
556 for (unsigned int i = 0; i < sim->numberOfFluidModels(); i++)
557 {
558 FluidModel* model = sim->getFluidModel(i);
559 if (model->getXSPH())
560 getSceneLoader()->readMaterialParameterObject(model->getId(), (NonPressureForceBase*)model->getXSPH());
561 if (model->getDragBase())
562 getSceneLoader()->readMaterialParameterObject(model->getId(), (NonPressureForceBase*)model->getDragBase());
563 if (model->getSurfaceTensionBase())
564 getSceneLoader()->readMaterialParameterObject(model->getId(), (NonPressureForceBase*)model->getSurfaceTensionBase());
565 if (model->getViscosityBase())
566 getSceneLoader()->readMaterialParameterObject(model->getId(), (NonPressureForceBase*)model->getViscosityBase());
567 if (model->getVorticityBase())
568 getSceneLoader()->readMaterialParameterObject(model->getId(), (NonPressureForceBase*)model->getVorticityBase());
569 if (model->getElasticityBase())
570 getSceneLoader()->readMaterialParameterObject(model->getId(), (NonPressureForceBase*)model->getElasticityBase());
571 }
572 getSceneLoader()->readTimeStepParameterObject("Configuration", Simulation::getCurrent()->getTimeStep());
573 m_gui->initSimulationParameterGUI();
574 }
575 sim->setSimulationInitialized(true);
576 m_boundarySimulator->deferredInit();
577}
578
579void SimulatorBase::runSimulation()
580{

Callers

nothing calls this directly

Calls 15

getBoundaryModelMethod · 0.80
readParameterObjectMethod · 0.80
hasValueMethod · 0.80
numberOfFluidModelsMethod · 0.80
getFluidModelMethod · 0.80
getXSPHMethod · 0.80
getDragBaseMethod · 0.80
getSurfaceTensionBaseMethod · 0.80
getViscosityBaseMethod · 0.80

Tested by

no test coverage detected