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(const ForwardProblem &fwd,
const SteadystateProblem *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_;
const ExpData *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_;
const std::vector<realtype> dJzdx_;
};
} // namespace amici
#endif // BACKWARDPROBLEM_H