Changeset 515 for inundation/ga/storm_surge/pyvolution/shallow_water_ext.c
- Timestamp:
- Nov 9, 2004, 10:41:43 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
inundation/ga/storm_surge/pyvolution/shallow_water_ext.c
r502 r515 156 156 157 157 void _manning_friction(double g, double eps, int N, 158 double* h, double* uh, double* vh, 158 double* w, double* z, 159 double* uh, double* vh, 159 160 double* eta, double* xmom, double* ymom) { 160 161 161 162 int k; 162 double S ;163 double S, h; 163 164 164 165 for (k=0; k<N; k++) { 165 if (h[k] >= eps) { 166 S = -g * eta[k]*eta[k] * sqrt((uh[k]*uh[k] + vh[k]*vh[k])); 167 S /= pow(h[k], 7.0/3); 168 169 //Update momentum 170 xmom[k] += S*uh[k]; 171 ymom[k] += S*vh[k]; 166 if (eta[k] > eps) { 167 h = w[k]-z[k]; 168 if (h >= eps) { 169 S = -g * eta[k]*eta[k] * sqrt((uh[k]*uh[k] + vh[k]*vh[k])); 170 S /= pow(h, 7.0/3); //Expensive 171 //S /= h*h*(1 + h/3.0 - h*h/9.0); //FIXME: Use a Taylor expansion 172 //FIXME: This will save a lot of time 173 174 //Update momentum 175 xmom[k] += S*uh[k]; 176 ymom[k] += S*vh[k]; 177 } 172 178 } 173 179 } 174 175 180 } 176 181 … … 344 349 345 350 346 PyArrayObject * h, *uh, *vh, *eta, *xmom, *ymom;351 PyArrayObject *w, *z, *uh, *vh, *eta, *xmom, *ymom; 347 352 int N; 348 353 double g, eps; 349 354 350 if (!PyArg_ParseTuple(args, "ddOOOOOO ",351 &g, &eps, & h, &uh, &vh, &eta,355 if (!PyArg_ParseTuple(args, "ddOOOOOOO", 356 &g, &eps, &w, &z, &uh, &vh, &eta, 352 357 &xmom, &ymom)) 353 358 return NULL; 354 359 355 N = h-> dimensions[0];360 N = w -> dimensions[0]; 356 361 _manning_friction(g, eps, N, 357 (double*) h -> data, 362 (double*) w -> data, 363 (double*) z -> data, 358 364 (double*) uh -> data, 359 365 (double*) vh -> data,
Note: See TracChangeset
for help on using the changeset viewer.