36#include "CellMLLoader.hpp"
39#include "EulerIvpOdeSolver.hpp"
42 : mCellMLFile(rCellMLFile),
43 mOutputFileHandler(rOutputFileHandler),
46 mUseCvode(boost::logic::indeterminate)
56 if (boost::logic::indeterminate(
mUseCvode))
61 std::vector<std::string>::iterator it = std::find(
mOptions.begin(),
mOptions.end(),
"--cvode");
62 if (!makeCvodeCell && it !=
mOptions.end())
66 if (makeCvodeCell && it ==
mOptions.end())
78 EXCEPTION(
"You cannot call both LoadCvodeCell and LoadCardiacCell on the same CellMLLoader.");
82 DynamicCellModelLoaderPtr p_loader =
mpConverter->Convert(copied_model);
85 boost::shared_ptr<AbstractStimulusFunction> p_stimulus;
86 boost::shared_ptr<EulerIvpOdeSolver> p_solver;
105 boost::shared_ptr<AbstractCardiacCell> p_model(
dynamic_cast<AbstractCardiacCell*
>(p_loaded_cell));
113 boost::shared_ptr<AbstractCvodeCell> p_model(
dynamic_cast<AbstractCvodeCell*
>(p_loaded_cell));
#define EXCEPTION(message)
bool HasCellMLDefaultStimulus()
virtual boost::shared_ptr< RegularStimulus > UseCellMLDefaultStimulus()
std::vector< std::string > mOptions
boost::shared_ptr< AbstractCvodeCell > LoadCvodeCell(void)
boost::shared_ptr< AbstractCardiacCell > LoadCardiacCell(void)
boost::logic::tribool mUseCvode
AbstractCardiacCellInterface * LoadCellMLFile(bool makeCvodeCell)
CellMLLoader(const FileFinder &rCellMLFile, const OutputFileHandler &rOutputFileHandler, const std::vector< std::string > &rOptions)
boost::shared_ptr< CellMLToSharedLibraryConverter > mpConverter
OutputFileHandler mOutputFileHandler
std::string GetLeafNameNoExtension() const
std::string GetLeafName() const
FileFinder CopyFileTo(const FileFinder &rSourceFile) const
FileFinder FindFile(std::string leafName) const