Program Listing for File standaloneSimulator.h

Return to documentation for file (include/parpeamici/standaloneSimulator.h)

#ifndef STANDALONESIMULATOR_H
#define STANDALONESIMULATOR_H

#include <parpeamici/multiConditionProblem.h>
#include <parpecommon/parpeConfig.h>

#include <amici/amici.h>

namespace parpe {

class StandaloneSimulator
{
  public:
    explicit StandaloneSimulator(MultiConditionDataProvider* dp);

    int run(const std::string& resultFile,
            const std::string& resultPath,
            std::map<std::string, double> &optimizationParameters,
            LoadBalancerMaster* loadBalancer,
            const H5::H5File& conditionFile,
            std::string conditionFilePath, bool computeInnerParameters);

    void messageHandler(std::vector<char>& buffer, int jobId);

  private:
    AmiciSimulationRunner::AmiciResultPackageSimple
    runSimulation(int conditionIdx, amici::Solver& solver, amici::Model& model);

    MultiConditionDataProvider* dataProvider = nullptr;

    int maxSimulationsPerPackage = 8;
};

// enum class SimulatorOpType {finalParameters};

std::pair<int, double>
getFunctionEvaluationWithMinimalCost(std::string const& datasetPath,
                                     H5::H5File const& file);

std::vector<double>
getFinalParameters(const std::string& startIndex, const H5::H5File& file);

std::vector<std::vector<double>>
getParameterTrajectory(const std::string& startIndex, H5::H5File const& file);

int
getNumStarts(const H5::H5File& file, const std::string& rootPath = "/");

int
runFinalParameters(parpe::StandaloneSimulator& sim,
                   const std::string& conditionFileName,
                   const std::string&,
                   const std::string& parameterFileName,
                   const std::string& parameterFilePath,
                   const std::string& resultFileName,
                   const std::string& resultPath,
                   parpe::LoadBalancerMaster* loadBalancer,
                   bool computeInnerParameters);

int
runAlongTrajectory(parpe::StandaloneSimulator& sim,
                   const std::string& conditionFileName,
                   const std::string& conditionFilePath,
                   const std::string& parameterFileName,
                   const std::string& parameterFilePath,
                   std::string const& resultFileName,
                   std::string const& resultPath,
                   parpe::LoadBalancerMaster* loadBalancer,
                   bool computeInnerParameters);

int
runSimulator(MultiConditionDataProvider& dp,
             std::string const& simulationMode,
             const std::string& conditionFileName,
             const std::string& conditionFilePath,
             const std::string& parameterFileName,
             const std::string& parameterFilePath,
             std::string const& resultFileName,
             std::string const& resultPath,
             bool computeInnerParameters);

} // namespace parpe

#endif // STANDALONESIMULATOR_H