8 #ifndef CT_DAE_Solver_H
9 #define CT_DAE_Solver_H
27 virtual ~Jacobian() {}
28 virtual bool supplied() {
31 virtual bool isBanded() {
34 virtual int lowerBandWidth() {
37 virtual int upperBandWidth() {
42 class BandedJacobian :
public Jacobian
45 BandedJacobian(
int ml,
int mu) {
49 virtual bool supplied() {
52 virtual bool isBanded() {
55 virtual int lowerBandWidth() {
58 virtual int upperBandWidth() {
65 const int cDirect = 0;
66 const int cKrylov = 1;
91 warn(
"setTolerances");
99 warn(
"setTolerances");
110 virtual void setLinearSolverType(
int solverType) {
111 warn(
"setLinearSolverType");
114 virtual void setDenseLinearSolver() {
115 warn(
"setDenseLinearSolver");
118 virtual void setBandedLinearSolver(
int m_upper,
int m_lower) {
119 warn(
"setBandedLinearSolver");
121 virtual void setMaxStepSize(doublereal dtmax) {
122 warn(
"setMaxStepSize");
124 virtual void setMaxOrder(
int n) {
127 virtual void setMaxNumSteps(
int n) {
128 warn(
"setMaxNumSteps");
130 virtual void setInitialStepSize(doublereal h0) {
131 warn(
"setInitialStepSize");
133 virtual void setStopTime(doublereal tstop) {
136 virtual void setMaxErrTestFailures(
int n) {
137 warn(
"setMaxErrTestFailures");
139 virtual void setMaxNonlinIterations(
int n) {
140 warn(
"setMaxNonlinIterations");
142 virtual void setMaxNonlinConvFailures(
int n) {
143 warn(
"setMaxNonlinConvFailures");
145 virtual void inclAlgebraicInErrorTest(
bool yesno) {
146 warn(
"inclAlgebraicInErrorTest");
157 warn(
"correctInitial_Y_given_Yp");
169 warn(
"correctInitial_YaYp_given_Yd");
175 virtual int solve(doublereal tout) {
183 virtual doublereal
step(doublereal tout) {
196 virtual void init(doublereal t0) {}
202 warn(
"setInputParameter");
209 warn(
"getOutputParameter");
219 virtual const doublereal* solutionVector()
const {
220 warn(
"solutionVector");
230 virtual const doublereal* derivativeVector()
const {
231 warn(
"derivativeVector");
239 ResidJacEval& m_resid;
247 void warn(std::string msg)
const {
248 writelog(
">>>> Warning: method "+msg+
" of base class "
249 +
"DAE_Solver called. Nothing done.\n");
263 DAE_Solver*
newDAE_Solver(std::string itype, ResidJacEval& f);