/* * vanderpola_avf.c * * AUTO C file for the vector field named: vanderpola * * This file was generated by the program VFGEN (Version:2.4.0) * Generated on 10-Jul-2008 at 11:41 */ #include #include "auto_f2c.h" /* * FUNC Defines the vector field and its derivatives */ int func(integer ndim_, const doublereal *u_, const integer *icp_, const doublereal *par_, integer ijac_, doublereal *f_, doublereal *dfdu_, doublereal *dfdp_) { integer dfdu__dim1, dfdp__dim1; double x, y; double epsilon, a; dfdu__dim1 = ndim_; dfdp__dim1 = ndim_; x = u_[0]; y = u_[1]; epsilon = par_[0]; a = par_[1]; /* * The vector field */ f_[0] = 1.0/epsilon*( x+-3.3333333333333331e-01*(x*x*x)+y); f_[1] = -x+a; if (ijac_ == 0) return 0; /* * The Jacobian */ ARRAY2D(dfdu_,0,0) = 1.0/epsilon*(-(x*x)+1.0); ARRAY2D(dfdu_,0,1) = 1.0/(epsilon); ARRAY2D(dfdu_,1,0) = -1.0; ARRAY2D(dfdu_,1,1) = 0.0; if (ijac_ == 1) return 0; /* * The Jacobian with respect to the parameters. */ ARRAY2D(dfdp_,0,0) = -1.0/(epsilon*epsilon)*( x+-3.3333333333333331e-01*(x*x*x)+y); ARRAY2D(dfdp_,0,1) = 0.0; ARRAY2D(dfdp_,1,0) = 0.0; ARRAY2D(dfdp_,1,1) = 1.0; return 0; } /* * STPNT Gives a starting point */ int stpnt(integer ndim_, doublereal t_, doublereal *u_, doublereal *par_) { double x, y; double epsilon, a; /* Change the parameter values and the starting point to correct values! */ epsilon = 1.0000000000000000e-02; a = 0.0000000000000000e+00; x = 0.0000000000000000e+00; y = 0.0000000000000000e+00; par_[0] = epsilon; par_[1] = a; u_[0] = x; u_[1] = y; return 0; } /* * The remaining functions are just stubs. * You will have to edit these by hand if you need these functions. */ /* * BCND Defines the boundary conditions */ int bcnd(integer ndim_, const doublereal *par_, const integer *icp_, integer nbc_, const doublereal *u0_, const doublereal *u1_, integer ijac_, doublereal *fb_, doublereal *dbc_) { return 0; } /* * ICND Defines the integral conditions */ int icnd(integer ndim_, const doublereal *par_, const integer *icp_, integer nint_, const doublereal *u_, const doublereal *uold_, const doublereal *udot_, const doublereal *upold_, integer ijac_, doublereal *fi_, doublereal *dint_) { return 0; } /* * FOPT */ int fopt(integer ndim_, const doublereal *u_, const integer *icp_, const doublereal *par_, integer ijac_, doublereal *fs_, doublereal *dfdu_, doublereal *dfdp_) { return 0; } /* * PVLS */ int pvls(integer ndim_, const doublereal *u_, doublereal *par_) { return 0; }