43{
   47    std::string vCellModel;
   49    std::vector<StimulusSharedPtr> vStimulus;
   54    unsigned int nSteps;
   55 
   56    
   57    vSession = LibUtilities::SessionReader::CreateInstance(argc, argv);
   58    vSession->InitSession();
   59 
   60    try
   61    {
   62        
   64            3, 0, 0.0, 0.0, 0.0);
   66 
   67        
   68        vSession->LoadSolverInfo("CELLMODEL", vCellModel, "");
   69        ASSERTL0(vCellModel != 
"", 
"Cell Model not specified.");
 
   70 
   71        vCell =
   73        vCell->Initialise();
   74 
   75        
   76        vStimulus = Stimulus::LoadStimuli(vSession, vExp);
   77 
   78        
   81        vDeltaT = vSession->GetParameter("TimeStep");
   82        vTime   = 0.0;
   83        nSteps  = vSession->GetParameter("NumSteps");
   84 
   86            vSession->GetFunction("InitialConditions", "u");
   87        vSol[0][0] = e->Evaluate(0.0, 0.0, 0.0, 0.0);
   88 
   89        cout << "#";
   90        for (unsigned int i = 0; i < vCell->GetNumCellVariables(); ++i)
   91        {
   92            cout << "   " << vCell->GetCellVarName(i);
   93        }
   94        cout << endl;
   95 
   96        
   97        for (unsigned int i = 0; i < nSteps; ++i)
   98        {
   99            
  100            vCell->TimeIntegrate(vSol, vWsp, vTime);
  101 
  102            
  103            for (unsigned int i = 0; i < vStimulus.size(); ++i)
  104            {
  105                vStimulus[i]->Update(vWsp, vTime);
  106            }
  107 
  108            
  109            Vmath::Svtvp(1, vDeltaT, vWsp[0], 1, vSol[0], 1, vSol[0], 1);
 
  110 
  111            
  112            vTime += vDeltaT;
  113 
  114            
  115            cout << vTime << "   " << vSol[0][0];
  116            for (unsigned int j = 0; j < vCell->GetNumCellVariables(); ++j)
  117            {
  118                cout << "   " << vCell->GetCellSolution(j)[0];
  119            }
  120            cout << endl;
  121        }
  122 
  123        for (unsigned int i = 0; i < vCell->GetNumCellVariables(); ++i)
  124        {
  125            cout << "# " << vCell->GetCellVarName(i) << "  "
  126                 << vCell->GetCellSolution(i)[0] << endl;
  127        }
  128    }
  129    catch (...)
  130    {
  131        cerr << "An error occured" << endl;
  132    }
  133 
  134    return 0;
  135}
#define ASSERTL0(condition, msg)
 
tBaseSharedPtr CreateInstance(tKey idKey, tParam... args)
Create an instance of the class referred to by idKey.
 
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
 
std::shared_ptr< SessionReader > SessionReaderSharedPtr
 
std::shared_ptr< Equation > EquationSharedPtr
 
std::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
 
std::shared_ptr< PointGeom > PointGeomSharedPtr
 
CellModelFactory & GetCellModelFactory()
 
std::shared_ptr< CellModel > CellModelSharedPtr
A shared pointer to an EquationSystem object.
 
void Svtvp(int n, const T alpha, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Svtvp (scalar times vector plus vector): z = alpha*x + y.