Program Listing for File backwardproblem.h
↰ Return to documentation for file (include/amici/backwardproblem.h
)
#ifndef AMICI_BACKWARDPROBLEM_H
#define AMICI_BACKWARDPROBLEM_H
#include "amici/defines.h"
#include "amici/vector.h"
#include <vector>
namespace amici {
class ExpData;
class Solver;
class Model;
class ForwardProblem;
class SteadystateProblem;
class BackwardProblem {
public:
explicit BackwardProblem(
ForwardProblem const& fwd, SteadystateProblem const* posteq
);
void workBackwardProblem();
realtype gett() const { return t_; }
int getwhich() const { return which; }
int* getwhichptr() { return &which; }
std::vector<realtype> const& getdJydx() const { return dJydx_; }
AmiVector const& getAdjointState() const { return xB_; }
AmiVector const& getAdjointQuadrature() const { return xQB_; }
private:
void handleEventB();
void handleDataPointB(int it);
realtype getTnext(int it);
Model* model_;
Solver* solver_;
ExpData const* edata_;
realtype t_;
AmiVector xB_;
AmiVector dxB_;
AmiVector xQB_;
std::vector<AmiVector> x_disc_;
std::vector<AmiVector> xdot_disc_;
std::vector<AmiVector> xdot_old_disc_;
AmiVectorArray sx0_;
std::vector<int> nroots_;
std::vector<realtype> discs_;
int which = 0;
std::vector<std::vector<int>> root_idx_;
std::vector<realtype> dJydx_;
std::vector<realtype> const dJzdx_;
};
} // namespace amici
#endif // BACKWARDPROBLEM_H