home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / fractal / kaos.lha / modellib / taylorcouette_def.c < prev    next >
Encoding:
Text File  |  1990-01-16  |  4.4 KB  |  200 lines

  1.  
  2. int taylorcouette_init()
  3. {
  4.     title_label = "D4 Symmetry Broken Oscillator - General";
  5.  
  6.     mapping_on = 0;
  7.     inverse_on = 1;
  8.     fderiv_on = 0;
  9.     enable_polar = 0;
  10.     enable_period = 0;
  11.     
  12.     var_dim = 6;
  13.     param_dim = 16;
  14.     func_dim = 2;
  15.  
  16.     (void) malloc_init();
  17.  
  18.     var_label[0] = "x0";
  19.     var_label[1] = "y0";
  20.     var_label[2] = "x1";
  21.     var_label[3] = "y1";
  22.     param_label[0] = "cr1";
  23.     param_label[1] = "cr2";
  24.     param_label[2] = "pr1";
  25.     param_label[3] = "pr2";
  26.     param_label[4] = "crho";
  27.     param_label[5] = "cn";
  28.     param_label[6] = "c2";
  29.     param_label[7] = "c3";
  30.     param_label[8] = "prho";
  31.     param_label[9] = "pn";
  32.     param_label[10] = "p2";
  33.     param_label[11] = "q2";
  34.     param_label[12] = "p3";
  35.     param_label[13] = "q3";
  36.     param_label[14] = "mu1";
  37.     param_label[15] = "mu2";
  38.     func_label[0] = "t";
  39.     func_label[1] = "~";
  40.  
  41.     param[0] = 2;
  42.     param[1] = 0;
  43.     param[2] = 0;
  44.     param[3] = 0;
  45.     param[4] = 0;
  46.     param[5] = 0;
  47.     param[6] = 0;
  48.     param[7] = 0;
  49.     param[8] = 0;
  50.     param[9] = 0;
  51.     param[10] = 0;
  52.     param[11] = 0;
  53.     param[12] = 0;
  54.     param[13] = 0;
  55.     param[14] = 0;
  56.     param[15] = 0;
  57.  
  58.     var_i[0] = 0;
  59.     var_i[1] = 0;
  60.     var_i[2] = 0;
  61.     var_i[3] = 0;
  62.     var_i[4] = 0;
  63.     var_i[5] = 0;
  64.  
  65.     param_min[0]= -5; param_max[0]= 5;
  66.     param_min[1]= -5; param_max[1]= 5;
  67.     param_min[2]= -5; param_max[2]= 5;
  68.     param_min[3]= -5; param_max[3]= 5;
  69.     param_min[4]= -5; param_max[4]= 5;
  70.     param_min[5]= -5; param_max[5]= 5;
  71.     param_min[6]= -5; param_max[6]= 5;
  72.     param_min[7]= -5; param_max[7]= 5;
  73.     param_min[8]= -5; param_max[8]= 5;
  74.     param_min[9]= -5; param_max[9]= 5;
  75.     param_min[10]= -5; param_max[10]= 5;
  76.     param_min[11]= -5; param_max[11]= 5;
  77.     param_min[12]= -5; param_max[12]= 5;
  78.     param_min[13]= -5; param_max[13]= 5;
  79.     param_min[14]= -5; param_max[14]= 5;
  80.     param_min[15]= -5; param_max[15]= 5;
  81.     var_min[0]= -5; var_max[0]= 5;
  82.     var_min[1]= -5; var_max[1]= 5;
  83.     var_min[2]= -5; var_max[2]= 5;
  84.     var_min[3]= -5; var_max[3]= 5;
  85.     var_min[4]= -5; var_max[4]= 5;
  86.     var_min[5]= -5; var_max[5]= 5;
  87.     func_min[0]= -5; func_max[0]= 5;
  88.  
  89.     f_p = taylorcouette_f;
  90.     func_p = taylorcouette_func;
  91. }
  92. int taylorcouette_f(f,index,x,p,t,dim)
  93. int index,dim;
  94. double f[],x[],p[],t;
  95. {
  96.     double cr1,cr2,pr1,pr2,crho,cn,c2,c3,prho,pn,p2,q2,p3,q3,mu1,mu2;
  97.     double x0,y0,x1,y1,x2,y2,dx0,dy0,dx1,dy1,dx2,dy2;
  98.     double x0sq,x1sq,x0cub,x1cub,x2sq,x2cub,y0sq,y1sq,y2sq,y2cub,y0cub,y1cub;
  99.     cr1 = p[0];
  100.     cr2 = p[1];
  101.     pr1 = p[2];
  102.     pr2 = p[3];
  103.     crho = p[4];
  104.     cn = p[5];
  105.     c2 = p[6];
  106.     c3 = p[7];
  107.     prho = p[8];
  108.     pn = p[9];
  109.     p2 = p[10];
  110.     q2 = p[11];
  111.     p3 = p[12];
  112.     q3 = p[13];
  113.     mu1= p[14];
  114.     mu2 = p[15];
  115.     x0 = x[0];
  116.     y0 = x[1];
  117.     x1 = x[2];
  118.     y1 = x[3];
  119.     x2 = x[4];
  120.     y2 = x[5];
  121.     x0sq=x0*x0;
  122.     x1sq=x1*x1;
  123.     x2sq=x2*x2;
  124.     x0cub=x0*x0sq;
  125.     x1cub=x1*x1sq;
  126.     x2cub=x2*x2sq;
  127.     y0sq=y0*y0;
  128.     y1sq=y1*y1;
  129.     y2sq=y2*y2;
  130.     y0cub=y0*y0sq;
  131.     y1cub=y1*y1sq;
  132.     y2cub=y2*y2sq;
  133.  
  134.     dx0 = mu1*cr1*x0 + mu2*cr2*x0 + crho*x0cub +
  135.     cn*x0*x1sq + c3*x0*x1*x2 + cn*x0*x2sq +
  136.     c2*x1sq*y0 - c2*x2sq*y0 + crho*x0*y0sq
  137.     + c3*x2*y0*y1 + cn*x0*y1sq + c2*y0*y1sq -
  138.     c3*x1*y0*y2 + c3*x0*y1*y2 + cn*x0*y2sq -
  139.     c2*y0*y2sq;
  140.  
  141.     dy0 = -(c2*x0*x1sq) + c2*x0*x2sq + mu1*cr1*y0
  142.     + mu2*cr2*y0 + crho*x0sq*y0 + cn*x1sq*y0 -
  143.     c3*x1*x2*y0 + cn*x2sq*y0 + crho*y0cub +
  144.     c3*x0*x2*y1 - c2*x0*y1sq + cn*y0*y1sq -
  145.     c3*x0*x1*y2 - c3*y0*y1*y2 + c2*x0*y2sq +
  146.     cn*y0*y2sq;
  147.  
  148.     dx1 = mu1*pr1*x1 + mu2*pr2*x1 + prho*x0sq*x1 -
  149.     p2*x1cub + pn*x1cub + p3*x0sq*x2 +
  150.     p2*x1*x2sq + pn*x1*x2sq - 2*q3*x0*x2*y0 +
  151.     prho*x1*y0sq - p3*x2*y0sq + q2*x1sq*y1
  152.     - q2*x2sq*y1 - p2*x1*y1sq + pn*x1*y1sq
  153.     + q2*y1cub - q3*x0sq*y2 - 2*p3*x0*y0*y2 +
  154.     q3*y0sq*y2 + p2*x1*y2sq + pn*x1*y2sq -
  155.     q2*y1*y2sq;
  156.  
  157.     dy1 = -(q2*x1cub) + q3*x0sq*x2 +
  158.     q2*x1*x2sq + 2*p3*x0*x2*y0
  159.     - q3*x2*y0sq + mu1*pr1*y1 + mu2*pr2*y1 +
  160.     prho*x0sq*y1 - p2*x1sq*y1 + pn*x1sq*y1
  161.     + p2*x2sq*y1 + pn*x2sq*y1 +
  162.     prho*y0sq*y1 - q2*x1*y1sq - p2*y1cub +
  163.     pn*y1cub + p3*x0sq*y2 - 2*q3*x0*y0*y2 -
  164.     p3*y0sq*y2 + q2*x1*y2sq + p2*y1*y2sq
  165.     + pn*y1*y2sq;
  166.  
  167.     dx2 = p3*x0sq*x1 + mu1*pr1*x2 + mu2*pr2*x2 +
  168.     prho*x0sq*x2 + p2*x1sq*x2 + pn*x1sq*x2
  169.     - p2*x2cub + pn*x2cub + 2*q3*x0*x1*y0 -
  170.     p3*x1*y0sq + prho*x2*y0sq - q3*x0sq*y1
  171.     + 2*p3*x0*y0*y1
  172.     + q3*y0sq*y1 + p2*x2*y1sq + pn*x2*y1sq
  173.     - q2*x1sq*y2
  174.     + q2*x2sq*y2 - q2*y1sq*y2 - p2*x2*y2sq
  175.     + pn*x2*y2sq
  176.     + q2*y2cub;
  177.  
  178.     dy2 = q3*x0sq*x1 + q2*x1sq*x2 - q2*x2cub
  179.     - 2*p3*x0*x1*y0 - q3*x1*y0sq + p3*x0sq*y1 +
  180.     2*q3*x0*y0*y1 - p3*y0sq*y1 + q2*x2*y1sq +
  181.     mu1*pr1*y2 + mu2*pr2*y2 + prho*x0sq*y2 +
  182.     p2*x1sq*y2 + pn*x1sq*y2 - p2*x2sq*y2 +
  183.     pn*x2sq*y2 + prho*y0sq*y2 + p2*y1sq*y2
  184.     + pn*y1sq*y2 - q2*x2*y2sq - p2*y2cub
  185.     + pn*y2cub;
  186.  
  187.     f[0]=dx0;
  188.     f[1]=dy0;
  189.     f[2]=dx1;
  190.     f[3]=dy1;
  191.     f[4]=dx2;
  192.     f[5]=dy2;
  193. }
  194. int taylorcouette_func(f,x,p,t,dim)
  195. double f[],x[],p[],t;
  196. int dim;
  197. {
  198.     f[0] = t;
  199. }
  200.