proteus  1.8.1
C/C++/Fortran libraries
cnumericalFlux.c
Go to the documentation of this file.
1 /* Generated by Cython 0.29.30 */
2 
3 #ifndef PY_SSIZE_T_CLEAN
4 #define PY_SSIZE_T_CLEAN
5 #endif /* PY_SSIZE_T_CLEAN */
6 #include "Python.h"
7 #ifndef Py_PYTHON_H
8  #error Python headers needed to compile C extensions, please install development version of Python.
9 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
10  #error Cython requires Python 2.6+ or Python 3.3+.
11 #else
12 #define CYTHON_ABI "0_29_30"
13 #define CYTHON_HEX_VERSION 0x001D1EF0
14 #define CYTHON_FUTURE_DIVISION 0
15 #include <stddef.h>
16 #ifndef offsetof
17  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
18 #endif
19 #if !defined(WIN32) && !defined(MS_WINDOWS)
20  #ifndef __stdcall
21  #define __stdcall
22  #endif
23  #ifndef __cdecl
24  #define __cdecl
25  #endif
26  #ifndef __fastcall
27  #define __fastcall
28  #endif
29 #endif
30 #ifndef DL_IMPORT
31  #define DL_IMPORT(t) t
32 #endif
33 #ifndef DL_EXPORT
34  #define DL_EXPORT(t) t
35 #endif
36 #define __PYX_COMMA ,
37 #ifndef HAVE_LONG_LONG
38  #if PY_VERSION_HEX >= 0x02070000
39  #define HAVE_LONG_LONG
40  #endif
41 #endif
42 #ifndef PY_LONG_LONG
43  #define PY_LONG_LONG LONG_LONG
44 #endif
45 #ifndef Py_HUGE_VAL
46  #define Py_HUGE_VAL HUGE_VAL
47 #endif
48 #ifdef PYPY_VERSION
49  #define CYTHON_COMPILING_IN_PYPY 1
50  #define CYTHON_COMPILING_IN_PYSTON 0
51  #define CYTHON_COMPILING_IN_CPYTHON 0
52  #undef CYTHON_USE_TYPE_SLOTS
53  #define CYTHON_USE_TYPE_SLOTS 0
54  #undef CYTHON_USE_PYTYPE_LOOKUP
55  #define CYTHON_USE_PYTYPE_LOOKUP 0
56  #if PY_VERSION_HEX < 0x03050000
57  #undef CYTHON_USE_ASYNC_SLOTS
58  #define CYTHON_USE_ASYNC_SLOTS 0
59  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
60  #define CYTHON_USE_ASYNC_SLOTS 1
61  #endif
62  #undef CYTHON_USE_PYLIST_INTERNALS
63  #define CYTHON_USE_PYLIST_INTERNALS 0
64  #undef CYTHON_USE_UNICODE_INTERNALS
65  #define CYTHON_USE_UNICODE_INTERNALS 0
66  #undef CYTHON_USE_UNICODE_WRITER
67  #define CYTHON_USE_UNICODE_WRITER 0
68  #undef CYTHON_USE_PYLONG_INTERNALS
69  #define CYTHON_USE_PYLONG_INTERNALS 0
70  #undef CYTHON_AVOID_BORROWED_REFS
71  #define CYTHON_AVOID_BORROWED_REFS 1
72  #undef CYTHON_ASSUME_SAFE_MACROS
73  #define CYTHON_ASSUME_SAFE_MACROS 0
74  #undef CYTHON_UNPACK_METHODS
75  #define CYTHON_UNPACK_METHODS 0
76  #undef CYTHON_FAST_THREAD_STATE
77  #define CYTHON_FAST_THREAD_STATE 0
78  #undef CYTHON_FAST_PYCALL
79  #define CYTHON_FAST_PYCALL 0
80  #undef CYTHON_PEP489_MULTI_PHASE_INIT
81  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
82  #undef CYTHON_USE_TP_FINALIZE
83  #define CYTHON_USE_TP_FINALIZE 0
84  #undef CYTHON_USE_DICT_VERSIONS
85  #define CYTHON_USE_DICT_VERSIONS 0
86  #undef CYTHON_USE_EXC_INFO_STACK
87  #define CYTHON_USE_EXC_INFO_STACK 0
88  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
89  #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_HEX >= 0x07030900)
90  #endif
91 #elif defined(PYSTON_VERSION)
92  #define CYTHON_COMPILING_IN_PYPY 0
93  #define CYTHON_COMPILING_IN_PYSTON 1
94  #define CYTHON_COMPILING_IN_CPYTHON 0
95  #ifndef CYTHON_USE_TYPE_SLOTS
96  #define CYTHON_USE_TYPE_SLOTS 1
97  #endif
98  #undef CYTHON_USE_PYTYPE_LOOKUP
99  #define CYTHON_USE_PYTYPE_LOOKUP 0
100  #undef CYTHON_USE_ASYNC_SLOTS
101  #define CYTHON_USE_ASYNC_SLOTS 0
102  #undef CYTHON_USE_PYLIST_INTERNALS
103  #define CYTHON_USE_PYLIST_INTERNALS 0
104  #ifndef CYTHON_USE_UNICODE_INTERNALS
105  #define CYTHON_USE_UNICODE_INTERNALS 1
106  #endif
107  #undef CYTHON_USE_UNICODE_WRITER
108  #define CYTHON_USE_UNICODE_WRITER 0
109  #undef CYTHON_USE_PYLONG_INTERNALS
110  #define CYTHON_USE_PYLONG_INTERNALS 0
111  #ifndef CYTHON_AVOID_BORROWED_REFS
112  #define CYTHON_AVOID_BORROWED_REFS 0
113  #endif
114  #ifndef CYTHON_ASSUME_SAFE_MACROS
115  #define CYTHON_ASSUME_SAFE_MACROS 1
116  #endif
117  #ifndef CYTHON_UNPACK_METHODS
118  #define CYTHON_UNPACK_METHODS 1
119  #endif
120  #undef CYTHON_FAST_THREAD_STATE
121  #define CYTHON_FAST_THREAD_STATE 0
122  #undef CYTHON_FAST_PYCALL
123  #define CYTHON_FAST_PYCALL 0
124  #undef CYTHON_PEP489_MULTI_PHASE_INIT
125  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
126  #undef CYTHON_USE_TP_FINALIZE
127  #define CYTHON_USE_TP_FINALIZE 0
128  #undef CYTHON_USE_DICT_VERSIONS
129  #define CYTHON_USE_DICT_VERSIONS 0
130  #undef CYTHON_USE_EXC_INFO_STACK
131  #define CYTHON_USE_EXC_INFO_STACK 0
132  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
133  #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
134  #endif
135 #else
136  #define CYTHON_COMPILING_IN_PYPY 0
137  #define CYTHON_COMPILING_IN_PYSTON 0
138  #define CYTHON_COMPILING_IN_CPYTHON 1
139  #ifndef CYTHON_USE_TYPE_SLOTS
140  #define CYTHON_USE_TYPE_SLOTS 1
141  #endif
142  #if PY_VERSION_HEX < 0x02070000
143  #undef CYTHON_USE_PYTYPE_LOOKUP
144  #define CYTHON_USE_PYTYPE_LOOKUP 0
145  #elif !defined(CYTHON_USE_PYTYPE_LOOKUP)
146  #define CYTHON_USE_PYTYPE_LOOKUP 1
147  #endif
148  #if PY_MAJOR_VERSION < 3
149  #undef CYTHON_USE_ASYNC_SLOTS
150  #define CYTHON_USE_ASYNC_SLOTS 0
151  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
152  #define CYTHON_USE_ASYNC_SLOTS 1
153  #endif
154  #if PY_VERSION_HEX < 0x02070000
155  #undef CYTHON_USE_PYLONG_INTERNALS
156  #define CYTHON_USE_PYLONG_INTERNALS 0
157  #elif !defined(CYTHON_USE_PYLONG_INTERNALS)
158  #define CYTHON_USE_PYLONG_INTERNALS 1
159  #endif
160  #ifndef CYTHON_USE_PYLIST_INTERNALS
161  #define CYTHON_USE_PYLIST_INTERNALS 1
162  #endif
163  #ifndef CYTHON_USE_UNICODE_INTERNALS
164  #define CYTHON_USE_UNICODE_INTERNALS 1
165  #endif
166  #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
167  #undef CYTHON_USE_UNICODE_WRITER
168  #define CYTHON_USE_UNICODE_WRITER 0
169  #elif !defined(CYTHON_USE_UNICODE_WRITER)
170  #define CYTHON_USE_UNICODE_WRITER 1
171  #endif
172  #ifndef CYTHON_AVOID_BORROWED_REFS
173  #define CYTHON_AVOID_BORROWED_REFS 0
174  #endif
175  #ifndef CYTHON_ASSUME_SAFE_MACROS
176  #define CYTHON_ASSUME_SAFE_MACROS 1
177  #endif
178  #ifndef CYTHON_UNPACK_METHODS
179  #define CYTHON_UNPACK_METHODS 1
180  #endif
181  #if PY_VERSION_HEX >= 0x030B00A4
182  #undef CYTHON_FAST_THREAD_STATE
183  #define CYTHON_FAST_THREAD_STATE 0
184  #elif !defined(CYTHON_FAST_THREAD_STATE)
185  #define CYTHON_FAST_THREAD_STATE 1
186  #endif
187  #ifndef CYTHON_FAST_PYCALL
188  #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030A0000)
189  #endif
190  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
191  #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
192  #endif
193  #ifndef CYTHON_USE_TP_FINALIZE
194  #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1)
195  #endif
196  #ifndef CYTHON_USE_DICT_VERSIONS
197  #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1)
198  #endif
199  #if PY_VERSION_HEX >= 0x030B00A4
200  #undef CYTHON_USE_EXC_INFO_STACK
201  #define CYTHON_USE_EXC_INFO_STACK 0
202  #elif !defined(CYTHON_USE_EXC_INFO_STACK)
203  #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3)
204  #endif
205  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
206  #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
207  #endif
208 #endif
209 #if !defined(CYTHON_FAST_PYCCALL)
210 #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
211 #endif
212 #if CYTHON_USE_PYLONG_INTERNALS
213  #if PY_MAJOR_VERSION < 3
214  #include "longintrepr.h"
215  #endif
216  #undef SHIFT
217  #undef BASE
218  #undef MASK
219  #ifdef SIZEOF_VOID_P
220  enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
221  #endif
222 #endif
223 #ifndef __has_attribute
224  #define __has_attribute(x) 0
225 #endif
226 #ifndef __has_cpp_attribute
227  #define __has_cpp_attribute(x) 0
228 #endif
229 #ifndef CYTHON_RESTRICT
230  #if defined(__GNUC__)
231  #define CYTHON_RESTRICT __restrict__
232  #elif defined(_MSC_VER) && _MSC_VER >= 1400
233  #define CYTHON_RESTRICT __restrict
234  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
235  #define CYTHON_RESTRICT restrict
236  #else
237  #define CYTHON_RESTRICT
238  #endif
239 #endif
240 #ifndef CYTHON_UNUSED
241 # if defined(__GNUC__)
242 # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
243 # define CYTHON_UNUSED __attribute__ ((__unused__))
244 # else
245 # define CYTHON_UNUSED
246 # endif
247 # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
248 # define CYTHON_UNUSED __attribute__ ((__unused__))
249 # else
250 # define CYTHON_UNUSED
251 # endif
252 #endif
253 #ifndef CYTHON_MAYBE_UNUSED_VAR
254 # if defined(__cplusplus)
255  template<class T> void CYTHON_MAYBE_UNUSED_VAR( const T& ) { }
256 # else
257 # define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x)
258 # endif
259 #endif
260 #ifndef CYTHON_NCP_UNUSED
261 # if CYTHON_COMPILING_IN_CPYTHON
262 # define CYTHON_NCP_UNUSED
263 # else
264 # define CYTHON_NCP_UNUSED CYTHON_UNUSED
265 # endif
266 #endif
267 #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
268 #ifdef _MSC_VER
269  #ifndef _MSC_STDINT_H_
270  #if _MSC_VER < 1300
271  typedef unsigned char uint8_t;
272  typedef unsigned int uint32_t;
273  #else
274  typedef unsigned __int8 uint8_t;
275  typedef unsigned __int32 uint32_t;
276  #endif
277  #endif
278 #else
279  #include <stdint.h>
280 #endif
281 #ifndef CYTHON_FALLTHROUGH
282  #if defined(__cplusplus) && __cplusplus >= 201103L
283  #if __has_cpp_attribute(fallthrough)
284  #define CYTHON_FALLTHROUGH [[fallthrough]]
285  #elif __has_cpp_attribute(clang::fallthrough)
286  #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
287  #elif __has_cpp_attribute(gnu::fallthrough)
288  #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
289  #endif
290  #endif
291  #ifndef CYTHON_FALLTHROUGH
292  #if __has_attribute(fallthrough)
293  #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
294  #else
295  #define CYTHON_FALLTHROUGH
296  #endif
297  #endif
298  #if defined(__clang__ ) && defined(__apple_build_version__)
299  #if __apple_build_version__ < 7000000
300  #undef CYTHON_FALLTHROUGH
301  #define CYTHON_FALLTHROUGH
302  #endif
303  #endif
304 #endif
305 
306 #ifndef CYTHON_INLINE
307  #if defined(__clang__)
308  #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
309  #elif defined(__GNUC__)
310  #define CYTHON_INLINE __inline__
311  #elif defined(_MSC_VER)
312  #define CYTHON_INLINE __inline
313  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
314  #define CYTHON_INLINE inline
315  #else
316  #define CYTHON_INLINE
317  #endif
318 #endif
319 
320 #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
321  #define Py_OptimizeFlag 0
322 #endif
323 #define __PYX_BUILD_PY_SSIZE_T "n"
324 #define CYTHON_FORMAT_SSIZE_T "z"
325 #if PY_MAJOR_VERSION < 3
326  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
327  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
328  PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
329  #define __Pyx_DefaultClassType PyClass_Type
330 #else
331  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
332  #define __Pyx_DefaultClassType PyType_Type
333 #if PY_VERSION_HEX >= 0x030B00A1
334  static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f,
335  PyObject *code, PyObject *c, PyObject* n, PyObject *v,
336  PyObject *fv, PyObject *cell, PyObject* fn,
337  PyObject *name, int fline, PyObject *lnos) {
338  PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL;
339  PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL;
340  const char *fn_cstr=NULL;
341  const char *name_cstr=NULL;
342  PyCodeObject* co=NULL;
343  PyObject *type, *value, *traceback;
344  PyErr_Fetch(&type, &value, &traceback);
345  if (!(kwds=PyDict_New())) goto end;
346  if (!(argcount=PyLong_FromLong(a))) goto end;
347  if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end;
348  if (!(posonlyargcount=PyLong_FromLong(0))) goto end;
349  if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end;
350  if (!(kwonlyargcount=PyLong_FromLong(k))) goto end;
351  if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end;
352  if (!(nlocals=PyLong_FromLong(l))) goto end;
353  if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end;
354  if (!(stacksize=PyLong_FromLong(s))) goto end;
355  if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end;
356  if (!(flags=PyLong_FromLong(f))) goto end;
357  if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end;
358  if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end;
359  if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end;
360  if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end;
361  if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end;
362  if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end;
363  if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end;
364  if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end;
365  if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end;
366  if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end;
367  if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end;
368  if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too;
369  if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here
370  if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too;
371  Py_XDECREF((PyObject*)co);
372  co = (PyCodeObject*)call_result;
373  call_result = NULL;
374  if (0) {
375  cleanup_code_too:
376  Py_XDECREF((PyObject*)co);
377  co = NULL;
378  }
379  end:
380  Py_XDECREF(kwds);
381  Py_XDECREF(argcount);
382  Py_XDECREF(posonlyargcount);
383  Py_XDECREF(kwonlyargcount);
384  Py_XDECREF(nlocals);
385  Py_XDECREF(stacksize);
386  Py_XDECREF(replace);
387  Py_XDECREF(call_result);
388  Py_XDECREF(empty);
389  if (type) {
390  PyErr_Restore(type, value, traceback);
391  }
392  return co;
393  }
394 #else
395  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
396  PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
397 #endif
398  #define __Pyx_DefaultClassType PyType_Type
399 #endif
400 #ifndef Py_TPFLAGS_CHECKTYPES
401  #define Py_TPFLAGS_CHECKTYPES 0
402 #endif
403 #ifndef Py_TPFLAGS_HAVE_INDEX
404  #define Py_TPFLAGS_HAVE_INDEX 0
405 #endif
406 #ifndef Py_TPFLAGS_HAVE_NEWBUFFER
407  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
408 #endif
409 #ifndef Py_TPFLAGS_HAVE_FINALIZE
410  #define Py_TPFLAGS_HAVE_FINALIZE 0
411 #endif
412 #ifndef METH_STACKLESS
413  #define METH_STACKLESS 0
414 #endif
415 #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
416  #ifndef METH_FASTCALL
417  #define METH_FASTCALL 0x80
418  #endif
419  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
420  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
421  Py_ssize_t nargs, PyObject *kwnames);
422 #else
423  #define __Pyx_PyCFunctionFast _PyCFunctionFast
424  #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
425 #endif
426 #if CYTHON_FAST_PYCCALL
427 #define __Pyx_PyFastCFunction_Check(func)\
428  ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)))))
429 #else
430 #define __Pyx_PyFastCFunction_Check(func) 0
431 #endif
432 #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
433  #define PyObject_Malloc(s) PyMem_Malloc(s)
434  #define PyObject_Free(p) PyMem_Free(p)
435  #define PyObject_Realloc(p) PyMem_Realloc(p)
436 #endif
437 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1
438  #define PyMem_RawMalloc(n) PyMem_Malloc(n)
439  #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n)
440  #define PyMem_RawFree(p) PyMem_Free(p)
441 #endif
442 #if CYTHON_COMPILING_IN_PYSTON
443  #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co)
444  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno)
445 #else
446  #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
447  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno)
448 #endif
449 #if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000
450  #define __Pyx_PyThreadState_Current PyThreadState_GET()
451 #elif PY_VERSION_HEX >= 0x03060000
452  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
453 #elif PY_VERSION_HEX >= 0x03000000
454  #define __Pyx_PyThreadState_Current PyThreadState_GET()
455 #else
456  #define __Pyx_PyThreadState_Current _PyThreadState_Current
457 #endif
458 #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
459 #include "pythread.h"
460 #define Py_tss_NEEDS_INIT 0
461 typedef int Py_tss_t;
462 static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
463  *key = PyThread_create_key();
464  return 0;
465 }
466 static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
467  Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
468  *key = Py_tss_NEEDS_INIT;
469  return key;
470 }
471 static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
472  PyObject_Free(key);
473 }
474 static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
475  return *key != Py_tss_NEEDS_INIT;
476 }
477 static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
478  PyThread_delete_key(*key);
479  *key = Py_tss_NEEDS_INIT;
480 }
481 static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
482  return PyThread_set_key_value(*key, value);
483 }
484 static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
485  return PyThread_get_key_value(*key);
486 }
487 #endif
488 #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
489 #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
490 #else
491 #define __Pyx_PyDict_NewPresized(n) PyDict_New()
492 #endif
493 #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
494  #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
495  #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
496 #else
497  #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
498  #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)
499 #endif
500 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS
501 #define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
502 #else
503 #define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name)
504 #endif
505 #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
506  #define CYTHON_PEP393_ENABLED 1
507  #if defined(PyUnicode_IS_READY)
508  #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\
509  0 : _PyUnicode_Ready((PyObject *)(op)))
510  #else
511  #define __Pyx_PyUnicode_READY(op) (0)
512  #endif
513  #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u)
514  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
515  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u)
516  #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u)
517  #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u)
518  #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i)
519  #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch)
520  #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
521  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
522  #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
523  #else
524  #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
525  #endif
526  #else
527  #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u))
528  #endif
529 #else
530  #define CYTHON_PEP393_ENABLED 0
531  #define PyUnicode_1BYTE_KIND 1
532  #define PyUnicode_2BYTE_KIND 2
533  #define PyUnicode_4BYTE_KIND 4
534  #define __Pyx_PyUnicode_READY(op) (0)
535  #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u)
536  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
537  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111)
538  #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE))
539  #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u))
540  #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
541  #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch)
542  #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u))
543 #endif
544 #if CYTHON_COMPILING_IN_PYPY
545  #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b)
546  #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b)
547 #else
548  #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b)
549  #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
550  PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
551 #endif
552 #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains)
553  #define PyUnicode_Contains(u, s) PySequence_Contains(u, s)
554 #endif
555 #if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check)
556  #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type)
557 #endif
558 #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format)
559  #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt)
560 #endif
561 #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
562 #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
563 #if PY_MAJOR_VERSION >= 3
564  #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b)
565 #else
566  #define __Pyx_PyString_Format(a, b) PyString_Format(a, b)
567 #endif
568 #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
569  #define PyObject_ASCII(o) PyObject_Repr(o)
570 #endif
571 #if PY_MAJOR_VERSION >= 3
572  #define PyBaseString_Type PyUnicode_Type
573  #define PyStringObject PyUnicodeObject
574  #define PyString_Type PyUnicode_Type
575  #define PyString_Check PyUnicode_Check
576  #define PyString_CheckExact PyUnicode_CheckExact
577 #ifndef PyObject_Unicode
578  #define PyObject_Unicode PyObject_Str
579 #endif
580 #endif
581 #if PY_MAJOR_VERSION >= 3
582  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
583  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
584 #else
585  #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
586  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
587 #endif
588 #ifndef PySet_CheckExact
589  #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type)
590 #endif
591 #if PY_VERSION_HEX >= 0x030900A4
592  #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
593  #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
594 #else
595  #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
596  #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
597 #endif
598 #if CYTHON_ASSUME_SAFE_MACROS
599  #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq)
600 #else
601  #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq)
602 #endif
603 #if PY_MAJOR_VERSION >= 3
604  #define PyIntObject PyLongObject
605  #define PyInt_Type PyLong_Type
606  #define PyInt_Check(op) PyLong_Check(op)
607  #define PyInt_CheckExact(op) PyLong_CheckExact(op)
608  #define PyInt_FromString PyLong_FromString
609  #define PyInt_FromUnicode PyLong_FromUnicode
610  #define PyInt_FromLong PyLong_FromLong
611  #define PyInt_FromSize_t PyLong_FromSize_t
612  #define PyInt_FromSsize_t PyLong_FromSsize_t
613  #define PyInt_AsLong PyLong_AsLong
614  #define PyInt_AS_LONG PyLong_AS_LONG
615  #define PyInt_AsSsize_t PyLong_AsSsize_t
616  #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
617  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
618  #define PyNumber_Int PyNumber_Long
619 #endif
620 #if PY_MAJOR_VERSION >= 3
621  #define PyBoolObject PyLongObject
622 #endif
623 #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
624  #ifndef PyUnicode_InternFromString
625  #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
626  #endif
627 #endif
628 #if PY_VERSION_HEX < 0x030200A4
629  typedef long Py_hash_t;
630  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
631  #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t
632 #else
633  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
634  #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t
635 #endif
636 #if PY_MAJOR_VERSION >= 3
637  #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
638 #else
639  #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
640 #endif
641 #if CYTHON_USE_ASYNC_SLOTS
642  #if PY_VERSION_HEX >= 0x030500B1
643  #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
644  #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
645  #else
646  #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
647  #endif
648 #else
649  #define __Pyx_PyType_AsAsync(obj) NULL
650 #endif
651 #ifndef __Pyx_PyAsyncMethodsStruct
652  typedef struct {
653  unaryfunc am_await;
654  unaryfunc am_aiter;
655  unaryfunc am_anext;
656  } __Pyx_PyAsyncMethodsStruct;
657 #endif
658 
659 #if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
660  #if !defined(_USE_MATH_DEFINES)
661  #define _USE_MATH_DEFINES
662  #endif
663 #endif
664 #include <math.h>
665 #ifdef NAN
666 #define __PYX_NAN() ((float) NAN)
667 #else
668 static CYTHON_INLINE float __PYX_NAN() {
669  float value;
670  memset(&value, 0xFF, sizeof(value));
671  return value;
672 }
673 #endif
674 #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
675 #define __Pyx_truncl trunc
676 #else
677 #define __Pyx_truncl truncl
678 #endif
679 
680 #define __PYX_MARK_ERR_POS(f_index, lineno) \
681  { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; }
682 #define __PYX_ERR(f_index, lineno, Ln_error) \
683  { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }
684 
685 #ifndef __PYX_EXTERN_C
686  #ifdef __cplusplus
687  #define __PYX_EXTERN_C extern "C"
688  #else
689  #define __PYX_EXTERN_C extern
690  #endif
691 #endif
692 
693 #define __PYX_HAVE__cnumericalFlux
694 #define __PYX_HAVE_API__cnumericalFlux
695 /* Early includes */
696 #include <string.h>
697 #include <stdio.h>
698 #include "numpy/arrayobject.h"
699 #include "numpy/ndarrayobject.h"
700 #include "numpy/ndarraytypes.h"
701 #include "numpy/arrayscalars.h"
702 #include "numpy/ufuncobject.h"
703 
704  /* NumPy API declarations from "numpy/__init__.pxd" */
705 
706 #include "numericalFlux.h"
707 #ifdef _OPENMP
708 #include <omp.h>
709 #endif /* _OPENMP */
710 
711 #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
712 #define CYTHON_WITHOUT_ASSERTIONS
713 #endif
714 
715 typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
716  const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
717 
718 #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
719 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
720 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
721 #define __PYX_DEFAULT_STRING_ENCODING ""
722 #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
723 #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
724 #define __Pyx_uchar_cast(c) ((unsigned char)c)
725 #define __Pyx_long_cast(x) ((long)x)
726 #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\
727  (sizeof(type) < sizeof(Py_ssize_t)) ||\
728  (sizeof(type) > sizeof(Py_ssize_t) &&\
729  likely(v < (type)PY_SSIZE_T_MAX ||\
730  v == (type)PY_SSIZE_T_MAX) &&\
731  (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
732  v == (type)PY_SSIZE_T_MIN))) ||\
733  (sizeof(type) == sizeof(Py_ssize_t) &&\
734  (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
735  v == (type)PY_SSIZE_T_MAX))) )
736 static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
737  return (size_t) i < (size_t) limit;
738 }
739 #if defined (__cplusplus) && __cplusplus >= 201103L
740  #include <cstdlib>
741  #define __Pyx_sst_abs(value) std::abs(value)
742 #elif SIZEOF_INT >= SIZEOF_SIZE_T
743  #define __Pyx_sst_abs(value) abs(value)
744 #elif SIZEOF_LONG >= SIZEOF_SIZE_T
745  #define __Pyx_sst_abs(value) labs(value)
746 #elif defined (_MSC_VER)
747  #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
748 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
749  #define __Pyx_sst_abs(value) llabs(value)
750 #elif defined (__GNUC__)
751  #define __Pyx_sst_abs(value) __builtin_llabs(value)
752 #else
753  #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
754 #endif
755 static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
756 static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
757 #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
758 #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
759 #define __Pyx_PyBytes_FromString PyBytes_FromString
760 #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
761 static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
762 #if PY_MAJOR_VERSION < 3
763  #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString
764  #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
765 #else
766  #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString
767  #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
768 #endif
769 #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s))
770 #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s))
771 #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s))
772 #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s))
773 #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s))
774 #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s))
775 #define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s))
776 #define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s))
777 #define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s))
778 #define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s))
779 #define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s))
780 #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s)
781 #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s)
782 #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s)
783 #define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s)
784 #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
785 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) {
786  const Py_UNICODE *u_end = u;
787  while (*u_end++) ;
788  return (size_t)(u_end - u - 1);
789 }
790 #define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
791 #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
792 #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode
793 #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
794 #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
795 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
796 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
797 static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
798 static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
799 #define __Pyx_PySequence_Tuple(obj)\
800  (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
801 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
802 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
803 static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
804 #if CYTHON_ASSUME_SAFE_MACROS
805 #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
806 #else
807 #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
808 #endif
809 #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
810 #if PY_MAJOR_VERSION >= 3
811 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
812 #else
813 #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
814 #endif
815 #define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x))
816 #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
817 static int __Pyx_sys_getdefaultencoding_not_ascii;
818 static int __Pyx_init_sys_getdefaultencoding_params(void) {
819  PyObject* sys;
820  PyObject* default_encoding = NULL;
821  PyObject* ascii_chars_u = NULL;
822  PyObject* ascii_chars_b = NULL;
823  const char* default_encoding_c;
824  sys = PyImport_ImportModule("sys");
825  if (!sys) goto bad;
826  default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
827  Py_DECREF(sys);
828  if (!default_encoding) goto bad;
829  default_encoding_c = PyBytes_AsString(default_encoding);
830  if (!default_encoding_c) goto bad;
831  if (strcmp(default_encoding_c, "ascii") == 0) {
832  __Pyx_sys_getdefaultencoding_not_ascii = 0;
833  } else {
834  char ascii_chars[128];
835  int c;
836  for (c = 0; c < 128; c++) {
837  ascii_chars[c] = c;
838  }
839  __Pyx_sys_getdefaultencoding_not_ascii = 1;
840  ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
841  if (!ascii_chars_u) goto bad;
842  ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
843  if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
844  PyErr_Format(
845  PyExc_ValueError,
846  "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
847  default_encoding_c);
848  goto bad;
849  }
850  Py_DECREF(ascii_chars_u);
851  Py_DECREF(ascii_chars_b);
852  }
853  Py_DECREF(default_encoding);
854  return 0;
855 bad:
856  Py_XDECREF(default_encoding);
857  Py_XDECREF(ascii_chars_u);
858  Py_XDECREF(ascii_chars_b);
859  return -1;
860 }
861 #endif
862 #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
863 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
864 #else
865 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
866 #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
867 static char* __PYX_DEFAULT_STRING_ENCODING;
868 static int __Pyx_init_sys_getdefaultencoding_params(void) {
869  PyObject* sys;
870  PyObject* default_encoding = NULL;
871  char* default_encoding_c;
872  sys = PyImport_ImportModule("sys");
873  if (!sys) goto bad;
874  default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
875  Py_DECREF(sys);
876  if (!default_encoding) goto bad;
877  default_encoding_c = PyBytes_AsString(default_encoding);
878  if (!default_encoding_c) goto bad;
879  __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
880  if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
881  strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
882  Py_DECREF(default_encoding);
883  return 0;
884 bad:
885  Py_XDECREF(default_encoding);
886  return -1;
887 }
888 #endif
889 #endif
890 
891 
892 /* Test for GCC > 2.95 */
893 #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
894  #define likely(x) __builtin_expect(!!(x), 1)
895  #define unlikely(x) __builtin_expect(!!(x), 0)
896 #else /* !__GNUC__ or GCC < 2.95 */
897  #define likely(x) (x)
898  #define unlikely(x) (x)
899 #endif /* __GNUC__ */
900 static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
901 
902 static PyObject *__pyx_m = NULL;
903 static PyObject *__pyx_d;
904 static PyObject *__pyx_b;
905 static PyObject *__pyx_cython_runtime = NULL;
906 static PyObject *__pyx_empty_tuple;
907 static PyObject *__pyx_empty_bytes;
908 static PyObject *__pyx_empty_unicode;
909 static int __pyx_lineno;
910 static int __pyx_clineno = 0;
911 static const char * __pyx_cfilenm= __FILE__;
912 static const char *__pyx_filename;
913 
914 /* Header.proto */
915 #if !defined(CYTHON_CCOMPLEX)
916  #if defined(__cplusplus)
917  #define CYTHON_CCOMPLEX 1
918  #elif defined(_Complex_I)
919  #define CYTHON_CCOMPLEX 1
920  #else
921  #define CYTHON_CCOMPLEX 0
922  #endif
923 #endif
924 #if CYTHON_CCOMPLEX
925  #ifdef __cplusplus
926  #include <complex>
927  #else
928  #include <complex.h>
929  #endif
930 #endif
931 #if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__)
932  #undef _Complex_I
933  #define _Complex_I 1.0fj
934 #endif
935 
936 
937 static const char *__pyx_f[] = {
938  "proteus/cnumericalFlux.pyx",
939  "__init__.pxd",
940  "type.pxd",
941 };
942 
943 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":690
944  * # in Cython to enable them only on the right systems.
945  *
946  * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<<
947  * ctypedef npy_int16 int16_t
948  * ctypedef npy_int32 int32_t
949  */
950 typedef npy_int8 __pyx_t_5numpy_int8_t;
951 
952 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":691
953  *
954  * ctypedef npy_int8 int8_t
955  * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<<
956  * ctypedef npy_int32 int32_t
957  * ctypedef npy_int64 int64_t
958  */
959 typedef npy_int16 __pyx_t_5numpy_int16_t;
960 
961 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":692
962  * ctypedef npy_int8 int8_t
963  * ctypedef npy_int16 int16_t
964  * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<<
965  * ctypedef npy_int64 int64_t
966  * #ctypedef npy_int96 int96_t
967  */
968 typedef npy_int32 __pyx_t_5numpy_int32_t;
969 
970 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":693
971  * ctypedef npy_int16 int16_t
972  * ctypedef npy_int32 int32_t
973  * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<<
974  * #ctypedef npy_int96 int96_t
975  * #ctypedef npy_int128 int128_t
976  */
977 typedef npy_int64 __pyx_t_5numpy_int64_t;
978 
979 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":697
980  * #ctypedef npy_int128 int128_t
981  *
982  * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<<
983  * ctypedef npy_uint16 uint16_t
984  * ctypedef npy_uint32 uint32_t
985  */
986 typedef npy_uint8 __pyx_t_5numpy_uint8_t;
987 
988 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":698
989  *
990  * ctypedef npy_uint8 uint8_t
991  * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<<
992  * ctypedef npy_uint32 uint32_t
993  * ctypedef npy_uint64 uint64_t
994  */
995 typedef npy_uint16 __pyx_t_5numpy_uint16_t;
996 
997 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":699
998  * ctypedef npy_uint8 uint8_t
999  * ctypedef npy_uint16 uint16_t
1000  * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<<
1001  * ctypedef npy_uint64 uint64_t
1002  * #ctypedef npy_uint96 uint96_t
1003  */
1004 typedef npy_uint32 __pyx_t_5numpy_uint32_t;
1005 
1006 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":700
1007  * ctypedef npy_uint16 uint16_t
1008  * ctypedef npy_uint32 uint32_t
1009  * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<<
1010  * #ctypedef npy_uint96 uint96_t
1011  * #ctypedef npy_uint128 uint128_t
1012  */
1013 typedef npy_uint64 __pyx_t_5numpy_uint64_t;
1014 
1015 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":704
1016  * #ctypedef npy_uint128 uint128_t
1017  *
1018  * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<<
1019  * ctypedef npy_float64 float64_t
1020  * #ctypedef npy_float80 float80_t
1021  */
1022 typedef npy_float32 __pyx_t_5numpy_float32_t;
1023 
1024 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":705
1025  *
1026  * ctypedef npy_float32 float32_t
1027  * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<<
1028  * #ctypedef npy_float80 float80_t
1029  * #ctypedef npy_float128 float128_t
1030  */
1031 typedef npy_float64 __pyx_t_5numpy_float64_t;
1032 
1033 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":714
1034  * # The int types are mapped a bit surprising --
1035  * # numpy.int corresponds to 'l' and numpy.long to 'q'
1036  * ctypedef npy_long int_t # <<<<<<<<<<<<<<
1037  * ctypedef npy_longlong long_t
1038  * ctypedef npy_longlong longlong_t
1039  */
1040 typedef npy_long __pyx_t_5numpy_int_t;
1041 
1042 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":715
1043  * # numpy.int corresponds to 'l' and numpy.long to 'q'
1044  * ctypedef npy_long int_t
1045  * ctypedef npy_longlong long_t # <<<<<<<<<<<<<<
1046  * ctypedef npy_longlong longlong_t
1047  *
1048  */
1049 typedef npy_longlong __pyx_t_5numpy_long_t;
1050 
1051 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":716
1052  * ctypedef npy_long int_t
1053  * ctypedef npy_longlong long_t
1054  * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<<
1055  *
1056  * ctypedef npy_ulong uint_t
1057  */
1058 typedef npy_longlong __pyx_t_5numpy_longlong_t;
1059 
1060 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":718
1061  * ctypedef npy_longlong longlong_t
1062  *
1063  * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<<
1064  * ctypedef npy_ulonglong ulong_t
1065  * ctypedef npy_ulonglong ulonglong_t
1066  */
1067 typedef npy_ulong __pyx_t_5numpy_uint_t;
1068 
1069 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":719
1070  *
1071  * ctypedef npy_ulong uint_t
1072  * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<<
1073  * ctypedef npy_ulonglong ulonglong_t
1074  *
1075  */
1076 typedef npy_ulonglong __pyx_t_5numpy_ulong_t;
1077 
1078 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":720
1079  * ctypedef npy_ulong uint_t
1080  * ctypedef npy_ulonglong ulong_t
1081  * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<<
1082  *
1083  * ctypedef npy_intp intp_t
1084  */
1085 typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
1086 
1087 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":722
1088  * ctypedef npy_ulonglong ulonglong_t
1089  *
1090  * ctypedef npy_intp intp_t # <<<<<<<<<<<<<<
1091  * ctypedef npy_uintp uintp_t
1092  *
1093  */
1094 typedef npy_intp __pyx_t_5numpy_intp_t;
1095 
1096 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":723
1097  *
1098  * ctypedef npy_intp intp_t
1099  * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<<
1100  *
1101  * ctypedef npy_double float_t
1102  */
1103 typedef npy_uintp __pyx_t_5numpy_uintp_t;
1104 
1105 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":725
1106  * ctypedef npy_uintp uintp_t
1107  *
1108  * ctypedef npy_double float_t # <<<<<<<<<<<<<<
1109  * ctypedef npy_double double_t
1110  * ctypedef npy_longdouble longdouble_t
1111  */
1112 typedef npy_double __pyx_t_5numpy_float_t;
1113 
1114 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":726
1115  *
1116  * ctypedef npy_double float_t
1117  * ctypedef npy_double double_t # <<<<<<<<<<<<<<
1118  * ctypedef npy_longdouble longdouble_t
1119  *
1120  */
1121 typedef npy_double __pyx_t_5numpy_double_t;
1122 
1123 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":727
1124  * ctypedef npy_double float_t
1125  * ctypedef npy_double double_t
1126  * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<<
1127  *
1128  * ctypedef npy_cfloat cfloat_t
1129  */
1130 typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
1131 /* Declarations.proto */
1132 #if CYTHON_CCOMPLEX
1133  #ifdef __cplusplus
1134  typedef ::std::complex< float > __pyx_t_float_complex;
1135  #else
1136  typedef float _Complex __pyx_t_float_complex;
1137  #endif
1138 #else
1139  typedef struct { float real, imag; } __pyx_t_float_complex;
1140 #endif
1141 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);
1142 
1143 /* Declarations.proto */
1144 #if CYTHON_CCOMPLEX
1145  #ifdef __cplusplus
1146  typedef ::std::complex< double > __pyx_t_double_complex;
1147  #else
1148  typedef double _Complex __pyx_t_double_complex;
1149  #endif
1150 #else
1151  typedef struct { double real, imag; } __pyx_t_double_complex;
1152 #endif
1153 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);
1154 
1155 
1156 /*--- Type declarations ---*/
1157 
1158 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":729
1159  * ctypedef npy_longdouble longdouble_t
1160  *
1161  * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<<
1162  * ctypedef npy_cdouble cdouble_t
1163  * ctypedef npy_clongdouble clongdouble_t
1164  */
1165 typedef npy_cfloat __pyx_t_5numpy_cfloat_t;
1166 
1167 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":730
1168  *
1169  * ctypedef npy_cfloat cfloat_t
1170  * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<<
1171  * ctypedef npy_clongdouble clongdouble_t
1172  *
1173  */
1174 typedef npy_cdouble __pyx_t_5numpy_cdouble_t;
1175 
1176 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":731
1177  * ctypedef npy_cfloat cfloat_t
1178  * ctypedef npy_cdouble cdouble_t
1179  * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<<
1180  *
1181  * ctypedef npy_cdouble complex_t
1182  */
1183 typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t;
1184 
1185 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":733
1186  * ctypedef npy_clongdouble clongdouble_t
1187  *
1188  * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<<
1189  *
1190  * cdef inline object PyArray_MultiIterNew1(a):
1191  */
1192 typedef npy_cdouble __pyx_t_5numpy_complex_t;
1193 
1194 /* --- Runtime support code (head) --- */
1195 /* Refnanny.proto */
1196 #ifndef CYTHON_REFNANNY
1197  #define CYTHON_REFNANNY 0
1198 #endif
1199 #if CYTHON_REFNANNY
1200  typedef struct {
1201  void (*INCREF)(void*, PyObject*, int);
1202  void (*DECREF)(void*, PyObject*, int);
1203  void (*GOTREF)(void*, PyObject*, int);
1204  void (*GIVEREF)(void*, PyObject*, int);
1205  void* (*SetupContext)(const char*, int, const char*);
1206  void (*FinishContext)(void**);
1207  } __Pyx_RefNannyAPIStruct;
1208  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
1209  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
1210  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
1211 #ifdef WITH_THREAD
1212  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
1213  if (acquire_gil) {\
1214  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
1215  __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
1216  PyGILState_Release(__pyx_gilstate_save);\
1217  } else {\
1218  __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
1219  }
1220 #else
1221  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
1222  __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
1223 #endif
1224  #define __Pyx_RefNannyFinishContext()\
1225  __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
1226  #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1227  #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1228  #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1229  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1230  #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
1231  #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
1232  #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
1233  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
1234 #else
1235  #define __Pyx_RefNannyDeclarations
1236  #define __Pyx_RefNannySetupContext(name, acquire_gil)
1237  #define __Pyx_RefNannyFinishContext()
1238  #define __Pyx_INCREF(r) Py_INCREF(r)
1239  #define __Pyx_DECREF(r) Py_DECREF(r)
1240  #define __Pyx_GOTREF(r)
1241  #define __Pyx_GIVEREF(r)
1242  #define __Pyx_XINCREF(r) Py_XINCREF(r)
1243  #define __Pyx_XDECREF(r) Py_XDECREF(r)
1244  #define __Pyx_XGOTREF(r)
1245  #define __Pyx_XGIVEREF(r)
1246 #endif
1247 #define __Pyx_XDECREF_SET(r, v) do {\
1248  PyObject *tmp = (PyObject *) r;\
1249  r = v; __Pyx_XDECREF(tmp);\
1250  } while (0)
1251 #define __Pyx_DECREF_SET(r, v) do {\
1252  PyObject *tmp = (PyObject *) r;\
1253  r = v; __Pyx_DECREF(tmp);\
1254  } while (0)
1255 #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
1256 #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
1257 
1258 /* RaiseArgTupleInvalid.proto */
1259 static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
1260  Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
1261 
1262 /* RaiseDoubleKeywords.proto */
1263 static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
1264 
1265 /* ParseKeywords.proto */
1266 static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
1267  PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
1268  const char* function_name);
1269 
1270 /* ArgTypeTest.proto */
1271 #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
1272  ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\
1273  __Pyx__ArgTypeTest(obj, type, name, exact))
1274 static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);
1275 
1276 /* PyObjectGetAttrStr.proto */
1277 #if CYTHON_USE_TYPE_SLOTS
1278 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
1279 #else
1280 #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
1281 #endif
1282 
1283 /* GetItemInt.proto */
1284 #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
1285  (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
1286  __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
1287  (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
1288  __Pyx_GetItemInt_Generic(o, to_py_func(i))))
1289 #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
1290  (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
1291  __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
1292  (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
1293 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
1294  int wraparound, int boundscheck);
1295 #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
1296  (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
1297  __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
1298  (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
1299 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
1300  int wraparound, int boundscheck);
1301 static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
1302 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
1303  int is_list, int wraparound, int boundscheck);
1304 
1305 /* GetBuiltinName.proto */
1306 static PyObject *__Pyx_GetBuiltinName(PyObject *name);
1307 
1308 /* PyDictVersioning.proto */
1309 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
1310 #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
1311 #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
1312 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
1313  (version_var) = __PYX_GET_DICT_VERSION(dict);\
1314  (cache_var) = (value);
1315 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
1316  static PY_UINT64_T __pyx_dict_version = 0;\
1317  static PyObject *__pyx_dict_cached_value = NULL;\
1318  if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
1319  (VAR) = __pyx_dict_cached_value;\
1320  } else {\
1321  (VAR) = __pyx_dict_cached_value = (LOOKUP);\
1322  __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
1323  }\
1324 }
1325 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
1326 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
1327 static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
1328 #else
1329 #define __PYX_GET_DICT_VERSION(dict) (0)
1330 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
1331 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP);
1332 #endif
1333 
1334 /* GetModuleGlobalName.proto */
1335 #if CYTHON_USE_DICT_VERSIONS
1336 #define __Pyx_GetModuleGlobalName(var, name) {\
1337  static PY_UINT64_T __pyx_dict_version = 0;\
1338  static PyObject *__pyx_dict_cached_value = NULL;\
1339  (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
1340  (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
1341  __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
1342 }
1343 #define __Pyx_GetModuleGlobalNameUncached(var, name) {\
1344  PY_UINT64_T __pyx_dict_version;\
1345  PyObject *__pyx_dict_cached_value;\
1346  (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
1347 }
1348 static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
1349 #else
1350 #define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name)
1351 #define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name)
1352 static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
1353 #endif
1354 
1355 /* PyCFunctionFastCall.proto */
1356 #if CYTHON_FAST_PYCCALL
1357 static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs);
1358 #else
1359 #define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL)
1360 #endif
1361 
1362 /* PyFunctionFastCall.proto */
1363 #if CYTHON_FAST_PYCALL
1364 #define __Pyx_PyFunction_FastCall(func, args, nargs)\
1365  __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
1366 #if 1 || PY_VERSION_HEX < 0x030600B1
1367 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
1368 #else
1369 #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs)
1370 #endif
1371 #define __Pyx_BUILD_ASSERT_EXPR(cond)\
1372  (sizeof(char [1 - 2*!(cond)]) - 1)
1373 #ifndef Py_MEMBER_SIZE
1374 #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
1375 #endif
1376 #if CYTHON_FAST_PYCALL
1377  static size_t __pyx_pyframe_localsplus_offset = 0;
1378  #include "frameobject.h"
1379 #if PY_VERSION_HEX >= 0x030b00a6
1380  #ifndef Py_BUILD_CORE
1381  #define Py_BUILD_CORE 1
1382  #endif
1383  #include "internal/pycore_frame.h"
1384 #endif
1385  #define __Pxy_PyFrame_Initialize_Offsets()\
1386  ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
1387  (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
1388  #define __Pyx_PyFrame_GetLocalsplus(frame)\
1389  (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
1390 #endif // CYTHON_FAST_PYCALL
1391 #endif
1392 
1393 /* PyObjectCall.proto */
1394 #if CYTHON_COMPILING_IN_CPYTHON
1395 static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
1396 #else
1397 #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
1398 #endif
1399 
1400 /* PyObjectCall2Args.proto */
1401 static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);
1402 
1403 /* PyObjectCallMethO.proto */
1404 #if CYTHON_COMPILING_IN_CPYTHON
1405 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
1406 #endif
1407 
1408 /* PyObjectCallOneArg.proto */
1409 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
1410 
1411 /* PyIntCompare.proto */
1412 static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, long inplace);
1413 
1414 /* GetTopmostException.proto */
1415 #if CYTHON_USE_EXC_INFO_STACK
1416 static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
1417 #endif
1418 
1419 /* PyThreadStateGet.proto */
1420 #if CYTHON_FAST_THREAD_STATE
1421 #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate;
1422 #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current;
1423 #define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type
1424 #else
1425 #define __Pyx_PyThreadState_declare
1426 #define __Pyx_PyThreadState_assign
1427 #define __Pyx_PyErr_Occurred() PyErr_Occurred()
1428 #endif
1429 
1430 /* SaveResetException.proto */
1431 #if CYTHON_FAST_THREAD_STATE
1432 #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
1433 static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1434 #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
1435 static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
1436 #else
1437 #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb)
1438 #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb)
1439 #endif
1440 
1441 /* PyErrExceptionMatches.proto */
1442 #if CYTHON_FAST_THREAD_STATE
1443 #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
1444 static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
1445 #else
1446 #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err)
1447 #endif
1448 
1449 /* GetException.proto */
1450 #if CYTHON_FAST_THREAD_STATE
1451 #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb)
1452 static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1453 #else
1454 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
1455 #endif
1456 
1457 /* PyErrFetchRestore.proto */
1458 #if CYTHON_FAST_THREAD_STATE
1459 #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
1460 #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
1461 #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
1462 #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
1463 #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
1464 static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
1465 static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1466 #if CYTHON_COMPILING_IN_CPYTHON
1467 #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
1468 #else
1469 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
1470 #endif
1471 #else
1472 #define __Pyx_PyErr_Clear() PyErr_Clear()
1473 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
1474 #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb)
1475 #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb)
1476 #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb)
1477 #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb)
1478 #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb)
1479 #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb)
1480 #endif
1481 
1482 /* RaiseException.proto */
1483 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
1484 
1485 /* TypeImport.proto */
1486 #ifndef __PYX_HAVE_RT_ImportType_proto
1487 #define __PYX_HAVE_RT_ImportType_proto
1488 enum __Pyx_ImportType_CheckSize {
1489  __Pyx_ImportType_CheckSize_Error = 0,
1490  __Pyx_ImportType_CheckSize_Warn = 1,
1491  __Pyx_ImportType_CheckSize_Ignore = 2
1492 };
1493 static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size);
1494 #endif
1495 
1496 /* Import.proto */
1497 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);
1498 
1499 /* ImportFrom.proto */
1500 static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);
1501 
1502 /* CLineInTraceback.proto */
1503 #ifdef CYTHON_CLINE_IN_TRACEBACK
1504 #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
1505 #else
1506 static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
1507 #endif
1508 
1509 /* CodeObjectCache.proto */
1510 typedef struct {
1511  PyCodeObject* code_object;
1512  int code_line;
1513 } __Pyx_CodeObjectCacheEntry;
1514 struct __Pyx_CodeObjectCache {
1515  int count;
1516  int max_count;
1517  __Pyx_CodeObjectCacheEntry* entries;
1518 };
1519 static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
1520 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
1521 static PyCodeObject *__pyx_find_code_object(int code_line);
1522 static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
1523 
1524 /* AddTraceback.proto */
1525 static void __Pyx_AddTraceback(const char *funcname, int c_line,
1526  int py_line, const char *filename);
1527 
1528 /* GCCDiagnostics.proto */
1529 #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
1530 #define __Pyx_HAS_GCC_DIAGNOSTIC
1531 #endif
1532 
1533 /* RealImag.proto */
1534 #if CYTHON_CCOMPLEX
1535  #ifdef __cplusplus
1536  #define __Pyx_CREAL(z) ((z).real())
1537  #define __Pyx_CIMAG(z) ((z).imag())
1538  #else
1539  #define __Pyx_CREAL(z) (__real__(z))
1540  #define __Pyx_CIMAG(z) (__imag__(z))
1541  #endif
1542 #else
1543  #define __Pyx_CREAL(z) ((z).real)
1544  #define __Pyx_CIMAG(z) ((z).imag)
1545 #endif
1546 #if defined(__cplusplus) && CYTHON_CCOMPLEX\
1547  && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)
1548  #define __Pyx_SET_CREAL(z,x) ((z).real(x))
1549  #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
1550 #else
1551  #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
1552  #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
1553 #endif
1554 
1555 /* Arithmetic.proto */
1556 #if CYTHON_CCOMPLEX
1557  #define __Pyx_c_eq_float(a, b) ((a)==(b))
1558  #define __Pyx_c_sum_float(a, b) ((a)+(b))
1559  #define __Pyx_c_diff_float(a, b) ((a)-(b))
1560  #define __Pyx_c_prod_float(a, b) ((a)*(b))
1561  #define __Pyx_c_quot_float(a, b) ((a)/(b))
1562  #define __Pyx_c_neg_float(a) (-(a))
1563  #ifdef __cplusplus
1564  #define __Pyx_c_is_zero_float(z) ((z)==(float)0)
1565  #define __Pyx_c_conj_float(z) (::std::conj(z))
1566  #if 1
1567  #define __Pyx_c_abs_float(z) (::std::abs(z))
1568  #define __Pyx_c_pow_float(a, b) (::std::pow(a, b))
1569  #endif
1570  #else
1571  #define __Pyx_c_is_zero_float(z) ((z)==0)
1572  #define __Pyx_c_conj_float(z) (conjf(z))
1573  #if 1
1574  #define __Pyx_c_abs_float(z) (cabsf(z))
1575  #define __Pyx_c_pow_float(a, b) (cpowf(a, b))
1576  #endif
1577  #endif
1578 #else
1579  static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
1580  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
1581  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
1582  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
1583  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
1584  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
1585  static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);
1586  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
1587  #if 1
1588  static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);
1589  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
1590  #endif
1591 #endif
1592 
1593 /* Arithmetic.proto */
1594 #if CYTHON_CCOMPLEX
1595  #define __Pyx_c_eq_double(a, b) ((a)==(b))
1596  #define __Pyx_c_sum_double(a, b) ((a)+(b))
1597  #define __Pyx_c_diff_double(a, b) ((a)-(b))
1598  #define __Pyx_c_prod_double(a, b) ((a)*(b))
1599  #define __Pyx_c_quot_double(a, b) ((a)/(b))
1600  #define __Pyx_c_neg_double(a) (-(a))
1601  #ifdef __cplusplus
1602  #define __Pyx_c_is_zero_double(z) ((z)==(double)0)
1603  #define __Pyx_c_conj_double(z) (::std::conj(z))
1604  #if 1
1605  #define __Pyx_c_abs_double(z) (::std::abs(z))
1606  #define __Pyx_c_pow_double(a, b) (::std::pow(a, b))
1607  #endif
1608  #else
1609  #define __Pyx_c_is_zero_double(z) ((z)==0)
1610  #define __Pyx_c_conj_double(z) (conj(z))
1611  #if 1
1612  #define __Pyx_c_abs_double(z) (cabs(z))
1613  #define __Pyx_c_pow_double(a, b) (cpow(a, b))
1614  #endif
1615  #endif
1616 #else
1617  static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
1618  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
1619  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
1620  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
1621  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
1622  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
1623  static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);
1624  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
1625  #if 1
1626  static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);
1627  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
1628  #endif
1629 #endif
1630 
1631 /* CIntFromPy.proto */
1632 static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
1633 
1634 /* CIntToPy.proto */
1635 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
1636 
1637 /* CIntFromPy.proto */
1638 static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
1639 
1640 /* FastTypeChecks.proto */
1641 #if CYTHON_COMPILING_IN_CPYTHON
1642 #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
1643 static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
1644 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
1645 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
1646 #else
1647 #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
1648 #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
1649 #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
1650 #endif
1651 #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
1652 
1653 /* CheckBinaryVersion.proto */
1654 static int __Pyx_check_binary_version(void);
1655 
1656 /* InitStrings.proto */
1657 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
1658 
1659 
1660 /* Module declarations from 'cpython.buffer' */
1661 
1662 /* Module declarations from 'libc.string' */
1663 
1664 /* Module declarations from 'libc.stdio' */
1665 
1666 /* Module declarations from '__builtin__' */
1667 
1668 /* Module declarations from 'cpython.type' */
1669 static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;
1670 
1671 /* Module declarations from 'cpython' */
1672 
1673 /* Module declarations from 'cpython.object' */
1674 
1675 /* Module declarations from 'cpython.ref' */
1676 
1677 /* Module declarations from 'cpython.mem' */
1678 
1679 /* Module declarations from 'numpy' */
1680 
1681 /* Module declarations from 'numpy' */
1682 static PyTypeObject *__pyx_ptype_5numpy_dtype = 0;
1683 static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0;
1684 static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0;
1685 static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0;
1686 static PyTypeObject *__pyx_ptype_5numpy_generic = 0;
1687 static PyTypeObject *__pyx_ptype_5numpy_number = 0;
1688 static PyTypeObject *__pyx_ptype_5numpy_integer = 0;
1689 static PyTypeObject *__pyx_ptype_5numpy_signedinteger = 0;
1690 static PyTypeObject *__pyx_ptype_5numpy_unsignedinteger = 0;
1691 static PyTypeObject *__pyx_ptype_5numpy_inexact = 0;
1692 static PyTypeObject *__pyx_ptype_5numpy_floating = 0;
1693 static PyTypeObject *__pyx_ptype_5numpy_complexfloating = 0;
1694 static PyTypeObject *__pyx_ptype_5numpy_flexible = 0;
1695 static PyTypeObject *__pyx_ptype_5numpy_character = 0;
1696 static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0;
1697 
1698 /* Module declarations from 'cnumericalFlux' */
1699 #define __Pyx_MODULE_NAME "cnumericalFlux"
1700 extern int __pyx_module_is_main_cnumericalFlux;
1701 int __pyx_module_is_main_cnumericalFlux = 0;
1702 
1703 /* Implementation of 'cnumericalFlux' */
1704 static PyObject *__pyx_builtin_ImportError;
1705 static const char __pyx_k_H[] = "H";
1706 static const char __pyx_k_K[] = "K";
1707 static const char __pyx_k_V[] = "V";
1708 static const char __pyx_k_a[] = "a";
1709 static const char __pyx_k_f[] = "f";
1710 static const char __pyx_k_g[] = "g";
1711 static const char __pyx_k_h[] = "h";
1712 static const char __pyx_k_n[] = "n";
1713 static const char __pyx_k_p[] = "p";
1714 static const char __pyx_k_u[] = "u";
1715 static const char __pyx_k_v[] = "v";
1716 static const char __pyx_k_w[] = "w";
1717 static const char __pyx_k_DV[] = "DV";
1718 static const char __pyx_k_dH[] = "dH";
1719 static const char __pyx_k_dK[] = "dK";
1720 static const char __pyx_k_da[] = "da";
1721 static const char __pyx_k_df[] = "df";
1722 static const char __pyx_k_fn[] = "fn";
1723 static const char __pyx_k_fw[] = "fw";
1724 static const char __pyx_k_hu[] = "hu";
1725 static const char __pyx_k_hv[] = "hv";
1726 static const char __pyx_k_np[] = "np";
1727 static const char __pyx_k_sw[] = "sw";
1728 static const char __pyx_k_dim[] = "dim";
1729 static const char __pyx_k_f_m[] = "f_m";
1730 static const char __pyx_k_fpu[] = "fpu";
1731 static const char __pyx_k_fpv[] = "fpv";
1732 static const char __pyx_k_fpw[] = "fpw";
1733 static const char __pyx_k_l2g[] = "l2g";
1734 static const char __pyx_k_phi[] = "phi";
1735 static const char __pyx_k_q_a[] = "q_a";
1736 static const char __pyx_k_s_w[] = "s_w";
1737 static const char __pyx_k_sys[] = "sys";
1738 static const char __pyx_k_u_m[] = "u_m";
1739 static const char __pyx_k_u_w[] = "u_w";
1740 static const char __pyx_k_aHat[] = "aHat";
1741 static const char __pyx_k_a_mm[] = "a_mm";
1742 static const char __pyx_k_a_mw[] = "a_mw";
1743 static const char __pyx_k_a_nn[] = "a_nn";
1744 static const char __pyx_k_a_wm[] = "a_wm";
1745 static const char __pyx_k_a_ww[] = "a_ww";
1746 static const char __pyx_k_bc_H[] = "bc_H";
1747 static const char __pyx_k_bc_a[] = "bc_a";
1748 static const char __pyx_k_bc_f[] = "bc_f";
1749 static const char __pyx_k_bc_p[] = "bc_p";
1750 static const char __pyx_k_bc_u[] = "bc_u";
1751 static const char __pyx_k_bc_v[] = "bc_v";
1752 static const char __pyx_k_bc_w[] = "bc_w";
1753 static const char __pyx_k_dphi[] = "dphi";
1754 static const char __pyx_k_exit[] = "exit";
1755 static const char __pyx_k_flux[] = "flux";
1756 static const char __pyx_k_h_lq[] = "h_lq";
1757 static const char __pyx_k_h_lv[] = "h_lv";
1758 static const char __pyx_k_h_rq[] = "h_rq";
1759 static const char __pyx_k_h_rv[] = "h_rv";
1760 static const char __pyx_k_main[] = "__main__";
1761 static const char __pyx_k_name[] = "__name__";
1762 static const char __pyx_k_psiw[] = "psiw";
1763 static const char __pyx_k_sape[] = "sape";
1764 static const char __pyx_k_test[] = "__test__";
1765 static const char __pyx_k_DV_eb[] = "DV_eb";
1766 static const char __pyx_k_bc_dH[] = "bc_dH";
1767 static const char __pyx_k_bc_df[] = "bc_df";
1768 static const char __pyx_k_bc_fn[] = "bc_fn";
1769 static const char __pyx_k_bc_fw[] = "bc_fw";
1770 static const char __pyx_k_bc_sw[] = "bc_sw";
1771 static const char __pyx_k_df_du[] = "df_du";
1772 static const char __pyx_k_df_dv[] = "df_dv";
1773 static const char __pyx_k_df_dw[] = "df_dw";
1774 static const char __pyx_k_dflux[] = "dflux";
1775 static const char __pyx_k_ebq_a[] = "ebq_a";
1776 static const char __pyx_k_fluxn[] = "fluxn";
1777 static const char __pyx_k_fluxw[] = "fluxw";
1778 static const char __pyx_k_h_eps[] = "h_eps";
1779 static const char __pyx_k_hu_lq[] = "hu_lq";
1780 static const char __pyx_k_hu_lv[] = "hu_lv";
1781 static const char __pyx_k_hu_rq[] = "hu_rq";
1782 static const char __pyx_k_hu_rv[] = "hu_rv";
1783 static const char __pyx_k_hv_lq[] = "hv_lq";
1784 static const char __pyx_k_hv_rq[] = "hv_rq";
1785 static const char __pyx_k_numpy[] = "numpy";
1786 static const char __pyx_k_psi_c[] = "psi_c";
1787 static const char __pyx_k_psi_n[] = "psi_n";
1788 static const char __pyx_k_psi_w[] = "psi_w";
1789 static const char __pyx_k_sahpe[] = "sahpe";
1790 static const char __pyx_k_sigma[] = "sigma";
1791 static const char __pyx_k_tol_u[] = "tol_u";
1792 static const char __pyx_k_aSplit[] = "aSplit";
1793 static const char __pyx_k_aTilde[] = "aTilde";
1794 static const char __pyx_k_bc_f_m[] = "bc_f_m";
1795 static const char __pyx_k_bc_fpu[] = "bc_fpu";
1796 static const char __pyx_k_bc_fpv[] = "bc_fpv";
1797 static const char __pyx_k_bc_fpw[] = "bc_fpw";
1798 static const char __pyx_k_bc_s_w[] = "bc_s_w";
1799 static const char __pyx_k_bc_u_m[] = "bc_u_m";
1800 static const char __pyx_k_bc_u_w[] = "bc_u_w";
1801 static const char __pyx_k_colind[] = "colind";
1802 static const char __pyx_k_f_mass[] = "f_mass";
1803 static const char __pyx_k_f_umom[] = "f_umom";
1804 static const char __pyx_k_f_vmom[] = "f_vmom";
1805 static const char __pyx_k_f_wmom[] = "f_wmom";
1806 static const char __pyx_k_flux_h[] = "flux_h";
1807 static const char __pyx_k_fluxpu[] = "fluxpu";
1808 static const char __pyx_k_fluxpv[] = "fluxpv";
1809 static const char __pyx_k_fluxpw[] = "fluxpw";
1810 static const char __pyx_k_grad_u[] = "grad_u";
1811 static const char __pyx_k_grad_v[] = "grad_v";
1812 static const char __pyx_k_import[] = "__import__";
1813 static const char __pyx_k_nSpace[] = "nSpace";
1814 static const char __pyx_k_phi_bc[] = "phi_bc";
1815 static const char __pyx_k_rowptr[] = "rowptr";
1816 static const char __pyx_k_K_rho_g[] = "K_rho_g";
1817 static const char __pyx_k_bc_a_mm[] = "bc_a_mm";
1818 static const char __pyx_k_bc_a_mw[] = "bc_a_mw";
1819 static const char __pyx_k_bc_a_nn[] = "bc_a_nn";
1820 static const char __pyx_k_bc_a_wm[] = "bc_a_wm";
1821 static const char __pyx_k_bc_a_ww[] = "bc_a_ww";
1822 static const char __pyx_k_bc_psiw[] = "bc_psiw";
1823 static const char __pyx_k_df_m_dw[] = "df_m_dw";
1824 static const char __pyx_k_dfn_dsw[] = "dfn_dsw";
1825 static const char __pyx_k_dfpu_dp[] = "dfpu_dp";
1826 static const char __pyx_k_dfpv_dp[] = "dfpv_dp";
1827 static const char __pyx_k_dfpw_dp[] = "dfpw_dp";
1828 static const char __pyx_k_dfw_dsw[] = "dfw_dsw";
1829 static const char __pyx_k_dm_umom[] = "dm_umom";
1830 static const char __pyx_k_eb_aHat[] = "eb_aHat";
1831 static const char __pyx_k_epsFact[] = "epsFact";
1832 static const char __pyx_k_flux_hu[] = "flux_hu";
1833 static const char __pyx_k_flux_hv[] = "flux_hv";
1834 static const char __pyx_k_penalty[] = "penalty";
1835 static const char __pyx_k_bc_psi_c[] = "bc_psi_c";
1836 static const char __pyx_k_bc_psi_n[] = "bc_psi_n";
1837 static const char __pyx_k_bc_psi_w[] = "bc_psi_w";
1838 static const char __pyx_k_dK_rho_g[] = "dK_rho_g";
1839 static const char __pyx_k_da_mm_dm[] = "da_mm_dm";
1840 static const char __pyx_k_da_mm_dw[] = "da_mm_dw";
1841 static const char __pyx_k_da_mw_dm[] = "da_mw_dm";
1842 static const char __pyx_k_da_mw_dw[] = "da_mw_dw";
1843 static const char __pyx_k_da_nn_dn[] = "da_nn_dn";
1844 static const char __pyx_k_da_nn_dw[] = "da_nn_dw";
1845 static const char __pyx_k_da_wm_dm[] = "da_wm_dm";
1846 static const char __pyx_k_da_wm_dw[] = "da_wm_dw";
1847 static const char __pyx_k_da_ww_dn[] = "da_ww_dn";
1848 static const char __pyx_k_da_ww_dw[] = "da_ww_dw";
1849 static const char __pyx_k_dflux_du[] = "dflux_du";
1850 static const char __pyx_k_dflux_dv[] = "dflux_dv";
1851 static const char __pyx_k_dflux_dw[] = "dflux_dw";
1852 static const char __pyx_k_dphi_m_m[] = "dphi_m_m";
1853 static const char __pyx_k_dphi_m_w[] = "dphi_m_w";
1854 static const char __pyx_k_dphi_n_n[] = "dphi_n_n";
1855 static const char __pyx_k_dphi_n_w[] = "dphi_n_w";
1856 static const char __pyx_k_dphi_w_m[] = "dphi_w_m";
1857 static const char __pyx_k_dphi_w_n[] = "dphi_w_n";
1858 static const char __pyx_k_dphi_w_w[] = "dphi_w_w";
1859 static const char __pyx_k_grad_phi[] = "grad_phi";
1860 static const char __pyx_k_grad_psi[] = "grad_psi";
1861 static const char __pyx_k_oneByRho[] = "oneByRho";
1862 static const char __pyx_k_velocity[] = "velocity";
1863 static const char __pyx_k_H_element[] = "H_element";
1864 static const char __pyx_k_bc_f_mass[] = "bc_f_mass";
1865 static const char __pyx_k_bc_f_umom[] = "bc_f_umom";
1866 static const char __pyx_k_bc_f_vmom[] = "bc_f_vmom";
1867 static const char __pyx_k_bc_f_wmom[] = "bc_f_wmom";
1868 static const char __pyx_k_colind_mm[] = "colind_mm";
1869 static const char __pyx_k_colind_mw[] = "colind_mw";
1870 static const char __pyx_k_colind_nn[] = "colind_nn";
1871 static const char __pyx_k_colind_wm[] = "colind_wm";
1872 static const char __pyx_k_colind_ww[] = "colind_ww";
1873 static const char __pyx_k_dfn_dpsiw[] = "dfn_dpsiw";
1874 static const char __pyx_k_dfw_dpsiw[] = "dfw_dpsiw";
1875 static const char __pyx_k_eb_aTilde[] = "eb_aTilde";
1876 static const char __pyx_k_flux_mass[] = "flux_mass";
1877 static const char __pyx_k_flux_umom[] = "flux_umom";
1878 static const char __pyx_k_flux_vmom[] = "flux_vmom";
1879 static const char __pyx_k_flux_wmom[] = "flux_wmom";
1880 static const char __pyx_k_penalty_m[] = "penalty_m";
1881 static const char __pyx_k_penalty_n[] = "penalty_n";
1882 static const char __pyx_k_penalty_w[] = "penalty_w";
1883 static const char __pyx_k_rowptr_mm[] = "rowptr_mm";
1884 static const char __pyx_k_rowptr_mw[] = "rowptr_mw";
1885 static const char __pyx_k_rowptr_nn[] = "rowptr_nn";
1886 static const char __pyx_k_rowptr_wm[] = "rowptr_wm";
1887 static const char __pyx_k_rowptr_ww[] = "rowptr_ww";
1888 static const char __pyx_k_sonicFlux[] = "sonicFlux";
1889 static const char __pyx_k_bc_dfn_dsw[] = "bc_dfn_dsw";
1890 static const char __pyx_k_bc_dfw_dsw[] = "bc_dfw_dsw";
1891 static const char __pyx_k_dH_element[] = "dH_element";
1892 static const char __pyx_k_df_element[] = "df_element";
1893 static const char __pyx_k_df_mass_du[] = "df_mass_du";
1894 static const char __pyx_k_df_mass_dv[] = "df_mass_dv";
1895 static const char __pyx_k_df_mass_dw[] = "df_mass_dw";
1896 static const char __pyx_k_df_umom_dp[] = "df_umom_dp";
1897 static const char __pyx_k_df_umom_du[] = "df_umom_du";
1898 static const char __pyx_k_df_umom_dv[] = "df_umom_dv";
1899 static const char __pyx_k_df_umom_dw[] = "df_umom_dw";
1900 static const char __pyx_k_df_vmom_dp[] = "df_vmom_dp";
1901 static const char __pyx_k_df_vmom_du[] = "df_vmom_du";
1902 static const char __pyx_k_df_vmom_dv[] = "df_vmom_dv";
1903 static const char __pyx_k_df_vmom_dw[] = "df_vmom_dw";
1904 static const char __pyx_k_df_wmom_dp[] = "df_wmom_dp";
1905 static const char __pyx_k_df_wmom_du[] = "df_wmom_du";
1906 static const char __pyx_k_df_wmom_dv[] = "df_wmom_dv";
1907 static const char __pyx_k_df_wmom_dw[] = "df_wmom_dw";
1908 static const char __pyx_k_dflux_left[] = "dflux_left";
1909 static const char __pyx_k_dfluxn_dsw[] = "dfluxn_dsw";
1910 static const char __pyx_k_dfluxpu_dp[] = "dfluxpu_dp";
1911 static const char __pyx_k_dfluxpv_dp[] = "dfluxpv_dp";
1912 static const char __pyx_k_dfluxpw_dp[] = "dfluxpw_dp";
1913 static const char __pyx_k_dfluxw_dsw[] = "dfluxw_dsw";
1914 static const char __pyx_k_dpsi_n_dsw[] = "dpsi_n_dsw";
1915 static const char __pyx_k_grad_phi_m[] = "grad_phi_m";
1916 static const char __pyx_k_grad_phi_n[] = "grad_phi_n";
1917 static const char __pyx_k_grad_phi_w[] = "grad_phi_w";
1918 static const char __pyx_k_inflowFlag[] = "inflowFlag";
1919 static const char __pyx_k_inflowFlux[] = "inflowFlux";
1920 static const char __pyx_k_lambda_bar[] = "lambda_bar";
1921 static const char __pyx_k_sonicPoint[] = "sonicPoint";
1922 static const char __pyx_k_ImportError[] = "ImportError";
1923 static const char __pyx_k_bc_grad_phi[] = "bc_grad_phi";
1924 static const char __pyx_k_dflux_right[] = "dflux_right";
1925 static const char __pyx_k_dstress_u_u[] = "dstress_u_u";
1926 static const char __pyx_k_dstress_u_v[] = "dstress_u_v";
1927 static const char __pyx_k_dstress_u_w[] = "dstress_u_w";
1928 static const char __pyx_k_dstress_v_u[] = "dstress_v_u";
1929 static const char __pyx_k_dstress_v_v[] = "dstress_v_v";
1930 static const char __pyx_k_dstress_v_w[] = "dstress_v_w";
1931 static const char __pyx_k_dstress_w_u[] = "dstress_w_u";
1932 static const char __pyx_k_dstress_w_v[] = "dstress_w_v";
1933 static const char __pyx_k_dstress_w_w[] = "dstress_w_w";
1934 static const char __pyx_k_bc_dfn_dpsiw[] = "bc_dfn_dpsiw";
1935 static const char __pyx_k_bc_dfw_dpsiw[] = "bc_dfw_dpsiw";
1936 static const char __pyx_k_dfluxn_dpsiw[] = "dfluxn_dpsiw";
1937 static const char __pyx_k_dfluxw_dpsiw[] = "dfluxw_dpsiw";
1938 static const char __pyx_k_dpsi_n_dpsic[] = "dpsi_n_dpsic";
1939 static const char __pyx_k_dpsi_n_dpsiw[] = "dpsi_n_dpsiw";
1940 static const char __pyx_k_fluxJacobian[] = "fluxJacobian";
1941 static const char __pyx_k_safetyFactor[] = "safetyFactor";
1942 static const char __pyx_k_stressFlux_u[] = "stressFlux_u";
1943 static const char __pyx_k_stressFlux_v[] = "stressFlux_v";
1944 static const char __pyx_k_stressFlux_w[] = "stressFlux_w";
1945 static const char __pyx_k_advectiveFlux[] = "advectiveFlux";
1946 static const char __pyx_k_bc_grad_phi_m[] = "bc_grad_phi_m";
1947 static const char __pyx_k_bc_grad_phi_n[] = "bc_grad_phi_n";
1948 static const char __pyx_k_bc_grad_phi_w[] = "bc_grad_phi_w";
1949 static const char __pyx_k_dflux_mass_dp[] = "dflux_mass_dp";
1950 static const char __pyx_k_dflux_mass_du[] = "dflux_mass_du";
1951 static const char __pyx_k_dflux_mass_dv[] = "dflux_mass_dv";
1952 static const char __pyx_k_dflux_mass_dw[] = "dflux_mass_dw";
1953 static const char __pyx_k_dflux_umom_dp[] = "dflux_umom_dp";
1954 static const char __pyx_k_dflux_umom_du[] = "dflux_umom_du";
1955 static const char __pyx_k_dflux_umom_dv[] = "dflux_umom_dv";
1956 static const char __pyx_k_dflux_umom_dw[] = "dflux_umom_dw";
1957 static const char __pyx_k_dflux_vmom_dp[] = "dflux_vmom_dp";
1958 static const char __pyx_k_dflux_vmom_du[] = "dflux_vmom_du";
1959 static const char __pyx_k_dflux_vmom_dv[] = "dflux_vmom_dv";
1960 static const char __pyx_k_dflux_vmom_dw[] = "dflux_vmom_dw";
1961 static const char __pyx_k_dflux_wmom_dp[] = "dflux_wmom_dp";
1962 static const char __pyx_k_dflux_wmom_du[] = "dflux_wmom_du";
1963 static const char __pyx_k_dflux_wmom_dv[] = "dflux_wmom_dv";
1964 static const char __pyx_k_dflux_wmom_dw[] = "dflux_wmom_dw";
1965 static const char __pyx_k_diffusiveFlux[] = "diffusiveFlux";
1966 static const char __pyx_k_isDOFBoundary[] = "isDOFBoundary";
1967 static const char __pyx_k_isSeepageFace[] = "isSeepageFace";
1968 static const char __pyx_k_penalty_floor[] = "penalty_floor";
1969 static const char __pyx_k_scale_penalty[] = "scale_penalty";
1970 static const char __pyx_k_setInflowFlux[] = "setInflowFlux";
1971 static const char __pyx_k_speedEvalFlag[] = "speedEvalFlag";
1972 static const char __pyx_k_cnumericalFlux[] = "cnumericalFlux";
1973 static const char __pyx_k_advectiveFlux_m[] = "advectiveFlux_m";
1974 static const char __pyx_k_fluxJacobian_eb[] = "fluxJacobian_eb";
1975 static const char __pyx_k_fluxJacobian_mm[] = "fluxJacobian_mm";
1976 static const char __pyx_k_fluxJacobian_mw[] = "fluxJacobian_mw";
1977 static const char __pyx_k_fluxJacobian_nn[] = "fluxJacobian_nn";
1978 static const char __pyx_k_fluxJacobian_nw[] = "fluxJacobian_nw";
1979 static const char __pyx_k_fluxJacobian_wm[] = "fluxJacobian_wm";
1980 static const char __pyx_k_fluxJacobian_wn[] = "fluxJacobian_wn";
1981 static const char __pyx_k_fluxJacobian_ww[] = "fluxJacobian_ww";
1982 static const char __pyx_k_isDOFBoundary_p[] = "isDOFBoundary_p";
1983 static const char __pyx_k_isDOFBoundary_u[] = "isDOFBoundary_u";
1984 static const char __pyx_k_isDOFBoundary_v[] = "isDOFBoundary_v";
1985 static const char __pyx_k_isDOFBoundary_w[] = "isDOFBoundary_w";
1986 static const char __pyx_k_applySeepageFace[] = "applySeepageFace";
1987 static const char __pyx_k_diffusiveFlux_mm[] = "diffusiveFlux_mm";
1988 static const char __pyx_k_diffusiveFlux_mw[] = "diffusiveFlux_mw";
1989 static const char __pyx_k_diffusiveFlux_nn[] = "diffusiveFlux_nn";
1990 static const char __pyx_k_diffusiveFlux_wm[] = "diffusiveFlux_wm";
1991 static const char __pyx_k_diffusiveFlux_ww[] = "diffusiveFlux_ww";
1992 static const char __pyx_k_elementDiameters[] = "elementDiameters";
1993 static const char __pyx_k_fluxBoundaryFlag[] = "fluxBoundaryFlag";
1994 static const char __pyx_k_fluxJacobian_u_u[] = "fluxJacobian_u_u";
1995 static const char __pyx_k_fluxJacobian_u_v[] = "fluxJacobian_u_v";
1996 static const char __pyx_k_fluxJacobian_u_w[] = "fluxJacobian_u_w";
1997 static const char __pyx_k_fluxJacobian_v_u[] = "fluxJacobian_v_u";
1998 static const char __pyx_k_fluxJacobian_v_v[] = "fluxJacobian_v_v";
1999 static const char __pyx_k_fluxJacobian_v_w[] = "fluxJacobian_v_w";
2000 static const char __pyx_k_fluxJacobian_w_u[] = "fluxJacobian_w_u";
2001 static const char __pyx_k_fluxJacobian_w_v[] = "fluxJacobian_w_v";
2002 static const char __pyx_k_fluxJacobian_w_w[] = "fluxJacobian_w_w";
2003 static const char __pyx_k_isDOFBoundary_sw[] = "isDOFBoundary_sw";
2004 static const char __pyx_k_isDOFBoundary_um[] = "isDOFBoundary_um";
2005 static const char __pyx_k_isDOFBoundary_un[] = "isDOFBoundary_un";
2006 static const char __pyx_k_isDOFBoundary_uw[] = "isDOFBoundary_uw";
2007 static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
2008 static const char __pyx_k_isDOFBoundary_psiw[] = "isDOFBoundary_psiw";
2009 static const char __pyx_k_isStressBoundary_u[] = "isStressBoundary_u";
2010 static const char __pyx_k_isStressBoundary_v[] = "isStressBoundary_v";
2011 static const char __pyx_k_isStressBoundary_w[] = "isStressBoundary_w";
2012 static const char __pyx_k_lambda_bar_element[] = "lambda_bar_element";
2013 static const char __pyx_k_nDOF_trial_element[] = "nDOF_trial_element";
2014 static const char __pyx_k_dadvectiveFlux_m_dw[] = "dadvectiveFlux_m_dw";
2015 static const char __pyx_k_fluxBoundaryFlag_un[] = "fluxBoundaryFlag_un";
2016 static const char __pyx_k_fluxBoundaryFlag_uw[] = "fluxBoundaryFlag_uw";
2017 static const char __pyx_k_fluxJacobian_2sided[] = "fluxJacobian_2sided";
2018 static const char __pyx_k_fluxJacobian_exterior[] = "fluxJacobian_exterior";
2019 static const char __pyx_k_elementBoundaryElements[] = "elementBoundaryElements";
2020 static const char __pyx_k_isDiffusiveFluxBoundary[] = "isDiffusiveFluxBoundary";
2021 static const char __pyx_k_applySeepageFaceJacobian[] = "applySeepageFaceJacobian";
2022 static const char __pyx_k_exteriorElementBoundaries[] = "exteriorElementBoundaries";
2023 static const char __pyx_k_interiorElementBoundaries[] = "interiorElementBoundaries";
2024 static const char __pyx_k_nQuadraturePoints_element[] = "nQuadraturePoints_element";
2025 static const char __pyx_k_nElementBoundaries_element[] = "nElementBoundaries_element";
2026 static const char __pyx_k_proteus_cnumericalFlux_pyx[] = "proteus/cnumericalFlux.pyx";
2027 static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import";
2028 static const char __pyx_k_calculateDiffusionMatrixSplittin[] = "calculateDiffusionMatrixSplittings_LDG_sd";
2029 static const char __pyx_k_calculateExteriorLesaintRaviartN[] = "calculateExteriorLesaintRaviartNumericalFlux";
2030 static const char __pyx_k_calculateExteriorNumericalAdvect[] = "calculateExteriorNumericalAdvectiveFlux_NoBC";
2031 static const char __pyx_k_calculateExteriorNumericalDiffus[] = "calculateExteriorNumericalDiffusiveFlux";
2032 static const char __pyx_k_calculateExteriorNumericalFluxJa[] = "calculateExteriorNumericalFluxJacobianRichards_sd";
2033 static const char __pyx_k_calculateExteriorNumericalFluxRi[] = "calculateExteriorNumericalFluxRichards_sd";
2034 static const char __pyx_k_calculateExteriorNumericalFluxSh[] = "calculateExteriorNumericalFluxShallowWater_1D";
2035 static const char __pyx_k_calculateGlobalExteriorInflowNum[] = "calculateGlobalExteriorInflowNumericalAdvectiveFlux";
2036 static const char __pyx_k_calculateGlobalExteriorLesaintRa[] = "calculateGlobalExteriorLesaintRaviartNumericalFlux";
2037 static const char __pyx_k_calculateGlobalExteriorNumerical[] = "calculateGlobalExteriorNumericalFluxDarcyFCFF";
2038 static const char __pyx_k_calculateInteriorChengShuNumeric[] = "calculateInteriorChengShuNumericalFlux";
2039 static const char __pyx_k_calculateInteriorLesaintRaviartN[] = "calculateInteriorLesaintRaviartNumericalFlux";
2040 static const char __pyx_k_calculateInteriorNumericalAdvect[] = "calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound";
2041 static const char __pyx_k_calculateInteriorNumericalDiffus[] = "calculateInteriorNumericalDiffusiveFlux";
2042 static const char __pyx_k_calculateInteriorNumericalFluxSh[] = "calculateInteriorNumericalFluxShallowWater_1D";
2043 static const char __pyx_k_elementBoundaryLocalElementBound[] = "elementBoundaryLocalElementBoundaries";
2044 static const char __pyx_k_nExteriorElementBoundaries_globa[] = "nExteriorElementBoundaries_global";
2045 static const char __pyx_k_nQuadraturePoints_elementBoundar[] = "nQuadraturePoints_elementBoundary";
2046 static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import";
2047 static const char __pyx_k_updateExteriorNumericalAdvective[] = "updateExteriorNumericalAdvectiveFluxJacobian";
2048 static const char __pyx_k_updateExteriorNumericalDiffusive[] = "updateExteriorNumericalDiffusiveFluxJacobian_sd";
2049 static const char __pyx_k_updateExteriorNumericalStressFlu[] = "updateExteriorNumericalStressFluxJacobian";
2050 static const char __pyx_k_updateGlobalExteriorNumericalAdv[] = "updateGlobalExteriorNumericalAdvectiveFluxJacobian";
2051 static const char __pyx_k_updateGlobalExteriorNumericalDif[] = "updateGlobalExteriorNumericalDiffusiveFluxJacobian";
2052 static const char __pyx_k_updateInteriorNumericalAdvective[] = "updateInteriorNumericalAdvectiveFluxJacobian";
2053 static const char __pyx_k_updateInteriorNumericalDiffusive[] = "updateInteriorNumericalDiffusiveFluxJacobian";
2054 static const char __pyx_k_updateInteriorTwoSidedNumericalF[] = "updateInteriorTwoSidedNumericalFluxJacobian";
2055 static const char __pyx_k_calculateExteriorNumericalAdvect_2[] = "calculateExteriorNumericalAdvectiveFlux";
2056 static const char __pyx_k_calculateExteriorNumericalAdvect_3[] = "calculateExteriorNumericalAdvectiveFluxStokes2D";
2057 static const char __pyx_k_calculateExteriorNumericalAdvect_4[] = "calculateExteriorNumericalAdvectiveFluxStokes3D";
2058 static const char __pyx_k_calculateExteriorNumericalAdvect_5[] = "calculateExteriorNumericalAdvectiveFluxNavierStokes3D";
2059 static const char __pyx_k_calculateExteriorNumericalAdvect_6[] = "calculateExteriorNumericalAdvectiveFluxRusanov";
2060 static const char __pyx_k_calculateExteriorNumericalAdvect_7[] = "calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound";
2061 static const char __pyx_k_calculateExteriorNumericalAdvect_8[] = "calculateExteriorNumericalAdvectiveFlux_free";
2062 static const char __pyx_k_calculateExteriorNumericalAdvect_9[] = "calculateExteriorNumericalAdvectiveFluxStokesP2D";
2063 static const char __pyx_k_calculateExteriorNumericalDiffus_2[] = "calculateExteriorNumericalDiffusiveFlux_sd";
2064 static const char __pyx_k_calculateExteriorNumericalDiffus_3[] = "calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd";
2065 static const char __pyx_k_calculateExteriorNumericalDiffus_4[] = "calculateExteriorNumericalDiffusiveFlux_free";
2066 static const char __pyx_k_calculateExteriorNumericalDiffus_5[] = "calculateExteriorNumericalDiffusiveFlux_free_sd";
2067 static const char __pyx_k_calculateExteriorNumericalDiffus_6[] = "calculateExteriorNumericalDiffusiveFlux_LDG_upwind";
2068 static const char __pyx_k_calculateExteriorNumericalDiffus_7[] = "calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd";
2069 static const char __pyx_k_calculateExteriorNumericalFluxSh_2[] = "calculateExteriorNumericalFluxShallowWater_2D";
2070 static const char __pyx_k_calculateExteriorNumericalFluxSh_3[] = "calculateExteriorNumericalFluxShallowWaterHLL_1D";
2071 static const char __pyx_k_calculateGlobalExteriorNumerical_2[] = "calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian";
2072 static const char __pyx_k_calculateGlobalExteriorNumerical_3[] = "calculateGlobalExteriorNumericalFluxDarcyFCFF_sd";
2073 static const char __pyx_k_calculateGlobalExteriorNumerical_4[] = "calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd";
2074 static const char __pyx_k_calculateGlobalExteriorNumerical_5[] = "calculateGlobalExteriorNumericalFluxDarcyFC";
2075 static const char __pyx_k_calculateGlobalExteriorNumerical_6[] = "calculateGlobalExteriorNumericalFluxDarcyFC_sd";
2076 static const char __pyx_k_calculateGlobalExteriorNumerical_7[] = "calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian";
2077 static const char __pyx_k_calculateGlobalExteriorNumerical_8[] = "calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd";
2078 static const char __pyx_k_calculateGlobalExteriorNumerical_9[] = "calculateGlobalExteriorNumericalFluxDarcyFCPP";
2079 static const char __pyx_k_calculateInteriorNumericalAdvect_2[] = "calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint";
2080 static const char __pyx_k_calculateInteriorNumericalAdvect_3[] = "calculateInteriorNumericalAdvectiveFluxRusanov";
2081 static const char __pyx_k_calculateInteriorNumericalAdvect_4[] = "calculateInteriorNumericalAdvectiveFlux";
2082 static const char __pyx_k_calculateInteriorNumericalAdvect_5[] = "calculateInteriorNumericalAdvectiveFlux_average";
2083 static const char __pyx_k_calculateInteriorNumericalDiffus_2[] = "calculateInteriorNumericalDiffusiveFlux_LDG_upwind";
2084 static const char __pyx_k_calculateInteriorNumericalDiffus_3[] = "calculateInteriorNumericalDiffusiveFlux_sd";
2085 static const char __pyx_k_calculateInteriorNumericalDiffus_4[] = "calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd";
2086 static const char __pyx_k_calculateInteriorNumericalFluxSh_2[] = "calculateInteriorNumericalFluxShallowWater_2D";
2087 static const char __pyx_k_calculateInteriorNumericalFluxSh_3[] = "calculateInteriorNumericalFluxShallowWaterHLL_1D";
2088 static const char __pyx_k_updateExteriorNumericalAdvective_2[] = "updateExteriorNumericalAdvectiveFluxJacobian_free";
2089 static const char __pyx_k_updateExteriorNumericalDiffusive_2[] = "updateExteriorNumericalDiffusiveFluxJacobian_free_sd";
2090 static const char __pyx_k_updateExteriorNumericalDiffusive_3[] = "updateExteriorNumericalDiffusiveFluxJacobian";
2091 static const char __pyx_k_updateExteriorNumericalDiffusive_4[] = "updateExteriorNumericalDiffusiveFluxJacobian_free";
2092 static const char __pyx_k_updateExteriorNumericalDiffusive_5[] = "updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind";
2093 static const char __pyx_k_updateExteriorNumericalDiffusive_6[] = "updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd";
2094 static const char __pyx_k_updateExteriorNumericalDiffusive_7[] = "updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd";
2095 static const char __pyx_k_updateGlobalExteriorNumericalAdv_2[] = "updateGlobalExteriorNumericalAdvectiveFluxJacobian_free";
2096 static const char __pyx_k_updateGlobalExteriorNumericalDif_2[] = "updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd";
2097 static const char __pyx_k_updateGlobalExteriorNumericalDif_3[] = "updateGlobalExteriorNumericalDiffusiveFluxJacobian_free";
2098 static const char __pyx_k_updateGlobalExteriorNumericalDif_4[] = "updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd";
2099 static const char __pyx_k_updateGlobalExteriorNumericalDif_5[] = "updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind";
2100 static const char __pyx_k_updateGlobalExteriorNumericalDif_6[] = "updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd";
2101 static const char __pyx_k_updateGlobalExteriorNumericalDif_7[] = "updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd";
2102 static const char __pyx_k_updateInteriorNumericalDiffusive_2[] = "updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind";
2103 static const char __pyx_k_updateInteriorNumericalDiffusive_3[] = "updateInteriorNumericalDiffusiveFluxJacobian_sd";
2104 static const char __pyx_k_updateInteriorNumericalDiffusive_4[] = "updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd";
2105 static const char __pyx_k_calculateExteriorNumericalAdvect_10[] = "calculateExteriorNumericalAdvectiveFluxNavierStokes2D";
2106 static const char __pyx_k_calculateExteriorNumericalAdvect_11[] = "calculateExteriorNumericalAdvectiveFluxStokesP3D";
2107 static const char __pyx_k_calculateExteriorNumericalAdvect_12[] = "calculateExteriorNumericalAdvectiveFlux_average";
2108 static const char __pyx_k_calculateGlobalExteriorNumerical_10[] = "calculateGlobalExteriorNumericalFluxDarcyFCPP_sd";
2109 static const char __pyx_k_calculateGlobalExteriorNumerical_11[] = "calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian";
2110 static const char __pyx_k_calculateGlobalExteriorNumerical_12[] = "calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd";
2111 static const char __pyx_k_calculateGlobalExteriorNumerical_13[] = "calculateGlobalExteriorNumericalStressFlux";
2112 static const char __pyx_k_calculateGlobalExteriorNumerical_14[] = "calculateGlobalExteriorNumericalAdvectiveFluxRusanov";
2113 static const char __pyx_k_calculateGlobalExteriorNumerical_15[] = "calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound";
2114 static const char __pyx_k_calculateGlobalExteriorNumerical_16[] = "calculateGlobalExteriorNumericalDiffusiveFlux";
2115 static const char __pyx_k_calculateGlobalExteriorNumerical_17[] = "calculateGlobalExteriorNumericalDiffusiveFlux_sd";
2116 static const char __pyx_k_calculateGlobalExteriorNumerical_18[] = "calculateGlobalExteriorNumericalDiffusiveFlux_free";
2117 static const char __pyx_k_calculateGlobalExteriorNumerical_19[] = "calculateGlobalExteriorNumericalDiffusiveFlux_free_sd";
2118 static const char __pyx_k_calculateGlobalExteriorNumerical_20[] = "calculateGlobalExteriorNumericalAdvectiveFlux_NoBC";
2119 static const char __pyx_k_calculateGlobalExteriorNumerical_21[] = "calculateGlobalExteriorNumericalAdvectiveFlux";
2120 static const char __pyx_k_calculateGlobalExteriorNumerical_22[] = "calculateGlobalExteriorNumericalAdvectiveFlux_free";
2121 static const char __pyx_k_calculateGlobalExteriorNumerical_23[] = "calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D";
2122 static const char __pyx_k_calculateGlobalExteriorNumerical_24[] = "calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D";
2123 static const char __pyx_k_calculateGlobalExteriorNumerical_25[] = "calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D";
2124 static const char __pyx_k_calculateGlobalExteriorNumerical_26[] = "calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D";
2125 static const char __pyx_k_calculateGlobalExteriorNumerical_27[] = "calculateGlobalExteriorNumericalAdvectiveFlux_average";
2126 static const char __pyx_k_calculateGlobalExteriorNumerical_28[] = "calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind";
2127 static const char __pyx_k_calculateGlobalExteriorNumerical_29[] = "calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd";
2128 static const char __pyx_k_calculateGlobalExteriorNumerical_30[] = "calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC";
2129 static const char __pyx_k_calculateGlobalExteriorNumerical_31[] = "calculateGlobalExteriorNumericalFluxDarcySplitPressure";
2130 static const char __pyx_k_calculateGlobalExteriorNumerical_32[] = "calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd";
2131 static const char __pyx_k_calculateGlobalExteriorNumerical_33[] = "calculateGlobalExteriorNumericalAdvectiveFluxStokes2D";
2132 static const char __pyx_k_calculateGlobalExteriorNumerical_34[] = "calculateGlobalExteriorNumericalAdvectiveFluxStokes3D";
2133 static PyObject *__pyx_n_s_DV;
2134 static PyObject *__pyx_n_s_DV_eb;
2135 static PyObject *__pyx_n_s_H;
2136 static PyObject *__pyx_n_s_H_element;
2137 static PyObject *__pyx_n_s_ImportError;
2138 static PyObject *__pyx_n_s_K;
2139 static PyObject *__pyx_n_s_K_rho_g;
2140 static PyObject *__pyx_n_s_V;
2141 static PyObject *__pyx_n_s_a;
2142 static PyObject *__pyx_n_s_aHat;
2143 static PyObject *__pyx_n_s_aSplit;
2144 static PyObject *__pyx_n_s_aTilde;
2145 static PyObject *__pyx_n_s_a_mm;
2146 static PyObject *__pyx_n_s_a_mw;
2147 static PyObject *__pyx_n_s_a_nn;
2148 static PyObject *__pyx_n_s_a_wm;
2149 static PyObject *__pyx_n_s_a_ww;
2150 static PyObject *__pyx_n_s_advectiveFlux;
2151 static PyObject *__pyx_n_s_advectiveFlux_m;
2152 static PyObject *__pyx_n_s_applySeepageFace;
2153 static PyObject *__pyx_n_s_applySeepageFaceJacobian;
2154 static PyObject *__pyx_n_s_bc_H;
2155 static PyObject *__pyx_n_s_bc_a;
2156 static PyObject *__pyx_n_s_bc_a_mm;
2157 static PyObject *__pyx_n_s_bc_a_mw;
2158 static PyObject *__pyx_n_s_bc_a_nn;
2159 static PyObject *__pyx_n_s_bc_a_wm;
2160 static PyObject *__pyx_n_s_bc_a_ww;
2161 static PyObject *__pyx_n_s_bc_dH;
2162 static PyObject *__pyx_n_s_bc_df;
2163 static PyObject *__pyx_n_s_bc_dfn_dpsiw;
2164 static PyObject *__pyx_n_s_bc_dfn_dsw;
2165 static PyObject *__pyx_n_s_bc_dfw_dpsiw;
2166 static PyObject *__pyx_n_s_bc_dfw_dsw;
2167 static PyObject *__pyx_n_s_bc_f;
2168 static PyObject *__pyx_n_s_bc_f_m;
2169 static PyObject *__pyx_n_s_bc_f_mass;
2170 static PyObject *__pyx_n_s_bc_f_umom;
2171 static PyObject *__pyx_n_s_bc_f_vmom;
2172 static PyObject *__pyx_n_s_bc_f_wmom;
2173 static PyObject *__pyx_n_s_bc_fn;
2174 static PyObject *__pyx_n_s_bc_fpu;
2175 static PyObject *__pyx_n_s_bc_fpv;
2176 static PyObject *__pyx_n_s_bc_fpw;
2177 static PyObject *__pyx_n_s_bc_fw;
2178 static PyObject *__pyx_n_s_bc_grad_phi;
2179 static PyObject *__pyx_n_s_bc_grad_phi_m;
2180 static PyObject *__pyx_n_s_bc_grad_phi_n;
2181 static PyObject *__pyx_n_s_bc_grad_phi_w;
2182 static PyObject *__pyx_n_s_bc_p;
2183 static PyObject *__pyx_n_s_bc_psi_c;
2184 static PyObject *__pyx_n_s_bc_psi_n;
2185 static PyObject *__pyx_n_s_bc_psi_w;
2186 static PyObject *__pyx_n_s_bc_psiw;
2187 static PyObject *__pyx_n_s_bc_s_w;
2188 static PyObject *__pyx_n_s_bc_sw;
2189 static PyObject *__pyx_n_s_bc_u;
2190 static PyObject *__pyx_n_s_bc_u_m;
2191 static PyObject *__pyx_n_s_bc_u_w;
2192 static PyObject *__pyx_n_s_bc_v;
2193 static PyObject *__pyx_n_s_bc_w;
2194 static PyObject *__pyx_n_s_calculateDiffusionMatrixSplittin;
2195 static PyObject *__pyx_n_s_calculateExteriorLesaintRaviartN;
2196 static PyObject *__pyx_n_s_calculateExteriorNumericalAdvect;
2197 static PyObject *__pyx_n_s_calculateExteriorNumericalAdvect_10;
2198 static PyObject *__pyx_n_s_calculateExteriorNumericalAdvect_11;
2199 static PyObject *__pyx_n_s_calculateExteriorNumericalAdvect_12;
2200 static PyObject *__pyx_n_s_calculateExteriorNumericalAdvect_2;
2201 static PyObject *__pyx_n_s_calculateExteriorNumericalAdvect_3;
2202 static PyObject *__pyx_n_s_calculateExteriorNumericalAdvect_4;
2203 static PyObject *__pyx_n_s_calculateExteriorNumericalAdvect_5;
2204 static PyObject *__pyx_n_s_calculateExteriorNumericalAdvect_6;
2205 static PyObject *__pyx_n_s_calculateExteriorNumericalAdvect_7;
2206 static PyObject *__pyx_n_s_calculateExteriorNumericalAdvect_8;
2207 static PyObject *__pyx_n_s_calculateExteriorNumericalAdvect_9;
2208 static PyObject *__pyx_n_s_calculateExteriorNumericalDiffus;
2209 static PyObject *__pyx_n_s_calculateExteriorNumericalDiffus_2;
2210 static PyObject *__pyx_n_s_calculateExteriorNumericalDiffus_3;
2211 static PyObject *__pyx_n_s_calculateExteriorNumericalDiffus_4;
2212 static PyObject *__pyx_n_s_calculateExteriorNumericalDiffus_5;
2213 static PyObject *__pyx_n_s_calculateExteriorNumericalDiffus_6;
2214 static PyObject *__pyx_n_s_calculateExteriorNumericalDiffus_7;
2215 static PyObject *__pyx_n_s_calculateExteriorNumericalFluxJa;
2216 static PyObject *__pyx_n_s_calculateExteriorNumericalFluxRi;
2217 static PyObject *__pyx_n_s_calculateExteriorNumericalFluxSh;
2218 static PyObject *__pyx_n_s_calculateExteriorNumericalFluxSh_2;
2219 static PyObject *__pyx_n_s_calculateExteriorNumericalFluxSh_3;
2220 static PyObject *__pyx_n_s_calculateGlobalExteriorInflowNum;
2221 static PyObject *__pyx_n_s_calculateGlobalExteriorLesaintRa;
2222 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical;
2223 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_10;
2224 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_11;
2225 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_12;
2226 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_13;
2227 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_14;
2228 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_15;
2229 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_16;
2230 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_17;
2231 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_18;
2232 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_19;
2233 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_2;
2234 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_20;
2235 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_21;
2236 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_22;
2237 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_23;
2238 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_24;
2239 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_25;
2240 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_26;
2241 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_27;
2242 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_28;
2243 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_29;
2244 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_3;
2245 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_30;
2246 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_31;
2247 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_32;
2248 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_33;
2249 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_34;
2250 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_4;
2251 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_5;
2252 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_6;
2253 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_7;
2254 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_8;
2255 static PyObject *__pyx_n_s_calculateGlobalExteriorNumerical_9;
2256 static PyObject *__pyx_n_s_calculateInteriorChengShuNumeric;
2257 static PyObject *__pyx_n_s_calculateInteriorLesaintRaviartN;
2258 static PyObject *__pyx_n_s_calculateInteriorNumericalAdvect;
2259 static PyObject *__pyx_n_s_calculateInteriorNumericalAdvect_2;
2260 static PyObject *__pyx_n_s_calculateInteriorNumericalAdvect_3;
2261 static PyObject *__pyx_n_s_calculateInteriorNumericalAdvect_4;
2262 static PyObject *__pyx_n_s_calculateInteriorNumericalAdvect_5;
2263 static PyObject *__pyx_n_s_calculateInteriorNumericalDiffus;
2264 static PyObject *__pyx_n_s_calculateInteriorNumericalDiffus_2;
2265 static PyObject *__pyx_n_s_calculateInteriorNumericalDiffus_3;
2266 static PyObject *__pyx_n_s_calculateInteriorNumericalDiffus_4;
2267 static PyObject *__pyx_n_s_calculateInteriorNumericalFluxSh;
2268 static PyObject *__pyx_n_s_calculateInteriorNumericalFluxSh_2;
2269 static PyObject *__pyx_n_s_calculateInteriorNumericalFluxSh_3;
2270 static PyObject *__pyx_n_s_cline_in_traceback;
2271 static PyObject *__pyx_n_s_cnumericalFlux;
2272 static PyObject *__pyx_n_s_colind;
2273 static PyObject *__pyx_n_s_colind_mm;
2274 static PyObject *__pyx_n_s_colind_mw;
2275 static PyObject *__pyx_n_s_colind_nn;
2276 static PyObject *__pyx_n_s_colind_wm;
2277 static PyObject *__pyx_n_s_colind_ww;
2278 static PyObject *__pyx_n_s_dH;
2279 static PyObject *__pyx_n_s_dH_element;
2280 static PyObject *__pyx_n_s_dK;
2281 static PyObject *__pyx_n_s_dK_rho_g;
2282 static PyObject *__pyx_n_s_da;
2283 static PyObject *__pyx_n_s_da_mm_dm;
2284 static PyObject *__pyx_n_s_da_mm_dw;
2285 static PyObject *__pyx_n_s_da_mw_dm;
2286 static PyObject *__pyx_n_s_da_mw_dw;
2287 static PyObject *__pyx_n_s_da_nn_dn;
2288 static PyObject *__pyx_n_s_da_nn_dw;
2289 static PyObject *__pyx_n_s_da_wm_dm;
2290 static PyObject *__pyx_n_s_da_wm_dw;
2291 static PyObject *__pyx_n_s_da_ww_dn;
2292 static PyObject *__pyx_n_s_da_ww_dw;
2293 static PyObject *__pyx_n_s_dadvectiveFlux_m_dw;
2294 static PyObject *__pyx_n_s_df;
2295 static PyObject *__pyx_n_s_df_du;
2296 static PyObject *__pyx_n_s_df_dv;
2297 static PyObject *__pyx_n_s_df_dw;
2298 static PyObject *__pyx_n_s_df_element;
2299 static PyObject *__pyx_n_s_df_m_dw;
2300 static PyObject *__pyx_n_s_df_mass_du;
2301 static PyObject *__pyx_n_s_df_mass_dv;
2302 static PyObject *__pyx_n_s_df_mass_dw;
2303 static PyObject *__pyx_n_s_df_umom_dp;
2304 static PyObject *__pyx_n_s_df_umom_du;
2305 static PyObject *__pyx_n_s_df_umom_dv;
2306 static PyObject *__pyx_n_s_df_umom_dw;
2307 static PyObject *__pyx_n_s_df_vmom_dp;
2308 static PyObject *__pyx_n_s_df_vmom_du;
2309 static PyObject *__pyx_n_s_df_vmom_dv;
2310 static PyObject *__pyx_n_s_df_vmom_dw;
2311 static PyObject *__pyx_n_s_df_wmom_dp;
2312 static PyObject *__pyx_n_s_df_wmom_du;
2313 static PyObject *__pyx_n_s_df_wmom_dv;
2314 static PyObject *__pyx_n_s_df_wmom_dw;
2315 static PyObject *__pyx_n_s_dflux;
2316 static PyObject *__pyx_n_s_dflux_du;
2317 static PyObject *__pyx_n_s_dflux_dv;
2318 static PyObject *__pyx_n_s_dflux_dw;
2319 static PyObject *__pyx_n_s_dflux_left;
2320 static PyObject *__pyx_n_s_dflux_mass_dp;
2321 static PyObject *__pyx_n_s_dflux_mass_du;
2322 static PyObject *__pyx_n_s_dflux_mass_dv;
2323 static PyObject *__pyx_n_s_dflux_mass_dw;
2324 static PyObject *__pyx_n_s_dflux_right;
2325 static PyObject *__pyx_n_s_dflux_umom_dp;
2326 static PyObject *__pyx_n_s_dflux_umom_du;
2327 static PyObject *__pyx_n_s_dflux_umom_dv;
2328 static PyObject *__pyx_n_s_dflux_umom_dw;
2329 static PyObject *__pyx_n_s_dflux_vmom_dp;
2330 static PyObject *__pyx_n_s_dflux_vmom_du;
2331 static PyObject *__pyx_n_s_dflux_vmom_dv;
2332 static PyObject *__pyx_n_s_dflux_vmom_dw;
2333 static PyObject *__pyx_n_s_dflux_wmom_dp;
2334 static PyObject *__pyx_n_s_dflux_wmom_du;
2335 static PyObject *__pyx_n_s_dflux_wmom_dv;
2336 static PyObject *__pyx_n_s_dflux_wmom_dw;
2337 static PyObject *__pyx_n_s_dfluxn_dpsiw;
2338 static PyObject *__pyx_n_s_dfluxn_dsw;
2339 static PyObject *__pyx_n_s_dfluxpu_dp;
2340 static PyObject *__pyx_n_s_dfluxpv_dp;
2341 static PyObject *__pyx_n_s_dfluxpw_dp;
2342 static PyObject *__pyx_n_s_dfluxw_dpsiw;
2343 static PyObject *__pyx_n_s_dfluxw_dsw;
2344 static PyObject *__pyx_n_s_dfn_dpsiw;
2345 static PyObject *__pyx_n_s_dfn_dsw;
2346 static PyObject *__pyx_n_s_dfpu_dp;
2347 static PyObject *__pyx_n_s_dfpv_dp;
2348 static PyObject *__pyx_n_s_dfpw_dp;
2349 static PyObject *__pyx_n_s_dfw_dpsiw;
2350 static PyObject *__pyx_n_s_dfw_dsw;
2351 static PyObject *__pyx_n_s_diffusiveFlux;
2352 static PyObject *__pyx_n_s_diffusiveFlux_mm;
2353 static PyObject *__pyx_n_s_diffusiveFlux_mw;
2354 static PyObject *__pyx_n_s_diffusiveFlux_nn;
2355 static PyObject *__pyx_n_s_diffusiveFlux_wm;
2356 static PyObject *__pyx_n_s_diffusiveFlux_ww;
2357 static PyObject *__pyx_n_s_dim;
2358 static PyObject *__pyx_n_s_dm_umom;
2359 static PyObject *__pyx_n_s_dphi;
2360 static PyObject *__pyx_n_s_dphi_m_m;
2361 static PyObject *__pyx_n_s_dphi_m_w;
2362 static PyObject *__pyx_n_s_dphi_n_n;
2363 static PyObject *__pyx_n_s_dphi_n_w;
2364 static PyObject *__pyx_n_s_dphi_w_m;
2365 static PyObject *__pyx_n_s_dphi_w_n;
2366 static PyObject *__pyx_n_s_dphi_w_w;
2367 static PyObject *__pyx_n_s_dpsi_n_dpsic;
2368 static PyObject *__pyx_n_s_dpsi_n_dpsiw;
2369 static PyObject *__pyx_n_s_dpsi_n_dsw;
2370 static PyObject *__pyx_n_s_dstress_u_u;
2371 static PyObject *__pyx_n_s_dstress_u_v;
2372 static PyObject *__pyx_n_s_dstress_u_w;
2373 static PyObject *__pyx_n_s_dstress_v_u;
2374 static PyObject *__pyx_n_s_dstress_v_v;
2375 static PyObject *__pyx_n_s_dstress_v_w;
2376 static PyObject *__pyx_n_s_dstress_w_u;
2377 static PyObject *__pyx_n_s_dstress_w_v;
2378 static PyObject *__pyx_n_s_dstress_w_w;
2379 static PyObject *__pyx_n_s_eb_aHat;
2380 static PyObject *__pyx_n_s_eb_aTilde;
2381 static PyObject *__pyx_n_s_ebq_a;
2382 static PyObject *__pyx_n_s_elementBoundaryElements;
2383 static PyObject *__pyx_n_s_elementBoundaryLocalElementBound;
2384 static PyObject *__pyx_n_s_elementDiameters;
2385 static PyObject *__pyx_n_s_epsFact;
2386 static PyObject *__pyx_n_s_exit;
2387 static PyObject *__pyx_n_s_exteriorElementBoundaries;
2388 static PyObject *__pyx_n_s_f;
2389 static PyObject *__pyx_n_s_f_m;
2390 static PyObject *__pyx_n_s_f_mass;
2391 static PyObject *__pyx_n_s_f_umom;
2392 static PyObject *__pyx_n_s_f_vmom;
2393 static PyObject *__pyx_n_s_f_wmom;
2394 static PyObject *__pyx_n_s_flux;
2395 static PyObject *__pyx_n_s_fluxBoundaryFlag;
2396 static PyObject *__pyx_n_s_fluxBoundaryFlag_un;
2397 static PyObject *__pyx_n_s_fluxBoundaryFlag_uw;
2398 static PyObject *__pyx_n_s_fluxJacobian;
2399 static PyObject *__pyx_n_s_fluxJacobian_2sided;
2400 static PyObject *__pyx_n_s_fluxJacobian_eb;
2401 static PyObject *__pyx_n_s_fluxJacobian_exterior;
2402 static PyObject *__pyx_n_s_fluxJacobian_mm;
2403 static PyObject *__pyx_n_s_fluxJacobian_mw;
2404 static PyObject *__pyx_n_s_fluxJacobian_nn;
2405 static PyObject *__pyx_n_s_fluxJacobian_nw;
2406 static PyObject *__pyx_n_s_fluxJacobian_u_u;
2407 static PyObject *__pyx_n_s_fluxJacobian_u_v;
2408 static PyObject *__pyx_n_s_fluxJacobian_u_w;
2409 static PyObject *__pyx_n_s_fluxJacobian_v_u;
2410 static PyObject *__pyx_n_s_fluxJacobian_v_v;
2411 static PyObject *__pyx_n_s_fluxJacobian_v_w;
2412 static PyObject *__pyx_n_s_fluxJacobian_w_u;
2413 static PyObject *__pyx_n_s_fluxJacobian_w_v;
2414 static PyObject *__pyx_n_s_fluxJacobian_w_w;
2415 static PyObject *__pyx_n_s_fluxJacobian_wm;
2416 static PyObject *__pyx_n_s_fluxJacobian_wn;
2417 static PyObject *__pyx_n_s_fluxJacobian_ww;
2418 static PyObject *__pyx_n_s_flux_h;
2419 static PyObject *__pyx_n_s_flux_hu;
2420 static PyObject *__pyx_n_s_flux_hv;
2421 static PyObject *__pyx_n_s_flux_mass;
2422 static PyObject *__pyx_n_s_flux_umom;
2423 static PyObject *__pyx_n_s_flux_vmom;
2424 static PyObject *__pyx_n_s_flux_wmom;
2425 static PyObject *__pyx_n_s_fluxn;
2426 static PyObject *__pyx_n_s_fluxpu;
2427 static PyObject *__pyx_n_s_fluxpv;
2428 static PyObject *__pyx_n_s_fluxpw;
2429 static PyObject *__pyx_n_s_fluxw;
2430 static PyObject *__pyx_n_s_fn;
2431 static PyObject *__pyx_n_s_fpu;
2432 static PyObject *__pyx_n_s_fpv;
2433 static PyObject *__pyx_n_s_fpw;
2434 static PyObject *__pyx_n_s_fw;
2435 static PyObject *__pyx_n_s_g;
2436 static PyObject *__pyx_n_s_grad_phi;
2437 static PyObject *__pyx_n_s_grad_phi_m;
2438 static PyObject *__pyx_n_s_grad_phi_n;
2439 static PyObject *__pyx_n_s_grad_phi_w;
2440 static PyObject *__pyx_n_s_grad_psi;
2441 static PyObject *__pyx_n_s_grad_u;
2442 static PyObject *__pyx_n_s_grad_v;
2443 static PyObject *__pyx_n_s_h;
2444 static PyObject *__pyx_n_s_h_eps;
2445 static PyObject *__pyx_n_s_h_lq;
2446 static PyObject *__pyx_n_s_h_lv;
2447 static PyObject *__pyx_n_s_h_rq;
2448 static PyObject *__pyx_n_s_h_rv;
2449 static PyObject *__pyx_n_s_hu;
2450 static PyObject *__pyx_n_s_hu_lq;
2451 static PyObject *__pyx_n_s_hu_lv;
2452 static PyObject *__pyx_n_s_hu_rq;
2453 static PyObject *__pyx_n_s_hu_rv;
2454 static PyObject *__pyx_n_s_hv;
2455 static PyObject *__pyx_n_s_hv_lq;
2456 static PyObject *__pyx_n_s_hv_rq;
2457 static PyObject *__pyx_n_s_import;
2458 static PyObject *__pyx_n_s_inflowFlag;
2459 static PyObject *__pyx_n_s_inflowFlux;
2460 static PyObject *__pyx_n_s_interiorElementBoundaries;
2461 static PyObject *__pyx_n_s_isDOFBoundary;
2462 static PyObject *__pyx_n_s_isDOFBoundary_p;
2463 static PyObject *__pyx_n_s_isDOFBoundary_psiw;
2464 static PyObject *__pyx_n_s_isDOFBoundary_sw;
2465 static PyObject *__pyx_n_s_isDOFBoundary_u;
2466 static PyObject *__pyx_n_s_isDOFBoundary_um;
2467 static PyObject *__pyx_n_s_isDOFBoundary_un;
2468 static PyObject *__pyx_n_s_isDOFBoundary_uw;
2469 static PyObject *__pyx_n_s_isDOFBoundary_v;
2470 static PyObject *__pyx_n_s_isDOFBoundary_w;
2471 static PyObject *__pyx_n_s_isDiffusiveFluxBoundary;
2472 static PyObject *__pyx_n_s_isSeepageFace;
2473 static PyObject *__pyx_n_s_isStressBoundary_u;
2474 static PyObject *__pyx_n_s_isStressBoundary_v;
2475 static PyObject *__pyx_n_s_isStressBoundary_w;
2476 static PyObject *__pyx_n_s_l2g;
2477 static PyObject *__pyx_n_s_lambda_bar;
2478 static PyObject *__pyx_n_s_lambda_bar_element;
2479 static PyObject *__pyx_n_s_main;
2480 static PyObject *__pyx_n_s_n;
2481 static PyObject *__pyx_n_s_nDOF_trial_element;
2482 static PyObject *__pyx_n_s_nElementBoundaries_element;
2483 static PyObject *__pyx_n_s_nExteriorElementBoundaries_globa;
2484 static PyObject *__pyx_n_s_nQuadraturePoints_element;
2485 static PyObject *__pyx_n_s_nQuadraturePoints_elementBoundar;
2486 static PyObject *__pyx_n_s_nSpace;
2487 static PyObject *__pyx_n_s_name;
2488 static PyObject *__pyx_n_s_np;
2489 static PyObject *__pyx_n_s_numpy;
2490 static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to;
2491 static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor;
2492 static PyObject *__pyx_n_s_oneByRho;
2493 static PyObject *__pyx_n_s_p;
2494 static PyObject *__pyx_n_s_penalty;
2495 static PyObject *__pyx_n_s_penalty_floor;
2496 static PyObject *__pyx_n_s_penalty_m;
2497 static PyObject *__pyx_n_s_penalty_n;
2498 static PyObject *__pyx_n_s_penalty_w;
2499 static PyObject *__pyx_n_s_phi;
2500 static PyObject *__pyx_n_s_phi_bc;
2501 static PyObject *__pyx_kp_s_proteus_cnumericalFlux_pyx;
2502 static PyObject *__pyx_n_s_psi_c;
2503 static PyObject *__pyx_n_s_psi_n;
2504 static PyObject *__pyx_n_s_psi_w;
2505 static PyObject *__pyx_n_s_psiw;
2506 static PyObject *__pyx_n_s_q_a;
2507 static PyObject *__pyx_n_s_rowptr;
2508 static PyObject *__pyx_n_s_rowptr_mm;
2509 static PyObject *__pyx_n_s_rowptr_mw;
2510 static PyObject *__pyx_n_s_rowptr_nn;
2511 static PyObject *__pyx_n_s_rowptr_wm;
2512 static PyObject *__pyx_n_s_rowptr_ww;
2513 static PyObject *__pyx_n_s_s_w;
2514 static PyObject *__pyx_n_s_safetyFactor;
2515 static PyObject *__pyx_n_s_sahpe;
2516 static PyObject *__pyx_n_s_sape;
2517 static PyObject *__pyx_n_s_scale_penalty;
2518 static PyObject *__pyx_n_s_setInflowFlux;
2519 static PyObject *__pyx_n_s_sigma;
2520 static PyObject *__pyx_n_s_sonicFlux;
2521 static PyObject *__pyx_n_s_sonicPoint;
2522 static PyObject *__pyx_n_s_speedEvalFlag;
2523 static PyObject *__pyx_n_s_stressFlux_u;
2524 static PyObject *__pyx_n_s_stressFlux_v;
2525 static PyObject *__pyx_n_s_stressFlux_w;
2526 static PyObject *__pyx_n_s_sw;
2527 static PyObject *__pyx_n_s_sys;
2528 static PyObject *__pyx_n_s_test;
2529 static PyObject *__pyx_n_s_tol_u;
2530 static PyObject *__pyx_n_s_u;
2531 static PyObject *__pyx_n_s_u_m;
2532 static PyObject *__pyx_n_s_u_w;
2533 static PyObject *__pyx_n_s_updateExteriorNumericalAdvective;
2534 static PyObject *__pyx_n_s_updateExteriorNumericalAdvective_2;
2535 static PyObject *__pyx_n_s_updateExteriorNumericalDiffusive;
2536 static PyObject *__pyx_n_s_updateExteriorNumericalDiffusive_2;
2537 static PyObject *__pyx_n_s_updateExteriorNumericalDiffusive_3;
2538 static PyObject *__pyx_n_s_updateExteriorNumericalDiffusive_4;
2539 static PyObject *__pyx_n_s_updateExteriorNumericalDiffusive_5;
2540 static PyObject *__pyx_n_s_updateExteriorNumericalDiffusive_6;
2541 static PyObject *__pyx_n_s_updateExteriorNumericalDiffusive_7;
2542 static PyObject *__pyx_n_s_updateExteriorNumericalStressFlu;
2543 static PyObject *__pyx_n_s_updateGlobalExteriorNumericalAdv;
2544 static PyObject *__pyx_n_s_updateGlobalExteriorNumericalAdv_2;
2545 static PyObject *__pyx_n_s_updateGlobalExteriorNumericalDif;
2546 static PyObject *__pyx_n_s_updateGlobalExteriorNumericalDif_2;
2547 static PyObject *__pyx_n_s_updateGlobalExteriorNumericalDif_3;
2548 static PyObject *__pyx_n_s_updateGlobalExteriorNumericalDif_4;
2549 static PyObject *__pyx_n_s_updateGlobalExteriorNumericalDif_5;
2550 static PyObject *__pyx_n_s_updateGlobalExteriorNumericalDif_6;
2551 static PyObject *__pyx_n_s_updateGlobalExteriorNumericalDif_7;
2552 static PyObject *__pyx_n_s_updateInteriorNumericalAdvective;
2553 static PyObject *__pyx_n_s_updateInteriorNumericalDiffusive;
2554 static PyObject *__pyx_n_s_updateInteriorNumericalDiffusive_2;
2555 static PyObject *__pyx_n_s_updateInteriorNumericalDiffusive_3;
2556 static PyObject *__pyx_n_s_updateInteriorNumericalDiffusive_4;
2557 static PyObject *__pyx_n_s_updateInteriorTwoSidedNumericalF;
2558 static PyObject *__pyx_n_s_v;
2559 static PyObject *__pyx_n_s_velocity;
2560 static PyObject *__pyx_n_s_w;
2561 static PyObject *__pyx_pf_14cnumericalFlux_calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_safetyFactor, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_lambda_bar_element, PyArrayObject *__pyx_v_flux); /* proto */
2562 static PyObject *__pyx_pf_14cnumericalFlux_2calculateInteriorLesaintRaviartNumericalFlux(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_speedEvalFlag, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_H, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_dflux_right); /* proto */
2563 static PyObject *__pyx_pf_14cnumericalFlux_4calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_sonicPoint, double __pyx_v_sonicFlux, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_dflux_right); /* proto */
2564 static PyObject *__pyx_pf_14cnumericalFlux_6calculateInteriorNumericalAdvectiveFluxRusanov(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_safetyFactor, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_df_element, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_dflux_right); /* proto */
2565 static PyObject *__pyx_pf_14cnumericalFlux_8calculateInteriorNumericalDiffusiveFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor); /* proto */
2566 static PyObject *__pyx_pf_14cnumericalFlux_10updateInteriorNumericalDiffusiveFluxJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor); /* proto */
2567 static PyObject *__pyx_pf_14cnumericalFlux_12calculateInteriorNumericalAdvectiveFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_dflux_right); /* proto */
2568 static PyObject *__pyx_pf_14cnumericalFlux_14updateInteriorNumericalAdvectiveFluxJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_dflux_right, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_fluxJacobian); /* proto */
2569 static PyObject *__pyx_pf_14cnumericalFlux_16calculateInteriorNumericalAdvectiveFlux_average(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_dflux_right); /* proto */
2570 static PyObject *__pyx_pf_14cnumericalFlux_18calculateExteriorNumericalAdvectiveFlux_NoBC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left); /* proto */
2571 static PyObject *__pyx_pf_14cnumericalFlux_20calculateExteriorNumericalAdvectiveFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_bc_df, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux); /* proto */
2572 static PyObject *__pyx_pf_14cnumericalFlux_22updateExteriorNumericalAdvectiveFluxJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_fluxJacobian); /* proto */
2573 static PyObject *__pyx_pf_14cnumericalFlux_24calculateInteriorNumericalDiffusiveFlux_LDG_upwind(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_V, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux); /* proto */
2574 static PyObject *__pyx_pf_14cnumericalFlux_26updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_V, PyArrayObject *__pyx_v_DV, PyArrayObject *__pyx_v_DV_eb, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian, PyArrayObject *__pyx_v_fluxJacobian_eb); /* proto */
2575 static PyObject *__pyx_pf_14cnumericalFlux_28setInflowFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_inflowFlux, PyArrayObject *__pyx_v_flux); /* proto */
2576 static PyObject *__pyx_pf_14cnumericalFlux_30updateInteriorTwoSidedNumericalFluxJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_dflux_right, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_fluxJacobian_2sided); /* proto */
2577 static PyObject *__pyx_pf_14cnumericalFlux_32calculateGlobalExteriorInflowNumericalAdvectiveFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_inflowFlux, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left); /* proto */
2578 static PyObject *__pyx_pf_14cnumericalFlux_34updateGlobalExteriorNumericalAdvectiveFluxJacobian(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nDOF_trial_element, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_fluxJacobian); /* proto */
2579 static PyObject *__pyx_pf_14cnumericalFlux_36calculateInteriorChengShuNumericalFlux(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_speedEvalFlag, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_H, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_H_element, PyArrayObject *__pyx_v_dH_element, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_dflux_right); /* proto */
2580 static PyObject *__pyx_pf_14cnumericalFlux_38calculateGlobalExteriorNumericalFluxDarcyFCFF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_uw, PyArrayObject *__pyx_v_isDOFBoundary_um, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_f_m, PyArrayObject *__pyx_v_bc_a_wm, PyArrayObject *__pyx_v_bc_a_mw, PyArrayObject *__pyx_v_bc_a_mm, PyArrayObject *__pyx_v_bc_grad_phi_w, PyArrayObject *__pyx_v_bc_grad_phi_m, PyArrayObject *__pyx_v_bc_u_w, PyArrayObject *__pyx_v_bc_u_m, PyArrayObject *__pyx_v_f_m, PyArrayObject *__pyx_v_df_m_dw, PyArrayObject *__pyx_v_a_wm, PyArrayObject *__pyx_v_a_mw, PyArrayObject *__pyx_v_a_mm, PyArrayObject *__pyx_v_grad_phi_w, PyArrayObject *__pyx_v_grad_phi_m, PyArrayObject *__pyx_v_u_w, PyArrayObject *__pyx_v_u_m, PyArrayObject *__pyx_v_penalty_w, PyArrayObject *__pyx_v_penalty_m, PyArrayObject *__pyx_v_advectiveFlux_m, PyArrayObject *__pyx_v_dadvectiveFlux_m_dw, PyArrayObject *__pyx_v_diffusiveFlux_wm, PyArrayObject *__pyx_v_diffusiveFlux_mw, PyArrayObject *__pyx_v_diffusiveFlux_mm); /* proto */
2581 static PyObject *__pyx_pf_14cnumericalFlux_40calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_uw, PyArrayObject *__pyx_v_isDOFBoundary_um, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_f_m, PyArrayObject *__pyx_v_df_m_dw, PyArrayObject *__pyx_v_a_wm, PyArrayObject *__pyx_v_da_wm_dw, PyArrayObject *__pyx_v_da_wm_dm, PyArrayObject *__pyx_v_a_mw, PyArrayObject *__pyx_v_da_mw_dw, PyArrayObject *__pyx_v_da_mw_dm, PyArrayObject *__pyx_v_a_mm, PyArrayObject *__pyx_v_da_mm_dw, PyArrayObject *__pyx_v_da_mm_dm, PyArrayObject *__pyx_v_grad_phi_w, PyArrayObject *__pyx_v_grad_phi_m, PyArrayObject *__pyx_v_dphi_w_w, PyArrayObject *__pyx_v_dphi_w_m, PyArrayObject *__pyx_v_dphi_m_w, PyArrayObject *__pyx_v_dphi_m_m, PyArrayObject *__pyx_v_u_w, PyArrayObject *__pyx_v_u_m, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty_w, PyArrayObject *__pyx_v_penalty_m, PyArrayObject *__pyx_v_fluxJacobian_ww, PyArrayObject *__pyx_v_fluxJacobian_wm, PyArrayObject *__pyx_v_fluxJacobian_mw, PyArrayObject *__pyx_v_fluxJacobian_mm); /* proto */
2582 static PyObject *__pyx_pf_14cnumericalFlux_42updateExteriorNumericalStressFluxJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_isDOFBoundary_v, PyArrayObject *__pyx_v_isDOFBoundary_w, PyArrayObject *__pyx_v_isStressBoundary_u, PyArrayObject *__pyx_v_isStressBoundary_v, PyArrayObject *__pyx_v_isStressBoundary_w, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_dstress_u_u, PyArrayObject *__pyx_v_dstress_u_v, PyArrayObject *__pyx_v_dstress_u_w, PyArrayObject *__pyx_v_dstress_v_u, PyArrayObject *__pyx_v_dstress_v_v, PyArrayObject *__pyx_v_dstress_v_w, PyArrayObject *__pyx_v_dstress_w_u, PyArrayObject *__pyx_v_dstress_w_v, PyArrayObject *__pyx_v_dstress_w_w, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian_u_u, PyArrayObject *__pyx_v_fluxJacobian_u_v, PyArrayObject *__pyx_v_fluxJacobian_u_w, PyArrayObject *__pyx_v_fluxJacobian_v_u, PyArrayObject *__pyx_v_fluxJacobian_v_v, PyArrayObject *__pyx_v_fluxJacobian_v_w, PyArrayObject *__pyx_v_fluxJacobian_w_u, PyArrayObject *__pyx_v_fluxJacobian_w_v, PyArrayObject *__pyx_v_fluxJacobian_w_w); /* proto */
2583 static PyObject *__pyx_pf_14cnumericalFlux_44calculateExteriorNumericalFluxRichards_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_isSeepageFace, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_K, PyArrayObject *__pyx_v_grad_psi, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_K_rho_g, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_diffusiveFlux); /* proto */
2584 static PyObject *__pyx_pf_14cnumericalFlux_46calculateExteriorNumericalFluxJacobianRichards_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_K, PyArrayObject *__pyx_v_dK, PyArrayObject *__pyx_v_grad_psi, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_dK_rho_g, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian); /* proto */
2585 static PyObject *__pyx_pf_14cnumericalFlux_48calculateExteriorNumericalAdvectiveFluxStokes2D(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_p, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_isDOFBoundary_v, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_p, PyArrayObject *__pyx_v_bc_f_mass, PyArrayObject *__pyx_v_p, PyArrayObject *__pyx_v_f_mass, PyArrayObject *__pyx_v_df_mass_du, PyArrayObject *__pyx_v_df_mass_dv, PyArrayObject *__pyx_v_flux_mass, PyArrayObject *__pyx_v_flux_umom, PyArrayObject *__pyx_v_flux_vmom, PyArrayObject *__pyx_v_dflux_mass_du, PyArrayObject *__pyx_v_dflux_mass_dv, PyArrayObject *__pyx_v_dflux_umom_dp, PyArrayObject *__pyx_v_dflux_vmom_dp, PyArrayObject *__pyx_v_velocity); /* proto */
2586 static PyObject *__pyx_pf_14cnumericalFlux_50calculateInteriorNumericalDiffusiveFlux_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor); /* proto */
2587 static PyObject *__pyx_pf_14cnumericalFlux_52updateInteriorNumericalDiffusiveFluxJacobian_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor); /* proto */
2588 static PyObject *__pyx_pf_14cnumericalFlux_54updateExteriorNumericalDiffusiveFluxJacobian_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor); /* proto */
2589 static PyObject *__pyx_pf_14cnumericalFlux_56updateExteriorNumericalDiffusiveFluxJacobian_free_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian); /* proto */
2590 static PyObject *__pyx_pf_14cnumericalFlux_58calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_V, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux); /* proto */
2591 static PyObject *__pyx_pf_14cnumericalFlux_60updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_V, PyArrayObject *__pyx_v_DV, PyArrayObject *__pyx_v_DV_eb, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian, PyArrayObject *__pyx_v_fluxJacobian_eb); /* proto */
2592 static PyObject *__pyx_pf_14cnumericalFlux_62calculateDiffusionMatrixSplittings_LDG_sd(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_aSplit, int __pyx_v_nSpace, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_ebq_a, PyArrayObject *__pyx_v_q_a, PyArrayObject *__pyx_v_eb_aHat, PyArrayObject *__pyx_v_eb_aTilde, PyArrayObject *__pyx_v_aHat, PyArrayObject *__pyx_v_aTilde); /* proto */
2593 static PyObject *__pyx_pf_14cnumericalFlux_64calculateGlobalExteriorNumericalFluxDarcyFCFF_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr_wm, PyArrayObject *__pyx_v_colind_wm, PyArrayObject *__pyx_v_rowptr_mw, PyArrayObject *__pyx_v_colind_mw, PyArrayObject *__pyx_v_rowptr_mm, PyArrayObject *__pyx_v_colind_mm, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_uw, PyArrayObject *__pyx_v_isDOFBoundary_um, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_f_m, PyArrayObject *__pyx_v_bc_a_wm, PyArrayObject *__pyx_v_bc_a_mw, PyArrayObject *__pyx_v_bc_a_mm, PyArrayObject *__pyx_v_bc_grad_phi_w, PyArrayObject *__pyx_v_bc_grad_phi_m, PyArrayObject *__pyx_v_bc_u_w, PyArrayObject *__pyx_v_bc_u_m, PyArrayObject *__pyx_v_f_m, PyArrayObject *__pyx_v_df_m_dw, PyArrayObject *__pyx_v_a_wm, PyArrayObject *__pyx_v_a_mw, PyArrayObject *__pyx_v_a_mm, PyArrayObject *__pyx_v_grad_phi_w, PyArrayObject *__pyx_v_grad_phi_m, PyArrayObject *__pyx_v_u_w, PyArrayObject *__pyx_v_u_m, PyArrayObject *__pyx_v_penalty_w, PyArrayObject *__pyx_v_penalty_m, PyArrayObject *__pyx_v_advectiveFlux_m, PyArrayObject *__pyx_v_dadvectiveFlux_m_dw, PyArrayObject *__pyx_v_diffusiveFlux_wm, PyArrayObject *__pyx_v_diffusiveFlux_mw, PyArrayObject *__pyx_v_diffusiveFlux_mm); /* proto */
2594 static PyObject *__pyx_pf_14cnumericalFlux_66calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr_wm, PyArrayObject *__pyx_v_colind_wm, PyArrayObject *__pyx_v_rowptr_mw, PyArrayObject *__pyx_v_colind_mw, PyArrayObject *__pyx_v_rowptr_mm, PyArrayObject *__pyx_v_colind_mm, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_uw, PyArrayObject *__pyx_v_isDOFBoundary_um, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_f_m, PyArrayObject *__pyx_v_df_m_dw, PyArrayObject *__pyx_v_a_wm, PyArrayObject *__pyx_v_da_wm_dw, PyArrayObject *__pyx_v_da_wm_dm, PyArrayObject *__pyx_v_a_mw, PyArrayObject *__pyx_v_da_mw_dw, PyArrayObject *__pyx_v_da_mw_dm, PyArrayObject *__pyx_v_a_mm, PyArrayObject *__pyx_v_da_mm_dw, PyArrayObject *__pyx_v_da_mm_dm, PyArrayObject *__pyx_v_grad_phi_w, PyArrayObject *__pyx_v_grad_phi_m, PyArrayObject *__pyx_v_dphi_w_w, PyArrayObject *__pyx_v_dphi_w_m, PyArrayObject *__pyx_v_dphi_m_w, PyArrayObject *__pyx_v_dphi_m_m, PyArrayObject *__pyx_v_u_w, PyArrayObject *__pyx_v_u_m, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty_w, PyArrayObject *__pyx_v_penalty_m, PyArrayObject *__pyx_v_fluxJacobian_ww, PyArrayObject *__pyx_v_fluxJacobian_wm, PyArrayObject *__pyx_v_fluxJacobian_mw, PyArrayObject *__pyx_v_fluxJacobian_mm); /* proto */
2595 static PyObject *__pyx_pf_14cnumericalFlux_68calculateGlobalExteriorNumericalFluxDarcyFC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_uw, PyArrayObject *__pyx_v_isDOFBoundary_un, int __pyx_v_fluxBoundaryFlag_uw, int __pyx_v_fluxBoundaryFlag_un, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a_ww, PyArrayObject *__pyx_v_bc_a_nn, PyArrayObject *__pyx_v_bc_grad_phi_w, PyArrayObject *__pyx_v_bc_grad_phi_n, PyArrayObject *__pyx_v_bc_s_w, PyArrayObject *__pyx_v_bc_psi_w, PyArrayObject *__pyx_v_bc_psi_n, PyArrayObject *__pyx_v_a_ww, PyArrayObject *__pyx_v_a_nn, PyArrayObject *__pyx_v_grad_phi_w, PyArrayObject *__pyx_v_grad_phi_n, PyArrayObject *__pyx_v_s_w, PyArrayObject *__pyx_v_psi_w, PyArrayObject *__pyx_v_psi_n, PyArrayObject *__pyx_v_penalty_w, PyArrayObject *__pyx_v_penalty_n, PyArrayObject *__pyx_v_diffusiveFlux_ww, PyArrayObject *__pyx_v_diffusiveFlux_nn); /* proto */
2596 static PyObject *__pyx_pf_14cnumericalFlux_70calculateGlobalExteriorNumericalFluxDarcyFC_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr_ww, PyArrayObject *__pyx_v_colind_ww, PyArrayObject *__pyx_v_rowptr_nn, PyArrayObject *__pyx_v_colind_nn, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_uw, PyArrayObject *__pyx_v_isDOFBoundary_un, int __pyx_v_fluxBoundaryFlag_uw, int __pyx_v_fluxBoundaryFlag_un, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a_ww, PyArrayObject *__pyx_v_bc_a_nn, PyArrayObject *__pyx_v_bc_grad_phi_w, PyArrayObject *__pyx_v_bc_grad_phi_n, PyArrayObject *__pyx_v_bc_s_w, PyArrayObject *__pyx_v_bc_psi_w, PyArrayObject *__pyx_v_bc_psi_n, PyArrayObject *__pyx_v_a_ww, PyArrayObject *__pyx_v_a_nn, PyArrayObject *__pyx_v_grad_phi_w, PyArrayObject *__pyx_v_grad_phi_n, PyArrayObject *__pyx_v_s_w, PyArrayObject *__pyx_v_psi_w, PyArrayObject *__pyx_v_psi_n, PyArrayObject *__pyx_v_penalty_w, PyArrayObject *__pyx_v_penalty_n, PyArrayObject *__pyx_v_diffusiveFlux_ww, PyArrayObject *__pyx_v_diffusiveFlux_nn); /* proto */
2597 static PyObject *__pyx_pf_14cnumericalFlux_72calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_uw, PyArrayObject *__pyx_v_isDOFBoundary_un, int __pyx_v_fluxBoundaryFlag_uw, int __pyx_v_fluxBoundaryFlag_un, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a_ww, PyArrayObject *__pyx_v_da_ww_dw, PyArrayObject *__pyx_v_da_ww_dn, PyArrayObject *__pyx_v_a_nn, PyArrayObject *__pyx_v_da_nn_dw, PyArrayObject *__pyx_v_da_nn_dn, PyArrayObject *__pyx_v_grad_phi_w, PyArrayObject *__pyx_v_grad_phi_n, PyArrayObject *__pyx_v_dphi_w_w, PyArrayObject *__pyx_v_dphi_w_n, PyArrayObject *__pyx_v_dphi_n_w, PyArrayObject *__pyx_v_dphi_n_n, PyArrayObject *__pyx_v_s_w, PyArrayObject *__pyx_v_psi_w, PyArrayObject *__pyx_v_psi_n, PyArrayObject *__pyx_v_dpsi_n_dsw, PyArrayObject *__pyx_v_dpsi_n_dpsiw, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty_w, PyArrayObject *__pyx_v_penalty_n, PyArrayObject *__pyx_v_fluxJacobian_ww, PyArrayObject *__pyx_v_fluxJacobian_wn, PyArrayObject *__pyx_v_fluxJacobian_nw, PyArrayObject *__pyx_v_fluxJacobian_nn); /* proto */
2598 static PyObject *__pyx_pf_14cnumericalFlux_74calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr_ww, PyArrayObject *__pyx_v_colind_ww, PyArrayObject *__pyx_v_rowptr_nn, PyArrayObject *__pyx_v_colind_nn, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_uw, PyArrayObject *__pyx_v_isDOFBoundary_un, int __pyx_v_fluxBoundaryFlag_uw, int __pyx_v_fluxBoundaryFlag_un, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a_ww, PyArrayObject *__pyx_v_da_ww_dw, PyArrayObject *__pyx_v_da_ww_dn, PyArrayObject *__pyx_v_a_nn, PyArrayObject *__pyx_v_da_nn_dw, PyArrayObject *__pyx_v_da_nn_dn, PyArrayObject *__pyx_v_grad_phi_w, PyArrayObject *__pyx_v_grad_phi_n, PyArrayObject *__pyx_v_dphi_w_w, PyArrayObject *__pyx_v_dphi_w_n, PyArrayObject *__pyx_v_dphi_n_w, PyArrayObject *__pyx_v_dphi_n_n, PyArrayObject *__pyx_v_s_w, PyArrayObject *__pyx_v_psi_w, PyArrayObject *__pyx_v_psi_n, PyArrayObject *__pyx_v_dpsi_n_dsw, PyArrayObject *__pyx_v_dpsi_n_dpsiw, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty_w, PyArrayObject *__pyx_v_penalty_n, PyArrayObject *__pyx_v_fluxJacobian_ww, PyArrayObject *__pyx_v_fluxJacobian_wn, PyArrayObject *__pyx_v_fluxJacobian_nw, PyArrayObject *__pyx_v_fluxJacobian_nn); /* proto */
2599 static PyObject *__pyx_pf_14cnumericalFlux_76calculateGlobalExteriorNumericalFluxDarcyFCPP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_uw, PyArrayObject *__pyx_v_isDOFBoundary_un, int __pyx_v_fluxBoundaryFlag_uw, int __pyx_v_fluxBoundaryFlag_un, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a_ww, PyArrayObject *__pyx_v_bc_a_nn, PyArrayObject *__pyx_v_bc_grad_phi_w, PyArrayObject *__pyx_v_bc_grad_phi_n, PyArrayObject *__pyx_v_bc_psi_w, PyArrayObject *__pyx_v_bc_psi_c, PyArrayObject *__pyx_v_bc_psi_n, PyArrayObject *__pyx_v_a_ww, PyArrayObject *__pyx_v_a_nn, PyArrayObject *__pyx_v_grad_phi_w, PyArrayObject *__pyx_v_grad_phi_n, PyArrayObject *__pyx_v_psi_w, PyArrayObject *__pyx_v_psi_c, PyArrayObject *__pyx_v_psi_n, PyArrayObject *__pyx_v_penalty_w, PyArrayObject *__pyx_v_penalty_n, PyArrayObject *__pyx_v_diffusiveFlux_ww, PyArrayObject *__pyx_v_diffusiveFlux_nn); /* proto */
2600 static PyObject *__pyx_pf_14cnumericalFlux_78calculateGlobalExteriorNumericalFluxDarcyFCPP_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr_ww, PyArrayObject *__pyx_v_colind_ww, PyArrayObject *__pyx_v_rowptr_nn, PyArrayObject *__pyx_v_colind_nn, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_uw, PyArrayObject *__pyx_v_isDOFBoundary_un, int __pyx_v_fluxBoundaryFlag_uw, int __pyx_v_fluxBoundaryFlag_un, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a_ww, PyArrayObject *__pyx_v_bc_a_nn, PyArrayObject *__pyx_v_bc_grad_phi_w, PyArrayObject *__pyx_v_bc_grad_phi_n, PyArrayObject *__pyx_v_bc_psi_w, PyArrayObject *__pyx_v_bc_psi_c, PyArrayObject *__pyx_v_bc_psi_n, PyArrayObject *__pyx_v_a_ww, PyArrayObject *__pyx_v_a_nn, PyArrayObject *__pyx_v_grad_phi_w, PyArrayObject *__pyx_v_grad_phi_n, PyArrayObject *__pyx_v_psi_w, PyArrayObject *__pyx_v_psi_c, PyArrayObject *__pyx_v_psi_n, PyArrayObject *__pyx_v_penalty_w, PyArrayObject *__pyx_v_penalty_n, PyArrayObject *__pyx_v_diffusiveFlux_ww, PyArrayObject *__pyx_v_diffusiveFlux_nn); /* proto */
2601 static PyObject *__pyx_pf_14cnumericalFlux_80calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_uw, PyArrayObject *__pyx_v_isDOFBoundary_un, int __pyx_v_fluxBoundaryFlag_uw, int __pyx_v_fluxBoundaryFlag_un, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a_ww, PyArrayObject *__pyx_v_da_ww_dw, PyArrayObject *__pyx_v_da_ww_dn, PyArrayObject *__pyx_v_a_nn, PyArrayObject *__pyx_v_da_nn_dw, PyArrayObject *__pyx_v_da_nn_dn, PyArrayObject *__pyx_v_grad_phi_w, PyArrayObject *__pyx_v_grad_phi_n, PyArrayObject *__pyx_v_dphi_w_w, PyArrayObject *__pyx_v_dphi_w_n, PyArrayObject *__pyx_v_dphi_n_w, PyArrayObject *__pyx_v_dphi_n_n, PyArrayObject *__pyx_v_psi_w, PyArrayObject *__pyx_v_psi_c, PyArrayObject *__pyx_v_psi_n, PyArrayObject *__pyx_v_dpsi_n_dpsiw, PyArrayObject *__pyx_v_dpsi_n_dpsic, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty_w, PyArrayObject *__pyx_v_penalty_n, PyArrayObject *__pyx_v_fluxJacobian_ww, PyArrayObject *__pyx_v_fluxJacobian_wn, PyArrayObject *__pyx_v_fluxJacobian_nw, PyArrayObject *__pyx_v_fluxJacobian_nn); /* proto */
2602 static PyObject *__pyx_pf_14cnumericalFlux_82calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr_ww, PyArrayObject *__pyx_v_colind_ww, PyArrayObject *__pyx_v_rowptr_nn, PyArrayObject *__pyx_v_colind_nn, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_uw, PyArrayObject *__pyx_v_isDOFBoundary_un, int __pyx_v_fluxBoundaryFlag_uw, int __pyx_v_fluxBoundaryFlag_un, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a_ww, PyArrayObject *__pyx_v_da_ww_dw, PyArrayObject *__pyx_v_da_ww_dn, PyArrayObject *__pyx_v_a_nn, PyArrayObject *__pyx_v_da_nn_dw, PyArrayObject *__pyx_v_da_nn_dn, PyArrayObject *__pyx_v_grad_phi_w, PyArrayObject *__pyx_v_grad_phi_n, PyArrayObject *__pyx_v_dphi_w_w, PyArrayObject *__pyx_v_dphi_w_n, PyArrayObject *__pyx_v_dphi_n_w, PyArrayObject *__pyx_v_dphi_n_n, PyArrayObject *__pyx_v_psi_w, PyArrayObject *__pyx_v_psi_c, PyArrayObject *__pyx_v_psi_n, PyArrayObject *__pyx_v_dpsi_n_dpsiw, PyArrayObject *__pyx_v_dpsi_n_dpsic, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty_w, PyArrayObject *__pyx_v_penalty_n, PyArrayObject *__pyx_v_fluxJacobian_ww, PyArrayObject *__pyx_v_fluxJacobian_wn, PyArrayObject *__pyx_v_fluxJacobian_nw, PyArrayObject *__pyx_v_fluxJacobian_nn); /* proto */
2603 static PyObject *__pyx_pf_14cnumericalFlux_84calculateInteriorNumericalFluxShallowWater_1D(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_h_eps, double __pyx_v_tol_u, double __pyx_v_g, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_h, PyArrayObject *__pyx_v_hu, PyArrayObject *__pyx_v_flux_h, PyArrayObject *__pyx_v_flux_hu); /* proto */
2604 static PyObject *__pyx_pf_14cnumericalFlux_86calculateExteriorNumericalFluxShallowWater_1D(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, double __pyx_v_h_eps, double __pyx_v_tol_u, double __pyx_v_g, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_h_lv, PyArrayObject *__pyx_v_hu_lv, PyArrayObject *__pyx_v_h_rv, PyArrayObject *__pyx_v_hu_rv, PyArrayObject *__pyx_v_flux_h, PyArrayObject *__pyx_v_flux_hu); /* proto */
2605 static PyObject *__pyx_pf_14cnumericalFlux_88calculateInteriorNumericalFluxShallowWater_2D(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_h_eps, double __pyx_v_tol_u, double __pyx_v_g, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_h, PyArrayObject *__pyx_v_hu, PyArrayObject *__pyx_v_hv, PyArrayObject *__pyx_v_flux_h, PyArrayObject *__pyx_v_flux_hu, PyArrayObject *__pyx_v_flux_hv); /* proto */
2606 static PyObject *__pyx_pf_14cnumericalFlux_90calculateExteriorNumericalFluxShallowWater_2D(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, double __pyx_v_h_eps, double __pyx_v_tol_u, double __pyx_v_g, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_h_lq, PyArrayObject *__pyx_v_hu_lq, PyArrayObject *__pyx_v_hv_lq, PyArrayObject *__pyx_v_h_rq, PyArrayObject *__pyx_v_hu_rq, PyArrayObject *__pyx_v_hv_rq, PyArrayObject *__pyx_v_flux_h, PyArrayObject *__pyx_v_flux_hu, PyArrayObject *__pyx_v_flux_hv); /* proto */
2607 static PyObject *__pyx_pf_14cnumericalFlux_92calculateInteriorNumericalFluxShallowWaterHLL_1D(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_h_eps, double __pyx_v_tol_u, double __pyx_v_g, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_h, PyArrayObject *__pyx_v_hu, PyArrayObject *__pyx_v_flux_h, PyArrayObject *__pyx_v_flux_hu); /* proto */
2608 static PyObject *__pyx_pf_14cnumericalFlux_94calculateExteriorNumericalFluxShallowWaterHLL_1D(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, double __pyx_v_h_eps, double __pyx_v_tol_u, double __pyx_v_g, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_h_lv, PyArrayObject *__pyx_v_hu_lv, PyArrayObject *__pyx_v_h_rv, PyArrayObject *__pyx_v_hu_rv, PyArrayObject *__pyx_v_flux_h, PyArrayObject *__pyx_v_flux_hu); /* proto */
2609 static PyObject *__pyx_pf_14cnumericalFlux_96calculateGlobalExteriorNumericalStressFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_isDOFBoundary_v, PyArrayObject *__pyx_v_isDOFBoundary_w, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_bc_v, PyArrayObject *__pyx_v_bc_w, PyArrayObject *__pyx_v_sigma, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_stressFlux_u, PyArrayObject *__pyx_v_stressFlux_v, PyArrayObject *__pyx_v_stressFlux_w); /* proto */
2610 static PyObject *__pyx_pf_14cnumericalFlux_98calculateExteriorNumericalAdvectiveFluxStokes3D(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_p, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_isDOFBoundary_v, PyArrayObject *__pyx_v_isDOFBoundary_w, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_p, PyArrayObject *__pyx_v_bc_f_mass, PyArrayObject *__pyx_v_p, PyArrayObject *__pyx_v_f_mass, PyArrayObject *__pyx_v_df_mass_du, PyArrayObject *__pyx_v_df_mass_dv, PyArrayObject *__pyx_v_df_mass_dw, PyArrayObject *__pyx_v_flux_mass, PyArrayObject *__pyx_v_flux_umom, PyArrayObject *__pyx_v_flux_vmom, PyArrayObject *__pyx_v_flux_wmom, PyArrayObject *__pyx_v_dflux_mass_du, PyArrayObject *__pyx_v_dflux_mass_dv, PyArrayObject *__pyx_v_dflux_mass_dw, PyArrayObject *__pyx_v_dflux_umom_dp, PyArrayObject *__pyx_v_dflux_vmom_dp, PyArrayObject *__pyx_v_dflux_wmom_dp, PyArrayObject *__pyx_v_velocity); /* proto */
2611 static PyObject *__pyx_pf_14cnumericalFlux_100calculateExteriorNumericalAdvectiveFluxNavierStokes3D(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_p, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_isDOFBoundary_v, PyArrayObject *__pyx_v_isDOFBoundary_w, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_p, PyArrayObject *__pyx_v_bc_f_mass, PyArrayObject *__pyx_v_bc_f_umom, PyArrayObject *__pyx_v_bc_f_vmom, PyArrayObject *__pyx_v_bc_f_wmom, PyArrayObject *__pyx_v_p, PyArrayObject *__pyx_v_f_mass, PyArrayObject *__pyx_v_f_umom, PyArrayObject *__pyx_v_f_vmom, PyArrayObject *__pyx_v_f_wmom, PyArrayObject *__pyx_v_df_mass_du, PyArrayObject *__pyx_v_df_mass_dv, PyArrayObject *__pyx_v_df_mass_dw, PyArrayObject *__pyx_v_df_umom_dp, PyArrayObject *__pyx_v_df_umom_du, PyArrayObject *__pyx_v_df_umom_dv, PyArrayObject *__pyx_v_df_umom_dw, PyArrayObject *__pyx_v_df_vmom_dp, PyArrayObject *__pyx_v_df_vmom_du, PyArrayObject *__pyx_v_df_vmom_dv, PyArrayObject *__pyx_v_df_vmom_dw, PyArrayObject *__pyx_v_df_wmom_dp, PyArrayObject *__pyx_v_df_wmom_du, PyArrayObject *__pyx_v_df_wmom_dv, PyArrayObject *__pyx_v_df_wmom_dw, PyArrayObject *__pyx_v_flux_mass, PyArrayObject *__pyx_v_flux_umom, PyArrayObject *__pyx_v_flux_vmom, PyArrayObject *__pyx_v_flux_wmom, PyArrayObject *__pyx_v_dflux_mass_du, PyArrayObject *__pyx_v_dflux_mass_dv, PyArrayObject *__pyx_v_dflux_mass_dw, PyArrayObject *__pyx_v_dflux_umom_dp, PyArrayObject *__pyx_v_dflux_umom_du, PyArrayObject *__pyx_v_dflux_umom_dv, PyArrayObject *__pyx_v_dflux_umom_dw, PyArrayObject *__pyx_v_dflux_vmom_dp, PyArrayObject *__pyx_v_dflux_vmom_du, PyArrayObject *__pyx_v_dflux_vmom_dv, PyArrayObject *__pyx_v_dflux_vmom_dw, PyArrayObject *__pyx_v_dflux_wmom_dp, PyArrayObject *__pyx_v_dflux_wmom_du, PyArrayObject *__pyx_v_dflux_wmom_dv, PyArrayObject *__pyx_v_dflux_wmom_dw, PyArrayObject *__pyx_v_velocity); /* proto */
2612 static PyObject *__pyx_pf_14cnumericalFlux_102calculateExteriorNumericalAdvectiveFluxRusanov(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_safetyFactor, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_bc_df, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_df_element, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux); /* proto */
2613 static PyObject *__pyx_pf_14cnumericalFlux_104calculateGlobalExteriorNumericalAdvectiveFluxRusanov(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_safetyFactor, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nQuadraturePoints_element, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_bc_df, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_df_element, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux); /* proto */
2614 static PyObject *__pyx_pf_14cnumericalFlux_106calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_safetyFactor, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nQuadraturePoints_element, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_lambda_bar, PyArrayObject *__pyx_v_flux); /* proto */
2615 static PyObject *__pyx_pf_14cnumericalFlux_108calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_safetyFactor, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_lambda_bar_element, PyArrayObject *__pyx_v_flux); /* proto */
2616 static PyObject *__pyx_pf_14cnumericalFlux_110calculateExteriorNumericalDiffusiveFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a, PyArrayObject *__pyx_v_bc_grad_phi, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor); /* proto */
2617 static PyObject *__pyx_pf_14cnumericalFlux_112calculateExteriorNumericalDiffusiveFlux_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a, PyArrayObject *__pyx_v_bc_grad_phi, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor); /* proto */
2618 static PyObject *__pyx_pf_14cnumericalFlux_114calculateGlobalExteriorNumericalDiffusiveFlux(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a, PyArrayObject *__pyx_v_bc_grad_phi, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux); /* proto */
2619 static PyObject *__pyx_pf_14cnumericalFlux_116calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a, PyArrayObject *__pyx_v_bc_grad_phi, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor); /* proto */
2620 static PyObject *__pyx_pf_14cnumericalFlux_118calculateGlobalExteriorNumericalDiffusiveFlux_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a, PyArrayObject *__pyx_v_bc_grad_phi, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor); /* proto */
2621 static PyObject *__pyx_pf_14cnumericalFlux_120calculateExteriorNumericalDiffusiveFlux_free(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a, PyArrayObject *__pyx_v_bc_grad_phi, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux); /* proto */
2622 static PyObject *__pyx_pf_14cnumericalFlux_122calculateExteriorNumericalDiffusiveFlux_free_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a, PyArrayObject *__pyx_v_bc_grad_phi, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux); /* proto */
2623 static PyObject *__pyx_pf_14cnumericalFlux_124calculateGlobalExteriorNumericalDiffusiveFlux_free(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a, PyArrayObject *__pyx_v_bc_grad_phi, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux); /* proto */
2624 static PyObject *__pyx_pf_14cnumericalFlux_126calculateGlobalExteriorNumericalDiffusiveFlux_free_sd(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a, PyArrayObject *__pyx_v_bc_grad_phi, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux); /* proto */
2625 static PyObject *__pyx_pf_14cnumericalFlux_128updateExteriorNumericalDiffusiveFluxJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor); /* proto */
2626 static PyObject *__pyx_pf_14cnumericalFlux_130updateGlobalExteriorNumericalDiffusiveFluxJacobian(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nDOF_trial_element, int __pyx_v_nSpace, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian); /* proto */
2627 static PyObject *__pyx_pf_14cnumericalFlux_132updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nDOF_trial_element, int __pyx_v_nSpace, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian); /* proto */
2628 static PyObject *__pyx_pf_14cnumericalFlux_134updateExteriorNumericalDiffusiveFluxJacobian_free(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian); /* proto */
2629 static PyObject *__pyx_pf_14cnumericalFlux_136updateGlobalExteriorNumericalDiffusiveFluxJacobian_free(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nDOF_trial_element, int __pyx_v_nSpace, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian); /* proto */
2630 static PyObject *__pyx_pf_14cnumericalFlux_138updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nDOF_trial_element, int __pyx_v_nSpace, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian); /* proto */
2631 static PyObject *__pyx_pf_14cnumericalFlux_140calculateGlobalExteriorNumericalAdvectiveFlux_NoBC(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left); /* proto */
2632 static PyObject *__pyx_pf_14cnumericalFlux_142calculateGlobalExteriorNumericalAdvectiveFlux(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_bc_df, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux); /* proto */
2633 static PyObject *__pyx_pf_14cnumericalFlux_144calculateExteriorNumericalAdvectiveFlux_free(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_bc_df, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux); /* proto */
2634 static PyObject *__pyx_pf_14cnumericalFlux_146calculateGlobalExteriorNumericalAdvectiveFlux_free(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_bc_df, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux); /* proto */
2635 static PyObject *__pyx_pf_14cnumericalFlux_148calculateExteriorNumericalAdvectiveFluxStokesP2D(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_p, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_isDOFBoundary_v, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_bc_fpu, PyArrayObject *__pyx_v_bc_fpv, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_fpu, PyArrayObject *__pyx_v_fpv, PyArrayObject *__pyx_v_df_du, PyArrayObject *__pyx_v_df_dv, PyArrayObject *__pyx_v_dfpu_dp, PyArrayObject *__pyx_v_dfpv_dp, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_fluxpu, PyArrayObject *__pyx_v_fluxpv, PyArrayObject *__pyx_v_dflux_du, PyArrayObject *__pyx_v_dflux_dv, PyArrayObject *__pyx_v_dfluxpu_dp, PyArrayObject *__pyx_v_dfluxpv_dp); /* proto */
2636 static PyObject *__pyx_pf_14cnumericalFlux_150calculateExteriorNumericalAdvectiveFluxNavierStokes2D(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_p, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_isDOFBoundary_v, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_p, PyArrayObject *__pyx_v_bc_f_mass, PyArrayObject *__pyx_v_bc_f_umom, PyArrayObject *__pyx_v_bc_f_vmom, PyArrayObject *__pyx_v_p, PyArrayObject *__pyx_v_dm_umom, PyArrayObject *__pyx_v_f_mass, PyArrayObject *__pyx_v_f_umom, PyArrayObject *__pyx_v_f_vmom, PyArrayObject *__pyx_v_df_mass_du, PyArrayObject *__pyx_v_df_mass_dv, PyArrayObject *__pyx_v_df_umom_dp, PyArrayObject *__pyx_v_df_umom_du, PyArrayObject *__pyx_v_df_umom_dv, PyArrayObject *__pyx_v_df_vmom_dp, PyArrayObject *__pyx_v_df_vmom_du, PyArrayObject *__pyx_v_df_vmom_dv, PyArrayObject *__pyx_v_flux_mass, PyArrayObject *__pyx_v_flux_umom, PyArrayObject *__pyx_v_flux_vmom, PyArrayObject *__pyx_v_dflux_mass_dp, PyArrayObject *__pyx_v_dflux_mass_du, PyArrayObject *__pyx_v_dflux_mass_dv, PyArrayObject *__pyx_v_dflux_umom_dp, PyArrayObject *__pyx_v_dflux_umom_du, PyArrayObject *__pyx_v_dflux_umom_dv, PyArrayObject *__pyx_v_dflux_vmom_dp, PyArrayObject *__pyx_v_dflux_vmom_du, PyArrayObject *__pyx_v_dflux_vmom_dv, PyArrayObject *__pyx_v_velocity); /* proto */
2637 static PyObject *__pyx_pf_14cnumericalFlux_152calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_p, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_isDOFBoundary_v, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_p, PyArrayObject *__pyx_v_bc_f_mass, PyArrayObject *__pyx_v_bc_f_umom, PyArrayObject *__pyx_v_bc_f_vmom, PyArrayObject *__pyx_v_p, PyArrayObject *__pyx_v_oneByRho, PyArrayObject *__pyx_v_f_mass, PyArrayObject *__pyx_v_f_umom, PyArrayObject *__pyx_v_f_vmom, PyArrayObject *__pyx_v_df_mass_du, PyArrayObject *__pyx_v_df_mass_dv, PyArrayObject *__pyx_v_df_umom_dp, PyArrayObject *__pyx_v_df_umom_du, PyArrayObject *__pyx_v_df_umom_dv, PyArrayObject *__pyx_v_df_vmom_dp, PyArrayObject *__pyx_v_df_vmom_du, PyArrayObject *__pyx_v_df_vmom_dv, PyArrayObject *__pyx_v_flux_mass, PyArrayObject *__pyx_v_flux_umom, PyArrayObject *__pyx_v_flux_vmom, PyArrayObject *__pyx_v_dflux_mass_dp, PyArrayObject *__pyx_v_dflux_mass_du, PyArrayObject *__pyx_v_dflux_mass_dv, PyArrayObject *__pyx_v_dflux_umom_dp, PyArrayObject *__pyx_v_dflux_umom_du, PyArrayObject *__pyx_v_dflux_umom_dv, PyArrayObject *__pyx_v_dflux_vmom_dp, PyArrayObject *__pyx_v_dflux_vmom_du, PyArrayObject *__pyx_v_dflux_vmom_dv, PyArrayObject *__pyx_v_velocity); /* proto */
2638 static PyObject *__pyx_pf_14cnumericalFlux_154calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_p, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_isDOFBoundary_v, PyArrayObject *__pyx_v_isDOFBoundary_w, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_p, PyArrayObject *__pyx_v_bc_f_mass, PyArrayObject *__pyx_v_bc_f_umom, PyArrayObject *__pyx_v_bc_f_vmom, PyArrayObject *__pyx_v_bc_f_wmom, PyArrayObject *__pyx_v_p, PyArrayObject *__pyx_v_f_mass, PyArrayObject *__pyx_v_f_umom, PyArrayObject *__pyx_v_f_vmom, PyArrayObject *__pyx_v_f_wmom, PyArrayObject *__pyx_v_df_mass_du, PyArrayObject *__pyx_v_df_mass_dv, PyArrayObject *__pyx_v_df_mass_dw, PyArrayObject *__pyx_v_df_umom_dp, PyArrayObject *__pyx_v_df_umom_du, PyArrayObject *__pyx_v_df_umom_dv, PyArrayObject *__pyx_v_df_umom_dw, PyArrayObject *__pyx_v_df_vmom_dp, PyArrayObject *__pyx_v_df_vmom_du, PyArrayObject *__pyx_v_df_vmom_dv, PyArrayObject *__pyx_v_df_vmom_dw, PyArrayObject *__pyx_v_df_wmom_dp, PyArrayObject *__pyx_v_df_wmom_du, PyArrayObject *__pyx_v_df_wmom_dv, PyArrayObject *__pyx_v_df_wmom_dw, PyArrayObject *__pyx_v_flux_mass, PyArrayObject *__pyx_v_flux_umom, PyArrayObject *__pyx_v_flux_vmom, PyArrayObject *__pyx_v_flux_wmom, PyArrayObject *__pyx_v_dflux_mass_du, PyArrayObject *__pyx_v_dflux_mass_dv, PyArrayObject *__pyx_v_dflux_mass_dw, PyArrayObject *__pyx_v_dflux_umom_dp, PyArrayObject *__pyx_v_dflux_umom_du, PyArrayObject *__pyx_v_dflux_umom_dv, PyArrayObject *__pyx_v_dflux_umom_dw, PyArrayObject *__pyx_v_dflux_vmom_dp, PyArrayObject *__pyx_v_dflux_vmom_du, PyArrayObject *__pyx_v_dflux_vmom_dv, PyArrayObject *__pyx_v_dflux_vmom_dw, PyArrayObject *__pyx_v_dflux_wmom_dp, PyArrayObject *__pyx_v_dflux_wmom_du, PyArrayObject *__pyx_v_dflux_wmom_dv, PyArrayObject *__pyx_v_dflux_wmom_dw, PyArrayObject *__pyx_v_velocity); /* proto */
2639 static PyObject *__pyx_pf_14cnumericalFlux_156calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_p, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_isDOFBoundary_v, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_bc_fpu, PyArrayObject *__pyx_v_bc_fpv, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_fpu, PyArrayObject *__pyx_v_fpv, PyArrayObject *__pyx_v_df_du, PyArrayObject *__pyx_v_df_dv, PyArrayObject *__pyx_v_dfpu_dp, PyArrayObject *__pyx_v_dfpv_dp, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_fluxpu, PyArrayObject *__pyx_v_fluxpv, PyArrayObject *__pyx_v_dflux_du, PyArrayObject *__pyx_v_dflux_dv, PyArrayObject *__pyx_v_dfluxpu_dp, PyArrayObject *__pyx_v_dfluxpv_dp); /* proto */
2640 static PyObject *__pyx_pf_14cnumericalFlux_158calculateExteriorNumericalAdvectiveFluxStokesP3D(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_p, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_isDOFBoundary_v, PyArrayObject *__pyx_v_isDOFBoundary_w, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_bc_fpu, PyArrayObject *__pyx_v_bc_fpv, PyArrayObject *__pyx_v_bc_fpw, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_fpu, PyArrayObject *__pyx_v_fpv, PyArrayObject *__pyx_v_fpw, PyArrayObject *__pyx_v_df_du, PyArrayObject *__pyx_v_df_dv, PyArrayObject *__pyx_v_df_dw, PyArrayObject *__pyx_v_dfpu_dp, PyArrayObject *__pyx_v_dfpv_dp, PyArrayObject *__pyx_v_dfpw_dp, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_fluxpu, PyArrayObject *__pyx_v_fluxpv, PyArrayObject *__pyx_v_fluxpw, PyArrayObject *__pyx_v_dflux_du, PyArrayObject *__pyx_v_dflux_dv, PyArrayObject *__pyx_v_dflux_dw, PyArrayObject *__pyx_v_dfluxpu_dp, PyArrayObject *__pyx_v_dfluxpv_dp, PyArrayObject *__pyx_v_dfluxpw_dp); /* proto */
2641 static PyObject *__pyx_pf_14cnumericalFlux_160calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_p, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_isDOFBoundary_v, PyArrayObject *__pyx_v_isDOFBoundary_w, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_bc_fpu, PyArrayObject *__pyx_v_bc_fpv, PyArrayObject *__pyx_v_bc_fpw, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_fpu, PyArrayObject *__pyx_v_fpv, PyArrayObject *__pyx_v_fpw, PyArrayObject *__pyx_v_df_du, PyArrayObject *__pyx_v_df_dv, PyArrayObject *__pyx_v_df_dw, PyArrayObject *__pyx_v_dfpu_dp, PyArrayObject *__pyx_v_dfpv_dp, PyArrayObject *__pyx_v_dfpw_dp, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_fluxpu, PyArrayObject *__pyx_v_fluxpv, PyArrayObject *__pyx_v_fluxpw, PyArrayObject *__pyx_v_dflux_du, PyArrayObject *__pyx_v_dflux_dv, PyArrayObject *__pyx_v_dflux_dw, PyArrayObject *__pyx_v_dfluxpu_dp, PyArrayObject *__pyx_v_dfluxpv_dp, PyArrayObject *__pyx_v_dfluxpw_dp); /* proto */
2642 static PyObject *__pyx_pf_14cnumericalFlux_162calculateExteriorNumericalAdvectiveFlux_average(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_bc_df, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux); /* proto */
2643 static PyObject *__pyx_pf_14cnumericalFlux_164calculateGlobalExteriorNumericalAdvectiveFlux_average(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_bc_df, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux); /* proto */
2644 static PyObject *__pyx_pf_14cnumericalFlux_166updateExteriorNumericalAdvectiveFluxJacobian_free(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_fluxJacobian); /* proto */
2645 static PyObject *__pyx_pf_14cnumericalFlux_168updateGlobalExteriorNumericalAdvectiveFluxJacobian_free(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nDOF_trial_element, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_fluxJacobian); /* proto */
2646 static PyObject *__pyx_pf_14cnumericalFlux_170calculateExteriorNumericalDiffusiveFlux_LDG_upwind(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_phi_bc, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_V, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux); /* proto */
2647 static PyObject *__pyx_pf_14cnumericalFlux_172calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_phi_bc, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_V, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux); /* proto */
2648 static PyObject *__pyx_pf_14cnumericalFlux_174calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nElementBoundaries_element, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_phi_bc, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_V, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux); /* proto */
2649 static PyObject *__pyx_pf_14cnumericalFlux_176calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nElementBoundaries_element, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_phi_bc, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_V, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux); /* proto */
2650 static PyObject *__pyx_pf_14cnumericalFlux_178updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_isDiffusiveFluxBoundary, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_V, PyArrayObject *__pyx_v_DV, PyArrayObject *__pyx_v_DV_eb, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian, PyArrayObject *__pyx_v_fluxJacobian_eb); /* proto */
2651 static PyObject *__pyx_pf_14cnumericalFlux_180updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_isDiffusiveFluxBoundary, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_V, PyArrayObject *__pyx_v_DV, PyArrayObject *__pyx_v_DV_eb, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian, PyArrayObject *__pyx_v_fluxJacobian_eb); /* proto */
2652 static PyObject *__pyx_pf_14cnumericalFlux_182updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_isDiffusiveFluxBoundary, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nElementBoundaries_element, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nDOF_trial_element, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_V, PyArrayObject *__pyx_v_DV, PyArrayObject *__pyx_v_DV_eb, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian_exterior, PyArrayObject *__pyx_v_fluxJacobian_eb); /* proto */
2653 static PyObject *__pyx_pf_14cnumericalFlux_184updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_isDiffusiveFluxBoundary, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nElementBoundaries_element, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nDOF_trial_element, int __pyx_v_nSpace, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_V, PyArrayObject *__pyx_v_DV, PyArrayObject *__pyx_v_DV_eb, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian_exterior, PyArrayObject *__pyx_v_fluxJacobian_eb); /* proto */
2654 static PyObject *__pyx_pf_14cnumericalFlux_186calculateExteriorLesaintRaviartNumericalFlux(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_speedEvalFlag, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_bc_H, PyArrayObject *__pyx_v_bc_dH, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_H, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux); /* proto */
2655 static PyObject *__pyx_pf_14cnumericalFlux_188calculateGlobalExteriorLesaintRaviartNumericalFlux(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, int __pyx_v_speedEvalFlag, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_bc_H, PyArrayObject *__pyx_v_bc_dH, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_H, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux); /* proto */
2656 static PyObject *__pyx_pf_14cnumericalFlux_190calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_sw, PyArrayObject *__pyx_v_isDOFBoundary_psiw, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_sw, PyArrayObject *__pyx_v_bc_psiw, PyArrayObject *__pyx_v_bc_fw, PyArrayObject *__pyx_v_bc_dfw_dsw, PyArrayObject *__pyx_v_bc_dfw_dpsiw, PyArrayObject *__pyx_v_bc_fn, PyArrayObject *__pyx_v_bc_dfn_dsw, PyArrayObject *__pyx_v_bc_dfn_dpsiw, PyArrayObject *__pyx_v_sw, PyArrayObject *__pyx_v_psiw, PyArrayObject *__pyx_v_fw, PyArrayObject *__pyx_v_dfw_dsw, PyArrayObject *__pyx_v_dfw_dpsiw, PyArrayObject *__pyx_v_fn, PyArrayObject *__pyx_v_dfn_dsw, PyArrayObject *__pyx_v_dfn_dpsiw, PyArrayObject *__pyx_v_fluxw, PyArrayObject *__pyx_v_dfluxw_dsw, PyArrayObject *__pyx_v_dfluxw_dpsiw, PyArrayObject *__pyx_v_fluxn, PyArrayObject *__pyx_v_dfluxn_dsw, PyArrayObject *__pyx_v_dfluxn_dpsiw); /* proto */
2657 static PyObject *__pyx_pf_14cnumericalFlux_192calculateGlobalExteriorNumericalFluxDarcySplitPressure(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a, PyArrayObject *__pyx_v_bc_grad_phi, PyArrayObject *__pyx_v_bc_psi_w, PyArrayObject *__pyx_v_bc_psi_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_psi_w, PyArrayObject *__pyx_v_psi_n, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_diffusiveFlux); /* proto */
2658 static PyObject *__pyx_pf_14cnumericalFlux_194calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_a, PyArrayObject *__pyx_v_bc_grad_phi, PyArrayObject *__pyx_v_bc_psi_w, PyArrayObject *__pyx_v_bc_psi_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_psi_w, PyArrayObject *__pyx_v_psi_n, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_diffusiveFlux); /* proto */
2659 static PyObject *__pyx_pf_14cnumericalFlux_196updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_fluxBoundaryFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor); /* proto */
2660 static PyObject *__pyx_pf_14cnumericalFlux_198updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nDOF_trial_element, int __pyx_v_nSpace, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_fluxBoundaryFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian); /* proto */
2661 static PyObject *__pyx_pf_14cnumericalFlux_200calculateGlobalExteriorNumericalAdvectiveFluxStokes2D(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_p, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_isDOFBoundary_v, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_p, PyArrayObject *__pyx_v_bc_f_mass, PyArrayObject *__pyx_v_p, PyArrayObject *__pyx_v_f_mass, PyArrayObject *__pyx_v_df_mass_du, PyArrayObject *__pyx_v_df_mass_dv, PyArrayObject *__pyx_v_flux_mass, PyArrayObject *__pyx_v_flux_umom, PyArrayObject *__pyx_v_flux_vmom, PyArrayObject *__pyx_v_dflux_mass_du, PyArrayObject *__pyx_v_dflux_mass_dv, PyArrayObject *__pyx_v_dflux_umom_dp, PyArrayObject *__pyx_v_dflux_vmom_dp, PyArrayObject *__pyx_v_velocity); /* proto */
2662 static PyObject *__pyx_pf_14cnumericalFlux_202calculateGlobalExteriorNumericalAdvectiveFluxStokes3D(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary_p, PyArrayObject *__pyx_v_isDOFBoundary_u, PyArrayObject *__pyx_v_isDOFBoundary_v, PyArrayObject *__pyx_v_isDOFBoundary_w, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_p, PyArrayObject *__pyx_v_bc_f_mass, PyArrayObject *__pyx_v_p, PyArrayObject *__pyx_v_f_mass, PyArrayObject *__pyx_v_df_mass_du, PyArrayObject *__pyx_v_df_mass_dv, PyArrayObject *__pyx_v_df_mass_dw, PyArrayObject *__pyx_v_flux_mass, PyArrayObject *__pyx_v_flux_umom, PyArrayObject *__pyx_v_flux_vmom, PyArrayObject *__pyx_v_flux_wmom, PyArrayObject *__pyx_v_dflux_mass_du, PyArrayObject *__pyx_v_dflux_mass_dv, PyArrayObject *__pyx_v_dflux_mass_dw, PyArrayObject *__pyx_v_dflux_umom_dp, PyArrayObject *__pyx_v_dflux_vmom_dp, PyArrayObject *__pyx_v_dflux_wmom_dp, PyArrayObject *__pyx_v_velocity); /* proto */
2663 static PyObject *__pyx_pf_14cnumericalFlux_204applySeepageFace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isSeepageFace, PyArrayObject *__pyx_v_isDOFBoundary, double __pyx_v_epsFact, PyArrayObject *__pyx_v_elementDiameters, PyArrayObject *__pyx_v_g, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_grad_u, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_advectiveFlux, PyArrayObject *__pyx_v_diffusiveFlux); /* proto */
2664 static PyObject *__pyx_pf_14cnumericalFlux_206applySeepageFaceJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isSeepageFace, double __pyx_v_epsFact, PyArrayObject *__pyx_v_elementDiameters, PyArrayObject *__pyx_v_g, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_grad_u, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_advectiveFlux, PyArrayObject *__pyx_v_diffusiveFlux, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_fluxJacobian); /* proto */
2665 static PyObject *__pyx_int_0;
2666 static PyObject *__pyx_int_1;
2667 static PyObject *__pyx_int_3;
2668 static PyObject *__pyx_int_4;
2669 static PyObject *__pyx_tuple_;
2670 static PyObject *__pyx_tuple__2;
2671 static PyObject *__pyx_tuple__3;
2672 static PyObject *__pyx_tuple__5;
2673 static PyObject *__pyx_tuple__7;
2674 static PyObject *__pyx_tuple__9;
2675 static PyObject *__pyx_tuple__11;
2676 static PyObject *__pyx_tuple__13;
2677 static PyObject *__pyx_tuple__15;
2678 static PyObject *__pyx_tuple__17;
2679 static PyObject *__pyx_tuple__19;
2680 static PyObject *__pyx_tuple__21;
2681 static PyObject *__pyx_tuple__23;
2682 static PyObject *__pyx_tuple__25;
2683 static PyObject *__pyx_tuple__27;
2684 static PyObject *__pyx_tuple__29;
2685 static PyObject *__pyx_tuple__31;
2686 static PyObject *__pyx_tuple__33;
2687 static PyObject *__pyx_tuple__35;
2688 static PyObject *__pyx_tuple__37;
2689 static PyObject *__pyx_tuple__39;
2690 static PyObject *__pyx_tuple__41;
2691 static PyObject *__pyx_tuple__43;
2692 static PyObject *__pyx_tuple__45;
2693 static PyObject *__pyx_tuple__47;
2694 static PyObject *__pyx_tuple__49;
2695 static PyObject *__pyx_tuple__51;
2696 static PyObject *__pyx_tuple__53;
2697 static PyObject *__pyx_tuple__55;
2698 static PyObject *__pyx_tuple__57;
2699 static PyObject *__pyx_tuple__59;
2700 static PyObject *__pyx_tuple__61;
2701 static PyObject *__pyx_tuple__63;
2702 static PyObject *__pyx_tuple__65;
2703 static PyObject *__pyx_tuple__67;
2704 static PyObject *__pyx_tuple__69;
2705 static PyObject *__pyx_tuple__71;
2706 static PyObject *__pyx_tuple__73;
2707 static PyObject *__pyx_tuple__75;
2708 static PyObject *__pyx_tuple__77;
2709 static PyObject *__pyx_tuple__79;
2710 static PyObject *__pyx_tuple__81;
2711 static PyObject *__pyx_tuple__83;
2712 static PyObject *__pyx_tuple__85;
2713 static PyObject *__pyx_tuple__87;
2714 static PyObject *__pyx_tuple__89;
2715 static PyObject *__pyx_tuple__91;
2716 static PyObject *__pyx_tuple__93;
2717 static PyObject *__pyx_tuple__95;
2718 static PyObject *__pyx_tuple__97;
2719 static PyObject *__pyx_tuple__99;
2720 static PyObject *__pyx_codeobj__4;
2721 static PyObject *__pyx_codeobj__6;
2722 static PyObject *__pyx_codeobj__8;
2723 static PyObject *__pyx_tuple__101;
2724 static PyObject *__pyx_tuple__103;
2725 static PyObject *__pyx_tuple__105;
2726 static PyObject *__pyx_tuple__107;
2727 static PyObject *__pyx_tuple__109;
2728 static PyObject *__pyx_tuple__111;
2729 static PyObject *__pyx_tuple__113;
2730 static PyObject *__pyx_tuple__115;
2731 static PyObject *__pyx_tuple__117;
2732 static PyObject *__pyx_tuple__119;
2733 static PyObject *__pyx_tuple__121;
2734 static PyObject *__pyx_tuple__123;
2735 static PyObject *__pyx_tuple__125;
2736 static PyObject *__pyx_tuple__127;
2737 static PyObject *__pyx_tuple__129;
2738 static PyObject *__pyx_tuple__131;
2739 static PyObject *__pyx_tuple__133;
2740 static PyObject *__pyx_tuple__135;
2741 static PyObject *__pyx_tuple__137;
2742 static PyObject *__pyx_tuple__139;
2743 static PyObject *__pyx_tuple__141;
2744 static PyObject *__pyx_tuple__143;
2745 static PyObject *__pyx_tuple__145;
2746 static PyObject *__pyx_tuple__147;
2747 static PyObject *__pyx_tuple__149;
2748 static PyObject *__pyx_tuple__151;
2749 static PyObject *__pyx_tuple__153;
2750 static PyObject *__pyx_tuple__155;
2751 static PyObject *__pyx_tuple__157;
2752 static PyObject *__pyx_tuple__159;
2753 static PyObject *__pyx_tuple__161;
2754 static PyObject *__pyx_tuple__163;
2755 static PyObject *__pyx_tuple__165;
2756 static PyObject *__pyx_tuple__167;
2757 static PyObject *__pyx_tuple__169;
2758 static PyObject *__pyx_tuple__171;
2759 static PyObject *__pyx_tuple__173;
2760 static PyObject *__pyx_tuple__175;
2761 static PyObject *__pyx_tuple__177;
2762 static PyObject *__pyx_tuple__179;
2763 static PyObject *__pyx_tuple__181;
2764 static PyObject *__pyx_tuple__183;
2765 static PyObject *__pyx_tuple__185;
2766 static PyObject *__pyx_tuple__187;
2767 static PyObject *__pyx_tuple__189;
2768 static PyObject *__pyx_tuple__191;
2769 static PyObject *__pyx_tuple__193;
2770 static PyObject *__pyx_tuple__195;
2771 static PyObject *__pyx_tuple__197;
2772 static PyObject *__pyx_tuple__199;
2773 static PyObject *__pyx_tuple__201;
2774 static PyObject *__pyx_tuple__203;
2775 static PyObject *__pyx_tuple__205;
2776 static PyObject *__pyx_tuple__207;
2777 static PyObject *__pyx_tuple__209;
2778 static PyObject *__pyx_codeobj__10;
2779 static PyObject *__pyx_codeobj__12;
2780 static PyObject *__pyx_codeobj__14;
2781 static PyObject *__pyx_codeobj__16;
2782 static PyObject *__pyx_codeobj__18;
2783 static PyObject *__pyx_codeobj__20;
2784 static PyObject *__pyx_codeobj__22;
2785 static PyObject *__pyx_codeobj__24;
2786 static PyObject *__pyx_codeobj__26;
2787 static PyObject *__pyx_codeobj__28;
2788 static PyObject *__pyx_codeobj__30;
2789 static PyObject *__pyx_codeobj__32;
2790 static PyObject *__pyx_codeobj__34;
2791 static PyObject *__pyx_codeobj__36;
2792 static PyObject *__pyx_codeobj__38;
2793 static PyObject *__pyx_codeobj__40;
2794 static PyObject *__pyx_codeobj__42;
2795 static PyObject *__pyx_codeobj__44;
2796 static PyObject *__pyx_codeobj__46;
2797 static PyObject *__pyx_codeobj__48;
2798 static PyObject *__pyx_codeobj__50;
2799 static PyObject *__pyx_codeobj__52;
2800 static PyObject *__pyx_codeobj__54;
2801 static PyObject *__pyx_codeobj__56;
2802 static PyObject *__pyx_codeobj__58;
2803 static PyObject *__pyx_codeobj__60;
2804 static PyObject *__pyx_codeobj__62;
2805 static PyObject *__pyx_codeobj__64;
2806 static PyObject *__pyx_codeobj__66;
2807 static PyObject *__pyx_codeobj__68;
2808 static PyObject *__pyx_codeobj__70;
2809 static PyObject *__pyx_codeobj__72;
2810 static PyObject *__pyx_codeobj__74;
2811 static PyObject *__pyx_codeobj__76;
2812 static PyObject *__pyx_codeobj__78;
2813 static PyObject *__pyx_codeobj__80;
2814 static PyObject *__pyx_codeobj__82;
2815 static PyObject *__pyx_codeobj__84;
2816 static PyObject *__pyx_codeobj__86;
2817 static PyObject *__pyx_codeobj__88;
2818 static PyObject *__pyx_codeobj__90;
2819 static PyObject *__pyx_codeobj__92;
2820 static PyObject *__pyx_codeobj__94;
2821 static PyObject *__pyx_codeobj__96;
2822 static PyObject *__pyx_codeobj__98;
2823 static PyObject *__pyx_codeobj__100;
2824 static PyObject *__pyx_codeobj__102;
2825 static PyObject *__pyx_codeobj__104;
2826 static PyObject *__pyx_codeobj__106;
2827 static PyObject *__pyx_codeobj__108;
2828 static PyObject *__pyx_codeobj__110;
2829 static PyObject *__pyx_codeobj__112;
2830 static PyObject *__pyx_codeobj__114;
2831 static PyObject *__pyx_codeobj__116;
2832 static PyObject *__pyx_codeobj__118;
2833 static PyObject *__pyx_codeobj__120;
2834 static PyObject *__pyx_codeobj__122;
2835 static PyObject *__pyx_codeobj__124;
2836 static PyObject *__pyx_codeobj__126;
2837 static PyObject *__pyx_codeobj__128;
2838 static PyObject *__pyx_codeobj__130;
2839 static PyObject *__pyx_codeobj__132;
2840 static PyObject *__pyx_codeobj__134;
2841 static PyObject *__pyx_codeobj__136;
2842 static PyObject *__pyx_codeobj__138;
2843 static PyObject *__pyx_codeobj__140;
2844 static PyObject *__pyx_codeobj__142;
2845 static PyObject *__pyx_codeobj__144;
2846 static PyObject *__pyx_codeobj__146;
2847 static PyObject *__pyx_codeobj__148;
2848 static PyObject *__pyx_codeobj__150;
2849 static PyObject *__pyx_codeobj__152;
2850 static PyObject *__pyx_codeobj__154;
2851 static PyObject *__pyx_codeobj__156;
2852 static PyObject *__pyx_codeobj__158;
2853 static PyObject *__pyx_codeobj__160;
2854 static PyObject *__pyx_codeobj__162;
2855 static PyObject *__pyx_codeobj__164;
2856 static PyObject *__pyx_codeobj__166;
2857 static PyObject *__pyx_codeobj__168;
2858 static PyObject *__pyx_codeobj__170;
2859 static PyObject *__pyx_codeobj__172;
2860 static PyObject *__pyx_codeobj__174;
2861 static PyObject *__pyx_codeobj__176;
2862 static PyObject *__pyx_codeobj__178;
2863 static PyObject *__pyx_codeobj__180;
2864 static PyObject *__pyx_codeobj__182;
2865 static PyObject *__pyx_codeobj__184;
2866 static PyObject *__pyx_codeobj__186;
2867 static PyObject *__pyx_codeobj__188;
2868 static PyObject *__pyx_codeobj__190;
2869 static PyObject *__pyx_codeobj__192;
2870 static PyObject *__pyx_codeobj__194;
2871 static PyObject *__pyx_codeobj__196;
2872 static PyObject *__pyx_codeobj__198;
2873 static PyObject *__pyx_codeobj__200;
2874 static PyObject *__pyx_codeobj__202;
2875 static PyObject *__pyx_codeobj__204;
2876 static PyObject *__pyx_codeobj__206;
2877 static PyObject *__pyx_codeobj__208;
2878 static PyObject *__pyx_codeobj__210;
2879 /* Late includes */
2880 
2881 /* "cnumericalFlux.pyx":2147
2882  * double* fluxJacobian)
2883  * ##-----------------
2884  * def calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, # <<<<<<<<<<<<<<
2885  * np.ndarray interiorElementBoundaries,
2886  * np.ndarray elementBoundaryElements,
2887  */
2888 
2889 /* Python wrapper */
2890 static PyObject *__pyx_pw_14cnumericalFlux_1calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
2891 static PyMethodDef __pyx_mdef_14cnumericalFlux_1calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound = {"calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_1calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound, METH_VARARGS|METH_KEYWORDS, 0};
2892 static PyObject *__pyx_pw_14cnumericalFlux_1calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
2893  double __pyx_v_safetyFactor;
2894  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
2895  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
2896  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
2897  PyArrayObject *__pyx_v_n = 0;
2898  PyArrayObject *__pyx_v_u = 0;
2899  PyArrayObject *__pyx_v_f = 0;
2900  PyArrayObject *__pyx_v_lambda_bar_element = 0;
2901  PyArrayObject *__pyx_v_flux = 0;
2902  int __pyx_lineno = 0;
2903  const char *__pyx_filename = NULL;
2904  int __pyx_clineno = 0;
2905  PyObject *__pyx_r = 0;
2906  __Pyx_RefNannyDeclarations
2907  __Pyx_RefNannySetupContext("calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound (wrapper)", 0);
2908  {
2909  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_safetyFactor,&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_u,&__pyx_n_s_f,&__pyx_n_s_lambda_bar_element,&__pyx_n_s_flux,0};
2910  PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
2911  if (unlikely(__pyx_kwds)) {
2912  Py_ssize_t kw_args;
2913  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
2914  switch (pos_args) {
2915  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
2916  CYTHON_FALLTHROUGH;
2917  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
2918  CYTHON_FALLTHROUGH;
2919  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
2920  CYTHON_FALLTHROUGH;
2921  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
2922  CYTHON_FALLTHROUGH;
2923  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
2924  CYTHON_FALLTHROUGH;
2925  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
2926  CYTHON_FALLTHROUGH;
2927  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
2928  CYTHON_FALLTHROUGH;
2929  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
2930  CYTHON_FALLTHROUGH;
2931  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
2932  CYTHON_FALLTHROUGH;
2933  case 0: break;
2934  default: goto __pyx_L5_argtuple_error;
2935  }
2936  kw_args = PyDict_Size(__pyx_kwds);
2937  switch (pos_args) {
2938  case 0:
2939  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_safetyFactor)) != 0)) kw_args--;
2940  else goto __pyx_L5_argtuple_error;
2941  CYTHON_FALLTHROUGH;
2942  case 1:
2943  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
2944  else {
2945  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 9, 9, 1); __PYX_ERR(0, 2147, __pyx_L3_error)
2946  }
2947  CYTHON_FALLTHROUGH;
2948  case 2:
2949  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
2950  else {
2951  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 9, 9, 2); __PYX_ERR(0, 2147, __pyx_L3_error)
2952  }
2953  CYTHON_FALLTHROUGH;
2954  case 3:
2955  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
2956  else {
2957  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 9, 9, 3); __PYX_ERR(0, 2147, __pyx_L3_error)
2958  }
2959  CYTHON_FALLTHROUGH;
2960  case 4:
2961  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
2962  else {
2963  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 9, 9, 4); __PYX_ERR(0, 2147, __pyx_L3_error)
2964  }
2965  CYTHON_FALLTHROUGH;
2966  case 5:
2967  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
2968  else {
2969  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 9, 9, 5); __PYX_ERR(0, 2147, __pyx_L3_error)
2970  }
2971  CYTHON_FALLTHROUGH;
2972  case 6:
2973  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
2974  else {
2975  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 9, 9, 6); __PYX_ERR(0, 2147, __pyx_L3_error)
2976  }
2977  CYTHON_FALLTHROUGH;
2978  case 7:
2979  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lambda_bar_element)) != 0)) kw_args--;
2980  else {
2981  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 9, 9, 7); __PYX_ERR(0, 2147, __pyx_L3_error)
2982  }
2983  CYTHON_FALLTHROUGH;
2984  case 8:
2985  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
2986  else {
2987  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 9, 9, 8); __PYX_ERR(0, 2147, __pyx_L3_error)
2988  }
2989  }
2990  if (unlikely(kw_args > 0)) {
2991  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound") < 0)) __PYX_ERR(0, 2147, __pyx_L3_error)
2992  }
2993  } else if (PyTuple_GET_SIZE(__pyx_args) != 9) {
2994  goto __pyx_L5_argtuple_error;
2995  } else {
2996  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
2997  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
2998  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
2999  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3000  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3001  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3002  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3003  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3004  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
3005  }
3006  __pyx_v_safetyFactor = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_safetyFactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2147, __pyx_L3_error)
3007  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[1]);
3008  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
3009  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
3010  __pyx_v_n = ((PyArrayObject *)values[4]);
3011  __pyx_v_u = ((PyArrayObject *)values[5]);
3012  __pyx_v_f = ((PyArrayObject *)values[6]);
3013  __pyx_v_lambda_bar_element = ((PyArrayObject *)values[7]);
3014  __pyx_v_flux = ((PyArrayObject *)values[8]);
3015  }
3016  goto __pyx_L4_argument_unpacking_done;
3017  __pyx_L5_argtuple_error:;
3018  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2147, __pyx_L3_error)
3019  __pyx_L3_error:;
3020  __Pyx_AddTraceback("cnumericalFlux.calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", __pyx_clineno, __pyx_lineno, __pyx_filename);
3021  __Pyx_RefNannyFinishContext();
3022  return NULL;
3023  __pyx_L4_argument_unpacking_done:;
3024  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2148, __pyx_L1_error)
3025  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2149, __pyx_L1_error)
3026  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2150, __pyx_L1_error)
3027  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2151, __pyx_L1_error)
3028  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 2152, __pyx_L1_error)
3029  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 2153, __pyx_L1_error)
3030  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lambda_bar_element), __pyx_ptype_5numpy_ndarray, 1, "lambda_bar_element", 0))) __PYX_ERR(0, 2154, __pyx_L1_error)
3031  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 2155, __pyx_L1_error)
3032  __pyx_r = __pyx_pf_14cnumericalFlux_calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(__pyx_self, __pyx_v_safetyFactor, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_u, __pyx_v_f, __pyx_v_lambda_bar_element, __pyx_v_flux);
3033 
3034  /* function exit code */
3035  goto __pyx_L0;
3036  __pyx_L1_error:;
3037  __pyx_r = NULL;
3038  __pyx_L0:;
3039  __Pyx_RefNannyFinishContext();
3040  return __pyx_r;
3041 }
3042 
3043 static PyObject *__pyx_pf_14cnumericalFlux_calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_safetyFactor, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_lambda_bar_element, PyArrayObject *__pyx_v_flux) {
3044  PyObject *__pyx_r = NULL;
3045  __Pyx_RefNannyDeclarations
3046  __Pyx_RefNannySetupContext("calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 0);
3047 
3048  /* "cnumericalFlux.pyx":2156
3049  * np.ndarray lambda_bar_element,
3050  * np.ndarray flux):
3051  * ccalculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound( safetyFactor, # <<<<<<<<<<<<<<
3052  * interiorElementBoundaries.shape[0],
3053  * f.shape[1],
3054  */
3055  calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(__pyx_v_safetyFactor, (__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_f->dimensions[1]), (__pyx_v_f->dimensions[2]), (__pyx_v_lambda_bar_element->dimensions[1]), (__pyx_v_f->dimensions[3]), ((int *)__pyx_v_interiorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_lambda_bar_element->data), ((double *)__pyx_v_flux->data));
3056 
3057  /* "cnumericalFlux.pyx":2147
3058  * double* fluxJacobian)
3059  * ##-----------------
3060  * def calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, # <<<<<<<<<<<<<<
3061  * np.ndarray interiorElementBoundaries,
3062  * np.ndarray elementBoundaryElements,
3063  */
3064 
3065  /* function exit code */
3066  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3067  __Pyx_XGIVEREF(__pyx_r);
3068  __Pyx_RefNannyFinishContext();
3069  return __pyx_r;
3070 }
3071 
3072 /* "cnumericalFlux.pyx":2170
3073  * <double*> lambda_bar_element.data,
3074  * <double*> flux.data)
3075  * def calculateInteriorLesaintRaviartNumericalFlux(int speedEvalFlag, # <<<<<<<<<<<<<<
3076  * np.ndarray interiorElementBoundaries,
3077  * np.ndarray elementBoundaryElements,
3078  */
3079 
3080 /* Python wrapper */
3081 static PyObject *__pyx_pw_14cnumericalFlux_3calculateInteriorLesaintRaviartNumericalFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3082 static PyMethodDef __pyx_mdef_14cnumericalFlux_3calculateInteriorLesaintRaviartNumericalFlux = {"calculateInteriorLesaintRaviartNumericalFlux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_3calculateInteriorLesaintRaviartNumericalFlux, METH_VARARGS|METH_KEYWORDS, 0};
3083 static PyObject *__pyx_pw_14cnumericalFlux_3calculateInteriorLesaintRaviartNumericalFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3084  int __pyx_v_speedEvalFlag;
3085  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
3086  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
3087  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
3088  PyArrayObject *__pyx_v_n = 0;
3089  PyArrayObject *__pyx_v_u = 0;
3090  PyArrayObject *__pyx_v_H = 0;
3091  PyArrayObject *__pyx_v_dH = 0;
3092  PyArrayObject *__pyx_v_flux = 0;
3093  PyArrayObject *__pyx_v_dflux_left = 0;
3094  PyArrayObject *__pyx_v_dflux_right = 0;
3095  int __pyx_lineno = 0;
3096  const char *__pyx_filename = NULL;
3097  int __pyx_clineno = 0;
3098  PyObject *__pyx_r = 0;
3099  __Pyx_RefNannyDeclarations
3100  __Pyx_RefNannySetupContext("calculateInteriorLesaintRaviartNumericalFlux (wrapper)", 0);
3101  {
3102  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_speedEvalFlag,&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_u,&__pyx_n_s_H,&__pyx_n_s_dH,&__pyx_n_s_flux,&__pyx_n_s_dflux_left,&__pyx_n_s_dflux_right,0};
3103  PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
3104  if (unlikely(__pyx_kwds)) {
3105  Py_ssize_t kw_args;
3106  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3107  switch (pos_args) {
3108  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
3109  CYTHON_FALLTHROUGH;
3110  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
3111  CYTHON_FALLTHROUGH;
3112  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
3113  CYTHON_FALLTHROUGH;
3114  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3115  CYTHON_FALLTHROUGH;
3116  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3117  CYTHON_FALLTHROUGH;
3118  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3119  CYTHON_FALLTHROUGH;
3120  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3121  CYTHON_FALLTHROUGH;
3122  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3123  CYTHON_FALLTHROUGH;
3124  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3125  CYTHON_FALLTHROUGH;
3126  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3127  CYTHON_FALLTHROUGH;
3128  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3129  CYTHON_FALLTHROUGH;
3130  case 0: break;
3131  default: goto __pyx_L5_argtuple_error;
3132  }
3133  kw_args = PyDict_Size(__pyx_kwds);
3134  switch (pos_args) {
3135  case 0:
3136  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_speedEvalFlag)) != 0)) kw_args--;
3137  else goto __pyx_L5_argtuple_error;
3138  CYTHON_FALLTHROUGH;
3139  case 1:
3140  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
3141  else {
3142  __Pyx_RaiseArgtupleInvalid("calculateInteriorLesaintRaviartNumericalFlux", 1, 11, 11, 1); __PYX_ERR(0, 2170, __pyx_L3_error)
3143  }
3144  CYTHON_FALLTHROUGH;
3145  case 2:
3146  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
3147  else {
3148  __Pyx_RaiseArgtupleInvalid("calculateInteriorLesaintRaviartNumericalFlux", 1, 11, 11, 2); __PYX_ERR(0, 2170, __pyx_L3_error)
3149  }
3150  CYTHON_FALLTHROUGH;
3151  case 3:
3152  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
3153  else {
3154  __Pyx_RaiseArgtupleInvalid("calculateInteriorLesaintRaviartNumericalFlux", 1, 11, 11, 3); __PYX_ERR(0, 2170, __pyx_L3_error)
3155  }
3156  CYTHON_FALLTHROUGH;
3157  case 4:
3158  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
3159  else {
3160  __Pyx_RaiseArgtupleInvalid("calculateInteriorLesaintRaviartNumericalFlux", 1, 11, 11, 4); __PYX_ERR(0, 2170, __pyx_L3_error)
3161  }
3162  CYTHON_FALLTHROUGH;
3163  case 5:
3164  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
3165  else {
3166  __Pyx_RaiseArgtupleInvalid("calculateInteriorLesaintRaviartNumericalFlux", 1, 11, 11, 5); __PYX_ERR(0, 2170, __pyx_L3_error)
3167  }
3168  CYTHON_FALLTHROUGH;
3169  case 6:
3170  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_H)) != 0)) kw_args--;
3171  else {
3172  __Pyx_RaiseArgtupleInvalid("calculateInteriorLesaintRaviartNumericalFlux", 1, 11, 11, 6); __PYX_ERR(0, 2170, __pyx_L3_error)
3173  }
3174  CYTHON_FALLTHROUGH;
3175  case 7:
3176  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dH)) != 0)) kw_args--;
3177  else {
3178  __Pyx_RaiseArgtupleInvalid("calculateInteriorLesaintRaviartNumericalFlux", 1, 11, 11, 7); __PYX_ERR(0, 2170, __pyx_L3_error)
3179  }
3180  CYTHON_FALLTHROUGH;
3181  case 8:
3182  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
3183  else {
3184  __Pyx_RaiseArgtupleInvalid("calculateInteriorLesaintRaviartNumericalFlux", 1, 11, 11, 8); __PYX_ERR(0, 2170, __pyx_L3_error)
3185  }
3186  CYTHON_FALLTHROUGH;
3187  case 9:
3188  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
3189  else {
3190  __Pyx_RaiseArgtupleInvalid("calculateInteriorLesaintRaviartNumericalFlux", 1, 11, 11, 9); __PYX_ERR(0, 2170, __pyx_L3_error)
3191  }
3192  CYTHON_FALLTHROUGH;
3193  case 10:
3194  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_right)) != 0)) kw_args--;
3195  else {
3196  __Pyx_RaiseArgtupleInvalid("calculateInteriorLesaintRaviartNumericalFlux", 1, 11, 11, 10); __PYX_ERR(0, 2170, __pyx_L3_error)
3197  }
3198  }
3199  if (unlikely(kw_args > 0)) {
3200  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateInteriorLesaintRaviartNumericalFlux") < 0)) __PYX_ERR(0, 2170, __pyx_L3_error)
3201  }
3202  } else if (PyTuple_GET_SIZE(__pyx_args) != 11) {
3203  goto __pyx_L5_argtuple_error;
3204  } else {
3205  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3206  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3207  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3208  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3209  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3210  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3211  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3212  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3213  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
3214  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
3215  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
3216  }
3217  __pyx_v_speedEvalFlag = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_speedEvalFlag == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2170, __pyx_L3_error)
3218  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[1]);
3219  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
3220  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
3221  __pyx_v_n = ((PyArrayObject *)values[4]);
3222  __pyx_v_u = ((PyArrayObject *)values[5]);
3223  __pyx_v_H = ((PyArrayObject *)values[6]);
3224  __pyx_v_dH = ((PyArrayObject *)values[7]);
3225  __pyx_v_flux = ((PyArrayObject *)values[8]);
3226  __pyx_v_dflux_left = ((PyArrayObject *)values[9]);
3227  __pyx_v_dflux_right = ((PyArrayObject *)values[10]);
3228  }
3229  goto __pyx_L4_argument_unpacking_done;
3230  __pyx_L5_argtuple_error:;
3231  __Pyx_RaiseArgtupleInvalid("calculateInteriorLesaintRaviartNumericalFlux", 1, 11, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2170, __pyx_L3_error)
3232  __pyx_L3_error:;
3233  __Pyx_AddTraceback("cnumericalFlux.calculateInteriorLesaintRaviartNumericalFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
3234  __Pyx_RefNannyFinishContext();
3235  return NULL;
3236  __pyx_L4_argument_unpacking_done:;
3237  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2171, __pyx_L1_error)
3238  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2172, __pyx_L1_error)
3239  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2173, __pyx_L1_error)
3240  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2174, __pyx_L1_error)
3241  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 2175, __pyx_L1_error)
3242  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_H), __pyx_ptype_5numpy_ndarray, 1, "H", 0))) __PYX_ERR(0, 2176, __pyx_L1_error)
3243  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dH), __pyx_ptype_5numpy_ndarray, 1, "dH", 0))) __PYX_ERR(0, 2177, __pyx_L1_error)
3244  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 2178, __pyx_L1_error)
3245  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 2179, __pyx_L1_error)
3246  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_right), __pyx_ptype_5numpy_ndarray, 1, "dflux_right", 0))) __PYX_ERR(0, 2180, __pyx_L1_error)
3247  __pyx_r = __pyx_pf_14cnumericalFlux_2calculateInteriorLesaintRaviartNumericalFlux(__pyx_self, __pyx_v_speedEvalFlag, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_u, __pyx_v_H, __pyx_v_dH, __pyx_v_flux, __pyx_v_dflux_left, __pyx_v_dflux_right);
3248 
3249  /* function exit code */
3250  goto __pyx_L0;
3251  __pyx_L1_error:;
3252  __pyx_r = NULL;
3253  __pyx_L0:;
3254  __Pyx_RefNannyFinishContext();
3255  return __pyx_r;
3256 }
3257 
3258 static PyObject *__pyx_pf_14cnumericalFlux_2calculateInteriorLesaintRaviartNumericalFlux(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_speedEvalFlag, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_H, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_dflux_right) {
3259  PyObject *__pyx_r = NULL;
3260  __Pyx_RefNannyDeclarations
3261  __Pyx_RefNannySetupContext("calculateInteriorLesaintRaviartNumericalFlux", 0);
3262 
3263  /* "cnumericalFlux.pyx":2181
3264  * np.ndarray dflux_left,
3265  * np.ndarray dflux_right):
3266  * ccalculateInteriorLesaintRaviartNumericalFlux(interiorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
3267  * dH.shape[1],
3268  * dH.shape[2],
3269  */
3270  calculateInteriorLesaintRaviartNumericalFlux((__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_dH->dimensions[1]), (__pyx_v_dH->dimensions[2]), (__pyx_v_dH->dimensions[3]), __pyx_v_speedEvalFlag, ((int *)__pyx_v_interiorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_H->data), ((double *)__pyx_v_dH->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_dflux_left->data), ((double *)__pyx_v_dflux_right->data));
3271 
3272  /* "cnumericalFlux.pyx":2170
3273  * <double*> lambda_bar_element.data,
3274  * <double*> flux.data)
3275  * def calculateInteriorLesaintRaviartNumericalFlux(int speedEvalFlag, # <<<<<<<<<<<<<<
3276  * np.ndarray interiorElementBoundaries,
3277  * np.ndarray elementBoundaryElements,
3278  */
3279 
3280  /* function exit code */
3281  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3282  __Pyx_XGIVEREF(__pyx_r);
3283  __Pyx_RefNannyFinishContext();
3284  return __pyx_r;
3285 }
3286 
3287 /* "cnumericalFlux.pyx":2196
3288  * <double*> dflux_left.data,
3289  * <double*> dflux_right.data)
3290  * def calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint(double sonicPoint, # <<<<<<<<<<<<<<
3291  * double sonicFlux,
3292  * np.ndarray interiorElementBoundaries,
3293  */
3294 
3295 /* Python wrapper */
3296 static PyObject *__pyx_pw_14cnumericalFlux_5calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3297 static PyMethodDef __pyx_mdef_14cnumericalFlux_5calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint = {"calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_5calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint, METH_VARARGS|METH_KEYWORDS, 0};
3298 static PyObject *__pyx_pw_14cnumericalFlux_5calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3299  double __pyx_v_sonicPoint;
3300  double __pyx_v_sonicFlux;
3301  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
3302  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
3303  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
3304  PyArrayObject *__pyx_v_n = 0;
3305  PyArrayObject *__pyx_v_u = 0;
3306  PyArrayObject *__pyx_v_f = 0;
3307  PyArrayObject *__pyx_v_df = 0;
3308  PyArrayObject *__pyx_v_flux = 0;
3309  PyArrayObject *__pyx_v_dflux_left = 0;
3310  PyArrayObject *__pyx_v_dflux_right = 0;
3311  int __pyx_lineno = 0;
3312  const char *__pyx_filename = NULL;
3313  int __pyx_clineno = 0;
3314  PyObject *__pyx_r = 0;
3315  __Pyx_RefNannyDeclarations
3316  __Pyx_RefNannySetupContext("calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint (wrapper)", 0);
3317  {
3318  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sonicPoint,&__pyx_n_s_sonicFlux,&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_u,&__pyx_n_s_f,&__pyx_n_s_df,&__pyx_n_s_flux,&__pyx_n_s_dflux_left,&__pyx_n_s_dflux_right,0};
3319  PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
3320  if (unlikely(__pyx_kwds)) {
3321  Py_ssize_t kw_args;
3322  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3323  switch (pos_args) {
3324  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
3325  CYTHON_FALLTHROUGH;
3326  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
3327  CYTHON_FALLTHROUGH;
3328  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
3329  CYTHON_FALLTHROUGH;
3330  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
3331  CYTHON_FALLTHROUGH;
3332  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3333  CYTHON_FALLTHROUGH;
3334  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3335  CYTHON_FALLTHROUGH;
3336  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3337  CYTHON_FALLTHROUGH;
3338  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3339  CYTHON_FALLTHROUGH;
3340  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3341  CYTHON_FALLTHROUGH;
3342  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3343  CYTHON_FALLTHROUGH;
3344  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3345  CYTHON_FALLTHROUGH;
3346  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3347  CYTHON_FALLTHROUGH;
3348  case 0: break;
3349  default: goto __pyx_L5_argtuple_error;
3350  }
3351  kw_args = PyDict_Size(__pyx_kwds);
3352  switch (pos_args) {
3353  case 0:
3354  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sonicPoint)) != 0)) kw_args--;
3355  else goto __pyx_L5_argtuple_error;
3356  CYTHON_FALLTHROUGH;
3357  case 1:
3358  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sonicFlux)) != 0)) kw_args--;
3359  else {
3360  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", 1, 12, 12, 1); __PYX_ERR(0, 2196, __pyx_L3_error)
3361  }
3362  CYTHON_FALLTHROUGH;
3363  case 2:
3364  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
3365  else {
3366  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", 1, 12, 12, 2); __PYX_ERR(0, 2196, __pyx_L3_error)
3367  }
3368  CYTHON_FALLTHROUGH;
3369  case 3:
3370  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
3371  else {
3372  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", 1, 12, 12, 3); __PYX_ERR(0, 2196, __pyx_L3_error)
3373  }
3374  CYTHON_FALLTHROUGH;
3375  case 4:
3376  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
3377  else {
3378  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", 1, 12, 12, 4); __PYX_ERR(0, 2196, __pyx_L3_error)
3379  }
3380  CYTHON_FALLTHROUGH;
3381  case 5:
3382  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
3383  else {
3384  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", 1, 12, 12, 5); __PYX_ERR(0, 2196, __pyx_L3_error)
3385  }
3386  CYTHON_FALLTHROUGH;
3387  case 6:
3388  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
3389  else {
3390  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", 1, 12, 12, 6); __PYX_ERR(0, 2196, __pyx_L3_error)
3391  }
3392  CYTHON_FALLTHROUGH;
3393  case 7:
3394  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
3395  else {
3396  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", 1, 12, 12, 7); __PYX_ERR(0, 2196, __pyx_L3_error)
3397  }
3398  CYTHON_FALLTHROUGH;
3399  case 8:
3400  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
3401  else {
3402  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", 1, 12, 12, 8); __PYX_ERR(0, 2196, __pyx_L3_error)
3403  }
3404  CYTHON_FALLTHROUGH;
3405  case 9:
3406  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
3407  else {
3408  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", 1, 12, 12, 9); __PYX_ERR(0, 2196, __pyx_L3_error)
3409  }
3410  CYTHON_FALLTHROUGH;
3411  case 10:
3412  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
3413  else {
3414  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", 1, 12, 12, 10); __PYX_ERR(0, 2196, __pyx_L3_error)
3415  }
3416  CYTHON_FALLTHROUGH;
3417  case 11:
3418  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_right)) != 0)) kw_args--;
3419  else {
3420  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", 1, 12, 12, 11); __PYX_ERR(0, 2196, __pyx_L3_error)
3421  }
3422  }
3423  if (unlikely(kw_args > 0)) {
3424  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint") < 0)) __PYX_ERR(0, 2196, __pyx_L3_error)
3425  }
3426  } else if (PyTuple_GET_SIZE(__pyx_args) != 12) {
3427  goto __pyx_L5_argtuple_error;
3428  } else {
3429  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3430  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3431  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3432  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3433  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3434  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3435  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3436  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3437  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
3438  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
3439  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
3440  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
3441  }
3442  __pyx_v_sonicPoint = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_sonicPoint == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2196, __pyx_L3_error)
3443  __pyx_v_sonicFlux = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_sonicFlux == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2197, __pyx_L3_error)
3444  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[2]);
3445  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[3]);
3446  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[4]);
3447  __pyx_v_n = ((PyArrayObject *)values[5]);
3448  __pyx_v_u = ((PyArrayObject *)values[6]);
3449  __pyx_v_f = ((PyArrayObject *)values[7]);
3450  __pyx_v_df = ((PyArrayObject *)values[8]);
3451  __pyx_v_flux = ((PyArrayObject *)values[9]);
3452  __pyx_v_dflux_left = ((PyArrayObject *)values[10]);
3453  __pyx_v_dflux_right = ((PyArrayObject *)values[11]);
3454  }
3455  goto __pyx_L4_argument_unpacking_done;
3456  __pyx_L5_argtuple_error:;
3457  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", 1, 12, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2196, __pyx_L3_error)
3458  __pyx_L3_error:;
3459  __Pyx_AddTraceback("cnumericalFlux.calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", __pyx_clineno, __pyx_lineno, __pyx_filename);
3460  __Pyx_RefNannyFinishContext();
3461  return NULL;
3462  __pyx_L4_argument_unpacking_done:;
3463  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2198, __pyx_L1_error)
3464  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2199, __pyx_L1_error)
3465  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2200, __pyx_L1_error)
3466  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2201, __pyx_L1_error)
3467  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 2202, __pyx_L1_error)
3468  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 2203, __pyx_L1_error)
3469  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 2204, __pyx_L1_error)
3470  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 2205, __pyx_L1_error)
3471  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 2206, __pyx_L1_error)
3472  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_right), __pyx_ptype_5numpy_ndarray, 1, "dflux_right", 0))) __PYX_ERR(0, 2207, __pyx_L1_error)
3473  __pyx_r = __pyx_pf_14cnumericalFlux_4calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint(__pyx_self, __pyx_v_sonicPoint, __pyx_v_sonicFlux, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_u, __pyx_v_f, __pyx_v_df, __pyx_v_flux, __pyx_v_dflux_left, __pyx_v_dflux_right);
3474 
3475  /* function exit code */
3476  goto __pyx_L0;
3477  __pyx_L1_error:;
3478  __pyx_r = NULL;
3479  __pyx_L0:;
3480  __Pyx_RefNannyFinishContext();
3481  return __pyx_r;
3482 }
3483 
3484 static PyObject *__pyx_pf_14cnumericalFlux_4calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_sonicPoint, double __pyx_v_sonicFlux, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_dflux_right) {
3485  PyObject *__pyx_r = NULL;
3486  __Pyx_RefNannyDeclarations
3487  __Pyx_RefNannySetupContext("calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint", 0);
3488 
3489  /* "cnumericalFlux.pyx":2208
3490  * np.ndarray dflux_left,
3491  * np.ndarray dflux_right):
3492  * ccalculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint(sonicPoint, # <<<<<<<<<<<<<<
3493  * sonicFlux,
3494  * interiorElementBoundaries.shape[0],
3495  */
3496  calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint(__pyx_v_sonicPoint, __pyx_v_sonicFlux, (__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_f->dimensions[1]), (__pyx_v_f->dimensions[2]), (__pyx_v_f->dimensions[3]), ((int *)__pyx_v_interiorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_df->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_dflux_left->data), ((double *)__pyx_v_dflux_right->data));
3497 
3498  /* "cnumericalFlux.pyx":2196
3499  * <double*> dflux_left.data,
3500  * <double*> dflux_right.data)
3501  * def calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint(double sonicPoint, # <<<<<<<<<<<<<<
3502  * double sonicFlux,
3503  * np.ndarray interiorElementBoundaries,
3504  */
3505 
3506  /* function exit code */
3507  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3508  __Pyx_XGIVEREF(__pyx_r);
3509  __Pyx_RefNannyFinishContext();
3510  return __pyx_r;
3511 }
3512 
3513 /* "cnumericalFlux.pyx":2224
3514  * <double*> dflux_left.data,
3515  * <double*> dflux_right.data)
3516  * def calculateInteriorNumericalAdvectiveFluxRusanov(double safetyFactor, # <<<<<<<<<<<<<<
3517  * np.ndarray interiorElementBoundaries,
3518  * np.ndarray elementBoundaryElements,
3519  */
3520 
3521 /* Python wrapper */
3522 static PyObject *__pyx_pw_14cnumericalFlux_7calculateInteriorNumericalAdvectiveFluxRusanov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3523 static PyMethodDef __pyx_mdef_14cnumericalFlux_7calculateInteriorNumericalAdvectiveFluxRusanov = {"calculateInteriorNumericalAdvectiveFluxRusanov", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_7calculateInteriorNumericalAdvectiveFluxRusanov, METH_VARARGS|METH_KEYWORDS, 0};
3524 static PyObject *__pyx_pw_14cnumericalFlux_7calculateInteriorNumericalAdvectiveFluxRusanov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3525  double __pyx_v_safetyFactor;
3526  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
3527  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
3528  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
3529  PyArrayObject *__pyx_v_n = 0;
3530  PyArrayObject *__pyx_v_u = 0;
3531  PyArrayObject *__pyx_v_f = 0;
3532  PyArrayObject *__pyx_v_df = 0;
3533  PyArrayObject *__pyx_v_df_element = 0;
3534  PyArrayObject *__pyx_v_flux = 0;
3535  PyArrayObject *__pyx_v_dflux_left = 0;
3536  PyArrayObject *__pyx_v_dflux_right = 0;
3537  int __pyx_lineno = 0;
3538  const char *__pyx_filename = NULL;
3539  int __pyx_clineno = 0;
3540  PyObject *__pyx_r = 0;
3541  __Pyx_RefNannyDeclarations
3542  __Pyx_RefNannySetupContext("calculateInteriorNumericalAdvectiveFluxRusanov (wrapper)", 0);
3543  {
3544  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_safetyFactor,&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_u,&__pyx_n_s_f,&__pyx_n_s_df,&__pyx_n_s_df_element,&__pyx_n_s_flux,&__pyx_n_s_dflux_left,&__pyx_n_s_dflux_right,0};
3545  PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
3546  if (unlikely(__pyx_kwds)) {
3547  Py_ssize_t kw_args;
3548  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3549  switch (pos_args) {
3550  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
3551  CYTHON_FALLTHROUGH;
3552  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
3553  CYTHON_FALLTHROUGH;
3554  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
3555  CYTHON_FALLTHROUGH;
3556  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
3557  CYTHON_FALLTHROUGH;
3558  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3559  CYTHON_FALLTHROUGH;
3560  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3561  CYTHON_FALLTHROUGH;
3562  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3563  CYTHON_FALLTHROUGH;
3564  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3565  CYTHON_FALLTHROUGH;
3566  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3567  CYTHON_FALLTHROUGH;
3568  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3569  CYTHON_FALLTHROUGH;
3570  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3571  CYTHON_FALLTHROUGH;
3572  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3573  CYTHON_FALLTHROUGH;
3574  case 0: break;
3575  default: goto __pyx_L5_argtuple_error;
3576  }
3577  kw_args = PyDict_Size(__pyx_kwds);
3578  switch (pos_args) {
3579  case 0:
3580  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_safetyFactor)) != 0)) kw_args--;
3581  else goto __pyx_L5_argtuple_error;
3582  CYTHON_FALLTHROUGH;
3583  case 1:
3584  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
3585  else {
3586  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanov", 1, 12, 12, 1); __PYX_ERR(0, 2224, __pyx_L3_error)
3587  }
3588  CYTHON_FALLTHROUGH;
3589  case 2:
3590  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
3591  else {
3592  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanov", 1, 12, 12, 2); __PYX_ERR(0, 2224, __pyx_L3_error)
3593  }
3594  CYTHON_FALLTHROUGH;
3595  case 3:
3596  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
3597  else {
3598  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanov", 1, 12, 12, 3); __PYX_ERR(0, 2224, __pyx_L3_error)
3599  }
3600  CYTHON_FALLTHROUGH;
3601  case 4:
3602  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
3603  else {
3604  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanov", 1, 12, 12, 4); __PYX_ERR(0, 2224, __pyx_L3_error)
3605  }
3606  CYTHON_FALLTHROUGH;
3607  case 5:
3608  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
3609  else {
3610  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanov", 1, 12, 12, 5); __PYX_ERR(0, 2224, __pyx_L3_error)
3611  }
3612  CYTHON_FALLTHROUGH;
3613  case 6:
3614  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
3615  else {
3616  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanov", 1, 12, 12, 6); __PYX_ERR(0, 2224, __pyx_L3_error)
3617  }
3618  CYTHON_FALLTHROUGH;
3619  case 7:
3620  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
3621  else {
3622  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanov", 1, 12, 12, 7); __PYX_ERR(0, 2224, __pyx_L3_error)
3623  }
3624  CYTHON_FALLTHROUGH;
3625  case 8:
3626  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_element)) != 0)) kw_args--;
3627  else {
3628  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanov", 1, 12, 12, 8); __PYX_ERR(0, 2224, __pyx_L3_error)
3629  }
3630  CYTHON_FALLTHROUGH;
3631  case 9:
3632  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
3633  else {
3634  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanov", 1, 12, 12, 9); __PYX_ERR(0, 2224, __pyx_L3_error)
3635  }
3636  CYTHON_FALLTHROUGH;
3637  case 10:
3638  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
3639  else {
3640  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanov", 1, 12, 12, 10); __PYX_ERR(0, 2224, __pyx_L3_error)
3641  }
3642  CYTHON_FALLTHROUGH;
3643  case 11:
3644  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_right)) != 0)) kw_args--;
3645  else {
3646  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanov", 1, 12, 12, 11); __PYX_ERR(0, 2224, __pyx_L3_error)
3647  }
3648  }
3649  if (unlikely(kw_args > 0)) {
3650  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateInteriorNumericalAdvectiveFluxRusanov") < 0)) __PYX_ERR(0, 2224, __pyx_L3_error)
3651  }
3652  } else if (PyTuple_GET_SIZE(__pyx_args) != 12) {
3653  goto __pyx_L5_argtuple_error;
3654  } else {
3655  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3656  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3657  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3658  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3659  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3660  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3661  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3662  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3663  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
3664  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
3665  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
3666  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
3667  }
3668  __pyx_v_safetyFactor = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_safetyFactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2224, __pyx_L3_error)
3669  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[1]);
3670  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
3671  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
3672  __pyx_v_n = ((PyArrayObject *)values[4]);
3673  __pyx_v_u = ((PyArrayObject *)values[5]);
3674  __pyx_v_f = ((PyArrayObject *)values[6]);
3675  __pyx_v_df = ((PyArrayObject *)values[7]);
3676  __pyx_v_df_element = ((PyArrayObject *)values[8]);
3677  __pyx_v_flux = ((PyArrayObject *)values[9]);
3678  __pyx_v_dflux_left = ((PyArrayObject *)values[10]);
3679  __pyx_v_dflux_right = ((PyArrayObject *)values[11]);
3680  }
3681  goto __pyx_L4_argument_unpacking_done;
3682  __pyx_L5_argtuple_error:;
3683  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFluxRusanov", 1, 12, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2224, __pyx_L3_error)
3684  __pyx_L3_error:;
3685  __Pyx_AddTraceback("cnumericalFlux.calculateInteriorNumericalAdvectiveFluxRusanov", __pyx_clineno, __pyx_lineno, __pyx_filename);
3686  __Pyx_RefNannyFinishContext();
3687  return NULL;
3688  __pyx_L4_argument_unpacking_done:;
3689  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2225, __pyx_L1_error)
3690  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2226, __pyx_L1_error)
3691  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2227, __pyx_L1_error)
3692  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2228, __pyx_L1_error)
3693  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 2229, __pyx_L1_error)
3694  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 2230, __pyx_L1_error)
3695  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 2231, __pyx_L1_error)
3696  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_element), __pyx_ptype_5numpy_ndarray, 1, "df_element", 0))) __PYX_ERR(0, 2232, __pyx_L1_error)
3697  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 2233, __pyx_L1_error)
3698  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 2234, __pyx_L1_error)
3699  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_right), __pyx_ptype_5numpy_ndarray, 1, "dflux_right", 0))) __PYX_ERR(0, 2235, __pyx_L1_error)
3700  __pyx_r = __pyx_pf_14cnumericalFlux_6calculateInteriorNumericalAdvectiveFluxRusanov(__pyx_self, __pyx_v_safetyFactor, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_u, __pyx_v_f, __pyx_v_df, __pyx_v_df_element, __pyx_v_flux, __pyx_v_dflux_left, __pyx_v_dflux_right);
3701 
3702  /* function exit code */
3703  goto __pyx_L0;
3704  __pyx_L1_error:;
3705  __pyx_r = NULL;
3706  __pyx_L0:;
3707  __Pyx_RefNannyFinishContext();
3708  return __pyx_r;
3709 }
3710 
3711 static PyObject *__pyx_pf_14cnumericalFlux_6calculateInteriorNumericalAdvectiveFluxRusanov(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_safetyFactor, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_df_element, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_dflux_right) {
3712  PyObject *__pyx_r = NULL;
3713  __Pyx_RefNannyDeclarations
3714  __Pyx_RefNannySetupContext("calculateInteriorNumericalAdvectiveFluxRusanov", 0);
3715 
3716  /* "cnumericalFlux.pyx":2236
3717  * np.ndarray dflux_left,
3718  * np.ndarray dflux_right):
3719  * ccalculateInteriorNumericalAdvectiveFluxRusanov( safetyFactor, # <<<<<<<<<<<<<<
3720  * interiorElementBoundaries.shape[0],
3721  * f.shape[1],
3722  */
3723  calculateInteriorNumericalAdvectiveFluxRusanov(__pyx_v_safetyFactor, (__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_f->dimensions[1]), (__pyx_v_f->dimensions[2]), (__pyx_v_df_element->dimensions[1]), (__pyx_v_f->dimensions[3]), ((int *)__pyx_v_interiorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_df->data), ((double *)__pyx_v_df_element->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_dflux_left->data), ((double *)__pyx_v_dflux_right->data));
3724 
3725  /* "cnumericalFlux.pyx":2224
3726  * <double*> dflux_left.data,
3727  * <double*> dflux_right.data)
3728  * def calculateInteriorNumericalAdvectiveFluxRusanov(double safetyFactor, # <<<<<<<<<<<<<<
3729  * np.ndarray interiorElementBoundaries,
3730  * np.ndarray elementBoundaryElements,
3731  */
3732 
3733  /* function exit code */
3734  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3735  __Pyx_XGIVEREF(__pyx_r);
3736  __Pyx_RefNannyFinishContext();
3737  return __pyx_r;
3738 }
3739 
3740 /* "cnumericalFlux.pyx":2254
3741  * <double*> dflux_right.data)
3742  *
3743  * def calculateInteriorNumericalDiffusiveFlux(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
3744  * np.ndarray elementBoundaryElements,
3745  * np.ndarray elementBoundaryLocalElementBoundaries,
3746  */
3747 
3748 /* Python wrapper */
3749 static PyObject *__pyx_pw_14cnumericalFlux_9calculateInteriorNumericalDiffusiveFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3750 static PyMethodDef __pyx_mdef_14cnumericalFlux_9calculateInteriorNumericalDiffusiveFlux = {"calculateInteriorNumericalDiffusiveFlux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_9calculateInteriorNumericalDiffusiveFlux, METH_VARARGS|METH_KEYWORDS, 0};
3751 static PyObject *__pyx_pw_14cnumericalFlux_9calculateInteriorNumericalDiffusiveFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3752  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
3753  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
3754  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
3755  PyArrayObject *__pyx_v_n = 0;
3756  PyArrayObject *__pyx_v_a = 0;
3757  PyArrayObject *__pyx_v_grad_phi = 0;
3758  PyArrayObject *__pyx_v_u = 0;
3759  PyArrayObject *__pyx_v_penalty = 0;
3760  PyArrayObject *__pyx_v_flux = 0;
3761  int __pyx_v_scale_penalty;
3762  double __pyx_v_penalty_floor;
3763  int __pyx_lineno = 0;
3764  const char *__pyx_filename = NULL;
3765  int __pyx_clineno = 0;
3766  PyObject *__pyx_r = 0;
3767  __Pyx_RefNannyDeclarations
3768  __Pyx_RefNannySetupContext("calculateInteriorNumericalDiffusiveFlux (wrapper)", 0);
3769  {
3770  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_a,&__pyx_n_s_grad_phi,&__pyx_n_s_u,&__pyx_n_s_penalty,&__pyx_n_s_flux,&__pyx_n_s_scale_penalty,&__pyx_n_s_penalty_floor,0};
3771  PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
3772  if (unlikely(__pyx_kwds)) {
3773  Py_ssize_t kw_args;
3774  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3775  switch (pos_args) {
3776  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
3777  CYTHON_FALLTHROUGH;
3778  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
3779  CYTHON_FALLTHROUGH;
3780  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
3781  CYTHON_FALLTHROUGH;
3782  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3783  CYTHON_FALLTHROUGH;
3784  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3785  CYTHON_FALLTHROUGH;
3786  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3787  CYTHON_FALLTHROUGH;
3788  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3789  CYTHON_FALLTHROUGH;
3790  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3791  CYTHON_FALLTHROUGH;
3792  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3793  CYTHON_FALLTHROUGH;
3794  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3795  CYTHON_FALLTHROUGH;
3796  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3797  CYTHON_FALLTHROUGH;
3798  case 0: break;
3799  default: goto __pyx_L5_argtuple_error;
3800  }
3801  kw_args = PyDict_Size(__pyx_kwds);
3802  switch (pos_args) {
3803  case 0:
3804  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
3805  else goto __pyx_L5_argtuple_error;
3806  CYTHON_FALLTHROUGH;
3807  case 1:
3808  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
3809  else {
3810  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux", 1, 11, 11, 1); __PYX_ERR(0, 2254, __pyx_L3_error)
3811  }
3812  CYTHON_FALLTHROUGH;
3813  case 2:
3814  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
3815  else {
3816  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux", 1, 11, 11, 2); __PYX_ERR(0, 2254, __pyx_L3_error)
3817  }
3818  CYTHON_FALLTHROUGH;
3819  case 3:
3820  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
3821  else {
3822  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux", 1, 11, 11, 3); __PYX_ERR(0, 2254, __pyx_L3_error)
3823  }
3824  CYTHON_FALLTHROUGH;
3825  case 4:
3826  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
3827  else {
3828  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux", 1, 11, 11, 4); __PYX_ERR(0, 2254, __pyx_L3_error)
3829  }
3830  CYTHON_FALLTHROUGH;
3831  case 5:
3832  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
3833  else {
3834  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux", 1, 11, 11, 5); __PYX_ERR(0, 2254, __pyx_L3_error)
3835  }
3836  CYTHON_FALLTHROUGH;
3837  case 6:
3838  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
3839  else {
3840  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux", 1, 11, 11, 6); __PYX_ERR(0, 2254, __pyx_L3_error)
3841  }
3842  CYTHON_FALLTHROUGH;
3843  case 7:
3844  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
3845  else {
3846  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux", 1, 11, 11, 7); __PYX_ERR(0, 2254, __pyx_L3_error)
3847  }
3848  CYTHON_FALLTHROUGH;
3849  case 8:
3850  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
3851  else {
3852  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux", 1, 11, 11, 8); __PYX_ERR(0, 2254, __pyx_L3_error)
3853  }
3854  CYTHON_FALLTHROUGH;
3855  case 9:
3856  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty)) != 0)) kw_args--;
3857  else {
3858  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux", 1, 11, 11, 9); __PYX_ERR(0, 2254, __pyx_L3_error)
3859  }
3860  CYTHON_FALLTHROUGH;
3861  case 10:
3862  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor)) != 0)) kw_args--;
3863  else {
3864  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux", 1, 11, 11, 10); __PYX_ERR(0, 2254, __pyx_L3_error)
3865  }
3866  }
3867  if (unlikely(kw_args > 0)) {
3868  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateInteriorNumericalDiffusiveFlux") < 0)) __PYX_ERR(0, 2254, __pyx_L3_error)
3869  }
3870  } else if (PyTuple_GET_SIZE(__pyx_args) != 11) {
3871  goto __pyx_L5_argtuple_error;
3872  } else {
3873  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3874  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3875  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3876  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3877  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3878  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3879  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3880  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3881  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
3882  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
3883  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
3884  }
3885  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
3886  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
3887  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
3888  __pyx_v_n = ((PyArrayObject *)values[3]);
3889  __pyx_v_a = ((PyArrayObject *)values[4]);
3890  __pyx_v_grad_phi = ((PyArrayObject *)values[5]);
3891  __pyx_v_u = ((PyArrayObject *)values[6]);
3892  __pyx_v_penalty = ((PyArrayObject *)values[7]);
3893  __pyx_v_flux = ((PyArrayObject *)values[8]);
3894  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[9]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2263, __pyx_L3_error)
3895  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2264, __pyx_L3_error)
3896  }
3897  goto __pyx_L4_argument_unpacking_done;
3898  __pyx_L5_argtuple_error:;
3899  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux", 1, 11, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2254, __pyx_L3_error)
3900  __pyx_L3_error:;
3901  __Pyx_AddTraceback("cnumericalFlux.calculateInteriorNumericalDiffusiveFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
3902  __Pyx_RefNannyFinishContext();
3903  return NULL;
3904  __pyx_L4_argument_unpacking_done:;
3905  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2254, __pyx_L1_error)
3906  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2255, __pyx_L1_error)
3907  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2256, __pyx_L1_error)
3908  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2257, __pyx_L1_error)
3909  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 2258, __pyx_L1_error)
3910  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 2259, __pyx_L1_error)
3911  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 2260, __pyx_L1_error)
3912  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 2261, __pyx_L1_error)
3913  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 2262, __pyx_L1_error)
3914  __pyx_r = __pyx_pf_14cnumericalFlux_8calculateInteriorNumericalDiffusiveFlux(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_a, __pyx_v_grad_phi, __pyx_v_u, __pyx_v_penalty, __pyx_v_flux, __pyx_v_scale_penalty, __pyx_v_penalty_floor);
3915 
3916  /* function exit code */
3917  goto __pyx_L0;
3918  __pyx_L1_error:;
3919  __pyx_r = NULL;
3920  __pyx_L0:;
3921  __Pyx_RefNannyFinishContext();
3922  return __pyx_r;
3923 }
3924 
3925 static PyObject *__pyx_pf_14cnumericalFlux_8calculateInteriorNumericalDiffusiveFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_flux, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor) {
3926  PyObject *__pyx_r = NULL;
3927  __Pyx_RefNannyDeclarations
3928  __Pyx_RefNannySetupContext("calculateInteriorNumericalDiffusiveFlux", 0);
3929 
3930  /* "cnumericalFlux.pyx":2265
3931  * int scale_penalty,
3932  * double penalty_floor):
3933  * ccalculateInteriorNumericalDiffusiveFlux( scale_penalty, # <<<<<<<<<<<<<<
3934  * penalty_floor,
3935  * interiorElementBoundaries.shape[0],
3936  */
3937  calculateInteriorNumericalDiffusiveFlux(__pyx_v_scale_penalty, __pyx_v_penalty_floor, (__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_grad_phi->dimensions[1]), (__pyx_v_grad_phi->dimensions[2]), (__pyx_v_grad_phi->dimensions[3]), ((int *)__pyx_v_interiorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_grad_phi->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_flux->data));
3938 
3939  /* "cnumericalFlux.pyx":2254
3940  * <double*> dflux_right.data)
3941  *
3942  * def calculateInteriorNumericalDiffusiveFlux(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
3943  * np.ndarray elementBoundaryElements,
3944  * np.ndarray elementBoundaryLocalElementBoundaries,
3945  */
3946 
3947  /* function exit code */
3948  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3949  __Pyx_XGIVEREF(__pyx_r);
3950  __Pyx_RefNannyFinishContext();
3951  return __pyx_r;
3952 }
3953 
3954 /* "cnumericalFlux.pyx":2280
3955  * <double*> penalty.data,
3956  * <double*> flux.data)
3957  * def updateInteriorNumericalDiffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
3958  * np.ndarray interiorElementBoundaries,
3959  * np.ndarray elementBoundaryElements,
3960  */
3961 
3962 /* Python wrapper */
3963 static PyObject *__pyx_pw_14cnumericalFlux_11updateInteriorNumericalDiffusiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3964 static PyMethodDef __pyx_mdef_14cnumericalFlux_11updateInteriorNumericalDiffusiveFluxJacobian = {"updateInteriorNumericalDiffusiveFluxJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_11updateInteriorNumericalDiffusiveFluxJacobian, METH_VARARGS|METH_KEYWORDS, 0};
3965 static PyObject *__pyx_pw_14cnumericalFlux_11updateInteriorNumericalDiffusiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3966  PyArrayObject *__pyx_v_l2g = 0;
3967  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
3968  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
3969  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
3970  PyArrayObject *__pyx_v_n = 0;
3971  PyArrayObject *__pyx_v_a = 0;
3972  PyArrayObject *__pyx_v_da = 0;
3973  PyArrayObject *__pyx_v_grad_phi = 0;
3974  PyArrayObject *__pyx_v_dphi = 0;
3975  PyArrayObject *__pyx_v_v = 0;
3976  PyArrayObject *__pyx_v_grad_v = 0;
3977  PyArrayObject *__pyx_v_penalty = 0;
3978  PyArrayObject *__pyx_v_fluxJacobian = 0;
3979  int __pyx_v_scale_penalty;
3980  double __pyx_v_penalty_floor;
3981  int __pyx_lineno = 0;
3982  const char *__pyx_filename = NULL;
3983  int __pyx_clineno = 0;
3984  PyObject *__pyx_r = 0;
3985  __Pyx_RefNannyDeclarations
3986  __Pyx_RefNannySetupContext("updateInteriorNumericalDiffusiveFluxJacobian (wrapper)", 0);
3987  {
3988  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_l2g,&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_a,&__pyx_n_s_da,&__pyx_n_s_grad_phi,&__pyx_n_s_dphi,&__pyx_n_s_v,&__pyx_n_s_grad_v,&__pyx_n_s_penalty,&__pyx_n_s_fluxJacobian,&__pyx_n_s_scale_penalty,&__pyx_n_s_penalty_floor,0};
3989  PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
3990  if (unlikely(__pyx_kwds)) {
3991  Py_ssize_t kw_args;
3992  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3993  switch (pos_args) {
3994  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
3995  CYTHON_FALLTHROUGH;
3996  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
3997  CYTHON_FALLTHROUGH;
3998  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
3999  CYTHON_FALLTHROUGH;
4000  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
4001  CYTHON_FALLTHROUGH;
4002  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
4003  CYTHON_FALLTHROUGH;
4004  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
4005  CYTHON_FALLTHROUGH;
4006  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4007  CYTHON_FALLTHROUGH;
4008  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4009  CYTHON_FALLTHROUGH;
4010  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4011  CYTHON_FALLTHROUGH;
4012  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4013  CYTHON_FALLTHROUGH;
4014  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4015  CYTHON_FALLTHROUGH;
4016  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4017  CYTHON_FALLTHROUGH;
4018  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4019  CYTHON_FALLTHROUGH;
4020  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4021  CYTHON_FALLTHROUGH;
4022  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4023  CYTHON_FALLTHROUGH;
4024  case 0: break;
4025  default: goto __pyx_L5_argtuple_error;
4026  }
4027  kw_args = PyDict_Size(__pyx_kwds);
4028  switch (pos_args) {
4029  case 0:
4030  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
4031  else goto __pyx_L5_argtuple_error;
4032  CYTHON_FALLTHROUGH;
4033  case 1:
4034  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
4035  else {
4036  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, 1); __PYX_ERR(0, 2280, __pyx_L3_error)
4037  }
4038  CYTHON_FALLTHROUGH;
4039  case 2:
4040  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
4041  else {
4042  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, 2); __PYX_ERR(0, 2280, __pyx_L3_error)
4043  }
4044  CYTHON_FALLTHROUGH;
4045  case 3:
4046  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
4047  else {
4048  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, 3); __PYX_ERR(0, 2280, __pyx_L3_error)
4049  }
4050  CYTHON_FALLTHROUGH;
4051  case 4:
4052  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
4053  else {
4054  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, 4); __PYX_ERR(0, 2280, __pyx_L3_error)
4055  }
4056  CYTHON_FALLTHROUGH;
4057  case 5:
4058  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
4059  else {
4060  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, 5); __PYX_ERR(0, 2280, __pyx_L3_error)
4061  }
4062  CYTHON_FALLTHROUGH;
4063  case 6:
4064  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
4065  else {
4066  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, 6); __PYX_ERR(0, 2280, __pyx_L3_error)
4067  }
4068  CYTHON_FALLTHROUGH;
4069  case 7:
4070  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
4071  else {
4072  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, 7); __PYX_ERR(0, 2280, __pyx_L3_error)
4073  }
4074  CYTHON_FALLTHROUGH;
4075  case 8:
4076  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
4077  else {
4078  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, 8); __PYX_ERR(0, 2280, __pyx_L3_error)
4079  }
4080  CYTHON_FALLTHROUGH;
4081  case 9:
4082  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
4083  else {
4084  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, 9); __PYX_ERR(0, 2280, __pyx_L3_error)
4085  }
4086  CYTHON_FALLTHROUGH;
4087  case 10:
4088  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
4089  else {
4090  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, 10); __PYX_ERR(0, 2280, __pyx_L3_error)
4091  }
4092  CYTHON_FALLTHROUGH;
4093  case 11:
4094  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
4095  else {
4096  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, 11); __PYX_ERR(0, 2280, __pyx_L3_error)
4097  }
4098  CYTHON_FALLTHROUGH;
4099  case 12:
4100  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
4101  else {
4102  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, 12); __PYX_ERR(0, 2280, __pyx_L3_error)
4103  }
4104  CYTHON_FALLTHROUGH;
4105  case 13:
4106  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty)) != 0)) kw_args--;
4107  else {
4108  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, 13); __PYX_ERR(0, 2280, __pyx_L3_error)
4109  }
4110  CYTHON_FALLTHROUGH;
4111  case 14:
4112  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor)) != 0)) kw_args--;
4113  else {
4114  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, 14); __PYX_ERR(0, 2280, __pyx_L3_error)
4115  }
4116  }
4117  if (unlikely(kw_args > 0)) {
4118  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateInteriorNumericalDiffusiveFluxJacobian") < 0)) __PYX_ERR(0, 2280, __pyx_L3_error)
4119  }
4120  } else if (PyTuple_GET_SIZE(__pyx_args) != 15) {
4121  goto __pyx_L5_argtuple_error;
4122  } else {
4123  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4124  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4125  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4126  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4127  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4128  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4129  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4130  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4131  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4132  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
4133  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
4134  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
4135  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
4136  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
4137  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
4138  }
4139  __pyx_v_l2g = ((PyArrayObject *)values[0]);
4140  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[1]);
4141  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
4142  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
4143  __pyx_v_n = ((PyArrayObject *)values[4]);
4144  __pyx_v_a = ((PyArrayObject *)values[5]);
4145  __pyx_v_da = ((PyArrayObject *)values[6]);
4146  __pyx_v_grad_phi = ((PyArrayObject *)values[7]);
4147  __pyx_v_dphi = ((PyArrayObject *)values[8]);
4148  __pyx_v_v = ((PyArrayObject *)values[9]);
4149  __pyx_v_grad_v = ((PyArrayObject *)values[10]);
4150  __pyx_v_penalty = ((PyArrayObject *)values[11]);
4151  __pyx_v_fluxJacobian = ((PyArrayObject *)values[12]);
4152  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[13]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2293, __pyx_L3_error)
4153  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[14]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2294, __pyx_L3_error)
4154  }
4155  goto __pyx_L4_argument_unpacking_done;
4156  __pyx_L5_argtuple_error:;
4157  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian", 1, 15, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2280, __pyx_L3_error)
4158  __pyx_L3_error:;
4159  __Pyx_AddTraceback("cnumericalFlux.updateInteriorNumericalDiffusiveFluxJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename);
4160  __Pyx_RefNannyFinishContext();
4161  return NULL;
4162  __pyx_L4_argument_unpacking_done:;
4163  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 2280, __pyx_L1_error)
4164  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2281, __pyx_L1_error)
4165  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2282, __pyx_L1_error)
4166  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2283, __pyx_L1_error)
4167  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2284, __pyx_L1_error)
4168  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 2285, __pyx_L1_error)
4169  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 2286, __pyx_L1_error)
4170  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 2287, __pyx_L1_error)
4171  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 2288, __pyx_L1_error)
4172  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 2289, __pyx_L1_error)
4173  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 2290, __pyx_L1_error)
4174  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 2291, __pyx_L1_error)
4175  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 2292, __pyx_L1_error)
4176  __pyx_r = __pyx_pf_14cnumericalFlux_10updateInteriorNumericalDiffusiveFluxJacobian(__pyx_self, __pyx_v_l2g, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_a, __pyx_v_da, __pyx_v_grad_phi, __pyx_v_dphi, __pyx_v_v, __pyx_v_grad_v, __pyx_v_penalty, __pyx_v_fluxJacobian, __pyx_v_scale_penalty, __pyx_v_penalty_floor);
4177 
4178  /* function exit code */
4179  goto __pyx_L0;
4180  __pyx_L1_error:;
4181  __pyx_r = NULL;
4182  __pyx_L0:;
4183  __Pyx_RefNannyFinishContext();
4184  return __pyx_r;
4185 }
4186 
4187 static PyObject *__pyx_pf_14cnumericalFlux_10updateInteriorNumericalDiffusiveFluxJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_penalty, PyArrayObject *__pyx_v_fluxJacobian, int __pyx_v_scale_penalty, double __pyx_v_penalty_floor) {
4188  PyObject *__pyx_r = NULL;
4189  __Pyx_RefNannyDeclarations
4190  PyObject *__pyx_t_1 = NULL;
4191  PyObject *__pyx_t_2 = NULL;
4192  int __pyx_t_3;
4193  int __pyx_lineno = 0;
4194  const char *__pyx_filename = NULL;
4195  int __pyx_clineno = 0;
4196  __Pyx_RefNannySetupContext("updateInteriorNumericalDiffusiveFluxJacobian", 0);
4197 
4198  /* "cnumericalFlux.pyx":2299
4199  * penalty_floor,
4200  * interiorElementBoundaries.shape[0],
4201  * grad_v.sahpe[1], # <<<<<<<<<<<<<<
4202  * grad_v.shape[2],
4203  * grad_v.shape[3],
4204  */
4205  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_grad_v), __pyx_n_s_sahpe); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2299, __pyx_L1_error)
4206  __Pyx_GOTREF(__pyx_t_1);
4207  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2299, __pyx_L1_error)
4208  __Pyx_GOTREF(__pyx_t_2);
4209  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4210  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2299, __pyx_L1_error)
4211  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4212 
4213  /* "cnumericalFlux.pyx":2296
4214  * double penalty_floor
4215  * ):
4216  * cupdateInteriorNumericalDiffusiveFluxJacobian( scale_penalty, # <<<<<<<<<<<<<<
4217  * penalty_floor,
4218  * interiorElementBoundaries.shape[0],
4219  */
4220  updateInteriorNumericalDiffusiveFluxJacobian(__pyx_v_scale_penalty, __pyx_v_penalty_floor, (__pyx_v_interiorElementBoundaries->dimensions[0]), __pyx_t_3, (__pyx_v_grad_v->dimensions[2]), (__pyx_v_grad_v->dimensions[3]), (__pyx_v_grad_v->dimensions[4]), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_interiorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_da->data), ((double *)__pyx_v_grad_phi->data), ((double *)__pyx_v_dphi->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_grad_v->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_fluxJacobian->data));
4221 
4222  /* "cnumericalFlux.pyx":2280
4223  * <double*> penalty.data,
4224  * <double*> flux.data)
4225  * def updateInteriorNumericalDiffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
4226  * np.ndarray interiorElementBoundaries,
4227  * np.ndarray elementBoundaryElements,
4228  */
4229 
4230  /* function exit code */
4231  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4232  goto __pyx_L0;
4233  __pyx_L1_error:;
4234  __Pyx_XDECREF(__pyx_t_1);
4235  __Pyx_XDECREF(__pyx_t_2);
4236  __Pyx_AddTraceback("cnumericalFlux.updateInteriorNumericalDiffusiveFluxJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename);
4237  __pyx_r = NULL;
4238  __pyx_L0:;
4239  __Pyx_XGIVEREF(__pyx_r);
4240  __Pyx_RefNannyFinishContext();
4241  return __pyx_r;
4242 }
4243 
4244 /* "cnumericalFlux.pyx":2317
4245  * <double*> fluxJacobian.data)
4246  *
4247  * def calculateInteriorNumericalAdvectiveFlux( np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
4248  * np.ndarray elementBoundaryElements,
4249  * np.ndarray elementBoundaryLocalElementBoundaries,
4250  */
4251 
4252 /* Python wrapper */
4253 static PyObject *__pyx_pw_14cnumericalFlux_13calculateInteriorNumericalAdvectiveFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4254 static PyMethodDef __pyx_mdef_14cnumericalFlux_13calculateInteriorNumericalAdvectiveFlux = {"calculateInteriorNumericalAdvectiveFlux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_13calculateInteriorNumericalAdvectiveFlux, METH_VARARGS|METH_KEYWORDS, 0};
4255 static PyObject *__pyx_pw_14cnumericalFlux_13calculateInteriorNumericalAdvectiveFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4256  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
4257  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
4258  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
4259  PyArrayObject *__pyx_v_n = 0;
4260  PyArrayObject *__pyx_v_u = 0;
4261  PyArrayObject *__pyx_v_f = 0;
4262  PyArrayObject *__pyx_v_df = 0;
4263  PyArrayObject *__pyx_v_flux = 0;
4264  PyArrayObject *__pyx_v_dflux_left = 0;
4265  PyArrayObject *__pyx_v_dflux_right = 0;
4266  int __pyx_lineno = 0;
4267  const char *__pyx_filename = NULL;
4268  int __pyx_clineno = 0;
4269  PyObject *__pyx_r = 0;
4270  __Pyx_RefNannyDeclarations
4271  __Pyx_RefNannySetupContext("calculateInteriorNumericalAdvectiveFlux (wrapper)", 0);
4272  {
4273  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_u,&__pyx_n_s_f,&__pyx_n_s_df,&__pyx_n_s_flux,&__pyx_n_s_dflux_left,&__pyx_n_s_dflux_right,0};
4274  PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
4275  if (unlikely(__pyx_kwds)) {
4276  Py_ssize_t kw_args;
4277  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4278  switch (pos_args) {
4279  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
4280  CYTHON_FALLTHROUGH;
4281  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4282  CYTHON_FALLTHROUGH;
4283  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4284  CYTHON_FALLTHROUGH;
4285  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4286  CYTHON_FALLTHROUGH;
4287  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4288  CYTHON_FALLTHROUGH;
4289  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4290  CYTHON_FALLTHROUGH;
4291  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4292  CYTHON_FALLTHROUGH;
4293  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4294  CYTHON_FALLTHROUGH;
4295  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4296  CYTHON_FALLTHROUGH;
4297  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4298  CYTHON_FALLTHROUGH;
4299  case 0: break;
4300  default: goto __pyx_L5_argtuple_error;
4301  }
4302  kw_args = PyDict_Size(__pyx_kwds);
4303  switch (pos_args) {
4304  case 0:
4305  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
4306  else goto __pyx_L5_argtuple_error;
4307  CYTHON_FALLTHROUGH;
4308  case 1:
4309  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
4310  else {
4311  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux", 1, 10, 10, 1); __PYX_ERR(0, 2317, __pyx_L3_error)
4312  }
4313  CYTHON_FALLTHROUGH;
4314  case 2:
4315  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
4316  else {
4317  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux", 1, 10, 10, 2); __PYX_ERR(0, 2317, __pyx_L3_error)
4318  }
4319  CYTHON_FALLTHROUGH;
4320  case 3:
4321  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
4322  else {
4323  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux", 1, 10, 10, 3); __PYX_ERR(0, 2317, __pyx_L3_error)
4324  }
4325  CYTHON_FALLTHROUGH;
4326  case 4:
4327  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
4328  else {
4329  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux", 1, 10, 10, 4); __PYX_ERR(0, 2317, __pyx_L3_error)
4330  }
4331  CYTHON_FALLTHROUGH;
4332  case 5:
4333  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
4334  else {
4335  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux", 1, 10, 10, 5); __PYX_ERR(0, 2317, __pyx_L3_error)
4336  }
4337  CYTHON_FALLTHROUGH;
4338  case 6:
4339  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
4340  else {
4341  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux", 1, 10, 10, 6); __PYX_ERR(0, 2317, __pyx_L3_error)
4342  }
4343  CYTHON_FALLTHROUGH;
4344  case 7:
4345  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
4346  else {
4347  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux", 1, 10, 10, 7); __PYX_ERR(0, 2317, __pyx_L3_error)
4348  }
4349  CYTHON_FALLTHROUGH;
4350  case 8:
4351  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
4352  else {
4353  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux", 1, 10, 10, 8); __PYX_ERR(0, 2317, __pyx_L3_error)
4354  }
4355  CYTHON_FALLTHROUGH;
4356  case 9:
4357  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_right)) != 0)) kw_args--;
4358  else {
4359  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux", 1, 10, 10, 9); __PYX_ERR(0, 2317, __pyx_L3_error)
4360  }
4361  }
4362  if (unlikely(kw_args > 0)) {
4363  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateInteriorNumericalAdvectiveFlux") < 0)) __PYX_ERR(0, 2317, __pyx_L3_error)
4364  }
4365  } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
4366  goto __pyx_L5_argtuple_error;
4367  } else {
4368  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4369  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4370  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4371  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4372  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4373  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4374  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4375  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4376  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4377  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
4378  }
4379  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
4380  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
4381  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
4382  __pyx_v_n = ((PyArrayObject *)values[3]);
4383  __pyx_v_u = ((PyArrayObject *)values[4]);
4384  __pyx_v_f = ((PyArrayObject *)values[5]);
4385  __pyx_v_df = ((PyArrayObject *)values[6]);
4386  __pyx_v_flux = ((PyArrayObject *)values[7]);
4387  __pyx_v_dflux_left = ((PyArrayObject *)values[8]);
4388  __pyx_v_dflux_right = ((PyArrayObject *)values[9]);
4389  }
4390  goto __pyx_L4_argument_unpacking_done;
4391  __pyx_L5_argtuple_error:;
4392  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2317, __pyx_L3_error)
4393  __pyx_L3_error:;
4394  __Pyx_AddTraceback("cnumericalFlux.calculateInteriorNumericalAdvectiveFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
4395  __Pyx_RefNannyFinishContext();
4396  return NULL;
4397  __pyx_L4_argument_unpacking_done:;
4398  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2317, __pyx_L1_error)
4399  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2318, __pyx_L1_error)
4400  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2319, __pyx_L1_error)
4401  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2320, __pyx_L1_error)
4402  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 2321, __pyx_L1_error)
4403  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 2322, __pyx_L1_error)
4404  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 2323, __pyx_L1_error)
4405  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 2324, __pyx_L1_error)
4406  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 2325, __pyx_L1_error)
4407  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_right), __pyx_ptype_5numpy_ndarray, 1, "dflux_right", 0))) __PYX_ERR(0, 2326, __pyx_L1_error)
4408  __pyx_r = __pyx_pf_14cnumericalFlux_12calculateInteriorNumericalAdvectiveFlux(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_u, __pyx_v_f, __pyx_v_df, __pyx_v_flux, __pyx_v_dflux_left, __pyx_v_dflux_right);
4409 
4410  /* function exit code */
4411  goto __pyx_L0;
4412  __pyx_L1_error:;
4413  __pyx_r = NULL;
4414  __pyx_L0:;
4415  __Pyx_RefNannyFinishContext();
4416  return __pyx_r;
4417 }
4418 
4419 static PyObject *__pyx_pf_14cnumericalFlux_12calculateInteriorNumericalAdvectiveFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_dflux_right) {
4420  PyObject *__pyx_r = NULL;
4421  __Pyx_RefNannyDeclarations
4422  __Pyx_RefNannySetupContext("calculateInteriorNumericalAdvectiveFlux", 0);
4423 
4424  /* "cnumericalFlux.pyx":2328
4425  * np.ndarray dflux_right
4426  * ):
4427  * ccalculateInteriorNumericalAdvectiveFlux( interiorElementBoundaries.shape[0],# int nInteriorElementBoundaries_global, # <<<<<<<<<<<<<<
4428  * f.shape[1],#int nElementBoundaries_element,
4429  * f.shape[2],#int nQuadraturePoints_elementBoundary,
4430  */
4431  calculateInteriorNumericalAdvectiveFlux((__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_f->dimensions[1]), (__pyx_v_f->dimensions[2]), (__pyx_v_f->dimensions[3]), ((int *)__pyx_v_interiorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_df->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_dflux_left->data), ((double *)__pyx_v_dflux_right->data));
4432 
4433  /* "cnumericalFlux.pyx":2317
4434  * <double*> fluxJacobian.data)
4435  *
4436  * def calculateInteriorNumericalAdvectiveFlux( np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
4437  * np.ndarray elementBoundaryElements,
4438  * np.ndarray elementBoundaryLocalElementBoundaries,
4439  */
4440 
4441  /* function exit code */
4442  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4443  __Pyx_XGIVEREF(__pyx_r);
4444  __Pyx_RefNannyFinishContext();
4445  return __pyx_r;
4446 }
4447 
4448 /* "cnumericalFlux.pyx":2342
4449  * <double*> dflux_left.data,
4450  * <double*> dflux_right.data)
4451  * def updateInteriorNumericalAdvectiveFluxJacobian( np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
4452  * np.ndarray elementBoundaryElements,
4453  * np.ndarray elementBoundaryLocalElementBoundaries,
4454  */
4455 
4456 /* Python wrapper */
4457 static PyObject *__pyx_pw_14cnumericalFlux_15updateInteriorNumericalAdvectiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4458 static PyMethodDef __pyx_mdef_14cnumericalFlux_15updateInteriorNumericalAdvectiveFluxJacobian = {"updateInteriorNumericalAdvectiveFluxJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_15updateInteriorNumericalAdvectiveFluxJacobian, METH_VARARGS|METH_KEYWORDS, 0};
4459 static PyObject *__pyx_pw_14cnumericalFlux_15updateInteriorNumericalAdvectiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4460  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
4461  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
4462  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
4463  PyArrayObject *__pyx_v_dflux_left = 0;
4464  PyArrayObject *__pyx_v_dflux_right = 0;
4465  PyArrayObject *__pyx_v_v = 0;
4466  PyArrayObject *__pyx_v_fluxJacobian = 0;
4467  int __pyx_lineno = 0;
4468  const char *__pyx_filename = NULL;
4469  int __pyx_clineno = 0;
4470  PyObject *__pyx_r = 0;
4471  __Pyx_RefNannyDeclarations
4472  __Pyx_RefNannySetupContext("updateInteriorNumericalAdvectiveFluxJacobian (wrapper)", 0);
4473  {
4474  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_dflux_left,&__pyx_n_s_dflux_right,&__pyx_n_s_v,&__pyx_n_s_fluxJacobian,0};
4475  PyObject* values[7] = {0,0,0,0,0,0,0};
4476  if (unlikely(__pyx_kwds)) {
4477  Py_ssize_t kw_args;
4478  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4479  switch (pos_args) {
4480  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4481  CYTHON_FALLTHROUGH;
4482  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4483  CYTHON_FALLTHROUGH;
4484  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4485  CYTHON_FALLTHROUGH;
4486  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4487  CYTHON_FALLTHROUGH;
4488  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4489  CYTHON_FALLTHROUGH;
4490  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4491  CYTHON_FALLTHROUGH;
4492  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4493  CYTHON_FALLTHROUGH;
4494  case 0: break;
4495  default: goto __pyx_L5_argtuple_error;
4496  }
4497  kw_args = PyDict_Size(__pyx_kwds);
4498  switch (pos_args) {
4499  case 0:
4500  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
4501  else goto __pyx_L5_argtuple_error;
4502  CYTHON_FALLTHROUGH;
4503  case 1:
4504  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
4505  else {
4506  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalAdvectiveFluxJacobian", 1, 7, 7, 1); __PYX_ERR(0, 2342, __pyx_L3_error)
4507  }
4508  CYTHON_FALLTHROUGH;
4509  case 2:
4510  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
4511  else {
4512  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalAdvectiveFluxJacobian", 1, 7, 7, 2); __PYX_ERR(0, 2342, __pyx_L3_error)
4513  }
4514  CYTHON_FALLTHROUGH;
4515  case 3:
4516  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
4517  else {
4518  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalAdvectiveFluxJacobian", 1, 7, 7, 3); __PYX_ERR(0, 2342, __pyx_L3_error)
4519  }
4520  CYTHON_FALLTHROUGH;
4521  case 4:
4522  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_right)) != 0)) kw_args--;
4523  else {
4524  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalAdvectiveFluxJacobian", 1, 7, 7, 4); __PYX_ERR(0, 2342, __pyx_L3_error)
4525  }
4526  CYTHON_FALLTHROUGH;
4527  case 5:
4528  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
4529  else {
4530  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalAdvectiveFluxJacobian", 1, 7, 7, 5); __PYX_ERR(0, 2342, __pyx_L3_error)
4531  }
4532  CYTHON_FALLTHROUGH;
4533  case 6:
4534  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
4535  else {
4536  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalAdvectiveFluxJacobian", 1, 7, 7, 6); __PYX_ERR(0, 2342, __pyx_L3_error)
4537  }
4538  }
4539  if (unlikely(kw_args > 0)) {
4540  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateInteriorNumericalAdvectiveFluxJacobian") < 0)) __PYX_ERR(0, 2342, __pyx_L3_error)
4541  }
4542  } else if (PyTuple_GET_SIZE(__pyx_args) != 7) {
4543  goto __pyx_L5_argtuple_error;
4544  } else {
4545  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4546  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4547  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4548  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4549  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4550  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4551  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4552  }
4553  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
4554  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
4555  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
4556  __pyx_v_dflux_left = ((PyArrayObject *)values[3]);
4557  __pyx_v_dflux_right = ((PyArrayObject *)values[4]);
4558  __pyx_v_v = ((PyArrayObject *)values[5]);
4559  __pyx_v_fluxJacobian = ((PyArrayObject *)values[6]);
4560  }
4561  goto __pyx_L4_argument_unpacking_done;
4562  __pyx_L5_argtuple_error:;
4563  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalAdvectiveFluxJacobian", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2342, __pyx_L3_error)
4564  __pyx_L3_error:;
4565  __Pyx_AddTraceback("cnumericalFlux.updateInteriorNumericalAdvectiveFluxJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename);
4566  __Pyx_RefNannyFinishContext();
4567  return NULL;
4568  __pyx_L4_argument_unpacking_done:;
4569  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2342, __pyx_L1_error)
4570  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2343, __pyx_L1_error)
4571  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2344, __pyx_L1_error)
4572  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 2345, __pyx_L1_error)
4573  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_right), __pyx_ptype_5numpy_ndarray, 1, "dflux_right", 0))) __PYX_ERR(0, 2346, __pyx_L1_error)
4574  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 2347, __pyx_L1_error)
4575  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 2348, __pyx_L1_error)
4576  __pyx_r = __pyx_pf_14cnumericalFlux_14updateInteriorNumericalAdvectiveFluxJacobian(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_dflux_left, __pyx_v_dflux_right, __pyx_v_v, __pyx_v_fluxJacobian);
4577 
4578  /* function exit code */
4579  goto __pyx_L0;
4580  __pyx_L1_error:;
4581  __pyx_r = NULL;
4582  __pyx_L0:;
4583  __Pyx_RefNannyFinishContext();
4584  return __pyx_r;
4585 }
4586 
4587 static PyObject *__pyx_pf_14cnumericalFlux_14updateInteriorNumericalAdvectiveFluxJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_dflux_right, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_fluxJacobian) {
4588  PyObject *__pyx_r = NULL;
4589  __Pyx_RefNannyDeclarations
4590  __Pyx_RefNannySetupContext("updateInteriorNumericalAdvectiveFluxJacobian", 0);
4591 
4592  /* "cnumericalFlux.pyx":2350
4593  * np.ndarray fluxJacobian
4594  * ):
4595  * cupdateInteriorNumericalAdvectiveFluxJacobian( interiorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
4596  * v.shape[1],
4597  * v.shape[2],
4598  */
4599  updateInteriorNumericalAdvectiveFluxJacobian((__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_v->dimensions[1]), (__pyx_v_v->dimensions[2]), (__pyx_v_v->dimensions[3]), ((int *)__pyx_v_interiorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_dflux_left->data), ((double *)__pyx_v_dflux_right->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_fluxJacobian->data));
4600 
4601  /* "cnumericalFlux.pyx":2342
4602  * <double*> dflux_left.data,
4603  * <double*> dflux_right.data)
4604  * def updateInteriorNumericalAdvectiveFluxJacobian( np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
4605  * np.ndarray elementBoundaryElements,
4606  * np.ndarray elementBoundaryLocalElementBoundaries,
4607  */
4608 
4609  /* function exit code */
4610  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4611  __Pyx_XGIVEREF(__pyx_r);
4612  __Pyx_RefNannyFinishContext();
4613  return __pyx_r;
4614 }
4615 
4616 /* "cnumericalFlux.pyx":2361
4617  * <double*> v.data,
4618  * <double*> fluxJacobian.data)
4619  * def calculateInteriorNumericalAdvectiveFlux_average(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
4620  * np.ndarray elementBoundaryElements,
4621  * np.ndarray elementBoundaryLocalElementBoundaries,
4622  */
4623 
4624 /* Python wrapper */
4625 static PyObject *__pyx_pw_14cnumericalFlux_17calculateInteriorNumericalAdvectiveFlux_average(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4626 static PyMethodDef __pyx_mdef_14cnumericalFlux_17calculateInteriorNumericalAdvectiveFlux_average = {"calculateInteriorNumericalAdvectiveFlux_average", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_17calculateInteriorNumericalAdvectiveFlux_average, METH_VARARGS|METH_KEYWORDS, 0};
4627 static PyObject *__pyx_pw_14cnumericalFlux_17calculateInteriorNumericalAdvectiveFlux_average(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4628  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
4629  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
4630  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
4631  PyArrayObject *__pyx_v_n = 0;
4632  PyArrayObject *__pyx_v_u = 0;
4633  PyArrayObject *__pyx_v_f = 0;
4634  PyArrayObject *__pyx_v_df = 0;
4635  PyArrayObject *__pyx_v_flux = 0;
4636  PyArrayObject *__pyx_v_dflux_left = 0;
4637  PyArrayObject *__pyx_v_dflux_right = 0;
4638  int __pyx_lineno = 0;
4639  const char *__pyx_filename = NULL;
4640  int __pyx_clineno = 0;
4641  PyObject *__pyx_r = 0;
4642  __Pyx_RefNannyDeclarations
4643  __Pyx_RefNannySetupContext("calculateInteriorNumericalAdvectiveFlux_average (wrapper)", 0);
4644  {
4645  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_u,&__pyx_n_s_f,&__pyx_n_s_df,&__pyx_n_s_flux,&__pyx_n_s_dflux_left,&__pyx_n_s_dflux_right,0};
4646  PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
4647  if (unlikely(__pyx_kwds)) {
4648  Py_ssize_t kw_args;
4649  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4650  switch (pos_args) {
4651  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
4652  CYTHON_FALLTHROUGH;
4653  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4654  CYTHON_FALLTHROUGH;
4655  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4656  CYTHON_FALLTHROUGH;
4657  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4658  CYTHON_FALLTHROUGH;
4659  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4660  CYTHON_FALLTHROUGH;
4661  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4662  CYTHON_FALLTHROUGH;
4663  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4664  CYTHON_FALLTHROUGH;
4665  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4666  CYTHON_FALLTHROUGH;
4667  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4668  CYTHON_FALLTHROUGH;
4669  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4670  CYTHON_FALLTHROUGH;
4671  case 0: break;
4672  default: goto __pyx_L5_argtuple_error;
4673  }
4674  kw_args = PyDict_Size(__pyx_kwds);
4675  switch (pos_args) {
4676  case 0:
4677  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
4678  else goto __pyx_L5_argtuple_error;
4679  CYTHON_FALLTHROUGH;
4680  case 1:
4681  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
4682  else {
4683  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux_average", 1, 10, 10, 1); __PYX_ERR(0, 2361, __pyx_L3_error)
4684  }
4685  CYTHON_FALLTHROUGH;
4686  case 2:
4687  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
4688  else {
4689  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux_average", 1, 10, 10, 2); __PYX_ERR(0, 2361, __pyx_L3_error)
4690  }
4691  CYTHON_FALLTHROUGH;
4692  case 3:
4693  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
4694  else {
4695  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux_average", 1, 10, 10, 3); __PYX_ERR(0, 2361, __pyx_L3_error)
4696  }
4697  CYTHON_FALLTHROUGH;
4698  case 4:
4699  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
4700  else {
4701  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux_average", 1, 10, 10, 4); __PYX_ERR(0, 2361, __pyx_L3_error)
4702  }
4703  CYTHON_FALLTHROUGH;
4704  case 5:
4705  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
4706  else {
4707  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux_average", 1, 10, 10, 5); __PYX_ERR(0, 2361, __pyx_L3_error)
4708  }
4709  CYTHON_FALLTHROUGH;
4710  case 6:
4711  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
4712  else {
4713  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux_average", 1, 10, 10, 6); __PYX_ERR(0, 2361, __pyx_L3_error)
4714  }
4715  CYTHON_FALLTHROUGH;
4716  case 7:
4717  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
4718  else {
4719  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux_average", 1, 10, 10, 7); __PYX_ERR(0, 2361, __pyx_L3_error)
4720  }
4721  CYTHON_FALLTHROUGH;
4722  case 8:
4723  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
4724  else {
4725  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux_average", 1, 10, 10, 8); __PYX_ERR(0, 2361, __pyx_L3_error)
4726  }
4727  CYTHON_FALLTHROUGH;
4728  case 9:
4729  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_right)) != 0)) kw_args--;
4730  else {
4731  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux_average", 1, 10, 10, 9); __PYX_ERR(0, 2361, __pyx_L3_error)
4732  }
4733  }
4734  if (unlikely(kw_args > 0)) {
4735  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateInteriorNumericalAdvectiveFlux_average") < 0)) __PYX_ERR(0, 2361, __pyx_L3_error)
4736  }
4737  } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
4738  goto __pyx_L5_argtuple_error;
4739  } else {
4740  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4741  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4742  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4743  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4744  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4745  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4746  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4747  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4748  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4749  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
4750  }
4751  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
4752  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
4753  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
4754  __pyx_v_n = ((PyArrayObject *)values[3]);
4755  __pyx_v_u = ((PyArrayObject *)values[4]);
4756  __pyx_v_f = ((PyArrayObject *)values[5]);
4757  __pyx_v_df = ((PyArrayObject *)values[6]);
4758  __pyx_v_flux = ((PyArrayObject *)values[7]);
4759  __pyx_v_dflux_left = ((PyArrayObject *)values[8]);
4760  __pyx_v_dflux_right = ((PyArrayObject *)values[9]);
4761  }
4762  goto __pyx_L4_argument_unpacking_done;
4763  __pyx_L5_argtuple_error:;
4764  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalAdvectiveFlux_average", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2361, __pyx_L3_error)
4765  __pyx_L3_error:;
4766  __Pyx_AddTraceback("cnumericalFlux.calculateInteriorNumericalAdvectiveFlux_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
4767  __Pyx_RefNannyFinishContext();
4768  return NULL;
4769  __pyx_L4_argument_unpacking_done:;
4770  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2361, __pyx_L1_error)
4771  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2362, __pyx_L1_error)
4772  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2363, __pyx_L1_error)
4773  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2364, __pyx_L1_error)
4774  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 2365, __pyx_L1_error)
4775  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 2366, __pyx_L1_error)
4776  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 2367, __pyx_L1_error)
4777  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 2368, __pyx_L1_error)
4778  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 2369, __pyx_L1_error)
4779  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_right), __pyx_ptype_5numpy_ndarray, 1, "dflux_right", 0))) __PYX_ERR(0, 2370, __pyx_L1_error)
4780  __pyx_r = __pyx_pf_14cnumericalFlux_16calculateInteriorNumericalAdvectiveFlux_average(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_u, __pyx_v_f, __pyx_v_df, __pyx_v_flux, __pyx_v_dflux_left, __pyx_v_dflux_right);
4781 
4782  /* function exit code */
4783  goto __pyx_L0;
4784  __pyx_L1_error:;
4785  __pyx_r = NULL;
4786  __pyx_L0:;
4787  __Pyx_RefNannyFinishContext();
4788  return __pyx_r;
4789 }
4790 
4791 static PyObject *__pyx_pf_14cnumericalFlux_16calculateInteriorNumericalAdvectiveFlux_average(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left, PyArrayObject *__pyx_v_dflux_right) {
4792  PyObject *__pyx_r = NULL;
4793  __Pyx_RefNannyDeclarations
4794  __Pyx_RefNannySetupContext("calculateInteriorNumericalAdvectiveFlux_average", 0);
4795 
4796  /* "cnumericalFlux.pyx":2372
4797  * np.ndarray dflux_right
4798  * ):
4799  * ccalculateInteriorNumericalAdvectiveFlux_average(interiorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
4800  * f.shape[1],
4801  * f.shape[2],
4802  */
4803  calculateInteriorNumericalAdvectiveFlux_average((__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_f->dimensions[1]), (__pyx_v_f->dimensions[2]), (__pyx_v_f->dimensions[3]), ((int *)__pyx_v_interiorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_df->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_dflux_left->data), ((double *)__pyx_v_dflux_right->data));
4804 
4805  /* "cnumericalFlux.pyx":2361
4806  * <double*> v.data,
4807  * <double*> fluxJacobian.data)
4808  * def calculateInteriorNumericalAdvectiveFlux_average(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
4809  * np.ndarray elementBoundaryElements,
4810  * np.ndarray elementBoundaryLocalElementBoundaries,
4811  */
4812 
4813  /* function exit code */
4814  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4815  __Pyx_XGIVEREF(__pyx_r);
4816  __Pyx_RefNannyFinishContext();
4817  return __pyx_r;
4818 }
4819 
4820 /* "cnumericalFlux.pyx":2386
4821  * <double*> dflux_left.data,
4822  * <double*> dflux_right.data)
4823  * def calculateExteriorNumericalAdvectiveFlux_NoBC(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
4824  * np.ndarray elementBoundaryElements,
4825  * np.ndarray elementBoundaryLocalElementBoundaries,
4826  */
4827 
4828 /* Python wrapper */
4829 static PyObject *__pyx_pw_14cnumericalFlux_19calculateExteriorNumericalAdvectiveFlux_NoBC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4830 static PyMethodDef __pyx_mdef_14cnumericalFlux_19calculateExteriorNumericalAdvectiveFlux_NoBC = {"calculateExteriorNumericalAdvectiveFlux_NoBC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_19calculateExteriorNumericalAdvectiveFlux_NoBC, METH_VARARGS|METH_KEYWORDS, 0};
4831 static PyObject *__pyx_pw_14cnumericalFlux_19calculateExteriorNumericalAdvectiveFlux_NoBC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4832  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
4833  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
4834  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
4835  PyArrayObject *__pyx_v_inflowFlag = 0;
4836  PyArrayObject *__pyx_v_n = 0;
4837  PyArrayObject *__pyx_v_f = 0;
4838  PyArrayObject *__pyx_v_df = 0;
4839  PyArrayObject *__pyx_v_flux = 0;
4840  PyArrayObject *__pyx_v_dflux_left = 0;
4841  int __pyx_lineno = 0;
4842  const char *__pyx_filename = NULL;
4843  int __pyx_clineno = 0;
4844  PyObject *__pyx_r = 0;
4845  __Pyx_RefNannyDeclarations
4846  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFlux_NoBC (wrapper)", 0);
4847  {
4848  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_inflowFlag,&__pyx_n_s_n,&__pyx_n_s_f,&__pyx_n_s_df,&__pyx_n_s_flux,&__pyx_n_s_dflux_left,0};
4849  PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
4850  if (unlikely(__pyx_kwds)) {
4851  Py_ssize_t kw_args;
4852  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4853  switch (pos_args) {
4854  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4855  CYTHON_FALLTHROUGH;
4856  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4857  CYTHON_FALLTHROUGH;
4858  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4859  CYTHON_FALLTHROUGH;
4860  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4861  CYTHON_FALLTHROUGH;
4862  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4863  CYTHON_FALLTHROUGH;
4864  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4865  CYTHON_FALLTHROUGH;
4866  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4867  CYTHON_FALLTHROUGH;
4868  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4869  CYTHON_FALLTHROUGH;
4870  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4871  CYTHON_FALLTHROUGH;
4872  case 0: break;
4873  default: goto __pyx_L5_argtuple_error;
4874  }
4875  kw_args = PyDict_Size(__pyx_kwds);
4876  switch (pos_args) {
4877  case 0:
4878  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
4879  else goto __pyx_L5_argtuple_error;
4880  CYTHON_FALLTHROUGH;
4881  case 1:
4882  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
4883  else {
4884  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_NoBC", 1, 9, 9, 1); __PYX_ERR(0, 2386, __pyx_L3_error)
4885  }
4886  CYTHON_FALLTHROUGH;
4887  case 2:
4888  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
4889  else {
4890  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_NoBC", 1, 9, 9, 2); __PYX_ERR(0, 2386, __pyx_L3_error)
4891  }
4892  CYTHON_FALLTHROUGH;
4893  case 3:
4894  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
4895  else {
4896  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_NoBC", 1, 9, 9, 3); __PYX_ERR(0, 2386, __pyx_L3_error)
4897  }
4898  CYTHON_FALLTHROUGH;
4899  case 4:
4900  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
4901  else {
4902  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_NoBC", 1, 9, 9, 4); __PYX_ERR(0, 2386, __pyx_L3_error)
4903  }
4904  CYTHON_FALLTHROUGH;
4905  case 5:
4906  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
4907  else {
4908  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_NoBC", 1, 9, 9, 5); __PYX_ERR(0, 2386, __pyx_L3_error)
4909  }
4910  CYTHON_FALLTHROUGH;
4911  case 6:
4912  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
4913  else {
4914  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_NoBC", 1, 9, 9, 6); __PYX_ERR(0, 2386, __pyx_L3_error)
4915  }
4916  CYTHON_FALLTHROUGH;
4917  case 7:
4918  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
4919  else {
4920  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_NoBC", 1, 9, 9, 7); __PYX_ERR(0, 2386, __pyx_L3_error)
4921  }
4922  CYTHON_FALLTHROUGH;
4923  case 8:
4924  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
4925  else {
4926  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_NoBC", 1, 9, 9, 8); __PYX_ERR(0, 2386, __pyx_L3_error)
4927  }
4928  }
4929  if (unlikely(kw_args > 0)) {
4930  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalAdvectiveFlux_NoBC") < 0)) __PYX_ERR(0, 2386, __pyx_L3_error)
4931  }
4932  } else if (PyTuple_GET_SIZE(__pyx_args) != 9) {
4933  goto __pyx_L5_argtuple_error;
4934  } else {
4935  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4936  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4937  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4938  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4939  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4940  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4941  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4942  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4943  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4944  }
4945  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
4946  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
4947  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
4948  __pyx_v_inflowFlag = ((PyArrayObject *)values[3]);
4949  __pyx_v_n = ((PyArrayObject *)values[4]);
4950  __pyx_v_f = ((PyArrayObject *)values[5]);
4951  __pyx_v_df = ((PyArrayObject *)values[6]);
4952  __pyx_v_flux = ((PyArrayObject *)values[7]);
4953  __pyx_v_dflux_left = ((PyArrayObject *)values[8]);
4954  }
4955  goto __pyx_L4_argument_unpacking_done;
4956  __pyx_L5_argtuple_error:;
4957  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_NoBC", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2386, __pyx_L3_error)
4958  __pyx_L3_error:;
4959  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalAdvectiveFlux_NoBC", __pyx_clineno, __pyx_lineno, __pyx_filename);
4960  __Pyx_RefNannyFinishContext();
4961  return NULL;
4962  __pyx_L4_argument_unpacking_done:;
4963  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 2386, __pyx_L1_error)
4964  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2387, __pyx_L1_error)
4965  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2388, __pyx_L1_error)
4966  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 2389, __pyx_L1_error)
4967  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2390, __pyx_L1_error)
4968  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 2391, __pyx_L1_error)
4969  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 2392, __pyx_L1_error)
4970  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 2393, __pyx_L1_error)
4971  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 2394, __pyx_L1_error)
4972  __pyx_r = __pyx_pf_14cnumericalFlux_18calculateExteriorNumericalAdvectiveFlux_NoBC(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_inflowFlag, __pyx_v_n, __pyx_v_f, __pyx_v_df, __pyx_v_flux, __pyx_v_dflux_left);
4973 
4974  /* function exit code */
4975  goto __pyx_L0;
4976  __pyx_L1_error:;
4977  __pyx_r = NULL;
4978  __pyx_L0:;
4979  __Pyx_RefNannyFinishContext();
4980  return __pyx_r;
4981 }
4982 
4983 static PyObject *__pyx_pf_14cnumericalFlux_18calculateExteriorNumericalAdvectiveFlux_NoBC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux_left) {
4984  PyObject *__pyx_r = NULL;
4985  __Pyx_RefNannyDeclarations
4986  int __pyx_t_1;
4987  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFlux_NoBC", 0);
4988 
4989  /* "cnumericalFlux.pyx":2396
4990  * np.ndarray dflux_left
4991  * ):
4992  * if f.ndim > 3: # <<<<<<<<<<<<<<
4993  * ccalculateExteriorNumericalAdvectiveFlux_NoBC(exteriorElementBoundaries.shape[0],
4994  * f.shape[1],
4995  */
4996  __pyx_t_1 = ((__pyx_v_f->nd > 3) != 0);
4997  if (__pyx_t_1) {
4998 
4999  /* "cnumericalFlux.pyx":2397
5000  * ):
5001  * if f.ndim > 3:
5002  * ccalculateExteriorNumericalAdvectiveFlux_NoBC(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
5003  * f.shape[1],
5004  * f.shape[2],
5005  */
5006  calculateExteriorNumericalAdvectiveFlux_NoBC((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_f->dimensions[1]), (__pyx_v_f->dimensions[2]), (__pyx_v_f->dimensions[3]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_inflowFlag->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_df->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_dflux_left->data));
5007 
5008  /* "cnumericalFlux.pyx":2396
5009  * np.ndarray dflux_left
5010  * ):
5011  * if f.ndim > 3: # <<<<<<<<<<<<<<
5012  * ccalculateExteriorNumericalAdvectiveFlux_NoBC(exteriorElementBoundaries.shape[0],
5013  * f.shape[1],
5014  */
5015  goto __pyx_L3;
5016  }
5017 
5018  /* "cnumericalFlux.pyx":2411
5019  * <double*> dflux_left.data)
5020  * else:
5021  * ccalculateGlobalExteriorNumericalAdvectiveFlux_NoBC(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
5022  * f.shape[1],
5023  * f.shape[2],
5024  */
5025  /*else*/ {
5026 
5027  /* "cnumericalFlux.pyx":2422
5028  * <double*> df.data,
5029  * <double*> flux.data,
5030  * <double*> dflux_left.data) # <<<<<<<<<<<<<<
5031  *
5032  * def calculateExteriorNumericalAdvectiveFlux(np.ndarray exteriorElementBoundaries,
5033  */
5034  calculateGlobalExteriorNumericalAdvectiveFlux_NoBC((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_f->dimensions[1]), (__pyx_v_f->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_inflowFlag->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_df->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_dflux_left->data));
5035  }
5036  __pyx_L3:;
5037 
5038  /* "cnumericalFlux.pyx":2386
5039  * <double*> dflux_left.data,
5040  * <double*> dflux_right.data)
5041  * def calculateExteriorNumericalAdvectiveFlux_NoBC(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
5042  * np.ndarray elementBoundaryElements,
5043  * np.ndarray elementBoundaryLocalElementBoundaries,
5044  */
5045 
5046  /* function exit code */
5047  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5048  __Pyx_XGIVEREF(__pyx_r);
5049  __Pyx_RefNannyFinishContext();
5050  return __pyx_r;
5051 }
5052 
5053 /* "cnumericalFlux.pyx":2424
5054  * <double*> dflux_left.data)
5055  *
5056  * def calculateExteriorNumericalAdvectiveFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
5057  * np.ndarray elementBoundaryElements,
5058  * np.ndarray elementBoundaryLocalElementBoundaries,
5059  */
5060 
5061 /* Python wrapper */
5062 static PyObject *__pyx_pw_14cnumericalFlux_21calculateExteriorNumericalAdvectiveFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5063 static PyMethodDef __pyx_mdef_14cnumericalFlux_21calculateExteriorNumericalAdvectiveFlux = {"calculateExteriorNumericalAdvectiveFlux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_21calculateExteriorNumericalAdvectiveFlux, METH_VARARGS|METH_KEYWORDS, 0};
5064 static PyObject *__pyx_pw_14cnumericalFlux_21calculateExteriorNumericalAdvectiveFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5065  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
5066  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
5067  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
5068  PyArrayObject *__pyx_v_isDOFBoundary = 0;
5069  PyArrayObject *__pyx_v_inflowFlag = 0;
5070  PyArrayObject *__pyx_v_n = 0;
5071  PyArrayObject *__pyx_v_bc_u = 0;
5072  PyArrayObject *__pyx_v_bc_f = 0;
5073  PyArrayObject *__pyx_v_bc_df = 0;
5074  PyArrayObject *__pyx_v_u = 0;
5075  PyArrayObject *__pyx_v_f = 0;
5076  PyArrayObject *__pyx_v_df = 0;
5077  PyArrayObject *__pyx_v_flux = 0;
5078  PyArrayObject *__pyx_v_dflux = 0;
5079  int __pyx_lineno = 0;
5080  const char *__pyx_filename = NULL;
5081  int __pyx_clineno = 0;
5082  PyObject *__pyx_r = 0;
5083  __Pyx_RefNannyDeclarations
5084  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFlux (wrapper)", 0);
5085  {
5086  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_inflowFlag,&__pyx_n_s_n,&__pyx_n_s_bc_u,&__pyx_n_s_bc_f,&__pyx_n_s_bc_df,&__pyx_n_s_u,&__pyx_n_s_f,&__pyx_n_s_df,&__pyx_n_s_flux,&__pyx_n_s_dflux,0};
5087  PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
5088  if (unlikely(__pyx_kwds)) {
5089  Py_ssize_t kw_args;
5090  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5091  switch (pos_args) {
5092  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
5093  CYTHON_FALLTHROUGH;
5094  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
5095  CYTHON_FALLTHROUGH;
5096  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
5097  CYTHON_FALLTHROUGH;
5098  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
5099  CYTHON_FALLTHROUGH;
5100  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
5101  CYTHON_FALLTHROUGH;
5102  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5103  CYTHON_FALLTHROUGH;
5104  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5105  CYTHON_FALLTHROUGH;
5106  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5107  CYTHON_FALLTHROUGH;
5108  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5109  CYTHON_FALLTHROUGH;
5110  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5111  CYTHON_FALLTHROUGH;
5112  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5113  CYTHON_FALLTHROUGH;
5114  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5115  CYTHON_FALLTHROUGH;
5116  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5117  CYTHON_FALLTHROUGH;
5118  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5119  CYTHON_FALLTHROUGH;
5120  case 0: break;
5121  default: goto __pyx_L5_argtuple_error;
5122  }
5123  kw_args = PyDict_Size(__pyx_kwds);
5124  switch (pos_args) {
5125  case 0:
5126  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
5127  else goto __pyx_L5_argtuple_error;
5128  CYTHON_FALLTHROUGH;
5129  case 1:
5130  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
5131  else {
5132  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux", 1, 14, 14, 1); __PYX_ERR(0, 2424, __pyx_L3_error)
5133  }
5134  CYTHON_FALLTHROUGH;
5135  case 2:
5136  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
5137  else {
5138  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux", 1, 14, 14, 2); __PYX_ERR(0, 2424, __pyx_L3_error)
5139  }
5140  CYTHON_FALLTHROUGH;
5141  case 3:
5142  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
5143  else {
5144  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux", 1, 14, 14, 3); __PYX_ERR(0, 2424, __pyx_L3_error)
5145  }
5146  CYTHON_FALLTHROUGH;
5147  case 4:
5148  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
5149  else {
5150  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux", 1, 14, 14, 4); __PYX_ERR(0, 2424, __pyx_L3_error)
5151  }
5152  CYTHON_FALLTHROUGH;
5153  case 5:
5154  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
5155  else {
5156  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux", 1, 14, 14, 5); __PYX_ERR(0, 2424, __pyx_L3_error)
5157  }
5158  CYTHON_FALLTHROUGH;
5159  case 6:
5160  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
5161  else {
5162  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux", 1, 14, 14, 6); __PYX_ERR(0, 2424, __pyx_L3_error)
5163  }
5164  CYTHON_FALLTHROUGH;
5165  case 7:
5166  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f)) != 0)) kw_args--;
5167  else {
5168  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux", 1, 14, 14, 7); __PYX_ERR(0, 2424, __pyx_L3_error)
5169  }
5170  CYTHON_FALLTHROUGH;
5171  case 8:
5172  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_df)) != 0)) kw_args--;
5173  else {
5174  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux", 1, 14, 14, 8); __PYX_ERR(0, 2424, __pyx_L3_error)
5175  }
5176  CYTHON_FALLTHROUGH;
5177  case 9:
5178  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
5179  else {
5180  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux", 1, 14, 14, 9); __PYX_ERR(0, 2424, __pyx_L3_error)
5181  }
5182  CYTHON_FALLTHROUGH;
5183  case 10:
5184  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
5185  else {
5186  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux", 1, 14, 14, 10); __PYX_ERR(0, 2424, __pyx_L3_error)
5187  }
5188  CYTHON_FALLTHROUGH;
5189  case 11:
5190  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
5191  else {
5192  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux", 1, 14, 14, 11); __PYX_ERR(0, 2424, __pyx_L3_error)
5193  }
5194  CYTHON_FALLTHROUGH;
5195  case 12:
5196  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
5197  else {
5198  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux", 1, 14, 14, 12); __PYX_ERR(0, 2424, __pyx_L3_error)
5199  }
5200  CYTHON_FALLTHROUGH;
5201  case 13:
5202  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux)) != 0)) kw_args--;
5203  else {
5204  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux", 1, 14, 14, 13); __PYX_ERR(0, 2424, __pyx_L3_error)
5205  }
5206  }
5207  if (unlikely(kw_args > 0)) {
5208  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalAdvectiveFlux") < 0)) __PYX_ERR(0, 2424, __pyx_L3_error)
5209  }
5210  } else if (PyTuple_GET_SIZE(__pyx_args) != 14) {
5211  goto __pyx_L5_argtuple_error;
5212  } else {
5213  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5214  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5215  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5216  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5217  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5218  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5219  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5220  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5221  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5222  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
5223  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
5224  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
5225  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
5226  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
5227  }
5228  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
5229  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
5230  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
5231  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[3]);
5232  __pyx_v_inflowFlag = ((PyArrayObject *)values[4]);
5233  __pyx_v_n = ((PyArrayObject *)values[5]);
5234  __pyx_v_bc_u = ((PyArrayObject *)values[6]);
5235  __pyx_v_bc_f = ((PyArrayObject *)values[7]);
5236  __pyx_v_bc_df = ((PyArrayObject *)values[8]);
5237  __pyx_v_u = ((PyArrayObject *)values[9]);
5238  __pyx_v_f = ((PyArrayObject *)values[10]);
5239  __pyx_v_df = ((PyArrayObject *)values[11]);
5240  __pyx_v_flux = ((PyArrayObject *)values[12]);
5241  __pyx_v_dflux = ((PyArrayObject *)values[13]);
5242  }
5243  goto __pyx_L4_argument_unpacking_done;
5244  __pyx_L5_argtuple_error:;
5245  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux", 1, 14, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2424, __pyx_L3_error)
5246  __pyx_L3_error:;
5247  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalAdvectiveFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
5248  __Pyx_RefNannyFinishContext();
5249  return NULL;
5250  __pyx_L4_argument_unpacking_done:;
5251  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 2424, __pyx_L1_error)
5252  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2425, __pyx_L1_error)
5253  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2426, __pyx_L1_error)
5254  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 2427, __pyx_L1_error)
5255  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 2428, __pyx_L1_error)
5256  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2429, __pyx_L1_error)
5257  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 2430, __pyx_L1_error)
5258  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f), __pyx_ptype_5numpy_ndarray, 1, "bc_f", 0))) __PYX_ERR(0, 2431, __pyx_L1_error)
5259  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_df), __pyx_ptype_5numpy_ndarray, 1, "bc_df", 0))) __PYX_ERR(0, 2432, __pyx_L1_error)
5260  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 2433, __pyx_L1_error)
5261  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 2434, __pyx_L1_error)
5262  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 2435, __pyx_L1_error)
5263  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 2436, __pyx_L1_error)
5264  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux), __pyx_ptype_5numpy_ndarray, 1, "dflux", 0))) __PYX_ERR(0, 2437, __pyx_L1_error)
5265  __pyx_r = __pyx_pf_14cnumericalFlux_20calculateExteriorNumericalAdvectiveFlux(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __pyx_v_inflowFlag, __pyx_v_n, __pyx_v_bc_u, __pyx_v_bc_f, __pyx_v_bc_df, __pyx_v_u, __pyx_v_f, __pyx_v_df, __pyx_v_flux, __pyx_v_dflux);
5266 
5267  /* function exit code */
5268  goto __pyx_L0;
5269  __pyx_L1_error:;
5270  __pyx_r = NULL;
5271  __pyx_L0:;
5272  __Pyx_RefNannyFinishContext();
5273  return __pyx_r;
5274 }
5275 
5276 static PyObject *__pyx_pf_14cnumericalFlux_20calculateExteriorNumericalAdvectiveFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_inflowFlag, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_bc_u, PyArrayObject *__pyx_v_bc_f, PyArrayObject *__pyx_v_bc_df, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_dflux) {
5277  PyObject *__pyx_r = NULL;
5278  __Pyx_RefNannyDeclarations
5279  int __pyx_t_1;
5280  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFlux", 0);
5281 
5282  /* "cnumericalFlux.pyx":2439
5283  * np.ndarray dflux
5284  * ):
5285  * if f.ndim > 3: # <<<<<<<<<<<<<<
5286  * ccalculateExteriorNumericalAdvectiveFlux( exteriorElementBoundaries.shape[0],
5287  * f.shape[1],
5288  */
5289  __pyx_t_1 = ((__pyx_v_f->nd > 3) != 0);
5290  if (__pyx_t_1) {
5291 
5292  /* "cnumericalFlux.pyx":2440
5293  * ):
5294  * if f.ndim > 3:
5295  * ccalculateExteriorNumericalAdvectiveFlux( exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
5296  * f.shape[1],
5297  * f.shape[2],
5298  */
5299  calculateExteriorNumericalAdvectiveFlux((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_f->dimensions[1]), (__pyx_v_f->dimensions[2]), (__pyx_v_f->dimensions[3]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((int *)__pyx_v_inflowFlag->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_u->data), ((double *)__pyx_v_bc_f->data), ((double *)__pyx_v_bc_df->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_df->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_dflux->data));
5300 
5301  /* "cnumericalFlux.pyx":2439
5302  * np.ndarray dflux
5303  * ):
5304  * if f.ndim > 3: # <<<<<<<<<<<<<<
5305  * ccalculateExteriorNumericalAdvectiveFlux( exteriorElementBoundaries.shape[0],
5306  * f.shape[1],
5307  */
5308  goto __pyx_L3;
5309  }
5310 
5311  /* "cnumericalFlux.pyx":2459
5312  * <double*> dflux.data)
5313  * else:
5314  * ccalculateGlobalExteriorNumericalAdvectiveFlux(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
5315  * f.shape[1],
5316  * f.shape[2],
5317  */
5318  /*else*/ {
5319 
5320  /* "cnumericalFlux.pyx":2475
5321  * <double*> df.data,
5322  * <double*> flux.data,
5323  * <double*> dflux.data) # <<<<<<<<<<<<<<
5324  *
5325  * def updateExteriorNumericalAdvectiveFluxJacobian( np.ndarray exteriorElementBoundaries,
5326  */
5327  calculateGlobalExteriorNumericalAdvectiveFlux((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_f->dimensions[1]), (__pyx_v_f->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((int *)__pyx_v_inflowFlag->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_u->data), ((double *)__pyx_v_bc_f->data), ((double *)__pyx_v_bc_df->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_df->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_dflux->data));
5328  }
5329  __pyx_L3:;
5330 
5331  /* "cnumericalFlux.pyx":2424
5332  * <double*> dflux_left.data)
5333  *
5334  * def calculateExteriorNumericalAdvectiveFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
5335  * np.ndarray elementBoundaryElements,
5336  * np.ndarray elementBoundaryLocalElementBoundaries,
5337  */
5338 
5339  /* function exit code */
5340  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5341  __Pyx_XGIVEREF(__pyx_r);
5342  __Pyx_RefNannyFinishContext();
5343  return __pyx_r;
5344 }
5345 
5346 /* "cnumericalFlux.pyx":2477
5347  * <double*> dflux.data)
5348  *
5349  * def updateExteriorNumericalAdvectiveFluxJacobian( np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
5350  * np.ndarray elementBoundaryElements,
5351  * np.ndarray elementBoundaryLocalElementBoundaries,
5352  */
5353 
5354 /* Python wrapper */
5355 static PyObject *__pyx_pw_14cnumericalFlux_23updateExteriorNumericalAdvectiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5356 static PyMethodDef __pyx_mdef_14cnumericalFlux_23updateExteriorNumericalAdvectiveFluxJacobian = {"updateExteriorNumericalAdvectiveFluxJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_23updateExteriorNumericalAdvectiveFluxJacobian, METH_VARARGS|METH_KEYWORDS, 0};
5357 static PyObject *__pyx_pw_14cnumericalFlux_23updateExteriorNumericalAdvectiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5358  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
5359  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
5360  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
5361  PyArrayObject *__pyx_v_inflowFlag = 0;
5362  PyArrayObject *__pyx_v_dflux_left = 0;
5363  PyArrayObject *__pyx_v_v = 0;
5364  PyArrayObject *__pyx_v_fluxJacobian = 0;
5365  int __pyx_lineno = 0;
5366  const char *__pyx_filename = NULL;
5367  int __pyx_clineno = 0;
5368  PyObject *__pyx_r = 0;
5369  __Pyx_RefNannyDeclarations
5370  __Pyx_RefNannySetupContext("updateExteriorNumericalAdvectiveFluxJacobian (wrapper)", 0);
5371  {
5372  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_inflowFlag,&__pyx_n_s_dflux_left,&__pyx_n_s_v,&__pyx_n_s_fluxJacobian,0};
5373  PyObject* values[7] = {0,0,0,0,0,0,0};
5374  if (unlikely(__pyx_kwds)) {
5375  Py_ssize_t kw_args;
5376  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5377  switch (pos_args) {
5378  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5379  CYTHON_FALLTHROUGH;
5380  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5381  CYTHON_FALLTHROUGH;
5382  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5383  CYTHON_FALLTHROUGH;
5384  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5385  CYTHON_FALLTHROUGH;
5386  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5387  CYTHON_FALLTHROUGH;
5388  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5389  CYTHON_FALLTHROUGH;
5390  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5391  CYTHON_FALLTHROUGH;
5392  case 0: break;
5393  default: goto __pyx_L5_argtuple_error;
5394  }
5395  kw_args = PyDict_Size(__pyx_kwds);
5396  switch (pos_args) {
5397  case 0:
5398  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
5399  else goto __pyx_L5_argtuple_error;
5400  CYTHON_FALLTHROUGH;
5401  case 1:
5402  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
5403  else {
5404  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalAdvectiveFluxJacobian", 1, 7, 7, 1); __PYX_ERR(0, 2477, __pyx_L3_error)
5405  }
5406  CYTHON_FALLTHROUGH;
5407  case 2:
5408  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
5409  else {
5410  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalAdvectiveFluxJacobian", 1, 7, 7, 2); __PYX_ERR(0, 2477, __pyx_L3_error)
5411  }
5412  CYTHON_FALLTHROUGH;
5413  case 3:
5414  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
5415  else {
5416  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalAdvectiveFluxJacobian", 1, 7, 7, 3); __PYX_ERR(0, 2477, __pyx_L3_error)
5417  }
5418  CYTHON_FALLTHROUGH;
5419  case 4:
5420  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
5421  else {
5422  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalAdvectiveFluxJacobian", 1, 7, 7, 4); __PYX_ERR(0, 2477, __pyx_L3_error)
5423  }
5424  CYTHON_FALLTHROUGH;
5425  case 5:
5426  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
5427  else {
5428  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalAdvectiveFluxJacobian", 1, 7, 7, 5); __PYX_ERR(0, 2477, __pyx_L3_error)
5429  }
5430  CYTHON_FALLTHROUGH;
5431  case 6:
5432  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
5433  else {
5434  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalAdvectiveFluxJacobian", 1, 7, 7, 6); __PYX_ERR(0, 2477, __pyx_L3_error)
5435  }
5436  }
5437  if (unlikely(kw_args > 0)) {
5438  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateExteriorNumericalAdvectiveFluxJacobian") < 0)) __PYX_ERR(0, 2477, __pyx_L3_error)
5439  }
5440  } else if (PyTuple_GET_SIZE(__pyx_args) != 7) {
5441  goto __pyx_L5_argtuple_error;
5442  } else {
5443  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5444  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5445  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5446  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5447  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5448  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5449  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5450  }
5451  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
5452  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
5453  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
5454  __pyx_v_inflowFlag = ((PyArrayObject *)values[3]);
5455  __pyx_v_dflux_left = ((PyArrayObject *)values[4]);
5456  __pyx_v_v = ((PyArrayObject *)values[5]);
5457  __pyx_v_fluxJacobian = ((PyArrayObject *)values[6]);
5458  }
5459  goto __pyx_L4_argument_unpacking_done;
5460  __pyx_L5_argtuple_error:;
5461  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalAdvectiveFluxJacobian", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2477, __pyx_L3_error)
5462  __pyx_L3_error:;
5463  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalAdvectiveFluxJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename);
5464  __Pyx_RefNannyFinishContext();
5465  return NULL;
5466  __pyx_L4_argument_unpacking_done:;
5467  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 2477, __pyx_L1_error)
5468  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2478, __pyx_L1_error)
5469  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2479, __pyx_L1_error)
5470  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 2480, __pyx_L1_error)
5471