Computer Assisted Medical Intervention Tool Kit  version 5.2
MonitoringManager Class Referenceabstract

Manager of the benchmark tests. More...

#include <MonitoringManager.h>

+ Inheritance diagram for MonitoringManager:
+ Collaboration diagram for MonitoringManager:

Public Member Functions

void addMonitor (Monitor *monitor)
 add a monitor to the list More...
 
virtual bool checkStop ()=0
 Check if simulation is finished. More...
 
void deleteMonitor (const unsigned int i)
 delete a monitor and remove it from the list using its index More...
 
virtual void doMove ()=0
 Do one step of simulation and save monitors for this step. More...
 
virtual void end ()=0
 End manager. More...
 
MonitorgetMonitor (const unsigned int i) const
 get a monitor by its index in the list More...
 
void incStep ()
 increment step by one More...
 
virtual bool init ()=0
 Initialize manager. More...
 
bool isLmlPresent ()
 check if a lml is present More...
 
bool isPmlPresent ()
 check if a scn is present instead of pmlFileName More...
 
 MonitoringManager (const char *mml)
 constructor More...
 
unsigned int numberOfMonitor () const
 get the number of monitors stored in the list More...
 
void reload (bool delPml=true)
 reload simulation with current parameters More...
 
void rewind ()
 Rewind simulation. More...
 
void saveMmlIn (const char *fileName)
 save current version of mml in More...
 
void saveMonitors ()
 Save save monitors' state for the current time. More...
 
void setCurrentTime (double time)
 mutators for simulation parameters More...
 
void setDt (double dt)
 change dt and save modification into mmlIn More...
 
void setLmlFileName (const char *file)
 change lml file name and save modification into mmlIn More...
 
void setPmlFileName (const char *file)
 change pml file name and save modification into mmlIn More...
 
void setRefresh (double refresh)
 change refresh and save modification into mmlIn More...
 
void simulate ()
 perform simulation loop, make tests and save monitors' data into output file More...
 
void storeOldPositions ()
 store old positions before next step More...
 
void updateComputingTime ()
 add step computing time to total computing time More...
 
void updateCurrentTime ()
 add dt to current time More...
 
void writeCsv (const char *fileName)
 Write all saved monitors'state into csv file. More...
 
void writeOutput (const char *fileName)
 Write all saved monitors' states into mmlOut file. More...
 
virtual ~MonitoringManager ()
 destructor More...
 
accessors for simulation parameters
double getDt ()
 
double getRefresh ()
 
double getCurrentTime ()
 
double getCurrentStep ()
 
double getStepComputingTime ()
 
double getComputingTime ()
 
PhysicalModelgetInitPml ()
 
PhysicalModelgetPml ()
 
PhysicalModeltakePml ()
 This is nearly the same as getPml(), but it also transfers ownership of the pointer. More...
 
LoadsgetLml ()
 
LoadstakeLml ()
 This is nearly the same as getLml(), but it also transfers ownership of the pointer. More...
 
std::string getPmlFileName ()
 
std::string getLmlFileName ()
 
std::string getMmlFileName ()
 
std::string getmmlFileFolder ()
 
SimulatorgetSimulator ()
 
void getOldPosition (double pos[3], unsigned int index)
 get atom position for precedent step More...
 

Protected Attributes

double computingTime
 total computing time at current moment More...
 
double currentTime
 time at current moment More...
 
double dt
 integration step More...
 
std::unique_ptr< mml::MonitoringIn > mmlIn
 Object representing manager in the file generated by xsdcxx, can be used for serialization. More...
 
std::vector< Monitor * > monitors
 Vector that contains all monitors. More...
 
double refresh
 refreshing step More...
 
Simulatorsimul
 the simulator used for simualtion More...
 
std::string simulatorName
 name of the simulator More...
 
int step
 current step More...
 
double stepComputingTime
 computing time of last step More...
 
std::vector< mml::TimeStep * > times
 Vector that contains information saved by saveMonitors method. More...
 

Detailed Description

Manager of the benchmark tests.

Do simulation loop and tests

Constructor & Destructor Documentation

◆ MonitoringManager()

MonitoringManager::MonitoringManager ( const char *  mml)

constructor

Parameters
mmlmml file name
simsimulator name (Sofa, Ansys...)

References camitk::refresh(), and timeParameter2double().

+ Here is the call graph for this function:

◆ ~MonitoringManager()

MonitoringManager::~MonitoringManager ( )
virtual

destructor

Member Function Documentation

◆ addMonitor()

void MonitoringManager::addMonitor ( Monitor monitor)

add a monitor to the list

◆ checkStop()

virtual bool MonitoringManager::checkStop ( )
pure virtual

Check if simulation is finished.

Implemented in NonInteractiveMonitoringManager, and InteractiveMonitoringManager.

Referenced by MonitoringGuiManager::doOneStep(), and MonitoringGuiManager::simulateOneStep().

+ Here is the caller graph for this function:

◆ deleteMonitor()

void MonitoringManager::deleteMonitor ( const unsigned int  i)

delete a monitor and remove it from the list using its index

◆ doMove()

virtual void MonitoringManager::doMove ( )
pure virtual

Do one step of simulation and save monitors for this step.

Implemented in NonInteractiveMonitoringManager, and InteractiveMonitoringManager.

Referenced by MonitoringGuiManager::doOneStep().

+ Here is the caller graph for this function:

◆ end()

virtual void MonitoringManager::end ( )
pure virtual

◆ getComputingTime()

double MonitoringManager::getComputingTime ( )

Referenced by MonitorComputingTime::calculate(), and MonitoringDialog::updateSimulation().

+ Here is the caller graph for this function:

◆ getCurrentStep()

double MonitoringManager::getCurrentStep ( )

Referenced by AnsysSimulator::getPosition(), ArtisynthSimulator::getPosition(), and MonitoringDialog::updateSimulation().

+ Here is the caller graph for this function:

◆ getCurrentTime()

double MonitoringManager::getCurrentTime ( )

Referenced by MonitorDistanceX::calculate(), MonitorDistanceY::calculate(), MonitorDistanceZ::calculate(), MonitorGeometricDeviation::calculate(), MonitorPointSetDistance::calculate(), MonitorRen::calculate(), MonitoringGuiManager::doOneStep(), and MonitoringDialog::updateSimulation().

+ Here is the caller graph for this function:

◆ getDt()

double MonitoringManager::getDt ( )

Referenced by SoluWriter::SoluWriter(), and MonitoringDialog::updateSimulation().

+ Here is the caller graph for this function:

◆ getInitPml()

PhysicalModel * MonitoringManager::getInitPml ( )

Referenced by MonitorDisplacement::calculate(), MonitorNormDisplacement::calculate(), MonitorRen::calculate(), and Monitor::Monitor().

+ Here is the caller graph for this function:

◆ getLml()

Loads * MonitoringManager::getLml ( )

Referenced by PrepWriter::write().

+ Here is the caller graph for this function:

◆ getLmlFileName()

string MonitoringManager::getLmlFileName ( )

Referenced by MonitoringDialog::updateSimulation().

+ Here is the caller graph for this function:

◆ getmmlFileFolder()

string MonitoringManager::getmmlFileFolder ( )

Referenced by Reference::Reference().

+ Here is the caller graph for this function:

◆ getMmlFileName()

string MonitoringManager::getMmlFileName ( )

Referenced by MonitoringDialog::updateSimulation().

+ Here is the caller graph for this function:

◆ getMonitor()

Monitor * MonitoringManager::getMonitor ( const unsigned int  i) const

get a monitor by its index in the list

Referenced by MMLDisplay::connectMonitor(), MMLDisplay::getDisplayedMonitor(), MonitoringDialog::updateMonitors(), and MMLDisplay::updateMonitorsTable().

+ Here is the caller graph for this function:

◆ getOldPosition()

void MonitoringManager::getOldPosition ( double  pos[3],
unsigned int  index 
)

get atom position for precedent step

References a.

◆ getPml()

◆ getPmlFileName()

std::string MonitoringManager::getPmlFileName ( )

Referenced by MMLComponent::connectPml(), MMLComponent::MMLComponent(), and MonitoringDialog::updateSimulation().

+ Here is the caller graph for this function:

◆ getRefresh()

double MonitoringManager::getRefresh ( )

References camitk::refresh().

Referenced by MonitoringGuiManager::doOneStep(), and MonitoringDialog::updateSimulation().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSimulator()

Simulator * MonitoringManager::getSimulator ( )

Referenced by MonitorForce::calculate(), and MonitoringDialog::updateSimulatorWidget().

+ Here is the caller graph for this function:

◆ getStepComputingTime()

double MonitoringManager::getStepComputingTime ( )

Referenced by MonitoringDialog::updateSimulation().

+ Here is the caller graph for this function:

◆ incStep()

void MonitoringManager::incStep ( )

increment step by one

Referenced by InteractiveMonitoringManager::doMove(), and NonInteractiveMonitoringManager::doMove().

+ Here is the caller graph for this function:

◆ init()

virtual bool MonitoringManager::init ( )
pure virtual

Initialize manager.

Returns
false if initialisation faild

Implemented in NonInteractiveMonitoringManager, and InteractiveMonitoringManager.

Referenced by MonitoringGuiManager::loadMmlInFile().

+ Here is the caller graph for this function:

◆ isLmlPresent()

bool MonitoringManager::isLmlPresent ( )

check if a lml is present

Referenced by SofaSimulator::init(), and PrepWriter::write().

+ Here is the caller graph for this function:

◆ isPmlPresent()

bool MonitoringManager::isPmlPresent ( )

check if a scn is present instead of pmlFileName

◆ numberOfMonitor()

unsigned int MonitoringManager::numberOfMonitor ( ) const

get the number of monitors stored in the list

Referenced by MonitoringDialog::updateMonitors().

+ Here is the caller graph for this function:

◆ reload()

void MonitoringManager::reload ( bool  delPml = true)

reload simulation with current parameters

Parameters
delPmltrue if pml object have to be deleted (perhaps used by others: physicalModel component...)

Referenced by MonitoringGuiManager::reload().

+ Here is the caller graph for this function:

◆ rewind()

void MonitoringManager::rewind ( )

Rewind simulation.

Referenced by MonitoringGuiManager::rewind().

+ Here is the caller graph for this function:

◆ saveMmlIn()

void MonitoringManager::saveMmlIn ( const char *  fileName)

save current version of mml in

Referenced by MonitoringGuiManager::saveMmlInFile().

+ Here is the caller graph for this function:

◆ saveMonitors()

void MonitoringManager::saveMonitors ( )

Save save monitors' state for the current time.

References timeParameter2double().

Referenced by InteractiveMonitoringManager::doMove(), and NonInteractiveMonitoringManager::doMove().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setCurrentTime()

void MonitoringManager::setCurrentTime ( double  time)

mutators for simulation parameters

◆ setDt()

void MonitoringManager::setDt ( double  dt)

change dt and save modification into mmlIn

Referenced by MonitoringGuiManager::updateDt().

+ Here is the caller graph for this function:

◆ setLmlFileName()

void MonitoringManager::setLmlFileName ( const char *  file)

change lml file name and save modification into mmlIn

Referenced by MonitoringGuiManager::updateLml().

+ Here is the caller graph for this function:

◆ setPmlFileName()

void MonitoringManager::setPmlFileName ( const char *  file)

change pml file name and save modification into mmlIn

Referenced by MonitoringGuiManager::updatePml().

+ Here is the caller graph for this function:

◆ setRefresh()

void MonitoringManager::setRefresh ( double  refresh)

change refresh and save modification into mmlIn

References camitk::refresh().

Referenced by MonitoringGuiManager::updateRefresh().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ simulate()

void MonitoringManager::simulate ( )

perform simulation loop, make tests and save monitors' data into output file

◆ storeOldPositions()

void MonitoringManager::storeOldPositions ( )

store old positions before next step

Referenced by Simulator::updatePositions().

+ Here is the caller graph for this function:

◆ takeLml()

Loads * MonitoringManager::takeLml ( )

This is nearly the same as getLml(), but it also transfers ownership of the pointer.

After this method is called, this instance of MonitoringManager will not delete the pml. It is then the responsability of the caller (the instance which is taking ownership of the Loads). This is useful when transmitting to PMManagerDC's Loads manager for example.

◆ takePml()

PhysicalModel * MonitoringManager::takePml ( )

This is nearly the same as getPml(), but it also transfers ownership of the pointer.

After this method is called, this instance of MonitoringManager will not delete the pml. It is then the responsability of the caller (the instance which is taking ownership of the PhysicalModel). This is useful when transmitting to PMManagerDC Component for example.

Referenced by MMLComponent::connectPml(), and MMLComponent::MMLComponent().

+ Here is the caller graph for this function:

◆ updateComputingTime()

void MonitoringManager::updateComputingTime ( )

add step computing time to total computing time

Referenced by InteractiveMonitoringManager::doMove().

+ Here is the caller graph for this function:

◆ updateCurrentTime()

void MonitoringManager::updateCurrentTime ( )

add dt to current time

Referenced by InteractiveMonitoringManager::doMove().

+ Here is the caller graph for this function:

◆ writeCsv()

void MonitoringManager::writeCsv ( const char *  fileName)

Write all saved monitors'state into csv file.

Referenced by MonitoringGuiManager::saveCsvFile().

+ Here is the caller graph for this function:

◆ writeOutput()

void MonitoringManager::writeOutput ( const char *  fileName)

Write all saved monitors' states into mmlOut file.

Referenced by MonitoringGuiManager::saveMmlOutFile().

+ Here is the caller graph for this function:

Member Data Documentation

◆ computingTime

double MonitoringManager::computingTime
protected

total computing time at current moment

◆ currentTime

double MonitoringManager::currentTime
protected

time at current moment

Referenced by NonInteractiveMonitoringManager::doMove().

◆ dt

double MonitoringManager::dt
protected

integration step

Referenced by InteractiveMonitoringManager::doMove().

◆ mmlIn

std::unique_ptr<mml::MonitoringIn> MonitoringManager::mmlIn
protected

Object representing manager in the file generated by xsdcxx, can be used for serialization.

Referenced by InteractiveMonitoringManager::InteractiveMonitoringManager().

◆ monitors

std::vector<Monitor*> MonitoringManager::monitors
protected

Vector that contains all monitors.

◆ refresh

double MonitoringManager::refresh
protected

refreshing step

◆ simul

Simulator* MonitoringManager::simul
protected

the simulator used for simualtion

Referenced by InteractiveMonitoringManager::init(), and NonInteractiveMonitoringManager::init().

◆ simulatorName

std::string MonitoringManager::simulatorName
protected

name of the simulator

◆ step

int MonitoringManager::step
protected

◆ stepComputingTime

double MonitoringManager::stepComputingTime
protected

computing time of last step

Referenced by InteractiveMonitoringManager::doMove().

◆ times

std::vector<mml::TimeStep*> MonitoringManager::times
protected

Vector that contains information saved by saveMonitors method.


The documentation for this class was generated from the following files: