Ignore:
Timestamp:
Oct 26, 2006, 5:31:27 PM (19 years ago)
Author:
steve
Message:

Added parameter alpha_balance to config.py to deal with large jumps in bed

Location:
anuga_core/source/anuga/shallow_water
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • anuga_core/source/anuga/shallow_water/shallow_water_domain.py

    r3848 r3876  
    9292from anuga.config import g, beta_h, beta_w, beta_w_dry,\
    9393     beta_uh, beta_uh_dry, beta_vh, beta_vh_dry
     94from anuga.config import alpha_balance
    9495
    9596
     
    143144        self.beta_vh_dry = beta_vh_dry
    144145        self.beta_h      = beta_h
     146        self.alpha_balance = alpha_balance
    145147
    146148        self.flux_function = flux_function_central
     
    12121214
    12131215    from shallow_water_ext import balance_deep_and_shallow
    1214     balance_deep_and_shallow(wc, zc, hc, wv, zv, hv, hvbar,
     1216    balance_deep_and_shallow(domain, wc, zc, hc, wv, zv, hv, hvbar,
    12151217                             xmomc, ymomc, xmomv, ymomv)
    12161218
  • anuga_core/source/anuga/shallow_water/shallow_water_ext.c

    r3789 r3876  
    423423                              double* ymomc,
    424424                              double* xmomv,
    425                               double* ymomv) {
     425                              double* ymomv,
     426                              double alpha_balance) {
    426427
    427428  int k, k3, i;
     
    463464      //else
    464465      //  alpha = max( min( hc[k]/dz, 1.0), 0.0 );
    465       alpha = max( min( 2.0*hmin/dz, 1.0), 0.0 );
     466      alpha = max( min( alpha_balance*hmin/dz, 1.0), 0.0 );
    466467    else
    467468      alpha = 1.0;  //Flat bed
     
    15691570    *xmomv,
    15701571    *ymomv;
     1572 
     1573  PyObject *domain, *Tmp;
     1574   
     1575  double alpha_balance = 2.0;
    15711576
    15721577  int N; //, err;
    15731578
    15741579  // Convert Python arguments to C
    1575   if (!PyArg_ParseTuple(args, "OOOOOOOOOOO",
     1580  if (!PyArg_ParseTuple(args, "OOOOOOOOOOOO",
     1581                        &domain,
    15761582                        &wc, &zc, &hc,
    15771583                        &wv, &zv, &hv, &hvbar,
     
    15811587  } 
    15821588         
     1589  // Pull out parameters
     1590  Tmp = PyObject_GetAttrString(domain, "alpha_balance");
     1591  if (!Tmp) {
     1592    PyErr_SetString(PyExc_RuntimeError, "shallow_water_ext.c: balance_deep_and_shallow could not obtain object alpha_balance from domain");
     1593    return NULL;
     1594  } 
     1595  alpha_balance = PyFloat_AsDouble(Tmp);
     1596  Py_DECREF(Tmp);
     1597
    15831598
    15841599  N = wc -> dimensions[0];
     
    15921607                            (double*) hv -> data,
    15931608                            (double*) hvbar -> data,
    1594                             (double*) xmomc -> data,
     1609                                (double*) xmomc -> data,
    15951610                            (double*) ymomc -> data,
    15961611                            (double*) xmomv -> data,
    1597                             (double*) ymomv -> data);
     1612                            (double*) ymomv -> data,
     1613                            alpha_balance);
    15981614
    15991615
Note: See TracChangeset for help on using the changeset viewer.