MoDeNa  1.0
Software framework facilitating sequential multi-scale modelling
coalescence.h
Go to the documentation of this file.
1 
15 void coalescenceSource(double *, double *, double *, int &, int *, double &);
16 
17 void coalescenceSource(double *sc, double *we, double *vi, int &nNodes, int *mOrder, double &beta0)
18 {
19 
20 
21  int counter = 0;
22  double k; // To hold the moment order
23  int i, j;
24 
25 // coalescence kernel beta0*(v(i) + v(j))
26 
27  while(counter<2*nNodes)
28  {
29  sc[counter] = 0.0;
30  k = static_cast<double>(mOrder[counter]);
31 
32  if(counter == 0)
33  {
34  for(i=0;i<nNodes;i++)
35  {
36  for(j=0;j<nNodes;j++)
37  {
38  if (vi[i]*vi[j] != 0)
39  {
40  sc[counter] += 0.5*beta0*(vi[i]+vi[j])*we[i]*we[j]*(-1.0);
41  }
42  else
43  {
44  sc[counter] = 0.0;
45  }
46  }
47  }
48  }
49  else if(counter == 1)
50  {
51  sc[counter] = 0.0;
52  }
53  else
54  {
55  for(i=0;i<nNodes;i++)
56  {
57  for(j=0;j<nNodes;j++)
58  {
59  if(vi[i]*vi[j] != 0)
60  {
61  sc[counter] += 0.5*beta0*(vi[i]+vi[j])*we[i]*we[j]*(pow((vi[i]+vi[j]),k)-pow(vi[i],k)-pow(vi[j],k));
62  }
63  else
64  {
65  sc[counter] = 0.0;
66  }
67  }
68  }
69  }
70  counter++;
71  } // End of while loop
72 
73 }
74 
75 /*Binomial coefficient or kChoosen
76 int choose(int, int);
77 
78 int choose(int k, int n)
79 {
80  if(n == 0)
81  {
82  return 1;
83  }
84  else
85  {
86  return (k*choose(k-1, n-1))/k;
87  }
88 
89 }*/
void coalescenceSource(double *, double *, double *, int &, int *, double &)
Definition: coalescence.h:17