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  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 2481, __pyx_L1_error)
5472  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 2482, __pyx_L1_error)
5473  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 2483, __pyx_L1_error)
5474  __pyx_r = __pyx_pf_14cnumericalFlux_22updateExteriorNumericalAdvectiveFluxJacobian(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_inflowFlag, __pyx_v_dflux_left, __pyx_v_v, __pyx_v_fluxJacobian);
5475 
5476  /* function exit code */
5477  goto __pyx_L0;
5478  __pyx_L1_error:;
5479  __pyx_r = NULL;
5480  __pyx_L0:;
5481  __Pyx_RefNannyFinishContext();
5482  return __pyx_r;
5483 }
5484 
5485 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) {
5486  PyObject *__pyx_r = NULL;
5487  __Pyx_RefNannyDeclarations
5488  __Pyx_RefNannySetupContext("updateExteriorNumericalAdvectiveFluxJacobian", 0);
5489 
5490  /* "cnumericalFlux.pyx":2485
5491  * np.ndarray fluxJacobian
5492  * ):
5493  * if v.ndim==4: # <<<<<<<<<<<<<<
5494  * cupdateExteriorNumericalAdvectiveFluxJacobian( exteriorElementBoundaries.shape[0],
5495  * v.shape[1],
5496  */
5497  switch (__pyx_v_v->nd) {
5498  case 4:
5499 
5500  /* "cnumericalFlux.pyx":2486
5501  * ):
5502  * if v.ndim==4:
5503  * cupdateExteriorNumericalAdvectiveFluxJacobian( exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
5504  * v.shape[1],
5505  * v.shape[2],
5506  */
5507  updateExteriorNumericalAdvectiveFluxJacobian((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_v->dimensions[1]), (__pyx_v_v->dimensions[2]), (__pyx_v_v->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_dflux_left->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_fluxJacobian->data));
5508 
5509  /* "cnumericalFlux.pyx":2485
5510  * np.ndarray fluxJacobian
5511  * ):
5512  * if v.ndim==4: # <<<<<<<<<<<<<<
5513  * cupdateExteriorNumericalAdvectiveFluxJacobian( exteriorElementBoundaries.shape[0],
5514  * v.shape[1],
5515  */
5516  break;
5517  case 3:
5518 
5519  /* "cnumericalFlux.pyx":2498
5520  * <double*> fluxJacobian.data)
5521  * elif v.ndim==3:
5522  * cupdateGlobalExteriorNumericalAdvectiveFluxJacobian( exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
5523  * v.shape[1],
5524  * v.shape[2],
5525  */
5526  updateGlobalExteriorNumericalAdvectiveFluxJacobian((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_v->dimensions[1]), (__pyx_v_v->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_dflux_left->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_fluxJacobian->data));
5527 
5528  /* "cnumericalFlux.pyx":2497
5529  * <double*> v.data,
5530  * <double*> fluxJacobian.data)
5531  * elif v.ndim==3: # <<<<<<<<<<<<<<
5532  * cupdateGlobalExteriorNumericalAdvectiveFluxJacobian( exteriorElementBoundaries.shape[0],
5533  * v.shape[1],
5534  */
5535  break;
5536  default: break;
5537  }
5538 
5539  /* "cnumericalFlux.pyx":2477
5540  * <double*> dflux.data)
5541  *
5542  * def updateExteriorNumericalAdvectiveFluxJacobian( np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
5543  * np.ndarray elementBoundaryElements,
5544  * np.ndarray elementBoundaryLocalElementBoundaries,
5545  */
5546 
5547  /* function exit code */
5548  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5549  __Pyx_XGIVEREF(__pyx_r);
5550  __Pyx_RefNannyFinishContext();
5551  return __pyx_r;
5552 }
5553 
5554 /* "cnumericalFlux.pyx":2508
5555  * <double*> v.data,
5556  * <double*> fluxJacobian.data)
5557  * def calculateInteriorNumericalDiffusiveFlux_LDG_upwind(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
5558  * np.ndarray elementBoundaryElements,
5559  * np.ndarray elementBoundaryLocalElementBoundaries,
5560  */
5561 
5562 /* Python wrapper */
5563 static PyObject *__pyx_pw_14cnumericalFlux_25calculateInteriorNumericalDiffusiveFlux_LDG_upwind(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5564 static PyMethodDef __pyx_mdef_14cnumericalFlux_25calculateInteriorNumericalDiffusiveFlux_LDG_upwind = {"calculateInteriorNumericalDiffusiveFlux_LDG_upwind", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_25calculateInteriorNumericalDiffusiveFlux_LDG_upwind, METH_VARARGS|METH_KEYWORDS, 0};
5565 static PyObject *__pyx_pw_14cnumericalFlux_25calculateInteriorNumericalDiffusiveFlux_LDG_upwind(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5566  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
5567  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
5568  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
5569  PyArrayObject *__pyx_v_n = 0;
5570  PyArrayObject *__pyx_v_u = 0;
5571  PyArrayObject *__pyx_v_a = 0;
5572  PyArrayObject *__pyx_v_phi = 0;
5573  PyArrayObject *__pyx_v_V = 0;
5574  PyArrayObject *__pyx_v_penalty = 0;
5575  PyArrayObject *__pyx_v_flux = 0;
5576  int __pyx_lineno = 0;
5577  const char *__pyx_filename = NULL;
5578  int __pyx_clineno = 0;
5579  PyObject *__pyx_r = 0;
5580  __Pyx_RefNannyDeclarations
5581  __Pyx_RefNannySetupContext("calculateInteriorNumericalDiffusiveFlux_LDG_upwind (wrapper)", 0);
5582  {
5583  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_a,&__pyx_n_s_phi,&__pyx_n_s_V,&__pyx_n_s_penalty,&__pyx_n_s_flux,0};
5584  PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
5585  if (unlikely(__pyx_kwds)) {
5586  Py_ssize_t kw_args;
5587  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5588  switch (pos_args) {
5589  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
5590  CYTHON_FALLTHROUGH;
5591  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5592  CYTHON_FALLTHROUGH;
5593  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5594  CYTHON_FALLTHROUGH;
5595  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5596  CYTHON_FALLTHROUGH;
5597  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5598  CYTHON_FALLTHROUGH;
5599  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5600  CYTHON_FALLTHROUGH;
5601  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5602  CYTHON_FALLTHROUGH;
5603  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5604  CYTHON_FALLTHROUGH;
5605  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5606  CYTHON_FALLTHROUGH;
5607  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5608  CYTHON_FALLTHROUGH;
5609  case 0: break;
5610  default: goto __pyx_L5_argtuple_error;
5611  }
5612  kw_args = PyDict_Size(__pyx_kwds);
5613  switch (pos_args) {
5614  case 0:
5615  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
5616  else goto __pyx_L5_argtuple_error;
5617  CYTHON_FALLTHROUGH;
5618  case 1:
5619  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
5620  else {
5621  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind", 1, 10, 10, 1); __PYX_ERR(0, 2508, __pyx_L3_error)
5622  }
5623  CYTHON_FALLTHROUGH;
5624  case 2:
5625  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
5626  else {
5627  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind", 1, 10, 10, 2); __PYX_ERR(0, 2508, __pyx_L3_error)
5628  }
5629  CYTHON_FALLTHROUGH;
5630  case 3:
5631  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
5632  else {
5633  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind", 1, 10, 10, 3); __PYX_ERR(0, 2508, __pyx_L3_error)
5634  }
5635  CYTHON_FALLTHROUGH;
5636  case 4:
5637  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
5638  else {
5639  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind", 1, 10, 10, 4); __PYX_ERR(0, 2508, __pyx_L3_error)
5640  }
5641  CYTHON_FALLTHROUGH;
5642  case 5:
5643  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
5644  else {
5645  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind", 1, 10, 10, 5); __PYX_ERR(0, 2508, __pyx_L3_error)
5646  }
5647  CYTHON_FALLTHROUGH;
5648  case 6:
5649  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_phi)) != 0)) kw_args--;
5650  else {
5651  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind", 1, 10, 10, 6); __PYX_ERR(0, 2508, __pyx_L3_error)
5652  }
5653  CYTHON_FALLTHROUGH;
5654  case 7:
5655  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--;
5656  else {
5657  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind", 1, 10, 10, 7); __PYX_ERR(0, 2508, __pyx_L3_error)
5658  }
5659  CYTHON_FALLTHROUGH;
5660  case 8:
5661  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
5662  else {
5663  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind", 1, 10, 10, 8); __PYX_ERR(0, 2508, __pyx_L3_error)
5664  }
5665  CYTHON_FALLTHROUGH;
5666  case 9:
5667  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
5668  else {
5669  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind", 1, 10, 10, 9); __PYX_ERR(0, 2508, __pyx_L3_error)
5670  }
5671  }
5672  if (unlikely(kw_args > 0)) {
5673  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateInteriorNumericalDiffusiveFlux_LDG_upwind") < 0)) __PYX_ERR(0, 2508, __pyx_L3_error)
5674  }
5675  } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
5676  goto __pyx_L5_argtuple_error;
5677  } else {
5678  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5679  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5680  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5681  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5682  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5683  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5684  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5685  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5686  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5687  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
5688  }
5689  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
5690  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
5691  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
5692  __pyx_v_n = ((PyArrayObject *)values[3]);
5693  __pyx_v_u = ((PyArrayObject *)values[4]);
5694  __pyx_v_a = ((PyArrayObject *)values[5]);
5695  __pyx_v_phi = ((PyArrayObject *)values[6]);
5696  __pyx_v_V = ((PyArrayObject *)values[7]);
5697  __pyx_v_penalty = ((PyArrayObject *)values[8]);
5698  __pyx_v_flux = ((PyArrayObject *)values[9]);
5699  }
5700  goto __pyx_L4_argument_unpacking_done;
5701  __pyx_L5_argtuple_error:;
5702  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2508, __pyx_L3_error)
5703  __pyx_L3_error:;
5704  __Pyx_AddTraceback("cnumericalFlux.calculateInteriorNumericalDiffusiveFlux_LDG_upwind", __pyx_clineno, __pyx_lineno, __pyx_filename);
5705  __Pyx_RefNannyFinishContext();
5706  return NULL;
5707  __pyx_L4_argument_unpacking_done:;
5708  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2508, __pyx_L1_error)
5709  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2509, __pyx_L1_error)
5710  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2510, __pyx_L1_error)
5711  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2511, __pyx_L1_error)
5712  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 2512, __pyx_L1_error)
5713  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 2513, __pyx_L1_error)
5714  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phi), __pyx_ptype_5numpy_ndarray, 1, "phi", 0))) __PYX_ERR(0, 2514, __pyx_L1_error)
5715  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_V), __pyx_ptype_5numpy_ndarray, 1, "V", 0))) __PYX_ERR(0, 2515, __pyx_L1_error)
5716  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 2516, __pyx_L1_error)
5717  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 2517, __pyx_L1_error)
5718  __pyx_r = __pyx_pf_14cnumericalFlux_24calculateInteriorNumericalDiffusiveFlux_LDG_upwind(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_u, __pyx_v_a, __pyx_v_phi, __pyx_v_V, __pyx_v_penalty, __pyx_v_flux);
5719 
5720  /* function exit code */
5721  goto __pyx_L0;
5722  __pyx_L1_error:;
5723  __pyx_r = NULL;
5724  __pyx_L0:;
5725  __Pyx_RefNannyFinishContext();
5726  return __pyx_r;
5727 }
5728 
5729 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) {
5730  PyObject *__pyx_r = NULL;
5731  __Pyx_RefNannyDeclarations
5732  __Pyx_RefNannySetupContext("calculateInteriorNumericalDiffusiveFlux_LDG_upwind", 0);
5733 
5734  /* "cnumericalFlux.pyx":2519
5735  * np.ndarray flux
5736  * ):
5737  * ccalculateInteriorNumericalDiffusiveFlux_LDG_upwind(interiorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
5738  * n.shape[1],
5739  * n.shape[2],
5740  */
5741  calculateInteriorNumericalDiffusiveFlux_LDG_upwind((__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_n->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_a->data), ((double *)__pyx_v_phi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_flux->data));
5742 
5743  /* "cnumericalFlux.pyx":2508
5744  * <double*> v.data,
5745  * <double*> fluxJacobian.data)
5746  * def calculateInteriorNumericalDiffusiveFlux_LDG_upwind(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
5747  * np.ndarray elementBoundaryElements,
5748  * np.ndarray elementBoundaryLocalElementBoundaries,
5749  */
5750 
5751  /* function exit code */
5752  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5753  __Pyx_XGIVEREF(__pyx_r);
5754  __Pyx_RefNannyFinishContext();
5755  return __pyx_r;
5756 }
5757 
5758 /* "cnumericalFlux.pyx":2533
5759  * <double*> penalty.data,
5760  * <double*> flux.data)
5761  * def updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
5762  * np.ndarray elementBoundaryElements,
5763  * np.ndarray elementBoundaryLocalElementBoundaries,
5764  */
5765 
5766 /* Python wrapper */
5767 static PyObject *__pyx_pw_14cnumericalFlux_27updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5768 static PyMethodDef __pyx_mdef_14cnumericalFlux_27updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind = {"updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_27updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind, METH_VARARGS|METH_KEYWORDS, 0};
5769 static PyObject *__pyx_pw_14cnumericalFlux_27updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5770  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
5771  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
5772  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
5773  PyArrayObject *__pyx_v_n = 0;
5774  PyArrayObject *__pyx_v_a = 0;
5775  PyArrayObject *__pyx_v_da = 0;
5776  PyArrayObject *__pyx_v_dphi = 0;
5777  PyArrayObject *__pyx_v_V = 0;
5778  PyArrayObject *__pyx_v_DV = 0;
5779  PyArrayObject *__pyx_v_DV_eb = 0;
5780  PyArrayObject *__pyx_v_v = 0;
5781  PyArrayObject *__pyx_v_penalty = 0;
5782  PyArrayObject *__pyx_v_fluxJacobian = 0;
5783  PyArrayObject *__pyx_v_fluxJacobian_eb = 0;
5784  int __pyx_lineno = 0;
5785  const char *__pyx_filename = NULL;
5786  int __pyx_clineno = 0;
5787  PyObject *__pyx_r = 0;
5788  __Pyx_RefNannyDeclarations
5789  __Pyx_RefNannySetupContext("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind (wrapper)", 0);
5790  {
5791  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_da,&__pyx_n_s_dphi,&__pyx_n_s_V,&__pyx_n_s_DV,&__pyx_n_s_DV_eb,&__pyx_n_s_v,&__pyx_n_s_penalty,&__pyx_n_s_fluxJacobian,&__pyx_n_s_fluxJacobian_eb,0};
5792  PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
5793  if (unlikely(__pyx_kwds)) {
5794  Py_ssize_t kw_args;
5795  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5796  switch (pos_args) {
5797  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
5798  CYTHON_FALLTHROUGH;
5799  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
5800  CYTHON_FALLTHROUGH;
5801  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
5802  CYTHON_FALLTHROUGH;
5803  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
5804  CYTHON_FALLTHROUGH;
5805  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
5806  CYTHON_FALLTHROUGH;
5807  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5808  CYTHON_FALLTHROUGH;
5809  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5810  CYTHON_FALLTHROUGH;
5811  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5812  CYTHON_FALLTHROUGH;
5813  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5814  CYTHON_FALLTHROUGH;
5815  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5816  CYTHON_FALLTHROUGH;
5817  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5818  CYTHON_FALLTHROUGH;
5819  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5820  CYTHON_FALLTHROUGH;
5821  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5822  CYTHON_FALLTHROUGH;
5823  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5824  CYTHON_FALLTHROUGH;
5825  case 0: break;
5826  default: goto __pyx_L5_argtuple_error;
5827  }
5828  kw_args = PyDict_Size(__pyx_kwds);
5829  switch (pos_args) {
5830  case 0:
5831  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
5832  else goto __pyx_L5_argtuple_error;
5833  CYTHON_FALLTHROUGH;
5834  case 1:
5835  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
5836  else {
5837  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 14, 14, 1); __PYX_ERR(0, 2533, __pyx_L3_error)
5838  }
5839  CYTHON_FALLTHROUGH;
5840  case 2:
5841  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
5842  else {
5843  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 14, 14, 2); __PYX_ERR(0, 2533, __pyx_L3_error)
5844  }
5845  CYTHON_FALLTHROUGH;
5846  case 3:
5847  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
5848  else {
5849  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 14, 14, 3); __PYX_ERR(0, 2533, __pyx_L3_error)
5850  }
5851  CYTHON_FALLTHROUGH;
5852  case 4:
5853  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
5854  else {
5855  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 14, 14, 4); __PYX_ERR(0, 2533, __pyx_L3_error)
5856  }
5857  CYTHON_FALLTHROUGH;
5858  case 5:
5859  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
5860  else {
5861  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 14, 14, 5); __PYX_ERR(0, 2533, __pyx_L3_error)
5862  }
5863  CYTHON_FALLTHROUGH;
5864  case 6:
5865  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
5866  else {
5867  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 14, 14, 6); __PYX_ERR(0, 2533, __pyx_L3_error)
5868  }
5869  CYTHON_FALLTHROUGH;
5870  case 7:
5871  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--;
5872  else {
5873  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 14, 14, 7); __PYX_ERR(0, 2533, __pyx_L3_error)
5874  }
5875  CYTHON_FALLTHROUGH;
5876  case 8:
5877  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DV)) != 0)) kw_args--;
5878  else {
5879  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 14, 14, 8); __PYX_ERR(0, 2533, __pyx_L3_error)
5880  }
5881  CYTHON_FALLTHROUGH;
5882  case 9:
5883  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DV_eb)) != 0)) kw_args--;
5884  else {
5885  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 14, 14, 9); __PYX_ERR(0, 2533, __pyx_L3_error)
5886  }
5887  CYTHON_FALLTHROUGH;
5888  case 10:
5889  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
5890  else {
5891  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 14, 14, 10); __PYX_ERR(0, 2533, __pyx_L3_error)
5892  }
5893  CYTHON_FALLTHROUGH;
5894  case 11:
5895  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
5896  else {
5897  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 14, 14, 11); __PYX_ERR(0, 2533, __pyx_L3_error)
5898  }
5899  CYTHON_FALLTHROUGH;
5900  case 12:
5901  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
5902  else {
5903  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 14, 14, 12); __PYX_ERR(0, 2533, __pyx_L3_error)
5904  }
5905  CYTHON_FALLTHROUGH;
5906  case 13:
5907  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_eb)) != 0)) kw_args--;
5908  else {
5909  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 14, 14, 13); __PYX_ERR(0, 2533, __pyx_L3_error)
5910  }
5911  }
5912  if (unlikely(kw_args > 0)) {
5913  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind") < 0)) __PYX_ERR(0, 2533, __pyx_L3_error)
5914  }
5915  } else if (PyTuple_GET_SIZE(__pyx_args) != 14) {
5916  goto __pyx_L5_argtuple_error;
5917  } else {
5918  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5919  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5920  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5921  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5922  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5923  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5924  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5925  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5926  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5927  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
5928  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
5929  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
5930  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
5931  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
5932  }
5933  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
5934  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
5935  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
5936  __pyx_v_n = ((PyArrayObject *)values[3]);
5937  __pyx_v_a = ((PyArrayObject *)values[4]);
5938  __pyx_v_da = ((PyArrayObject *)values[5]);
5939  __pyx_v_dphi = ((PyArrayObject *)values[6]);
5940  __pyx_v_V = ((PyArrayObject *)values[7]);
5941  __pyx_v_DV = ((PyArrayObject *)values[8]);
5942  __pyx_v_DV_eb = ((PyArrayObject *)values[9]);
5943  __pyx_v_v = ((PyArrayObject *)values[10]);
5944  __pyx_v_penalty = ((PyArrayObject *)values[11]);
5945  __pyx_v_fluxJacobian = ((PyArrayObject *)values[12]);
5946  __pyx_v_fluxJacobian_eb = ((PyArrayObject *)values[13]);
5947  }
5948  goto __pyx_L4_argument_unpacking_done;
5949  __pyx_L5_argtuple_error:;
5950  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 14, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2533, __pyx_L3_error)
5951  __pyx_L3_error:;
5952  __Pyx_AddTraceback("cnumericalFlux.updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", __pyx_clineno, __pyx_lineno, __pyx_filename);
5953  __Pyx_RefNannyFinishContext();
5954  return NULL;
5955  __pyx_L4_argument_unpacking_done:;
5956  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2533, __pyx_L1_error)
5957  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2534, __pyx_L1_error)
5958  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2535, __pyx_L1_error)
5959  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2536, __pyx_L1_error)
5960  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 2537, __pyx_L1_error)
5961  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 2538, __pyx_L1_error)
5962  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 2539, __pyx_L1_error)
5963  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_V), __pyx_ptype_5numpy_ndarray, 1, "V", 0))) __PYX_ERR(0, 2540, __pyx_L1_error)
5964  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_DV), __pyx_ptype_5numpy_ndarray, 1, "DV", 0))) __PYX_ERR(0, 2541, __pyx_L1_error)
5965  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_DV_eb), __pyx_ptype_5numpy_ndarray, 1, "DV_eb", 0))) __PYX_ERR(0, 2542, __pyx_L1_error)
5966  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 2543, __pyx_L1_error)
5967  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 2544, __pyx_L1_error)
5968  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 2545, __pyx_L1_error)
5969  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_eb), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_eb", 0))) __PYX_ERR(0, 2546, __pyx_L1_error)
5970  __pyx_r = __pyx_pf_14cnumericalFlux_26updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_a, __pyx_v_da, __pyx_v_dphi, __pyx_v_V, __pyx_v_DV, __pyx_v_DV_eb, __pyx_v_v, __pyx_v_penalty, __pyx_v_fluxJacobian, __pyx_v_fluxJacobian_eb);
5971 
5972  /* function exit code */
5973  goto __pyx_L0;
5974  __pyx_L1_error:;
5975  __pyx_r = NULL;
5976  __pyx_L0:;
5977  __Pyx_RefNannyFinishContext();
5978  return __pyx_r;
5979 }
5980 
5981 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) {
5982  PyObject *__pyx_r = NULL;
5983  __Pyx_RefNannyDeclarations
5984  __Pyx_RefNannySetupContext("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 0);
5985 
5986  /* "cnumericalFlux.pyx":2548
5987  * np.ndarray fluxJacobian_eb
5988  * ):
5989  * cupdateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind(interiorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
5990  * v.shape[1],
5991  * v.shape[2],
5992  */
5993  updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind((__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_v->dimensions[1]), (__pyx_v_v->dimensions[2]), (__pyx_v_v->dimensions[3]), (__pyx_v_n->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_da->data), ((double *)__pyx_v_dphi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_DV->data), ((double *)__pyx_v_DV_eb->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_fluxJacobian->data), ((double *)__pyx_v_fluxJacobian_eb->data));
5994 
5995  /* "cnumericalFlux.pyx":2533
5996  * <double*> penalty.data,
5997  * <double*> flux.data)
5998  * def updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
5999  * np.ndarray elementBoundaryElements,
6000  * np.ndarray elementBoundaryLocalElementBoundaries,
6001  */
6002 
6003  /* function exit code */
6004  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6005  __Pyx_XGIVEREF(__pyx_r);
6006  __Pyx_RefNannyFinishContext();
6007  return __pyx_r;
6008 }
6009 
6010 /* "cnumericalFlux.pyx":2568
6011  * <double*> fluxJacobian_eb.data)
6012  *
6013  * def setInflowFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
6014  * np.ndarray inflowFlux,
6015  * np.ndarray flux):
6016  */
6017 
6018 /* Python wrapper */
6019 static PyObject *__pyx_pw_14cnumericalFlux_29setInflowFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6020 static PyMethodDef __pyx_mdef_14cnumericalFlux_29setInflowFlux = {"setInflowFlux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_29setInflowFlux, METH_VARARGS|METH_KEYWORDS, 0};
6021 static PyObject *__pyx_pw_14cnumericalFlux_29setInflowFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6022  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
6023  PyArrayObject *__pyx_v_inflowFlux = 0;
6024  PyArrayObject *__pyx_v_flux = 0;
6025  int __pyx_lineno = 0;
6026  const char *__pyx_filename = NULL;
6027  int __pyx_clineno = 0;
6028  PyObject *__pyx_r = 0;
6029  __Pyx_RefNannyDeclarations
6030  __Pyx_RefNannySetupContext("setInflowFlux (wrapper)", 0);
6031  {
6032  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_inflowFlux,&__pyx_n_s_flux,0};
6033  PyObject* values[3] = {0,0,0};
6034  if (unlikely(__pyx_kwds)) {
6035  Py_ssize_t kw_args;
6036  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
6037  switch (pos_args) {
6038  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6039  CYTHON_FALLTHROUGH;
6040  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6041  CYTHON_FALLTHROUGH;
6042  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6043  CYTHON_FALLTHROUGH;
6044  case 0: break;
6045  default: goto __pyx_L5_argtuple_error;
6046  }
6047  kw_args = PyDict_Size(__pyx_kwds);
6048  switch (pos_args) {
6049  case 0:
6050  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
6051  else goto __pyx_L5_argtuple_error;
6052  CYTHON_FALLTHROUGH;
6053  case 1:
6054  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlux)) != 0)) kw_args--;
6055  else {
6056  __Pyx_RaiseArgtupleInvalid("setInflowFlux", 1, 3, 3, 1); __PYX_ERR(0, 2568, __pyx_L3_error)
6057  }
6058  CYTHON_FALLTHROUGH;
6059  case 2:
6060  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
6061  else {
6062  __Pyx_RaiseArgtupleInvalid("setInflowFlux", 1, 3, 3, 2); __PYX_ERR(0, 2568, __pyx_L3_error)
6063  }
6064  }
6065  if (unlikely(kw_args > 0)) {
6066  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setInflowFlux") < 0)) __PYX_ERR(0, 2568, __pyx_L3_error)
6067  }
6068  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
6069  goto __pyx_L5_argtuple_error;
6070  } else {
6071  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6072  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6073  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6074  }
6075  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
6076  __pyx_v_inflowFlux = ((PyArrayObject *)values[1]);
6077  __pyx_v_flux = ((PyArrayObject *)values[2]);
6078  }
6079  goto __pyx_L4_argument_unpacking_done;
6080  __pyx_L5_argtuple_error:;
6081  __Pyx_RaiseArgtupleInvalid("setInflowFlux", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2568, __pyx_L3_error)
6082  __pyx_L3_error:;
6083  __Pyx_AddTraceback("cnumericalFlux.setInflowFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
6084  __Pyx_RefNannyFinishContext();
6085  return NULL;
6086  __pyx_L4_argument_unpacking_done:;
6087  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 2568, __pyx_L1_error)
6088  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlux), __pyx_ptype_5numpy_ndarray, 1, "inflowFlux", 0))) __PYX_ERR(0, 2569, __pyx_L1_error)
6089  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 2570, __pyx_L1_error)
6090  __pyx_r = __pyx_pf_14cnumericalFlux_28setInflowFlux(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_inflowFlux, __pyx_v_flux);
6091 
6092  /* function exit code */
6093  goto __pyx_L0;
6094  __pyx_L1_error:;
6095  __pyx_r = NULL;
6096  __pyx_L0:;
6097  __Pyx_RefNannyFinishContext();
6098  return __pyx_r;
6099 }
6100 
6101 static PyObject *__pyx_pf_14cnumericalFlux_28setInflowFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_inflowFlux, PyArrayObject *__pyx_v_flux) {
6102  PyObject *__pyx_r = NULL;
6103  __Pyx_RefNannyDeclarations
6104  __Pyx_RefNannySetupContext("setInflowFlux", 0);
6105 
6106  /* "cnumericalFlux.pyx":2571
6107  * np.ndarray inflowFlux,
6108  * np.ndarray flux):
6109  * csetInflowFlux( exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
6110  * flux.shape[1],
6111  * <int*> exteriorElementBoundaries.data,
6112  */
6113  setInflowFlux((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_flux->dimensions[1]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((double *)__pyx_v_inflowFlux->data), ((double *)__pyx_v_flux->data));
6114 
6115  /* "cnumericalFlux.pyx":2568
6116  * <double*> fluxJacobian_eb.data)
6117  *
6118  * def setInflowFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
6119  * np.ndarray inflowFlux,
6120  * np.ndarray flux):
6121  */
6122 
6123  /* function exit code */
6124  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6125  __Pyx_XGIVEREF(__pyx_r);
6126  __Pyx_RefNannyFinishContext();
6127  return __pyx_r;
6128 }
6129 
6130 /* "cnumericalFlux.pyx":2576
6131  * <double*> inflowFlux.data,
6132  * <double*> flux.data)
6133  * def updateInteriorTwoSidedNumericalFluxJacobian(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
6134  * np.ndarray elementBoundaryElements,
6135  * np.ndarray elementBoundaryLocalElementBoundaries,
6136  */
6137 
6138 /* Python wrapper */
6139 static PyObject *__pyx_pw_14cnumericalFlux_31updateInteriorTwoSidedNumericalFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6140 static PyMethodDef __pyx_mdef_14cnumericalFlux_31updateInteriorTwoSidedNumericalFluxJacobian = {"updateInteriorTwoSidedNumericalFluxJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_31updateInteriorTwoSidedNumericalFluxJacobian, METH_VARARGS|METH_KEYWORDS, 0};
6141 static PyObject *__pyx_pw_14cnumericalFlux_31updateInteriorTwoSidedNumericalFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6142  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
6143  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
6144  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
6145  PyArrayObject *__pyx_v_dflux_left = 0;
6146  PyArrayObject *__pyx_v_dflux_right = 0;
6147  PyArrayObject *__pyx_v_v = 0;
6148  PyArrayObject *__pyx_v_fluxJacobian_2sided = 0;
6149  int __pyx_lineno = 0;
6150  const char *__pyx_filename = NULL;
6151  int __pyx_clineno = 0;
6152  PyObject *__pyx_r = 0;
6153  __Pyx_RefNannyDeclarations
6154  __Pyx_RefNannySetupContext("updateInteriorTwoSidedNumericalFluxJacobian (wrapper)", 0);
6155  {
6156  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_2sided,0};
6157  PyObject* values[7] = {0,0,0,0,0,0,0};
6158  if (unlikely(__pyx_kwds)) {
6159  Py_ssize_t kw_args;
6160  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
6161  switch (pos_args) {
6162  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
6163  CYTHON_FALLTHROUGH;
6164  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
6165  CYTHON_FALLTHROUGH;
6166  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
6167  CYTHON_FALLTHROUGH;
6168  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
6169  CYTHON_FALLTHROUGH;
6170  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6171  CYTHON_FALLTHROUGH;
6172  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6173  CYTHON_FALLTHROUGH;
6174  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6175  CYTHON_FALLTHROUGH;
6176  case 0: break;
6177  default: goto __pyx_L5_argtuple_error;
6178  }
6179  kw_args = PyDict_Size(__pyx_kwds);
6180  switch (pos_args) {
6181  case 0:
6182  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
6183  else goto __pyx_L5_argtuple_error;
6184  CYTHON_FALLTHROUGH;
6185  case 1:
6186  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
6187  else {
6188  __Pyx_RaiseArgtupleInvalid("updateInteriorTwoSidedNumericalFluxJacobian", 1, 7, 7, 1); __PYX_ERR(0, 2576, __pyx_L3_error)
6189  }
6190  CYTHON_FALLTHROUGH;
6191  case 2:
6192  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
6193  else {
6194  __Pyx_RaiseArgtupleInvalid("updateInteriorTwoSidedNumericalFluxJacobian", 1, 7, 7, 2); __PYX_ERR(0, 2576, __pyx_L3_error)
6195  }
6196  CYTHON_FALLTHROUGH;
6197  case 3:
6198  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
6199  else {
6200  __Pyx_RaiseArgtupleInvalid("updateInteriorTwoSidedNumericalFluxJacobian", 1, 7, 7, 3); __PYX_ERR(0, 2576, __pyx_L3_error)
6201  }
6202  CYTHON_FALLTHROUGH;
6203  case 4:
6204  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_right)) != 0)) kw_args--;
6205  else {
6206  __Pyx_RaiseArgtupleInvalid("updateInteriorTwoSidedNumericalFluxJacobian", 1, 7, 7, 4); __PYX_ERR(0, 2576, __pyx_L3_error)
6207  }
6208  CYTHON_FALLTHROUGH;
6209  case 5:
6210  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
6211  else {
6212  __Pyx_RaiseArgtupleInvalid("updateInteriorTwoSidedNumericalFluxJacobian", 1, 7, 7, 5); __PYX_ERR(0, 2576, __pyx_L3_error)
6213  }
6214  CYTHON_FALLTHROUGH;
6215  case 6:
6216  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_2sided)) != 0)) kw_args--;
6217  else {
6218  __Pyx_RaiseArgtupleInvalid("updateInteriorTwoSidedNumericalFluxJacobian", 1, 7, 7, 6); __PYX_ERR(0, 2576, __pyx_L3_error)
6219  }
6220  }
6221  if (unlikely(kw_args > 0)) {
6222  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateInteriorTwoSidedNumericalFluxJacobian") < 0)) __PYX_ERR(0, 2576, __pyx_L3_error)
6223  }
6224  } else if (PyTuple_GET_SIZE(__pyx_args) != 7) {
6225  goto __pyx_L5_argtuple_error;
6226  } else {
6227  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6228  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6229  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6230  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
6231  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
6232  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
6233  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
6234  }
6235  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
6236  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
6237  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
6238  __pyx_v_dflux_left = ((PyArrayObject *)values[3]);
6239  __pyx_v_dflux_right = ((PyArrayObject *)values[4]);
6240  __pyx_v_v = ((PyArrayObject *)values[5]);
6241  __pyx_v_fluxJacobian_2sided = ((PyArrayObject *)values[6]);
6242  }
6243  goto __pyx_L4_argument_unpacking_done;
6244  __pyx_L5_argtuple_error:;
6245  __Pyx_RaiseArgtupleInvalid("updateInteriorTwoSidedNumericalFluxJacobian", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2576, __pyx_L3_error)
6246  __pyx_L3_error:;
6247  __Pyx_AddTraceback("cnumericalFlux.updateInteriorTwoSidedNumericalFluxJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename);
6248  __Pyx_RefNannyFinishContext();
6249  return NULL;
6250  __pyx_L4_argument_unpacking_done:;
6251  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2576, __pyx_L1_error)
6252  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2577, __pyx_L1_error)
6253  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2578, __pyx_L1_error)
6254  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 2579, __pyx_L1_error)
6255  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_right), __pyx_ptype_5numpy_ndarray, 1, "dflux_right", 0))) __PYX_ERR(0, 2580, __pyx_L1_error)
6256  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 2581, __pyx_L1_error)
6257  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_2sided), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_2sided", 0))) __PYX_ERR(0, 2582, __pyx_L1_error)
6258  __pyx_r = __pyx_pf_14cnumericalFlux_30updateInteriorTwoSidedNumericalFluxJacobian(__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_2sided);
6259 
6260  /* function exit code */
6261  goto __pyx_L0;
6262  __pyx_L1_error:;
6263  __pyx_r = NULL;
6264  __pyx_L0:;
6265  __Pyx_RefNannyFinishContext();
6266  return __pyx_r;
6267 }
6268 
6269 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) {
6270  PyObject *__pyx_r = NULL;
6271  __Pyx_RefNannyDeclarations
6272  __Pyx_RefNannySetupContext("updateInteriorTwoSidedNumericalFluxJacobian", 0);
6273 
6274  /* "cnumericalFlux.pyx":2583
6275  * np.ndarray v,
6276  * np.ndarray fluxJacobian_2sided):
6277  * cupdateInteriorTwoSidedNumericalFluxJacobian(interiorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
6278  * v.shape[1],
6279  * v.shape[2],
6280  */
6281  updateInteriorTwoSidedNumericalFluxJacobian((__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_2sided->data));
6282 
6283  /* "cnumericalFlux.pyx":2576
6284  * <double*> inflowFlux.data,
6285  * <double*> flux.data)
6286  * def updateInteriorTwoSidedNumericalFluxJacobian(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
6287  * np.ndarray elementBoundaryElements,
6288  * np.ndarray elementBoundaryLocalElementBoundaries,
6289  */
6290 
6291  /* function exit code */
6292  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6293  __Pyx_XGIVEREF(__pyx_r);
6294  __Pyx_RefNannyFinishContext();
6295  return __pyx_r;
6296 }
6297 
6298 /* "cnumericalFlux.pyx":2595
6299  * <double*> fluxJacobian_2sided.data)
6300  *
6301  * def calculateGlobalExteriorInflowNumericalAdvectiveFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
6302  * np.ndarray elementBoundaryElements,
6303  * np.ndarray elementBoundaryLocalElementBoundaries,
6304  */
6305 
6306 /* Python wrapper */
6307 static PyObject *__pyx_pw_14cnumericalFlux_33calculateGlobalExteriorInflowNumericalAdvectiveFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6308 static PyMethodDef __pyx_mdef_14cnumericalFlux_33calculateGlobalExteriorInflowNumericalAdvectiveFlux = {"calculateGlobalExteriorInflowNumericalAdvectiveFlux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_33calculateGlobalExteriorInflowNumericalAdvectiveFlux, METH_VARARGS|METH_KEYWORDS, 0};
6309 static PyObject *__pyx_pw_14cnumericalFlux_33calculateGlobalExteriorInflowNumericalAdvectiveFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6310  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
6311  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
6312  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
6313  PyArrayObject *__pyx_v_inflowFlag = 0;
6314  PyArrayObject *__pyx_v_inflowFlux = 0;
6315  PyArrayObject *__pyx_v_n = 0;
6316  PyArrayObject *__pyx_v_f = 0;
6317  PyArrayObject *__pyx_v_df = 0;
6318  PyArrayObject *__pyx_v_flux = 0;
6319  PyArrayObject *__pyx_v_dflux_left = 0;
6320  int __pyx_lineno = 0;
6321  const char *__pyx_filename = NULL;
6322  int __pyx_clineno = 0;
6323  PyObject *__pyx_r = 0;
6324  __Pyx_RefNannyDeclarations
6325  __Pyx_RefNannySetupContext("calculateGlobalExteriorInflowNumericalAdvectiveFlux (wrapper)", 0);
6326  {
6327  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_inflowFlag,&__pyx_n_s_inflowFlux,&__pyx_n_s_n,&__pyx_n_s_f,&__pyx_n_s_df,&__pyx_n_s_flux,&__pyx_n_s_dflux_left,0};
6328  PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
6329  if (unlikely(__pyx_kwds)) {
6330  Py_ssize_t kw_args;
6331  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
6332  switch (pos_args) {
6333  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
6334  CYTHON_FALLTHROUGH;
6335  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
6336  CYTHON_FALLTHROUGH;
6337  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
6338  CYTHON_FALLTHROUGH;
6339  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
6340  CYTHON_FALLTHROUGH;
6341  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
6342  CYTHON_FALLTHROUGH;
6343  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
6344  CYTHON_FALLTHROUGH;
6345  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
6346  CYTHON_FALLTHROUGH;
6347  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6348  CYTHON_FALLTHROUGH;
6349  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6350  CYTHON_FALLTHROUGH;
6351  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6352  CYTHON_FALLTHROUGH;
6353  case 0: break;
6354  default: goto __pyx_L5_argtuple_error;
6355  }
6356  kw_args = PyDict_Size(__pyx_kwds);
6357  switch (pos_args) {
6358  case 0:
6359  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
6360  else goto __pyx_L5_argtuple_error;
6361  CYTHON_FALLTHROUGH;
6362  case 1:
6363  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
6364  else {
6365  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorInflowNumericalAdvectiveFlux", 1, 10, 10, 1); __PYX_ERR(0, 2595, __pyx_L3_error)
6366  }
6367  CYTHON_FALLTHROUGH;
6368  case 2:
6369  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
6370  else {
6371  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorInflowNumericalAdvectiveFlux", 1, 10, 10, 2); __PYX_ERR(0, 2595, __pyx_L3_error)
6372  }
6373  CYTHON_FALLTHROUGH;
6374  case 3:
6375  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
6376  else {
6377  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorInflowNumericalAdvectiveFlux", 1, 10, 10, 3); __PYX_ERR(0, 2595, __pyx_L3_error)
6378  }
6379  CYTHON_FALLTHROUGH;
6380  case 4:
6381  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlux)) != 0)) kw_args--;
6382  else {
6383  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorInflowNumericalAdvectiveFlux", 1, 10, 10, 4); __PYX_ERR(0, 2595, __pyx_L3_error)
6384  }
6385  CYTHON_FALLTHROUGH;
6386  case 5:
6387  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
6388  else {
6389  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorInflowNumericalAdvectiveFlux", 1, 10, 10, 5); __PYX_ERR(0, 2595, __pyx_L3_error)
6390  }
6391  CYTHON_FALLTHROUGH;
6392  case 6:
6393  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
6394  else {
6395  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorInflowNumericalAdvectiveFlux", 1, 10, 10, 6); __PYX_ERR(0, 2595, __pyx_L3_error)
6396  }
6397  CYTHON_FALLTHROUGH;
6398  case 7:
6399  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
6400  else {
6401  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorInflowNumericalAdvectiveFlux", 1, 10, 10, 7); __PYX_ERR(0, 2595, __pyx_L3_error)
6402  }
6403  CYTHON_FALLTHROUGH;
6404  case 8:
6405  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
6406  else {
6407  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorInflowNumericalAdvectiveFlux", 1, 10, 10, 8); __PYX_ERR(0, 2595, __pyx_L3_error)
6408  }
6409  CYTHON_FALLTHROUGH;
6410  case 9:
6411  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
6412  else {
6413  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorInflowNumericalAdvectiveFlux", 1, 10, 10, 9); __PYX_ERR(0, 2595, __pyx_L3_error)
6414  }
6415  }
6416  if (unlikely(kw_args > 0)) {
6417  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorInflowNumericalAdvectiveFlux") < 0)) __PYX_ERR(0, 2595, __pyx_L3_error)
6418  }
6419  } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
6420  goto __pyx_L5_argtuple_error;
6421  } else {
6422  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6423  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6424  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6425  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
6426  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
6427  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
6428  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
6429  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
6430  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
6431  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
6432  }
6433  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
6434  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
6435  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
6436  __pyx_v_inflowFlag = ((PyArrayObject *)values[3]);
6437  __pyx_v_inflowFlux = ((PyArrayObject *)values[4]);
6438  __pyx_v_n = ((PyArrayObject *)values[5]);
6439  __pyx_v_f = ((PyArrayObject *)values[6]);
6440  __pyx_v_df = ((PyArrayObject *)values[7]);
6441  __pyx_v_flux = ((PyArrayObject *)values[8]);
6442  __pyx_v_dflux_left = ((PyArrayObject *)values[9]);
6443  }
6444  goto __pyx_L4_argument_unpacking_done;
6445  __pyx_L5_argtuple_error:;
6446  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorInflowNumericalAdvectiveFlux", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2595, __pyx_L3_error)
6447  __pyx_L3_error:;
6448  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorInflowNumericalAdvectiveFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
6449  __Pyx_RefNannyFinishContext();
6450  return NULL;
6451  __pyx_L4_argument_unpacking_done:;
6452  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 2595, __pyx_L1_error)
6453  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2596, __pyx_L1_error)
6454  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2597, __pyx_L1_error)
6455  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 2598, __pyx_L1_error)
6456  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlux), __pyx_ptype_5numpy_ndarray, 1, "inflowFlux", 0))) __PYX_ERR(0, 2599, __pyx_L1_error)
6457  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2600, __pyx_L1_error)
6458  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 2601, __pyx_L1_error)
6459  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 2602, __pyx_L1_error)
6460  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 2603, __pyx_L1_error)
6461  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 2604, __pyx_L1_error)
6462  __pyx_r = __pyx_pf_14cnumericalFlux_32calculateGlobalExteriorInflowNumericalAdvectiveFlux(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_inflowFlag, __pyx_v_inflowFlux, __pyx_v_n, __pyx_v_f, __pyx_v_df, __pyx_v_flux, __pyx_v_dflux_left);
6463 
6464  /* function exit code */
6465  goto __pyx_L0;
6466  __pyx_L1_error:;
6467  __pyx_r = NULL;
6468  __pyx_L0:;
6469  __Pyx_RefNannyFinishContext();
6470  return __pyx_r;
6471 }
6472 
6473 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) {
6474  PyObject *__pyx_r = NULL;
6475  __Pyx_RefNannyDeclarations
6476  __Pyx_RefNannySetupContext("calculateGlobalExteriorInflowNumericalAdvectiveFlux", 0);
6477 
6478  /* "cnumericalFlux.pyx":2605
6479  * np.ndarray flux,
6480  * np.ndarray dflux_left):
6481  * ccalculateGlobalExteriorInflowNumericalAdvectiveFlux(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
6482  * f.shape[1],
6483  * f.shape[2],
6484  */
6485  calculateGlobalExteriorInflowNumericalAdvectiveFlux((__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_inflowFlux->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));
6486 
6487  /* "cnumericalFlux.pyx":2595
6488  * <double*> fluxJacobian_2sided.data)
6489  *
6490  * def calculateGlobalExteriorInflowNumericalAdvectiveFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
6491  * np.ndarray elementBoundaryElements,
6492  * np.ndarray elementBoundaryLocalElementBoundaries,
6493  */
6494 
6495  /* function exit code */
6496  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6497  __Pyx_XGIVEREF(__pyx_r);
6498  __Pyx_RefNannyFinishContext();
6499  return __pyx_r;
6500 }
6501 
6502 /* "cnumericalFlux.pyx":2618
6503  * <double*> flux.data,
6504  * <double*> dflux_left.data)
6505  * def updateGlobalExteriorNumericalAdvectiveFluxJacobian(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
6506  * int nQuadraturePoints_elementBoundary,
6507  * int nDOF_trial_element,
6508  */
6509 
6510 /* Python wrapper */
6511 static PyObject *__pyx_pw_14cnumericalFlux_35updateGlobalExteriorNumericalAdvectiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6512 static PyMethodDef __pyx_mdef_14cnumericalFlux_35updateGlobalExteriorNumericalAdvectiveFluxJacobian = {"updateGlobalExteriorNumericalAdvectiveFluxJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_35updateGlobalExteriorNumericalAdvectiveFluxJacobian, METH_VARARGS|METH_KEYWORDS, 0};
6513 static PyObject *__pyx_pw_14cnumericalFlux_35updateGlobalExteriorNumericalAdvectiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6514  int __pyx_v_nExteriorElementBoundaries_global;
6515  int __pyx_v_nQuadraturePoints_elementBoundary;
6516  int __pyx_v_nDOF_trial_element;
6517  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
6518  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
6519  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
6520  PyArrayObject *__pyx_v_inflowFlag = 0;
6521  PyArrayObject *__pyx_v_dflux_left = 0;
6522  PyArrayObject *__pyx_v_v = 0;
6523  PyArrayObject *__pyx_v_fluxJacobian = 0;
6524  int __pyx_lineno = 0;
6525  const char *__pyx_filename = NULL;
6526  int __pyx_clineno = 0;
6527  PyObject *__pyx_r = 0;
6528  __Pyx_RefNannyDeclarations
6529  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalAdvectiveFluxJacobian (wrapper)", 0);
6530  {
6531  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nDOF_trial_element,&__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};
6532  PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
6533  if (unlikely(__pyx_kwds)) {
6534  Py_ssize_t kw_args;
6535  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
6536  switch (pos_args) {
6537  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
6538  CYTHON_FALLTHROUGH;
6539  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
6540  CYTHON_FALLTHROUGH;
6541  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
6542  CYTHON_FALLTHROUGH;
6543  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
6544  CYTHON_FALLTHROUGH;
6545  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
6546  CYTHON_FALLTHROUGH;
6547  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
6548  CYTHON_FALLTHROUGH;
6549  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
6550  CYTHON_FALLTHROUGH;
6551  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6552  CYTHON_FALLTHROUGH;
6553  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6554  CYTHON_FALLTHROUGH;
6555  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6556  CYTHON_FALLTHROUGH;
6557  case 0: break;
6558  default: goto __pyx_L5_argtuple_error;
6559  }
6560  kw_args = PyDict_Size(__pyx_kwds);
6561  switch (pos_args) {
6562  case 0:
6563  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
6564  else goto __pyx_L5_argtuple_error;
6565  CYTHON_FALLTHROUGH;
6566  case 1:
6567  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
6568  else {
6569  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian", 1, 10, 10, 1); __PYX_ERR(0, 2618, __pyx_L3_error)
6570  }
6571  CYTHON_FALLTHROUGH;
6572  case 2:
6573  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nDOF_trial_element)) != 0)) kw_args--;
6574  else {
6575  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian", 1, 10, 10, 2); __PYX_ERR(0, 2618, __pyx_L3_error)
6576  }
6577  CYTHON_FALLTHROUGH;
6578  case 3:
6579  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
6580  else {
6581  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian", 1, 10, 10, 3); __PYX_ERR(0, 2618, __pyx_L3_error)
6582  }
6583  CYTHON_FALLTHROUGH;
6584  case 4:
6585  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
6586  else {
6587  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian", 1, 10, 10, 4); __PYX_ERR(0, 2618, __pyx_L3_error)
6588  }
6589  CYTHON_FALLTHROUGH;
6590  case 5:
6591  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
6592  else {
6593  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian", 1, 10, 10, 5); __PYX_ERR(0, 2618, __pyx_L3_error)
6594  }
6595  CYTHON_FALLTHROUGH;
6596  case 6:
6597  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
6598  else {
6599  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian", 1, 10, 10, 6); __PYX_ERR(0, 2618, __pyx_L3_error)
6600  }
6601  CYTHON_FALLTHROUGH;
6602  case 7:
6603  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
6604  else {
6605  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian", 1, 10, 10, 7); __PYX_ERR(0, 2618, __pyx_L3_error)
6606  }
6607  CYTHON_FALLTHROUGH;
6608  case 8:
6609  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
6610  else {
6611  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian", 1, 10, 10, 8); __PYX_ERR(0, 2618, __pyx_L3_error)
6612  }
6613  CYTHON_FALLTHROUGH;
6614  case 9:
6615  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
6616  else {
6617  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian", 1, 10, 10, 9); __PYX_ERR(0, 2618, __pyx_L3_error)
6618  }
6619  }
6620  if (unlikely(kw_args > 0)) {
6621  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateGlobalExteriorNumericalAdvectiveFluxJacobian") < 0)) __PYX_ERR(0, 2618, __pyx_L3_error)
6622  }
6623  } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
6624  goto __pyx_L5_argtuple_error;
6625  } else {
6626  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6627  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6628  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6629  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
6630  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
6631  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
6632  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
6633  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
6634  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
6635  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
6636  }
6637  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2618, __pyx_L3_error)
6638  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2619, __pyx_L3_error)
6639  __pyx_v_nDOF_trial_element = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nDOF_trial_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2620, __pyx_L3_error)
6640  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
6641  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
6642  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
6643  __pyx_v_inflowFlag = ((PyArrayObject *)values[6]);
6644  __pyx_v_dflux_left = ((PyArrayObject *)values[7]);
6645  __pyx_v_v = ((PyArrayObject *)values[8]);
6646  __pyx_v_fluxJacobian = ((PyArrayObject *)values[9]);
6647  }
6648  goto __pyx_L4_argument_unpacking_done;
6649  __pyx_L5_argtuple_error:;
6650  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2618, __pyx_L3_error)
6651  __pyx_L3_error:;
6652  __Pyx_AddTraceback("cnumericalFlux.updateGlobalExteriorNumericalAdvectiveFluxJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename);
6653  __Pyx_RefNannyFinishContext();
6654  return NULL;
6655  __pyx_L4_argument_unpacking_done:;
6656  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 2621, __pyx_L1_error)
6657  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2622, __pyx_L1_error)
6658  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2623, __pyx_L1_error)
6659  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 2624, __pyx_L1_error)
6660  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 2625, __pyx_L1_error)
6661  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 2626, __pyx_L1_error)
6662  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 2627, __pyx_L1_error)
6663  __pyx_r = __pyx_pf_14cnumericalFlux_34updateGlobalExteriorNumericalAdvectiveFluxJacobian(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_inflowFlag, __pyx_v_dflux_left, __pyx_v_v, __pyx_v_fluxJacobian);
6664 
6665  /* function exit code */
6666  goto __pyx_L0;
6667  __pyx_L1_error:;
6668  __pyx_r = NULL;
6669  __pyx_L0:;
6670  __Pyx_RefNannyFinishContext();
6671  return __pyx_r;
6672 }
6673 
6674 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) {
6675  PyObject *__pyx_r = NULL;
6676  __Pyx_RefNannyDeclarations
6677  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalAdvectiveFluxJacobian", 0);
6678 
6679  /* "cnumericalFlux.pyx":2628
6680  * np.ndarray v,
6681  * np.ndarray fluxJacobian):
6682  * cupdateGlobalExteriorNumericalAdvectiveFluxJacobian( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
6683  * nQuadraturePoints_elementBoundary,
6684  * nDOF_trial_element,
6685  */
6686  updateGlobalExteriorNumericalAdvectiveFluxJacobian(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_inflowFlag->data), ((double *)__pyx_v_dflux_left->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_fluxJacobian->data));
6687 
6688  /* "cnumericalFlux.pyx":2618
6689  * <double*> flux.data,
6690  * <double*> dflux_left.data)
6691  * def updateGlobalExteriorNumericalAdvectiveFluxJacobian(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
6692  * int nQuadraturePoints_elementBoundary,
6693  * int nDOF_trial_element,
6694  */
6695 
6696  /* function exit code */
6697  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6698  __Pyx_XGIVEREF(__pyx_r);
6699  __Pyx_RefNannyFinishContext();
6700  return __pyx_r;
6701 }
6702 
6703 /* "cnumericalFlux.pyx":2638
6704  * <double*> v.data,
6705  * <double*> fluxJacobian.data)
6706  * def calculateInteriorChengShuNumericalFlux(int speedEvalFlag, # <<<<<<<<<<<<<<
6707  * np.ndarray interiorElementBoundaries,
6708  * np.ndarray elementBoundaryElements,
6709  */
6710 
6711 /* Python wrapper */
6712 static PyObject *__pyx_pw_14cnumericalFlux_37calculateInteriorChengShuNumericalFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6713 static PyMethodDef __pyx_mdef_14cnumericalFlux_37calculateInteriorChengShuNumericalFlux = {"calculateInteriorChengShuNumericalFlux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_37calculateInteriorChengShuNumericalFlux, METH_VARARGS|METH_KEYWORDS, 0};
6714 static PyObject *__pyx_pw_14cnumericalFlux_37calculateInteriorChengShuNumericalFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6715  int __pyx_v_speedEvalFlag;
6716  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
6717  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
6718  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
6719  PyArrayObject *__pyx_v_n = 0;
6720  PyArrayObject *__pyx_v_u = 0;
6721  PyArrayObject *__pyx_v_H = 0;
6722  PyArrayObject *__pyx_v_dH = 0;
6723  PyArrayObject *__pyx_v_H_element = 0;
6724  PyArrayObject *__pyx_v_dH_element = 0;
6725  PyArrayObject *__pyx_v_flux = 0;
6726  PyArrayObject *__pyx_v_dflux_left = 0;
6727  PyArrayObject *__pyx_v_dflux_right = 0;
6728  int __pyx_lineno = 0;
6729  const char *__pyx_filename = NULL;
6730  int __pyx_clineno = 0;
6731  PyObject *__pyx_r = 0;
6732  __Pyx_RefNannyDeclarations
6733  __Pyx_RefNannySetupContext("calculateInteriorChengShuNumericalFlux (wrapper)", 0);
6734  {
6735  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_H_element,&__pyx_n_s_dH_element,&__pyx_n_s_flux,&__pyx_n_s_dflux_left,&__pyx_n_s_dflux_right,0};
6736  PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
6737  if (unlikely(__pyx_kwds)) {
6738  Py_ssize_t kw_args;
6739  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
6740  switch (pos_args) {
6741  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
6742  CYTHON_FALLTHROUGH;
6743  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
6744  CYTHON_FALLTHROUGH;
6745  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
6746  CYTHON_FALLTHROUGH;
6747  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
6748  CYTHON_FALLTHROUGH;
6749  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
6750  CYTHON_FALLTHROUGH;
6751  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
6752  CYTHON_FALLTHROUGH;
6753  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
6754  CYTHON_FALLTHROUGH;
6755  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
6756  CYTHON_FALLTHROUGH;
6757  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
6758  CYTHON_FALLTHROUGH;
6759  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
6760  CYTHON_FALLTHROUGH;
6761  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6762  CYTHON_FALLTHROUGH;
6763  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6764  CYTHON_FALLTHROUGH;
6765  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6766  CYTHON_FALLTHROUGH;
6767  case 0: break;
6768  default: goto __pyx_L5_argtuple_error;
6769  }
6770  kw_args = PyDict_Size(__pyx_kwds);
6771  switch (pos_args) {
6772  case 0:
6773  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_speedEvalFlag)) != 0)) kw_args--;
6774  else goto __pyx_L5_argtuple_error;
6775  CYTHON_FALLTHROUGH;
6776  case 1:
6777  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
6778  else {
6779  __Pyx_RaiseArgtupleInvalid("calculateInteriorChengShuNumericalFlux", 1, 13, 13, 1); __PYX_ERR(0, 2638, __pyx_L3_error)
6780  }
6781  CYTHON_FALLTHROUGH;
6782  case 2:
6783  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
6784  else {
6785  __Pyx_RaiseArgtupleInvalid("calculateInteriorChengShuNumericalFlux", 1, 13, 13, 2); __PYX_ERR(0, 2638, __pyx_L3_error)
6786  }
6787  CYTHON_FALLTHROUGH;
6788  case 3:
6789  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
6790  else {
6791  __Pyx_RaiseArgtupleInvalid("calculateInteriorChengShuNumericalFlux", 1, 13, 13, 3); __PYX_ERR(0, 2638, __pyx_L3_error)
6792  }
6793  CYTHON_FALLTHROUGH;
6794  case 4:
6795  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
6796  else {
6797  __Pyx_RaiseArgtupleInvalid("calculateInteriorChengShuNumericalFlux", 1, 13, 13, 4); __PYX_ERR(0, 2638, __pyx_L3_error)
6798  }
6799  CYTHON_FALLTHROUGH;
6800  case 5:
6801  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
6802  else {
6803  __Pyx_RaiseArgtupleInvalid("calculateInteriorChengShuNumericalFlux", 1, 13, 13, 5); __PYX_ERR(0, 2638, __pyx_L3_error)
6804  }
6805  CYTHON_FALLTHROUGH;
6806  case 6:
6807  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_H)) != 0)) kw_args--;
6808  else {
6809  __Pyx_RaiseArgtupleInvalid("calculateInteriorChengShuNumericalFlux", 1, 13, 13, 6); __PYX_ERR(0, 2638, __pyx_L3_error)
6810  }
6811  CYTHON_FALLTHROUGH;
6812  case 7:
6813  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dH)) != 0)) kw_args--;
6814  else {
6815  __Pyx_RaiseArgtupleInvalid("calculateInteriorChengShuNumericalFlux", 1, 13, 13, 7); __PYX_ERR(0, 2638, __pyx_L3_error)
6816  }
6817  CYTHON_FALLTHROUGH;
6818  case 8:
6819  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_H_element)) != 0)) kw_args--;
6820  else {
6821  __Pyx_RaiseArgtupleInvalid("calculateInteriorChengShuNumericalFlux", 1, 13, 13, 8); __PYX_ERR(0, 2638, __pyx_L3_error)
6822  }
6823  CYTHON_FALLTHROUGH;
6824  case 9:
6825  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dH_element)) != 0)) kw_args--;
6826  else {
6827  __Pyx_RaiseArgtupleInvalid("calculateInteriorChengShuNumericalFlux", 1, 13, 13, 9); __PYX_ERR(0, 2638, __pyx_L3_error)
6828  }
6829  CYTHON_FALLTHROUGH;
6830  case 10:
6831  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
6832  else {
6833  __Pyx_RaiseArgtupleInvalid("calculateInteriorChengShuNumericalFlux", 1, 13, 13, 10); __PYX_ERR(0, 2638, __pyx_L3_error)
6834  }
6835  CYTHON_FALLTHROUGH;
6836  case 11:
6837  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
6838  else {
6839  __Pyx_RaiseArgtupleInvalid("calculateInteriorChengShuNumericalFlux", 1, 13, 13, 11); __PYX_ERR(0, 2638, __pyx_L3_error)
6840  }
6841  CYTHON_FALLTHROUGH;
6842  case 12:
6843  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_right)) != 0)) kw_args--;
6844  else {
6845  __Pyx_RaiseArgtupleInvalid("calculateInteriorChengShuNumericalFlux", 1, 13, 13, 12); __PYX_ERR(0, 2638, __pyx_L3_error)
6846  }
6847  }
6848  if (unlikely(kw_args > 0)) {
6849  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateInteriorChengShuNumericalFlux") < 0)) __PYX_ERR(0, 2638, __pyx_L3_error)
6850  }
6851  } else if (PyTuple_GET_SIZE(__pyx_args) != 13) {
6852  goto __pyx_L5_argtuple_error;
6853  } else {
6854  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6855  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6856  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6857  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
6858  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
6859  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
6860  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
6861  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
6862  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
6863  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
6864  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
6865  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
6866  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
6867  }
6868  __pyx_v_speedEvalFlag = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_speedEvalFlag == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2638, __pyx_L3_error)
6869  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[1]);
6870  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
6871  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
6872  __pyx_v_n = ((PyArrayObject *)values[4]);
6873  __pyx_v_u = ((PyArrayObject *)values[5]);
6874  __pyx_v_H = ((PyArrayObject *)values[6]);
6875  __pyx_v_dH = ((PyArrayObject *)values[7]);
6876  __pyx_v_H_element = ((PyArrayObject *)values[8]);
6877  __pyx_v_dH_element = ((PyArrayObject *)values[9]);
6878  __pyx_v_flux = ((PyArrayObject *)values[10]);
6879  __pyx_v_dflux_left = ((PyArrayObject *)values[11]);
6880  __pyx_v_dflux_right = ((PyArrayObject *)values[12]);
6881  }
6882  goto __pyx_L4_argument_unpacking_done;
6883  __pyx_L5_argtuple_error:;
6884  __Pyx_RaiseArgtupleInvalid("calculateInteriorChengShuNumericalFlux", 1, 13, 13, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2638, __pyx_L3_error)
6885  __pyx_L3_error:;
6886  __Pyx_AddTraceback("cnumericalFlux.calculateInteriorChengShuNumericalFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
6887  __Pyx_RefNannyFinishContext();
6888  return NULL;
6889  __pyx_L4_argument_unpacking_done:;
6890  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2639, __pyx_L1_error)
6891  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2640, __pyx_L1_error)
6892  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2641, __pyx_L1_error)
6893  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2642, __pyx_L1_error)
6894  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 2643, __pyx_L1_error)
6895  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_H), __pyx_ptype_5numpy_ndarray, 1, "H", 0))) __PYX_ERR(0, 2644, __pyx_L1_error)
6896  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dH), __pyx_ptype_5numpy_ndarray, 1, "dH", 0))) __PYX_ERR(0, 2645, __pyx_L1_error)
6897  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_H_element), __pyx_ptype_5numpy_ndarray, 1, "H_element", 0))) __PYX_ERR(0, 2646, __pyx_L1_error)
6898  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dH_element), __pyx_ptype_5numpy_ndarray, 1, "dH_element", 0))) __PYX_ERR(0, 2647, __pyx_L1_error)
6899  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 2648, __pyx_L1_error)
6900  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 2649, __pyx_L1_error)
6901  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_right), __pyx_ptype_5numpy_ndarray, 1, "dflux_right", 0))) __PYX_ERR(0, 2650, __pyx_L1_error)
6902  __pyx_r = __pyx_pf_14cnumericalFlux_36calculateInteriorChengShuNumericalFlux(__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_H_element, __pyx_v_dH_element, __pyx_v_flux, __pyx_v_dflux_left, __pyx_v_dflux_right);
6903 
6904  /* function exit code */
6905  goto __pyx_L0;
6906  __pyx_L1_error:;
6907  __pyx_r = NULL;
6908  __pyx_L0:;
6909  __Pyx_RefNannyFinishContext();
6910  return __pyx_r;
6911 }
6912 
6913 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) {
6914  PyObject *__pyx_r = NULL;
6915  __Pyx_RefNannyDeclarations
6916  __Pyx_RefNannySetupContext("calculateInteriorChengShuNumericalFlux", 0);
6917 
6918  /* "cnumericalFlux.pyx":2651
6919  * np.ndarray dflux_left,
6920  * np.ndarray dflux_right):
6921  * ccalculateInteriorChengShuNumericalFlux(interiorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
6922  * dH.shape[1],
6923  * dH.shape[2],
6924  */
6925  calculateInteriorChengShuNumericalFlux((__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_dH->dimensions[1]), (__pyx_v_dH->dimensions[2]), (__pyx_v_dH_element->dimensions[1]), (__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_H_element->data), ((double *)__pyx_v_dH_element->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_dflux_left->data), ((double *)__pyx_v_dflux_right->data));
6926 
6927  /* "cnumericalFlux.pyx":2638
6928  * <double*> v.data,
6929  * <double*> fluxJacobian.data)
6930  * def calculateInteriorChengShuNumericalFlux(int speedEvalFlag, # <<<<<<<<<<<<<<
6931  * np.ndarray interiorElementBoundaries,
6932  * np.ndarray elementBoundaryElements,
6933  */
6934 
6935  /* function exit code */
6936  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6937  __Pyx_XGIVEREF(__pyx_r);
6938  __Pyx_RefNannyFinishContext();
6939  return __pyx_r;
6940 }
6941 
6942 /* "cnumericalFlux.pyx":2669
6943  * <double*> dflux_left.data,
6944  * <double*> dflux_right.data)
6945  * def calculateGlobalExteriorNumericalFluxDarcyFCFF(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
6946  * np.ndarray elementBoundaryElements,
6947  * np.ndarray elementBoundaryLocalElementBoundaries,
6948  */
6949 
6950 /* Python wrapper */
6951 static PyObject *__pyx_pw_14cnumericalFlux_39calculateGlobalExteriorNumericalFluxDarcyFCFF(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6952 static PyMethodDef __pyx_mdef_14cnumericalFlux_39calculateGlobalExteriorNumericalFluxDarcyFCFF = {"calculateGlobalExteriorNumericalFluxDarcyFCFF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_39calculateGlobalExteriorNumericalFluxDarcyFCFF, METH_VARARGS|METH_KEYWORDS, 0};
6953 static PyObject *__pyx_pw_14cnumericalFlux_39calculateGlobalExteriorNumericalFluxDarcyFCFF(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6954  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
6955  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
6956  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
6957  PyArrayObject *__pyx_v_isDOFBoundary_uw = 0;
6958  PyArrayObject *__pyx_v_isDOFBoundary_um = 0;
6959  PyArrayObject *__pyx_v_n = 0;
6960  PyArrayObject *__pyx_v_bc_f_m = 0;
6961  PyArrayObject *__pyx_v_bc_a_wm = 0;
6962  PyArrayObject *__pyx_v_bc_a_mw = 0;
6963  PyArrayObject *__pyx_v_bc_a_mm = 0;
6964  PyArrayObject *__pyx_v_bc_grad_phi_w = 0;
6965  PyArrayObject *__pyx_v_bc_grad_phi_m = 0;
6966  PyArrayObject *__pyx_v_bc_u_w = 0;
6967  PyArrayObject *__pyx_v_bc_u_m = 0;
6968  PyArrayObject *__pyx_v_f_m = 0;
6969  PyArrayObject *__pyx_v_df_m_dw = 0;
6970  PyArrayObject *__pyx_v_a_wm = 0;
6971  PyArrayObject *__pyx_v_a_mw = 0;
6972  PyArrayObject *__pyx_v_a_mm = 0;
6973  PyArrayObject *__pyx_v_grad_phi_w = 0;
6974  PyArrayObject *__pyx_v_grad_phi_m = 0;
6975  PyArrayObject *__pyx_v_u_w = 0;
6976  PyArrayObject *__pyx_v_u_m = 0;
6977  PyArrayObject *__pyx_v_penalty_w = 0;
6978  PyArrayObject *__pyx_v_penalty_m = 0;
6979  PyArrayObject *__pyx_v_advectiveFlux_m = 0;
6980  PyArrayObject *__pyx_v_dadvectiveFlux_m_dw = 0;
6981  PyArrayObject *__pyx_v_diffusiveFlux_wm = 0;
6982  PyArrayObject *__pyx_v_diffusiveFlux_mw = 0;
6983  PyArrayObject *__pyx_v_diffusiveFlux_mm = 0;
6984  int __pyx_lineno = 0;
6985  const char *__pyx_filename = NULL;
6986  int __pyx_clineno = 0;
6987  PyObject *__pyx_r = 0;
6988  __Pyx_RefNannyDeclarations
6989  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCFF (wrapper)", 0);
6990  {
6991  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_uw,&__pyx_n_s_isDOFBoundary_um,&__pyx_n_s_n,&__pyx_n_s_bc_f_m,&__pyx_n_s_bc_a_wm,&__pyx_n_s_bc_a_mw,&__pyx_n_s_bc_a_mm,&__pyx_n_s_bc_grad_phi_w,&__pyx_n_s_bc_grad_phi_m,&__pyx_n_s_bc_u_w,&__pyx_n_s_bc_u_m,&__pyx_n_s_f_m,&__pyx_n_s_df_m_dw,&__pyx_n_s_a_wm,&__pyx_n_s_a_mw,&__pyx_n_s_a_mm,&__pyx_n_s_grad_phi_w,&__pyx_n_s_grad_phi_m,&__pyx_n_s_u_w,&__pyx_n_s_u_m,&__pyx_n_s_penalty_w,&__pyx_n_s_penalty_m,&__pyx_n_s_advectiveFlux_m,&__pyx_n_s_dadvectiveFlux_m_dw,&__pyx_n_s_diffusiveFlux_wm,&__pyx_n_s_diffusiveFlux_mw,&__pyx_n_s_diffusiveFlux_mm,0};
6992  PyObject* values[30] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
6993  if (unlikely(__pyx_kwds)) {
6994  Py_ssize_t kw_args;
6995  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
6996  switch (pos_args) {
6997  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
6998  CYTHON_FALLTHROUGH;
6999  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
7000  CYTHON_FALLTHROUGH;
7001  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
7002  CYTHON_FALLTHROUGH;
7003  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
7004  CYTHON_FALLTHROUGH;
7005  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
7006  CYTHON_FALLTHROUGH;
7007  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
7008  CYTHON_FALLTHROUGH;
7009  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
7010  CYTHON_FALLTHROUGH;
7011  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
7012  CYTHON_FALLTHROUGH;
7013  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
7014  CYTHON_FALLTHROUGH;
7015  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
7016  CYTHON_FALLTHROUGH;
7017  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
7018  CYTHON_FALLTHROUGH;
7019  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
7020  CYTHON_FALLTHROUGH;
7021  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
7022  CYTHON_FALLTHROUGH;
7023  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
7024  CYTHON_FALLTHROUGH;
7025  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
7026  CYTHON_FALLTHROUGH;
7027  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
7028  CYTHON_FALLTHROUGH;
7029  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
7030  CYTHON_FALLTHROUGH;
7031  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
7032  CYTHON_FALLTHROUGH;
7033  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
7034  CYTHON_FALLTHROUGH;
7035  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
7036  CYTHON_FALLTHROUGH;
7037  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
7038  CYTHON_FALLTHROUGH;
7039  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
7040  CYTHON_FALLTHROUGH;
7041  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
7042  CYTHON_FALLTHROUGH;
7043  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
7044  CYTHON_FALLTHROUGH;
7045  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
7046  CYTHON_FALLTHROUGH;
7047  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
7048  CYTHON_FALLTHROUGH;
7049  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
7050  CYTHON_FALLTHROUGH;
7051  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
7052  CYTHON_FALLTHROUGH;
7053  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
7054  CYTHON_FALLTHROUGH;
7055  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7056  CYTHON_FALLTHROUGH;
7057  case 0: break;
7058  default: goto __pyx_L5_argtuple_error;
7059  }
7060  kw_args = PyDict_Size(__pyx_kwds);
7061  switch (pos_args) {
7062  case 0:
7063  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
7064  else goto __pyx_L5_argtuple_error;
7065  CYTHON_FALLTHROUGH;
7066  case 1:
7067  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
7068  else {
7069  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 1); __PYX_ERR(0, 2669, __pyx_L3_error)
7070  }
7071  CYTHON_FALLTHROUGH;
7072  case 2:
7073  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
7074  else {
7075  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 2); __PYX_ERR(0, 2669, __pyx_L3_error)
7076  }
7077  CYTHON_FALLTHROUGH;
7078  case 3:
7079  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_uw)) != 0)) kw_args--;
7080  else {
7081  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 3); __PYX_ERR(0, 2669, __pyx_L3_error)
7082  }
7083  CYTHON_FALLTHROUGH;
7084  case 4:
7085  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_um)) != 0)) kw_args--;
7086  else {
7087  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 4); __PYX_ERR(0, 2669, __pyx_L3_error)
7088  }
7089  CYTHON_FALLTHROUGH;
7090  case 5:
7091  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
7092  else {
7093  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 5); __PYX_ERR(0, 2669, __pyx_L3_error)
7094  }
7095  CYTHON_FALLTHROUGH;
7096  case 6:
7097  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_m)) != 0)) kw_args--;
7098  else {
7099  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 6); __PYX_ERR(0, 2669, __pyx_L3_error)
7100  }
7101  CYTHON_FALLTHROUGH;
7102  case 7:
7103  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a_wm)) != 0)) kw_args--;
7104  else {
7105  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 7); __PYX_ERR(0, 2669, __pyx_L3_error)
7106  }
7107  CYTHON_FALLTHROUGH;
7108  case 8:
7109  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a_mw)) != 0)) kw_args--;
7110  else {
7111  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 8); __PYX_ERR(0, 2669, __pyx_L3_error)
7112  }
7113  CYTHON_FALLTHROUGH;
7114  case 9:
7115  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a_mm)) != 0)) kw_args--;
7116  else {
7117  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 9); __PYX_ERR(0, 2669, __pyx_L3_error)
7118  }
7119  CYTHON_FALLTHROUGH;
7120  case 10:
7121  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi_w)) != 0)) kw_args--;
7122  else {
7123  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 10); __PYX_ERR(0, 2669, __pyx_L3_error)
7124  }
7125  CYTHON_FALLTHROUGH;
7126  case 11:
7127  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi_m)) != 0)) kw_args--;
7128  else {
7129  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 11); __PYX_ERR(0, 2669, __pyx_L3_error)
7130  }
7131  CYTHON_FALLTHROUGH;
7132  case 12:
7133  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u_w)) != 0)) kw_args--;
7134  else {
7135  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 12); __PYX_ERR(0, 2669, __pyx_L3_error)
7136  }
7137  CYTHON_FALLTHROUGH;
7138  case 13:
7139  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u_m)) != 0)) kw_args--;
7140  else {
7141  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 13); __PYX_ERR(0, 2669, __pyx_L3_error)
7142  }
7143  CYTHON_FALLTHROUGH;
7144  case 14:
7145  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_m)) != 0)) kw_args--;
7146  else {
7147  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 14); __PYX_ERR(0, 2669, __pyx_L3_error)
7148  }
7149  CYTHON_FALLTHROUGH;
7150  case 15:
7151  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_m_dw)) != 0)) kw_args--;
7152  else {
7153  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 15); __PYX_ERR(0, 2669, __pyx_L3_error)
7154  }
7155  CYTHON_FALLTHROUGH;
7156  case 16:
7157  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_wm)) != 0)) kw_args--;
7158  else {
7159  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 16); __PYX_ERR(0, 2669, __pyx_L3_error)
7160  }
7161  CYTHON_FALLTHROUGH;
7162  case 17:
7163  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_mw)) != 0)) kw_args--;
7164  else {
7165  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 17); __PYX_ERR(0, 2669, __pyx_L3_error)
7166  }
7167  CYTHON_FALLTHROUGH;
7168  case 18:
7169  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_mm)) != 0)) kw_args--;
7170  else {
7171  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 18); __PYX_ERR(0, 2669, __pyx_L3_error)
7172  }
7173  CYTHON_FALLTHROUGH;
7174  case 19:
7175  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_w)) != 0)) kw_args--;
7176  else {
7177  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 19); __PYX_ERR(0, 2669, __pyx_L3_error)
7178  }
7179  CYTHON_FALLTHROUGH;
7180  case 20:
7181  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_m)) != 0)) kw_args--;
7182  else {
7183  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 20); __PYX_ERR(0, 2669, __pyx_L3_error)
7184  }
7185  CYTHON_FALLTHROUGH;
7186  case 21:
7187  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u_w)) != 0)) kw_args--;
7188  else {
7189  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 21); __PYX_ERR(0, 2669, __pyx_L3_error)
7190  }
7191  CYTHON_FALLTHROUGH;
7192  case 22:
7193  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u_m)) != 0)) kw_args--;
7194  else {
7195  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 22); __PYX_ERR(0, 2669, __pyx_L3_error)
7196  }
7197  CYTHON_FALLTHROUGH;
7198  case 23:
7199  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_w)) != 0)) kw_args--;
7200  else {
7201  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 23); __PYX_ERR(0, 2669, __pyx_L3_error)
7202  }
7203  CYTHON_FALLTHROUGH;
7204  case 24:
7205  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_m)) != 0)) kw_args--;
7206  else {
7207  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 24); __PYX_ERR(0, 2669, __pyx_L3_error)
7208  }
7209  CYTHON_FALLTHROUGH;
7210  case 25:
7211  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_advectiveFlux_m)) != 0)) kw_args--;
7212  else {
7213  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 25); __PYX_ERR(0, 2669, __pyx_L3_error)
7214  }
7215  CYTHON_FALLTHROUGH;
7216  case 26:
7217  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dadvectiveFlux_m_dw)) != 0)) kw_args--;
7218  else {
7219  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 26); __PYX_ERR(0, 2669, __pyx_L3_error)
7220  }
7221  CYTHON_FALLTHROUGH;
7222  case 27:
7223  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux_wm)) != 0)) kw_args--;
7224  else {
7225  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 27); __PYX_ERR(0, 2669, __pyx_L3_error)
7226  }
7227  CYTHON_FALLTHROUGH;
7228  case 28:
7229  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux_mw)) != 0)) kw_args--;
7230  else {
7231  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 28); __PYX_ERR(0, 2669, __pyx_L3_error)
7232  }
7233  CYTHON_FALLTHROUGH;
7234  case 29:
7235  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux_mm)) != 0)) kw_args--;
7236  else {
7237  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, 29); __PYX_ERR(0, 2669, __pyx_L3_error)
7238  }
7239  }
7240  if (unlikely(kw_args > 0)) {
7241  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalFluxDarcyFCFF") < 0)) __PYX_ERR(0, 2669, __pyx_L3_error)
7242  }
7243  } else if (PyTuple_GET_SIZE(__pyx_args) != 30) {
7244  goto __pyx_L5_argtuple_error;
7245  } else {
7246  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7247  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
7248  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
7249  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
7250  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
7251  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
7252  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
7253  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
7254  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
7255  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
7256  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
7257  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
7258  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
7259  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
7260  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
7261  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
7262  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
7263  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
7264  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
7265  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
7266  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
7267  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
7268  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
7269  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
7270  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
7271  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
7272  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
7273  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
7274  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
7275  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
7276  }
7277  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
7278  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
7279  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
7280  __pyx_v_isDOFBoundary_uw = ((PyArrayObject *)values[3]);
7281  __pyx_v_isDOFBoundary_um = ((PyArrayObject *)values[4]);
7282  __pyx_v_n = ((PyArrayObject *)values[5]);
7283  __pyx_v_bc_f_m = ((PyArrayObject *)values[6]);
7284  __pyx_v_bc_a_wm = ((PyArrayObject *)values[7]);
7285  __pyx_v_bc_a_mw = ((PyArrayObject *)values[8]);
7286  __pyx_v_bc_a_mm = ((PyArrayObject *)values[9]);
7287  __pyx_v_bc_grad_phi_w = ((PyArrayObject *)values[10]);
7288  __pyx_v_bc_grad_phi_m = ((PyArrayObject *)values[11]);
7289  __pyx_v_bc_u_w = ((PyArrayObject *)values[12]);
7290  __pyx_v_bc_u_m = ((PyArrayObject *)values[13]);
7291  __pyx_v_f_m = ((PyArrayObject *)values[14]);
7292  __pyx_v_df_m_dw = ((PyArrayObject *)values[15]);
7293  __pyx_v_a_wm = ((PyArrayObject *)values[16]);
7294  __pyx_v_a_mw = ((PyArrayObject *)values[17]);
7295  __pyx_v_a_mm = ((PyArrayObject *)values[18]);
7296  __pyx_v_grad_phi_w = ((PyArrayObject *)values[19]);
7297  __pyx_v_grad_phi_m = ((PyArrayObject *)values[20]);
7298  __pyx_v_u_w = ((PyArrayObject *)values[21]);
7299  __pyx_v_u_m = ((PyArrayObject *)values[22]);
7300  __pyx_v_penalty_w = ((PyArrayObject *)values[23]);
7301  __pyx_v_penalty_m = ((PyArrayObject *)values[24]);
7302  __pyx_v_advectiveFlux_m = ((PyArrayObject *)values[25]);
7303  __pyx_v_dadvectiveFlux_m_dw = ((PyArrayObject *)values[26]);
7304  __pyx_v_diffusiveFlux_wm = ((PyArrayObject *)values[27]);
7305  __pyx_v_diffusiveFlux_mw = ((PyArrayObject *)values[28]);
7306  __pyx_v_diffusiveFlux_mm = ((PyArrayObject *)values[29]);
7307  }
7308  goto __pyx_L4_argument_unpacking_done;
7309  __pyx_L5_argtuple_error:;
7310  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF", 1, 30, 30, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2669, __pyx_L3_error)
7311  __pyx_L3_error:;
7312  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcyFCFF", __pyx_clineno, __pyx_lineno, __pyx_filename);
7313  __Pyx_RefNannyFinishContext();
7314  return NULL;
7315  __pyx_L4_argument_unpacking_done:;
7316  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 2669, __pyx_L1_error)
7317  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2670, __pyx_L1_error)
7318  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2671, __pyx_L1_error)
7319  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_uw), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_uw", 0))) __PYX_ERR(0, 2672, __pyx_L1_error)
7320  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_um), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_um", 0))) __PYX_ERR(0, 2673, __pyx_L1_error)
7321  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2674, __pyx_L1_error)
7322  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_m), __pyx_ptype_5numpy_ndarray, 1, "bc_f_m", 0))) __PYX_ERR(0, 2675, __pyx_L1_error)
7323  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a_wm), __pyx_ptype_5numpy_ndarray, 1, "bc_a_wm", 0))) __PYX_ERR(0, 2676, __pyx_L1_error)
7324  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a_mw), __pyx_ptype_5numpy_ndarray, 1, "bc_a_mw", 0))) __PYX_ERR(0, 2677, __pyx_L1_error)
7325  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a_mm), __pyx_ptype_5numpy_ndarray, 1, "bc_a_mm", 0))) __PYX_ERR(0, 2678, __pyx_L1_error)
7326  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi_w", 0))) __PYX_ERR(0, 2679, __pyx_L1_error)
7327  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi_m), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi_m", 0))) __PYX_ERR(0, 2680, __pyx_L1_error)
7328  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u_w), __pyx_ptype_5numpy_ndarray, 1, "bc_u_w", 0))) __PYX_ERR(0, 2681, __pyx_L1_error)
7329  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u_m), __pyx_ptype_5numpy_ndarray, 1, "bc_u_m", 0))) __PYX_ERR(0, 2682, __pyx_L1_error)
7330  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_m), __pyx_ptype_5numpy_ndarray, 1, "f_m", 0))) __PYX_ERR(0, 2683, __pyx_L1_error)
7331  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_m_dw), __pyx_ptype_5numpy_ndarray, 1, "df_m_dw", 0))) __PYX_ERR(0, 2684, __pyx_L1_error)
7332  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_wm), __pyx_ptype_5numpy_ndarray, 1, "a_wm", 0))) __PYX_ERR(0, 2685, __pyx_L1_error)
7333  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_mw), __pyx_ptype_5numpy_ndarray, 1, "a_mw", 0))) __PYX_ERR(0, 2686, __pyx_L1_error)
7334  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_mm), __pyx_ptype_5numpy_ndarray, 1, "a_mm", 0))) __PYX_ERR(0, 2687, __pyx_L1_error)
7335  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_w", 0))) __PYX_ERR(0, 2688, __pyx_L1_error)
7336  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_m), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_m", 0))) __PYX_ERR(0, 2689, __pyx_L1_error)
7337  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u_w), __pyx_ptype_5numpy_ndarray, 1, "u_w", 0))) __PYX_ERR(0, 2690, __pyx_L1_error)
7338  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u_m), __pyx_ptype_5numpy_ndarray, 1, "u_m", 0))) __PYX_ERR(0, 2691, __pyx_L1_error)
7339  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_w), __pyx_ptype_5numpy_ndarray, 1, "penalty_w", 0))) __PYX_ERR(0, 2692, __pyx_L1_error)
7340  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_m), __pyx_ptype_5numpy_ndarray, 1, "penalty_m", 0))) __PYX_ERR(0, 2693, __pyx_L1_error)
7341  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_advectiveFlux_m), __pyx_ptype_5numpy_ndarray, 1, "advectiveFlux_m", 0))) __PYX_ERR(0, 2694, __pyx_L1_error)
7342  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dadvectiveFlux_m_dw), __pyx_ptype_5numpy_ndarray, 1, "dadvectiveFlux_m_dw", 0))) __PYX_ERR(0, 2695, __pyx_L1_error)
7343  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux_wm), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux_wm", 0))) __PYX_ERR(0, 2696, __pyx_L1_error)
7344  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux_mw), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux_mw", 0))) __PYX_ERR(0, 2697, __pyx_L1_error)
7345  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux_mm), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux_mm", 0))) __PYX_ERR(0, 2698, __pyx_L1_error)
7346  __pyx_r = __pyx_pf_14cnumericalFlux_38calculateGlobalExteriorNumericalFluxDarcyFCFF(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_uw, __pyx_v_isDOFBoundary_um, __pyx_v_n, __pyx_v_bc_f_m, __pyx_v_bc_a_wm, __pyx_v_bc_a_mw, __pyx_v_bc_a_mm, __pyx_v_bc_grad_phi_w, __pyx_v_bc_grad_phi_m, __pyx_v_bc_u_w, __pyx_v_bc_u_m, __pyx_v_f_m, __pyx_v_df_m_dw, __pyx_v_a_wm, __pyx_v_a_mw, __pyx_v_a_mm, __pyx_v_grad_phi_w, __pyx_v_grad_phi_m, __pyx_v_u_w, __pyx_v_u_m, __pyx_v_penalty_w, __pyx_v_penalty_m, __pyx_v_advectiveFlux_m, __pyx_v_dadvectiveFlux_m_dw, __pyx_v_diffusiveFlux_wm, __pyx_v_diffusiveFlux_mw, __pyx_v_diffusiveFlux_mm);
7347 
7348  /* function exit code */
7349  goto __pyx_L0;
7350  __pyx_L1_error:;
7351  __pyx_r = NULL;
7352  __pyx_L0:;
7353  __Pyx_RefNannyFinishContext();
7354  return __pyx_r;
7355 }
7356 
7357 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) {
7358  PyObject *__pyx_r = NULL;
7359  __Pyx_RefNannyDeclarations
7360  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCFF", 0);
7361 
7362  /* "cnumericalFlux.pyx":2699
7363  * np.ndarray diffusiveFlux_mw,
7364  * np.ndarray diffusiveFlux_mm):
7365  * ccalculateGlobalExteriorNumericalFluxDarcyFCFF(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
7366  * n.shape[1],
7367  * n.shape[2],
7368  */
7369  calculateGlobalExteriorNumericalFluxDarcyFCFF((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_uw->data), ((int *)__pyx_v_isDOFBoundary_um->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_f_m->data), ((double *)__pyx_v_bc_a_wm->data), ((double *)__pyx_v_bc_a_mw->data), ((double *)__pyx_v_bc_a_mm->data), ((double *)__pyx_v_bc_grad_phi_w->data), ((double *)__pyx_v_bc_grad_phi_m->data), ((double *)__pyx_v_bc_u_w->data), ((double *)__pyx_v_bc_u_m->data), ((double *)__pyx_v_f_m->data), ((double *)__pyx_v_df_m_dw->data), ((double *)__pyx_v_a_wm->data), ((double *)__pyx_v_a_mw->data), ((double *)__pyx_v_a_mm->data), ((double *)__pyx_v_grad_phi_w->data), ((double *)__pyx_v_grad_phi_m->data), ((double *)__pyx_v_u_w->data), ((double *)__pyx_v_u_m->data), ((double *)__pyx_v_penalty_w->data), ((double *)__pyx_v_penalty_m->data), ((double *)__pyx_v_advectiveFlux_m->data), ((double *)__pyx_v_dadvectiveFlux_m_dw->data), ((double *)__pyx_v_diffusiveFlux_wm->data), ((double *)__pyx_v_diffusiveFlux_mw->data), ((double *)__pyx_v_diffusiveFlux_mm->data));
7370 
7371  /* "cnumericalFlux.pyx":2669
7372  * <double*> dflux_left.data,
7373  * <double*> dflux_right.data)
7374  * def calculateGlobalExteriorNumericalFluxDarcyFCFF(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
7375  * np.ndarray elementBoundaryElements,
7376  * np.ndarray elementBoundaryLocalElementBoundaries,
7377  */
7378 
7379  /* function exit code */
7380  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7381  __Pyx_XGIVEREF(__pyx_r);
7382  __Pyx_RefNannyFinishContext();
7383  return __pyx_r;
7384 }
7385 
7386 /* "cnumericalFlux.pyx":2732
7387  * <double*> diffusiveFlux_mw.data,
7388  * <double*> diffusiveFlux_mm.data)
7389  * def calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
7390  * np.ndarray exteriorElementBoundaries,
7391  * np.ndarray elementBoundaryElements,
7392  */
7393 
7394 /* Python wrapper */
7395 static PyObject *__pyx_pw_14cnumericalFlux_41calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
7396 static PyMethodDef __pyx_mdef_14cnumericalFlux_41calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian = {"calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_41calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian, METH_VARARGS|METH_KEYWORDS, 0};
7397 static PyObject *__pyx_pw_14cnumericalFlux_41calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
7398  PyArrayObject *__pyx_v_l2g = 0;
7399  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
7400  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
7401  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
7402  PyArrayObject *__pyx_v_isDOFBoundary_uw = 0;
7403  PyArrayObject *__pyx_v_isDOFBoundary_um = 0;
7404  PyArrayObject *__pyx_v_n = 0;
7405  PyArrayObject *__pyx_v_f_m = 0;
7406  PyArrayObject *__pyx_v_df_m_dw = 0;
7407  PyArrayObject *__pyx_v_a_wm = 0;
7408  PyArrayObject *__pyx_v_da_wm_dw = 0;
7409  PyArrayObject *__pyx_v_da_wm_dm = 0;
7410  PyArrayObject *__pyx_v_a_mw = 0;
7411  PyArrayObject *__pyx_v_da_mw_dw = 0;
7412  PyArrayObject *__pyx_v_da_mw_dm = 0;
7413  PyArrayObject *__pyx_v_a_mm = 0;
7414  PyArrayObject *__pyx_v_da_mm_dw = 0;
7415  PyArrayObject *__pyx_v_da_mm_dm = 0;
7416  PyArrayObject *__pyx_v_grad_phi_w = 0;
7417  PyArrayObject *__pyx_v_grad_phi_m = 0;
7418  PyArrayObject *__pyx_v_dphi_w_w = 0;
7419  PyArrayObject *__pyx_v_dphi_w_m = 0;
7420  PyArrayObject *__pyx_v_dphi_m_w = 0;
7421  PyArrayObject *__pyx_v_dphi_m_m = 0;
7422  PyArrayObject *__pyx_v_u_w = 0;
7423  PyArrayObject *__pyx_v_u_m = 0;
7424  PyArrayObject *__pyx_v_v = 0;
7425  PyArrayObject *__pyx_v_grad_v = 0;
7426  PyArrayObject *__pyx_v_penalty_w = 0;
7427  PyArrayObject *__pyx_v_penalty_m = 0;
7428  PyArrayObject *__pyx_v_fluxJacobian_ww = 0;
7429  PyArrayObject *__pyx_v_fluxJacobian_wm = 0;
7430  PyArrayObject *__pyx_v_fluxJacobian_mw = 0;
7431  PyArrayObject *__pyx_v_fluxJacobian_mm = 0;
7432  int __pyx_lineno = 0;
7433  const char *__pyx_filename = NULL;
7434  int __pyx_clineno = 0;
7435  PyObject *__pyx_r = 0;
7436  __Pyx_RefNannyDeclarations
7437  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian (wrapper)", 0);
7438  {
7439  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_uw,&__pyx_n_s_isDOFBoundary_um,&__pyx_n_s_n,&__pyx_n_s_f_m,&__pyx_n_s_df_m_dw,&__pyx_n_s_a_wm,&__pyx_n_s_da_wm_dw,&__pyx_n_s_da_wm_dm,&__pyx_n_s_a_mw,&__pyx_n_s_da_mw_dw,&__pyx_n_s_da_mw_dm,&__pyx_n_s_a_mm,&__pyx_n_s_da_mm_dw,&__pyx_n_s_da_mm_dm,&__pyx_n_s_grad_phi_w,&__pyx_n_s_grad_phi_m,&__pyx_n_s_dphi_w_w,&__pyx_n_s_dphi_w_m,&__pyx_n_s_dphi_m_w,&__pyx_n_s_dphi_m_m,&__pyx_n_s_u_w,&__pyx_n_s_u_m,&__pyx_n_s_v,&__pyx_n_s_grad_v,&__pyx_n_s_penalty_w,&__pyx_n_s_penalty_m,&__pyx_n_s_fluxJacobian_ww,&__pyx_n_s_fluxJacobian_wm,&__pyx_n_s_fluxJacobian_mw,&__pyx_n_s_fluxJacobian_mm,0};
7440  PyObject* values[34] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
7441  if (unlikely(__pyx_kwds)) {
7442  Py_ssize_t kw_args;
7443  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
7444  switch (pos_args) {
7445  case 34: values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
7446  CYTHON_FALLTHROUGH;
7447  case 33: values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
7448  CYTHON_FALLTHROUGH;
7449  case 32: values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
7450  CYTHON_FALLTHROUGH;
7451  case 31: values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
7452  CYTHON_FALLTHROUGH;
7453  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
7454  CYTHON_FALLTHROUGH;
7455  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
7456  CYTHON_FALLTHROUGH;
7457  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
7458  CYTHON_FALLTHROUGH;
7459  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
7460  CYTHON_FALLTHROUGH;
7461  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
7462  CYTHON_FALLTHROUGH;
7463  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
7464  CYTHON_FALLTHROUGH;
7465  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
7466  CYTHON_FALLTHROUGH;
7467  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
7468  CYTHON_FALLTHROUGH;
7469  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
7470  CYTHON_FALLTHROUGH;
7471  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
7472  CYTHON_FALLTHROUGH;
7473  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
7474  CYTHON_FALLTHROUGH;
7475  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
7476  CYTHON_FALLTHROUGH;
7477  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
7478  CYTHON_FALLTHROUGH;
7479  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
7480  CYTHON_FALLTHROUGH;
7481  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
7482  CYTHON_FALLTHROUGH;
7483  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
7484  CYTHON_FALLTHROUGH;
7485  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
7486  CYTHON_FALLTHROUGH;
7487  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
7488  CYTHON_FALLTHROUGH;
7489  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
7490  CYTHON_FALLTHROUGH;
7491  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
7492  CYTHON_FALLTHROUGH;
7493  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
7494  CYTHON_FALLTHROUGH;
7495  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
7496  CYTHON_FALLTHROUGH;
7497  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
7498  CYTHON_FALLTHROUGH;
7499  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
7500  CYTHON_FALLTHROUGH;
7501  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
7502  CYTHON_FALLTHROUGH;
7503  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
7504  CYTHON_FALLTHROUGH;
7505  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
7506  CYTHON_FALLTHROUGH;
7507  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
7508  CYTHON_FALLTHROUGH;
7509  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
7510  CYTHON_FALLTHROUGH;
7511  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7512  CYTHON_FALLTHROUGH;
7513  case 0: break;
7514  default: goto __pyx_L5_argtuple_error;
7515  }
7516  kw_args = PyDict_Size(__pyx_kwds);
7517  switch (pos_args) {
7518  case 0:
7519  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
7520  else goto __pyx_L5_argtuple_error;
7521  CYTHON_FALLTHROUGH;
7522  case 1:
7523  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
7524  else {
7525  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 1); __PYX_ERR(0, 2732, __pyx_L3_error)
7526  }
7527  CYTHON_FALLTHROUGH;
7528  case 2:
7529  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
7530  else {
7531  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 2); __PYX_ERR(0, 2732, __pyx_L3_error)
7532  }
7533  CYTHON_FALLTHROUGH;
7534  case 3:
7535  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
7536  else {
7537  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 3); __PYX_ERR(0, 2732, __pyx_L3_error)
7538  }
7539  CYTHON_FALLTHROUGH;
7540  case 4:
7541  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_uw)) != 0)) kw_args--;
7542  else {
7543  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 4); __PYX_ERR(0, 2732, __pyx_L3_error)
7544  }
7545  CYTHON_FALLTHROUGH;
7546  case 5:
7547  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_um)) != 0)) kw_args--;
7548  else {
7549  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 5); __PYX_ERR(0, 2732, __pyx_L3_error)
7550  }
7551  CYTHON_FALLTHROUGH;
7552  case 6:
7553  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
7554  else {
7555  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 6); __PYX_ERR(0, 2732, __pyx_L3_error)
7556  }
7557  CYTHON_FALLTHROUGH;
7558  case 7:
7559  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_m)) != 0)) kw_args--;
7560  else {
7561  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 7); __PYX_ERR(0, 2732, __pyx_L3_error)
7562  }
7563  CYTHON_FALLTHROUGH;
7564  case 8:
7565  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_m_dw)) != 0)) kw_args--;
7566  else {
7567  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 8); __PYX_ERR(0, 2732, __pyx_L3_error)
7568  }
7569  CYTHON_FALLTHROUGH;
7570  case 9:
7571  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_wm)) != 0)) kw_args--;
7572  else {
7573  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 9); __PYX_ERR(0, 2732, __pyx_L3_error)
7574  }
7575  CYTHON_FALLTHROUGH;
7576  case 10:
7577  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_wm_dw)) != 0)) kw_args--;
7578  else {
7579  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 10); __PYX_ERR(0, 2732, __pyx_L3_error)
7580  }
7581  CYTHON_FALLTHROUGH;
7582  case 11:
7583  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_wm_dm)) != 0)) kw_args--;
7584  else {
7585  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 11); __PYX_ERR(0, 2732, __pyx_L3_error)
7586  }
7587  CYTHON_FALLTHROUGH;
7588  case 12:
7589  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_mw)) != 0)) kw_args--;
7590  else {
7591  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 12); __PYX_ERR(0, 2732, __pyx_L3_error)
7592  }
7593  CYTHON_FALLTHROUGH;
7594  case 13:
7595  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_mw_dw)) != 0)) kw_args--;
7596  else {
7597  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 13); __PYX_ERR(0, 2732, __pyx_L3_error)
7598  }
7599  CYTHON_FALLTHROUGH;
7600  case 14:
7601  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_mw_dm)) != 0)) kw_args--;
7602  else {
7603  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 14); __PYX_ERR(0, 2732, __pyx_L3_error)
7604  }
7605  CYTHON_FALLTHROUGH;
7606  case 15:
7607  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_mm)) != 0)) kw_args--;
7608  else {
7609  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 15); __PYX_ERR(0, 2732, __pyx_L3_error)
7610  }
7611  CYTHON_FALLTHROUGH;
7612  case 16:
7613  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_mm_dw)) != 0)) kw_args--;
7614  else {
7615  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 16); __PYX_ERR(0, 2732, __pyx_L3_error)
7616  }
7617  CYTHON_FALLTHROUGH;
7618  case 17:
7619  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_mm_dm)) != 0)) kw_args--;
7620  else {
7621  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 17); __PYX_ERR(0, 2732, __pyx_L3_error)
7622  }
7623  CYTHON_FALLTHROUGH;
7624  case 18:
7625  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_w)) != 0)) kw_args--;
7626  else {
7627  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 18); __PYX_ERR(0, 2732, __pyx_L3_error)
7628  }
7629  CYTHON_FALLTHROUGH;
7630  case 19:
7631  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_m)) != 0)) kw_args--;
7632  else {
7633  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 19); __PYX_ERR(0, 2732, __pyx_L3_error)
7634  }
7635  CYTHON_FALLTHROUGH;
7636  case 20:
7637  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_w_w)) != 0)) kw_args--;
7638  else {
7639  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 20); __PYX_ERR(0, 2732, __pyx_L3_error)
7640  }
7641  CYTHON_FALLTHROUGH;
7642  case 21:
7643  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_w_m)) != 0)) kw_args--;
7644  else {
7645  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 21); __PYX_ERR(0, 2732, __pyx_L3_error)
7646  }
7647  CYTHON_FALLTHROUGH;
7648  case 22:
7649  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_m_w)) != 0)) kw_args--;
7650  else {
7651  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 22); __PYX_ERR(0, 2732, __pyx_L3_error)
7652  }
7653  CYTHON_FALLTHROUGH;
7654  case 23:
7655  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_m_m)) != 0)) kw_args--;
7656  else {
7657  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 23); __PYX_ERR(0, 2732, __pyx_L3_error)
7658  }
7659  CYTHON_FALLTHROUGH;
7660  case 24:
7661  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u_w)) != 0)) kw_args--;
7662  else {
7663  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 24); __PYX_ERR(0, 2732, __pyx_L3_error)
7664  }
7665  CYTHON_FALLTHROUGH;
7666  case 25:
7667  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u_m)) != 0)) kw_args--;
7668  else {
7669  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 25); __PYX_ERR(0, 2732, __pyx_L3_error)
7670  }
7671  CYTHON_FALLTHROUGH;
7672  case 26:
7673  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
7674  else {
7675  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 26); __PYX_ERR(0, 2732, __pyx_L3_error)
7676  }
7677  CYTHON_FALLTHROUGH;
7678  case 27:
7679  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
7680  else {
7681  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 27); __PYX_ERR(0, 2732, __pyx_L3_error)
7682  }
7683  CYTHON_FALLTHROUGH;
7684  case 28:
7685  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_w)) != 0)) kw_args--;
7686  else {
7687  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 28); __PYX_ERR(0, 2732, __pyx_L3_error)
7688  }
7689  CYTHON_FALLTHROUGH;
7690  case 29:
7691  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_m)) != 0)) kw_args--;
7692  else {
7693  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 29); __PYX_ERR(0, 2732, __pyx_L3_error)
7694  }
7695  CYTHON_FALLTHROUGH;
7696  case 30:
7697  if (likely((values[30] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_ww)) != 0)) kw_args--;
7698  else {
7699  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 30); __PYX_ERR(0, 2732, __pyx_L3_error)
7700  }
7701  CYTHON_FALLTHROUGH;
7702  case 31:
7703  if (likely((values[31] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_wm)) != 0)) kw_args--;
7704  else {
7705  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 31); __PYX_ERR(0, 2732, __pyx_L3_error)
7706  }
7707  CYTHON_FALLTHROUGH;
7708  case 32:
7709  if (likely((values[32] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_mw)) != 0)) kw_args--;
7710  else {
7711  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 32); __PYX_ERR(0, 2732, __pyx_L3_error)
7712  }
7713  CYTHON_FALLTHROUGH;
7714  case 33:
7715  if (likely((values[33] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_mm)) != 0)) kw_args--;
7716  else {
7717  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, 33); __PYX_ERR(0, 2732, __pyx_L3_error)
7718  }
7719  }
7720  if (unlikely(kw_args > 0)) {
7721  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian") < 0)) __PYX_ERR(0, 2732, __pyx_L3_error)
7722  }
7723  } else if (PyTuple_GET_SIZE(__pyx_args) != 34) {
7724  goto __pyx_L5_argtuple_error;
7725  } else {
7726  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7727  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
7728  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
7729  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
7730  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
7731  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
7732  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
7733  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
7734  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
7735  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
7736  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
7737  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
7738  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
7739  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
7740  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
7741  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
7742  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
7743  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
7744  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
7745  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
7746  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
7747  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
7748  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
7749  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
7750  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
7751  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
7752  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
7753  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
7754  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
7755  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
7756  values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
7757  values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
7758  values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
7759  values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
7760  }
7761  __pyx_v_l2g = ((PyArrayObject *)values[0]);
7762  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
7763  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
7764  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
7765  __pyx_v_isDOFBoundary_uw = ((PyArrayObject *)values[4]);
7766  __pyx_v_isDOFBoundary_um = ((PyArrayObject *)values[5]);
7767  __pyx_v_n = ((PyArrayObject *)values[6]);
7768  __pyx_v_f_m = ((PyArrayObject *)values[7]);
7769  __pyx_v_df_m_dw = ((PyArrayObject *)values[8]);
7770  __pyx_v_a_wm = ((PyArrayObject *)values[9]);
7771  __pyx_v_da_wm_dw = ((PyArrayObject *)values[10]);
7772  __pyx_v_da_wm_dm = ((PyArrayObject *)values[11]);
7773  __pyx_v_a_mw = ((PyArrayObject *)values[12]);
7774  __pyx_v_da_mw_dw = ((PyArrayObject *)values[13]);
7775  __pyx_v_da_mw_dm = ((PyArrayObject *)values[14]);
7776  __pyx_v_a_mm = ((PyArrayObject *)values[15]);
7777  __pyx_v_da_mm_dw = ((PyArrayObject *)values[16]);
7778  __pyx_v_da_mm_dm = ((PyArrayObject *)values[17]);
7779  __pyx_v_grad_phi_w = ((PyArrayObject *)values[18]);
7780  __pyx_v_grad_phi_m = ((PyArrayObject *)values[19]);
7781  __pyx_v_dphi_w_w = ((PyArrayObject *)values[20]);
7782  __pyx_v_dphi_w_m = ((PyArrayObject *)values[21]);
7783  __pyx_v_dphi_m_w = ((PyArrayObject *)values[22]);
7784  __pyx_v_dphi_m_m = ((PyArrayObject *)values[23]);
7785  __pyx_v_u_w = ((PyArrayObject *)values[24]);
7786  __pyx_v_u_m = ((PyArrayObject *)values[25]);
7787  __pyx_v_v = ((PyArrayObject *)values[26]);
7788  __pyx_v_grad_v = ((PyArrayObject *)values[27]);
7789  __pyx_v_penalty_w = ((PyArrayObject *)values[28]);
7790  __pyx_v_penalty_m = ((PyArrayObject *)values[29]);
7791  __pyx_v_fluxJacobian_ww = ((PyArrayObject *)values[30]);
7792  __pyx_v_fluxJacobian_wm = ((PyArrayObject *)values[31]);
7793  __pyx_v_fluxJacobian_mw = ((PyArrayObject *)values[32]);
7794  __pyx_v_fluxJacobian_mm = ((PyArrayObject *)values[33]);
7795  }
7796  goto __pyx_L4_argument_unpacking_done;
7797  __pyx_L5_argtuple_error:;
7798  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 1, 34, 34, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2732, __pyx_L3_error)
7799  __pyx_L3_error:;
7800  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename);
7801  __Pyx_RefNannyFinishContext();
7802  return NULL;
7803  __pyx_L4_argument_unpacking_done:;
7804  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 2732, __pyx_L1_error)
7805  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 2733, __pyx_L1_error)
7806  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2734, __pyx_L1_error)
7807  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2735, __pyx_L1_error)
7808  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_uw), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_uw", 0))) __PYX_ERR(0, 2736, __pyx_L1_error)
7809  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_um), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_um", 0))) __PYX_ERR(0, 2737, __pyx_L1_error)
7810  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2738, __pyx_L1_error)
7811  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_m), __pyx_ptype_5numpy_ndarray, 1, "f_m", 0))) __PYX_ERR(0, 2739, __pyx_L1_error)
7812  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_m_dw), __pyx_ptype_5numpy_ndarray, 1, "df_m_dw", 0))) __PYX_ERR(0, 2740, __pyx_L1_error)
7813  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_wm), __pyx_ptype_5numpy_ndarray, 1, "a_wm", 0))) __PYX_ERR(0, 2741, __pyx_L1_error)
7814  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_wm_dw), __pyx_ptype_5numpy_ndarray, 1, "da_wm_dw", 0))) __PYX_ERR(0, 2742, __pyx_L1_error)
7815  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_wm_dm), __pyx_ptype_5numpy_ndarray, 1, "da_wm_dm", 0))) __PYX_ERR(0, 2743, __pyx_L1_error)
7816  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_mw), __pyx_ptype_5numpy_ndarray, 1, "a_mw", 0))) __PYX_ERR(0, 2744, __pyx_L1_error)
7817  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_mw_dw), __pyx_ptype_5numpy_ndarray, 1, "da_mw_dw", 0))) __PYX_ERR(0, 2745, __pyx_L1_error)
7818  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_mw_dm), __pyx_ptype_5numpy_ndarray, 1, "da_mw_dm", 0))) __PYX_ERR(0, 2746, __pyx_L1_error)
7819  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_mm), __pyx_ptype_5numpy_ndarray, 1, "a_mm", 0))) __PYX_ERR(0, 2747, __pyx_L1_error)
7820  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_mm_dw), __pyx_ptype_5numpy_ndarray, 1, "da_mm_dw", 0))) __PYX_ERR(0, 2748, __pyx_L1_error)
7821  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_mm_dm), __pyx_ptype_5numpy_ndarray, 1, "da_mm_dm", 0))) __PYX_ERR(0, 2749, __pyx_L1_error)
7822  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_w", 0))) __PYX_ERR(0, 2750, __pyx_L1_error)
7823  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_m), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_m", 0))) __PYX_ERR(0, 2751, __pyx_L1_error)
7824  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_w_w), __pyx_ptype_5numpy_ndarray, 1, "dphi_w_w", 0))) __PYX_ERR(0, 2752, __pyx_L1_error)
7825  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_w_m), __pyx_ptype_5numpy_ndarray, 1, "dphi_w_m", 0))) __PYX_ERR(0, 2753, __pyx_L1_error)
7826  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_m_w), __pyx_ptype_5numpy_ndarray, 1, "dphi_m_w", 0))) __PYX_ERR(0, 2754, __pyx_L1_error)
7827  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_m_m), __pyx_ptype_5numpy_ndarray, 1, "dphi_m_m", 0))) __PYX_ERR(0, 2755, __pyx_L1_error)
7828  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u_w), __pyx_ptype_5numpy_ndarray, 1, "u_w", 0))) __PYX_ERR(0, 2756, __pyx_L1_error)
7829  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u_m), __pyx_ptype_5numpy_ndarray, 1, "u_m", 0))) __PYX_ERR(0, 2757, __pyx_L1_error)
7830  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 2758, __pyx_L1_error)
7831  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 2759, __pyx_L1_error)
7832  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_w), __pyx_ptype_5numpy_ndarray, 1, "penalty_w", 0))) __PYX_ERR(0, 2760, __pyx_L1_error)
7833  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_m), __pyx_ptype_5numpy_ndarray, 1, "penalty_m", 0))) __PYX_ERR(0, 2761, __pyx_L1_error)
7834  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_ww), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_ww", 0))) __PYX_ERR(0, 2762, __pyx_L1_error)
7835  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_wm), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_wm", 0))) __PYX_ERR(0, 2763, __pyx_L1_error)
7836  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_mw), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_mw", 0))) __PYX_ERR(0, 2764, __pyx_L1_error)
7837  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_mm), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_mm", 0))) __PYX_ERR(0, 2765, __pyx_L1_error)
7838  __pyx_r = __pyx_pf_14cnumericalFlux_40calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian(__pyx_self, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_uw, __pyx_v_isDOFBoundary_um, __pyx_v_n, __pyx_v_f_m, __pyx_v_df_m_dw, __pyx_v_a_wm, __pyx_v_da_wm_dw, __pyx_v_da_wm_dm, __pyx_v_a_mw, __pyx_v_da_mw_dw, __pyx_v_da_mw_dm, __pyx_v_a_mm, __pyx_v_da_mm_dw, __pyx_v_da_mm_dm, __pyx_v_grad_phi_w, __pyx_v_grad_phi_m, __pyx_v_dphi_w_w, __pyx_v_dphi_w_m, __pyx_v_dphi_m_w, __pyx_v_dphi_m_m, __pyx_v_u_w, __pyx_v_u_m, __pyx_v_v, __pyx_v_grad_v, __pyx_v_penalty_w, __pyx_v_penalty_m, __pyx_v_fluxJacobian_ww, __pyx_v_fluxJacobian_wm, __pyx_v_fluxJacobian_mw, __pyx_v_fluxJacobian_mm);
7839 
7840  /* function exit code */
7841  goto __pyx_L0;
7842  __pyx_L1_error:;
7843  __pyx_r = NULL;
7844  __pyx_L0:;
7845  __Pyx_RefNannyFinishContext();
7846  return __pyx_r;
7847 }
7848 
7849 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) {
7850  PyObject *__pyx_r = NULL;
7851  __Pyx_RefNannyDeclarations
7852  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian", 0);
7853 
7854  /* "cnumericalFlux.pyx":2766
7855  * np.ndarray fluxJacobian_mw,
7856  * np.ndarray fluxJacobian_mm):
7857  * ccalculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
7858  * n.shape[1],
7859  * n.shape[2],
7860  */
7861  calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_l2g->dimensions[1]), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_uw->data), ((int *)__pyx_v_isDOFBoundary_um->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_f_m->data), ((double *)__pyx_v_df_m_dw->data), ((double *)__pyx_v_a_wm->data), ((double *)__pyx_v_da_wm_dw->data), ((double *)__pyx_v_da_wm_dm->data), ((double *)__pyx_v_a_mw->data), ((double *)__pyx_v_da_mw_dw->data), ((double *)__pyx_v_da_mw_dm->data), ((double *)__pyx_v_a_mm->data), ((double *)__pyx_v_da_mm_dw->data), ((double *)__pyx_v_da_mm_dm->data), ((double *)__pyx_v_grad_phi_w->data), ((double *)__pyx_v_grad_phi_m->data), ((double *)__pyx_v_dphi_w_w->data), ((double *)__pyx_v_dphi_w_m->data), ((double *)__pyx_v_dphi_m_w->data), ((double *)__pyx_v_dphi_m_m->data), ((double *)__pyx_v_u_w->data), ((double *)__pyx_v_u_m->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_grad_v->data), ((double *)__pyx_v_penalty_w->data), ((double *)__pyx_v_penalty_m->data), ((double *)__pyx_v_fluxJacobian_ww->data), ((double *)__pyx_v_fluxJacobian_wm->data), ((double *)__pyx_v_fluxJacobian_mw->data), ((double *)__pyx_v_fluxJacobian_mm->data));
7862 
7863  /* "cnumericalFlux.pyx":2732
7864  * <double*> diffusiveFlux_mw.data,
7865  * <double*> diffusiveFlux_mm.data)
7866  * def calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
7867  * np.ndarray exteriorElementBoundaries,
7868  * np.ndarray elementBoundaryElements,
7869  */
7870 
7871  /* function exit code */
7872  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7873  __Pyx_XGIVEREF(__pyx_r);
7874  __Pyx_RefNannyFinishContext();
7875  return __pyx_r;
7876 }
7877 
7878 /* "cnumericalFlux.pyx":2804
7879  * <double*> fluxJacobian_mw.data,
7880  * <double*> fluxJacobian_mm.data)
7881  * def updateExteriorNumericalStressFluxJacobian(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
7882  * np.ndarray elementBoundaryElements,
7883  * np.ndarray elementBoundaryLocalElementBoundaries,
7884  */
7885 
7886 /* Python wrapper */
7887 static PyObject *__pyx_pw_14cnumericalFlux_43updateExteriorNumericalStressFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
7888 static PyMethodDef __pyx_mdef_14cnumericalFlux_43updateExteriorNumericalStressFluxJacobian = {"updateExteriorNumericalStressFluxJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_43updateExteriorNumericalStressFluxJacobian, METH_VARARGS|METH_KEYWORDS, 0};
7889 static PyObject *__pyx_pw_14cnumericalFlux_43updateExteriorNumericalStressFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
7890  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
7891  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
7892  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
7893  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
7894  PyArrayObject *__pyx_v_isDOFBoundary_v = 0;
7895  PyArrayObject *__pyx_v_isDOFBoundary_w = 0;
7896  PyArrayObject *__pyx_v_isStressBoundary_u = 0;
7897  PyArrayObject *__pyx_v_isStressBoundary_v = 0;
7898  PyArrayObject *__pyx_v_isStressBoundary_w = 0;
7899  PyArrayObject *__pyx_v_n = 0;
7900  PyArrayObject *__pyx_v_dstress_u_u = 0;
7901  PyArrayObject *__pyx_v_dstress_u_v = 0;
7902  PyArrayObject *__pyx_v_dstress_u_w = 0;
7903  PyArrayObject *__pyx_v_dstress_v_u = 0;
7904  PyArrayObject *__pyx_v_dstress_v_v = 0;
7905  PyArrayObject *__pyx_v_dstress_v_w = 0;
7906  PyArrayObject *__pyx_v_dstress_w_u = 0;
7907  PyArrayObject *__pyx_v_dstress_w_v = 0;
7908  PyArrayObject *__pyx_v_dstress_w_w = 0;
7909  PyArrayObject *__pyx_v_v = 0;
7910  PyArrayObject *__pyx_v_grad_v = 0;
7911  PyArrayObject *__pyx_v_penalty = 0;
7912  PyArrayObject *__pyx_v_fluxJacobian_u_u = 0;
7913  PyArrayObject *__pyx_v_fluxJacobian_u_v = 0;
7914  PyArrayObject *__pyx_v_fluxJacobian_u_w = 0;
7915  PyArrayObject *__pyx_v_fluxJacobian_v_u = 0;
7916  PyArrayObject *__pyx_v_fluxJacobian_v_v = 0;
7917  PyArrayObject *__pyx_v_fluxJacobian_v_w = 0;
7918  PyArrayObject *__pyx_v_fluxJacobian_w_u = 0;
7919  PyArrayObject *__pyx_v_fluxJacobian_w_v = 0;
7920  PyArrayObject *__pyx_v_fluxJacobian_w_w = 0;
7921  int __pyx_lineno = 0;
7922  const char *__pyx_filename = NULL;
7923  int __pyx_clineno = 0;
7924  PyObject *__pyx_r = 0;
7925  __Pyx_RefNannyDeclarations
7926  __Pyx_RefNannySetupContext("updateExteriorNumericalStressFluxJacobian (wrapper)", 0);
7927  {
7928  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_isDOFBoundary_v,&__pyx_n_s_isDOFBoundary_w,&__pyx_n_s_isStressBoundary_u,&__pyx_n_s_isStressBoundary_v,&__pyx_n_s_isStressBoundary_w,&__pyx_n_s_n,&__pyx_n_s_dstress_u_u,&__pyx_n_s_dstress_u_v,&__pyx_n_s_dstress_u_w,&__pyx_n_s_dstress_v_u,&__pyx_n_s_dstress_v_v,&__pyx_n_s_dstress_v_w,&__pyx_n_s_dstress_w_u,&__pyx_n_s_dstress_w_v,&__pyx_n_s_dstress_w_w,&__pyx_n_s_v,&__pyx_n_s_grad_v,&__pyx_n_s_penalty,&__pyx_n_s_fluxJacobian_u_u,&__pyx_n_s_fluxJacobian_u_v,&__pyx_n_s_fluxJacobian_u_w,&__pyx_n_s_fluxJacobian_v_u,&__pyx_n_s_fluxJacobian_v_v,&__pyx_n_s_fluxJacobian_v_w,&__pyx_n_s_fluxJacobian_w_u,&__pyx_n_s_fluxJacobian_w_v,&__pyx_n_s_fluxJacobian_w_w,0};
7929  PyObject* values[31] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
7930  if (unlikely(__pyx_kwds)) {
7931  Py_ssize_t kw_args;
7932  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
7933  switch (pos_args) {
7934  case 31: values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
7935  CYTHON_FALLTHROUGH;
7936  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
7937  CYTHON_FALLTHROUGH;
7938  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
7939  CYTHON_FALLTHROUGH;
7940  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
7941  CYTHON_FALLTHROUGH;
7942  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
7943  CYTHON_FALLTHROUGH;
7944  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
7945  CYTHON_FALLTHROUGH;
7946  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
7947  CYTHON_FALLTHROUGH;
7948  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
7949  CYTHON_FALLTHROUGH;
7950  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
7951  CYTHON_FALLTHROUGH;
7952  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
7953  CYTHON_FALLTHROUGH;
7954  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
7955  CYTHON_FALLTHROUGH;
7956  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
7957  CYTHON_FALLTHROUGH;
7958  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
7959  CYTHON_FALLTHROUGH;
7960  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
7961  CYTHON_FALLTHROUGH;
7962  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
7963  CYTHON_FALLTHROUGH;
7964  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
7965  CYTHON_FALLTHROUGH;
7966  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
7967  CYTHON_FALLTHROUGH;
7968  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
7969  CYTHON_FALLTHROUGH;
7970  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
7971  CYTHON_FALLTHROUGH;
7972  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
7973  CYTHON_FALLTHROUGH;
7974  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
7975  CYTHON_FALLTHROUGH;
7976  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
7977  CYTHON_FALLTHROUGH;
7978  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
7979  CYTHON_FALLTHROUGH;
7980  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
7981  CYTHON_FALLTHROUGH;
7982  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
7983  CYTHON_FALLTHROUGH;
7984  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
7985  CYTHON_FALLTHROUGH;
7986  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
7987  CYTHON_FALLTHROUGH;
7988  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
7989  CYTHON_FALLTHROUGH;
7990  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
7991  CYTHON_FALLTHROUGH;
7992  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
7993  CYTHON_FALLTHROUGH;
7994  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7995  CYTHON_FALLTHROUGH;
7996  case 0: break;
7997  default: goto __pyx_L5_argtuple_error;
7998  }
7999  kw_args = PyDict_Size(__pyx_kwds);
8000  switch (pos_args) {
8001  case 0:
8002  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
8003  else goto __pyx_L5_argtuple_error;
8004  CYTHON_FALLTHROUGH;
8005  case 1:
8006  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
8007  else {
8008  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 1); __PYX_ERR(0, 2804, __pyx_L3_error)
8009  }
8010  CYTHON_FALLTHROUGH;
8011  case 2:
8012  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
8013  else {
8014  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 2); __PYX_ERR(0, 2804, __pyx_L3_error)
8015  }
8016  CYTHON_FALLTHROUGH;
8017  case 3:
8018  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
8019  else {
8020  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 3); __PYX_ERR(0, 2804, __pyx_L3_error)
8021  }
8022  CYTHON_FALLTHROUGH;
8023  case 4:
8024  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_v)) != 0)) kw_args--;
8025  else {
8026  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 4); __PYX_ERR(0, 2804, __pyx_L3_error)
8027  }
8028  CYTHON_FALLTHROUGH;
8029  case 5:
8030  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_w)) != 0)) kw_args--;
8031  else {
8032  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 5); __PYX_ERR(0, 2804, __pyx_L3_error)
8033  }
8034  CYTHON_FALLTHROUGH;
8035  case 6:
8036  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isStressBoundary_u)) != 0)) kw_args--;
8037  else {
8038  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 6); __PYX_ERR(0, 2804, __pyx_L3_error)
8039  }
8040  CYTHON_FALLTHROUGH;
8041  case 7:
8042  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isStressBoundary_v)) != 0)) kw_args--;
8043  else {
8044  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 7); __PYX_ERR(0, 2804, __pyx_L3_error)
8045  }
8046  CYTHON_FALLTHROUGH;
8047  case 8:
8048  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isStressBoundary_w)) != 0)) kw_args--;
8049  else {
8050  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 8); __PYX_ERR(0, 2804, __pyx_L3_error)
8051  }
8052  CYTHON_FALLTHROUGH;
8053  case 9:
8054  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
8055  else {
8056  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 9); __PYX_ERR(0, 2804, __pyx_L3_error)
8057  }
8058  CYTHON_FALLTHROUGH;
8059  case 10:
8060  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstress_u_u)) != 0)) kw_args--;
8061  else {
8062  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 10); __PYX_ERR(0, 2804, __pyx_L3_error)
8063  }
8064  CYTHON_FALLTHROUGH;
8065  case 11:
8066  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstress_u_v)) != 0)) kw_args--;
8067  else {
8068  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 11); __PYX_ERR(0, 2804, __pyx_L3_error)
8069  }
8070  CYTHON_FALLTHROUGH;
8071  case 12:
8072  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstress_u_w)) != 0)) kw_args--;
8073  else {
8074  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 12); __PYX_ERR(0, 2804, __pyx_L3_error)
8075  }
8076  CYTHON_FALLTHROUGH;
8077  case 13:
8078  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstress_v_u)) != 0)) kw_args--;
8079  else {
8080  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 13); __PYX_ERR(0, 2804, __pyx_L3_error)
8081  }
8082  CYTHON_FALLTHROUGH;
8083  case 14:
8084  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstress_v_v)) != 0)) kw_args--;
8085  else {
8086  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 14); __PYX_ERR(0, 2804, __pyx_L3_error)
8087  }
8088  CYTHON_FALLTHROUGH;
8089  case 15:
8090  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstress_v_w)) != 0)) kw_args--;
8091  else {
8092  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 15); __PYX_ERR(0, 2804, __pyx_L3_error)
8093  }
8094  CYTHON_FALLTHROUGH;
8095  case 16:
8096  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstress_w_u)) != 0)) kw_args--;
8097  else {
8098  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 16); __PYX_ERR(0, 2804, __pyx_L3_error)
8099  }
8100  CYTHON_FALLTHROUGH;
8101  case 17:
8102  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstress_w_v)) != 0)) kw_args--;
8103  else {
8104  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 17); __PYX_ERR(0, 2804, __pyx_L3_error)
8105  }
8106  CYTHON_FALLTHROUGH;
8107  case 18:
8108  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstress_w_w)) != 0)) kw_args--;
8109  else {
8110  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 18); __PYX_ERR(0, 2804, __pyx_L3_error)
8111  }
8112  CYTHON_FALLTHROUGH;
8113  case 19:
8114  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
8115  else {
8116  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 19); __PYX_ERR(0, 2804, __pyx_L3_error)
8117  }
8118  CYTHON_FALLTHROUGH;
8119  case 20:
8120  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
8121  else {
8122  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 20); __PYX_ERR(0, 2804, __pyx_L3_error)
8123  }
8124  CYTHON_FALLTHROUGH;
8125  case 21:
8126  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
8127  else {
8128  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 21); __PYX_ERR(0, 2804, __pyx_L3_error)
8129  }
8130  CYTHON_FALLTHROUGH;
8131  case 22:
8132  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_u_u)) != 0)) kw_args--;
8133  else {
8134  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 22); __PYX_ERR(0, 2804, __pyx_L3_error)
8135  }
8136  CYTHON_FALLTHROUGH;
8137  case 23:
8138  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_u_v)) != 0)) kw_args--;
8139  else {
8140  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 23); __PYX_ERR(0, 2804, __pyx_L3_error)
8141  }
8142  CYTHON_FALLTHROUGH;
8143  case 24:
8144  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_u_w)) != 0)) kw_args--;
8145  else {
8146  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 24); __PYX_ERR(0, 2804, __pyx_L3_error)
8147  }
8148  CYTHON_FALLTHROUGH;
8149  case 25:
8150  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_v_u)) != 0)) kw_args--;
8151  else {
8152  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 25); __PYX_ERR(0, 2804, __pyx_L3_error)
8153  }
8154  CYTHON_FALLTHROUGH;
8155  case 26:
8156  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_v_v)) != 0)) kw_args--;
8157  else {
8158  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 26); __PYX_ERR(0, 2804, __pyx_L3_error)
8159  }
8160  CYTHON_FALLTHROUGH;
8161  case 27:
8162  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_v_w)) != 0)) kw_args--;
8163  else {
8164  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 27); __PYX_ERR(0, 2804, __pyx_L3_error)
8165  }
8166  CYTHON_FALLTHROUGH;
8167  case 28:
8168  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_w_u)) != 0)) kw_args--;
8169  else {
8170  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 28); __PYX_ERR(0, 2804, __pyx_L3_error)
8171  }
8172  CYTHON_FALLTHROUGH;
8173  case 29:
8174  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_w_v)) != 0)) kw_args--;
8175  else {
8176  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 29); __PYX_ERR(0, 2804, __pyx_L3_error)
8177  }
8178  CYTHON_FALLTHROUGH;
8179  case 30:
8180  if (likely((values[30] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_w_w)) != 0)) kw_args--;
8181  else {
8182  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, 30); __PYX_ERR(0, 2804, __pyx_L3_error)
8183  }
8184  }
8185  if (unlikely(kw_args > 0)) {
8186  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateExteriorNumericalStressFluxJacobian") < 0)) __PYX_ERR(0, 2804, __pyx_L3_error)
8187  }
8188  } else if (PyTuple_GET_SIZE(__pyx_args) != 31) {
8189  goto __pyx_L5_argtuple_error;
8190  } else {
8191  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8192  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8193  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8194  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8195  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
8196  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
8197  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
8198  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
8199  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
8200  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
8201  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
8202  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
8203  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
8204  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
8205  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
8206  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
8207  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
8208  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
8209  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
8210  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
8211  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
8212  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
8213  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
8214  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
8215  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
8216  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
8217  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
8218  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
8219  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
8220  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
8221  values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
8222  }
8223  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
8224  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
8225  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
8226  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[3]);
8227  __pyx_v_isDOFBoundary_v = ((PyArrayObject *)values[4]);
8228  __pyx_v_isDOFBoundary_w = ((PyArrayObject *)values[5]);
8229  __pyx_v_isStressBoundary_u = ((PyArrayObject *)values[6]);
8230  __pyx_v_isStressBoundary_v = ((PyArrayObject *)values[7]);
8231  __pyx_v_isStressBoundary_w = ((PyArrayObject *)values[8]);
8232  __pyx_v_n = ((PyArrayObject *)values[9]);
8233  __pyx_v_dstress_u_u = ((PyArrayObject *)values[10]);
8234  __pyx_v_dstress_u_v = ((PyArrayObject *)values[11]);
8235  __pyx_v_dstress_u_w = ((PyArrayObject *)values[12]);
8236  __pyx_v_dstress_v_u = ((PyArrayObject *)values[13]);
8237  __pyx_v_dstress_v_v = ((PyArrayObject *)values[14]);
8238  __pyx_v_dstress_v_w = ((PyArrayObject *)values[15]);
8239  __pyx_v_dstress_w_u = ((PyArrayObject *)values[16]);
8240  __pyx_v_dstress_w_v = ((PyArrayObject *)values[17]);
8241  __pyx_v_dstress_w_w = ((PyArrayObject *)values[18]);
8242  __pyx_v_v = ((PyArrayObject *)values[19]);
8243  __pyx_v_grad_v = ((PyArrayObject *)values[20]);
8244  __pyx_v_penalty = ((PyArrayObject *)values[21]);
8245  __pyx_v_fluxJacobian_u_u = ((PyArrayObject *)values[22]);
8246  __pyx_v_fluxJacobian_u_v = ((PyArrayObject *)values[23]);
8247  __pyx_v_fluxJacobian_u_w = ((PyArrayObject *)values[24]);
8248  __pyx_v_fluxJacobian_v_u = ((PyArrayObject *)values[25]);
8249  __pyx_v_fluxJacobian_v_v = ((PyArrayObject *)values[26]);
8250  __pyx_v_fluxJacobian_v_w = ((PyArrayObject *)values[27]);
8251  __pyx_v_fluxJacobian_w_u = ((PyArrayObject *)values[28]);
8252  __pyx_v_fluxJacobian_w_v = ((PyArrayObject *)values[29]);
8253  __pyx_v_fluxJacobian_w_w = ((PyArrayObject *)values[30]);
8254  }
8255  goto __pyx_L4_argument_unpacking_done;
8256  __pyx_L5_argtuple_error:;
8257  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalStressFluxJacobian", 1, 31, 31, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2804, __pyx_L3_error)
8258  __pyx_L3_error:;
8259  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalStressFluxJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename);
8260  __Pyx_RefNannyFinishContext();
8261  return NULL;
8262  __pyx_L4_argument_unpacking_done:;
8263  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 2804, __pyx_L1_error)
8264  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2805, __pyx_L1_error)
8265  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2806, __pyx_L1_error)
8266  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 2807, __pyx_L1_error)
8267  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_v", 0))) __PYX_ERR(0, 2808, __pyx_L1_error)
8268  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_w), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_w", 0))) __PYX_ERR(0, 2809, __pyx_L1_error)
8269  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isStressBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isStressBoundary_u", 0))) __PYX_ERR(0, 2810, __pyx_L1_error)
8270  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isStressBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isStressBoundary_v", 0))) __PYX_ERR(0, 2811, __pyx_L1_error)
8271  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isStressBoundary_w), __pyx_ptype_5numpy_ndarray, 1, "isStressBoundary_w", 0))) __PYX_ERR(0, 2812, __pyx_L1_error)
8272  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2813, __pyx_L1_error)
8273  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstress_u_u), __pyx_ptype_5numpy_ndarray, 1, "dstress_u_u", 0))) __PYX_ERR(0, 2814, __pyx_L1_error)
8274  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstress_u_v), __pyx_ptype_5numpy_ndarray, 1, "dstress_u_v", 0))) __PYX_ERR(0, 2815, __pyx_L1_error)
8275  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstress_u_w), __pyx_ptype_5numpy_ndarray, 1, "dstress_u_w", 0))) __PYX_ERR(0, 2816, __pyx_L1_error)
8276  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstress_v_u), __pyx_ptype_5numpy_ndarray, 1, "dstress_v_u", 0))) __PYX_ERR(0, 2817, __pyx_L1_error)
8277  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstress_v_v), __pyx_ptype_5numpy_ndarray, 1, "dstress_v_v", 0))) __PYX_ERR(0, 2818, __pyx_L1_error)
8278  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstress_v_w), __pyx_ptype_5numpy_ndarray, 1, "dstress_v_w", 0))) __PYX_ERR(0, 2819, __pyx_L1_error)
8279  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstress_w_u), __pyx_ptype_5numpy_ndarray, 1, "dstress_w_u", 0))) __PYX_ERR(0, 2820, __pyx_L1_error)
8280  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstress_w_v), __pyx_ptype_5numpy_ndarray, 1, "dstress_w_v", 0))) __PYX_ERR(0, 2821, __pyx_L1_error)
8281  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstress_w_w), __pyx_ptype_5numpy_ndarray, 1, "dstress_w_w", 0))) __PYX_ERR(0, 2822, __pyx_L1_error)
8282  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 2823, __pyx_L1_error)
8283  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 2824, __pyx_L1_error)
8284  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 2825, __pyx_L1_error)
8285  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_u_u), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_u_u", 0))) __PYX_ERR(0, 2826, __pyx_L1_error)
8286  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_u_v), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_u_v", 0))) __PYX_ERR(0, 2827, __pyx_L1_error)
8287  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_u_w), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_u_w", 0))) __PYX_ERR(0, 2828, __pyx_L1_error)
8288  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_v_u), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_v_u", 0))) __PYX_ERR(0, 2829, __pyx_L1_error)
8289  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_v_v), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_v_v", 0))) __PYX_ERR(0, 2830, __pyx_L1_error)
8290  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_v_w), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_v_w", 0))) __PYX_ERR(0, 2831, __pyx_L1_error)
8291  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_w_u), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_w_u", 0))) __PYX_ERR(0, 2832, __pyx_L1_error)
8292  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_w_v), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_w_v", 0))) __PYX_ERR(0, 2833, __pyx_L1_error)
8293  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_w_w), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_w_w", 0))) __PYX_ERR(0, 2834, __pyx_L1_error)
8294  __pyx_r = __pyx_pf_14cnumericalFlux_42updateExteriorNumericalStressFluxJacobian(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_u, __pyx_v_isDOFBoundary_v, __pyx_v_isDOFBoundary_w, __pyx_v_isStressBoundary_u, __pyx_v_isStressBoundary_v, __pyx_v_isStressBoundary_w, __pyx_v_n, __pyx_v_dstress_u_u, __pyx_v_dstress_u_v, __pyx_v_dstress_u_w, __pyx_v_dstress_v_u, __pyx_v_dstress_v_v, __pyx_v_dstress_v_w, __pyx_v_dstress_w_u, __pyx_v_dstress_w_v, __pyx_v_dstress_w_w, __pyx_v_v, __pyx_v_grad_v, __pyx_v_penalty, __pyx_v_fluxJacobian_u_u, __pyx_v_fluxJacobian_u_v, __pyx_v_fluxJacobian_u_w, __pyx_v_fluxJacobian_v_u, __pyx_v_fluxJacobian_v_v, __pyx_v_fluxJacobian_v_w, __pyx_v_fluxJacobian_w_u, __pyx_v_fluxJacobian_w_v, __pyx_v_fluxJacobian_w_w);
8295 
8296  /* function exit code */
8297  goto __pyx_L0;
8298  __pyx_L1_error:;
8299  __pyx_r = NULL;
8300  __pyx_L0:;
8301  __Pyx_RefNannyFinishContext();
8302  return __pyx_r;
8303 }
8304 
8305 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) {
8306  PyObject *__pyx_r = NULL;
8307  __Pyx_RefNannyDeclarations
8308  __Pyx_RefNannySetupContext("updateExteriorNumericalStressFluxJacobian", 0);
8309 
8310  /* "cnumericalFlux.pyx":2835
8311  * np.ndarray fluxJacobian_w_v,
8312  * np.ndarray fluxJacobian_w_w):
8313  * cupdateExteriorNumericalStressFluxJacobian(v.shape[0], # <<<<<<<<<<<<<<
8314  * v.shape[1],
8315  * v.shape[2],
8316  */
8317  updateExteriorNumericalStressFluxJacobian((__pyx_v_v->dimensions[0]), (__pyx_v_v->dimensions[1]), (__pyx_v_v->dimensions[2]), (__pyx_v_n->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((int *)__pyx_v_isDOFBoundary_w->data), ((int *)__pyx_v_isStressBoundary_u->data), ((int *)__pyx_v_isStressBoundary_v->data), ((int *)__pyx_v_isStressBoundary_w->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_dstress_u_u->data), ((double *)__pyx_v_dstress_u_v->data), ((double *)__pyx_v_dstress_u_w->data), ((double *)__pyx_v_dstress_v_u->data), ((double *)__pyx_v_dstress_v_v->data), ((double *)__pyx_v_dstress_v_w->data), ((double *)__pyx_v_dstress_w_u->data), ((double *)__pyx_v_dstress_w_v->data), ((double *)__pyx_v_dstress_w_w->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_grad_v->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_fluxJacobian_u_u->data), ((double *)__pyx_v_fluxJacobian_u_v->data), ((double *)__pyx_v_fluxJacobian_u_w->data), ((double *)__pyx_v_fluxJacobian_v_u->data), ((double *)__pyx_v_fluxJacobian_v_v->data), ((double *)__pyx_v_fluxJacobian_v_w->data), ((double *)__pyx_v_fluxJacobian_w_u->data), ((double *)__pyx_v_fluxJacobian_w_v->data), ((double *)__pyx_v_fluxJacobian_w_w->data));
8318 
8319  /* "cnumericalFlux.pyx":2804
8320  * <double*> fluxJacobian_mw.data,
8321  * <double*> fluxJacobian_mm.data)
8322  * def updateExteriorNumericalStressFluxJacobian(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
8323  * np.ndarray elementBoundaryElements,
8324  * np.ndarray elementBoundaryLocalElementBoundaries,
8325  */
8326 
8327  /* function exit code */
8328  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8329  __Pyx_XGIVEREF(__pyx_r);
8330  __Pyx_RefNannyFinishContext();
8331  return __pyx_r;
8332 }
8333 
8334 /* "cnumericalFlux.pyx":2870
8335  * <double*> fluxJacobian_w_v.data,
8336  * <double*> fluxJacobian_w_w.data)
8337  * def calculateExteriorNumericalFluxRichards_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
8338  * np.ndarray colind,
8339  * np.ndarray isSeepageFace,
8340  */
8341 
8342 /* Python wrapper */
8343 static PyObject *__pyx_pw_14cnumericalFlux_45calculateExteriorNumericalFluxRichards_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
8344 static PyMethodDef __pyx_mdef_14cnumericalFlux_45calculateExteriorNumericalFluxRichards_sd = {"calculateExteriorNumericalFluxRichards_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_45calculateExteriorNumericalFluxRichards_sd, METH_VARARGS|METH_KEYWORDS, 0};
8345 static PyObject *__pyx_pw_14cnumericalFlux_45calculateExteriorNumericalFluxRichards_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
8346  PyArrayObject *__pyx_v_rowptr = 0;
8347  PyArrayObject *__pyx_v_colind = 0;
8348  PyArrayObject *__pyx_v_isSeepageFace = 0;
8349  PyArrayObject *__pyx_v_isDOFBoundary = 0;
8350  PyArrayObject *__pyx_v_n = 0;
8351  PyArrayObject *__pyx_v_bc_u = 0;
8352  PyArrayObject *__pyx_v_K = 0;
8353  PyArrayObject *__pyx_v_grad_psi = 0;
8354  PyArrayObject *__pyx_v_u = 0;
8355  PyArrayObject *__pyx_v_K_rho_g = 0;
8356  PyArrayObject *__pyx_v_penalty = 0;
8357  PyArrayObject *__pyx_v_diffusiveFlux = 0;
8358  int __pyx_lineno = 0;
8359  const char *__pyx_filename = NULL;
8360  int __pyx_clineno = 0;
8361  PyObject *__pyx_r = 0;
8362  __Pyx_RefNannyDeclarations
8363  __Pyx_RefNannySetupContext("calculateExteriorNumericalFluxRichards_sd (wrapper)", 0);
8364  {
8365  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_isSeepageFace,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_n,&__pyx_n_s_bc_u,&__pyx_n_s_K,&__pyx_n_s_grad_psi,&__pyx_n_s_u,&__pyx_n_s_K_rho_g,&__pyx_n_s_penalty,&__pyx_n_s_diffusiveFlux,0};
8366  PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
8367  if (unlikely(__pyx_kwds)) {
8368  Py_ssize_t kw_args;
8369  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
8370  switch (pos_args) {
8371  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
8372  CYTHON_FALLTHROUGH;
8373  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
8374  CYTHON_FALLTHROUGH;
8375  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
8376  CYTHON_FALLTHROUGH;
8377  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
8378  CYTHON_FALLTHROUGH;
8379  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
8380  CYTHON_FALLTHROUGH;
8381  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
8382  CYTHON_FALLTHROUGH;
8383  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
8384  CYTHON_FALLTHROUGH;
8385  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
8386  CYTHON_FALLTHROUGH;
8387  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8388  CYTHON_FALLTHROUGH;
8389  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8390  CYTHON_FALLTHROUGH;
8391  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8392  CYTHON_FALLTHROUGH;
8393  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8394  CYTHON_FALLTHROUGH;
8395  case 0: break;
8396  default: goto __pyx_L5_argtuple_error;
8397  }
8398  kw_args = PyDict_Size(__pyx_kwds);
8399  switch (pos_args) {
8400  case 0:
8401  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
8402  else goto __pyx_L5_argtuple_error;
8403  CYTHON_FALLTHROUGH;
8404  case 1:
8405  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
8406  else {
8407  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxRichards_sd", 1, 12, 12, 1); __PYX_ERR(0, 2870, __pyx_L3_error)
8408  }
8409  CYTHON_FALLTHROUGH;
8410  case 2:
8411  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isSeepageFace)) != 0)) kw_args--;
8412  else {
8413  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxRichards_sd", 1, 12, 12, 2); __PYX_ERR(0, 2870, __pyx_L3_error)
8414  }
8415  CYTHON_FALLTHROUGH;
8416  case 3:
8417  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
8418  else {
8419  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxRichards_sd", 1, 12, 12, 3); __PYX_ERR(0, 2870, __pyx_L3_error)
8420  }
8421  CYTHON_FALLTHROUGH;
8422  case 4:
8423  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
8424  else {
8425  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxRichards_sd", 1, 12, 12, 4); __PYX_ERR(0, 2870, __pyx_L3_error)
8426  }
8427  CYTHON_FALLTHROUGH;
8428  case 5:
8429  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
8430  else {
8431  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxRichards_sd", 1, 12, 12, 5); __PYX_ERR(0, 2870, __pyx_L3_error)
8432  }
8433  CYTHON_FALLTHROUGH;
8434  case 6:
8435  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_K)) != 0)) kw_args--;
8436  else {
8437  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxRichards_sd", 1, 12, 12, 6); __PYX_ERR(0, 2870, __pyx_L3_error)
8438  }
8439  CYTHON_FALLTHROUGH;
8440  case 7:
8441  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_psi)) != 0)) kw_args--;
8442  else {
8443  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxRichards_sd", 1, 12, 12, 7); __PYX_ERR(0, 2870, __pyx_L3_error)
8444  }
8445  CYTHON_FALLTHROUGH;
8446  case 8:
8447  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
8448  else {
8449  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxRichards_sd", 1, 12, 12, 8); __PYX_ERR(0, 2870, __pyx_L3_error)
8450  }
8451  CYTHON_FALLTHROUGH;
8452  case 9:
8453  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_K_rho_g)) != 0)) kw_args--;
8454  else {
8455  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxRichards_sd", 1, 12, 12, 9); __PYX_ERR(0, 2870, __pyx_L3_error)
8456  }
8457  CYTHON_FALLTHROUGH;
8458  case 10:
8459  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
8460  else {
8461  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxRichards_sd", 1, 12, 12, 10); __PYX_ERR(0, 2870, __pyx_L3_error)
8462  }
8463  CYTHON_FALLTHROUGH;
8464  case 11:
8465  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux)) != 0)) kw_args--;
8466  else {
8467  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxRichards_sd", 1, 12, 12, 11); __PYX_ERR(0, 2870, __pyx_L3_error)
8468  }
8469  }
8470  if (unlikely(kw_args > 0)) {
8471  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalFluxRichards_sd") < 0)) __PYX_ERR(0, 2870, __pyx_L3_error)
8472  }
8473  } else if (PyTuple_GET_SIZE(__pyx_args) != 12) {
8474  goto __pyx_L5_argtuple_error;
8475  } else {
8476  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8477  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8478  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8479  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8480  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
8481  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
8482  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
8483  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
8484  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
8485  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
8486  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
8487  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
8488  }
8489  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
8490  __pyx_v_colind = ((PyArrayObject *)values[1]);
8491  __pyx_v_isSeepageFace = ((PyArrayObject *)values[2]);
8492  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[3]);
8493  __pyx_v_n = ((PyArrayObject *)values[4]);
8494  __pyx_v_bc_u = ((PyArrayObject *)values[5]);
8495  __pyx_v_K = ((PyArrayObject *)values[6]);
8496  __pyx_v_grad_psi = ((PyArrayObject *)values[7]);
8497  __pyx_v_u = ((PyArrayObject *)values[8]);
8498  __pyx_v_K_rho_g = ((PyArrayObject *)values[9]);
8499  __pyx_v_penalty = ((PyArrayObject *)values[10]);
8500  __pyx_v_diffusiveFlux = ((PyArrayObject *)values[11]);
8501  }
8502  goto __pyx_L4_argument_unpacking_done;
8503  __pyx_L5_argtuple_error:;
8504  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxRichards_sd", 1, 12, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2870, __pyx_L3_error)
8505  __pyx_L3_error:;
8506  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalFluxRichards_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
8507  __Pyx_RefNannyFinishContext();
8508  return NULL;
8509  __pyx_L4_argument_unpacking_done:;
8510  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 2870, __pyx_L1_error)
8511  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 2871, __pyx_L1_error)
8512  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isSeepageFace), __pyx_ptype_5numpy_ndarray, 1, "isSeepageFace", 0))) __PYX_ERR(0, 2872, __pyx_L1_error)
8513  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 2873, __pyx_L1_error)
8514  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2874, __pyx_L1_error)
8515  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 2875, __pyx_L1_error)
8516  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_K), __pyx_ptype_5numpy_ndarray, 1, "K", 0))) __PYX_ERR(0, 2876, __pyx_L1_error)
8517  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_psi), __pyx_ptype_5numpy_ndarray, 1, "grad_psi", 0))) __PYX_ERR(0, 2877, __pyx_L1_error)
8518  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 2878, __pyx_L1_error)
8519  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_K_rho_g), __pyx_ptype_5numpy_ndarray, 1, "K_rho_g", 0))) __PYX_ERR(0, 2879, __pyx_L1_error)
8520  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 2880, __pyx_L1_error)
8521  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux", 0))) __PYX_ERR(0, 2881, __pyx_L1_error)
8522  __pyx_r = __pyx_pf_14cnumericalFlux_44calculateExteriorNumericalFluxRichards_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_isSeepageFace, __pyx_v_isDOFBoundary, __pyx_v_n, __pyx_v_bc_u, __pyx_v_K, __pyx_v_grad_psi, __pyx_v_u, __pyx_v_K_rho_g, __pyx_v_penalty, __pyx_v_diffusiveFlux);
8523 
8524  /* function exit code */
8525  goto __pyx_L0;
8526  __pyx_L1_error:;
8527  __pyx_r = NULL;
8528  __pyx_L0:;
8529  __Pyx_RefNannyFinishContext();
8530  return __pyx_r;
8531 }
8532 
8533 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) {
8534  PyObject *__pyx_r = NULL;
8535  __Pyx_RefNannyDeclarations
8536  __Pyx_RefNannySetupContext("calculateExteriorNumericalFluxRichards_sd", 0);
8537 
8538  /* "cnumericalFlux.pyx":2882
8539  * np.ndarray penalty,
8540  * np.ndarray diffusiveFlux):
8541  * ccalculateExteriorNumericalFluxRichards_sd(<int*> rowptr.data, # <<<<<<<<<<<<<<
8542  * <int*> colind.data,
8543  * n.shape[0],
8544  */
8545  calculateExteriorNumericalFluxRichards_sd(((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), (__pyx_v_n->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), ((int *)__pyx_v_isSeepageFace->data), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_u->data), ((double *)__pyx_v_K->data), ((double *)__pyx_v_grad_psi->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_K_rho_g->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_diffusiveFlux->data));
8546 
8547  /* "cnumericalFlux.pyx":2870
8548  * <double*> fluxJacobian_w_v.data,
8549  * <double*> fluxJacobian_w_w.data)
8550  * def calculateExteriorNumericalFluxRichards_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
8551  * np.ndarray colind,
8552  * np.ndarray isSeepageFace,
8553  */
8554 
8555  /* function exit code */
8556  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8557  __Pyx_XGIVEREF(__pyx_r);
8558  __Pyx_RefNannyFinishContext();
8559  return __pyx_r;
8560 }
8561 
8562 /* "cnumericalFlux.pyx":2897
8563  * <double*> penalty.data,
8564  * <double*> diffusiveFlux.data)
8565  * def calculateExteriorNumericalFluxJacobianRichards_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
8566  * np.ndarray colind,
8567  * np.ndarray isDOFBoundary,
8568  */
8569 
8570 /* Python wrapper */
8571 static PyObject *__pyx_pw_14cnumericalFlux_47calculateExteriorNumericalFluxJacobianRichards_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
8572 static PyMethodDef __pyx_mdef_14cnumericalFlux_47calculateExteriorNumericalFluxJacobianRichards_sd = {"calculateExteriorNumericalFluxJacobianRichards_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_47calculateExteriorNumericalFluxJacobianRichards_sd, METH_VARARGS|METH_KEYWORDS, 0};
8573 static PyObject *__pyx_pw_14cnumericalFlux_47calculateExteriorNumericalFluxJacobianRichards_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
8574  PyArrayObject *__pyx_v_rowptr = 0;
8575  PyArrayObject *__pyx_v_colind = 0;
8576  PyArrayObject *__pyx_v_isDOFBoundary = 0;
8577  PyArrayObject *__pyx_v_n = 0;
8578  PyArrayObject *__pyx_v_bc_u = 0;
8579  PyArrayObject *__pyx_v_K = 0;
8580  PyArrayObject *__pyx_v_dK = 0;
8581  PyArrayObject *__pyx_v_grad_psi = 0;
8582  PyArrayObject *__pyx_v_grad_v = 0;
8583  PyArrayObject *__pyx_v_u = 0;
8584  PyArrayObject *__pyx_v_dK_rho_g = 0;
8585  PyArrayObject *__pyx_v_v = 0;
8586  PyArrayObject *__pyx_v_penalty = 0;
8587  PyArrayObject *__pyx_v_fluxJacobian = 0;
8588  int __pyx_lineno = 0;
8589  const char *__pyx_filename = NULL;
8590  int __pyx_clineno = 0;
8591  PyObject *__pyx_r = 0;
8592  __Pyx_RefNannyDeclarations
8593  __Pyx_RefNannySetupContext("calculateExteriorNumericalFluxJacobianRichards_sd (wrapper)", 0);
8594  {
8595  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_n,&__pyx_n_s_bc_u,&__pyx_n_s_K,&__pyx_n_s_dK,&__pyx_n_s_grad_psi,&__pyx_n_s_grad_v,&__pyx_n_s_u,&__pyx_n_s_dK_rho_g,&__pyx_n_s_v,&__pyx_n_s_penalty,&__pyx_n_s_fluxJacobian,0};
8596  PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
8597  if (unlikely(__pyx_kwds)) {
8598  Py_ssize_t kw_args;
8599  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
8600  switch (pos_args) {
8601  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
8602  CYTHON_FALLTHROUGH;
8603  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
8604  CYTHON_FALLTHROUGH;
8605  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
8606  CYTHON_FALLTHROUGH;
8607  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
8608  CYTHON_FALLTHROUGH;
8609  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
8610  CYTHON_FALLTHROUGH;
8611  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
8612  CYTHON_FALLTHROUGH;
8613  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
8614  CYTHON_FALLTHROUGH;
8615  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
8616  CYTHON_FALLTHROUGH;
8617  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
8618  CYTHON_FALLTHROUGH;
8619  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
8620  CYTHON_FALLTHROUGH;
8621  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8622  CYTHON_FALLTHROUGH;
8623  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8624  CYTHON_FALLTHROUGH;
8625  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8626  CYTHON_FALLTHROUGH;
8627  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8628  CYTHON_FALLTHROUGH;
8629  case 0: break;
8630  default: goto __pyx_L5_argtuple_error;
8631  }
8632  kw_args = PyDict_Size(__pyx_kwds);
8633  switch (pos_args) {
8634  case 0:
8635  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
8636  else goto __pyx_L5_argtuple_error;
8637  CYTHON_FALLTHROUGH;
8638  case 1:
8639  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
8640  else {
8641  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxJacobianRichards_sd", 1, 14, 14, 1); __PYX_ERR(0, 2897, __pyx_L3_error)
8642  }
8643  CYTHON_FALLTHROUGH;
8644  case 2:
8645  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
8646  else {
8647  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxJacobianRichards_sd", 1, 14, 14, 2); __PYX_ERR(0, 2897, __pyx_L3_error)
8648  }
8649  CYTHON_FALLTHROUGH;
8650  case 3:
8651  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
8652  else {
8653  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxJacobianRichards_sd", 1, 14, 14, 3); __PYX_ERR(0, 2897, __pyx_L3_error)
8654  }
8655  CYTHON_FALLTHROUGH;
8656  case 4:
8657  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
8658  else {
8659  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxJacobianRichards_sd", 1, 14, 14, 4); __PYX_ERR(0, 2897, __pyx_L3_error)
8660  }
8661  CYTHON_FALLTHROUGH;
8662  case 5:
8663  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_K)) != 0)) kw_args--;
8664  else {
8665  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxJacobianRichards_sd", 1, 14, 14, 5); __PYX_ERR(0, 2897, __pyx_L3_error)
8666  }
8667  CYTHON_FALLTHROUGH;
8668  case 6:
8669  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dK)) != 0)) kw_args--;
8670  else {
8671  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxJacobianRichards_sd", 1, 14, 14, 6); __PYX_ERR(0, 2897, __pyx_L3_error)
8672  }
8673  CYTHON_FALLTHROUGH;
8674  case 7:
8675  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_psi)) != 0)) kw_args--;
8676  else {
8677  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxJacobianRichards_sd", 1, 14, 14, 7); __PYX_ERR(0, 2897, __pyx_L3_error)
8678  }
8679  CYTHON_FALLTHROUGH;
8680  case 8:
8681  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
8682  else {
8683  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxJacobianRichards_sd", 1, 14, 14, 8); __PYX_ERR(0, 2897, __pyx_L3_error)
8684  }
8685  CYTHON_FALLTHROUGH;
8686  case 9:
8687  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
8688  else {
8689  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxJacobianRichards_sd", 1, 14, 14, 9); __PYX_ERR(0, 2897, __pyx_L3_error)
8690  }
8691  CYTHON_FALLTHROUGH;
8692  case 10:
8693  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dK_rho_g)) != 0)) kw_args--;
8694  else {
8695  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxJacobianRichards_sd", 1, 14, 14, 10); __PYX_ERR(0, 2897, __pyx_L3_error)
8696  }
8697  CYTHON_FALLTHROUGH;
8698  case 11:
8699  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
8700  else {
8701  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxJacobianRichards_sd", 1, 14, 14, 11); __PYX_ERR(0, 2897, __pyx_L3_error)
8702  }
8703  CYTHON_FALLTHROUGH;
8704  case 12:
8705  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
8706  else {
8707  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxJacobianRichards_sd", 1, 14, 14, 12); __PYX_ERR(0, 2897, __pyx_L3_error)
8708  }
8709  CYTHON_FALLTHROUGH;
8710  case 13:
8711  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
8712  else {
8713  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxJacobianRichards_sd", 1, 14, 14, 13); __PYX_ERR(0, 2897, __pyx_L3_error)
8714  }
8715  }
8716  if (unlikely(kw_args > 0)) {
8717  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalFluxJacobianRichards_sd") < 0)) __PYX_ERR(0, 2897, __pyx_L3_error)
8718  }
8719  } else if (PyTuple_GET_SIZE(__pyx_args) != 14) {
8720  goto __pyx_L5_argtuple_error;
8721  } else {
8722  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8723  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8724  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8725  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8726  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
8727  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
8728  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
8729  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
8730  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
8731  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
8732  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
8733  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
8734  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
8735  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
8736  }
8737  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
8738  __pyx_v_colind = ((PyArrayObject *)values[1]);
8739  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[2]);
8740  __pyx_v_n = ((PyArrayObject *)values[3]);
8741  __pyx_v_bc_u = ((PyArrayObject *)values[4]);
8742  __pyx_v_K = ((PyArrayObject *)values[5]);
8743  __pyx_v_dK = ((PyArrayObject *)values[6]);
8744  __pyx_v_grad_psi = ((PyArrayObject *)values[7]);
8745  __pyx_v_grad_v = ((PyArrayObject *)values[8]);
8746  __pyx_v_u = ((PyArrayObject *)values[9]);
8747  __pyx_v_dK_rho_g = ((PyArrayObject *)values[10]);
8748  __pyx_v_v = ((PyArrayObject *)values[11]);
8749  __pyx_v_penalty = ((PyArrayObject *)values[12]);
8750  __pyx_v_fluxJacobian = ((PyArrayObject *)values[13]);
8751  }
8752  goto __pyx_L4_argument_unpacking_done;
8753  __pyx_L5_argtuple_error:;
8754  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxJacobianRichards_sd", 1, 14, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2897, __pyx_L3_error)
8755  __pyx_L3_error:;
8756  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalFluxJacobianRichards_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
8757  __Pyx_RefNannyFinishContext();
8758  return NULL;
8759  __pyx_L4_argument_unpacking_done:;
8760  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 2897, __pyx_L1_error)
8761  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 2898, __pyx_L1_error)
8762  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 2899, __pyx_L1_error)
8763  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2900, __pyx_L1_error)
8764  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 2901, __pyx_L1_error)
8765  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_K), __pyx_ptype_5numpy_ndarray, 1, "K", 0))) __PYX_ERR(0, 2902, __pyx_L1_error)
8766  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dK), __pyx_ptype_5numpy_ndarray, 1, "dK", 0))) __PYX_ERR(0, 2903, __pyx_L1_error)
8767  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_psi), __pyx_ptype_5numpy_ndarray, 1, "grad_psi", 0))) __PYX_ERR(0, 2904, __pyx_L1_error)
8768  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 2905, __pyx_L1_error)
8769  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 2906, __pyx_L1_error)
8770  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dK_rho_g), __pyx_ptype_5numpy_ndarray, 1, "dK_rho_g", 0))) __PYX_ERR(0, 2907, __pyx_L1_error)
8771  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 2908, __pyx_L1_error)
8772  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 2909, __pyx_L1_error)
8773  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 2910, __pyx_L1_error)
8774  __pyx_r = __pyx_pf_14cnumericalFlux_46calculateExteriorNumericalFluxJacobianRichards_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_isDOFBoundary, __pyx_v_n, __pyx_v_bc_u, __pyx_v_K, __pyx_v_dK, __pyx_v_grad_psi, __pyx_v_grad_v, __pyx_v_u, __pyx_v_dK_rho_g, __pyx_v_v, __pyx_v_penalty, __pyx_v_fluxJacobian);
8775 
8776  /* function exit code */
8777  goto __pyx_L0;
8778  __pyx_L1_error:;
8779  __pyx_r = NULL;
8780  __pyx_L0:;
8781  __Pyx_RefNannyFinishContext();
8782  return __pyx_r;
8783 }
8784 
8785 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) {
8786  PyObject *__pyx_r = NULL;
8787  __Pyx_RefNannyDeclarations
8788  __Pyx_RefNannySetupContext("calculateExteriorNumericalFluxJacobianRichards_sd", 0);
8789 
8790  /* "cnumericalFlux.pyx":2911
8791  * np.ndarray penalty,
8792  * np.ndarray fluxJacobian):
8793  * ccalculateExteriorNumericalFluxJacobianRichards_sd(<int*> rowptr.data, # <<<<<<<<<<<<<<
8794  * <int*> colind.data,
8795  * grad_v.shape[0],
8796  */
8797  calculateExteriorNumericalFluxJacobianRichards_sd(((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), (__pyx_v_grad_v->dimensions[0]), (__pyx_v_grad_v->dimensions[1]), (__pyx_v_grad_v->dimensions[2]), (__pyx_v_grad_v->dimensions[3]), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_u->data), ((double *)__pyx_v_K->data), ((double *)__pyx_v_dK->data), ((double *)__pyx_v_grad_psi->data), ((double *)__pyx_v_grad_v->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_dK_rho_g->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_fluxJacobian->data));
8798 
8799  /* "cnumericalFlux.pyx":2897
8800  * <double*> penalty.data,
8801  * <double*> diffusiveFlux.data)
8802  * def calculateExteriorNumericalFluxJacobianRichards_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
8803  * np.ndarray colind,
8804  * np.ndarray isDOFBoundary,
8805  */
8806 
8807  /* function exit code */
8808  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8809  __Pyx_XGIVEREF(__pyx_r);
8810  __Pyx_RefNannyFinishContext();
8811  return __pyx_r;
8812 }
8813 
8814 /* "cnumericalFlux.pyx":2929
8815  * <double*> penalty.data,
8816  * <double*> fluxJacobian.data)
8817  * def calculateExteriorNumericalAdvectiveFluxStokes2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
8818  * np.ndarray elementBoundaryElements,
8819  * np.ndarray elementBoundaryLocalElementBoundaries,
8820  */
8821 
8822 /* Python wrapper */
8823 static PyObject *__pyx_pw_14cnumericalFlux_49calculateExteriorNumericalAdvectiveFluxStokes2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
8824 static PyMethodDef __pyx_mdef_14cnumericalFlux_49calculateExteriorNumericalAdvectiveFluxStokes2D = {"calculateExteriorNumericalAdvectiveFluxStokes2D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_49calculateExteriorNumericalAdvectiveFluxStokes2D, METH_VARARGS|METH_KEYWORDS, 0};
8825 static PyObject *__pyx_pw_14cnumericalFlux_49calculateExteriorNumericalAdvectiveFluxStokes2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
8826  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
8827  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
8828  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
8829  PyArrayObject *__pyx_v_isDOFBoundary_p = 0;
8830  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
8831  PyArrayObject *__pyx_v_isDOFBoundary_v = 0;
8832  PyArrayObject *__pyx_v_n = 0;
8833  PyArrayObject *__pyx_v_bc_p = 0;
8834  PyArrayObject *__pyx_v_bc_f_mass = 0;
8835  PyArrayObject *__pyx_v_p = 0;
8836  PyArrayObject *__pyx_v_f_mass = 0;
8837  PyArrayObject *__pyx_v_df_mass_du = 0;
8838  PyArrayObject *__pyx_v_df_mass_dv = 0;
8839  PyArrayObject *__pyx_v_flux_mass = 0;
8840  PyArrayObject *__pyx_v_flux_umom = 0;
8841  PyArrayObject *__pyx_v_flux_vmom = 0;
8842  PyArrayObject *__pyx_v_dflux_mass_du = 0;
8843  PyArrayObject *__pyx_v_dflux_mass_dv = 0;
8844  PyArrayObject *__pyx_v_dflux_umom_dp = 0;
8845  PyArrayObject *__pyx_v_dflux_vmom_dp = 0;
8846  PyArrayObject *__pyx_v_velocity = 0;
8847  int __pyx_lineno = 0;
8848  const char *__pyx_filename = NULL;
8849  int __pyx_clineno = 0;
8850  PyObject *__pyx_r = 0;
8851  __Pyx_RefNannyDeclarations
8852  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxStokes2D (wrapper)", 0);
8853  {
8854  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_p,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_isDOFBoundary_v,&__pyx_n_s_n,&__pyx_n_s_bc_p,&__pyx_n_s_bc_f_mass,&__pyx_n_s_p,&__pyx_n_s_f_mass,&__pyx_n_s_df_mass_du,&__pyx_n_s_df_mass_dv,&__pyx_n_s_flux_mass,&__pyx_n_s_flux_umom,&__pyx_n_s_flux_vmom,&__pyx_n_s_dflux_mass_du,&__pyx_n_s_dflux_mass_dv,&__pyx_n_s_dflux_umom_dp,&__pyx_n_s_dflux_vmom_dp,&__pyx_n_s_velocity,0};
8855  PyObject* values[21] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
8856  if (unlikely(__pyx_kwds)) {
8857  Py_ssize_t kw_args;
8858  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
8859  switch (pos_args) {
8860  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
8861  CYTHON_FALLTHROUGH;
8862  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
8863  CYTHON_FALLTHROUGH;
8864  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
8865  CYTHON_FALLTHROUGH;
8866  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
8867  CYTHON_FALLTHROUGH;
8868  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
8869  CYTHON_FALLTHROUGH;
8870  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
8871  CYTHON_FALLTHROUGH;
8872  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
8873  CYTHON_FALLTHROUGH;
8874  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
8875  CYTHON_FALLTHROUGH;
8876  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
8877  CYTHON_FALLTHROUGH;
8878  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
8879  CYTHON_FALLTHROUGH;
8880  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
8881  CYTHON_FALLTHROUGH;
8882  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
8883  CYTHON_FALLTHROUGH;
8884  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
8885  CYTHON_FALLTHROUGH;
8886  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
8887  CYTHON_FALLTHROUGH;
8888  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
8889  CYTHON_FALLTHROUGH;
8890  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
8891  CYTHON_FALLTHROUGH;
8892  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
8893  CYTHON_FALLTHROUGH;
8894  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8895  CYTHON_FALLTHROUGH;
8896  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8897  CYTHON_FALLTHROUGH;
8898  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8899  CYTHON_FALLTHROUGH;
8900  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8901  CYTHON_FALLTHROUGH;
8902  case 0: break;
8903  default: goto __pyx_L5_argtuple_error;
8904  }
8905  kw_args = PyDict_Size(__pyx_kwds);
8906  switch (pos_args) {
8907  case 0:
8908  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
8909  else goto __pyx_L5_argtuple_error;
8910  CYTHON_FALLTHROUGH;
8911  case 1:
8912  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
8913  else {
8914  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 1); __PYX_ERR(0, 2929, __pyx_L3_error)
8915  }
8916  CYTHON_FALLTHROUGH;
8917  case 2:
8918  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
8919  else {
8920  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 2); __PYX_ERR(0, 2929, __pyx_L3_error)
8921  }
8922  CYTHON_FALLTHROUGH;
8923  case 3:
8924  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_p)) != 0)) kw_args--;
8925  else {
8926  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 3); __PYX_ERR(0, 2929, __pyx_L3_error)
8927  }
8928  CYTHON_FALLTHROUGH;
8929  case 4:
8930  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
8931  else {
8932  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 4); __PYX_ERR(0, 2929, __pyx_L3_error)
8933  }
8934  CYTHON_FALLTHROUGH;
8935  case 5:
8936  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_v)) != 0)) kw_args--;
8937  else {
8938  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 5); __PYX_ERR(0, 2929, __pyx_L3_error)
8939  }
8940  CYTHON_FALLTHROUGH;
8941  case 6:
8942  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
8943  else {
8944  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 6); __PYX_ERR(0, 2929, __pyx_L3_error)
8945  }
8946  CYTHON_FALLTHROUGH;
8947  case 7:
8948  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_p)) != 0)) kw_args--;
8949  else {
8950  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 7); __PYX_ERR(0, 2929, __pyx_L3_error)
8951  }
8952  CYTHON_FALLTHROUGH;
8953  case 8:
8954  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_mass)) != 0)) kw_args--;
8955  else {
8956  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 8); __PYX_ERR(0, 2929, __pyx_L3_error)
8957  }
8958  CYTHON_FALLTHROUGH;
8959  case 9:
8960  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--;
8961  else {
8962  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 9); __PYX_ERR(0, 2929, __pyx_L3_error)
8963  }
8964  CYTHON_FALLTHROUGH;
8965  case 10:
8966  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_mass)) != 0)) kw_args--;
8967  else {
8968  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 10); __PYX_ERR(0, 2929, __pyx_L3_error)
8969  }
8970  CYTHON_FALLTHROUGH;
8971  case 11:
8972  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_du)) != 0)) kw_args--;
8973  else {
8974  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 11); __PYX_ERR(0, 2929, __pyx_L3_error)
8975  }
8976  CYTHON_FALLTHROUGH;
8977  case 12:
8978  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_dv)) != 0)) kw_args--;
8979  else {
8980  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 12); __PYX_ERR(0, 2929, __pyx_L3_error)
8981  }
8982  CYTHON_FALLTHROUGH;
8983  case 13:
8984  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_mass)) != 0)) kw_args--;
8985  else {
8986  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 13); __PYX_ERR(0, 2929, __pyx_L3_error)
8987  }
8988  CYTHON_FALLTHROUGH;
8989  case 14:
8990  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_umom)) != 0)) kw_args--;
8991  else {
8992  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 14); __PYX_ERR(0, 2929, __pyx_L3_error)
8993  }
8994  CYTHON_FALLTHROUGH;
8995  case 15:
8996  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_vmom)) != 0)) kw_args--;
8997  else {
8998  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 15); __PYX_ERR(0, 2929, __pyx_L3_error)
8999  }
9000  CYTHON_FALLTHROUGH;
9001  case 16:
9002  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_du)) != 0)) kw_args--;
9003  else {
9004  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 16); __PYX_ERR(0, 2929, __pyx_L3_error)
9005  }
9006  CYTHON_FALLTHROUGH;
9007  case 17:
9008  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_dv)) != 0)) kw_args--;
9009  else {
9010  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 17); __PYX_ERR(0, 2929, __pyx_L3_error)
9011  }
9012  CYTHON_FALLTHROUGH;
9013  case 18:
9014  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_dp)) != 0)) kw_args--;
9015  else {
9016  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 18); __PYX_ERR(0, 2929, __pyx_L3_error)
9017  }
9018  CYTHON_FALLTHROUGH;
9019  case 19:
9020  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_dp)) != 0)) kw_args--;
9021  else {
9022  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 19); __PYX_ERR(0, 2929, __pyx_L3_error)
9023  }
9024  CYTHON_FALLTHROUGH;
9025  case 20:
9026  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_velocity)) != 0)) kw_args--;
9027  else {
9028  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 20); __PYX_ERR(0, 2929, __pyx_L3_error)
9029  }
9030  }
9031  if (unlikely(kw_args > 0)) {
9032  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalAdvectiveFluxStokes2D") < 0)) __PYX_ERR(0, 2929, __pyx_L3_error)
9033  }
9034  } else if (PyTuple_GET_SIZE(__pyx_args) != 21) {
9035  goto __pyx_L5_argtuple_error;
9036  } else {
9037  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
9038  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
9039  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
9040  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
9041  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
9042  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
9043  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
9044  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
9045  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
9046  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
9047  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
9048  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
9049  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
9050  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
9051  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
9052  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
9053  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
9054  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
9055  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
9056  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
9057  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
9058  }
9059  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
9060  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
9061  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
9062  __pyx_v_isDOFBoundary_p = ((PyArrayObject *)values[3]);
9063  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[4]);
9064  __pyx_v_isDOFBoundary_v = ((PyArrayObject *)values[5]);
9065  __pyx_v_n = ((PyArrayObject *)values[6]);
9066  __pyx_v_bc_p = ((PyArrayObject *)values[7]);
9067  __pyx_v_bc_f_mass = ((PyArrayObject *)values[8]);
9068  __pyx_v_p = ((PyArrayObject *)values[9]);
9069  __pyx_v_f_mass = ((PyArrayObject *)values[10]);
9070  __pyx_v_df_mass_du = ((PyArrayObject *)values[11]);
9071  __pyx_v_df_mass_dv = ((PyArrayObject *)values[12]);
9072  __pyx_v_flux_mass = ((PyArrayObject *)values[13]);
9073  __pyx_v_flux_umom = ((PyArrayObject *)values[14]);
9074  __pyx_v_flux_vmom = ((PyArrayObject *)values[15]);
9075  __pyx_v_dflux_mass_du = ((PyArrayObject *)values[16]);
9076  __pyx_v_dflux_mass_dv = ((PyArrayObject *)values[17]);
9077  __pyx_v_dflux_umom_dp = ((PyArrayObject *)values[18]);
9078  __pyx_v_dflux_vmom_dp = ((PyArrayObject *)values[19]);
9079  __pyx_v_velocity = ((PyArrayObject *)values[20]);
9080  }
9081  goto __pyx_L4_argument_unpacking_done;
9082  __pyx_L5_argtuple_error:;
9083  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2929, __pyx_L3_error)
9084  __pyx_L3_error:;
9085  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalAdvectiveFluxStokes2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
9086  __Pyx_RefNannyFinishContext();
9087  return NULL;
9088  __pyx_L4_argument_unpacking_done:;
9089  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 2929, __pyx_L1_error)
9090  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2930, __pyx_L1_error)
9091  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2931, __pyx_L1_error)
9092  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_p), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_p", 0))) __PYX_ERR(0, 2932, __pyx_L1_error)
9093  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 2933, __pyx_L1_error)
9094  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_v", 0))) __PYX_ERR(0, 2934, __pyx_L1_error)
9095  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2935, __pyx_L1_error)
9096  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_p), __pyx_ptype_5numpy_ndarray, 1, "bc_p", 0))) __PYX_ERR(0, 2936, __pyx_L1_error)
9097  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_mass), __pyx_ptype_5numpy_ndarray, 1, "bc_f_mass", 0))) __PYX_ERR(0, 2937, __pyx_L1_error)
9098  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p), __pyx_ptype_5numpy_ndarray, 1, "p", 0))) __PYX_ERR(0, 2938, __pyx_L1_error)
9099  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_mass), __pyx_ptype_5numpy_ndarray, 1, "f_mass", 0))) __PYX_ERR(0, 2939, __pyx_L1_error)
9100  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_du), __pyx_ptype_5numpy_ndarray, 1, "df_mass_du", 0))) __PYX_ERR(0, 2940, __pyx_L1_error)
9101  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "df_mass_dv", 0))) __PYX_ERR(0, 2941, __pyx_L1_error)
9102  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_mass), __pyx_ptype_5numpy_ndarray, 1, "flux_mass", 0))) __PYX_ERR(0, 2942, __pyx_L1_error)
9103  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_umom), __pyx_ptype_5numpy_ndarray, 1, "flux_umom", 0))) __PYX_ERR(0, 2943, __pyx_L1_error)
9104  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_vmom), __pyx_ptype_5numpy_ndarray, 1, "flux_vmom", 0))) __PYX_ERR(0, 2944, __pyx_L1_error)
9105  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_du", 0))) __PYX_ERR(0, 2945, __pyx_L1_error)
9106  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_dv", 0))) __PYX_ERR(0, 2946, __pyx_L1_error)
9107  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_dp", 0))) __PYX_ERR(0, 2947, __pyx_L1_error)
9108  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_dp", 0))) __PYX_ERR(0, 2948, __pyx_L1_error)
9109  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_velocity), __pyx_ptype_5numpy_ndarray, 1, "velocity", 0))) __PYX_ERR(0, 2949, __pyx_L1_error)
9110  __pyx_r = __pyx_pf_14cnumericalFlux_48calculateExteriorNumericalAdvectiveFluxStokes2D(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_p, __pyx_v_isDOFBoundary_u, __pyx_v_isDOFBoundary_v, __pyx_v_n, __pyx_v_bc_p, __pyx_v_bc_f_mass, __pyx_v_p, __pyx_v_f_mass, __pyx_v_df_mass_du, __pyx_v_df_mass_dv, __pyx_v_flux_mass, __pyx_v_flux_umom, __pyx_v_flux_vmom, __pyx_v_dflux_mass_du, __pyx_v_dflux_mass_dv, __pyx_v_dflux_umom_dp, __pyx_v_dflux_vmom_dp, __pyx_v_velocity);
9111 
9112  /* function exit code */
9113  goto __pyx_L0;
9114  __pyx_L1_error:;
9115  __pyx_r = NULL;
9116  __pyx_L0:;
9117  __Pyx_RefNannyFinishContext();
9118  return __pyx_r;
9119 }
9120 
9121 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) {
9122  PyObject *__pyx_r = NULL;
9123  __Pyx_RefNannyDeclarations
9124  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxStokes2D", 0);
9125 
9126  /* "cnumericalFlux.pyx":2950
9127  * np.ndarray dflux_vmom_dp,
9128  * np.ndarray velocity):
9129  * ccalculateGlobalExteriorNumericalAdvectiveFluxStokes2D(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
9130  * f_mass.shape[1],
9131  * f_mass.shape[2],
9132  */
9133  calculateGlobalExteriorNumericalAdvectiveFluxStokes2D((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_f_mass->dimensions[1]), (__pyx_v_f_mass->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_p->data), ((double *)__pyx_v_bc_f_mass->data), ((double *)__pyx_v_p->data), ((double *)__pyx_v_f_mass->data), ((double *)__pyx_v_df_mass_du->data), ((double *)__pyx_v_df_mass_dv->data), ((double *)__pyx_v_flux_mass->data), ((double *)__pyx_v_flux_umom->data), ((double *)__pyx_v_flux_vmom->data), ((double *)__pyx_v_dflux_mass_du->data), ((double *)__pyx_v_dflux_mass_dv->data), ((double *)__pyx_v_dflux_umom_dp->data), ((double *)__pyx_v_dflux_vmom_dp->data), ((double *)__pyx_v_velocity->data));
9134 
9135  /* "cnumericalFlux.pyx":2929
9136  * <double*> penalty.data,
9137  * <double*> fluxJacobian.data)
9138  * def calculateExteriorNumericalAdvectiveFluxStokes2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
9139  * np.ndarray elementBoundaryElements,
9140  * np.ndarray elementBoundaryLocalElementBoundaries,
9141  */
9142 
9143  /* function exit code */
9144  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9145  __Pyx_XGIVEREF(__pyx_r);
9146  __Pyx_RefNannyFinishContext();
9147  return __pyx_r;
9148 }
9149 
9150 /* "cnumericalFlux.pyx":2976
9151  * ####=========
9152  *
9153  * def calculateInteriorNumericalDiffusiveFlux_sd( np.ndarray rowptr, # <<<<<<<<<<<<<<
9154  * np.ndarray colind,
9155  * np.ndarray interiorElementBoundaries,
9156  */
9157 
9158 /* Python wrapper */
9159 static PyObject *__pyx_pw_14cnumericalFlux_51calculateInteriorNumericalDiffusiveFlux_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
9160 static PyMethodDef __pyx_mdef_14cnumericalFlux_51calculateInteriorNumericalDiffusiveFlux_sd = {"calculateInteriorNumericalDiffusiveFlux_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_51calculateInteriorNumericalDiffusiveFlux_sd, METH_VARARGS|METH_KEYWORDS, 0};
9161 static PyObject *__pyx_pw_14cnumericalFlux_51calculateInteriorNumericalDiffusiveFlux_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
9162  PyArrayObject *__pyx_v_rowptr = 0;
9163  PyArrayObject *__pyx_v_colind = 0;
9164  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
9165  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
9166  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
9167  PyArrayObject *__pyx_v_n = 0;
9168  PyArrayObject *__pyx_v_a = 0;
9169  PyArrayObject *__pyx_v_grad_phi = 0;
9170  PyArrayObject *__pyx_v_u = 0;
9171  PyArrayObject *__pyx_v_penalty = 0;
9172  PyArrayObject *__pyx_v_flux = 0;
9173  int __pyx_v_scale_penalty;
9174  double __pyx_v_penalty_floor;
9175  int __pyx_lineno = 0;
9176  const char *__pyx_filename = NULL;
9177  int __pyx_clineno = 0;
9178  PyObject *__pyx_r = 0;
9179  __Pyx_RefNannyDeclarations
9180  __Pyx_RefNannySetupContext("calculateInteriorNumericalDiffusiveFlux_sd (wrapper)", 0);
9181  {
9182  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__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};
9183  PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
9184  if (unlikely(__pyx_kwds)) {
9185  Py_ssize_t kw_args;
9186  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
9187  switch (pos_args) {
9188  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
9189  CYTHON_FALLTHROUGH;
9190  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
9191  CYTHON_FALLTHROUGH;
9192  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
9193  CYTHON_FALLTHROUGH;
9194  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
9195  CYTHON_FALLTHROUGH;
9196  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
9197  CYTHON_FALLTHROUGH;
9198  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
9199  CYTHON_FALLTHROUGH;
9200  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
9201  CYTHON_FALLTHROUGH;
9202  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
9203  CYTHON_FALLTHROUGH;
9204  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
9205  CYTHON_FALLTHROUGH;
9206  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
9207  CYTHON_FALLTHROUGH;
9208  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
9209  CYTHON_FALLTHROUGH;
9210  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
9211  CYTHON_FALLTHROUGH;
9212  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
9213  CYTHON_FALLTHROUGH;
9214  case 0: break;
9215  default: goto __pyx_L5_argtuple_error;
9216  }
9217  kw_args = PyDict_Size(__pyx_kwds);
9218  switch (pos_args) {
9219  case 0:
9220  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
9221  else goto __pyx_L5_argtuple_error;
9222  CYTHON_FALLTHROUGH;
9223  case 1:
9224  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
9225  else {
9226  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_sd", 0, 11, 13, 1); __PYX_ERR(0, 2976, __pyx_L3_error)
9227  }
9228  CYTHON_FALLTHROUGH;
9229  case 2:
9230  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
9231  else {
9232  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_sd", 0, 11, 13, 2); __PYX_ERR(0, 2976, __pyx_L3_error)
9233  }
9234  CYTHON_FALLTHROUGH;
9235  case 3:
9236  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
9237  else {
9238  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_sd", 0, 11, 13, 3); __PYX_ERR(0, 2976, __pyx_L3_error)
9239  }
9240  CYTHON_FALLTHROUGH;
9241  case 4:
9242  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
9243  else {
9244  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_sd", 0, 11, 13, 4); __PYX_ERR(0, 2976, __pyx_L3_error)
9245  }
9246  CYTHON_FALLTHROUGH;
9247  case 5:
9248  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
9249  else {
9250  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_sd", 0, 11, 13, 5); __PYX_ERR(0, 2976, __pyx_L3_error)
9251  }
9252  CYTHON_FALLTHROUGH;
9253  case 6:
9254  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
9255  else {
9256  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_sd", 0, 11, 13, 6); __PYX_ERR(0, 2976, __pyx_L3_error)
9257  }
9258  CYTHON_FALLTHROUGH;
9259  case 7:
9260  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
9261  else {
9262  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_sd", 0, 11, 13, 7); __PYX_ERR(0, 2976, __pyx_L3_error)
9263  }
9264  CYTHON_FALLTHROUGH;
9265  case 8:
9266  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
9267  else {
9268  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_sd", 0, 11, 13, 8); __PYX_ERR(0, 2976, __pyx_L3_error)
9269  }
9270  CYTHON_FALLTHROUGH;
9271  case 9:
9272  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
9273  else {
9274  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_sd", 0, 11, 13, 9); __PYX_ERR(0, 2976, __pyx_L3_error)
9275  }
9276  CYTHON_FALLTHROUGH;
9277  case 10:
9278  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
9279  else {
9280  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_sd", 0, 11, 13, 10); __PYX_ERR(0, 2976, __pyx_L3_error)
9281  }
9282  CYTHON_FALLTHROUGH;
9283  case 11:
9284  if (kw_args > 0) {
9285  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty);
9286  if (value) { values[11] = value; kw_args--; }
9287  }
9288  CYTHON_FALLTHROUGH;
9289  case 12:
9290  if (kw_args > 0) {
9291  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor);
9292  if (value) { values[12] = value; kw_args--; }
9293  }
9294  }
9295  if (unlikely(kw_args > 0)) {
9296  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateInteriorNumericalDiffusiveFlux_sd") < 0)) __PYX_ERR(0, 2976, __pyx_L3_error)
9297  }
9298  } else {
9299  switch (PyTuple_GET_SIZE(__pyx_args)) {
9300  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
9301  CYTHON_FALLTHROUGH;
9302  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
9303  CYTHON_FALLTHROUGH;
9304  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
9305  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
9306  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
9307  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
9308  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
9309  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
9310  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
9311  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
9312  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
9313  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
9314  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
9315  break;
9316  default: goto __pyx_L5_argtuple_error;
9317  }
9318  }
9319  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
9320  __pyx_v_colind = ((PyArrayObject *)values[1]);
9321  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[2]);
9322  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[3]);
9323  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[4]);
9324  __pyx_v_n = ((PyArrayObject *)values[5]);
9325  __pyx_v_a = ((PyArrayObject *)values[6]);
9326  __pyx_v_grad_phi = ((PyArrayObject *)values[7]);
9327  __pyx_v_u = ((PyArrayObject *)values[8]);
9328  __pyx_v_penalty = ((PyArrayObject *)values[9]);
9329  __pyx_v_flux = ((PyArrayObject *)values[10]);
9330  if (values[11]) {
9331  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[11]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2987, __pyx_L3_error)
9332  } else {
9333  __pyx_v_scale_penalty = ((int)0);
9334  }
9335  if (values[12]) {
9336  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[12]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2988, __pyx_L3_error)
9337  } else {
9338  __pyx_v_penalty_floor = ((double)0.0);
9339  }
9340  }
9341  goto __pyx_L4_argument_unpacking_done;
9342  __pyx_L5_argtuple_error:;
9343  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_sd", 0, 11, 13, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2976, __pyx_L3_error)
9344  __pyx_L3_error:;
9345  __Pyx_AddTraceback("cnumericalFlux.calculateInteriorNumericalDiffusiveFlux_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
9346  __Pyx_RefNannyFinishContext();
9347  return NULL;
9348  __pyx_L4_argument_unpacking_done:;
9349  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 2976, __pyx_L1_error)
9350  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 2977, __pyx_L1_error)
9351  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2978, __pyx_L1_error)
9352  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2979, __pyx_L1_error)
9353  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2980, __pyx_L1_error)
9354  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 2981, __pyx_L1_error)
9355  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 2982, __pyx_L1_error)
9356  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 2983, __pyx_L1_error)
9357  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 2984, __pyx_L1_error)
9358  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 2985, __pyx_L1_error)
9359  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 2986, __pyx_L1_error)
9360  __pyx_r = __pyx_pf_14cnumericalFlux_50calculateInteriorNumericalDiffusiveFlux_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __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);
9361 
9362  /* function exit code */
9363  goto __pyx_L0;
9364  __pyx_L1_error:;
9365  __pyx_r = NULL;
9366  __pyx_L0:;
9367  __Pyx_RefNannyFinishContext();
9368  return __pyx_r;
9369 }
9370 
9371 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) {
9372  PyObject *__pyx_r = NULL;
9373  __Pyx_RefNannyDeclarations
9374  __Pyx_RefNannySetupContext("calculateInteriorNumericalDiffusiveFlux_sd", 0);
9375 
9376  /* "cnumericalFlux.pyx":2989
9377  * int scale_penalty=0,
9378  * double penalty_floor=0.0):
9379  * ccalculateInteriorNumericalDiffusiveFlux_sd( scale_penalty, # <<<<<<<<<<<<<<
9380  * penalty_floor,
9381  * interiorElementBoundaries.shape[0],#nInteriorElementBoundaries_global,
9382  */
9383  calculateInteriorNumericalDiffusiveFlux_sd(__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_rowptr->data), ((int *)__pyx_v_colind->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_grad_phi->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_flux->data));
9384 
9385  /* "cnumericalFlux.pyx":2976
9386  * ####=========
9387  *
9388  * def calculateInteriorNumericalDiffusiveFlux_sd( np.ndarray rowptr, # <<<<<<<<<<<<<<
9389  * np.ndarray colind,
9390  * np.ndarray interiorElementBoundaries,
9391  */
9392 
9393  /* function exit code */
9394  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9395  __Pyx_XGIVEREF(__pyx_r);
9396  __Pyx_RefNannyFinishContext();
9397  return __pyx_r;
9398 }
9399 
9400 /* "cnumericalFlux.pyx":3007
9401  * <double*> flux.data)
9402  *
9403  * def updateInteriorNumericalDiffusiveFluxJacobian_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
9404  * np.ndarray colind,
9405  * np.ndarray l2g,
9406  */
9407 
9408 /* Python wrapper */
9409 static PyObject *__pyx_pw_14cnumericalFlux_53updateInteriorNumericalDiffusiveFluxJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
9410 static PyMethodDef __pyx_mdef_14cnumericalFlux_53updateInteriorNumericalDiffusiveFluxJacobian_sd = {"updateInteriorNumericalDiffusiveFluxJacobian_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_53updateInteriorNumericalDiffusiveFluxJacobian_sd, METH_VARARGS|METH_KEYWORDS, 0};
9411 static PyObject *__pyx_pw_14cnumericalFlux_53updateInteriorNumericalDiffusiveFluxJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
9412  PyArrayObject *__pyx_v_rowptr = 0;
9413  PyArrayObject *__pyx_v_colind = 0;
9414  PyArrayObject *__pyx_v_l2g = 0;
9415  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
9416  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
9417  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
9418  PyArrayObject *__pyx_v_n = 0;
9419  PyArrayObject *__pyx_v_a = 0;
9420  PyArrayObject *__pyx_v_da = 0;
9421  PyArrayObject *__pyx_v_grad_phi = 0;
9422  PyArrayObject *__pyx_v_dphi = 0;
9423  PyArrayObject *__pyx_v_v = 0;
9424  PyArrayObject *__pyx_v_grad_v = 0;
9425  PyArrayObject *__pyx_v_penalty = 0;
9426  PyArrayObject *__pyx_v_fluxJacobian = 0;
9427  int __pyx_v_scale_penalty;
9428  double __pyx_v_penalty_floor;
9429  int __pyx_lineno = 0;
9430  const char *__pyx_filename = NULL;
9431  int __pyx_clineno = 0;
9432  PyObject *__pyx_r = 0;
9433  __Pyx_RefNannyDeclarations
9434  __Pyx_RefNannySetupContext("updateInteriorNumericalDiffusiveFluxJacobian_sd (wrapper)", 0);
9435  {
9436  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__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};
9437  PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
9438  if (unlikely(__pyx_kwds)) {
9439  Py_ssize_t kw_args;
9440  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
9441  switch (pos_args) {
9442  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
9443  CYTHON_FALLTHROUGH;
9444  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
9445  CYTHON_FALLTHROUGH;
9446  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
9447  CYTHON_FALLTHROUGH;
9448  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
9449  CYTHON_FALLTHROUGH;
9450  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
9451  CYTHON_FALLTHROUGH;
9452  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
9453  CYTHON_FALLTHROUGH;
9454  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
9455  CYTHON_FALLTHROUGH;
9456  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
9457  CYTHON_FALLTHROUGH;
9458  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
9459  CYTHON_FALLTHROUGH;
9460  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
9461  CYTHON_FALLTHROUGH;
9462  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
9463  CYTHON_FALLTHROUGH;
9464  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
9465  CYTHON_FALLTHROUGH;
9466  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
9467  CYTHON_FALLTHROUGH;
9468  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
9469  CYTHON_FALLTHROUGH;
9470  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
9471  CYTHON_FALLTHROUGH;
9472  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
9473  CYTHON_FALLTHROUGH;
9474  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
9475  CYTHON_FALLTHROUGH;
9476  case 0: break;
9477  default: goto __pyx_L5_argtuple_error;
9478  }
9479  kw_args = PyDict_Size(__pyx_kwds);
9480  switch (pos_args) {
9481  case 0:
9482  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
9483  else goto __pyx_L5_argtuple_error;
9484  CYTHON_FALLTHROUGH;
9485  case 1:
9486  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
9487  else {
9488  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, 1); __PYX_ERR(0, 3007, __pyx_L3_error)
9489  }
9490  CYTHON_FALLTHROUGH;
9491  case 2:
9492  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
9493  else {
9494  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, 2); __PYX_ERR(0, 3007, __pyx_L3_error)
9495  }
9496  CYTHON_FALLTHROUGH;
9497  case 3:
9498  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
9499  else {
9500  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, 3); __PYX_ERR(0, 3007, __pyx_L3_error)
9501  }
9502  CYTHON_FALLTHROUGH;
9503  case 4:
9504  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
9505  else {
9506  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, 4); __PYX_ERR(0, 3007, __pyx_L3_error)
9507  }
9508  CYTHON_FALLTHROUGH;
9509  case 5:
9510  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
9511  else {
9512  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, 5); __PYX_ERR(0, 3007, __pyx_L3_error)
9513  }
9514  CYTHON_FALLTHROUGH;
9515  case 6:
9516  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
9517  else {
9518  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, 6); __PYX_ERR(0, 3007, __pyx_L3_error)
9519  }
9520  CYTHON_FALLTHROUGH;
9521  case 7:
9522  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
9523  else {
9524  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, 7); __PYX_ERR(0, 3007, __pyx_L3_error)
9525  }
9526  CYTHON_FALLTHROUGH;
9527  case 8:
9528  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
9529  else {
9530  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, 8); __PYX_ERR(0, 3007, __pyx_L3_error)
9531  }
9532  CYTHON_FALLTHROUGH;
9533  case 9:
9534  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
9535  else {
9536  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, 9); __PYX_ERR(0, 3007, __pyx_L3_error)
9537  }
9538  CYTHON_FALLTHROUGH;
9539  case 10:
9540  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
9541  else {
9542  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, 10); __PYX_ERR(0, 3007, __pyx_L3_error)
9543  }
9544  CYTHON_FALLTHROUGH;
9545  case 11:
9546  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
9547  else {
9548  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, 11); __PYX_ERR(0, 3007, __pyx_L3_error)
9549  }
9550  CYTHON_FALLTHROUGH;
9551  case 12:
9552  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
9553  else {
9554  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, 12); __PYX_ERR(0, 3007, __pyx_L3_error)
9555  }
9556  CYTHON_FALLTHROUGH;
9557  case 13:
9558  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
9559  else {
9560  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, 13); __PYX_ERR(0, 3007, __pyx_L3_error)
9561  }
9562  CYTHON_FALLTHROUGH;
9563  case 14:
9564  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
9565  else {
9566  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, 14); __PYX_ERR(0, 3007, __pyx_L3_error)
9567  }
9568  CYTHON_FALLTHROUGH;
9569  case 15:
9570  if (kw_args > 0) {
9571  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty);
9572  if (value) { values[15] = value; kw_args--; }
9573  }
9574  CYTHON_FALLTHROUGH;
9575  case 16:
9576  if (kw_args > 0) {
9577  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor);
9578  if (value) { values[16] = value; kw_args--; }
9579  }
9580  }
9581  if (unlikely(kw_args > 0)) {
9582  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateInteriorNumericalDiffusiveFluxJacobian_sd") < 0)) __PYX_ERR(0, 3007, __pyx_L3_error)
9583  }
9584  } else {
9585  switch (PyTuple_GET_SIZE(__pyx_args)) {
9586  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
9587  CYTHON_FALLTHROUGH;
9588  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
9589  CYTHON_FALLTHROUGH;
9590  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
9591  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
9592  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
9593  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
9594  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
9595  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
9596  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
9597  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
9598  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
9599  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
9600  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
9601  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
9602  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
9603  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
9604  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
9605  break;
9606  default: goto __pyx_L5_argtuple_error;
9607  }
9608  }
9609  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
9610  __pyx_v_colind = ((PyArrayObject *)values[1]);
9611  __pyx_v_l2g = ((PyArrayObject *)values[2]);
9612  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[3]);
9613  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
9614  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
9615  __pyx_v_n = ((PyArrayObject *)values[6]);
9616  __pyx_v_a = ((PyArrayObject *)values[7]);
9617  __pyx_v_da = ((PyArrayObject *)values[8]);
9618  __pyx_v_grad_phi = ((PyArrayObject *)values[9]);
9619  __pyx_v_dphi = ((PyArrayObject *)values[10]);
9620  __pyx_v_v = ((PyArrayObject *)values[11]);
9621  __pyx_v_grad_v = ((PyArrayObject *)values[12]);
9622  __pyx_v_penalty = ((PyArrayObject *)values[13]);
9623  __pyx_v_fluxJacobian = ((PyArrayObject *)values[14]);
9624  if (values[15]) {
9625  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[15]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3022, __pyx_L3_error)
9626  } else {
9627  __pyx_v_scale_penalty = ((int)0);
9628  }
9629  if (values[16]) {
9630  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[16]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3023, __pyx_L3_error)
9631  } else {
9632  __pyx_v_penalty_floor = ((double)0.0);
9633  }
9634  }
9635  goto __pyx_L4_argument_unpacking_done;
9636  __pyx_L5_argtuple_error:;
9637  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0, 15, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3007, __pyx_L3_error)
9638  __pyx_L3_error:;
9639  __Pyx_AddTraceback("cnumericalFlux.updateInteriorNumericalDiffusiveFluxJacobian_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
9640  __Pyx_RefNannyFinishContext();
9641  return NULL;
9642  __pyx_L4_argument_unpacking_done:;
9643  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 3007, __pyx_L1_error)
9644  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 3008, __pyx_L1_error)
9645  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 3009, __pyx_L1_error)
9646  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 3010, __pyx_L1_error)
9647  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3011, __pyx_L1_error)
9648  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3012, __pyx_L1_error)
9649  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3013, __pyx_L1_error)
9650  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 3014, __pyx_L1_error)
9651  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 3015, __pyx_L1_error)
9652  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 3016, __pyx_L1_error)
9653  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 3017, __pyx_L1_error)
9654  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 3018, __pyx_L1_error)
9655  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 3019, __pyx_L1_error)
9656  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 3020, __pyx_L1_error)
9657  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 3021, __pyx_L1_error)
9658  __pyx_r = __pyx_pf_14cnumericalFlux_52updateInteriorNumericalDiffusiveFluxJacobian_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __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);
9659 
9660  /* function exit code */
9661  goto __pyx_L0;
9662  __pyx_L1_error:;
9663  __pyx_r = NULL;
9664  __pyx_L0:;
9665  __Pyx_RefNannyFinishContext();
9666  return __pyx_r;
9667 }
9668 
9669 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) {
9670  PyObject *__pyx_r = NULL;
9671  __Pyx_RefNannyDeclarations
9672  __Pyx_RefNannySetupContext("updateInteriorNumericalDiffusiveFluxJacobian_sd", 0);
9673 
9674  /* "cnumericalFlux.pyx":3024
9675  * int scale_penalty=0,
9676  * double penalty_floor=0.0):
9677  * cupdateInteriorNumericalDiffusiveFluxJacobian_sd(scale_penalty, # <<<<<<<<<<<<<<
9678  * penalty_floor,
9679  * interiorElementBoundaries.shape[0],
9680  */
9681  updateInteriorNumericalDiffusiveFluxJacobian_sd(__pyx_v_scale_penalty, __pyx_v_penalty_floor, (__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_grad_v->dimensions[1]), (__pyx_v_grad_v->dimensions[2]), (__pyx_v_grad_v->dimensions[3]), (__pyx_v_grad_v->dimensions[4]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((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));
9682 
9683  /* "cnumericalFlux.pyx":3007
9684  * <double*> flux.data)
9685  *
9686  * def updateInteriorNumericalDiffusiveFluxJacobian_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
9687  * np.ndarray colind,
9688  * np.ndarray l2g,
9689  */
9690 
9691  /* function exit code */
9692  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9693  __Pyx_XGIVEREF(__pyx_r);
9694  __Pyx_RefNannyFinishContext();
9695  return __pyx_r;
9696 }
9697 
9698 /* "cnumericalFlux.pyx":3046
9699  * <double*> penalty.data,
9700  * <double*> fluxJacobian.data)
9701  * def updateExteriorNumericalDiffusiveFluxJacobian_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
9702  * np.ndarray colind,
9703  * np.ndarray l2g,
9704  */
9705 
9706 /* Python wrapper */
9707 static PyObject *__pyx_pw_14cnumericalFlux_55updateExteriorNumericalDiffusiveFluxJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
9708 static PyMethodDef __pyx_mdef_14cnumericalFlux_55updateExteriorNumericalDiffusiveFluxJacobian_sd = {"updateExteriorNumericalDiffusiveFluxJacobian_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_55updateExteriorNumericalDiffusiveFluxJacobian_sd, METH_VARARGS|METH_KEYWORDS, 0};
9709 static PyObject *__pyx_pw_14cnumericalFlux_55updateExteriorNumericalDiffusiveFluxJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
9710  PyArrayObject *__pyx_v_rowptr = 0;
9711  PyArrayObject *__pyx_v_colind = 0;
9712  PyArrayObject *__pyx_v_l2g = 0;
9713  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
9714  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
9715  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
9716  PyArrayObject *__pyx_v_isDOFBoundary = 0;
9717  PyArrayObject *__pyx_v_n = 0;
9718  PyArrayObject *__pyx_v_a = 0;
9719  PyArrayObject *__pyx_v_da = 0;
9720  PyArrayObject *__pyx_v_grad_phi = 0;
9721  PyArrayObject *__pyx_v_dphi = 0;
9722  PyArrayObject *__pyx_v_v = 0;
9723  PyArrayObject *__pyx_v_grad_v = 0;
9724  PyArrayObject *__pyx_v_penalty = 0;
9725  PyArrayObject *__pyx_v_fluxJacobian = 0;
9726  int __pyx_v_scale_penalty;
9727  double __pyx_v_penalty_floor;
9728  int __pyx_lineno = 0;
9729  const char *__pyx_filename = NULL;
9730  int __pyx_clineno = 0;
9731  PyObject *__pyx_r = 0;
9732  __Pyx_RefNannyDeclarations
9733  __Pyx_RefNannySetupContext("updateExteriorNumericalDiffusiveFluxJacobian_sd (wrapper)", 0);
9734  {
9735  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__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};
9736  PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
9737  if (unlikely(__pyx_kwds)) {
9738  Py_ssize_t kw_args;
9739  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
9740  switch (pos_args) {
9741  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
9742  CYTHON_FALLTHROUGH;
9743  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
9744  CYTHON_FALLTHROUGH;
9745  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
9746  CYTHON_FALLTHROUGH;
9747  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
9748  CYTHON_FALLTHROUGH;
9749  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
9750  CYTHON_FALLTHROUGH;
9751  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
9752  CYTHON_FALLTHROUGH;
9753  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
9754  CYTHON_FALLTHROUGH;
9755  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
9756  CYTHON_FALLTHROUGH;
9757  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
9758  CYTHON_FALLTHROUGH;
9759  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
9760  CYTHON_FALLTHROUGH;
9761  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
9762  CYTHON_FALLTHROUGH;
9763  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
9764  CYTHON_FALLTHROUGH;
9765  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
9766  CYTHON_FALLTHROUGH;
9767  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
9768  CYTHON_FALLTHROUGH;
9769  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
9770  CYTHON_FALLTHROUGH;
9771  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
9772  CYTHON_FALLTHROUGH;
9773  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
9774  CYTHON_FALLTHROUGH;
9775  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
9776  CYTHON_FALLTHROUGH;
9777  case 0: break;
9778  default: goto __pyx_L5_argtuple_error;
9779  }
9780  kw_args = PyDict_Size(__pyx_kwds);
9781  switch (pos_args) {
9782  case 0:
9783  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
9784  else goto __pyx_L5_argtuple_error;
9785  CYTHON_FALLTHROUGH;
9786  case 1:
9787  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
9788  else {
9789  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 1); __PYX_ERR(0, 3046, __pyx_L3_error)
9790  }
9791  CYTHON_FALLTHROUGH;
9792  case 2:
9793  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
9794  else {
9795  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 2); __PYX_ERR(0, 3046, __pyx_L3_error)
9796  }
9797  CYTHON_FALLTHROUGH;
9798  case 3:
9799  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
9800  else {
9801  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 3); __PYX_ERR(0, 3046, __pyx_L3_error)
9802  }
9803  CYTHON_FALLTHROUGH;
9804  case 4:
9805  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
9806  else {
9807  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 4); __PYX_ERR(0, 3046, __pyx_L3_error)
9808  }
9809  CYTHON_FALLTHROUGH;
9810  case 5:
9811  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
9812  else {
9813  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 5); __PYX_ERR(0, 3046, __pyx_L3_error)
9814  }
9815  CYTHON_FALLTHROUGH;
9816  case 6:
9817  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
9818  else {
9819  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 6); __PYX_ERR(0, 3046, __pyx_L3_error)
9820  }
9821  CYTHON_FALLTHROUGH;
9822  case 7:
9823  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
9824  else {
9825  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 7); __PYX_ERR(0, 3046, __pyx_L3_error)
9826  }
9827  CYTHON_FALLTHROUGH;
9828  case 8:
9829  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
9830  else {
9831  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 8); __PYX_ERR(0, 3046, __pyx_L3_error)
9832  }
9833  CYTHON_FALLTHROUGH;
9834  case 9:
9835  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
9836  else {
9837  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 9); __PYX_ERR(0, 3046, __pyx_L3_error)
9838  }
9839  CYTHON_FALLTHROUGH;
9840  case 10:
9841  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
9842  else {
9843  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 10); __PYX_ERR(0, 3046, __pyx_L3_error)
9844  }
9845  CYTHON_FALLTHROUGH;
9846  case 11:
9847  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
9848  else {
9849  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 11); __PYX_ERR(0, 3046, __pyx_L3_error)
9850  }
9851  CYTHON_FALLTHROUGH;
9852  case 12:
9853  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
9854  else {
9855  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 12); __PYX_ERR(0, 3046, __pyx_L3_error)
9856  }
9857  CYTHON_FALLTHROUGH;
9858  case 13:
9859  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
9860  else {
9861  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 13); __PYX_ERR(0, 3046, __pyx_L3_error)
9862  }
9863  CYTHON_FALLTHROUGH;
9864  case 14:
9865  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
9866  else {
9867  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 14); __PYX_ERR(0, 3046, __pyx_L3_error)
9868  }
9869  CYTHON_FALLTHROUGH;
9870  case 15:
9871  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
9872  else {
9873  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, 15); __PYX_ERR(0, 3046, __pyx_L3_error)
9874  }
9875  CYTHON_FALLTHROUGH;
9876  case 16:
9877  if (kw_args > 0) {
9878  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty);
9879  if (value) { values[16] = value; kw_args--; }
9880  }
9881  CYTHON_FALLTHROUGH;
9882  case 17:
9883  if (kw_args > 0) {
9884  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor);
9885  if (value) { values[17] = value; kw_args--; }
9886  }
9887  }
9888  if (unlikely(kw_args > 0)) {
9889  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateExteriorNumericalDiffusiveFluxJacobian_sd") < 0)) __PYX_ERR(0, 3046, __pyx_L3_error)
9890  }
9891  } else {
9892  switch (PyTuple_GET_SIZE(__pyx_args)) {
9893  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
9894  CYTHON_FALLTHROUGH;
9895  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
9896  CYTHON_FALLTHROUGH;
9897  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
9898  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
9899  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
9900  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
9901  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
9902  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
9903  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
9904  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
9905  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
9906  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
9907  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
9908  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
9909  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
9910  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
9911  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
9912  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
9913  break;
9914  default: goto __pyx_L5_argtuple_error;
9915  }
9916  }
9917  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
9918  __pyx_v_colind = ((PyArrayObject *)values[1]);
9919  __pyx_v_l2g = ((PyArrayObject *)values[2]);
9920  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
9921  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
9922  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
9923  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[6]);
9924  __pyx_v_n = ((PyArrayObject *)values[7]);
9925  __pyx_v_a = ((PyArrayObject *)values[8]);
9926  __pyx_v_da = ((PyArrayObject *)values[9]);
9927  __pyx_v_grad_phi = ((PyArrayObject *)values[10]);
9928  __pyx_v_dphi = ((PyArrayObject *)values[11]);
9929  __pyx_v_v = ((PyArrayObject *)values[12]);
9930  __pyx_v_grad_v = ((PyArrayObject *)values[13]);
9931  __pyx_v_penalty = ((PyArrayObject *)values[14]);
9932  __pyx_v_fluxJacobian = ((PyArrayObject *)values[15]);
9933  if (values[16]) {
9934  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[16]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3062, __pyx_L3_error)
9935  } else {
9936  __pyx_v_scale_penalty = ((int)0);
9937  }
9938  if (values[17]) {
9939  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[17]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3063, __pyx_L3_error)
9940  } else {
9941  __pyx_v_penalty_floor = ((double)0.0);
9942  }
9943  }
9944  goto __pyx_L4_argument_unpacking_done;
9945  __pyx_L5_argtuple_error:;
9946  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0, 16, 18, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3046, __pyx_L3_error)
9947  __pyx_L3_error:;
9948  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalDiffusiveFluxJacobian_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
9949  __Pyx_RefNannyFinishContext();
9950  return NULL;
9951  __pyx_L4_argument_unpacking_done:;
9952  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 3046, __pyx_L1_error)
9953  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 3047, __pyx_L1_error)
9954  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 3048, __pyx_L1_error)
9955  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 3049, __pyx_L1_error)
9956  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3050, __pyx_L1_error)
9957  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3051, __pyx_L1_error)
9958  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 3052, __pyx_L1_error)
9959  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3053, __pyx_L1_error)
9960  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 3054, __pyx_L1_error)
9961  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 3055, __pyx_L1_error)
9962  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 3056, __pyx_L1_error)
9963  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 3057, __pyx_L1_error)
9964  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 3058, __pyx_L1_error)
9965  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 3059, __pyx_L1_error)
9966  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 3060, __pyx_L1_error)
9967  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 3061, __pyx_L1_error)
9968  __pyx_r = __pyx_pf_14cnumericalFlux_54updateExteriorNumericalDiffusiveFluxJacobian_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __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);
9969 
9970  /* function exit code */
9971  goto __pyx_L0;
9972  __pyx_L1_error:;
9973  __pyx_r = NULL;
9974  __pyx_L0:;
9975  __Pyx_RefNannyFinishContext();
9976  return __pyx_r;
9977 }
9978 
9979 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) {
9980  PyObject *__pyx_r = NULL;
9981  __Pyx_RefNannyDeclarations
9982  PyObject *__pyx_t_1 = NULL;
9983  PyObject *__pyx_t_2 = NULL;
9984  PyObject *__pyx_t_3 = NULL;
9985  int __pyx_lineno = 0;
9986  const char *__pyx_filename = NULL;
9987  int __pyx_clineno = 0;
9988  __Pyx_RefNannySetupContext("updateExteriorNumericalDiffusiveFluxJacobian_sd", 0);
9989 
9990  /* "cnumericalFlux.pyx":3064
9991  * int scale_penalty=0,
9992  * double penalty_floor=0.0):
9993  * if grad_v.ndim == 5: # <<<<<<<<<<<<<<
9994  * cupdateExteriorNumericalDiffusiveFluxJacobian_sd( scale_penalty,
9995  * penalty_floor,
9996  */
9997  switch (__pyx_v_grad_v->nd) {
9998  case 5:
9999 
10000  /* "cnumericalFlux.pyx":3065
10001  * double penalty_floor=0.0):
10002  * if grad_v.ndim == 5:
10003  * cupdateExteriorNumericalDiffusiveFluxJacobian_sd( scale_penalty, # <<<<<<<<<<<<<<
10004  * penalty_floor,
10005  * exteriorElementBoundaries.shape[0],
10006  */
10007  updateExteriorNumericalDiffusiveFluxJacobian_sd(__pyx_v_scale_penalty, __pyx_v_penalty_floor, (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_v->dimensions[1]), (__pyx_v_grad_v->dimensions[2]), (__pyx_v_grad_v->dimensions[3]), (__pyx_v_grad_v->dimensions[4]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->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));
10008 
10009  /* "cnumericalFlux.pyx":3064
10010  * int scale_penalty=0,
10011  * double penalty_floor=0.0):
10012  * if grad_v.ndim == 5: # <<<<<<<<<<<<<<
10013  * cupdateExteriorNumericalDiffusiveFluxJacobian_sd( scale_penalty,
10014  * penalty_floor,
10015  */
10016  break;
10017  case 4:
10018 
10019  /* "cnumericalFlux.pyx":3089
10020  * <double*> fluxJacobian.data)
10021  * elif grad_v.ndim==4:
10022  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian_sd( scale_penalty, # <<<<<<<<<<<<<<
10023  * penalty_floor,
10024  * exteriorElementBoundaries.shape[0],
10025  */
10026  updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd(__pyx_v_scale_penalty, __pyx_v_penalty_floor, (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_v->dimensions[1]), (__pyx_v_grad_v->dimensions[2]), (__pyx_v_grad_v->dimensions[3]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->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));
10027 
10028  /* "cnumericalFlux.pyx":3088
10029  * <double*> penalty.data,
10030  * <double*> fluxJacobian.data)
10031  * elif grad_v.ndim==4: # <<<<<<<<<<<<<<
10032  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian_sd( scale_penalty,
10033  * penalty_floor,
10034  */
10035  break;
10036  default:
10037 
10038  /* "cnumericalFlux.pyx":3112
10039  * <double*> fluxJacobian.data)
10040  * else:
10041  * exit(1) # <<<<<<<<<<<<<<
10042  * def updateExteriorNumericalDiffusiveFluxJacobian_free_sd(np.ndarray rowptr,
10043  * np.ndarray colind,
10044  */
10045  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3112, __pyx_L1_error)
10046  __Pyx_GOTREF(__pyx_t_2);
10047  __pyx_t_3 = NULL;
10048  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
10049  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10050  if (likely(__pyx_t_3)) {
10051  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10052  __Pyx_INCREF(__pyx_t_3);
10053  __Pyx_INCREF(function);
10054  __Pyx_DECREF_SET(__pyx_t_2, function);
10055  }
10056  }
10057  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_int_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_1);
10058  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10059  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3112, __pyx_L1_error)
10060  __Pyx_GOTREF(__pyx_t_1);
10061  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10062  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10063  break;
10064  }
10065 
10066  /* "cnumericalFlux.pyx":3046
10067  * <double*> penalty.data,
10068  * <double*> fluxJacobian.data)
10069  * def updateExteriorNumericalDiffusiveFluxJacobian_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
10070  * np.ndarray colind,
10071  * np.ndarray l2g,
10072  */
10073 
10074  /* function exit code */
10075  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10076  goto __pyx_L0;
10077  __pyx_L1_error:;
10078  __Pyx_XDECREF(__pyx_t_1);
10079  __Pyx_XDECREF(__pyx_t_2);
10080  __Pyx_XDECREF(__pyx_t_3);
10081  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalDiffusiveFluxJacobian_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
10082  __pyx_r = NULL;
10083  __pyx_L0:;
10084  __Pyx_XGIVEREF(__pyx_r);
10085  __Pyx_RefNannyFinishContext();
10086  return __pyx_r;
10087 }
10088 
10089 /* "cnumericalFlux.pyx":3113
10090  * else:
10091  * exit(1)
10092  * def updateExteriorNumericalDiffusiveFluxJacobian_free_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
10093  * np.ndarray colind,
10094  * np.ndarray l2g,
10095  */
10096 
10097 /* Python wrapper */
10098 static PyObject *__pyx_pw_14cnumericalFlux_57updateExteriorNumericalDiffusiveFluxJacobian_free_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
10099 static PyMethodDef __pyx_mdef_14cnumericalFlux_57updateExteriorNumericalDiffusiveFluxJacobian_free_sd = {"updateExteriorNumericalDiffusiveFluxJacobian_free_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_57updateExteriorNumericalDiffusiveFluxJacobian_free_sd, METH_VARARGS|METH_KEYWORDS, 0};
10100 static PyObject *__pyx_pw_14cnumericalFlux_57updateExteriorNumericalDiffusiveFluxJacobian_free_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
10101  PyArrayObject *__pyx_v_rowptr = 0;
10102  PyArrayObject *__pyx_v_colind = 0;
10103  PyArrayObject *__pyx_v_l2g = 0;
10104  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
10105  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
10106  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
10107  PyArrayObject *__pyx_v_isDOFBoundary = 0;
10108  PyArrayObject *__pyx_v_n = 0;
10109  PyArrayObject *__pyx_v_a = 0;
10110  PyArrayObject *__pyx_v_da = 0;
10111  PyArrayObject *__pyx_v_grad_phi = 0;
10112  PyArrayObject *__pyx_v_dphi = 0;
10113  PyArrayObject *__pyx_v_v = 0;
10114  PyArrayObject *__pyx_v_grad_v = 0;
10115  PyArrayObject *__pyx_v_penalty = 0;
10116  PyArrayObject *__pyx_v_fluxJacobian = 0;
10117  int __pyx_lineno = 0;
10118  const char *__pyx_filename = NULL;
10119  int __pyx_clineno = 0;
10120  PyObject *__pyx_r = 0;
10121  __Pyx_RefNannyDeclarations
10122  __Pyx_RefNannySetupContext("updateExteriorNumericalDiffusiveFluxJacobian_free_sd (wrapper)", 0);
10123  {
10124  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__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,0};
10125  PyObject* values[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
10126  if (unlikely(__pyx_kwds)) {
10127  Py_ssize_t kw_args;
10128  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
10129  switch (pos_args) {
10130  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
10131  CYTHON_FALLTHROUGH;
10132  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
10133  CYTHON_FALLTHROUGH;
10134  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
10135  CYTHON_FALLTHROUGH;
10136  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
10137  CYTHON_FALLTHROUGH;
10138  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
10139  CYTHON_FALLTHROUGH;
10140  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
10141  CYTHON_FALLTHROUGH;
10142  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
10143  CYTHON_FALLTHROUGH;
10144  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
10145  CYTHON_FALLTHROUGH;
10146  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
10147  CYTHON_FALLTHROUGH;
10148  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
10149  CYTHON_FALLTHROUGH;
10150  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
10151  CYTHON_FALLTHROUGH;
10152  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
10153  CYTHON_FALLTHROUGH;
10154  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
10155  CYTHON_FALLTHROUGH;
10156  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
10157  CYTHON_FALLTHROUGH;
10158  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
10159  CYTHON_FALLTHROUGH;
10160  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10161  CYTHON_FALLTHROUGH;
10162  case 0: break;
10163  default: goto __pyx_L5_argtuple_error;
10164  }
10165  kw_args = PyDict_Size(__pyx_kwds);
10166  switch (pos_args) {
10167  case 0:
10168  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
10169  else goto __pyx_L5_argtuple_error;
10170  CYTHON_FALLTHROUGH;
10171  case 1:
10172  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
10173  else {
10174  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 1); __PYX_ERR(0, 3113, __pyx_L3_error)
10175  }
10176  CYTHON_FALLTHROUGH;
10177  case 2:
10178  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
10179  else {
10180  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 2); __PYX_ERR(0, 3113, __pyx_L3_error)
10181  }
10182  CYTHON_FALLTHROUGH;
10183  case 3:
10184  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
10185  else {
10186  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 3); __PYX_ERR(0, 3113, __pyx_L3_error)
10187  }
10188  CYTHON_FALLTHROUGH;
10189  case 4:
10190  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
10191  else {
10192  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 4); __PYX_ERR(0, 3113, __pyx_L3_error)
10193  }
10194  CYTHON_FALLTHROUGH;
10195  case 5:
10196  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
10197  else {
10198  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 5); __PYX_ERR(0, 3113, __pyx_L3_error)
10199  }
10200  CYTHON_FALLTHROUGH;
10201  case 6:
10202  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
10203  else {
10204  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 6); __PYX_ERR(0, 3113, __pyx_L3_error)
10205  }
10206  CYTHON_FALLTHROUGH;
10207  case 7:
10208  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
10209  else {
10210  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 7); __PYX_ERR(0, 3113, __pyx_L3_error)
10211  }
10212  CYTHON_FALLTHROUGH;
10213  case 8:
10214  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
10215  else {
10216  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 8); __PYX_ERR(0, 3113, __pyx_L3_error)
10217  }
10218  CYTHON_FALLTHROUGH;
10219  case 9:
10220  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
10221  else {
10222  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 9); __PYX_ERR(0, 3113, __pyx_L3_error)
10223  }
10224  CYTHON_FALLTHROUGH;
10225  case 10:
10226  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
10227  else {
10228  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 10); __PYX_ERR(0, 3113, __pyx_L3_error)
10229  }
10230  CYTHON_FALLTHROUGH;
10231  case 11:
10232  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
10233  else {
10234  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 11); __PYX_ERR(0, 3113, __pyx_L3_error)
10235  }
10236  CYTHON_FALLTHROUGH;
10237  case 12:
10238  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
10239  else {
10240  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 12); __PYX_ERR(0, 3113, __pyx_L3_error)
10241  }
10242  CYTHON_FALLTHROUGH;
10243  case 13:
10244  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
10245  else {
10246  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 13); __PYX_ERR(0, 3113, __pyx_L3_error)
10247  }
10248  CYTHON_FALLTHROUGH;
10249  case 14:
10250  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
10251  else {
10252  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 14); __PYX_ERR(0, 3113, __pyx_L3_error)
10253  }
10254  CYTHON_FALLTHROUGH;
10255  case 15:
10256  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
10257  else {
10258  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, 15); __PYX_ERR(0, 3113, __pyx_L3_error)
10259  }
10260  }
10261  if (unlikely(kw_args > 0)) {
10262  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateExteriorNumericalDiffusiveFluxJacobian_free_sd") < 0)) __PYX_ERR(0, 3113, __pyx_L3_error)
10263  }
10264  } else if (PyTuple_GET_SIZE(__pyx_args) != 16) {
10265  goto __pyx_L5_argtuple_error;
10266  } else {
10267  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10268  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
10269  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
10270  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
10271  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
10272  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
10273  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
10274  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
10275  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
10276  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
10277  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
10278  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
10279  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
10280  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
10281  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
10282  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
10283  }
10284  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
10285  __pyx_v_colind = ((PyArrayObject *)values[1]);
10286  __pyx_v_l2g = ((PyArrayObject *)values[2]);
10287  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
10288  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
10289  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
10290  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[6]);
10291  __pyx_v_n = ((PyArrayObject *)values[7]);
10292  __pyx_v_a = ((PyArrayObject *)values[8]);
10293  __pyx_v_da = ((PyArrayObject *)values[9]);
10294  __pyx_v_grad_phi = ((PyArrayObject *)values[10]);
10295  __pyx_v_dphi = ((PyArrayObject *)values[11]);
10296  __pyx_v_v = ((PyArrayObject *)values[12]);
10297  __pyx_v_grad_v = ((PyArrayObject *)values[13]);
10298  __pyx_v_penalty = ((PyArrayObject *)values[14]);
10299  __pyx_v_fluxJacobian = ((PyArrayObject *)values[15]);
10300  }
10301  goto __pyx_L4_argument_unpacking_done;
10302  __pyx_L5_argtuple_error:;
10303  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 16, 16, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3113, __pyx_L3_error)
10304  __pyx_L3_error:;
10305  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalDiffusiveFluxJacobian_free_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
10306  __Pyx_RefNannyFinishContext();
10307  return NULL;
10308  __pyx_L4_argument_unpacking_done:;
10309  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 3113, __pyx_L1_error)
10310  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 3114, __pyx_L1_error)
10311  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 3115, __pyx_L1_error)
10312  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 3116, __pyx_L1_error)
10313  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3117, __pyx_L1_error)
10314  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3118, __pyx_L1_error)
10315  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 3119, __pyx_L1_error)
10316  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3120, __pyx_L1_error)
10317  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 3121, __pyx_L1_error)
10318  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 3122, __pyx_L1_error)
10319  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 3123, __pyx_L1_error)
10320  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 3124, __pyx_L1_error)
10321  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 3125, __pyx_L1_error)
10322  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 3126, __pyx_L1_error)
10323  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 3127, __pyx_L1_error)
10324  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 3128, __pyx_L1_error)
10325  __pyx_r = __pyx_pf_14cnumericalFlux_56updateExteriorNumericalDiffusiveFluxJacobian_free_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __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);
10326 
10327  /* function exit code */
10328  goto __pyx_L0;
10329  __pyx_L1_error:;
10330  __pyx_r = NULL;
10331  __pyx_L0:;
10332  __Pyx_RefNannyFinishContext();
10333  return __pyx_r;
10334 }
10335 
10336 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) {
10337  PyObject *__pyx_r = NULL;
10338  __Pyx_RefNannyDeclarations
10339  PyObject *__pyx_t_1 = NULL;
10340  PyObject *__pyx_t_2 = NULL;
10341  PyObject *__pyx_t_3 = NULL;
10342  int __pyx_lineno = 0;
10343  const char *__pyx_filename = NULL;
10344  int __pyx_clineno = 0;
10345  __Pyx_RefNannySetupContext("updateExteriorNumericalDiffusiveFluxJacobian_free_sd", 0);
10346 
10347  /* "cnumericalFlux.pyx":3129
10348  * np.ndarray penalty,
10349  * np.ndarray fluxJacobian):
10350  * if grad_v.ndim == 5: # <<<<<<<<<<<<<<
10351  * cupdateExteriorNumericalDiffusiveFluxJacobian_free_sd(exteriorElementBoundaries.shape[0],
10352  * grad_v.shape[1],
10353  */
10354  switch (__pyx_v_grad_v->nd) {
10355  case 5:
10356 
10357  /* "cnumericalFlux.pyx":3130
10358  * np.ndarray fluxJacobian):
10359  * if grad_v.ndim == 5:
10360  * cupdateExteriorNumericalDiffusiveFluxJacobian_free_sd(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
10361  * grad_v.shape[1],
10362  * grad_v.shape[2],
10363  */
10364  updateExteriorNumericalDiffusiveFluxJacobian_free_sd((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_v->dimensions[1]), (__pyx_v_grad_v->dimensions[2]), (__pyx_v_grad_v->dimensions[3]), (__pyx_v_grad_v->dimensions[4]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->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));
10365 
10366  /* "cnumericalFlux.pyx":3129
10367  * np.ndarray penalty,
10368  * np.ndarray fluxJacobian):
10369  * if grad_v.ndim == 5: # <<<<<<<<<<<<<<
10370  * cupdateExteriorNumericalDiffusiveFluxJacobian_free_sd(exteriorElementBoundaries.shape[0],
10371  * grad_v.shape[1],
10372  */
10373  break;
10374  case 4:
10375 
10376  /* "cnumericalFlux.pyx":3152
10377  * <double*> fluxJacobian.data)
10378  * elif grad_v.ndim == 4:
10379  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
10380  * grad_v.shape[1],
10381  * grad_v.shape[2],
10382  */
10383  updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_v->dimensions[1]), (__pyx_v_grad_v->dimensions[2]), (__pyx_v_grad_v->dimensions[3]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->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));
10384 
10385  /* "cnumericalFlux.pyx":3151
10386  * <double*> penalty.data,
10387  * <double*> fluxJacobian.data)
10388  * elif grad_v.ndim == 4: # <<<<<<<<<<<<<<
10389  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd(exteriorElementBoundaries.shape[0],
10390  * grad_v.shape[1],
10391  */
10392  break;
10393  default:
10394 
10395  /* "cnumericalFlux.pyx":3173
10396  * <double*> fluxJacobian.data)
10397  * else:
10398  * exit(1) # <<<<<<<<<<<<<<
10399  * def calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd(np.ndarray rowptr,
10400  * np.ndarray colind,
10401  */
10402  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3173, __pyx_L1_error)
10403  __Pyx_GOTREF(__pyx_t_2);
10404  __pyx_t_3 = NULL;
10405  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
10406  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10407  if (likely(__pyx_t_3)) {
10408  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10409  __Pyx_INCREF(__pyx_t_3);
10410  __Pyx_INCREF(function);
10411  __Pyx_DECREF_SET(__pyx_t_2, function);
10412  }
10413  }
10414  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_int_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_1);
10415  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10416  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3173, __pyx_L1_error)
10417  __Pyx_GOTREF(__pyx_t_1);
10418  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10419  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10420  break;
10421  }
10422 
10423  /* "cnumericalFlux.pyx":3113
10424  * else:
10425  * exit(1)
10426  * def updateExteriorNumericalDiffusiveFluxJacobian_free_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
10427  * np.ndarray colind,
10428  * np.ndarray l2g,
10429  */
10430 
10431  /* function exit code */
10432  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10433  goto __pyx_L0;
10434  __pyx_L1_error:;
10435  __Pyx_XDECREF(__pyx_t_1);
10436  __Pyx_XDECREF(__pyx_t_2);
10437  __Pyx_XDECREF(__pyx_t_3);
10438  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalDiffusiveFluxJacobian_free_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
10439  __pyx_r = NULL;
10440  __pyx_L0:;
10441  __Pyx_XGIVEREF(__pyx_r);
10442  __Pyx_RefNannyFinishContext();
10443  return __pyx_r;
10444 }
10445 
10446 /* "cnumericalFlux.pyx":3174
10447  * else:
10448  * exit(1)
10449  * def calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
10450  * np.ndarray colind,
10451  * np.ndarray interiorElementBoundaries,
10452  */
10453 
10454 /* Python wrapper */
10455 static PyObject *__pyx_pw_14cnumericalFlux_59calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
10456 static PyMethodDef __pyx_mdef_14cnumericalFlux_59calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd = {"calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_59calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd, METH_VARARGS|METH_KEYWORDS, 0};
10457 static PyObject *__pyx_pw_14cnumericalFlux_59calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
10458  PyArrayObject *__pyx_v_rowptr = 0;
10459  PyArrayObject *__pyx_v_colind = 0;
10460  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
10461  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
10462  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
10463  PyArrayObject *__pyx_v_n = 0;
10464  PyArrayObject *__pyx_v_u = 0;
10465  PyArrayObject *__pyx_v_a = 0;
10466  PyArrayObject *__pyx_v_phi = 0;
10467  PyArrayObject *__pyx_v_V = 0;
10468  PyArrayObject *__pyx_v_penalty = 0;
10469  PyArrayObject *__pyx_v_flux = 0;
10470  int __pyx_lineno = 0;
10471  const char *__pyx_filename = NULL;
10472  int __pyx_clineno = 0;
10473  PyObject *__pyx_r = 0;
10474  __Pyx_RefNannyDeclarations
10475  __Pyx_RefNannySetupContext("calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd (wrapper)", 0);
10476  {
10477  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_u,&__pyx_n_s_a,&__pyx_n_s_phi,&__pyx_n_s_V,&__pyx_n_s_penalty,&__pyx_n_s_flux,0};
10478  PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
10479  if (unlikely(__pyx_kwds)) {
10480  Py_ssize_t kw_args;
10481  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
10482  switch (pos_args) {
10483  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
10484  CYTHON_FALLTHROUGH;
10485  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
10486  CYTHON_FALLTHROUGH;
10487  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
10488  CYTHON_FALLTHROUGH;
10489  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
10490  CYTHON_FALLTHROUGH;
10491  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
10492  CYTHON_FALLTHROUGH;
10493  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
10494  CYTHON_FALLTHROUGH;
10495  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
10496  CYTHON_FALLTHROUGH;
10497  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
10498  CYTHON_FALLTHROUGH;
10499  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
10500  CYTHON_FALLTHROUGH;
10501  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
10502  CYTHON_FALLTHROUGH;
10503  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
10504  CYTHON_FALLTHROUGH;
10505  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10506  CYTHON_FALLTHROUGH;
10507  case 0: break;
10508  default: goto __pyx_L5_argtuple_error;
10509  }
10510  kw_args = PyDict_Size(__pyx_kwds);
10511  switch (pos_args) {
10512  case 0:
10513  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
10514  else goto __pyx_L5_argtuple_error;
10515  CYTHON_FALLTHROUGH;
10516  case 1:
10517  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
10518  else {
10519  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 12, 12, 1); __PYX_ERR(0, 3174, __pyx_L3_error)
10520  }
10521  CYTHON_FALLTHROUGH;
10522  case 2:
10523  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
10524  else {
10525  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 12, 12, 2); __PYX_ERR(0, 3174, __pyx_L3_error)
10526  }
10527  CYTHON_FALLTHROUGH;
10528  case 3:
10529  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
10530  else {
10531  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 12, 12, 3); __PYX_ERR(0, 3174, __pyx_L3_error)
10532  }
10533  CYTHON_FALLTHROUGH;
10534  case 4:
10535  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
10536  else {
10537  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 12, 12, 4); __PYX_ERR(0, 3174, __pyx_L3_error)
10538  }
10539  CYTHON_FALLTHROUGH;
10540  case 5:
10541  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
10542  else {
10543  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 12, 12, 5); __PYX_ERR(0, 3174, __pyx_L3_error)
10544  }
10545  CYTHON_FALLTHROUGH;
10546  case 6:
10547  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
10548  else {
10549  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 12, 12, 6); __PYX_ERR(0, 3174, __pyx_L3_error)
10550  }
10551  CYTHON_FALLTHROUGH;
10552  case 7:
10553  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
10554  else {
10555  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 12, 12, 7); __PYX_ERR(0, 3174, __pyx_L3_error)
10556  }
10557  CYTHON_FALLTHROUGH;
10558  case 8:
10559  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_phi)) != 0)) kw_args--;
10560  else {
10561  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 12, 12, 8); __PYX_ERR(0, 3174, __pyx_L3_error)
10562  }
10563  CYTHON_FALLTHROUGH;
10564  case 9:
10565  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--;
10566  else {
10567  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 12, 12, 9); __PYX_ERR(0, 3174, __pyx_L3_error)
10568  }
10569  CYTHON_FALLTHROUGH;
10570  case 10:
10571  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
10572  else {
10573  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 12, 12, 10); __PYX_ERR(0, 3174, __pyx_L3_error)
10574  }
10575  CYTHON_FALLTHROUGH;
10576  case 11:
10577  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
10578  else {
10579  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 12, 12, 11); __PYX_ERR(0, 3174, __pyx_L3_error)
10580  }
10581  }
10582  if (unlikely(kw_args > 0)) {
10583  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd") < 0)) __PYX_ERR(0, 3174, __pyx_L3_error)
10584  }
10585  } else if (PyTuple_GET_SIZE(__pyx_args) != 12) {
10586  goto __pyx_L5_argtuple_error;
10587  } else {
10588  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10589  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
10590  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
10591  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
10592  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
10593  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
10594  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
10595  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
10596  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
10597  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
10598  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
10599  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
10600  }
10601  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
10602  __pyx_v_colind = ((PyArrayObject *)values[1]);
10603  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[2]);
10604  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[3]);
10605  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[4]);
10606  __pyx_v_n = ((PyArrayObject *)values[5]);
10607  __pyx_v_u = ((PyArrayObject *)values[6]);
10608  __pyx_v_a = ((PyArrayObject *)values[7]);
10609  __pyx_v_phi = ((PyArrayObject *)values[8]);
10610  __pyx_v_V = ((PyArrayObject *)values[9]);
10611  __pyx_v_penalty = ((PyArrayObject *)values[10]);
10612  __pyx_v_flux = ((PyArrayObject *)values[11]);
10613  }
10614  goto __pyx_L4_argument_unpacking_done;
10615  __pyx_L5_argtuple_error:;
10616  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 12, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3174, __pyx_L3_error)
10617  __pyx_L3_error:;
10618  __Pyx_AddTraceback("cnumericalFlux.calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
10619  __Pyx_RefNannyFinishContext();
10620  return NULL;
10621  __pyx_L4_argument_unpacking_done:;
10622  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 3174, __pyx_L1_error)
10623  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 3175, __pyx_L1_error)
10624  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 3176, __pyx_L1_error)
10625  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3177, __pyx_L1_error)
10626  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3178, __pyx_L1_error)
10627  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3179, __pyx_L1_error)
10628  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 3180, __pyx_L1_error)
10629  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 3181, __pyx_L1_error)
10630  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phi), __pyx_ptype_5numpy_ndarray, 1, "phi", 0))) __PYX_ERR(0, 3182, __pyx_L1_error)
10631  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_V), __pyx_ptype_5numpy_ndarray, 1, "V", 0))) __PYX_ERR(0, 3183, __pyx_L1_error)
10632  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 3184, __pyx_L1_error)
10633  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 3185, __pyx_L1_error)
10634  __pyx_r = __pyx_pf_14cnumericalFlux_58calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_u, __pyx_v_a, __pyx_v_phi, __pyx_v_V, __pyx_v_penalty, __pyx_v_flux);
10635 
10636  /* function exit code */
10637  goto __pyx_L0;
10638  __pyx_L1_error:;
10639  __pyx_r = NULL;
10640  __pyx_L0:;
10641  __Pyx_RefNannyFinishContext();
10642  return __pyx_r;
10643 }
10644 
10645 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) {
10646  PyObject *__pyx_r = NULL;
10647  __Pyx_RefNannyDeclarations
10648  __Pyx_RefNannySetupContext("calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd", 0);
10649 
10650  /* "cnumericalFlux.pyx":3186
10651  * np.ndarray penalty,
10652  * np.ndarray flux):
10653  * ccalculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd(interiorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
10654  * n.shape[1],
10655  * n.shape[2],
10656  */
10657  calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd((__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_n->dimensions[3]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((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_a->data), ((double *)__pyx_v_phi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_flux->data));
10658 
10659  /* "cnumericalFlux.pyx":3174
10660  * else:
10661  * exit(1)
10662  * def calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
10663  * np.ndarray colind,
10664  * np.ndarray interiorElementBoundaries,
10665  */
10666 
10667  /* function exit code */
10668  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10669  __Pyx_XGIVEREF(__pyx_r);
10670  __Pyx_RefNannyFinishContext();
10671  return __pyx_r;
10672 }
10673 
10674 /* "cnumericalFlux.pyx":3202
10675  * <double*> penalty.data,
10676  * <double*> flux.data)
10677  * def updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
10678  * np.ndarray colind,
10679  * np.ndarray interiorElementBoundaries,
10680  */
10681 
10682 /* Python wrapper */
10683 static PyObject *__pyx_pw_14cnumericalFlux_61updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
10684 static PyMethodDef __pyx_mdef_14cnumericalFlux_61updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd = {"updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_61updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd, METH_VARARGS|METH_KEYWORDS, 0};
10685 static PyObject *__pyx_pw_14cnumericalFlux_61updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
10686  PyArrayObject *__pyx_v_rowptr = 0;
10687  PyArrayObject *__pyx_v_colind = 0;
10688  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
10689  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
10690  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
10691  PyArrayObject *__pyx_v_n = 0;
10692  PyArrayObject *__pyx_v_a = 0;
10693  PyArrayObject *__pyx_v_da = 0;
10694  PyArrayObject *__pyx_v_dphi = 0;
10695  PyArrayObject *__pyx_v_V = 0;
10696  PyArrayObject *__pyx_v_DV = 0;
10697  PyArrayObject *__pyx_v_DV_eb = 0;
10698  PyArrayObject *__pyx_v_v = 0;
10699  PyArrayObject *__pyx_v_penalty = 0;
10700  PyArrayObject *__pyx_v_fluxJacobian = 0;
10701  PyArrayObject *__pyx_v_fluxJacobian_eb = 0;
10702  int __pyx_lineno = 0;
10703  const char *__pyx_filename = NULL;
10704  int __pyx_clineno = 0;
10705  PyObject *__pyx_r = 0;
10706  __Pyx_RefNannyDeclarations
10707  __Pyx_RefNannySetupContext("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd (wrapper)", 0);
10708  {
10709  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__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_dphi,&__pyx_n_s_V,&__pyx_n_s_DV,&__pyx_n_s_DV_eb,&__pyx_n_s_v,&__pyx_n_s_penalty,&__pyx_n_s_fluxJacobian,&__pyx_n_s_fluxJacobian_eb,0};
10710  PyObject* values[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
10711  if (unlikely(__pyx_kwds)) {
10712  Py_ssize_t kw_args;
10713  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
10714  switch (pos_args) {
10715  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
10716  CYTHON_FALLTHROUGH;
10717  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
10718  CYTHON_FALLTHROUGH;
10719  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
10720  CYTHON_FALLTHROUGH;
10721  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
10722  CYTHON_FALLTHROUGH;
10723  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
10724  CYTHON_FALLTHROUGH;
10725  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
10726  CYTHON_FALLTHROUGH;
10727  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
10728  CYTHON_FALLTHROUGH;
10729  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
10730  CYTHON_FALLTHROUGH;
10731  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
10732  CYTHON_FALLTHROUGH;
10733  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
10734  CYTHON_FALLTHROUGH;
10735  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
10736  CYTHON_FALLTHROUGH;
10737  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
10738  CYTHON_FALLTHROUGH;
10739  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
10740  CYTHON_FALLTHROUGH;
10741  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
10742  CYTHON_FALLTHROUGH;
10743  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
10744  CYTHON_FALLTHROUGH;
10745  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10746  CYTHON_FALLTHROUGH;
10747  case 0: break;
10748  default: goto __pyx_L5_argtuple_error;
10749  }
10750  kw_args = PyDict_Size(__pyx_kwds);
10751  switch (pos_args) {
10752  case 0:
10753  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
10754  else goto __pyx_L5_argtuple_error;
10755  CYTHON_FALLTHROUGH;
10756  case 1:
10757  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
10758  else {
10759  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 1); __PYX_ERR(0, 3202, __pyx_L3_error)
10760  }
10761  CYTHON_FALLTHROUGH;
10762  case 2:
10763  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
10764  else {
10765  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 2); __PYX_ERR(0, 3202, __pyx_L3_error)
10766  }
10767  CYTHON_FALLTHROUGH;
10768  case 3:
10769  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
10770  else {
10771  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 3); __PYX_ERR(0, 3202, __pyx_L3_error)
10772  }
10773  CYTHON_FALLTHROUGH;
10774  case 4:
10775  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
10776  else {
10777  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 4); __PYX_ERR(0, 3202, __pyx_L3_error)
10778  }
10779  CYTHON_FALLTHROUGH;
10780  case 5:
10781  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
10782  else {
10783  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 5); __PYX_ERR(0, 3202, __pyx_L3_error)
10784  }
10785  CYTHON_FALLTHROUGH;
10786  case 6:
10787  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
10788  else {
10789  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 6); __PYX_ERR(0, 3202, __pyx_L3_error)
10790  }
10791  CYTHON_FALLTHROUGH;
10792  case 7:
10793  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
10794  else {
10795  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 7); __PYX_ERR(0, 3202, __pyx_L3_error)
10796  }
10797  CYTHON_FALLTHROUGH;
10798  case 8:
10799  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
10800  else {
10801  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 8); __PYX_ERR(0, 3202, __pyx_L3_error)
10802  }
10803  CYTHON_FALLTHROUGH;
10804  case 9:
10805  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--;
10806  else {
10807  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 9); __PYX_ERR(0, 3202, __pyx_L3_error)
10808  }
10809  CYTHON_FALLTHROUGH;
10810  case 10:
10811  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DV)) != 0)) kw_args--;
10812  else {
10813  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 10); __PYX_ERR(0, 3202, __pyx_L3_error)
10814  }
10815  CYTHON_FALLTHROUGH;
10816  case 11:
10817  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DV_eb)) != 0)) kw_args--;
10818  else {
10819  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 11); __PYX_ERR(0, 3202, __pyx_L3_error)
10820  }
10821  CYTHON_FALLTHROUGH;
10822  case 12:
10823  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
10824  else {
10825  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 12); __PYX_ERR(0, 3202, __pyx_L3_error)
10826  }
10827  CYTHON_FALLTHROUGH;
10828  case 13:
10829  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
10830  else {
10831  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 13); __PYX_ERR(0, 3202, __pyx_L3_error)
10832  }
10833  CYTHON_FALLTHROUGH;
10834  case 14:
10835  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
10836  else {
10837  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 14); __PYX_ERR(0, 3202, __pyx_L3_error)
10838  }
10839  CYTHON_FALLTHROUGH;
10840  case 15:
10841  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_eb)) != 0)) kw_args--;
10842  else {
10843  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, 15); __PYX_ERR(0, 3202, __pyx_L3_error)
10844  }
10845  }
10846  if (unlikely(kw_args > 0)) {
10847  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd") < 0)) __PYX_ERR(0, 3202, __pyx_L3_error)
10848  }
10849  } else if (PyTuple_GET_SIZE(__pyx_args) != 16) {
10850  goto __pyx_L5_argtuple_error;
10851  } else {
10852  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10853  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
10854  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
10855  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
10856  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
10857  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
10858  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
10859  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
10860  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
10861  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
10862  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
10863  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
10864  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
10865  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
10866  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
10867  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
10868  }
10869  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
10870  __pyx_v_colind = ((PyArrayObject *)values[1]);
10871  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[2]);
10872  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[3]);
10873  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[4]);
10874  __pyx_v_n = ((PyArrayObject *)values[5]);
10875  __pyx_v_a = ((PyArrayObject *)values[6]);
10876  __pyx_v_da = ((PyArrayObject *)values[7]);
10877  __pyx_v_dphi = ((PyArrayObject *)values[8]);
10878  __pyx_v_V = ((PyArrayObject *)values[9]);
10879  __pyx_v_DV = ((PyArrayObject *)values[10]);
10880  __pyx_v_DV_eb = ((PyArrayObject *)values[11]);
10881  __pyx_v_v = ((PyArrayObject *)values[12]);
10882  __pyx_v_penalty = ((PyArrayObject *)values[13]);
10883  __pyx_v_fluxJacobian = ((PyArrayObject *)values[14]);
10884  __pyx_v_fluxJacobian_eb = ((PyArrayObject *)values[15]);
10885  }
10886  goto __pyx_L4_argument_unpacking_done;
10887  __pyx_L5_argtuple_error:;
10888  __Pyx_RaiseArgtupleInvalid("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 16, 16, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3202, __pyx_L3_error)
10889  __pyx_L3_error:;
10890  __Pyx_AddTraceback("cnumericalFlux.updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
10891  __Pyx_RefNannyFinishContext();
10892  return NULL;
10893  __pyx_L4_argument_unpacking_done:;
10894  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 3202, __pyx_L1_error)
10895  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 3203, __pyx_L1_error)
10896  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 3204, __pyx_L1_error)
10897  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3205, __pyx_L1_error)
10898  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3206, __pyx_L1_error)
10899  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3207, __pyx_L1_error)
10900  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 3208, __pyx_L1_error)
10901  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 3209, __pyx_L1_error)
10902  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 3210, __pyx_L1_error)
10903  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_V), __pyx_ptype_5numpy_ndarray, 1, "V", 0))) __PYX_ERR(0, 3211, __pyx_L1_error)
10904  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_DV), __pyx_ptype_5numpy_ndarray, 1, "DV", 0))) __PYX_ERR(0, 3212, __pyx_L1_error)
10905  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_DV_eb), __pyx_ptype_5numpy_ndarray, 1, "DV_eb", 0))) __PYX_ERR(0, 3213, __pyx_L1_error)
10906  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 3214, __pyx_L1_error)
10907  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 3215, __pyx_L1_error)
10908  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 3216, __pyx_L1_error)
10909  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_eb), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_eb", 0))) __PYX_ERR(0, 3217, __pyx_L1_error)
10910  __pyx_r = __pyx_pf_14cnumericalFlux_60updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_a, __pyx_v_da, __pyx_v_dphi, __pyx_v_V, __pyx_v_DV, __pyx_v_DV_eb, __pyx_v_v, __pyx_v_penalty, __pyx_v_fluxJacobian, __pyx_v_fluxJacobian_eb);
10911 
10912  /* function exit code */
10913  goto __pyx_L0;
10914  __pyx_L1_error:;
10915  __pyx_r = NULL;
10916  __pyx_L0:;
10917  __Pyx_RefNannyFinishContext();
10918  return __pyx_r;
10919 }
10920 
10921 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) {
10922  PyObject *__pyx_r = NULL;
10923  __Pyx_RefNannyDeclarations
10924  __Pyx_RefNannySetupContext("updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 0);
10925 
10926  /* "cnumericalFlux.pyx":3218
10927  * np.ndarray fluxJacobian,
10928  * np.ndarray fluxJacobian_eb):
10929  * cupdateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(interiorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
10930  * v.shape[1],
10931  * v.shape[2],
10932  */
10933  updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd((__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_v->dimensions[1]), (__pyx_v_v->dimensions[2]), (__pyx_v_v->dimensions[3]), (__pyx_v_n->dimensions[3]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->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_dphi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_DV->data), ((double *)__pyx_v_DV_eb->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_fluxJacobian->data), ((double *)__pyx_v_fluxJacobian_eb->data));
10934 
10935  /* "cnumericalFlux.pyx":3202
10936  * <double*> penalty.data,
10937  * <double*> flux.data)
10938  * def updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
10939  * np.ndarray colind,
10940  * np.ndarray interiorElementBoundaries,
10941  */
10942 
10943  /* function exit code */
10944  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10945  __Pyx_XGIVEREF(__pyx_r);
10946  __Pyx_RefNannyFinishContext();
10947  return __pyx_r;
10948 }
10949 
10950 /* "cnumericalFlux.pyx":3240
10951  * <double*> fluxJacobian_eb.data)
10952  *
10953  * def calculateDiffusionMatrixSplittings_LDG_sd(int aSplit, # <<<<<<<<<<<<<<
10954  * int nSpace,
10955  * np.ndarray rowptr,
10956  */
10957 
10958 /* Python wrapper */
10959 static PyObject *__pyx_pw_14cnumericalFlux_63calculateDiffusionMatrixSplittings_LDG_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
10960 static PyMethodDef __pyx_mdef_14cnumericalFlux_63calculateDiffusionMatrixSplittings_LDG_sd = {"calculateDiffusionMatrixSplittings_LDG_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_63calculateDiffusionMatrixSplittings_LDG_sd, METH_VARARGS|METH_KEYWORDS, 0};
10961 static PyObject *__pyx_pw_14cnumericalFlux_63calculateDiffusionMatrixSplittings_LDG_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
10962  int __pyx_v_aSplit;
10963  int __pyx_v_nSpace;
10964  PyArrayObject *__pyx_v_rowptr = 0;
10965  PyArrayObject *__pyx_v_colind = 0;
10966  PyArrayObject *__pyx_v_ebq_a = 0;
10967  PyArrayObject *__pyx_v_q_a = 0;
10968  PyArrayObject *__pyx_v_eb_aHat = 0;
10969  PyArrayObject *__pyx_v_eb_aTilde = 0;
10970  PyArrayObject *__pyx_v_aHat = 0;
10971  PyArrayObject *__pyx_v_aTilde = 0;
10972  int __pyx_lineno = 0;
10973  const char *__pyx_filename = NULL;
10974  int __pyx_clineno = 0;
10975  PyObject *__pyx_r = 0;
10976  __Pyx_RefNannyDeclarations
10977  __Pyx_RefNannySetupContext("calculateDiffusionMatrixSplittings_LDG_sd (wrapper)", 0);
10978  {
10979  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_aSplit,&__pyx_n_s_nSpace,&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_ebq_a,&__pyx_n_s_q_a,&__pyx_n_s_eb_aHat,&__pyx_n_s_eb_aTilde,&__pyx_n_s_aHat,&__pyx_n_s_aTilde,0};
10980  PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
10981  if (unlikely(__pyx_kwds)) {
10982  Py_ssize_t kw_args;
10983  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
10984  switch (pos_args) {
10985  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
10986  CYTHON_FALLTHROUGH;
10987  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
10988  CYTHON_FALLTHROUGH;
10989  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
10990  CYTHON_FALLTHROUGH;
10991  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
10992  CYTHON_FALLTHROUGH;
10993  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
10994  CYTHON_FALLTHROUGH;
10995  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
10996  CYTHON_FALLTHROUGH;
10997  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
10998  CYTHON_FALLTHROUGH;
10999  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11000  CYTHON_FALLTHROUGH;
11001  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11002  CYTHON_FALLTHROUGH;
11003  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11004  CYTHON_FALLTHROUGH;
11005  case 0: break;
11006  default: goto __pyx_L5_argtuple_error;
11007  }
11008  kw_args = PyDict_Size(__pyx_kwds);
11009  switch (pos_args) {
11010  case 0:
11011  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_aSplit)) != 0)) kw_args--;
11012  else goto __pyx_L5_argtuple_error;
11013  CYTHON_FALLTHROUGH;
11014  case 1:
11015  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
11016  else {
11017  __Pyx_RaiseArgtupleInvalid("calculateDiffusionMatrixSplittings_LDG_sd", 1, 10, 10, 1); __PYX_ERR(0, 3240, __pyx_L3_error)
11018  }
11019  CYTHON_FALLTHROUGH;
11020  case 2:
11021  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
11022  else {
11023  __Pyx_RaiseArgtupleInvalid("calculateDiffusionMatrixSplittings_LDG_sd", 1, 10, 10, 2); __PYX_ERR(0, 3240, __pyx_L3_error)
11024  }
11025  CYTHON_FALLTHROUGH;
11026  case 3:
11027  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
11028  else {
11029  __Pyx_RaiseArgtupleInvalid("calculateDiffusionMatrixSplittings_LDG_sd", 1, 10, 10, 3); __PYX_ERR(0, 3240, __pyx_L3_error)
11030  }
11031  CYTHON_FALLTHROUGH;
11032  case 4:
11033  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ebq_a)) != 0)) kw_args--;
11034  else {
11035  __Pyx_RaiseArgtupleInvalid("calculateDiffusionMatrixSplittings_LDG_sd", 1, 10, 10, 4); __PYX_ERR(0, 3240, __pyx_L3_error)
11036  }
11037  CYTHON_FALLTHROUGH;
11038  case 5:
11039  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_q_a)) != 0)) kw_args--;
11040  else {
11041  __Pyx_RaiseArgtupleInvalid("calculateDiffusionMatrixSplittings_LDG_sd", 1, 10, 10, 5); __PYX_ERR(0, 3240, __pyx_L3_error)
11042  }
11043  CYTHON_FALLTHROUGH;
11044  case 6:
11045  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eb_aHat)) != 0)) kw_args--;
11046  else {
11047  __Pyx_RaiseArgtupleInvalid("calculateDiffusionMatrixSplittings_LDG_sd", 1, 10, 10, 6); __PYX_ERR(0, 3240, __pyx_L3_error)
11048  }
11049  CYTHON_FALLTHROUGH;
11050  case 7:
11051  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eb_aTilde)) != 0)) kw_args--;
11052  else {
11053  __Pyx_RaiseArgtupleInvalid("calculateDiffusionMatrixSplittings_LDG_sd", 1, 10, 10, 7); __PYX_ERR(0, 3240, __pyx_L3_error)
11054  }
11055  CYTHON_FALLTHROUGH;
11056  case 8:
11057  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_aHat)) != 0)) kw_args--;
11058  else {
11059  __Pyx_RaiseArgtupleInvalid("calculateDiffusionMatrixSplittings_LDG_sd", 1, 10, 10, 8); __PYX_ERR(0, 3240, __pyx_L3_error)
11060  }
11061  CYTHON_FALLTHROUGH;
11062  case 9:
11063  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_aTilde)) != 0)) kw_args--;
11064  else {
11065  __Pyx_RaiseArgtupleInvalid("calculateDiffusionMatrixSplittings_LDG_sd", 1, 10, 10, 9); __PYX_ERR(0, 3240, __pyx_L3_error)
11066  }
11067  }
11068  if (unlikely(kw_args > 0)) {
11069  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateDiffusionMatrixSplittings_LDG_sd") < 0)) __PYX_ERR(0, 3240, __pyx_L3_error)
11070  }
11071  } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
11072  goto __pyx_L5_argtuple_error;
11073  } else {
11074  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11075  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11076  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11077  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
11078  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
11079  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
11080  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
11081  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
11082  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
11083  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
11084  }
11085  __pyx_v_aSplit = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_aSplit == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3240, __pyx_L3_error)
11086  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3241, __pyx_L3_error)
11087  __pyx_v_rowptr = ((PyArrayObject *)values[2]);
11088  __pyx_v_colind = ((PyArrayObject *)values[3]);
11089  __pyx_v_ebq_a = ((PyArrayObject *)values[4]);
11090  __pyx_v_q_a = ((PyArrayObject *)values[5]);
11091  __pyx_v_eb_aHat = ((PyArrayObject *)values[6]);
11092  __pyx_v_eb_aTilde = ((PyArrayObject *)values[7]);
11093  __pyx_v_aHat = ((PyArrayObject *)values[8]);
11094  __pyx_v_aTilde = ((PyArrayObject *)values[9]);
11095  }
11096  goto __pyx_L4_argument_unpacking_done;
11097  __pyx_L5_argtuple_error:;
11098  __Pyx_RaiseArgtupleInvalid("calculateDiffusionMatrixSplittings_LDG_sd", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3240, __pyx_L3_error)
11099  __pyx_L3_error:;
11100  __Pyx_AddTraceback("cnumericalFlux.calculateDiffusionMatrixSplittings_LDG_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
11101  __Pyx_RefNannyFinishContext();
11102  return NULL;
11103  __pyx_L4_argument_unpacking_done:;
11104  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 3242, __pyx_L1_error)
11105  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 3243, __pyx_L1_error)
11106  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_a), __pyx_ptype_5numpy_ndarray, 1, "ebq_a", 0))) __PYX_ERR(0, 3244, __pyx_L1_error)
11107  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_a), __pyx_ptype_5numpy_ndarray, 1, "q_a", 0))) __PYX_ERR(0, 3245, __pyx_L1_error)
11108  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_eb_aHat), __pyx_ptype_5numpy_ndarray, 1, "eb_aHat", 0))) __PYX_ERR(0, 3246, __pyx_L1_error)
11109  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_eb_aTilde), __pyx_ptype_5numpy_ndarray, 1, "eb_aTilde", 0))) __PYX_ERR(0, 3247, __pyx_L1_error)
11110  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_aHat), __pyx_ptype_5numpy_ndarray, 1, "aHat", 0))) __PYX_ERR(0, 3248, __pyx_L1_error)
11111  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_aTilde), __pyx_ptype_5numpy_ndarray, 1, "aTilde", 0))) __PYX_ERR(0, 3249, __pyx_L1_error)
11112  __pyx_r = __pyx_pf_14cnumericalFlux_62calculateDiffusionMatrixSplittings_LDG_sd(__pyx_self, __pyx_v_aSplit, __pyx_v_nSpace, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_ebq_a, __pyx_v_q_a, __pyx_v_eb_aHat, __pyx_v_eb_aTilde, __pyx_v_aHat, __pyx_v_aTilde);
11113 
11114  /* function exit code */
11115  goto __pyx_L0;
11116  __pyx_L1_error:;
11117  __pyx_r = NULL;
11118  __pyx_L0:;
11119  __Pyx_RefNannyFinishContext();
11120  return __pyx_r;
11121 }
11122 
11123 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) {
11124  PyObject *__pyx_r = NULL;
11125  __Pyx_RefNannyDeclarations
11126  __Pyx_RefNannySetupContext("calculateDiffusionMatrixSplittings_LDG_sd", 0);
11127 
11128  /* "cnumericalFlux.pyx":3250
11129  * np.ndarray aHat,
11130  * np.ndarray aTilde):
11131  * ccalculateDiffusionMatrixSplittings_LDG_sd( aSplit, # <<<<<<<<<<<<<<
11132  * q_a.shape[0],
11133  * ebq_a.shape[1],
11134  */
11135  calculateDiffusionMatrixSplittings_LDG_sd(__pyx_v_aSplit, (__pyx_v_q_a->dimensions[0]), (__pyx_v_ebq_a->dimensions[1]), (__pyx_v_q_a->dimensions[1]), (__pyx_v_ebq_a->dimensions[2]), __pyx_v_nSpace, ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((double *)__pyx_v_ebq_a->data), ((double *)__pyx_v_q_a->data), ((double *)__pyx_v_eb_aHat->data), ((double *)__pyx_v_eb_aTilde->data), ((double *)__pyx_v_aHat->data), ((double *)__pyx_v_aTilde->data));
11136 
11137  /* "cnumericalFlux.pyx":3240
11138  * <double*> fluxJacobian_eb.data)
11139  *
11140  * def calculateDiffusionMatrixSplittings_LDG_sd(int aSplit, # <<<<<<<<<<<<<<
11141  * int nSpace,
11142  * np.ndarray rowptr,
11143  */
11144 
11145  /* function exit code */
11146  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11147  __Pyx_XGIVEREF(__pyx_r);
11148  __Pyx_RefNannyFinishContext();
11149  return __pyx_r;
11150 }
11151 
11152 /* "cnumericalFlux.pyx":3264
11153  * <double*> aHat.data,
11154  * <double*> aTilde.data)
11155  * def calculateGlobalExteriorNumericalFluxDarcyFCFF_sd(np.ndarray rowptr_wm, # <<<<<<<<<<<<<<
11156  * np.ndarray colind_wm,
11157  * np.ndarray rowptr_mw,
11158  */
11159 
11160 /* Python wrapper */
11161 static PyObject *__pyx_pw_14cnumericalFlux_65calculateGlobalExteriorNumericalFluxDarcyFCFF_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
11162 static PyMethodDef __pyx_mdef_14cnumericalFlux_65calculateGlobalExteriorNumericalFluxDarcyFCFF_sd = {"calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_65calculateGlobalExteriorNumericalFluxDarcyFCFF_sd, METH_VARARGS|METH_KEYWORDS, 0};
11163 static PyObject *__pyx_pw_14cnumericalFlux_65calculateGlobalExteriorNumericalFluxDarcyFCFF_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
11164  PyArrayObject *__pyx_v_rowptr_wm = 0;
11165  PyArrayObject *__pyx_v_colind_wm = 0;
11166  PyArrayObject *__pyx_v_rowptr_mw = 0;
11167  PyArrayObject *__pyx_v_colind_mw = 0;
11168  PyArrayObject *__pyx_v_rowptr_mm = 0;
11169  PyArrayObject *__pyx_v_colind_mm = 0;
11170  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
11171  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
11172  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
11173  PyArrayObject *__pyx_v_isDOFBoundary_uw = 0;
11174  PyArrayObject *__pyx_v_isDOFBoundary_um = 0;
11175  PyArrayObject *__pyx_v_n = 0;
11176  PyArrayObject *__pyx_v_bc_f_m = 0;
11177  PyArrayObject *__pyx_v_bc_a_wm = 0;
11178  PyArrayObject *__pyx_v_bc_a_mw = 0;
11179  PyArrayObject *__pyx_v_bc_a_mm = 0;
11180  PyArrayObject *__pyx_v_bc_grad_phi_w = 0;
11181  PyArrayObject *__pyx_v_bc_grad_phi_m = 0;
11182  PyArrayObject *__pyx_v_bc_u_w = 0;
11183  PyArrayObject *__pyx_v_bc_u_m = 0;
11184  PyArrayObject *__pyx_v_f_m = 0;
11185  PyArrayObject *__pyx_v_df_m_dw = 0;
11186  PyArrayObject *__pyx_v_a_wm = 0;
11187  PyArrayObject *__pyx_v_a_mw = 0;
11188  PyArrayObject *__pyx_v_a_mm = 0;
11189  PyArrayObject *__pyx_v_grad_phi_w = 0;
11190  PyArrayObject *__pyx_v_grad_phi_m = 0;
11191  PyArrayObject *__pyx_v_u_w = 0;
11192  PyArrayObject *__pyx_v_u_m = 0;
11193  PyArrayObject *__pyx_v_penalty_w = 0;
11194  PyArrayObject *__pyx_v_penalty_m = 0;
11195  PyArrayObject *__pyx_v_advectiveFlux_m = 0;
11196  PyArrayObject *__pyx_v_dadvectiveFlux_m_dw = 0;
11197  PyArrayObject *__pyx_v_diffusiveFlux_wm = 0;
11198  PyArrayObject *__pyx_v_diffusiveFlux_mw = 0;
11199  PyArrayObject *__pyx_v_diffusiveFlux_mm = 0;
11200  int __pyx_lineno = 0;
11201  const char *__pyx_filename = NULL;
11202  int __pyx_clineno = 0;
11203  PyObject *__pyx_r = 0;
11204  __Pyx_RefNannyDeclarations
11205  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd (wrapper)", 0);
11206  {
11207  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr_wm,&__pyx_n_s_colind_wm,&__pyx_n_s_rowptr_mw,&__pyx_n_s_colind_mw,&__pyx_n_s_rowptr_mm,&__pyx_n_s_colind_mm,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_uw,&__pyx_n_s_isDOFBoundary_um,&__pyx_n_s_n,&__pyx_n_s_bc_f_m,&__pyx_n_s_bc_a_wm,&__pyx_n_s_bc_a_mw,&__pyx_n_s_bc_a_mm,&__pyx_n_s_bc_grad_phi_w,&__pyx_n_s_bc_grad_phi_m,&__pyx_n_s_bc_u_w,&__pyx_n_s_bc_u_m,&__pyx_n_s_f_m,&__pyx_n_s_df_m_dw,&__pyx_n_s_a_wm,&__pyx_n_s_a_mw,&__pyx_n_s_a_mm,&__pyx_n_s_grad_phi_w,&__pyx_n_s_grad_phi_m,&__pyx_n_s_u_w,&__pyx_n_s_u_m,&__pyx_n_s_penalty_w,&__pyx_n_s_penalty_m,&__pyx_n_s_advectiveFlux_m,&__pyx_n_s_dadvectiveFlux_m_dw,&__pyx_n_s_diffusiveFlux_wm,&__pyx_n_s_diffusiveFlux_mw,&__pyx_n_s_diffusiveFlux_mm,0};
11208  PyObject* values[36] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
11209  if (unlikely(__pyx_kwds)) {
11210  Py_ssize_t kw_args;
11211  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
11212  switch (pos_args) {
11213  case 36: values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
11214  CYTHON_FALLTHROUGH;
11215  case 35: values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
11216  CYTHON_FALLTHROUGH;
11217  case 34: values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
11218  CYTHON_FALLTHROUGH;
11219  case 33: values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
11220  CYTHON_FALLTHROUGH;
11221  case 32: values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
11222  CYTHON_FALLTHROUGH;
11223  case 31: values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
11224  CYTHON_FALLTHROUGH;
11225  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
11226  CYTHON_FALLTHROUGH;
11227  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
11228  CYTHON_FALLTHROUGH;
11229  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
11230  CYTHON_FALLTHROUGH;
11231  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
11232  CYTHON_FALLTHROUGH;
11233  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
11234  CYTHON_FALLTHROUGH;
11235  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
11236  CYTHON_FALLTHROUGH;
11237  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
11238  CYTHON_FALLTHROUGH;
11239  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
11240  CYTHON_FALLTHROUGH;
11241  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
11242  CYTHON_FALLTHROUGH;
11243  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
11244  CYTHON_FALLTHROUGH;
11245  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
11246  CYTHON_FALLTHROUGH;
11247  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
11248  CYTHON_FALLTHROUGH;
11249  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
11250  CYTHON_FALLTHROUGH;
11251  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
11252  CYTHON_FALLTHROUGH;
11253  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
11254  CYTHON_FALLTHROUGH;
11255  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
11256  CYTHON_FALLTHROUGH;
11257  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
11258  CYTHON_FALLTHROUGH;
11259  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
11260  CYTHON_FALLTHROUGH;
11261  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
11262  CYTHON_FALLTHROUGH;
11263  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
11264  CYTHON_FALLTHROUGH;
11265  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
11266  CYTHON_FALLTHROUGH;
11267  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
11268  CYTHON_FALLTHROUGH;
11269  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
11270  CYTHON_FALLTHROUGH;
11271  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
11272  CYTHON_FALLTHROUGH;
11273  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
11274  CYTHON_FALLTHROUGH;
11275  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
11276  CYTHON_FALLTHROUGH;
11277  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
11278  CYTHON_FALLTHROUGH;
11279  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11280  CYTHON_FALLTHROUGH;
11281  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11282  CYTHON_FALLTHROUGH;
11283  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11284  CYTHON_FALLTHROUGH;
11285  case 0: break;
11286  default: goto __pyx_L5_argtuple_error;
11287  }
11288  kw_args = PyDict_Size(__pyx_kwds);
11289  switch (pos_args) {
11290  case 0:
11291  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr_wm)) != 0)) kw_args--;
11292  else goto __pyx_L5_argtuple_error;
11293  CYTHON_FALLTHROUGH;
11294  case 1:
11295  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind_wm)) != 0)) kw_args--;
11296  else {
11297  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 1); __PYX_ERR(0, 3264, __pyx_L3_error)
11298  }
11299  CYTHON_FALLTHROUGH;
11300  case 2:
11301  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr_mw)) != 0)) kw_args--;
11302  else {
11303  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 2); __PYX_ERR(0, 3264, __pyx_L3_error)
11304  }
11305  CYTHON_FALLTHROUGH;
11306  case 3:
11307  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind_mw)) != 0)) kw_args--;
11308  else {
11309  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 3); __PYX_ERR(0, 3264, __pyx_L3_error)
11310  }
11311  CYTHON_FALLTHROUGH;
11312  case 4:
11313  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr_mm)) != 0)) kw_args--;
11314  else {
11315  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 4); __PYX_ERR(0, 3264, __pyx_L3_error)
11316  }
11317  CYTHON_FALLTHROUGH;
11318  case 5:
11319  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind_mm)) != 0)) kw_args--;
11320  else {
11321  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 5); __PYX_ERR(0, 3264, __pyx_L3_error)
11322  }
11323  CYTHON_FALLTHROUGH;
11324  case 6:
11325  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
11326  else {
11327  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 6); __PYX_ERR(0, 3264, __pyx_L3_error)
11328  }
11329  CYTHON_FALLTHROUGH;
11330  case 7:
11331  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
11332  else {
11333  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 7); __PYX_ERR(0, 3264, __pyx_L3_error)
11334  }
11335  CYTHON_FALLTHROUGH;
11336  case 8:
11337  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
11338  else {
11339  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 8); __PYX_ERR(0, 3264, __pyx_L3_error)
11340  }
11341  CYTHON_FALLTHROUGH;
11342  case 9:
11343  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_uw)) != 0)) kw_args--;
11344  else {
11345  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 9); __PYX_ERR(0, 3264, __pyx_L3_error)
11346  }
11347  CYTHON_FALLTHROUGH;
11348  case 10:
11349  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_um)) != 0)) kw_args--;
11350  else {
11351  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 10); __PYX_ERR(0, 3264, __pyx_L3_error)
11352  }
11353  CYTHON_FALLTHROUGH;
11354  case 11:
11355  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
11356  else {
11357  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 11); __PYX_ERR(0, 3264, __pyx_L3_error)
11358  }
11359  CYTHON_FALLTHROUGH;
11360  case 12:
11361  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_m)) != 0)) kw_args--;
11362  else {
11363  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 12); __PYX_ERR(0, 3264, __pyx_L3_error)
11364  }
11365  CYTHON_FALLTHROUGH;
11366  case 13:
11367  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a_wm)) != 0)) kw_args--;
11368  else {
11369  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 13); __PYX_ERR(0, 3264, __pyx_L3_error)
11370  }
11371  CYTHON_FALLTHROUGH;
11372  case 14:
11373  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a_mw)) != 0)) kw_args--;
11374  else {
11375  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 14); __PYX_ERR(0, 3264, __pyx_L3_error)
11376  }
11377  CYTHON_FALLTHROUGH;
11378  case 15:
11379  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a_mm)) != 0)) kw_args--;
11380  else {
11381  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 15); __PYX_ERR(0, 3264, __pyx_L3_error)
11382  }
11383  CYTHON_FALLTHROUGH;
11384  case 16:
11385  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi_w)) != 0)) kw_args--;
11386  else {
11387  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 16); __PYX_ERR(0, 3264, __pyx_L3_error)
11388  }
11389  CYTHON_FALLTHROUGH;
11390  case 17:
11391  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi_m)) != 0)) kw_args--;
11392  else {
11393  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 17); __PYX_ERR(0, 3264, __pyx_L3_error)
11394  }
11395  CYTHON_FALLTHROUGH;
11396  case 18:
11397  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u_w)) != 0)) kw_args--;
11398  else {
11399  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 18); __PYX_ERR(0, 3264, __pyx_L3_error)
11400  }
11401  CYTHON_FALLTHROUGH;
11402  case 19:
11403  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u_m)) != 0)) kw_args--;
11404  else {
11405  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 19); __PYX_ERR(0, 3264, __pyx_L3_error)
11406  }
11407  CYTHON_FALLTHROUGH;
11408  case 20:
11409  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_m)) != 0)) kw_args--;
11410  else {
11411  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 20); __PYX_ERR(0, 3264, __pyx_L3_error)
11412  }
11413  CYTHON_FALLTHROUGH;
11414  case 21:
11415  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_m_dw)) != 0)) kw_args--;
11416  else {
11417  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 21); __PYX_ERR(0, 3264, __pyx_L3_error)
11418  }
11419  CYTHON_FALLTHROUGH;
11420  case 22:
11421  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_wm)) != 0)) kw_args--;
11422  else {
11423  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 22); __PYX_ERR(0, 3264, __pyx_L3_error)
11424  }
11425  CYTHON_FALLTHROUGH;
11426  case 23:
11427  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_mw)) != 0)) kw_args--;
11428  else {
11429  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 23); __PYX_ERR(0, 3264, __pyx_L3_error)
11430  }
11431  CYTHON_FALLTHROUGH;
11432  case 24:
11433  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_mm)) != 0)) kw_args--;
11434  else {
11435  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 24); __PYX_ERR(0, 3264, __pyx_L3_error)
11436  }
11437  CYTHON_FALLTHROUGH;
11438  case 25:
11439  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_w)) != 0)) kw_args--;
11440  else {
11441  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 25); __PYX_ERR(0, 3264, __pyx_L3_error)
11442  }
11443  CYTHON_FALLTHROUGH;
11444  case 26:
11445  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_m)) != 0)) kw_args--;
11446  else {
11447  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 26); __PYX_ERR(0, 3264, __pyx_L3_error)
11448  }
11449  CYTHON_FALLTHROUGH;
11450  case 27:
11451  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u_w)) != 0)) kw_args--;
11452  else {
11453  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 27); __PYX_ERR(0, 3264, __pyx_L3_error)
11454  }
11455  CYTHON_FALLTHROUGH;
11456  case 28:
11457  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u_m)) != 0)) kw_args--;
11458  else {
11459  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 28); __PYX_ERR(0, 3264, __pyx_L3_error)
11460  }
11461  CYTHON_FALLTHROUGH;
11462  case 29:
11463  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_w)) != 0)) kw_args--;
11464  else {
11465  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 29); __PYX_ERR(0, 3264, __pyx_L3_error)
11466  }
11467  CYTHON_FALLTHROUGH;
11468  case 30:
11469  if (likely((values[30] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_m)) != 0)) kw_args--;
11470  else {
11471  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 30); __PYX_ERR(0, 3264, __pyx_L3_error)
11472  }
11473  CYTHON_FALLTHROUGH;
11474  case 31:
11475  if (likely((values[31] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_advectiveFlux_m)) != 0)) kw_args--;
11476  else {
11477  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 31); __PYX_ERR(0, 3264, __pyx_L3_error)
11478  }
11479  CYTHON_FALLTHROUGH;
11480  case 32:
11481  if (likely((values[32] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dadvectiveFlux_m_dw)) != 0)) kw_args--;
11482  else {
11483  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 32); __PYX_ERR(0, 3264, __pyx_L3_error)
11484  }
11485  CYTHON_FALLTHROUGH;
11486  case 33:
11487  if (likely((values[33] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux_wm)) != 0)) kw_args--;
11488  else {
11489  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 33); __PYX_ERR(0, 3264, __pyx_L3_error)
11490  }
11491  CYTHON_FALLTHROUGH;
11492  case 34:
11493  if (likely((values[34] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux_mw)) != 0)) kw_args--;
11494  else {
11495  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 34); __PYX_ERR(0, 3264, __pyx_L3_error)
11496  }
11497  CYTHON_FALLTHROUGH;
11498  case 35:
11499  if (likely((values[35] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux_mm)) != 0)) kw_args--;
11500  else {
11501  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, 35); __PYX_ERR(0, 3264, __pyx_L3_error)
11502  }
11503  }
11504  if (unlikely(kw_args > 0)) {
11505  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalFluxDarcyFCFF_sd") < 0)) __PYX_ERR(0, 3264, __pyx_L3_error)
11506  }
11507  } else if (PyTuple_GET_SIZE(__pyx_args) != 36) {
11508  goto __pyx_L5_argtuple_error;
11509  } else {
11510  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11511  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11512  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11513  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
11514  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
11515  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
11516  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
11517  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
11518  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
11519  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
11520  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
11521  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
11522  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
11523  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
11524  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
11525  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
11526  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
11527  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
11528  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
11529  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
11530  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
11531  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
11532  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
11533  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
11534  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
11535  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
11536  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
11537  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
11538  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
11539  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
11540  values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
11541  values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
11542  values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
11543  values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
11544  values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
11545  values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
11546  }
11547  __pyx_v_rowptr_wm = ((PyArrayObject *)values[0]);
11548  __pyx_v_colind_wm = ((PyArrayObject *)values[1]);
11549  __pyx_v_rowptr_mw = ((PyArrayObject *)values[2]);
11550  __pyx_v_colind_mw = ((PyArrayObject *)values[3]);
11551  __pyx_v_rowptr_mm = ((PyArrayObject *)values[4]);
11552  __pyx_v_colind_mm = ((PyArrayObject *)values[5]);
11553  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[6]);
11554  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[7]);
11555  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[8]);
11556  __pyx_v_isDOFBoundary_uw = ((PyArrayObject *)values[9]);
11557  __pyx_v_isDOFBoundary_um = ((PyArrayObject *)values[10]);
11558  __pyx_v_n = ((PyArrayObject *)values[11]);
11559  __pyx_v_bc_f_m = ((PyArrayObject *)values[12]);
11560  __pyx_v_bc_a_wm = ((PyArrayObject *)values[13]);
11561  __pyx_v_bc_a_mw = ((PyArrayObject *)values[14]);
11562  __pyx_v_bc_a_mm = ((PyArrayObject *)values[15]);
11563  __pyx_v_bc_grad_phi_w = ((PyArrayObject *)values[16]);
11564  __pyx_v_bc_grad_phi_m = ((PyArrayObject *)values[17]);
11565  __pyx_v_bc_u_w = ((PyArrayObject *)values[18]);
11566  __pyx_v_bc_u_m = ((PyArrayObject *)values[19]);
11567  __pyx_v_f_m = ((PyArrayObject *)values[20]);
11568  __pyx_v_df_m_dw = ((PyArrayObject *)values[21]);
11569  __pyx_v_a_wm = ((PyArrayObject *)values[22]);
11570  __pyx_v_a_mw = ((PyArrayObject *)values[23]);
11571  __pyx_v_a_mm = ((PyArrayObject *)values[24]);
11572  __pyx_v_grad_phi_w = ((PyArrayObject *)values[25]);
11573  __pyx_v_grad_phi_m = ((PyArrayObject *)values[26]);
11574  __pyx_v_u_w = ((PyArrayObject *)values[27]);
11575  __pyx_v_u_m = ((PyArrayObject *)values[28]);
11576  __pyx_v_penalty_w = ((PyArrayObject *)values[29]);
11577  __pyx_v_penalty_m = ((PyArrayObject *)values[30]);
11578  __pyx_v_advectiveFlux_m = ((PyArrayObject *)values[31]);
11579  __pyx_v_dadvectiveFlux_m_dw = ((PyArrayObject *)values[32]);
11580  __pyx_v_diffusiveFlux_wm = ((PyArrayObject *)values[33]);
11581  __pyx_v_diffusiveFlux_mw = ((PyArrayObject *)values[34]);
11582  __pyx_v_diffusiveFlux_mm = ((PyArrayObject *)values[35]);
11583  }
11584  goto __pyx_L4_argument_unpacking_done;
11585  __pyx_L5_argtuple_error:;
11586  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 1, 36, 36, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3264, __pyx_L3_error)
11587  __pyx_L3_error:;
11588  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
11589  __Pyx_RefNannyFinishContext();
11590  return NULL;
11591  __pyx_L4_argument_unpacking_done:;
11592  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr_wm), __pyx_ptype_5numpy_ndarray, 1, "rowptr_wm", 0))) __PYX_ERR(0, 3264, __pyx_L1_error)
11593  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind_wm), __pyx_ptype_5numpy_ndarray, 1, "colind_wm", 0))) __PYX_ERR(0, 3265, __pyx_L1_error)
11594  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr_mw), __pyx_ptype_5numpy_ndarray, 1, "rowptr_mw", 0))) __PYX_ERR(0, 3266, __pyx_L1_error)
11595  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind_mw), __pyx_ptype_5numpy_ndarray, 1, "colind_mw", 0))) __PYX_ERR(0, 3267, __pyx_L1_error)
11596  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr_mm), __pyx_ptype_5numpy_ndarray, 1, "rowptr_mm", 0))) __PYX_ERR(0, 3268, __pyx_L1_error)
11597  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind_mm), __pyx_ptype_5numpy_ndarray, 1, "colind_mm", 0))) __PYX_ERR(0, 3269, __pyx_L1_error)
11598  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 3270, __pyx_L1_error)
11599  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3271, __pyx_L1_error)
11600  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3272, __pyx_L1_error)
11601  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_uw), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_uw", 0))) __PYX_ERR(0, 3273, __pyx_L1_error)
11602  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_um), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_um", 0))) __PYX_ERR(0, 3274, __pyx_L1_error)
11603  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3275, __pyx_L1_error)
11604  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_m), __pyx_ptype_5numpy_ndarray, 1, "bc_f_m", 0))) __PYX_ERR(0, 3276, __pyx_L1_error)
11605  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a_wm), __pyx_ptype_5numpy_ndarray, 1, "bc_a_wm", 0))) __PYX_ERR(0, 3277, __pyx_L1_error)
11606  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a_mw), __pyx_ptype_5numpy_ndarray, 1, "bc_a_mw", 0))) __PYX_ERR(0, 3278, __pyx_L1_error)
11607  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a_mm), __pyx_ptype_5numpy_ndarray, 1, "bc_a_mm", 0))) __PYX_ERR(0, 3279, __pyx_L1_error)
11608  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi_w", 0))) __PYX_ERR(0, 3280, __pyx_L1_error)
11609  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi_m), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi_m", 0))) __PYX_ERR(0, 3281, __pyx_L1_error)
11610  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u_w), __pyx_ptype_5numpy_ndarray, 1, "bc_u_w", 0))) __PYX_ERR(0, 3282, __pyx_L1_error)
11611  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u_m), __pyx_ptype_5numpy_ndarray, 1, "bc_u_m", 0))) __PYX_ERR(0, 3283, __pyx_L1_error)
11612  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_m), __pyx_ptype_5numpy_ndarray, 1, "f_m", 0))) __PYX_ERR(0, 3284, __pyx_L1_error)
11613  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_m_dw), __pyx_ptype_5numpy_ndarray, 1, "df_m_dw", 0))) __PYX_ERR(0, 3285, __pyx_L1_error)
11614  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_wm), __pyx_ptype_5numpy_ndarray, 1, "a_wm", 0))) __PYX_ERR(0, 3286, __pyx_L1_error)
11615  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_mw), __pyx_ptype_5numpy_ndarray, 1, "a_mw", 0))) __PYX_ERR(0, 3287, __pyx_L1_error)
11616  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_mm), __pyx_ptype_5numpy_ndarray, 1, "a_mm", 0))) __PYX_ERR(0, 3288, __pyx_L1_error)
11617  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_w", 0))) __PYX_ERR(0, 3289, __pyx_L1_error)
11618  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_m), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_m", 0))) __PYX_ERR(0, 3290, __pyx_L1_error)
11619  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u_w), __pyx_ptype_5numpy_ndarray, 1, "u_w", 0))) __PYX_ERR(0, 3291, __pyx_L1_error)
11620  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u_m), __pyx_ptype_5numpy_ndarray, 1, "u_m", 0))) __PYX_ERR(0, 3292, __pyx_L1_error)
11621  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_w), __pyx_ptype_5numpy_ndarray, 1, "penalty_w", 0))) __PYX_ERR(0, 3293, __pyx_L1_error)
11622  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_m), __pyx_ptype_5numpy_ndarray, 1, "penalty_m", 0))) __PYX_ERR(0, 3294, __pyx_L1_error)
11623  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_advectiveFlux_m), __pyx_ptype_5numpy_ndarray, 1, "advectiveFlux_m", 0))) __PYX_ERR(0, 3295, __pyx_L1_error)
11624  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dadvectiveFlux_m_dw), __pyx_ptype_5numpy_ndarray, 1, "dadvectiveFlux_m_dw", 0))) __PYX_ERR(0, 3296, __pyx_L1_error)
11625  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux_wm), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux_wm", 0))) __PYX_ERR(0, 3297, __pyx_L1_error)
11626  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux_mw), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux_mw", 0))) __PYX_ERR(0, 3298, __pyx_L1_error)
11627  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux_mm), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux_mm", 0))) __PYX_ERR(0, 3299, __pyx_L1_error)
11628  __pyx_r = __pyx_pf_14cnumericalFlux_64calculateGlobalExteriorNumericalFluxDarcyFCFF_sd(__pyx_self, __pyx_v_rowptr_wm, __pyx_v_colind_wm, __pyx_v_rowptr_mw, __pyx_v_colind_mw, __pyx_v_rowptr_mm, __pyx_v_colind_mm, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_uw, __pyx_v_isDOFBoundary_um, __pyx_v_n, __pyx_v_bc_f_m, __pyx_v_bc_a_wm, __pyx_v_bc_a_mw, __pyx_v_bc_a_mm, __pyx_v_bc_grad_phi_w, __pyx_v_bc_grad_phi_m, __pyx_v_bc_u_w, __pyx_v_bc_u_m, __pyx_v_f_m, __pyx_v_df_m_dw, __pyx_v_a_wm, __pyx_v_a_mw, __pyx_v_a_mm, __pyx_v_grad_phi_w, __pyx_v_grad_phi_m, __pyx_v_u_w, __pyx_v_u_m, __pyx_v_penalty_w, __pyx_v_penalty_m, __pyx_v_advectiveFlux_m, __pyx_v_dadvectiveFlux_m_dw, __pyx_v_diffusiveFlux_wm, __pyx_v_diffusiveFlux_mw, __pyx_v_diffusiveFlux_mm);
11629 
11630  /* function exit code */
11631  goto __pyx_L0;
11632  __pyx_L1_error:;
11633  __pyx_r = NULL;
11634  __pyx_L0:;
11635  __Pyx_RefNannyFinishContext();
11636  return __pyx_r;
11637 }
11638 
11639 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) {
11640  PyObject *__pyx_r = NULL;
11641  __Pyx_RefNannyDeclarations
11642  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCFF_sd", 0);
11643 
11644  /* "cnumericalFlux.pyx":3300
11645  * np.ndarray diffusiveFlux_mw,
11646  * np.ndarray diffusiveFlux_mm):
11647  * ccalculateGlobalExteriorNumericalFluxDarcyFCFF_sd(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
11648  * n.shape[1],
11649  * n.shape[2],
11650  */
11651  calculateGlobalExteriorNumericalFluxDarcyFCFF_sd((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), ((int *)__pyx_v_rowptr_wm->data), ((int *)__pyx_v_colind_wm->data), ((int *)__pyx_v_rowptr_mw->data), ((int *)__pyx_v_colind_mw->data), ((int *)__pyx_v_rowptr_mm->data), ((int *)__pyx_v_colind_mm->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_uw->data), ((int *)__pyx_v_isDOFBoundary_um->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_f_m->data), ((double *)__pyx_v_bc_a_wm->data), ((double *)__pyx_v_bc_a_mw->data), ((double *)__pyx_v_bc_a_mm->data), ((double *)__pyx_v_bc_grad_phi_w->data), ((double *)__pyx_v_bc_grad_phi_m->data), ((double *)__pyx_v_bc_u_w->data), ((double *)__pyx_v_bc_u_m->data), ((double *)__pyx_v_f_m->data), ((double *)__pyx_v_df_m_dw->data), ((double *)__pyx_v_a_wm->data), ((double *)__pyx_v_a_mw->data), ((double *)__pyx_v_a_mm->data), ((double *)__pyx_v_grad_phi_w->data), ((double *)__pyx_v_grad_phi_m->data), ((double *)__pyx_v_u_w->data), ((double *)__pyx_v_u_m->data), ((double *)__pyx_v_penalty_w->data), ((double *)__pyx_v_penalty_m->data), ((double *)__pyx_v_advectiveFlux_m->data), ((double *)__pyx_v_dadvectiveFlux_m_dw->data), ((double *)__pyx_v_diffusiveFlux_wm->data), ((double *)__pyx_v_diffusiveFlux_mw->data), ((double *)__pyx_v_diffusiveFlux_mm->data));
11652 
11653  /* "cnumericalFlux.pyx":3264
11654  * <double*> aHat.data,
11655  * <double*> aTilde.data)
11656  * def calculateGlobalExteriorNumericalFluxDarcyFCFF_sd(np.ndarray rowptr_wm, # <<<<<<<<<<<<<<
11657  * np.ndarray colind_wm,
11658  * np.ndarray rowptr_mw,
11659  */
11660 
11661  /* function exit code */
11662  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11663  __Pyx_XGIVEREF(__pyx_r);
11664  __Pyx_RefNannyFinishContext();
11665  return __pyx_r;
11666 }
11667 
11668 /* "cnumericalFlux.pyx":3339
11669  * <double*> diffusiveFlux_mw.data,
11670  * <double*> diffusiveFlux_mm.data)
11671  * def calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd(np.ndarray rowptr_wm, # <<<<<<<<<<<<<<
11672  * np.ndarray colind_wm,
11673  * np.ndarray rowptr_mw,
11674  */
11675 
11676 /* Python wrapper */
11677 static PyObject *__pyx_pw_14cnumericalFlux_67calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
11678 static PyMethodDef __pyx_mdef_14cnumericalFlux_67calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd = {"calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_67calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd, METH_VARARGS|METH_KEYWORDS, 0};
11679 static PyObject *__pyx_pw_14cnumericalFlux_67calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
11680  PyArrayObject *__pyx_v_rowptr_wm = 0;
11681  PyArrayObject *__pyx_v_colind_wm = 0;
11682  PyArrayObject *__pyx_v_rowptr_mw = 0;
11683  PyArrayObject *__pyx_v_colind_mw = 0;
11684  PyArrayObject *__pyx_v_rowptr_mm = 0;
11685  PyArrayObject *__pyx_v_colind_mm = 0;
11686  PyArrayObject *__pyx_v_l2g = 0;
11687  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
11688  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
11689  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
11690  PyArrayObject *__pyx_v_isDOFBoundary_uw = 0;
11691  PyArrayObject *__pyx_v_isDOFBoundary_um = 0;
11692  PyArrayObject *__pyx_v_n = 0;
11693  PyArrayObject *__pyx_v_f_m = 0;
11694  PyArrayObject *__pyx_v_df_m_dw = 0;
11695  PyArrayObject *__pyx_v_a_wm = 0;
11696  PyArrayObject *__pyx_v_da_wm_dw = 0;
11697  PyArrayObject *__pyx_v_da_wm_dm = 0;
11698  PyArrayObject *__pyx_v_a_mw = 0;
11699  PyArrayObject *__pyx_v_da_mw_dw = 0;
11700  PyArrayObject *__pyx_v_da_mw_dm = 0;
11701  PyArrayObject *__pyx_v_a_mm = 0;
11702  PyArrayObject *__pyx_v_da_mm_dw = 0;
11703  PyArrayObject *__pyx_v_da_mm_dm = 0;
11704  PyArrayObject *__pyx_v_grad_phi_w = 0;
11705  PyArrayObject *__pyx_v_grad_phi_m = 0;
11706  PyArrayObject *__pyx_v_dphi_w_w = 0;
11707  PyArrayObject *__pyx_v_dphi_w_m = 0;
11708  PyArrayObject *__pyx_v_dphi_m_w = 0;
11709  PyArrayObject *__pyx_v_dphi_m_m = 0;
11710  PyArrayObject *__pyx_v_u_w = 0;
11711  PyArrayObject *__pyx_v_u_m = 0;
11712  PyArrayObject *__pyx_v_v = 0;
11713  PyArrayObject *__pyx_v_grad_v = 0;
11714  PyArrayObject *__pyx_v_penalty_w = 0;
11715  PyArrayObject *__pyx_v_penalty_m = 0;
11716  PyArrayObject *__pyx_v_fluxJacobian_ww = 0;
11717  PyArrayObject *__pyx_v_fluxJacobian_wm = 0;
11718  PyArrayObject *__pyx_v_fluxJacobian_mw = 0;
11719  PyArrayObject *__pyx_v_fluxJacobian_mm = 0;
11720  int __pyx_lineno = 0;
11721  const char *__pyx_filename = NULL;
11722  int __pyx_clineno = 0;
11723  PyObject *__pyx_r = 0;
11724  __Pyx_RefNannyDeclarations
11725  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd (wrapper)", 0);
11726  {
11727  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr_wm,&__pyx_n_s_colind_wm,&__pyx_n_s_rowptr_mw,&__pyx_n_s_colind_mw,&__pyx_n_s_rowptr_mm,&__pyx_n_s_colind_mm,&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_uw,&__pyx_n_s_isDOFBoundary_um,&__pyx_n_s_n,&__pyx_n_s_f_m,&__pyx_n_s_df_m_dw,&__pyx_n_s_a_wm,&__pyx_n_s_da_wm_dw,&__pyx_n_s_da_wm_dm,&__pyx_n_s_a_mw,&__pyx_n_s_da_mw_dw,&__pyx_n_s_da_mw_dm,&__pyx_n_s_a_mm,&__pyx_n_s_da_mm_dw,&__pyx_n_s_da_mm_dm,&__pyx_n_s_grad_phi_w,&__pyx_n_s_grad_phi_m,&__pyx_n_s_dphi_w_w,&__pyx_n_s_dphi_w_m,&__pyx_n_s_dphi_m_w,&__pyx_n_s_dphi_m_m,&__pyx_n_s_u_w,&__pyx_n_s_u_m,&__pyx_n_s_v,&__pyx_n_s_grad_v,&__pyx_n_s_penalty_w,&__pyx_n_s_penalty_m,&__pyx_n_s_fluxJacobian_ww,&__pyx_n_s_fluxJacobian_wm,&__pyx_n_s_fluxJacobian_mw,&__pyx_n_s_fluxJacobian_mm,0};
11728  PyObject* values[40] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
11729  if (unlikely(__pyx_kwds)) {
11730  Py_ssize_t kw_args;
11731  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
11732  switch (pos_args) {
11733  case 40: values[39] = PyTuple_GET_ITEM(__pyx_args, 39);
11734  CYTHON_FALLTHROUGH;
11735  case 39: values[38] = PyTuple_GET_ITEM(__pyx_args, 38);
11736  CYTHON_FALLTHROUGH;
11737  case 38: values[37] = PyTuple_GET_ITEM(__pyx_args, 37);
11738  CYTHON_FALLTHROUGH;
11739  case 37: values[36] = PyTuple_GET_ITEM(__pyx_args, 36);
11740  CYTHON_FALLTHROUGH;
11741  case 36: values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
11742  CYTHON_FALLTHROUGH;
11743  case 35: values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
11744  CYTHON_FALLTHROUGH;
11745  case 34: values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
11746  CYTHON_FALLTHROUGH;
11747  case 33: values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
11748  CYTHON_FALLTHROUGH;
11749  case 32: values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
11750  CYTHON_FALLTHROUGH;
11751  case 31: values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
11752  CYTHON_FALLTHROUGH;
11753  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
11754  CYTHON_FALLTHROUGH;
11755  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
11756  CYTHON_FALLTHROUGH;
11757  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
11758  CYTHON_FALLTHROUGH;
11759  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
11760  CYTHON_FALLTHROUGH;
11761  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
11762  CYTHON_FALLTHROUGH;
11763  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
11764  CYTHON_FALLTHROUGH;
11765  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
11766  CYTHON_FALLTHROUGH;
11767  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
11768  CYTHON_FALLTHROUGH;
11769  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
11770  CYTHON_FALLTHROUGH;
11771  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
11772  CYTHON_FALLTHROUGH;
11773  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
11774  CYTHON_FALLTHROUGH;
11775  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
11776  CYTHON_FALLTHROUGH;
11777  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
11778  CYTHON_FALLTHROUGH;
11779  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
11780  CYTHON_FALLTHROUGH;
11781  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
11782  CYTHON_FALLTHROUGH;
11783  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
11784  CYTHON_FALLTHROUGH;
11785  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
11786  CYTHON_FALLTHROUGH;
11787  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
11788  CYTHON_FALLTHROUGH;
11789  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
11790  CYTHON_FALLTHROUGH;
11791  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
11792  CYTHON_FALLTHROUGH;
11793  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
11794  CYTHON_FALLTHROUGH;
11795  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
11796  CYTHON_FALLTHROUGH;
11797  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
11798  CYTHON_FALLTHROUGH;
11799  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
11800  CYTHON_FALLTHROUGH;
11801  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
11802  CYTHON_FALLTHROUGH;
11803  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
11804  CYTHON_FALLTHROUGH;
11805  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
11806  CYTHON_FALLTHROUGH;
11807  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11808  CYTHON_FALLTHROUGH;
11809  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11810  CYTHON_FALLTHROUGH;
11811  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11812  CYTHON_FALLTHROUGH;
11813  case 0: break;
11814  default: goto __pyx_L5_argtuple_error;
11815  }
11816  kw_args = PyDict_Size(__pyx_kwds);
11817  switch (pos_args) {
11818  case 0:
11819  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr_wm)) != 0)) kw_args--;
11820  else goto __pyx_L5_argtuple_error;
11821  CYTHON_FALLTHROUGH;
11822  case 1:
11823  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind_wm)) != 0)) kw_args--;
11824  else {
11825  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 1); __PYX_ERR(0, 3339, __pyx_L3_error)
11826  }
11827  CYTHON_FALLTHROUGH;
11828  case 2:
11829  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr_mw)) != 0)) kw_args--;
11830  else {
11831  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 2); __PYX_ERR(0, 3339, __pyx_L3_error)
11832  }
11833  CYTHON_FALLTHROUGH;
11834  case 3:
11835  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind_mw)) != 0)) kw_args--;
11836  else {
11837  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 3); __PYX_ERR(0, 3339, __pyx_L3_error)
11838  }
11839  CYTHON_FALLTHROUGH;
11840  case 4:
11841  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr_mm)) != 0)) kw_args--;
11842  else {
11843  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 4); __PYX_ERR(0, 3339, __pyx_L3_error)
11844  }
11845  CYTHON_FALLTHROUGH;
11846  case 5:
11847  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind_mm)) != 0)) kw_args--;
11848  else {
11849  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 5); __PYX_ERR(0, 3339, __pyx_L3_error)
11850  }
11851  CYTHON_FALLTHROUGH;
11852  case 6:
11853  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
11854  else {
11855  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 6); __PYX_ERR(0, 3339, __pyx_L3_error)
11856  }
11857  CYTHON_FALLTHROUGH;
11858  case 7:
11859  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
11860  else {
11861  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 7); __PYX_ERR(0, 3339, __pyx_L3_error)
11862  }
11863  CYTHON_FALLTHROUGH;
11864  case 8:
11865  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
11866  else {
11867  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 8); __PYX_ERR(0, 3339, __pyx_L3_error)
11868  }
11869  CYTHON_FALLTHROUGH;
11870  case 9:
11871  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
11872  else {
11873  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 9); __PYX_ERR(0, 3339, __pyx_L3_error)
11874  }
11875  CYTHON_FALLTHROUGH;
11876  case 10:
11877  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_uw)) != 0)) kw_args--;
11878  else {
11879  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 10); __PYX_ERR(0, 3339, __pyx_L3_error)
11880  }
11881  CYTHON_FALLTHROUGH;
11882  case 11:
11883  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_um)) != 0)) kw_args--;
11884  else {
11885  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 11); __PYX_ERR(0, 3339, __pyx_L3_error)
11886  }
11887  CYTHON_FALLTHROUGH;
11888  case 12:
11889  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
11890  else {
11891  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 12); __PYX_ERR(0, 3339, __pyx_L3_error)
11892  }
11893  CYTHON_FALLTHROUGH;
11894  case 13:
11895  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_m)) != 0)) kw_args--;
11896  else {
11897  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 13); __PYX_ERR(0, 3339, __pyx_L3_error)
11898  }
11899  CYTHON_FALLTHROUGH;
11900  case 14:
11901  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_m_dw)) != 0)) kw_args--;
11902  else {
11903  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 14); __PYX_ERR(0, 3339, __pyx_L3_error)
11904  }
11905  CYTHON_FALLTHROUGH;
11906  case 15:
11907  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_wm)) != 0)) kw_args--;
11908  else {
11909  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 15); __PYX_ERR(0, 3339, __pyx_L3_error)
11910  }
11911  CYTHON_FALLTHROUGH;
11912  case 16:
11913  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_wm_dw)) != 0)) kw_args--;
11914  else {
11915  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 16); __PYX_ERR(0, 3339, __pyx_L3_error)
11916  }
11917  CYTHON_FALLTHROUGH;
11918  case 17:
11919  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_wm_dm)) != 0)) kw_args--;
11920  else {
11921  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 17); __PYX_ERR(0, 3339, __pyx_L3_error)
11922  }
11923  CYTHON_FALLTHROUGH;
11924  case 18:
11925  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_mw)) != 0)) kw_args--;
11926  else {
11927  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 18); __PYX_ERR(0, 3339, __pyx_L3_error)
11928  }
11929  CYTHON_FALLTHROUGH;
11930  case 19:
11931  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_mw_dw)) != 0)) kw_args--;
11932  else {
11933  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 19); __PYX_ERR(0, 3339, __pyx_L3_error)
11934  }
11935  CYTHON_FALLTHROUGH;
11936  case 20:
11937  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_mw_dm)) != 0)) kw_args--;
11938  else {
11939  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 20); __PYX_ERR(0, 3339, __pyx_L3_error)
11940  }
11941  CYTHON_FALLTHROUGH;
11942  case 21:
11943  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_mm)) != 0)) kw_args--;
11944  else {
11945  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 21); __PYX_ERR(0, 3339, __pyx_L3_error)
11946  }
11947  CYTHON_FALLTHROUGH;
11948  case 22:
11949  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_mm_dw)) != 0)) kw_args--;
11950  else {
11951  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 22); __PYX_ERR(0, 3339, __pyx_L3_error)
11952  }
11953  CYTHON_FALLTHROUGH;
11954  case 23:
11955  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_mm_dm)) != 0)) kw_args--;
11956  else {
11957  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 23); __PYX_ERR(0, 3339, __pyx_L3_error)
11958  }
11959  CYTHON_FALLTHROUGH;
11960  case 24:
11961  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_w)) != 0)) kw_args--;
11962  else {
11963  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 24); __PYX_ERR(0, 3339, __pyx_L3_error)
11964  }
11965  CYTHON_FALLTHROUGH;
11966  case 25:
11967  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_m)) != 0)) kw_args--;
11968  else {
11969  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 25); __PYX_ERR(0, 3339, __pyx_L3_error)
11970  }
11971  CYTHON_FALLTHROUGH;
11972  case 26:
11973  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_w_w)) != 0)) kw_args--;
11974  else {
11975  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 26); __PYX_ERR(0, 3339, __pyx_L3_error)
11976  }
11977  CYTHON_FALLTHROUGH;
11978  case 27:
11979  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_w_m)) != 0)) kw_args--;
11980  else {
11981  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 27); __PYX_ERR(0, 3339, __pyx_L3_error)
11982  }
11983  CYTHON_FALLTHROUGH;
11984  case 28:
11985  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_m_w)) != 0)) kw_args--;
11986  else {
11987  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 28); __PYX_ERR(0, 3339, __pyx_L3_error)
11988  }
11989  CYTHON_FALLTHROUGH;
11990  case 29:
11991  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_m_m)) != 0)) kw_args--;
11992  else {
11993  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 29); __PYX_ERR(0, 3339, __pyx_L3_error)
11994  }
11995  CYTHON_FALLTHROUGH;
11996  case 30:
11997  if (likely((values[30] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u_w)) != 0)) kw_args--;
11998  else {
11999  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 30); __PYX_ERR(0, 3339, __pyx_L3_error)
12000  }
12001  CYTHON_FALLTHROUGH;
12002  case 31:
12003  if (likely((values[31] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u_m)) != 0)) kw_args--;
12004  else {
12005  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 31); __PYX_ERR(0, 3339, __pyx_L3_error)
12006  }
12007  CYTHON_FALLTHROUGH;
12008  case 32:
12009  if (likely((values[32] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
12010  else {
12011  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 32); __PYX_ERR(0, 3339, __pyx_L3_error)
12012  }
12013  CYTHON_FALLTHROUGH;
12014  case 33:
12015  if (likely((values[33] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
12016  else {
12017  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 33); __PYX_ERR(0, 3339, __pyx_L3_error)
12018  }
12019  CYTHON_FALLTHROUGH;
12020  case 34:
12021  if (likely((values[34] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_w)) != 0)) kw_args--;
12022  else {
12023  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 34); __PYX_ERR(0, 3339, __pyx_L3_error)
12024  }
12025  CYTHON_FALLTHROUGH;
12026  case 35:
12027  if (likely((values[35] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_m)) != 0)) kw_args--;
12028  else {
12029  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 35); __PYX_ERR(0, 3339, __pyx_L3_error)
12030  }
12031  CYTHON_FALLTHROUGH;
12032  case 36:
12033  if (likely((values[36] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_ww)) != 0)) kw_args--;
12034  else {
12035  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 36); __PYX_ERR(0, 3339, __pyx_L3_error)
12036  }
12037  CYTHON_FALLTHROUGH;
12038  case 37:
12039  if (likely((values[37] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_wm)) != 0)) kw_args--;
12040  else {
12041  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 37); __PYX_ERR(0, 3339, __pyx_L3_error)
12042  }
12043  CYTHON_FALLTHROUGH;
12044  case 38:
12045  if (likely((values[38] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_mw)) != 0)) kw_args--;
12046  else {
12047  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 38); __PYX_ERR(0, 3339, __pyx_L3_error)
12048  }
12049  CYTHON_FALLTHROUGH;
12050  case 39:
12051  if (likely((values[39] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_mm)) != 0)) kw_args--;
12052  else {
12053  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, 39); __PYX_ERR(0, 3339, __pyx_L3_error)
12054  }
12055  }
12056  if (unlikely(kw_args > 0)) {
12057  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd") < 0)) __PYX_ERR(0, 3339, __pyx_L3_error)
12058  }
12059  } else if (PyTuple_GET_SIZE(__pyx_args) != 40) {
12060  goto __pyx_L5_argtuple_error;
12061  } else {
12062  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
12063  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
12064  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
12065  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
12066  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
12067  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
12068  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
12069  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
12070  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
12071  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
12072  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
12073  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
12074  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
12075  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
12076  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
12077  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
12078  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
12079  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
12080  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
12081  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
12082  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
12083  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
12084  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
12085  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
12086  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
12087  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
12088  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
12089  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
12090  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
12091  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
12092  values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
12093  values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
12094  values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
12095  values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
12096  values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
12097  values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
12098  values[36] = PyTuple_GET_ITEM(__pyx_args, 36);
12099  values[37] = PyTuple_GET_ITEM(__pyx_args, 37);
12100  values[38] = PyTuple_GET_ITEM(__pyx_args, 38);
12101  values[39] = PyTuple_GET_ITEM(__pyx_args, 39);
12102  }
12103  __pyx_v_rowptr_wm = ((PyArrayObject *)values[0]);
12104  __pyx_v_colind_wm = ((PyArrayObject *)values[1]);
12105  __pyx_v_rowptr_mw = ((PyArrayObject *)values[2]);
12106  __pyx_v_colind_mw = ((PyArrayObject *)values[3]);
12107  __pyx_v_rowptr_mm = ((PyArrayObject *)values[4]);
12108  __pyx_v_colind_mm = ((PyArrayObject *)values[5]);
12109  __pyx_v_l2g = ((PyArrayObject *)values[6]);
12110  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[7]);
12111  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[8]);
12112  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[9]);
12113  __pyx_v_isDOFBoundary_uw = ((PyArrayObject *)values[10]);
12114  __pyx_v_isDOFBoundary_um = ((PyArrayObject *)values[11]);
12115  __pyx_v_n = ((PyArrayObject *)values[12]);
12116  __pyx_v_f_m = ((PyArrayObject *)values[13]);
12117  __pyx_v_df_m_dw = ((PyArrayObject *)values[14]);
12118  __pyx_v_a_wm = ((PyArrayObject *)values[15]);
12119  __pyx_v_da_wm_dw = ((PyArrayObject *)values[16]);
12120  __pyx_v_da_wm_dm = ((PyArrayObject *)values[17]);
12121  __pyx_v_a_mw = ((PyArrayObject *)values[18]);
12122  __pyx_v_da_mw_dw = ((PyArrayObject *)values[19]);
12123  __pyx_v_da_mw_dm = ((PyArrayObject *)values[20]);
12124  __pyx_v_a_mm = ((PyArrayObject *)values[21]);
12125  __pyx_v_da_mm_dw = ((PyArrayObject *)values[22]);
12126  __pyx_v_da_mm_dm = ((PyArrayObject *)values[23]);
12127  __pyx_v_grad_phi_w = ((PyArrayObject *)values[24]);
12128  __pyx_v_grad_phi_m = ((PyArrayObject *)values[25]);
12129  __pyx_v_dphi_w_w = ((PyArrayObject *)values[26]);
12130  __pyx_v_dphi_w_m = ((PyArrayObject *)values[27]);
12131  __pyx_v_dphi_m_w = ((PyArrayObject *)values[28]);
12132  __pyx_v_dphi_m_m = ((PyArrayObject *)values[29]);
12133  __pyx_v_u_w = ((PyArrayObject *)values[30]);
12134  __pyx_v_u_m = ((PyArrayObject *)values[31]);
12135  __pyx_v_v = ((PyArrayObject *)values[32]);
12136  __pyx_v_grad_v = ((PyArrayObject *)values[33]);
12137  __pyx_v_penalty_w = ((PyArrayObject *)values[34]);
12138  __pyx_v_penalty_m = ((PyArrayObject *)values[35]);
12139  __pyx_v_fluxJacobian_ww = ((PyArrayObject *)values[36]);
12140  __pyx_v_fluxJacobian_wm = ((PyArrayObject *)values[37]);
12141  __pyx_v_fluxJacobian_mw = ((PyArrayObject *)values[38]);
12142  __pyx_v_fluxJacobian_mm = ((PyArrayObject *)values[39]);
12143  }
12144  goto __pyx_L4_argument_unpacking_done;
12145  __pyx_L5_argtuple_error:;
12146  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 1, 40, 40, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3339, __pyx_L3_error)
12147  __pyx_L3_error:;
12148  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
12149  __Pyx_RefNannyFinishContext();
12150  return NULL;
12151  __pyx_L4_argument_unpacking_done:;
12152  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr_wm), __pyx_ptype_5numpy_ndarray, 1, "rowptr_wm", 0))) __PYX_ERR(0, 3339, __pyx_L1_error)
12153  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind_wm), __pyx_ptype_5numpy_ndarray, 1, "colind_wm", 0))) __PYX_ERR(0, 3340, __pyx_L1_error)
12154  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr_mw), __pyx_ptype_5numpy_ndarray, 1, "rowptr_mw", 0))) __PYX_ERR(0, 3341, __pyx_L1_error)
12155  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind_mw), __pyx_ptype_5numpy_ndarray, 1, "colind_mw", 0))) __PYX_ERR(0, 3342, __pyx_L1_error)
12156  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr_mm), __pyx_ptype_5numpy_ndarray, 1, "rowptr_mm", 0))) __PYX_ERR(0, 3343, __pyx_L1_error)
12157  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind_mm), __pyx_ptype_5numpy_ndarray, 1, "colind_mm", 0))) __PYX_ERR(0, 3344, __pyx_L1_error)
12158  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 3345, __pyx_L1_error)
12159  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 3346, __pyx_L1_error)
12160  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3347, __pyx_L1_error)
12161  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3348, __pyx_L1_error)
12162  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_uw), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_uw", 0))) __PYX_ERR(0, 3349, __pyx_L1_error)
12163  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_um), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_um", 0))) __PYX_ERR(0, 3350, __pyx_L1_error)
12164  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3351, __pyx_L1_error)
12165  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_m), __pyx_ptype_5numpy_ndarray, 1, "f_m", 0))) __PYX_ERR(0, 3352, __pyx_L1_error)
12166  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_m_dw), __pyx_ptype_5numpy_ndarray, 1, "df_m_dw", 0))) __PYX_ERR(0, 3353, __pyx_L1_error)
12167  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_wm), __pyx_ptype_5numpy_ndarray, 1, "a_wm", 0))) __PYX_ERR(0, 3354, __pyx_L1_error)
12168  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_wm_dw), __pyx_ptype_5numpy_ndarray, 1, "da_wm_dw", 0))) __PYX_ERR(0, 3355, __pyx_L1_error)
12169  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_wm_dm), __pyx_ptype_5numpy_ndarray, 1, "da_wm_dm", 0))) __PYX_ERR(0, 3356, __pyx_L1_error)
12170  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_mw), __pyx_ptype_5numpy_ndarray, 1, "a_mw", 0))) __PYX_ERR(0, 3357, __pyx_L1_error)
12171  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_mw_dw), __pyx_ptype_5numpy_ndarray, 1, "da_mw_dw", 0))) __PYX_ERR(0, 3358, __pyx_L1_error)
12172  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_mw_dm), __pyx_ptype_5numpy_ndarray, 1, "da_mw_dm", 0))) __PYX_ERR(0, 3359, __pyx_L1_error)
12173  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_mm), __pyx_ptype_5numpy_ndarray, 1, "a_mm", 0))) __PYX_ERR(0, 3360, __pyx_L1_error)
12174  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_mm_dw), __pyx_ptype_5numpy_ndarray, 1, "da_mm_dw", 0))) __PYX_ERR(0, 3361, __pyx_L1_error)
12175  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_mm_dm), __pyx_ptype_5numpy_ndarray, 1, "da_mm_dm", 0))) __PYX_ERR(0, 3362, __pyx_L1_error)
12176  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_w", 0))) __PYX_ERR(0, 3363, __pyx_L1_error)
12177  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_m), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_m", 0))) __PYX_ERR(0, 3364, __pyx_L1_error)
12178  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_w_w), __pyx_ptype_5numpy_ndarray, 1, "dphi_w_w", 0))) __PYX_ERR(0, 3365, __pyx_L1_error)
12179  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_w_m), __pyx_ptype_5numpy_ndarray, 1, "dphi_w_m", 0))) __PYX_ERR(0, 3366, __pyx_L1_error)
12180  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_m_w), __pyx_ptype_5numpy_ndarray, 1, "dphi_m_w", 0))) __PYX_ERR(0, 3367, __pyx_L1_error)
12181  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_m_m), __pyx_ptype_5numpy_ndarray, 1, "dphi_m_m", 0))) __PYX_ERR(0, 3368, __pyx_L1_error)
12182  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u_w), __pyx_ptype_5numpy_ndarray, 1, "u_w", 0))) __PYX_ERR(0, 3369, __pyx_L1_error)
12183  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u_m), __pyx_ptype_5numpy_ndarray, 1, "u_m", 0))) __PYX_ERR(0, 3370, __pyx_L1_error)
12184  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 3371, __pyx_L1_error)
12185  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 3372, __pyx_L1_error)
12186  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_w), __pyx_ptype_5numpy_ndarray, 1, "penalty_w", 0))) __PYX_ERR(0, 3373, __pyx_L1_error)
12187  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_m), __pyx_ptype_5numpy_ndarray, 1, "penalty_m", 0))) __PYX_ERR(0, 3374, __pyx_L1_error)
12188  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_ww), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_ww", 0))) __PYX_ERR(0, 3375, __pyx_L1_error)
12189  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_wm), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_wm", 0))) __PYX_ERR(0, 3376, __pyx_L1_error)
12190  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_mw), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_mw", 0))) __PYX_ERR(0, 3377, __pyx_L1_error)
12191  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_mm), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_mm", 0))) __PYX_ERR(0, 3378, __pyx_L1_error)
12192  __pyx_r = __pyx_pf_14cnumericalFlux_66calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd(__pyx_self, __pyx_v_rowptr_wm, __pyx_v_colind_wm, __pyx_v_rowptr_mw, __pyx_v_colind_mw, __pyx_v_rowptr_mm, __pyx_v_colind_mm, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_uw, __pyx_v_isDOFBoundary_um, __pyx_v_n, __pyx_v_f_m, __pyx_v_df_m_dw, __pyx_v_a_wm, __pyx_v_da_wm_dw, __pyx_v_da_wm_dm, __pyx_v_a_mw, __pyx_v_da_mw_dw, __pyx_v_da_mw_dm, __pyx_v_a_mm, __pyx_v_da_mm_dw, __pyx_v_da_mm_dm, __pyx_v_grad_phi_w, __pyx_v_grad_phi_m, __pyx_v_dphi_w_w, __pyx_v_dphi_w_m, __pyx_v_dphi_m_w, __pyx_v_dphi_m_m, __pyx_v_u_w, __pyx_v_u_m, __pyx_v_v, __pyx_v_grad_v, __pyx_v_penalty_w, __pyx_v_penalty_m, __pyx_v_fluxJacobian_ww, __pyx_v_fluxJacobian_wm, __pyx_v_fluxJacobian_mw, __pyx_v_fluxJacobian_mm);
12193 
12194  /* function exit code */
12195  goto __pyx_L0;
12196  __pyx_L1_error:;
12197  __pyx_r = NULL;
12198  __pyx_L0:;
12199  __Pyx_RefNannyFinishContext();
12200  return __pyx_r;
12201 }
12202 
12203 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) {
12204  PyObject *__pyx_r = NULL;
12205  __Pyx_RefNannyDeclarations
12206  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd", 0);
12207 
12208  /* "cnumericalFlux.pyx":3379
12209  * np.ndarray fluxJacobian_mw,
12210  * np.ndarray fluxJacobian_mm):
12211  * ccalculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
12212  * n.shape[1],
12213  * n.shape[2],
12214  */
12215  calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_l2g->dimensions[1]), ((int *)__pyx_v_rowptr_wm->data), ((int *)__pyx_v_colind_wm->data), ((int *)__pyx_v_rowptr_mw->data), ((int *)__pyx_v_colind_mw->data), ((int *)__pyx_v_rowptr_mm->data), ((int *)__pyx_v_colind_mm->data), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_uw->data), ((int *)__pyx_v_isDOFBoundary_um->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_f_m->data), ((double *)__pyx_v_df_m_dw->data), ((double *)__pyx_v_a_wm->data), ((double *)__pyx_v_da_wm_dw->data), ((double *)__pyx_v_da_wm_dm->data), ((double *)__pyx_v_a_mw->data), ((double *)__pyx_v_da_mw_dw->data), ((double *)__pyx_v_da_mw_dm->data), ((double *)__pyx_v_a_mm->data), ((double *)__pyx_v_da_mm_dw->data), ((double *)__pyx_v_da_mm_dm->data), ((double *)__pyx_v_grad_phi_w->data), ((double *)__pyx_v_grad_phi_m->data), ((double *)__pyx_v_dphi_w_w->data), ((double *)__pyx_v_dphi_w_m->data), ((double *)__pyx_v_dphi_m_w->data), ((double *)__pyx_v_dphi_m_m->data), ((double *)__pyx_v_u_w->data), ((double *)__pyx_v_u_m->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_grad_v->data), ((double *)__pyx_v_penalty_w->data), ((double *)__pyx_v_penalty_m->data), ((double *)__pyx_v_fluxJacobian_ww->data), ((double *)__pyx_v_fluxJacobian_wm->data), ((double *)__pyx_v_fluxJacobian_mw->data), ((double *)__pyx_v_fluxJacobian_mm->data));
12216 
12217  /* "cnumericalFlux.pyx":3339
12218  * <double*> diffusiveFlux_mw.data,
12219  * <double*> diffusiveFlux_mm.data)
12220  * def calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd(np.ndarray rowptr_wm, # <<<<<<<<<<<<<<
12221  * np.ndarray colind_wm,
12222  * np.ndarray rowptr_mw,
12223  */
12224 
12225  /* function exit code */
12226  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12227  __Pyx_XGIVEREF(__pyx_r);
12228  __Pyx_RefNannyFinishContext();
12229  return __pyx_r;
12230 }
12231 
12232 /* "cnumericalFlux.pyx":3423
12233  * <double*> fluxJacobian_mw.data,
12234  * <double*> fluxJacobian_mm.data)
12235  * def calculateGlobalExteriorNumericalFluxDarcyFC(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
12236  * np.ndarray elementBoundaryElements,
12237  * np.ndarray elementBoundaryLocalElementBoundaries,
12238  */
12239 
12240 /* Python wrapper */
12241 static PyObject *__pyx_pw_14cnumericalFlux_69calculateGlobalExteriorNumericalFluxDarcyFC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
12242 static PyMethodDef __pyx_mdef_14cnumericalFlux_69calculateGlobalExteriorNumericalFluxDarcyFC = {"calculateGlobalExteriorNumericalFluxDarcyFC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_69calculateGlobalExteriorNumericalFluxDarcyFC, METH_VARARGS|METH_KEYWORDS, 0};
12243 static PyObject *__pyx_pw_14cnumericalFlux_69calculateGlobalExteriorNumericalFluxDarcyFC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
12244  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
12245  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
12246  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
12247  PyArrayObject *__pyx_v_isDOFBoundary_uw = 0;
12248  PyArrayObject *__pyx_v_isDOFBoundary_un = 0;
12249  int __pyx_v_fluxBoundaryFlag_uw;
12250  int __pyx_v_fluxBoundaryFlag_un;
12251  PyArrayObject *__pyx_v_n = 0;
12252  PyArrayObject *__pyx_v_bc_a_ww = 0;
12253  PyArrayObject *__pyx_v_bc_a_nn = 0;
12254  PyArrayObject *__pyx_v_bc_grad_phi_w = 0;
12255  PyArrayObject *__pyx_v_bc_grad_phi_n = 0;
12256  PyArrayObject *__pyx_v_bc_s_w = 0;
12257  PyArrayObject *__pyx_v_bc_psi_w = 0;
12258  PyArrayObject *__pyx_v_bc_psi_n = 0;
12259  PyArrayObject *__pyx_v_a_ww = 0;
12260  PyArrayObject *__pyx_v_a_nn = 0;
12261  PyArrayObject *__pyx_v_grad_phi_w = 0;
12262  PyArrayObject *__pyx_v_grad_phi_n = 0;
12263  PyArrayObject *__pyx_v_s_w = 0;
12264  PyArrayObject *__pyx_v_psi_w = 0;
12265  PyArrayObject *__pyx_v_psi_n = 0;
12266  PyArrayObject *__pyx_v_penalty_w = 0;
12267  PyArrayObject *__pyx_v_penalty_n = 0;
12268  PyArrayObject *__pyx_v_diffusiveFlux_ww = 0;
12269  PyArrayObject *__pyx_v_diffusiveFlux_nn = 0;
12270  int __pyx_lineno = 0;
12271  const char *__pyx_filename = NULL;
12272  int __pyx_clineno = 0;
12273  PyObject *__pyx_r = 0;
12274  __Pyx_RefNannyDeclarations
12275  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFC (wrapper)", 0);
12276  {
12277  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_uw,&__pyx_n_s_isDOFBoundary_un,&__pyx_n_s_fluxBoundaryFlag_uw,&__pyx_n_s_fluxBoundaryFlag_un,&__pyx_n_s_n,&__pyx_n_s_bc_a_ww,&__pyx_n_s_bc_a_nn,&__pyx_n_s_bc_grad_phi_w,&__pyx_n_s_bc_grad_phi_n,&__pyx_n_s_bc_s_w,&__pyx_n_s_bc_psi_w,&__pyx_n_s_bc_psi_n,&__pyx_n_s_a_ww,&__pyx_n_s_a_nn,&__pyx_n_s_grad_phi_w,&__pyx_n_s_grad_phi_n,&__pyx_n_s_s_w,&__pyx_n_s_psi_w,&__pyx_n_s_psi_n,&__pyx_n_s_penalty_w,&__pyx_n_s_penalty_n,&__pyx_n_s_diffusiveFlux_ww,&__pyx_n_s_diffusiveFlux_nn,0};
12278  PyObject* values[26] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
12279  if (unlikely(__pyx_kwds)) {
12280  Py_ssize_t kw_args;
12281  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
12282  switch (pos_args) {
12283  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
12284  CYTHON_FALLTHROUGH;
12285  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
12286  CYTHON_FALLTHROUGH;
12287  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
12288  CYTHON_FALLTHROUGH;
12289  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
12290  CYTHON_FALLTHROUGH;
12291  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
12292  CYTHON_FALLTHROUGH;
12293  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
12294  CYTHON_FALLTHROUGH;
12295  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
12296  CYTHON_FALLTHROUGH;
12297  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
12298  CYTHON_FALLTHROUGH;
12299  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
12300  CYTHON_FALLTHROUGH;
12301  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
12302  CYTHON_FALLTHROUGH;
12303  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
12304  CYTHON_FALLTHROUGH;
12305  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
12306  CYTHON_FALLTHROUGH;
12307  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
12308  CYTHON_FALLTHROUGH;
12309  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
12310  CYTHON_FALLTHROUGH;
12311  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
12312  CYTHON_FALLTHROUGH;
12313  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
12314  CYTHON_FALLTHROUGH;
12315  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
12316  CYTHON_FALLTHROUGH;
12317  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
12318  CYTHON_FALLTHROUGH;
12319  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
12320  CYTHON_FALLTHROUGH;
12321  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
12322  CYTHON_FALLTHROUGH;
12323  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
12324  CYTHON_FALLTHROUGH;
12325  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
12326  CYTHON_FALLTHROUGH;
12327  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
12328  CYTHON_FALLTHROUGH;
12329  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
12330  CYTHON_FALLTHROUGH;
12331  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
12332  CYTHON_FALLTHROUGH;
12333  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
12334  CYTHON_FALLTHROUGH;
12335  case 0: break;
12336  default: goto __pyx_L5_argtuple_error;
12337  }
12338  kw_args = PyDict_Size(__pyx_kwds);
12339  switch (pos_args) {
12340  case 0:
12341  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
12342  else goto __pyx_L5_argtuple_error;
12343  CYTHON_FALLTHROUGH;
12344  case 1:
12345  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
12346  else {
12347  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 1); __PYX_ERR(0, 3423, __pyx_L3_error)
12348  }
12349  CYTHON_FALLTHROUGH;
12350  case 2:
12351  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
12352  else {
12353  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 2); __PYX_ERR(0, 3423, __pyx_L3_error)
12354  }
12355  CYTHON_FALLTHROUGH;
12356  case 3:
12357  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_uw)) != 0)) kw_args--;
12358  else {
12359  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 3); __PYX_ERR(0, 3423, __pyx_L3_error)
12360  }
12361  CYTHON_FALLTHROUGH;
12362  case 4:
12363  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_un)) != 0)) kw_args--;
12364  else {
12365  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 4); __PYX_ERR(0, 3423, __pyx_L3_error)
12366  }
12367  CYTHON_FALLTHROUGH;
12368  case 5:
12369  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_uw)) != 0)) kw_args--;
12370  else {
12371  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 5); __PYX_ERR(0, 3423, __pyx_L3_error)
12372  }
12373  CYTHON_FALLTHROUGH;
12374  case 6:
12375  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_un)) != 0)) kw_args--;
12376  else {
12377  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 6); __PYX_ERR(0, 3423, __pyx_L3_error)
12378  }
12379  CYTHON_FALLTHROUGH;
12380  case 7:
12381  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
12382  else {
12383  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 7); __PYX_ERR(0, 3423, __pyx_L3_error)
12384  }
12385  CYTHON_FALLTHROUGH;
12386  case 8:
12387  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a_ww)) != 0)) kw_args--;
12388  else {
12389  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 8); __PYX_ERR(0, 3423, __pyx_L3_error)
12390  }
12391  CYTHON_FALLTHROUGH;
12392  case 9:
12393  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a_nn)) != 0)) kw_args--;
12394  else {
12395  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 9); __PYX_ERR(0, 3423, __pyx_L3_error)
12396  }
12397  CYTHON_FALLTHROUGH;
12398  case 10:
12399  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi_w)) != 0)) kw_args--;
12400  else {
12401  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 10); __PYX_ERR(0, 3423, __pyx_L3_error)
12402  }
12403  CYTHON_FALLTHROUGH;
12404  case 11:
12405  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi_n)) != 0)) kw_args--;
12406  else {
12407  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 11); __PYX_ERR(0, 3423, __pyx_L3_error)
12408  }
12409  CYTHON_FALLTHROUGH;
12410  case 12:
12411  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_s_w)) != 0)) kw_args--;
12412  else {
12413  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 12); __PYX_ERR(0, 3423, __pyx_L3_error)
12414  }
12415  CYTHON_FALLTHROUGH;
12416  case 13:
12417  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psi_w)) != 0)) kw_args--;
12418  else {
12419  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 13); __PYX_ERR(0, 3423, __pyx_L3_error)
12420  }
12421  CYTHON_FALLTHROUGH;
12422  case 14:
12423  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psi_n)) != 0)) kw_args--;
12424  else {
12425  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 14); __PYX_ERR(0, 3423, __pyx_L3_error)
12426  }
12427  CYTHON_FALLTHROUGH;
12428  case 15:
12429  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_ww)) != 0)) kw_args--;
12430  else {
12431  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 15); __PYX_ERR(0, 3423, __pyx_L3_error)
12432  }
12433  CYTHON_FALLTHROUGH;
12434  case 16:
12435  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_nn)) != 0)) kw_args--;
12436  else {
12437  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 16); __PYX_ERR(0, 3423, __pyx_L3_error)
12438  }
12439  CYTHON_FALLTHROUGH;
12440  case 17:
12441  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_w)) != 0)) kw_args--;
12442  else {
12443  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 17); __PYX_ERR(0, 3423, __pyx_L3_error)
12444  }
12445  CYTHON_FALLTHROUGH;
12446  case 18:
12447  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_n)) != 0)) kw_args--;
12448  else {
12449  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 18); __PYX_ERR(0, 3423, __pyx_L3_error)
12450  }
12451  CYTHON_FALLTHROUGH;
12452  case 19:
12453  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_s_w)) != 0)) kw_args--;
12454  else {
12455  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 19); __PYX_ERR(0, 3423, __pyx_L3_error)
12456  }
12457  CYTHON_FALLTHROUGH;
12458  case 20:
12459  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_w)) != 0)) kw_args--;
12460  else {
12461  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 20); __PYX_ERR(0, 3423, __pyx_L3_error)
12462  }
12463  CYTHON_FALLTHROUGH;
12464  case 21:
12465  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_n)) != 0)) kw_args--;
12466  else {
12467  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 21); __PYX_ERR(0, 3423, __pyx_L3_error)
12468  }
12469  CYTHON_FALLTHROUGH;
12470  case 22:
12471  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_w)) != 0)) kw_args--;
12472  else {
12473  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 22); __PYX_ERR(0, 3423, __pyx_L3_error)
12474  }
12475  CYTHON_FALLTHROUGH;
12476  case 23:
12477  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_n)) != 0)) kw_args--;
12478  else {
12479  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 23); __PYX_ERR(0, 3423, __pyx_L3_error)
12480  }
12481  CYTHON_FALLTHROUGH;
12482  case 24:
12483  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux_ww)) != 0)) kw_args--;
12484  else {
12485  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 24); __PYX_ERR(0, 3423, __pyx_L3_error)
12486  }
12487  CYTHON_FALLTHROUGH;
12488  case 25:
12489  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux_nn)) != 0)) kw_args--;
12490  else {
12491  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, 25); __PYX_ERR(0, 3423, __pyx_L3_error)
12492  }
12493  }
12494  if (unlikely(kw_args > 0)) {
12495  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalFluxDarcyFC") < 0)) __PYX_ERR(0, 3423, __pyx_L3_error)
12496  }
12497  } else if (PyTuple_GET_SIZE(__pyx_args) != 26) {
12498  goto __pyx_L5_argtuple_error;
12499  } else {
12500  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
12501  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
12502  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
12503  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
12504  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
12505  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
12506  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
12507  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
12508  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
12509  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
12510  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
12511  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
12512  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
12513  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
12514  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
12515  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
12516  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
12517  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
12518  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
12519  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
12520  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
12521  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
12522  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
12523  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
12524  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
12525  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
12526  }
12527  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
12528  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
12529  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
12530  __pyx_v_isDOFBoundary_uw = ((PyArrayObject *)values[3]);
12531  __pyx_v_isDOFBoundary_un = ((PyArrayObject *)values[4]);
12532  __pyx_v_fluxBoundaryFlag_uw = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_fluxBoundaryFlag_uw == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3428, __pyx_L3_error)
12533  __pyx_v_fluxBoundaryFlag_un = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_fluxBoundaryFlag_un == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3429, __pyx_L3_error)
12534  __pyx_v_n = ((PyArrayObject *)values[7]);
12535  __pyx_v_bc_a_ww = ((PyArrayObject *)values[8]);
12536  __pyx_v_bc_a_nn = ((PyArrayObject *)values[9]);
12537  __pyx_v_bc_grad_phi_w = ((PyArrayObject *)values[10]);
12538  __pyx_v_bc_grad_phi_n = ((PyArrayObject *)values[11]);
12539  __pyx_v_bc_s_w = ((PyArrayObject *)values[12]);
12540  __pyx_v_bc_psi_w = ((PyArrayObject *)values[13]);
12541  __pyx_v_bc_psi_n = ((PyArrayObject *)values[14]);
12542  __pyx_v_a_ww = ((PyArrayObject *)values[15]);
12543  __pyx_v_a_nn = ((PyArrayObject *)values[16]);
12544  __pyx_v_grad_phi_w = ((PyArrayObject *)values[17]);
12545  __pyx_v_grad_phi_n = ((PyArrayObject *)values[18]);
12546  __pyx_v_s_w = ((PyArrayObject *)values[19]);
12547  __pyx_v_psi_w = ((PyArrayObject *)values[20]);
12548  __pyx_v_psi_n = ((PyArrayObject *)values[21]);
12549  __pyx_v_penalty_w = ((PyArrayObject *)values[22]);
12550  __pyx_v_penalty_n = ((PyArrayObject *)values[23]);
12551  __pyx_v_diffusiveFlux_ww = ((PyArrayObject *)values[24]);
12552  __pyx_v_diffusiveFlux_nn = ((PyArrayObject *)values[25]);
12553  }
12554  goto __pyx_L4_argument_unpacking_done;
12555  __pyx_L5_argtuple_error:;
12556  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC", 1, 26, 26, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3423, __pyx_L3_error)
12557  __pyx_L3_error:;
12558  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcyFC", __pyx_clineno, __pyx_lineno, __pyx_filename);
12559  __Pyx_RefNannyFinishContext();
12560  return NULL;
12561  __pyx_L4_argument_unpacking_done:;
12562  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 3423, __pyx_L1_error)
12563  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3424, __pyx_L1_error)
12564  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3425, __pyx_L1_error)
12565  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_uw), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_uw", 0))) __PYX_ERR(0, 3426, __pyx_L1_error)
12566  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_un), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_un", 0))) __PYX_ERR(0, 3427, __pyx_L1_error)
12567  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3430, __pyx_L1_error)
12568  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a_ww), __pyx_ptype_5numpy_ndarray, 1, "bc_a_ww", 0))) __PYX_ERR(0, 3431, __pyx_L1_error)
12569  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a_nn), __pyx_ptype_5numpy_ndarray, 1, "bc_a_nn", 0))) __PYX_ERR(0, 3432, __pyx_L1_error)
12570  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi_w", 0))) __PYX_ERR(0, 3433, __pyx_L1_error)
12571  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi_n), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi_n", 0))) __PYX_ERR(0, 3434, __pyx_L1_error)
12572  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_s_w), __pyx_ptype_5numpy_ndarray, 1, "bc_s_w", 0))) __PYX_ERR(0, 3435, __pyx_L1_error)
12573  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psi_w), __pyx_ptype_5numpy_ndarray, 1, "bc_psi_w", 0))) __PYX_ERR(0, 3436, __pyx_L1_error)
12574  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psi_n), __pyx_ptype_5numpy_ndarray, 1, "bc_psi_n", 0))) __PYX_ERR(0, 3437, __pyx_L1_error)
12575  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_ww), __pyx_ptype_5numpy_ndarray, 1, "a_ww", 0))) __PYX_ERR(0, 3438, __pyx_L1_error)
12576  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_nn), __pyx_ptype_5numpy_ndarray, 1, "a_nn", 0))) __PYX_ERR(0, 3439, __pyx_L1_error)
12577  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_w", 0))) __PYX_ERR(0, 3440, __pyx_L1_error)
12578  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_n), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_n", 0))) __PYX_ERR(0, 3441, __pyx_L1_error)
12579  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_s_w), __pyx_ptype_5numpy_ndarray, 1, "s_w", 0))) __PYX_ERR(0, 3442, __pyx_L1_error)
12580  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_w), __pyx_ptype_5numpy_ndarray, 1, "psi_w", 0))) __PYX_ERR(0, 3443, __pyx_L1_error)
12581  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_n), __pyx_ptype_5numpy_ndarray, 1, "psi_n", 0))) __PYX_ERR(0, 3444, __pyx_L1_error)
12582  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_w), __pyx_ptype_5numpy_ndarray, 1, "penalty_w", 0))) __PYX_ERR(0, 3445, __pyx_L1_error)
12583  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_n), __pyx_ptype_5numpy_ndarray, 1, "penalty_n", 0))) __PYX_ERR(0, 3446, __pyx_L1_error)
12584  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux_ww), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux_ww", 0))) __PYX_ERR(0, 3447, __pyx_L1_error)
12585  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux_nn), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux_nn", 0))) __PYX_ERR(0, 3448, __pyx_L1_error)
12586  __pyx_r = __pyx_pf_14cnumericalFlux_68calculateGlobalExteriorNumericalFluxDarcyFC(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_uw, __pyx_v_isDOFBoundary_un, __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, __pyx_v_n, __pyx_v_bc_a_ww, __pyx_v_bc_a_nn, __pyx_v_bc_grad_phi_w, __pyx_v_bc_grad_phi_n, __pyx_v_bc_s_w, __pyx_v_bc_psi_w, __pyx_v_bc_psi_n, __pyx_v_a_ww, __pyx_v_a_nn, __pyx_v_grad_phi_w, __pyx_v_grad_phi_n, __pyx_v_s_w, __pyx_v_psi_w, __pyx_v_psi_n, __pyx_v_penalty_w, __pyx_v_penalty_n, __pyx_v_diffusiveFlux_ww, __pyx_v_diffusiveFlux_nn);
12587 
12588  /* function exit code */
12589  goto __pyx_L0;
12590  __pyx_L1_error:;
12591  __pyx_r = NULL;
12592  __pyx_L0:;
12593  __Pyx_RefNannyFinishContext();
12594  return __pyx_r;
12595 }
12596 
12597 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) {
12598  PyObject *__pyx_r = NULL;
12599  __Pyx_RefNannyDeclarations
12600  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFC", 0);
12601 
12602  /* "cnumericalFlux.pyx":3449
12603  * np.ndarray diffusiveFlux_ww,
12604  * np.ndarray diffusiveFlux_nn):
12605  * ccalculateGlobalExteriorNumericalFluxDarcyFC(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
12606  * n.shape[1],
12607  * n.shape[2],
12608  */
12609  calculateGlobalExteriorNumericalFluxDarcyFC((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_uw->data), ((int *)__pyx_v_isDOFBoundary_un->data), __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a_ww->data), ((double *)__pyx_v_bc_a_nn->data), ((double *)__pyx_v_bc_grad_phi_w->data), ((double *)__pyx_v_bc_grad_phi_n->data), ((double *)__pyx_v_bc_s_w->data), ((double *)__pyx_v_bc_psi_w->data), ((double *)__pyx_v_bc_psi_n->data), ((double *)__pyx_v_a_ww->data), ((double *)__pyx_v_a_nn->data), ((double *)__pyx_v_grad_phi_w->data), ((double *)__pyx_v_grad_phi_n->data), ((double *)__pyx_v_s_w->data), ((double *)__pyx_v_psi_w->data), ((double *)__pyx_v_psi_n->data), ((double *)__pyx_v_penalty_w->data), ((double *)__pyx_v_penalty_n->data), ((double *)__pyx_v_diffusiveFlux_ww->data), ((double *)__pyx_v_diffusiveFlux_nn->data));
12610 
12611  /* "cnumericalFlux.pyx":3423
12612  * <double*> fluxJacobian_mw.data,
12613  * <double*> fluxJacobian_mm.data)
12614  * def calculateGlobalExteriorNumericalFluxDarcyFC(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
12615  * np.ndarray elementBoundaryElements,
12616  * np.ndarray elementBoundaryLocalElementBoundaries,
12617  */
12618 
12619  /* function exit code */
12620  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12621  __Pyx_XGIVEREF(__pyx_r);
12622  __Pyx_RefNannyFinishContext();
12623  return __pyx_r;
12624 }
12625 
12626 /* "cnumericalFlux.pyx":3478
12627  * <double*> diffusiveFlux_ww.data,
12628  * <double*> diffusiveFlux_nn.data)
12629  * def calculateGlobalExteriorNumericalFluxDarcyFC_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
12630  * np.ndarray colind_ww,
12631  * np.ndarray rowptr_nn,
12632  */
12633 
12634 /* Python wrapper */
12635 static PyObject *__pyx_pw_14cnumericalFlux_71calculateGlobalExteriorNumericalFluxDarcyFC_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
12636 static PyMethodDef __pyx_mdef_14cnumericalFlux_71calculateGlobalExteriorNumericalFluxDarcyFC_sd = {"calculateGlobalExteriorNumericalFluxDarcyFC_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_71calculateGlobalExteriorNumericalFluxDarcyFC_sd, METH_VARARGS|METH_KEYWORDS, 0};
12637 static PyObject *__pyx_pw_14cnumericalFlux_71calculateGlobalExteriorNumericalFluxDarcyFC_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
12638  PyArrayObject *__pyx_v_rowptr_ww = 0;
12639  PyArrayObject *__pyx_v_colind_ww = 0;
12640  PyArrayObject *__pyx_v_rowptr_nn = 0;
12641  PyArrayObject *__pyx_v_colind_nn = 0;
12642  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
12643  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
12644  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
12645  PyArrayObject *__pyx_v_isDOFBoundary_uw = 0;
12646  PyArrayObject *__pyx_v_isDOFBoundary_un = 0;
12647  int __pyx_v_fluxBoundaryFlag_uw;
12648  int __pyx_v_fluxBoundaryFlag_un;
12649  PyArrayObject *__pyx_v_n = 0;
12650  PyArrayObject *__pyx_v_bc_a_ww = 0;
12651  PyArrayObject *__pyx_v_bc_a_nn = 0;
12652  PyArrayObject *__pyx_v_bc_grad_phi_w = 0;
12653  PyArrayObject *__pyx_v_bc_grad_phi_n = 0;
12654  PyArrayObject *__pyx_v_bc_s_w = 0;
12655  PyArrayObject *__pyx_v_bc_psi_w = 0;
12656  PyArrayObject *__pyx_v_bc_psi_n = 0;
12657  PyArrayObject *__pyx_v_a_ww = 0;
12658  PyArrayObject *__pyx_v_a_nn = 0;
12659  PyArrayObject *__pyx_v_grad_phi_w = 0;
12660  PyArrayObject *__pyx_v_grad_phi_n = 0;
12661  PyArrayObject *__pyx_v_s_w = 0;
12662  PyArrayObject *__pyx_v_psi_w = 0;
12663  PyArrayObject *__pyx_v_psi_n = 0;
12664  PyArrayObject *__pyx_v_penalty_w = 0;
12665  PyArrayObject *__pyx_v_penalty_n = 0;
12666  PyArrayObject *__pyx_v_diffusiveFlux_ww = 0;
12667  PyArrayObject *__pyx_v_diffusiveFlux_nn = 0;
12668  int __pyx_lineno = 0;
12669  const char *__pyx_filename = NULL;
12670  int __pyx_clineno = 0;
12671  PyObject *__pyx_r = 0;
12672  __Pyx_RefNannyDeclarations
12673  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFC_sd (wrapper)", 0);
12674  {
12675  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr_ww,&__pyx_n_s_colind_ww,&__pyx_n_s_rowptr_nn,&__pyx_n_s_colind_nn,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_uw,&__pyx_n_s_isDOFBoundary_un,&__pyx_n_s_fluxBoundaryFlag_uw,&__pyx_n_s_fluxBoundaryFlag_un,&__pyx_n_s_n,&__pyx_n_s_bc_a_ww,&__pyx_n_s_bc_a_nn,&__pyx_n_s_bc_grad_phi_w,&__pyx_n_s_bc_grad_phi_n,&__pyx_n_s_bc_s_w,&__pyx_n_s_bc_psi_w,&__pyx_n_s_bc_psi_n,&__pyx_n_s_a_ww,&__pyx_n_s_a_nn,&__pyx_n_s_grad_phi_w,&__pyx_n_s_grad_phi_n,&__pyx_n_s_s_w,&__pyx_n_s_psi_w,&__pyx_n_s_psi_n,&__pyx_n_s_penalty_w,&__pyx_n_s_penalty_n,&__pyx_n_s_diffusiveFlux_ww,&__pyx_n_s_diffusiveFlux_nn,0};
12676  PyObject* values[30] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
12677  if (unlikely(__pyx_kwds)) {
12678  Py_ssize_t kw_args;
12679  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
12680  switch (pos_args) {
12681  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
12682  CYTHON_FALLTHROUGH;
12683  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
12684  CYTHON_FALLTHROUGH;
12685  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
12686  CYTHON_FALLTHROUGH;
12687  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
12688  CYTHON_FALLTHROUGH;
12689  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
12690  CYTHON_FALLTHROUGH;
12691  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
12692  CYTHON_FALLTHROUGH;
12693  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
12694  CYTHON_FALLTHROUGH;
12695  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
12696  CYTHON_FALLTHROUGH;
12697  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
12698  CYTHON_FALLTHROUGH;
12699  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
12700  CYTHON_FALLTHROUGH;
12701  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
12702  CYTHON_FALLTHROUGH;
12703  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
12704  CYTHON_FALLTHROUGH;
12705  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
12706  CYTHON_FALLTHROUGH;
12707  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
12708  CYTHON_FALLTHROUGH;
12709  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
12710  CYTHON_FALLTHROUGH;
12711  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
12712  CYTHON_FALLTHROUGH;
12713  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
12714  CYTHON_FALLTHROUGH;
12715  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
12716  CYTHON_FALLTHROUGH;
12717  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
12718  CYTHON_FALLTHROUGH;
12719  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
12720  CYTHON_FALLTHROUGH;
12721  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
12722  CYTHON_FALLTHROUGH;
12723  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
12724  CYTHON_FALLTHROUGH;
12725  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
12726  CYTHON_FALLTHROUGH;
12727  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
12728  CYTHON_FALLTHROUGH;
12729  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
12730  CYTHON_FALLTHROUGH;
12731  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
12732  CYTHON_FALLTHROUGH;
12733  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
12734  CYTHON_FALLTHROUGH;
12735  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
12736  CYTHON_FALLTHROUGH;
12737  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
12738  CYTHON_FALLTHROUGH;
12739  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
12740  CYTHON_FALLTHROUGH;
12741  case 0: break;
12742  default: goto __pyx_L5_argtuple_error;
12743  }
12744  kw_args = PyDict_Size(__pyx_kwds);
12745  switch (pos_args) {
12746  case 0:
12747  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr_ww)) != 0)) kw_args--;
12748  else goto __pyx_L5_argtuple_error;
12749  CYTHON_FALLTHROUGH;
12750  case 1:
12751  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind_ww)) != 0)) kw_args--;
12752  else {
12753  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 1); __PYX_ERR(0, 3478, __pyx_L3_error)
12754  }
12755  CYTHON_FALLTHROUGH;
12756  case 2:
12757  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr_nn)) != 0)) kw_args--;
12758  else {
12759  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 2); __PYX_ERR(0, 3478, __pyx_L3_error)
12760  }
12761  CYTHON_FALLTHROUGH;
12762  case 3:
12763  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind_nn)) != 0)) kw_args--;
12764  else {
12765  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 3); __PYX_ERR(0, 3478, __pyx_L3_error)
12766  }
12767  CYTHON_FALLTHROUGH;
12768  case 4:
12769  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
12770  else {
12771  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 4); __PYX_ERR(0, 3478, __pyx_L3_error)
12772  }
12773  CYTHON_FALLTHROUGH;
12774  case 5:
12775  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
12776  else {
12777  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 5); __PYX_ERR(0, 3478, __pyx_L3_error)
12778  }
12779  CYTHON_FALLTHROUGH;
12780  case 6:
12781  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
12782  else {
12783  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 6); __PYX_ERR(0, 3478, __pyx_L3_error)
12784  }
12785  CYTHON_FALLTHROUGH;
12786  case 7:
12787  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_uw)) != 0)) kw_args--;
12788  else {
12789  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 7); __PYX_ERR(0, 3478, __pyx_L3_error)
12790  }
12791  CYTHON_FALLTHROUGH;
12792  case 8:
12793  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_un)) != 0)) kw_args--;
12794  else {
12795  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 8); __PYX_ERR(0, 3478, __pyx_L3_error)
12796  }
12797  CYTHON_FALLTHROUGH;
12798  case 9:
12799  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_uw)) != 0)) kw_args--;
12800  else {
12801  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 9); __PYX_ERR(0, 3478, __pyx_L3_error)
12802  }
12803  CYTHON_FALLTHROUGH;
12804  case 10:
12805  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_un)) != 0)) kw_args--;
12806  else {
12807  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 10); __PYX_ERR(0, 3478, __pyx_L3_error)
12808  }
12809  CYTHON_FALLTHROUGH;
12810  case 11:
12811  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
12812  else {
12813  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 11); __PYX_ERR(0, 3478, __pyx_L3_error)
12814  }
12815  CYTHON_FALLTHROUGH;
12816  case 12:
12817  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a_ww)) != 0)) kw_args--;
12818  else {
12819  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 12); __PYX_ERR(0, 3478, __pyx_L3_error)
12820  }
12821  CYTHON_FALLTHROUGH;
12822  case 13:
12823  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a_nn)) != 0)) kw_args--;
12824  else {
12825  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 13); __PYX_ERR(0, 3478, __pyx_L3_error)
12826  }
12827  CYTHON_FALLTHROUGH;
12828  case 14:
12829  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi_w)) != 0)) kw_args--;
12830  else {
12831  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 14); __PYX_ERR(0, 3478, __pyx_L3_error)
12832  }
12833  CYTHON_FALLTHROUGH;
12834  case 15:
12835  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi_n)) != 0)) kw_args--;
12836  else {
12837  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 15); __PYX_ERR(0, 3478, __pyx_L3_error)
12838  }
12839  CYTHON_FALLTHROUGH;
12840  case 16:
12841  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_s_w)) != 0)) kw_args--;
12842  else {
12843  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 16); __PYX_ERR(0, 3478, __pyx_L3_error)
12844  }
12845  CYTHON_FALLTHROUGH;
12846  case 17:
12847  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psi_w)) != 0)) kw_args--;
12848  else {
12849  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 17); __PYX_ERR(0, 3478, __pyx_L3_error)
12850  }
12851  CYTHON_FALLTHROUGH;
12852  case 18:
12853  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psi_n)) != 0)) kw_args--;
12854  else {
12855  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 18); __PYX_ERR(0, 3478, __pyx_L3_error)
12856  }
12857  CYTHON_FALLTHROUGH;
12858  case 19:
12859  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_ww)) != 0)) kw_args--;
12860  else {
12861  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 19); __PYX_ERR(0, 3478, __pyx_L3_error)
12862  }
12863  CYTHON_FALLTHROUGH;
12864  case 20:
12865  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_nn)) != 0)) kw_args--;
12866  else {
12867  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 20); __PYX_ERR(0, 3478, __pyx_L3_error)
12868  }
12869  CYTHON_FALLTHROUGH;
12870  case 21:
12871  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_w)) != 0)) kw_args--;
12872  else {
12873  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 21); __PYX_ERR(0, 3478, __pyx_L3_error)
12874  }
12875  CYTHON_FALLTHROUGH;
12876  case 22:
12877  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_n)) != 0)) kw_args--;
12878  else {
12879  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 22); __PYX_ERR(0, 3478, __pyx_L3_error)
12880  }
12881  CYTHON_FALLTHROUGH;
12882  case 23:
12883  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_s_w)) != 0)) kw_args--;
12884  else {
12885  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 23); __PYX_ERR(0, 3478, __pyx_L3_error)
12886  }
12887  CYTHON_FALLTHROUGH;
12888  case 24:
12889  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_w)) != 0)) kw_args--;
12890  else {
12891  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 24); __PYX_ERR(0, 3478, __pyx_L3_error)
12892  }
12893  CYTHON_FALLTHROUGH;
12894  case 25:
12895  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_n)) != 0)) kw_args--;
12896  else {
12897  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 25); __PYX_ERR(0, 3478, __pyx_L3_error)
12898  }
12899  CYTHON_FALLTHROUGH;
12900  case 26:
12901  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_w)) != 0)) kw_args--;
12902  else {
12903  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 26); __PYX_ERR(0, 3478, __pyx_L3_error)
12904  }
12905  CYTHON_FALLTHROUGH;
12906  case 27:
12907  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_n)) != 0)) kw_args--;
12908  else {
12909  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 27); __PYX_ERR(0, 3478, __pyx_L3_error)
12910  }
12911  CYTHON_FALLTHROUGH;
12912  case 28:
12913  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux_ww)) != 0)) kw_args--;
12914  else {
12915  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 28); __PYX_ERR(0, 3478, __pyx_L3_error)
12916  }
12917  CYTHON_FALLTHROUGH;
12918  case 29:
12919  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux_nn)) != 0)) kw_args--;
12920  else {
12921  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, 29); __PYX_ERR(0, 3478, __pyx_L3_error)
12922  }
12923  }
12924  if (unlikely(kw_args > 0)) {
12925  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalFluxDarcyFC_sd") < 0)) __PYX_ERR(0, 3478, __pyx_L3_error)
12926  }
12927  } else if (PyTuple_GET_SIZE(__pyx_args) != 30) {
12928  goto __pyx_L5_argtuple_error;
12929  } else {
12930  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
12931  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
12932  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
12933  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
12934  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
12935  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
12936  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
12937  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
12938  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
12939  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
12940  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
12941  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
12942  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
12943  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
12944  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
12945  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
12946  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
12947  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
12948  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
12949  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
12950  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
12951  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
12952  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
12953  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
12954  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
12955  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
12956  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
12957  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
12958  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
12959  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
12960  }
12961  __pyx_v_rowptr_ww = ((PyArrayObject *)values[0]);
12962  __pyx_v_colind_ww = ((PyArrayObject *)values[1]);
12963  __pyx_v_rowptr_nn = ((PyArrayObject *)values[2]);
12964  __pyx_v_colind_nn = ((PyArrayObject *)values[3]);
12965  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[4]);
12966  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[5]);
12967  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[6]);
12968  __pyx_v_isDOFBoundary_uw = ((PyArrayObject *)values[7]);
12969  __pyx_v_isDOFBoundary_un = ((PyArrayObject *)values[8]);
12970  __pyx_v_fluxBoundaryFlag_uw = __Pyx_PyInt_As_int(values[9]); if (unlikely((__pyx_v_fluxBoundaryFlag_uw == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3487, __pyx_L3_error)
12971  __pyx_v_fluxBoundaryFlag_un = __Pyx_PyInt_As_int(values[10]); if (unlikely((__pyx_v_fluxBoundaryFlag_un == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3488, __pyx_L3_error)
12972  __pyx_v_n = ((PyArrayObject *)values[11]);
12973  __pyx_v_bc_a_ww = ((PyArrayObject *)values[12]);
12974  __pyx_v_bc_a_nn = ((PyArrayObject *)values[13]);
12975  __pyx_v_bc_grad_phi_w = ((PyArrayObject *)values[14]);
12976  __pyx_v_bc_grad_phi_n = ((PyArrayObject *)values[15]);
12977  __pyx_v_bc_s_w = ((PyArrayObject *)values[16]);
12978  __pyx_v_bc_psi_w = ((PyArrayObject *)values[17]);
12979  __pyx_v_bc_psi_n = ((PyArrayObject *)values[18]);
12980  __pyx_v_a_ww = ((PyArrayObject *)values[19]);
12981  __pyx_v_a_nn = ((PyArrayObject *)values[20]);
12982  __pyx_v_grad_phi_w = ((PyArrayObject *)values[21]);
12983  __pyx_v_grad_phi_n = ((PyArrayObject *)values[22]);
12984  __pyx_v_s_w = ((PyArrayObject *)values[23]);
12985  __pyx_v_psi_w = ((PyArrayObject *)values[24]);
12986  __pyx_v_psi_n = ((PyArrayObject *)values[25]);
12987  __pyx_v_penalty_w = ((PyArrayObject *)values[26]);
12988  __pyx_v_penalty_n = ((PyArrayObject *)values[27]);
12989  __pyx_v_diffusiveFlux_ww = ((PyArrayObject *)values[28]);
12990  __pyx_v_diffusiveFlux_nn = ((PyArrayObject *)values[29]);
12991  }
12992  goto __pyx_L4_argument_unpacking_done;
12993  __pyx_L5_argtuple_error:;
12994  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 1, 30, 30, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3478, __pyx_L3_error)
12995  __pyx_L3_error:;
12996  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcyFC_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
12997  __Pyx_RefNannyFinishContext();
12998  return NULL;
12999  __pyx_L4_argument_unpacking_done:;
13000  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr_ww), __pyx_ptype_5numpy_ndarray, 1, "rowptr_ww", 0))) __PYX_ERR(0, 3478, __pyx_L1_error)
13001  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind_ww), __pyx_ptype_5numpy_ndarray, 1, "colind_ww", 0))) __PYX_ERR(0, 3479, __pyx_L1_error)
13002  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr_nn), __pyx_ptype_5numpy_ndarray, 1, "rowptr_nn", 0))) __PYX_ERR(0, 3480, __pyx_L1_error)
13003  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind_nn), __pyx_ptype_5numpy_ndarray, 1, "colind_nn", 0))) __PYX_ERR(0, 3481, __pyx_L1_error)
13004  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 3482, __pyx_L1_error)
13005  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3483, __pyx_L1_error)
13006  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3484, __pyx_L1_error)
13007  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_uw), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_uw", 0))) __PYX_ERR(0, 3485, __pyx_L1_error)
13008  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_un), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_un", 0))) __PYX_ERR(0, 3486, __pyx_L1_error)
13009  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3489, __pyx_L1_error)
13010  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a_ww), __pyx_ptype_5numpy_ndarray, 1, "bc_a_ww", 0))) __PYX_ERR(0, 3490, __pyx_L1_error)
13011  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a_nn), __pyx_ptype_5numpy_ndarray, 1, "bc_a_nn", 0))) __PYX_ERR(0, 3491, __pyx_L1_error)
13012  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi_w", 0))) __PYX_ERR(0, 3492, __pyx_L1_error)
13013  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi_n), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi_n", 0))) __PYX_ERR(0, 3493, __pyx_L1_error)
13014  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_s_w), __pyx_ptype_5numpy_ndarray, 1, "bc_s_w", 0))) __PYX_ERR(0, 3494, __pyx_L1_error)
13015  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psi_w), __pyx_ptype_5numpy_ndarray, 1, "bc_psi_w", 0))) __PYX_ERR(0, 3495, __pyx_L1_error)
13016  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psi_n), __pyx_ptype_5numpy_ndarray, 1, "bc_psi_n", 0))) __PYX_ERR(0, 3496, __pyx_L1_error)
13017  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_ww), __pyx_ptype_5numpy_ndarray, 1, "a_ww", 0))) __PYX_ERR(0, 3497, __pyx_L1_error)
13018  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_nn), __pyx_ptype_5numpy_ndarray, 1, "a_nn", 0))) __PYX_ERR(0, 3498, __pyx_L1_error)
13019  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_w", 0))) __PYX_ERR(0, 3499, __pyx_L1_error)
13020  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_n), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_n", 0))) __PYX_ERR(0, 3500, __pyx_L1_error)
13021  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_s_w), __pyx_ptype_5numpy_ndarray, 1, "s_w", 0))) __PYX_ERR(0, 3501, __pyx_L1_error)
13022  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_w), __pyx_ptype_5numpy_ndarray, 1, "psi_w", 0))) __PYX_ERR(0, 3502, __pyx_L1_error)
13023  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_n), __pyx_ptype_5numpy_ndarray, 1, "psi_n", 0))) __PYX_ERR(0, 3503, __pyx_L1_error)
13024  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_w), __pyx_ptype_5numpy_ndarray, 1, "penalty_w", 0))) __PYX_ERR(0, 3504, __pyx_L1_error)
13025  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_n), __pyx_ptype_5numpy_ndarray, 1, "penalty_n", 0))) __PYX_ERR(0, 3505, __pyx_L1_error)
13026  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux_ww), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux_ww", 0))) __PYX_ERR(0, 3506, __pyx_L1_error)
13027  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux_nn), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux_nn", 0))) __PYX_ERR(0, 3507, __pyx_L1_error)
13028  __pyx_r = __pyx_pf_14cnumericalFlux_70calculateGlobalExteriorNumericalFluxDarcyFC_sd(__pyx_self, __pyx_v_rowptr_ww, __pyx_v_colind_ww, __pyx_v_rowptr_nn, __pyx_v_colind_nn, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_uw, __pyx_v_isDOFBoundary_un, __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, __pyx_v_n, __pyx_v_bc_a_ww, __pyx_v_bc_a_nn, __pyx_v_bc_grad_phi_w, __pyx_v_bc_grad_phi_n, __pyx_v_bc_s_w, __pyx_v_bc_psi_w, __pyx_v_bc_psi_n, __pyx_v_a_ww, __pyx_v_a_nn, __pyx_v_grad_phi_w, __pyx_v_grad_phi_n, __pyx_v_s_w, __pyx_v_psi_w, __pyx_v_psi_n, __pyx_v_penalty_w, __pyx_v_penalty_n, __pyx_v_diffusiveFlux_ww, __pyx_v_diffusiveFlux_nn);
13029 
13030  /* function exit code */
13031  goto __pyx_L0;
13032  __pyx_L1_error:;
13033  __pyx_r = NULL;
13034  __pyx_L0:;
13035  __Pyx_RefNannyFinishContext();
13036  return __pyx_r;
13037 }
13038 
13039 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) {
13040  PyObject *__pyx_r = NULL;
13041  __Pyx_RefNannyDeclarations
13042  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFC_sd", 0);
13043 
13044  /* "cnumericalFlux.pyx":3508
13045  * np.ndarray diffusiveFlux_ww,
13046  * np.ndarray diffusiveFlux_nn):
13047  * ccalculateGlobalExteriorNumericalFluxDarcyFC_sd(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
13048  * n.shape[1],
13049  * n.shape[2],
13050  */
13051  calculateGlobalExteriorNumericalFluxDarcyFC_sd((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), ((int *)__pyx_v_rowptr_ww->data), ((int *)__pyx_v_colind_ww->data), ((int *)__pyx_v_rowptr_nn->data), ((int *)__pyx_v_colind_nn->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_uw->data), ((int *)__pyx_v_isDOFBoundary_un->data), __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a_ww->data), ((double *)__pyx_v_bc_a_nn->data), ((double *)__pyx_v_bc_grad_phi_w->data), ((double *)__pyx_v_bc_grad_phi_n->data), ((double *)__pyx_v_bc_s_w->data), ((double *)__pyx_v_bc_psi_w->data), ((double *)__pyx_v_bc_psi_n->data), ((double *)__pyx_v_a_ww->data), ((double *)__pyx_v_a_nn->data), ((double *)__pyx_v_grad_phi_w->data), ((double *)__pyx_v_grad_phi_n->data), ((double *)__pyx_v_s_w->data), ((double *)__pyx_v_psi_w->data), ((double *)__pyx_v_psi_n->data), ((double *)__pyx_v_penalty_w->data), ((double *)__pyx_v_penalty_n->data), ((double *)__pyx_v_diffusiveFlux_ww->data), ((double *)__pyx_v_diffusiveFlux_nn->data));
13052 
13053  /* "cnumericalFlux.pyx":3478
13054  * <double*> diffusiveFlux_ww.data,
13055  * <double*> diffusiveFlux_nn.data)
13056  * def calculateGlobalExteriorNumericalFluxDarcyFC_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
13057  * np.ndarray colind_ww,
13058  * np.ndarray rowptr_nn,
13059  */
13060 
13061  /* function exit code */
13062  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
13063  __Pyx_XGIVEREF(__pyx_r);
13064  __Pyx_RefNannyFinishContext();
13065  return __pyx_r;
13066 }
13067 
13068 /* "cnumericalFlux.pyx":3541
13069  * <double*> diffusiveFlux_ww.data,
13070  * <double*> diffusiveFlux_nn.data)
13071  * def calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
13072  * np.ndarray exteriorElementBoundaries,
13073  * np.ndarray elementBoundaryElements,
13074  */
13075 
13076 /* Python wrapper */
13077 static PyObject *__pyx_pw_14cnumericalFlux_73calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
13078 static PyMethodDef __pyx_mdef_14cnumericalFlux_73calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian = {"calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_73calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian, METH_VARARGS|METH_KEYWORDS, 0};
13079 static PyObject *__pyx_pw_14cnumericalFlux_73calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
13080  PyArrayObject *__pyx_v_l2g = 0;
13081  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
13082  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
13083  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
13084  PyArrayObject *__pyx_v_isDOFBoundary_uw = 0;
13085  PyArrayObject *__pyx_v_isDOFBoundary_un = 0;
13086  int __pyx_v_fluxBoundaryFlag_uw;
13087  int __pyx_v_fluxBoundaryFlag_un;
13088  PyArrayObject *__pyx_v_n = 0;
13089  PyArrayObject *__pyx_v_a_ww = 0;
13090  PyArrayObject *__pyx_v_da_ww_dw = 0;
13091  PyArrayObject *__pyx_v_da_ww_dn = 0;
13092  PyArrayObject *__pyx_v_a_nn = 0;
13093  PyArrayObject *__pyx_v_da_nn_dw = 0;
13094  PyArrayObject *__pyx_v_da_nn_dn = 0;
13095  PyArrayObject *__pyx_v_grad_phi_w = 0;
13096  PyArrayObject *__pyx_v_grad_phi_n = 0;
13097  PyArrayObject *__pyx_v_dphi_w_w = 0;
13098  PyArrayObject *__pyx_v_dphi_w_n = 0;
13099  PyArrayObject *__pyx_v_dphi_n_w = 0;
13100  PyArrayObject *__pyx_v_dphi_n_n = 0;
13101  PyArrayObject *__pyx_v_s_w = 0;
13102  PyArrayObject *__pyx_v_psi_w = 0;
13103  PyArrayObject *__pyx_v_psi_n = 0;
13104  PyArrayObject *__pyx_v_dpsi_n_dsw = 0;
13105  PyArrayObject *__pyx_v_dpsi_n_dpsiw = 0;
13106  PyArrayObject *__pyx_v_v = 0;
13107  PyArrayObject *__pyx_v_grad_v = 0;
13108  PyArrayObject *__pyx_v_penalty_w = 0;
13109  PyArrayObject *__pyx_v_penalty_n = 0;
13110  PyArrayObject *__pyx_v_fluxJacobian_ww = 0;
13111  PyArrayObject *__pyx_v_fluxJacobian_wn = 0;
13112  PyArrayObject *__pyx_v_fluxJacobian_nw = 0;
13113  PyArrayObject *__pyx_v_fluxJacobian_nn = 0;
13114  int __pyx_lineno = 0;
13115  const char *__pyx_filename = NULL;
13116  int __pyx_clineno = 0;
13117  PyObject *__pyx_r = 0;
13118  __Pyx_RefNannyDeclarations
13119  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian (wrapper)", 0);
13120  {
13121  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_uw,&__pyx_n_s_isDOFBoundary_un,&__pyx_n_s_fluxBoundaryFlag_uw,&__pyx_n_s_fluxBoundaryFlag_un,&__pyx_n_s_n,&__pyx_n_s_a_ww,&__pyx_n_s_da_ww_dw,&__pyx_n_s_da_ww_dn,&__pyx_n_s_a_nn,&__pyx_n_s_da_nn_dw,&__pyx_n_s_da_nn_dn,&__pyx_n_s_grad_phi_w,&__pyx_n_s_grad_phi_n,&__pyx_n_s_dphi_w_w,&__pyx_n_s_dphi_w_n,&__pyx_n_s_dphi_n_w,&__pyx_n_s_dphi_n_n,&__pyx_n_s_s_w,&__pyx_n_s_psi_w,&__pyx_n_s_psi_n,&__pyx_n_s_dpsi_n_dsw,&__pyx_n_s_dpsi_n_dpsiw,&__pyx_n_s_v,&__pyx_n_s_grad_v,&__pyx_n_s_penalty_w,&__pyx_n_s_penalty_n,&__pyx_n_s_fluxJacobian_ww,&__pyx_n_s_fluxJacobian_wn,&__pyx_n_s_fluxJacobian_nw,&__pyx_n_s_fluxJacobian_nn,0};
13122  PyObject* values[34] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
13123  if (unlikely(__pyx_kwds)) {
13124  Py_ssize_t kw_args;
13125  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
13126  switch (pos_args) {
13127  case 34: values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
13128  CYTHON_FALLTHROUGH;
13129  case 33: values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
13130  CYTHON_FALLTHROUGH;
13131  case 32: values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
13132  CYTHON_FALLTHROUGH;
13133  case 31: values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
13134  CYTHON_FALLTHROUGH;
13135  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
13136  CYTHON_FALLTHROUGH;
13137  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
13138  CYTHON_FALLTHROUGH;
13139  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
13140  CYTHON_FALLTHROUGH;
13141  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
13142  CYTHON_FALLTHROUGH;
13143  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
13144  CYTHON_FALLTHROUGH;
13145  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
13146  CYTHON_FALLTHROUGH;
13147  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
13148  CYTHON_FALLTHROUGH;
13149  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
13150  CYTHON_FALLTHROUGH;
13151  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
13152  CYTHON_FALLTHROUGH;
13153  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
13154  CYTHON_FALLTHROUGH;
13155  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
13156  CYTHON_FALLTHROUGH;
13157  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
13158  CYTHON_FALLTHROUGH;
13159  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
13160  CYTHON_FALLTHROUGH;
13161  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
13162  CYTHON_FALLTHROUGH;
13163  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
13164  CYTHON_FALLTHROUGH;
13165  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
13166  CYTHON_FALLTHROUGH;
13167  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
13168  CYTHON_FALLTHROUGH;
13169  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
13170  CYTHON_FALLTHROUGH;
13171  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
13172  CYTHON_FALLTHROUGH;
13173  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
13174  CYTHON_FALLTHROUGH;
13175  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
13176  CYTHON_FALLTHROUGH;
13177  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
13178  CYTHON_FALLTHROUGH;
13179  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
13180  CYTHON_FALLTHROUGH;
13181  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
13182  CYTHON_FALLTHROUGH;
13183  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
13184  CYTHON_FALLTHROUGH;
13185  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
13186  CYTHON_FALLTHROUGH;
13187  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
13188  CYTHON_FALLTHROUGH;
13189  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
13190  CYTHON_FALLTHROUGH;
13191  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13192  CYTHON_FALLTHROUGH;
13193  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13194  CYTHON_FALLTHROUGH;
13195  case 0: break;
13196  default: goto __pyx_L5_argtuple_error;
13197  }
13198  kw_args = PyDict_Size(__pyx_kwds);
13199  switch (pos_args) {
13200  case 0:
13201  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
13202  else goto __pyx_L5_argtuple_error;
13203  CYTHON_FALLTHROUGH;
13204  case 1:
13205  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
13206  else {
13207  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 1); __PYX_ERR(0, 3541, __pyx_L3_error)
13208  }
13209  CYTHON_FALLTHROUGH;
13210  case 2:
13211  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
13212  else {
13213  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 2); __PYX_ERR(0, 3541, __pyx_L3_error)
13214  }
13215  CYTHON_FALLTHROUGH;
13216  case 3:
13217  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
13218  else {
13219  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 3); __PYX_ERR(0, 3541, __pyx_L3_error)
13220  }
13221  CYTHON_FALLTHROUGH;
13222  case 4:
13223  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_uw)) != 0)) kw_args--;
13224  else {
13225  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 4); __PYX_ERR(0, 3541, __pyx_L3_error)
13226  }
13227  CYTHON_FALLTHROUGH;
13228  case 5:
13229  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_un)) != 0)) kw_args--;
13230  else {
13231  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 5); __PYX_ERR(0, 3541, __pyx_L3_error)
13232  }
13233  CYTHON_FALLTHROUGH;
13234  case 6:
13235  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_uw)) != 0)) kw_args--;
13236  else {
13237  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 6); __PYX_ERR(0, 3541, __pyx_L3_error)
13238  }
13239  CYTHON_FALLTHROUGH;
13240  case 7:
13241  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_un)) != 0)) kw_args--;
13242  else {
13243  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 7); __PYX_ERR(0, 3541, __pyx_L3_error)
13244  }
13245  CYTHON_FALLTHROUGH;
13246  case 8:
13247  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
13248  else {
13249  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 8); __PYX_ERR(0, 3541, __pyx_L3_error)
13250  }
13251  CYTHON_FALLTHROUGH;
13252  case 9:
13253  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_ww)) != 0)) kw_args--;
13254  else {
13255  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 9); __PYX_ERR(0, 3541, __pyx_L3_error)
13256  }
13257  CYTHON_FALLTHROUGH;
13258  case 10:
13259  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_ww_dw)) != 0)) kw_args--;
13260  else {
13261  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 10); __PYX_ERR(0, 3541, __pyx_L3_error)
13262  }
13263  CYTHON_FALLTHROUGH;
13264  case 11:
13265  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_ww_dn)) != 0)) kw_args--;
13266  else {
13267  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 11); __PYX_ERR(0, 3541, __pyx_L3_error)
13268  }
13269  CYTHON_FALLTHROUGH;
13270  case 12:
13271  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_nn)) != 0)) kw_args--;
13272  else {
13273  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 12); __PYX_ERR(0, 3541, __pyx_L3_error)
13274  }
13275  CYTHON_FALLTHROUGH;
13276  case 13:
13277  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_nn_dw)) != 0)) kw_args--;
13278  else {
13279  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 13); __PYX_ERR(0, 3541, __pyx_L3_error)
13280  }
13281  CYTHON_FALLTHROUGH;
13282  case 14:
13283  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_nn_dn)) != 0)) kw_args--;
13284  else {
13285  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 14); __PYX_ERR(0, 3541, __pyx_L3_error)
13286  }
13287  CYTHON_FALLTHROUGH;
13288  case 15:
13289  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_w)) != 0)) kw_args--;
13290  else {
13291  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 15); __PYX_ERR(0, 3541, __pyx_L3_error)
13292  }
13293  CYTHON_FALLTHROUGH;
13294  case 16:
13295  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_n)) != 0)) kw_args--;
13296  else {
13297  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 16); __PYX_ERR(0, 3541, __pyx_L3_error)
13298  }
13299  CYTHON_FALLTHROUGH;
13300  case 17:
13301  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_w_w)) != 0)) kw_args--;
13302  else {
13303  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 17); __PYX_ERR(0, 3541, __pyx_L3_error)
13304  }
13305  CYTHON_FALLTHROUGH;
13306  case 18:
13307  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_w_n)) != 0)) kw_args--;
13308  else {
13309  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 18); __PYX_ERR(0, 3541, __pyx_L3_error)
13310  }
13311  CYTHON_FALLTHROUGH;
13312  case 19:
13313  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_n_w)) != 0)) kw_args--;
13314  else {
13315  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 19); __PYX_ERR(0, 3541, __pyx_L3_error)
13316  }
13317  CYTHON_FALLTHROUGH;
13318  case 20:
13319  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_n_n)) != 0)) kw_args--;
13320  else {
13321  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 20); __PYX_ERR(0, 3541, __pyx_L3_error)
13322  }
13323  CYTHON_FALLTHROUGH;
13324  case 21:
13325  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_s_w)) != 0)) kw_args--;
13326  else {
13327  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 21); __PYX_ERR(0, 3541, __pyx_L3_error)
13328  }
13329  CYTHON_FALLTHROUGH;
13330  case 22:
13331  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_w)) != 0)) kw_args--;
13332  else {
13333  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 22); __PYX_ERR(0, 3541, __pyx_L3_error)
13334  }
13335  CYTHON_FALLTHROUGH;
13336  case 23:
13337  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_n)) != 0)) kw_args--;
13338  else {
13339  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 23); __PYX_ERR(0, 3541, __pyx_L3_error)
13340  }
13341  CYTHON_FALLTHROUGH;
13342  case 24:
13343  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dpsi_n_dsw)) != 0)) kw_args--;
13344  else {
13345  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 24); __PYX_ERR(0, 3541, __pyx_L3_error)
13346  }
13347  CYTHON_FALLTHROUGH;
13348  case 25:
13349  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dpsi_n_dpsiw)) != 0)) kw_args--;
13350  else {
13351  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 25); __PYX_ERR(0, 3541, __pyx_L3_error)
13352  }
13353  CYTHON_FALLTHROUGH;
13354  case 26:
13355  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
13356  else {
13357  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 26); __PYX_ERR(0, 3541, __pyx_L3_error)
13358  }
13359  CYTHON_FALLTHROUGH;
13360  case 27:
13361  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
13362  else {
13363  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 27); __PYX_ERR(0, 3541, __pyx_L3_error)
13364  }
13365  CYTHON_FALLTHROUGH;
13366  case 28:
13367  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_w)) != 0)) kw_args--;
13368  else {
13369  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 28); __PYX_ERR(0, 3541, __pyx_L3_error)
13370  }
13371  CYTHON_FALLTHROUGH;
13372  case 29:
13373  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_n)) != 0)) kw_args--;
13374  else {
13375  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 29); __PYX_ERR(0, 3541, __pyx_L3_error)
13376  }
13377  CYTHON_FALLTHROUGH;
13378  case 30:
13379  if (likely((values[30] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_ww)) != 0)) kw_args--;
13380  else {
13381  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 30); __PYX_ERR(0, 3541, __pyx_L3_error)
13382  }
13383  CYTHON_FALLTHROUGH;
13384  case 31:
13385  if (likely((values[31] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_wn)) != 0)) kw_args--;
13386  else {
13387  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 31); __PYX_ERR(0, 3541, __pyx_L3_error)
13388  }
13389  CYTHON_FALLTHROUGH;
13390  case 32:
13391  if (likely((values[32] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_nw)) != 0)) kw_args--;
13392  else {
13393  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 32); __PYX_ERR(0, 3541, __pyx_L3_error)
13394  }
13395  CYTHON_FALLTHROUGH;
13396  case 33:
13397  if (likely((values[33] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_nn)) != 0)) kw_args--;
13398  else {
13399  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, 33); __PYX_ERR(0, 3541, __pyx_L3_error)
13400  }
13401  }
13402  if (unlikely(kw_args > 0)) {
13403  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian") < 0)) __PYX_ERR(0, 3541, __pyx_L3_error)
13404  }
13405  } else if (PyTuple_GET_SIZE(__pyx_args) != 34) {
13406  goto __pyx_L5_argtuple_error;
13407  } else {
13408  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13409  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13410  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
13411  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
13412  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
13413  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
13414  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
13415  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
13416  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
13417  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
13418  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
13419  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
13420  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
13421  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
13422  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
13423  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
13424  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
13425  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
13426  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
13427  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
13428  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
13429  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
13430  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
13431  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
13432  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
13433  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
13434  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
13435  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
13436  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
13437  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
13438  values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
13439  values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
13440  values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
13441  values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
13442  }
13443  __pyx_v_l2g = ((PyArrayObject *)values[0]);
13444  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
13445  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
13446  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
13447  __pyx_v_isDOFBoundary_uw = ((PyArrayObject *)values[4]);
13448  __pyx_v_isDOFBoundary_un = ((PyArrayObject *)values[5]);
13449  __pyx_v_fluxBoundaryFlag_uw = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_fluxBoundaryFlag_uw == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3547, __pyx_L3_error)
13450  __pyx_v_fluxBoundaryFlag_un = __Pyx_PyInt_As_int(values[7]); if (unlikely((__pyx_v_fluxBoundaryFlag_un == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3548, __pyx_L3_error)
13451  __pyx_v_n = ((PyArrayObject *)values[8]);
13452  __pyx_v_a_ww = ((PyArrayObject *)values[9]);
13453  __pyx_v_da_ww_dw = ((PyArrayObject *)values[10]);
13454  __pyx_v_da_ww_dn = ((PyArrayObject *)values[11]);
13455  __pyx_v_a_nn = ((PyArrayObject *)values[12]);
13456  __pyx_v_da_nn_dw = ((PyArrayObject *)values[13]);
13457  __pyx_v_da_nn_dn = ((PyArrayObject *)values[14]);
13458  __pyx_v_grad_phi_w = ((PyArrayObject *)values[15]);
13459  __pyx_v_grad_phi_n = ((PyArrayObject *)values[16]);
13460  __pyx_v_dphi_w_w = ((PyArrayObject *)values[17]);
13461  __pyx_v_dphi_w_n = ((PyArrayObject *)values[18]);
13462  __pyx_v_dphi_n_w = ((PyArrayObject *)values[19]);
13463  __pyx_v_dphi_n_n = ((PyArrayObject *)values[20]);
13464  __pyx_v_s_w = ((PyArrayObject *)values[21]);
13465  __pyx_v_psi_w = ((PyArrayObject *)values[22]);
13466  __pyx_v_psi_n = ((PyArrayObject *)values[23]);
13467  __pyx_v_dpsi_n_dsw = ((PyArrayObject *)values[24]);
13468  __pyx_v_dpsi_n_dpsiw = ((PyArrayObject *)values[25]);
13469  __pyx_v_v = ((PyArrayObject *)values[26]);
13470  __pyx_v_grad_v = ((PyArrayObject *)values[27]);
13471  __pyx_v_penalty_w = ((PyArrayObject *)values[28]);
13472  __pyx_v_penalty_n = ((PyArrayObject *)values[29]);
13473  __pyx_v_fluxJacobian_ww = ((PyArrayObject *)values[30]);
13474  __pyx_v_fluxJacobian_wn = ((PyArrayObject *)values[31]);
13475  __pyx_v_fluxJacobian_nw = ((PyArrayObject *)values[32]);
13476  __pyx_v_fluxJacobian_nn = ((PyArrayObject *)values[33]);
13477  }
13478  goto __pyx_L4_argument_unpacking_done;
13479  __pyx_L5_argtuple_error:;
13480  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 1, 34, 34, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3541, __pyx_L3_error)
13481  __pyx_L3_error:;
13482  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename);
13483  __Pyx_RefNannyFinishContext();
13484  return NULL;
13485  __pyx_L4_argument_unpacking_done:;
13486  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 3541, __pyx_L1_error)
13487  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 3542, __pyx_L1_error)
13488  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3543, __pyx_L1_error)
13489  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3544, __pyx_L1_error)
13490  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_uw), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_uw", 0))) __PYX_ERR(0, 3545, __pyx_L1_error)
13491  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_un), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_un", 0))) __PYX_ERR(0, 3546, __pyx_L1_error)
13492  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3549, __pyx_L1_error)
13493  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_ww), __pyx_ptype_5numpy_ndarray, 1, "a_ww", 0))) __PYX_ERR(0, 3550, __pyx_L1_error)
13494  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_ww_dw), __pyx_ptype_5numpy_ndarray, 1, "da_ww_dw", 0))) __PYX_ERR(0, 3551, __pyx_L1_error)
13495  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_ww_dn), __pyx_ptype_5numpy_ndarray, 1, "da_ww_dn", 0))) __PYX_ERR(0, 3552, __pyx_L1_error)
13496  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_nn), __pyx_ptype_5numpy_ndarray, 1, "a_nn", 0))) __PYX_ERR(0, 3553, __pyx_L1_error)
13497  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_nn_dw), __pyx_ptype_5numpy_ndarray, 1, "da_nn_dw", 0))) __PYX_ERR(0, 3554, __pyx_L1_error)
13498  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_nn_dn), __pyx_ptype_5numpy_ndarray, 1, "da_nn_dn", 0))) __PYX_ERR(0, 3555, __pyx_L1_error)
13499  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_w", 0))) __PYX_ERR(0, 3556, __pyx_L1_error)
13500  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_n), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_n", 0))) __PYX_ERR(0, 3557, __pyx_L1_error)
13501  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_w_w), __pyx_ptype_5numpy_ndarray, 1, "dphi_w_w", 0))) __PYX_ERR(0, 3558, __pyx_L1_error)
13502  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_w_n), __pyx_ptype_5numpy_ndarray, 1, "dphi_w_n", 0))) __PYX_ERR(0, 3559, __pyx_L1_error)
13503  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_n_w), __pyx_ptype_5numpy_ndarray, 1, "dphi_n_w", 0))) __PYX_ERR(0, 3560, __pyx_L1_error)
13504  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_n_n), __pyx_ptype_5numpy_ndarray, 1, "dphi_n_n", 0))) __PYX_ERR(0, 3561, __pyx_L1_error)
13505  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_s_w), __pyx_ptype_5numpy_ndarray, 1, "s_w", 0))) __PYX_ERR(0, 3562, __pyx_L1_error)
13506  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_w), __pyx_ptype_5numpy_ndarray, 1, "psi_w", 0))) __PYX_ERR(0, 3563, __pyx_L1_error)
13507  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_n), __pyx_ptype_5numpy_ndarray, 1, "psi_n", 0))) __PYX_ERR(0, 3564, __pyx_L1_error)
13508  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpsi_n_dsw), __pyx_ptype_5numpy_ndarray, 1, "dpsi_n_dsw", 0))) __PYX_ERR(0, 3565, __pyx_L1_error)
13509  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpsi_n_dpsiw), __pyx_ptype_5numpy_ndarray, 1, "dpsi_n_dpsiw", 0))) __PYX_ERR(0, 3566, __pyx_L1_error)
13510  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 3567, __pyx_L1_error)
13511  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 3568, __pyx_L1_error)
13512  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_w), __pyx_ptype_5numpy_ndarray, 1, "penalty_w", 0))) __PYX_ERR(0, 3569, __pyx_L1_error)
13513  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_n), __pyx_ptype_5numpy_ndarray, 1, "penalty_n", 0))) __PYX_ERR(0, 3570, __pyx_L1_error)
13514  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_ww), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_ww", 0))) __PYX_ERR(0, 3571, __pyx_L1_error)
13515  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_wn), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_wn", 0))) __PYX_ERR(0, 3572, __pyx_L1_error)
13516  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_nw), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_nw", 0))) __PYX_ERR(0, 3573, __pyx_L1_error)
13517  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_nn), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_nn", 0))) __PYX_ERR(0, 3574, __pyx_L1_error)
13518  __pyx_r = __pyx_pf_14cnumericalFlux_72calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian(__pyx_self, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_uw, __pyx_v_isDOFBoundary_un, __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, __pyx_v_n, __pyx_v_a_ww, __pyx_v_da_ww_dw, __pyx_v_da_ww_dn, __pyx_v_a_nn, __pyx_v_da_nn_dw, __pyx_v_da_nn_dn, __pyx_v_grad_phi_w, __pyx_v_grad_phi_n, __pyx_v_dphi_w_w, __pyx_v_dphi_w_n, __pyx_v_dphi_n_w, __pyx_v_dphi_n_n, __pyx_v_s_w, __pyx_v_psi_w, __pyx_v_psi_n, __pyx_v_dpsi_n_dsw, __pyx_v_dpsi_n_dpsiw, __pyx_v_v, __pyx_v_grad_v, __pyx_v_penalty_w, __pyx_v_penalty_n, __pyx_v_fluxJacobian_ww, __pyx_v_fluxJacobian_wn, __pyx_v_fluxJacobian_nw, __pyx_v_fluxJacobian_nn);
13519 
13520  /* function exit code */
13521  goto __pyx_L0;
13522  __pyx_L1_error:;
13523  __pyx_r = NULL;
13524  __pyx_L0:;
13525  __Pyx_RefNannyFinishContext();
13526  return __pyx_r;
13527 }
13528 
13529 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) {
13530  PyObject *__pyx_r = NULL;
13531  __Pyx_RefNannyDeclarations
13532  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian", 0);
13533 
13534  /* "cnumericalFlux.pyx":3575
13535  * np.ndarray fluxJacobian_nw,
13536  * np.ndarray fluxJacobian_nn):
13537  * ccalculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
13538  * n.shape[1],
13539  * n.shape[2],
13540  */
13541  calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_l2g->dimensions[1]), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_uw->data), ((int *)__pyx_v_isDOFBoundary_un->data), __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, ((double *)__pyx_v_n->data), ((double *)__pyx_v_a_ww->data), ((double *)__pyx_v_da_ww_dw->data), ((double *)__pyx_v_da_ww_dn->data), ((double *)__pyx_v_a_nn->data), ((double *)__pyx_v_da_nn_dw->data), ((double *)__pyx_v_da_nn_dn->data), ((double *)__pyx_v_grad_phi_w->data), ((double *)__pyx_v_grad_phi_n->data), ((double *)__pyx_v_dphi_w_w->data), ((double *)__pyx_v_dphi_w_n->data), ((double *)__pyx_v_dphi_n_w->data), ((double *)__pyx_v_dphi_n_n->data), ((double *)__pyx_v_s_w->data), ((double *)__pyx_v_psi_w->data), ((double *)__pyx_v_psi_n->data), ((double *)__pyx_v_dpsi_n_dsw->data), ((double *)__pyx_v_dpsi_n_dpsiw->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_grad_v->data), ((double *)__pyx_v_penalty_w->data), ((double *)__pyx_v_penalty_n->data), ((double *)__pyx_v_fluxJacobian_ww->data), ((double *)__pyx_v_fluxJacobian_wn->data), ((double *)__pyx_v_fluxJacobian_nw->data), ((double *)__pyx_v_fluxJacobian_nn->data));
13542 
13543  /* "cnumericalFlux.pyx":3541
13544  * <double*> diffusiveFlux_ww.data,
13545  * <double*> diffusiveFlux_nn.data)
13546  * def calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
13547  * np.ndarray exteriorElementBoundaries,
13548  * np.ndarray elementBoundaryElements,
13549  */
13550 
13551  /* function exit code */
13552  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
13553  __Pyx_XGIVEREF(__pyx_r);
13554  __Pyx_RefNannyFinishContext();
13555  return __pyx_r;
13556 }
13557 
13558 /* "cnumericalFlux.pyx":3613
13559  * <double*> fluxJacobian_nw.data,
13560  * <double*> fluxJacobian_nn.data)
13561  * def calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
13562  * np.ndarray colind_ww,
13563  * np.ndarray rowptr_nn,
13564  */
13565 
13566 /* Python wrapper */
13567 static PyObject *__pyx_pw_14cnumericalFlux_75calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
13568 static PyMethodDef __pyx_mdef_14cnumericalFlux_75calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd = {"calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_75calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd, METH_VARARGS|METH_KEYWORDS, 0};
13569 static PyObject *__pyx_pw_14cnumericalFlux_75calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
13570  PyArrayObject *__pyx_v_rowptr_ww = 0;
13571  PyArrayObject *__pyx_v_colind_ww = 0;
13572  PyArrayObject *__pyx_v_rowptr_nn = 0;
13573  PyArrayObject *__pyx_v_colind_nn = 0;
13574  PyArrayObject *__pyx_v_l2g = 0;
13575  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
13576  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
13577  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
13578  PyArrayObject *__pyx_v_isDOFBoundary_uw = 0;
13579  PyArrayObject *__pyx_v_isDOFBoundary_un = 0;
13580  int __pyx_v_fluxBoundaryFlag_uw;
13581  int __pyx_v_fluxBoundaryFlag_un;
13582  PyArrayObject *__pyx_v_n = 0;
13583  PyArrayObject *__pyx_v_a_ww = 0;
13584  PyArrayObject *__pyx_v_da_ww_dw = 0;
13585  PyArrayObject *__pyx_v_da_ww_dn = 0;
13586  PyArrayObject *__pyx_v_a_nn = 0;
13587  PyArrayObject *__pyx_v_da_nn_dw = 0;
13588  PyArrayObject *__pyx_v_da_nn_dn = 0;
13589  PyArrayObject *__pyx_v_grad_phi_w = 0;
13590  PyArrayObject *__pyx_v_grad_phi_n = 0;
13591  PyArrayObject *__pyx_v_dphi_w_w = 0;
13592  PyArrayObject *__pyx_v_dphi_w_n = 0;
13593  PyArrayObject *__pyx_v_dphi_n_w = 0;
13594  PyArrayObject *__pyx_v_dphi_n_n = 0;
13595  PyArrayObject *__pyx_v_s_w = 0;
13596  PyArrayObject *__pyx_v_psi_w = 0;
13597  PyArrayObject *__pyx_v_psi_n = 0;
13598  PyArrayObject *__pyx_v_dpsi_n_dsw = 0;
13599  PyArrayObject *__pyx_v_dpsi_n_dpsiw = 0;
13600  PyArrayObject *__pyx_v_v = 0;
13601  PyArrayObject *__pyx_v_grad_v = 0;
13602  PyArrayObject *__pyx_v_penalty_w = 0;
13603  PyArrayObject *__pyx_v_penalty_n = 0;
13604  PyArrayObject *__pyx_v_fluxJacobian_ww = 0;
13605  PyArrayObject *__pyx_v_fluxJacobian_wn = 0;
13606  PyArrayObject *__pyx_v_fluxJacobian_nw = 0;
13607  PyArrayObject *__pyx_v_fluxJacobian_nn = 0;
13608  int __pyx_lineno = 0;
13609  const char *__pyx_filename = NULL;
13610  int __pyx_clineno = 0;
13611  PyObject *__pyx_r = 0;
13612  __Pyx_RefNannyDeclarations
13613  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd (wrapper)", 0);
13614  {
13615  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr_ww,&__pyx_n_s_colind_ww,&__pyx_n_s_rowptr_nn,&__pyx_n_s_colind_nn,&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_uw,&__pyx_n_s_isDOFBoundary_un,&__pyx_n_s_fluxBoundaryFlag_uw,&__pyx_n_s_fluxBoundaryFlag_un,&__pyx_n_s_n,&__pyx_n_s_a_ww,&__pyx_n_s_da_ww_dw,&__pyx_n_s_da_ww_dn,&__pyx_n_s_a_nn,&__pyx_n_s_da_nn_dw,&__pyx_n_s_da_nn_dn,&__pyx_n_s_grad_phi_w,&__pyx_n_s_grad_phi_n,&__pyx_n_s_dphi_w_w,&__pyx_n_s_dphi_w_n,&__pyx_n_s_dphi_n_w,&__pyx_n_s_dphi_n_n,&__pyx_n_s_s_w,&__pyx_n_s_psi_w,&__pyx_n_s_psi_n,&__pyx_n_s_dpsi_n_dsw,&__pyx_n_s_dpsi_n_dpsiw,&__pyx_n_s_v,&__pyx_n_s_grad_v,&__pyx_n_s_penalty_w,&__pyx_n_s_penalty_n,&__pyx_n_s_fluxJacobian_ww,&__pyx_n_s_fluxJacobian_wn,&__pyx_n_s_fluxJacobian_nw,&__pyx_n_s_fluxJacobian_nn,0};
13616  PyObject* values[38] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
13617  if (unlikely(__pyx_kwds)) {
13618  Py_ssize_t kw_args;
13619  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
13620  switch (pos_args) {
13621  case 38: values[37] = PyTuple_GET_ITEM(__pyx_args, 37);
13622  CYTHON_FALLTHROUGH;
13623  case 37: values[36] = PyTuple_GET_ITEM(__pyx_args, 36);
13624  CYTHON_FALLTHROUGH;
13625  case 36: values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
13626  CYTHON_FALLTHROUGH;
13627  case 35: values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
13628  CYTHON_FALLTHROUGH;
13629  case 34: values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
13630  CYTHON_FALLTHROUGH;
13631  case 33: values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
13632  CYTHON_FALLTHROUGH;
13633  case 32: values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
13634  CYTHON_FALLTHROUGH;
13635  case 31: values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
13636  CYTHON_FALLTHROUGH;
13637  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
13638  CYTHON_FALLTHROUGH;
13639  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
13640  CYTHON_FALLTHROUGH;
13641  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
13642  CYTHON_FALLTHROUGH;
13643  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
13644  CYTHON_FALLTHROUGH;
13645  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
13646  CYTHON_FALLTHROUGH;
13647  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
13648  CYTHON_FALLTHROUGH;
13649  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
13650  CYTHON_FALLTHROUGH;
13651  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
13652  CYTHON_FALLTHROUGH;
13653  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
13654  CYTHON_FALLTHROUGH;
13655  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
13656  CYTHON_FALLTHROUGH;
13657  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
13658  CYTHON_FALLTHROUGH;
13659  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
13660  CYTHON_FALLTHROUGH;
13661  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
13662  CYTHON_FALLTHROUGH;
13663  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
13664  CYTHON_FALLTHROUGH;
13665  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
13666  CYTHON_FALLTHROUGH;
13667  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
13668  CYTHON_FALLTHROUGH;
13669  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
13670  CYTHON_FALLTHROUGH;
13671  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
13672  CYTHON_FALLTHROUGH;
13673  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
13674  CYTHON_FALLTHROUGH;
13675  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
13676  CYTHON_FALLTHROUGH;
13677  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
13678  CYTHON_FALLTHROUGH;
13679  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
13680  CYTHON_FALLTHROUGH;
13681  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
13682  CYTHON_FALLTHROUGH;
13683  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
13684  CYTHON_FALLTHROUGH;
13685  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
13686  CYTHON_FALLTHROUGH;
13687  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
13688  CYTHON_FALLTHROUGH;
13689  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
13690  CYTHON_FALLTHROUGH;
13691  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
13692  CYTHON_FALLTHROUGH;
13693  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13694  CYTHON_FALLTHROUGH;
13695  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13696  CYTHON_FALLTHROUGH;
13697  case 0: break;
13698  default: goto __pyx_L5_argtuple_error;
13699  }
13700  kw_args = PyDict_Size(__pyx_kwds);
13701  switch (pos_args) {
13702  case 0:
13703  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr_ww)) != 0)) kw_args--;
13704  else goto __pyx_L5_argtuple_error;
13705  CYTHON_FALLTHROUGH;
13706  case 1:
13707  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind_ww)) != 0)) kw_args--;
13708  else {
13709  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 1); __PYX_ERR(0, 3613, __pyx_L3_error)
13710  }
13711  CYTHON_FALLTHROUGH;
13712  case 2:
13713  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr_nn)) != 0)) kw_args--;
13714  else {
13715  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 2); __PYX_ERR(0, 3613, __pyx_L3_error)
13716  }
13717  CYTHON_FALLTHROUGH;
13718  case 3:
13719  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind_nn)) != 0)) kw_args--;
13720  else {
13721  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 3); __PYX_ERR(0, 3613, __pyx_L3_error)
13722  }
13723  CYTHON_FALLTHROUGH;
13724  case 4:
13725  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
13726  else {
13727  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 4); __PYX_ERR(0, 3613, __pyx_L3_error)
13728  }
13729  CYTHON_FALLTHROUGH;
13730  case 5:
13731  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
13732  else {
13733  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 5); __PYX_ERR(0, 3613, __pyx_L3_error)
13734  }
13735  CYTHON_FALLTHROUGH;
13736  case 6:
13737  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
13738  else {
13739  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 6); __PYX_ERR(0, 3613, __pyx_L3_error)
13740  }
13741  CYTHON_FALLTHROUGH;
13742  case 7:
13743  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
13744  else {
13745  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 7); __PYX_ERR(0, 3613, __pyx_L3_error)
13746  }
13747  CYTHON_FALLTHROUGH;
13748  case 8:
13749  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_uw)) != 0)) kw_args--;
13750  else {
13751  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 8); __PYX_ERR(0, 3613, __pyx_L3_error)
13752  }
13753  CYTHON_FALLTHROUGH;
13754  case 9:
13755  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_un)) != 0)) kw_args--;
13756  else {
13757  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 9); __PYX_ERR(0, 3613, __pyx_L3_error)
13758  }
13759  CYTHON_FALLTHROUGH;
13760  case 10:
13761  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_uw)) != 0)) kw_args--;
13762  else {
13763  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 10); __PYX_ERR(0, 3613, __pyx_L3_error)
13764  }
13765  CYTHON_FALLTHROUGH;
13766  case 11:
13767  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_un)) != 0)) kw_args--;
13768  else {
13769  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 11); __PYX_ERR(0, 3613, __pyx_L3_error)
13770  }
13771  CYTHON_FALLTHROUGH;
13772  case 12:
13773  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
13774  else {
13775  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 12); __PYX_ERR(0, 3613, __pyx_L3_error)
13776  }
13777  CYTHON_FALLTHROUGH;
13778  case 13:
13779  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_ww)) != 0)) kw_args--;
13780  else {
13781  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 13); __PYX_ERR(0, 3613, __pyx_L3_error)
13782  }
13783  CYTHON_FALLTHROUGH;
13784  case 14:
13785  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_ww_dw)) != 0)) kw_args--;
13786  else {
13787  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 14); __PYX_ERR(0, 3613, __pyx_L3_error)
13788  }
13789  CYTHON_FALLTHROUGH;
13790  case 15:
13791  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_ww_dn)) != 0)) kw_args--;
13792  else {
13793  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 15); __PYX_ERR(0, 3613, __pyx_L3_error)
13794  }
13795  CYTHON_FALLTHROUGH;
13796  case 16:
13797  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_nn)) != 0)) kw_args--;
13798  else {
13799  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 16); __PYX_ERR(0, 3613, __pyx_L3_error)
13800  }
13801  CYTHON_FALLTHROUGH;
13802  case 17:
13803  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_nn_dw)) != 0)) kw_args--;
13804  else {
13805  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 17); __PYX_ERR(0, 3613, __pyx_L3_error)
13806  }
13807  CYTHON_FALLTHROUGH;
13808  case 18:
13809  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_nn_dn)) != 0)) kw_args--;
13810  else {
13811  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 18); __PYX_ERR(0, 3613, __pyx_L3_error)
13812  }
13813  CYTHON_FALLTHROUGH;
13814  case 19:
13815  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_w)) != 0)) kw_args--;
13816  else {
13817  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 19); __PYX_ERR(0, 3613, __pyx_L3_error)
13818  }
13819  CYTHON_FALLTHROUGH;
13820  case 20:
13821  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_n)) != 0)) kw_args--;
13822  else {
13823  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 20); __PYX_ERR(0, 3613, __pyx_L3_error)
13824  }
13825  CYTHON_FALLTHROUGH;
13826  case 21:
13827  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_w_w)) != 0)) kw_args--;
13828  else {
13829  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 21); __PYX_ERR(0, 3613, __pyx_L3_error)
13830  }
13831  CYTHON_FALLTHROUGH;
13832  case 22:
13833  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_w_n)) != 0)) kw_args--;
13834  else {
13835  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 22); __PYX_ERR(0, 3613, __pyx_L3_error)
13836  }
13837  CYTHON_FALLTHROUGH;
13838  case 23:
13839  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_n_w)) != 0)) kw_args--;
13840  else {
13841  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 23); __PYX_ERR(0, 3613, __pyx_L3_error)
13842  }
13843  CYTHON_FALLTHROUGH;
13844  case 24:
13845  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_n_n)) != 0)) kw_args--;
13846  else {
13847  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 24); __PYX_ERR(0, 3613, __pyx_L3_error)
13848  }
13849  CYTHON_FALLTHROUGH;
13850  case 25:
13851  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_s_w)) != 0)) kw_args--;
13852  else {
13853  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 25); __PYX_ERR(0, 3613, __pyx_L3_error)
13854  }
13855  CYTHON_FALLTHROUGH;
13856  case 26:
13857  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_w)) != 0)) kw_args--;
13858  else {
13859  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 26); __PYX_ERR(0, 3613, __pyx_L3_error)
13860  }
13861  CYTHON_FALLTHROUGH;
13862  case 27:
13863  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_n)) != 0)) kw_args--;
13864  else {
13865  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 27); __PYX_ERR(0, 3613, __pyx_L3_error)
13866  }
13867  CYTHON_FALLTHROUGH;
13868  case 28:
13869  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dpsi_n_dsw)) != 0)) kw_args--;
13870  else {
13871  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 28); __PYX_ERR(0, 3613, __pyx_L3_error)
13872  }
13873  CYTHON_FALLTHROUGH;
13874  case 29:
13875  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dpsi_n_dpsiw)) != 0)) kw_args--;
13876  else {
13877  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 29); __PYX_ERR(0, 3613, __pyx_L3_error)
13878  }
13879  CYTHON_FALLTHROUGH;
13880  case 30:
13881  if (likely((values[30] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
13882  else {
13883  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 30); __PYX_ERR(0, 3613, __pyx_L3_error)
13884  }
13885  CYTHON_FALLTHROUGH;
13886  case 31:
13887  if (likely((values[31] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
13888  else {
13889  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 31); __PYX_ERR(0, 3613, __pyx_L3_error)
13890  }
13891  CYTHON_FALLTHROUGH;
13892  case 32:
13893  if (likely((values[32] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_w)) != 0)) kw_args--;
13894  else {
13895  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 32); __PYX_ERR(0, 3613, __pyx_L3_error)
13896  }
13897  CYTHON_FALLTHROUGH;
13898  case 33:
13899  if (likely((values[33] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_n)) != 0)) kw_args--;
13900  else {
13901  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 33); __PYX_ERR(0, 3613, __pyx_L3_error)
13902  }
13903  CYTHON_FALLTHROUGH;
13904  case 34:
13905  if (likely((values[34] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_ww)) != 0)) kw_args--;
13906  else {
13907  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 34); __PYX_ERR(0, 3613, __pyx_L3_error)
13908  }
13909  CYTHON_FALLTHROUGH;
13910  case 35:
13911  if (likely((values[35] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_wn)) != 0)) kw_args--;
13912  else {
13913  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 35); __PYX_ERR(0, 3613, __pyx_L3_error)
13914  }
13915  CYTHON_FALLTHROUGH;
13916  case 36:
13917  if (likely((values[36] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_nw)) != 0)) kw_args--;
13918  else {
13919  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 36); __PYX_ERR(0, 3613, __pyx_L3_error)
13920  }
13921  CYTHON_FALLTHROUGH;
13922  case 37:
13923  if (likely((values[37] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_nn)) != 0)) kw_args--;
13924  else {
13925  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, 37); __PYX_ERR(0, 3613, __pyx_L3_error)
13926  }
13927  }
13928  if (unlikely(kw_args > 0)) {
13929  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd") < 0)) __PYX_ERR(0, 3613, __pyx_L3_error)
13930  }
13931  } else if (PyTuple_GET_SIZE(__pyx_args) != 38) {
13932  goto __pyx_L5_argtuple_error;
13933  } else {
13934  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13935  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13936  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
13937  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
13938  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
13939  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
13940  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
13941  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
13942  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
13943  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
13944  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
13945  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
13946  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
13947  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
13948  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
13949  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
13950  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
13951  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
13952  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
13953  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
13954  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
13955  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
13956  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
13957  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
13958  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
13959  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
13960  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
13961  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
13962  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
13963  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
13964  values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
13965  values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
13966  values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
13967  values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
13968  values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
13969  values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
13970  values[36] = PyTuple_GET_ITEM(__pyx_args, 36);
13971  values[37] = PyTuple_GET_ITEM(__pyx_args, 37);
13972  }
13973  __pyx_v_rowptr_ww = ((PyArrayObject *)values[0]);
13974  __pyx_v_colind_ww = ((PyArrayObject *)values[1]);
13975  __pyx_v_rowptr_nn = ((PyArrayObject *)values[2]);
13976  __pyx_v_colind_nn = ((PyArrayObject *)values[3]);
13977  __pyx_v_l2g = ((PyArrayObject *)values[4]);
13978  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[5]);
13979  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[6]);
13980  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[7]);
13981  __pyx_v_isDOFBoundary_uw = ((PyArrayObject *)values[8]);
13982  __pyx_v_isDOFBoundary_un = ((PyArrayObject *)values[9]);
13983  __pyx_v_fluxBoundaryFlag_uw = __Pyx_PyInt_As_int(values[10]); if (unlikely((__pyx_v_fluxBoundaryFlag_uw == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3623, __pyx_L3_error)
13984  __pyx_v_fluxBoundaryFlag_un = __Pyx_PyInt_As_int(values[11]); if (unlikely((__pyx_v_fluxBoundaryFlag_un == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3624, __pyx_L3_error)
13985  __pyx_v_n = ((PyArrayObject *)values[12]);
13986  __pyx_v_a_ww = ((PyArrayObject *)values[13]);
13987  __pyx_v_da_ww_dw = ((PyArrayObject *)values[14]);
13988  __pyx_v_da_ww_dn = ((PyArrayObject *)values[15]);
13989  __pyx_v_a_nn = ((PyArrayObject *)values[16]);
13990  __pyx_v_da_nn_dw = ((PyArrayObject *)values[17]);
13991  __pyx_v_da_nn_dn = ((PyArrayObject *)values[18]);
13992  __pyx_v_grad_phi_w = ((PyArrayObject *)values[19]);
13993  __pyx_v_grad_phi_n = ((PyArrayObject *)values[20]);
13994  __pyx_v_dphi_w_w = ((PyArrayObject *)values[21]);
13995  __pyx_v_dphi_w_n = ((PyArrayObject *)values[22]);
13996  __pyx_v_dphi_n_w = ((PyArrayObject *)values[23]);
13997  __pyx_v_dphi_n_n = ((PyArrayObject *)values[24]);
13998  __pyx_v_s_w = ((PyArrayObject *)values[25]);
13999  __pyx_v_psi_w = ((PyArrayObject *)values[26]);
14000  __pyx_v_psi_n = ((PyArrayObject *)values[27]);
14001  __pyx_v_dpsi_n_dsw = ((PyArrayObject *)values[28]);
14002  __pyx_v_dpsi_n_dpsiw = ((PyArrayObject *)values[29]);
14003  __pyx_v_v = ((PyArrayObject *)values[30]);
14004  __pyx_v_grad_v = ((PyArrayObject *)values[31]);
14005  __pyx_v_penalty_w = ((PyArrayObject *)values[32]);
14006  __pyx_v_penalty_n = ((PyArrayObject *)values[33]);
14007  __pyx_v_fluxJacobian_ww = ((PyArrayObject *)values[34]);
14008  __pyx_v_fluxJacobian_wn = ((PyArrayObject *)values[35]);
14009  __pyx_v_fluxJacobian_nw = ((PyArrayObject *)values[36]);
14010  __pyx_v_fluxJacobian_nn = ((PyArrayObject *)values[37]);
14011  }
14012  goto __pyx_L4_argument_unpacking_done;
14013  __pyx_L5_argtuple_error:;
14014  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 1, 38, 38, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3613, __pyx_L3_error)
14015  __pyx_L3_error:;
14016  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
14017  __Pyx_RefNannyFinishContext();
14018  return NULL;
14019  __pyx_L4_argument_unpacking_done:;
14020  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr_ww), __pyx_ptype_5numpy_ndarray, 1, "rowptr_ww", 0))) __PYX_ERR(0, 3613, __pyx_L1_error)
14021  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind_ww), __pyx_ptype_5numpy_ndarray, 1, "colind_ww", 0))) __PYX_ERR(0, 3614, __pyx_L1_error)
14022  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr_nn), __pyx_ptype_5numpy_ndarray, 1, "rowptr_nn", 0))) __PYX_ERR(0, 3615, __pyx_L1_error)
14023  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind_nn), __pyx_ptype_5numpy_ndarray, 1, "colind_nn", 0))) __PYX_ERR(0, 3616, __pyx_L1_error)
14024  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 3617, __pyx_L1_error)
14025  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 3618, __pyx_L1_error)
14026  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3619, __pyx_L1_error)
14027  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3620, __pyx_L1_error)
14028  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_uw), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_uw", 0))) __PYX_ERR(0, 3621, __pyx_L1_error)
14029  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_un), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_un", 0))) __PYX_ERR(0, 3622, __pyx_L1_error)
14030  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3625, __pyx_L1_error)
14031  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_ww), __pyx_ptype_5numpy_ndarray, 1, "a_ww", 0))) __PYX_ERR(0, 3626, __pyx_L1_error)
14032  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_ww_dw), __pyx_ptype_5numpy_ndarray, 1, "da_ww_dw", 0))) __PYX_ERR(0, 3627, __pyx_L1_error)
14033  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_ww_dn), __pyx_ptype_5numpy_ndarray, 1, "da_ww_dn", 0))) __PYX_ERR(0, 3628, __pyx_L1_error)
14034  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_nn), __pyx_ptype_5numpy_ndarray, 1, "a_nn", 0))) __PYX_ERR(0, 3629, __pyx_L1_error)
14035  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_nn_dw), __pyx_ptype_5numpy_ndarray, 1, "da_nn_dw", 0))) __PYX_ERR(0, 3630, __pyx_L1_error)
14036  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_nn_dn), __pyx_ptype_5numpy_ndarray, 1, "da_nn_dn", 0))) __PYX_ERR(0, 3631, __pyx_L1_error)
14037  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_w", 0))) __PYX_ERR(0, 3632, __pyx_L1_error)
14038  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_n), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_n", 0))) __PYX_ERR(0, 3633, __pyx_L1_error)
14039  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_w_w), __pyx_ptype_5numpy_ndarray, 1, "dphi_w_w", 0))) __PYX_ERR(0, 3634, __pyx_L1_error)
14040  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_w_n), __pyx_ptype_5numpy_ndarray, 1, "dphi_w_n", 0))) __PYX_ERR(0, 3635, __pyx_L1_error)
14041  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_n_w), __pyx_ptype_5numpy_ndarray, 1, "dphi_n_w", 0))) __PYX_ERR(0, 3636, __pyx_L1_error)
14042  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_n_n), __pyx_ptype_5numpy_ndarray, 1, "dphi_n_n", 0))) __PYX_ERR(0, 3637, __pyx_L1_error)
14043  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_s_w), __pyx_ptype_5numpy_ndarray, 1, "s_w", 0))) __PYX_ERR(0, 3638, __pyx_L1_error)
14044  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_w), __pyx_ptype_5numpy_ndarray, 1, "psi_w", 0))) __PYX_ERR(0, 3639, __pyx_L1_error)
14045  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_n), __pyx_ptype_5numpy_ndarray, 1, "psi_n", 0))) __PYX_ERR(0, 3640, __pyx_L1_error)
14046  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpsi_n_dsw), __pyx_ptype_5numpy_ndarray, 1, "dpsi_n_dsw", 0))) __PYX_ERR(0, 3641, __pyx_L1_error)
14047  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpsi_n_dpsiw), __pyx_ptype_5numpy_ndarray, 1, "dpsi_n_dpsiw", 0))) __PYX_ERR(0, 3642, __pyx_L1_error)
14048  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 3643, __pyx_L1_error)
14049  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 3644, __pyx_L1_error)
14050  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_w), __pyx_ptype_5numpy_ndarray, 1, "penalty_w", 0))) __PYX_ERR(0, 3645, __pyx_L1_error)
14051  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_n), __pyx_ptype_5numpy_ndarray, 1, "penalty_n", 0))) __PYX_ERR(0, 3646, __pyx_L1_error)
14052  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_ww), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_ww", 0))) __PYX_ERR(0, 3647, __pyx_L1_error)
14053  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_wn), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_wn", 0))) __PYX_ERR(0, 3648, __pyx_L1_error)
14054  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_nw), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_nw", 0))) __PYX_ERR(0, 3649, __pyx_L1_error)
14055  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_nn), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_nn", 0))) __PYX_ERR(0, 3650, __pyx_L1_error)
14056  __pyx_r = __pyx_pf_14cnumericalFlux_74calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd(__pyx_self, __pyx_v_rowptr_ww, __pyx_v_colind_ww, __pyx_v_rowptr_nn, __pyx_v_colind_nn, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_uw, __pyx_v_isDOFBoundary_un, __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, __pyx_v_n, __pyx_v_a_ww, __pyx_v_da_ww_dw, __pyx_v_da_ww_dn, __pyx_v_a_nn, __pyx_v_da_nn_dw, __pyx_v_da_nn_dn, __pyx_v_grad_phi_w, __pyx_v_grad_phi_n, __pyx_v_dphi_w_w, __pyx_v_dphi_w_n, __pyx_v_dphi_n_w, __pyx_v_dphi_n_n, __pyx_v_s_w, __pyx_v_psi_w, __pyx_v_psi_n, __pyx_v_dpsi_n_dsw, __pyx_v_dpsi_n_dpsiw, __pyx_v_v, __pyx_v_grad_v, __pyx_v_penalty_w, __pyx_v_penalty_n, __pyx_v_fluxJacobian_ww, __pyx_v_fluxJacobian_wn, __pyx_v_fluxJacobian_nw, __pyx_v_fluxJacobian_nn);
14057 
14058  /* function exit code */
14059  goto __pyx_L0;
14060  __pyx_L1_error:;
14061  __pyx_r = NULL;
14062  __pyx_L0:;
14063  __Pyx_RefNannyFinishContext();
14064  return __pyx_r;
14065 }
14066 
14067 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) {
14068  PyObject *__pyx_r = NULL;
14069  __Pyx_RefNannyDeclarations
14070  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd", 0);
14071 
14072  /* "cnumericalFlux.pyx":3651
14073  * np.ndarray fluxJacobian_nw,
14074  * np.ndarray fluxJacobian_nn):
14075  * ccalculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
14076  * n.shape[1],
14077  * n.shape[2],
14078  */
14079  calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_l2g->dimensions[1]), ((int *)__pyx_v_rowptr_ww->data), ((int *)__pyx_v_colind_ww->data), ((int *)__pyx_v_rowptr_nn->data), ((int *)__pyx_v_colind_nn->data), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_uw->data), ((int *)__pyx_v_isDOFBoundary_un->data), __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, ((double *)__pyx_v_n->data), ((double *)__pyx_v_a_ww->data), ((double *)__pyx_v_da_ww_dw->data), ((double *)__pyx_v_da_ww_dn->data), ((double *)__pyx_v_a_nn->data), ((double *)__pyx_v_da_nn_dw->data), ((double *)__pyx_v_da_nn_dn->data), ((double *)__pyx_v_grad_phi_w->data), ((double *)__pyx_v_grad_phi_n->data), ((double *)__pyx_v_dphi_w_w->data), ((double *)__pyx_v_dphi_w_n->data), ((double *)__pyx_v_dphi_n_w->data), ((double *)__pyx_v_dphi_n_n->data), ((double *)__pyx_v_s_w->data), ((double *)__pyx_v_psi_w->data), ((double *)__pyx_v_psi_n->data), ((double *)__pyx_v_dpsi_n_dsw->data), ((double *)__pyx_v_dpsi_n_dpsiw->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_grad_v->data), ((double *)__pyx_v_penalty_w->data), ((double *)__pyx_v_penalty_n->data), ((double *)__pyx_v_fluxJacobian_ww->data), ((double *)__pyx_v_fluxJacobian_wn->data), ((double *)__pyx_v_fluxJacobian_nw->data), ((double *)__pyx_v_fluxJacobian_nn->data));
14080 
14081  /* "cnumericalFlux.pyx":3613
14082  * <double*> fluxJacobian_nw.data,
14083  * <double*> fluxJacobian_nn.data)
14084  * def calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
14085  * np.ndarray colind_ww,
14086  * np.ndarray rowptr_nn,
14087  */
14088 
14089  /* function exit code */
14090  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14091  __Pyx_XGIVEREF(__pyx_r);
14092  __Pyx_RefNannyFinishContext();
14093  return __pyx_r;
14094 }
14095 
14096 /* "cnumericalFlux.pyx":3693
14097  * <double*> fluxJacobian_nw.data,
14098  * <double*> fluxJacobian_nn.data)
14099  * def calculateGlobalExteriorNumericalFluxDarcyFCPP(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
14100  * np.ndarray elementBoundaryElements,
14101  * np.ndarray elementBoundaryLocalElementBoundaries,
14102  */
14103 
14104 /* Python wrapper */
14105 static PyObject *__pyx_pw_14cnumericalFlux_77calculateGlobalExteriorNumericalFluxDarcyFCPP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
14106 static PyMethodDef __pyx_mdef_14cnumericalFlux_77calculateGlobalExteriorNumericalFluxDarcyFCPP = {"calculateGlobalExteriorNumericalFluxDarcyFCPP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_77calculateGlobalExteriorNumericalFluxDarcyFCPP, METH_VARARGS|METH_KEYWORDS, 0};
14107 static PyObject *__pyx_pw_14cnumericalFlux_77calculateGlobalExteriorNumericalFluxDarcyFCPP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
14108  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
14109  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
14110  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
14111  PyArrayObject *__pyx_v_isDOFBoundary_uw = 0;
14112  PyArrayObject *__pyx_v_isDOFBoundary_un = 0;
14113  int __pyx_v_fluxBoundaryFlag_uw;
14114  int __pyx_v_fluxBoundaryFlag_un;
14115  PyArrayObject *__pyx_v_n = 0;
14116  PyArrayObject *__pyx_v_bc_a_ww = 0;
14117  PyArrayObject *__pyx_v_bc_a_nn = 0;
14118  PyArrayObject *__pyx_v_bc_grad_phi_w = 0;
14119  PyArrayObject *__pyx_v_bc_grad_phi_n = 0;
14120  PyArrayObject *__pyx_v_bc_psi_w = 0;
14121  PyArrayObject *__pyx_v_bc_psi_c = 0;
14122  PyArrayObject *__pyx_v_bc_psi_n = 0;
14123  PyArrayObject *__pyx_v_a_ww = 0;
14124  PyArrayObject *__pyx_v_a_nn = 0;
14125  PyArrayObject *__pyx_v_grad_phi_w = 0;
14126  PyArrayObject *__pyx_v_grad_phi_n = 0;
14127  PyArrayObject *__pyx_v_psi_w = 0;
14128  PyArrayObject *__pyx_v_psi_c = 0;
14129  PyArrayObject *__pyx_v_psi_n = 0;
14130  PyArrayObject *__pyx_v_penalty_w = 0;
14131  PyArrayObject *__pyx_v_penalty_n = 0;
14132  PyArrayObject *__pyx_v_diffusiveFlux_ww = 0;
14133  PyArrayObject *__pyx_v_diffusiveFlux_nn = 0;
14134  int __pyx_lineno = 0;
14135  const char *__pyx_filename = NULL;
14136  int __pyx_clineno = 0;
14137  PyObject *__pyx_r = 0;
14138  __Pyx_RefNannyDeclarations
14139  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCPP (wrapper)", 0);
14140  {
14141  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_uw,&__pyx_n_s_isDOFBoundary_un,&__pyx_n_s_fluxBoundaryFlag_uw,&__pyx_n_s_fluxBoundaryFlag_un,&__pyx_n_s_n,&__pyx_n_s_bc_a_ww,&__pyx_n_s_bc_a_nn,&__pyx_n_s_bc_grad_phi_w,&__pyx_n_s_bc_grad_phi_n,&__pyx_n_s_bc_psi_w,&__pyx_n_s_bc_psi_c,&__pyx_n_s_bc_psi_n,&__pyx_n_s_a_ww,&__pyx_n_s_a_nn,&__pyx_n_s_grad_phi_w,&__pyx_n_s_grad_phi_n,&__pyx_n_s_psi_w,&__pyx_n_s_psi_c,&__pyx_n_s_psi_n,&__pyx_n_s_penalty_w,&__pyx_n_s_penalty_n,&__pyx_n_s_diffusiveFlux_ww,&__pyx_n_s_diffusiveFlux_nn,0};
14142  PyObject* values[26] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
14143  if (unlikely(__pyx_kwds)) {
14144  Py_ssize_t kw_args;
14145  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
14146  switch (pos_args) {
14147  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
14148  CYTHON_FALLTHROUGH;
14149  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
14150  CYTHON_FALLTHROUGH;
14151  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
14152  CYTHON_FALLTHROUGH;
14153  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
14154  CYTHON_FALLTHROUGH;
14155  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
14156  CYTHON_FALLTHROUGH;
14157  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
14158  CYTHON_FALLTHROUGH;
14159  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
14160  CYTHON_FALLTHROUGH;
14161  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
14162  CYTHON_FALLTHROUGH;
14163  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
14164  CYTHON_FALLTHROUGH;
14165  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
14166  CYTHON_FALLTHROUGH;
14167  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
14168  CYTHON_FALLTHROUGH;
14169  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
14170  CYTHON_FALLTHROUGH;
14171  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
14172  CYTHON_FALLTHROUGH;
14173  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
14174  CYTHON_FALLTHROUGH;
14175  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
14176  CYTHON_FALLTHROUGH;
14177  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
14178  CYTHON_FALLTHROUGH;
14179  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
14180  CYTHON_FALLTHROUGH;
14181  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
14182  CYTHON_FALLTHROUGH;
14183  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
14184  CYTHON_FALLTHROUGH;
14185  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
14186  CYTHON_FALLTHROUGH;
14187  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
14188  CYTHON_FALLTHROUGH;
14189  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
14190  CYTHON_FALLTHROUGH;
14191  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
14192  CYTHON_FALLTHROUGH;
14193  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
14194  CYTHON_FALLTHROUGH;
14195  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14196  CYTHON_FALLTHROUGH;
14197  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14198  CYTHON_FALLTHROUGH;
14199  case 0: break;
14200  default: goto __pyx_L5_argtuple_error;
14201  }
14202  kw_args = PyDict_Size(__pyx_kwds);
14203  switch (pos_args) {
14204  case 0:
14205  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
14206  else goto __pyx_L5_argtuple_error;
14207  CYTHON_FALLTHROUGH;
14208  case 1:
14209  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
14210  else {
14211  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 1); __PYX_ERR(0, 3693, __pyx_L3_error)
14212  }
14213  CYTHON_FALLTHROUGH;
14214  case 2:
14215  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
14216  else {
14217  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 2); __PYX_ERR(0, 3693, __pyx_L3_error)
14218  }
14219  CYTHON_FALLTHROUGH;
14220  case 3:
14221  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_uw)) != 0)) kw_args--;
14222  else {
14223  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 3); __PYX_ERR(0, 3693, __pyx_L3_error)
14224  }
14225  CYTHON_FALLTHROUGH;
14226  case 4:
14227  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_un)) != 0)) kw_args--;
14228  else {
14229  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 4); __PYX_ERR(0, 3693, __pyx_L3_error)
14230  }
14231  CYTHON_FALLTHROUGH;
14232  case 5:
14233  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_uw)) != 0)) kw_args--;
14234  else {
14235  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 5); __PYX_ERR(0, 3693, __pyx_L3_error)
14236  }
14237  CYTHON_FALLTHROUGH;
14238  case 6:
14239  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_un)) != 0)) kw_args--;
14240  else {
14241  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 6); __PYX_ERR(0, 3693, __pyx_L3_error)
14242  }
14243  CYTHON_FALLTHROUGH;
14244  case 7:
14245  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
14246  else {
14247  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 7); __PYX_ERR(0, 3693, __pyx_L3_error)
14248  }
14249  CYTHON_FALLTHROUGH;
14250  case 8:
14251  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a_ww)) != 0)) kw_args--;
14252  else {
14253  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 8); __PYX_ERR(0, 3693, __pyx_L3_error)
14254  }
14255  CYTHON_FALLTHROUGH;
14256  case 9:
14257  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a_nn)) != 0)) kw_args--;
14258  else {
14259  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 9); __PYX_ERR(0, 3693, __pyx_L3_error)
14260  }
14261  CYTHON_FALLTHROUGH;
14262  case 10:
14263  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi_w)) != 0)) kw_args--;
14264  else {
14265  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 10); __PYX_ERR(0, 3693, __pyx_L3_error)
14266  }
14267  CYTHON_FALLTHROUGH;
14268  case 11:
14269  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi_n)) != 0)) kw_args--;
14270  else {
14271  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 11); __PYX_ERR(0, 3693, __pyx_L3_error)
14272  }
14273  CYTHON_FALLTHROUGH;
14274  case 12:
14275  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psi_w)) != 0)) kw_args--;
14276  else {
14277  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 12); __PYX_ERR(0, 3693, __pyx_L3_error)
14278  }
14279  CYTHON_FALLTHROUGH;
14280  case 13:
14281  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psi_c)) != 0)) kw_args--;
14282  else {
14283  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 13); __PYX_ERR(0, 3693, __pyx_L3_error)
14284  }
14285  CYTHON_FALLTHROUGH;
14286  case 14:
14287  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psi_n)) != 0)) kw_args--;
14288  else {
14289  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 14); __PYX_ERR(0, 3693, __pyx_L3_error)
14290  }
14291  CYTHON_FALLTHROUGH;
14292  case 15:
14293  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_ww)) != 0)) kw_args--;
14294  else {
14295  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 15); __PYX_ERR(0, 3693, __pyx_L3_error)
14296  }
14297  CYTHON_FALLTHROUGH;
14298  case 16:
14299  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_nn)) != 0)) kw_args--;
14300  else {
14301  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 16); __PYX_ERR(0, 3693, __pyx_L3_error)
14302  }
14303  CYTHON_FALLTHROUGH;
14304  case 17:
14305  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_w)) != 0)) kw_args--;
14306  else {
14307  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 17); __PYX_ERR(0, 3693, __pyx_L3_error)
14308  }
14309  CYTHON_FALLTHROUGH;
14310  case 18:
14311  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_n)) != 0)) kw_args--;
14312  else {
14313  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 18); __PYX_ERR(0, 3693, __pyx_L3_error)
14314  }
14315  CYTHON_FALLTHROUGH;
14316  case 19:
14317  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_w)) != 0)) kw_args--;
14318  else {
14319  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 19); __PYX_ERR(0, 3693, __pyx_L3_error)
14320  }
14321  CYTHON_FALLTHROUGH;
14322  case 20:
14323  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_c)) != 0)) kw_args--;
14324  else {
14325  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 20); __PYX_ERR(0, 3693, __pyx_L3_error)
14326  }
14327  CYTHON_FALLTHROUGH;
14328  case 21:
14329  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_n)) != 0)) kw_args--;
14330  else {
14331  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 21); __PYX_ERR(0, 3693, __pyx_L3_error)
14332  }
14333  CYTHON_FALLTHROUGH;
14334  case 22:
14335  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_w)) != 0)) kw_args--;
14336  else {
14337  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 22); __PYX_ERR(0, 3693, __pyx_L3_error)
14338  }
14339  CYTHON_FALLTHROUGH;
14340  case 23:
14341  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_n)) != 0)) kw_args--;
14342  else {
14343  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 23); __PYX_ERR(0, 3693, __pyx_L3_error)
14344  }
14345  CYTHON_FALLTHROUGH;
14346  case 24:
14347  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux_ww)) != 0)) kw_args--;
14348  else {
14349  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 24); __PYX_ERR(0, 3693, __pyx_L3_error)
14350  }
14351  CYTHON_FALLTHROUGH;
14352  case 25:
14353  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux_nn)) != 0)) kw_args--;
14354  else {
14355  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, 25); __PYX_ERR(0, 3693, __pyx_L3_error)
14356  }
14357  }
14358  if (unlikely(kw_args > 0)) {
14359  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalFluxDarcyFCPP") < 0)) __PYX_ERR(0, 3693, __pyx_L3_error)
14360  }
14361  } else if (PyTuple_GET_SIZE(__pyx_args) != 26) {
14362  goto __pyx_L5_argtuple_error;
14363  } else {
14364  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14365  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14366  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
14367  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
14368  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
14369  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
14370  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
14371  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
14372  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
14373  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
14374  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
14375  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
14376  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
14377  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
14378  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
14379  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
14380  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
14381  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
14382  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
14383  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
14384  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
14385  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
14386  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
14387  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
14388  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
14389  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
14390  }
14391  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
14392  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
14393  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
14394  __pyx_v_isDOFBoundary_uw = ((PyArrayObject *)values[3]);
14395  __pyx_v_isDOFBoundary_un = ((PyArrayObject *)values[4]);
14396  __pyx_v_fluxBoundaryFlag_uw = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_fluxBoundaryFlag_uw == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3698, __pyx_L3_error)
14397  __pyx_v_fluxBoundaryFlag_un = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_fluxBoundaryFlag_un == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3699, __pyx_L3_error)
14398  __pyx_v_n = ((PyArrayObject *)values[7]);
14399  __pyx_v_bc_a_ww = ((PyArrayObject *)values[8]);
14400  __pyx_v_bc_a_nn = ((PyArrayObject *)values[9]);
14401  __pyx_v_bc_grad_phi_w = ((PyArrayObject *)values[10]);
14402  __pyx_v_bc_grad_phi_n = ((PyArrayObject *)values[11]);
14403  __pyx_v_bc_psi_w = ((PyArrayObject *)values[12]);
14404  __pyx_v_bc_psi_c = ((PyArrayObject *)values[13]);
14405  __pyx_v_bc_psi_n = ((PyArrayObject *)values[14]);
14406  __pyx_v_a_ww = ((PyArrayObject *)values[15]);
14407  __pyx_v_a_nn = ((PyArrayObject *)values[16]);
14408  __pyx_v_grad_phi_w = ((PyArrayObject *)values[17]);
14409  __pyx_v_grad_phi_n = ((PyArrayObject *)values[18]);
14410  __pyx_v_psi_w = ((PyArrayObject *)values[19]);
14411  __pyx_v_psi_c = ((PyArrayObject *)values[20]);
14412  __pyx_v_psi_n = ((PyArrayObject *)values[21]);
14413  __pyx_v_penalty_w = ((PyArrayObject *)values[22]);
14414  __pyx_v_penalty_n = ((PyArrayObject *)values[23]);
14415  __pyx_v_diffusiveFlux_ww = ((PyArrayObject *)values[24]);
14416  __pyx_v_diffusiveFlux_nn = ((PyArrayObject *)values[25]);
14417  }
14418  goto __pyx_L4_argument_unpacking_done;
14419  __pyx_L5_argtuple_error:;
14420  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP", 1, 26, 26, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3693, __pyx_L3_error)
14421  __pyx_L3_error:;
14422  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcyFCPP", __pyx_clineno, __pyx_lineno, __pyx_filename);
14423  __Pyx_RefNannyFinishContext();
14424  return NULL;
14425  __pyx_L4_argument_unpacking_done:;
14426  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 3693, __pyx_L1_error)
14427  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3694, __pyx_L1_error)
14428  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3695, __pyx_L1_error)
14429  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_uw), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_uw", 0))) __PYX_ERR(0, 3696, __pyx_L1_error)
14430  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_un), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_un", 0))) __PYX_ERR(0, 3697, __pyx_L1_error)
14431  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3700, __pyx_L1_error)
14432  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a_ww), __pyx_ptype_5numpy_ndarray, 1, "bc_a_ww", 0))) __PYX_ERR(0, 3701, __pyx_L1_error)
14433  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a_nn), __pyx_ptype_5numpy_ndarray, 1, "bc_a_nn", 0))) __PYX_ERR(0, 3702, __pyx_L1_error)
14434  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi_w", 0))) __PYX_ERR(0, 3703, __pyx_L1_error)
14435  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi_n), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi_n", 0))) __PYX_ERR(0, 3704, __pyx_L1_error)
14436  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psi_w), __pyx_ptype_5numpy_ndarray, 1, "bc_psi_w", 0))) __PYX_ERR(0, 3705, __pyx_L1_error)
14437  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psi_c), __pyx_ptype_5numpy_ndarray, 1, "bc_psi_c", 0))) __PYX_ERR(0, 3706, __pyx_L1_error)
14438  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psi_n), __pyx_ptype_5numpy_ndarray, 1, "bc_psi_n", 0))) __PYX_ERR(0, 3707, __pyx_L1_error)
14439  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_ww), __pyx_ptype_5numpy_ndarray, 1, "a_ww", 0))) __PYX_ERR(0, 3708, __pyx_L1_error)
14440  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_nn), __pyx_ptype_5numpy_ndarray, 1, "a_nn", 0))) __PYX_ERR(0, 3709, __pyx_L1_error)
14441  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_w", 0))) __PYX_ERR(0, 3710, __pyx_L1_error)
14442  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_n), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_n", 0))) __PYX_ERR(0, 3711, __pyx_L1_error)
14443  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_w), __pyx_ptype_5numpy_ndarray, 1, "psi_w", 0))) __PYX_ERR(0, 3712, __pyx_L1_error)
14444  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_c), __pyx_ptype_5numpy_ndarray, 1, "psi_c", 0))) __PYX_ERR(0, 3713, __pyx_L1_error)
14445  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_n), __pyx_ptype_5numpy_ndarray, 1, "psi_n", 0))) __PYX_ERR(0, 3714, __pyx_L1_error)
14446  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_w), __pyx_ptype_5numpy_ndarray, 1, "penalty_w", 0))) __PYX_ERR(0, 3715, __pyx_L1_error)
14447  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_n), __pyx_ptype_5numpy_ndarray, 1, "penalty_n", 0))) __PYX_ERR(0, 3716, __pyx_L1_error)
14448  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux_ww), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux_ww", 0))) __PYX_ERR(0, 3717, __pyx_L1_error)
14449  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux_nn), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux_nn", 0))) __PYX_ERR(0, 3718, __pyx_L1_error)
14450  __pyx_r = __pyx_pf_14cnumericalFlux_76calculateGlobalExteriorNumericalFluxDarcyFCPP(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_uw, __pyx_v_isDOFBoundary_un, __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, __pyx_v_n, __pyx_v_bc_a_ww, __pyx_v_bc_a_nn, __pyx_v_bc_grad_phi_w, __pyx_v_bc_grad_phi_n, __pyx_v_bc_psi_w, __pyx_v_bc_psi_c, __pyx_v_bc_psi_n, __pyx_v_a_ww, __pyx_v_a_nn, __pyx_v_grad_phi_w, __pyx_v_grad_phi_n, __pyx_v_psi_w, __pyx_v_psi_c, __pyx_v_psi_n, __pyx_v_penalty_w, __pyx_v_penalty_n, __pyx_v_diffusiveFlux_ww, __pyx_v_diffusiveFlux_nn);
14451 
14452  /* function exit code */
14453  goto __pyx_L0;
14454  __pyx_L1_error:;
14455  __pyx_r = NULL;
14456  __pyx_L0:;
14457  __Pyx_RefNannyFinishContext();
14458  return __pyx_r;
14459 }
14460 
14461 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) {
14462  PyObject *__pyx_r = NULL;
14463  __Pyx_RefNannyDeclarations
14464  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCPP", 0);
14465 
14466  /* "cnumericalFlux.pyx":3719
14467  * np.ndarray diffusiveFlux_ww,
14468  * np.ndarray diffusiveFlux_nn):
14469  * ccalculateGlobalExteriorNumericalFluxDarcyFCPP(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
14470  * n.shape[1],
14471  * n.shape[2],
14472  */
14473  calculateGlobalExteriorNumericalFluxDarcyFCPP((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_uw->data), ((int *)__pyx_v_isDOFBoundary_un->data), __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a_ww->data), ((double *)__pyx_v_bc_a_nn->data), ((double *)__pyx_v_bc_grad_phi_w->data), ((double *)__pyx_v_bc_grad_phi_n->data), ((double *)__pyx_v_bc_psi_w->data), ((double *)__pyx_v_bc_psi_c->data), ((double *)__pyx_v_bc_psi_n->data), ((double *)__pyx_v_a_ww->data), ((double *)__pyx_v_a_nn->data), ((double *)__pyx_v_grad_phi_w->data), ((double *)__pyx_v_grad_phi_n->data), ((double *)__pyx_v_psi_w->data), ((double *)__pyx_v_psi_c->data), ((double *)__pyx_v_psi_n->data), ((double *)__pyx_v_penalty_w->data), ((double *)__pyx_v_penalty_n->data), ((double *)__pyx_v_diffusiveFlux_ww->data), ((double *)__pyx_v_diffusiveFlux_nn->data));
14474 
14475  /* "cnumericalFlux.pyx":3693
14476  * <double*> fluxJacobian_nw.data,
14477  * <double*> fluxJacobian_nn.data)
14478  * def calculateGlobalExteriorNumericalFluxDarcyFCPP(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
14479  * np.ndarray elementBoundaryElements,
14480  * np.ndarray elementBoundaryLocalElementBoundaries,
14481  */
14482 
14483  /* function exit code */
14484  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14485  __Pyx_XGIVEREF(__pyx_r);
14486  __Pyx_RefNannyFinishContext();
14487  return __pyx_r;
14488 }
14489 
14490 /* "cnumericalFlux.pyx":3748
14491  * <double*> diffusiveFlux_ww.data,
14492  * <double*> diffusiveFlux_nn.data)
14493  * def calculateGlobalExteriorNumericalFluxDarcyFCPP_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
14494  * np.ndarray colind_ww,
14495  * np.ndarray rowptr_nn,
14496  */
14497 
14498 /* Python wrapper */
14499 static PyObject *__pyx_pw_14cnumericalFlux_79calculateGlobalExteriorNumericalFluxDarcyFCPP_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
14500 static PyMethodDef __pyx_mdef_14cnumericalFlux_79calculateGlobalExteriorNumericalFluxDarcyFCPP_sd = {"calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_79calculateGlobalExteriorNumericalFluxDarcyFCPP_sd, METH_VARARGS|METH_KEYWORDS, 0};
14501 static PyObject *__pyx_pw_14cnumericalFlux_79calculateGlobalExteriorNumericalFluxDarcyFCPP_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
14502  PyArrayObject *__pyx_v_rowptr_ww = 0;
14503  PyArrayObject *__pyx_v_colind_ww = 0;
14504  PyArrayObject *__pyx_v_rowptr_nn = 0;
14505  PyArrayObject *__pyx_v_colind_nn = 0;
14506  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
14507  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
14508  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
14509  PyArrayObject *__pyx_v_isDOFBoundary_uw = 0;
14510  PyArrayObject *__pyx_v_isDOFBoundary_un = 0;
14511  int __pyx_v_fluxBoundaryFlag_uw;
14512  int __pyx_v_fluxBoundaryFlag_un;
14513  PyArrayObject *__pyx_v_n = 0;
14514  PyArrayObject *__pyx_v_bc_a_ww = 0;
14515  PyArrayObject *__pyx_v_bc_a_nn = 0;
14516  PyArrayObject *__pyx_v_bc_grad_phi_w = 0;
14517  PyArrayObject *__pyx_v_bc_grad_phi_n = 0;
14518  PyArrayObject *__pyx_v_bc_psi_w = 0;
14519  PyArrayObject *__pyx_v_bc_psi_c = 0;
14520  PyArrayObject *__pyx_v_bc_psi_n = 0;
14521  PyArrayObject *__pyx_v_a_ww = 0;
14522  PyArrayObject *__pyx_v_a_nn = 0;
14523  PyArrayObject *__pyx_v_grad_phi_w = 0;
14524  PyArrayObject *__pyx_v_grad_phi_n = 0;
14525  PyArrayObject *__pyx_v_psi_w = 0;
14526  PyArrayObject *__pyx_v_psi_c = 0;
14527  PyArrayObject *__pyx_v_psi_n = 0;
14528  PyArrayObject *__pyx_v_penalty_w = 0;
14529  PyArrayObject *__pyx_v_penalty_n = 0;
14530  PyArrayObject *__pyx_v_diffusiveFlux_ww = 0;
14531  PyArrayObject *__pyx_v_diffusiveFlux_nn = 0;
14532  int __pyx_lineno = 0;
14533  const char *__pyx_filename = NULL;
14534  int __pyx_clineno = 0;
14535  PyObject *__pyx_r = 0;
14536  __Pyx_RefNannyDeclarations
14537  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd (wrapper)", 0);
14538  {
14539  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr_ww,&__pyx_n_s_colind_ww,&__pyx_n_s_rowptr_nn,&__pyx_n_s_colind_nn,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_uw,&__pyx_n_s_isDOFBoundary_un,&__pyx_n_s_fluxBoundaryFlag_uw,&__pyx_n_s_fluxBoundaryFlag_un,&__pyx_n_s_n,&__pyx_n_s_bc_a_ww,&__pyx_n_s_bc_a_nn,&__pyx_n_s_bc_grad_phi_w,&__pyx_n_s_bc_grad_phi_n,&__pyx_n_s_bc_psi_w,&__pyx_n_s_bc_psi_c,&__pyx_n_s_bc_psi_n,&__pyx_n_s_a_ww,&__pyx_n_s_a_nn,&__pyx_n_s_grad_phi_w,&__pyx_n_s_grad_phi_n,&__pyx_n_s_psi_w,&__pyx_n_s_psi_c,&__pyx_n_s_psi_n,&__pyx_n_s_penalty_w,&__pyx_n_s_penalty_n,&__pyx_n_s_diffusiveFlux_ww,&__pyx_n_s_diffusiveFlux_nn,0};
14540  PyObject* values[30] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
14541  if (unlikely(__pyx_kwds)) {
14542  Py_ssize_t kw_args;
14543  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
14544  switch (pos_args) {
14545  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
14546  CYTHON_FALLTHROUGH;
14547  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
14548  CYTHON_FALLTHROUGH;
14549  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
14550  CYTHON_FALLTHROUGH;
14551  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
14552  CYTHON_FALLTHROUGH;
14553  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
14554  CYTHON_FALLTHROUGH;
14555  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
14556  CYTHON_FALLTHROUGH;
14557  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
14558  CYTHON_FALLTHROUGH;
14559  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
14560  CYTHON_FALLTHROUGH;
14561  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
14562  CYTHON_FALLTHROUGH;
14563  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
14564  CYTHON_FALLTHROUGH;
14565  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
14566  CYTHON_FALLTHROUGH;
14567  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
14568  CYTHON_FALLTHROUGH;
14569  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
14570  CYTHON_FALLTHROUGH;
14571  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
14572  CYTHON_FALLTHROUGH;
14573  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
14574  CYTHON_FALLTHROUGH;
14575  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
14576  CYTHON_FALLTHROUGH;
14577  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
14578  CYTHON_FALLTHROUGH;
14579  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
14580  CYTHON_FALLTHROUGH;
14581  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
14582  CYTHON_FALLTHROUGH;
14583  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
14584  CYTHON_FALLTHROUGH;
14585  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
14586  CYTHON_FALLTHROUGH;
14587  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
14588  CYTHON_FALLTHROUGH;
14589  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
14590  CYTHON_FALLTHROUGH;
14591  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
14592  CYTHON_FALLTHROUGH;
14593  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
14594  CYTHON_FALLTHROUGH;
14595  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
14596  CYTHON_FALLTHROUGH;
14597  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
14598  CYTHON_FALLTHROUGH;
14599  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
14600  CYTHON_FALLTHROUGH;
14601  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14602  CYTHON_FALLTHROUGH;
14603  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14604  CYTHON_FALLTHROUGH;
14605  case 0: break;
14606  default: goto __pyx_L5_argtuple_error;
14607  }
14608  kw_args = PyDict_Size(__pyx_kwds);
14609  switch (pos_args) {
14610  case 0:
14611  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr_ww)) != 0)) kw_args--;
14612  else goto __pyx_L5_argtuple_error;
14613  CYTHON_FALLTHROUGH;
14614  case 1:
14615  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind_ww)) != 0)) kw_args--;
14616  else {
14617  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 1); __PYX_ERR(0, 3748, __pyx_L3_error)
14618  }
14619  CYTHON_FALLTHROUGH;
14620  case 2:
14621  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr_nn)) != 0)) kw_args--;
14622  else {
14623  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 2); __PYX_ERR(0, 3748, __pyx_L3_error)
14624  }
14625  CYTHON_FALLTHROUGH;
14626  case 3:
14627  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind_nn)) != 0)) kw_args--;
14628  else {
14629  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 3); __PYX_ERR(0, 3748, __pyx_L3_error)
14630  }
14631  CYTHON_FALLTHROUGH;
14632  case 4:
14633  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
14634  else {
14635  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 4); __PYX_ERR(0, 3748, __pyx_L3_error)
14636  }
14637  CYTHON_FALLTHROUGH;
14638  case 5:
14639  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
14640  else {
14641  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 5); __PYX_ERR(0, 3748, __pyx_L3_error)
14642  }
14643  CYTHON_FALLTHROUGH;
14644  case 6:
14645  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
14646  else {
14647  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 6); __PYX_ERR(0, 3748, __pyx_L3_error)
14648  }
14649  CYTHON_FALLTHROUGH;
14650  case 7:
14651  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_uw)) != 0)) kw_args--;
14652  else {
14653  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 7); __PYX_ERR(0, 3748, __pyx_L3_error)
14654  }
14655  CYTHON_FALLTHROUGH;
14656  case 8:
14657  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_un)) != 0)) kw_args--;
14658  else {
14659  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 8); __PYX_ERR(0, 3748, __pyx_L3_error)
14660  }
14661  CYTHON_FALLTHROUGH;
14662  case 9:
14663  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_uw)) != 0)) kw_args--;
14664  else {
14665  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 9); __PYX_ERR(0, 3748, __pyx_L3_error)
14666  }
14667  CYTHON_FALLTHROUGH;
14668  case 10:
14669  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_un)) != 0)) kw_args--;
14670  else {
14671  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 10); __PYX_ERR(0, 3748, __pyx_L3_error)
14672  }
14673  CYTHON_FALLTHROUGH;
14674  case 11:
14675  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
14676  else {
14677  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 11); __PYX_ERR(0, 3748, __pyx_L3_error)
14678  }
14679  CYTHON_FALLTHROUGH;
14680  case 12:
14681  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a_ww)) != 0)) kw_args--;
14682  else {
14683  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 12); __PYX_ERR(0, 3748, __pyx_L3_error)
14684  }
14685  CYTHON_FALLTHROUGH;
14686  case 13:
14687  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a_nn)) != 0)) kw_args--;
14688  else {
14689  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 13); __PYX_ERR(0, 3748, __pyx_L3_error)
14690  }
14691  CYTHON_FALLTHROUGH;
14692  case 14:
14693  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi_w)) != 0)) kw_args--;
14694  else {
14695  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 14); __PYX_ERR(0, 3748, __pyx_L3_error)
14696  }
14697  CYTHON_FALLTHROUGH;
14698  case 15:
14699  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi_n)) != 0)) kw_args--;
14700  else {
14701  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 15); __PYX_ERR(0, 3748, __pyx_L3_error)
14702  }
14703  CYTHON_FALLTHROUGH;
14704  case 16:
14705  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psi_w)) != 0)) kw_args--;
14706  else {
14707  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 16); __PYX_ERR(0, 3748, __pyx_L3_error)
14708  }
14709  CYTHON_FALLTHROUGH;
14710  case 17:
14711  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psi_c)) != 0)) kw_args--;
14712  else {
14713  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 17); __PYX_ERR(0, 3748, __pyx_L3_error)
14714  }
14715  CYTHON_FALLTHROUGH;
14716  case 18:
14717  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psi_n)) != 0)) kw_args--;
14718  else {
14719  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 18); __PYX_ERR(0, 3748, __pyx_L3_error)
14720  }
14721  CYTHON_FALLTHROUGH;
14722  case 19:
14723  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_ww)) != 0)) kw_args--;
14724  else {
14725  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 19); __PYX_ERR(0, 3748, __pyx_L3_error)
14726  }
14727  CYTHON_FALLTHROUGH;
14728  case 20:
14729  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_nn)) != 0)) kw_args--;
14730  else {
14731  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 20); __PYX_ERR(0, 3748, __pyx_L3_error)
14732  }
14733  CYTHON_FALLTHROUGH;
14734  case 21:
14735  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_w)) != 0)) kw_args--;
14736  else {
14737  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 21); __PYX_ERR(0, 3748, __pyx_L3_error)
14738  }
14739  CYTHON_FALLTHROUGH;
14740  case 22:
14741  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_n)) != 0)) kw_args--;
14742  else {
14743  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 22); __PYX_ERR(0, 3748, __pyx_L3_error)
14744  }
14745  CYTHON_FALLTHROUGH;
14746  case 23:
14747  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_w)) != 0)) kw_args--;
14748  else {
14749  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 23); __PYX_ERR(0, 3748, __pyx_L3_error)
14750  }
14751  CYTHON_FALLTHROUGH;
14752  case 24:
14753  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_c)) != 0)) kw_args--;
14754  else {
14755  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 24); __PYX_ERR(0, 3748, __pyx_L3_error)
14756  }
14757  CYTHON_FALLTHROUGH;
14758  case 25:
14759  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_n)) != 0)) kw_args--;
14760  else {
14761  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 25); __PYX_ERR(0, 3748, __pyx_L3_error)
14762  }
14763  CYTHON_FALLTHROUGH;
14764  case 26:
14765  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_w)) != 0)) kw_args--;
14766  else {
14767  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 26); __PYX_ERR(0, 3748, __pyx_L3_error)
14768  }
14769  CYTHON_FALLTHROUGH;
14770  case 27:
14771  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_n)) != 0)) kw_args--;
14772  else {
14773  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 27); __PYX_ERR(0, 3748, __pyx_L3_error)
14774  }
14775  CYTHON_FALLTHROUGH;
14776  case 28:
14777  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux_ww)) != 0)) kw_args--;
14778  else {
14779  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 28); __PYX_ERR(0, 3748, __pyx_L3_error)
14780  }
14781  CYTHON_FALLTHROUGH;
14782  case 29:
14783  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux_nn)) != 0)) kw_args--;
14784  else {
14785  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, 29); __PYX_ERR(0, 3748, __pyx_L3_error)
14786  }
14787  }
14788  if (unlikely(kw_args > 0)) {
14789  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalFluxDarcyFCPP_sd") < 0)) __PYX_ERR(0, 3748, __pyx_L3_error)
14790  }
14791  } else if (PyTuple_GET_SIZE(__pyx_args) != 30) {
14792  goto __pyx_L5_argtuple_error;
14793  } else {
14794  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14795  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14796  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
14797  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
14798  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
14799  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
14800  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
14801  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
14802  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
14803  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
14804  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
14805  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
14806  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
14807  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
14808  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
14809  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
14810  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
14811  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
14812  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
14813  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
14814  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
14815  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
14816  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
14817  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
14818  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
14819  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
14820  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
14821  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
14822  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
14823  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
14824  }
14825  __pyx_v_rowptr_ww = ((PyArrayObject *)values[0]);
14826  __pyx_v_colind_ww = ((PyArrayObject *)values[1]);
14827  __pyx_v_rowptr_nn = ((PyArrayObject *)values[2]);
14828  __pyx_v_colind_nn = ((PyArrayObject *)values[3]);
14829  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[4]);
14830  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[5]);
14831  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[6]);
14832  __pyx_v_isDOFBoundary_uw = ((PyArrayObject *)values[7]);
14833  __pyx_v_isDOFBoundary_un = ((PyArrayObject *)values[8]);
14834  __pyx_v_fluxBoundaryFlag_uw = __Pyx_PyInt_As_int(values[9]); if (unlikely((__pyx_v_fluxBoundaryFlag_uw == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3757, __pyx_L3_error)
14835  __pyx_v_fluxBoundaryFlag_un = __Pyx_PyInt_As_int(values[10]); if (unlikely((__pyx_v_fluxBoundaryFlag_un == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3758, __pyx_L3_error)
14836  __pyx_v_n = ((PyArrayObject *)values[11]);
14837  __pyx_v_bc_a_ww = ((PyArrayObject *)values[12]);
14838  __pyx_v_bc_a_nn = ((PyArrayObject *)values[13]);
14839  __pyx_v_bc_grad_phi_w = ((PyArrayObject *)values[14]);
14840  __pyx_v_bc_grad_phi_n = ((PyArrayObject *)values[15]);
14841  __pyx_v_bc_psi_w = ((PyArrayObject *)values[16]);
14842  __pyx_v_bc_psi_c = ((PyArrayObject *)values[17]);
14843  __pyx_v_bc_psi_n = ((PyArrayObject *)values[18]);
14844  __pyx_v_a_ww = ((PyArrayObject *)values[19]);
14845  __pyx_v_a_nn = ((PyArrayObject *)values[20]);
14846  __pyx_v_grad_phi_w = ((PyArrayObject *)values[21]);
14847  __pyx_v_grad_phi_n = ((PyArrayObject *)values[22]);
14848  __pyx_v_psi_w = ((PyArrayObject *)values[23]);
14849  __pyx_v_psi_c = ((PyArrayObject *)values[24]);
14850  __pyx_v_psi_n = ((PyArrayObject *)values[25]);
14851  __pyx_v_penalty_w = ((PyArrayObject *)values[26]);
14852  __pyx_v_penalty_n = ((PyArrayObject *)values[27]);
14853  __pyx_v_diffusiveFlux_ww = ((PyArrayObject *)values[28]);
14854  __pyx_v_diffusiveFlux_nn = ((PyArrayObject *)values[29]);
14855  }
14856  goto __pyx_L4_argument_unpacking_done;
14857  __pyx_L5_argtuple_error:;
14858  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 1, 30, 30, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3748, __pyx_L3_error)
14859  __pyx_L3_error:;
14860  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
14861  __Pyx_RefNannyFinishContext();
14862  return NULL;
14863  __pyx_L4_argument_unpacking_done:;
14864  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr_ww), __pyx_ptype_5numpy_ndarray, 1, "rowptr_ww", 0))) __PYX_ERR(0, 3748, __pyx_L1_error)
14865  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind_ww), __pyx_ptype_5numpy_ndarray, 1, "colind_ww", 0))) __PYX_ERR(0, 3749, __pyx_L1_error)
14866  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr_nn), __pyx_ptype_5numpy_ndarray, 1, "rowptr_nn", 0))) __PYX_ERR(0, 3750, __pyx_L1_error)
14867  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind_nn), __pyx_ptype_5numpy_ndarray, 1, "colind_nn", 0))) __PYX_ERR(0, 3751, __pyx_L1_error)
14868  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 3752, __pyx_L1_error)
14869  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3753, __pyx_L1_error)
14870  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3754, __pyx_L1_error)
14871  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_uw), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_uw", 0))) __PYX_ERR(0, 3755, __pyx_L1_error)
14872  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_un), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_un", 0))) __PYX_ERR(0, 3756, __pyx_L1_error)
14873  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3759, __pyx_L1_error)
14874  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a_ww), __pyx_ptype_5numpy_ndarray, 1, "bc_a_ww", 0))) __PYX_ERR(0, 3760, __pyx_L1_error)
14875  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a_nn), __pyx_ptype_5numpy_ndarray, 1, "bc_a_nn", 0))) __PYX_ERR(0, 3761, __pyx_L1_error)
14876  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi_w", 0))) __PYX_ERR(0, 3762, __pyx_L1_error)
14877  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi_n), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi_n", 0))) __PYX_ERR(0, 3763, __pyx_L1_error)
14878  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psi_w), __pyx_ptype_5numpy_ndarray, 1, "bc_psi_w", 0))) __PYX_ERR(0, 3764, __pyx_L1_error)
14879  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psi_c), __pyx_ptype_5numpy_ndarray, 1, "bc_psi_c", 0))) __PYX_ERR(0, 3765, __pyx_L1_error)
14880  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psi_n), __pyx_ptype_5numpy_ndarray, 1, "bc_psi_n", 0))) __PYX_ERR(0, 3766, __pyx_L1_error)
14881  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_ww), __pyx_ptype_5numpy_ndarray, 1, "a_ww", 0))) __PYX_ERR(0, 3767, __pyx_L1_error)
14882  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_nn), __pyx_ptype_5numpy_ndarray, 1, "a_nn", 0))) __PYX_ERR(0, 3768, __pyx_L1_error)
14883  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_w", 0))) __PYX_ERR(0, 3769, __pyx_L1_error)
14884  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_n), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_n", 0))) __PYX_ERR(0, 3770, __pyx_L1_error)
14885  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_w), __pyx_ptype_5numpy_ndarray, 1, "psi_w", 0))) __PYX_ERR(0, 3771, __pyx_L1_error)
14886  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_c), __pyx_ptype_5numpy_ndarray, 1, "psi_c", 0))) __PYX_ERR(0, 3772, __pyx_L1_error)
14887  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_n), __pyx_ptype_5numpy_ndarray, 1, "psi_n", 0))) __PYX_ERR(0, 3773, __pyx_L1_error)
14888  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_w), __pyx_ptype_5numpy_ndarray, 1, "penalty_w", 0))) __PYX_ERR(0, 3774, __pyx_L1_error)
14889  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_n), __pyx_ptype_5numpy_ndarray, 1, "penalty_n", 0))) __PYX_ERR(0, 3775, __pyx_L1_error)
14890  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux_ww), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux_ww", 0))) __PYX_ERR(0, 3776, __pyx_L1_error)
14891  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux_nn), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux_nn", 0))) __PYX_ERR(0, 3777, __pyx_L1_error)
14892  __pyx_r = __pyx_pf_14cnumericalFlux_78calculateGlobalExteriorNumericalFluxDarcyFCPP_sd(__pyx_self, __pyx_v_rowptr_ww, __pyx_v_colind_ww, __pyx_v_rowptr_nn, __pyx_v_colind_nn, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_uw, __pyx_v_isDOFBoundary_un, __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, __pyx_v_n, __pyx_v_bc_a_ww, __pyx_v_bc_a_nn, __pyx_v_bc_grad_phi_w, __pyx_v_bc_grad_phi_n, __pyx_v_bc_psi_w, __pyx_v_bc_psi_c, __pyx_v_bc_psi_n, __pyx_v_a_ww, __pyx_v_a_nn, __pyx_v_grad_phi_w, __pyx_v_grad_phi_n, __pyx_v_psi_w, __pyx_v_psi_c, __pyx_v_psi_n, __pyx_v_penalty_w, __pyx_v_penalty_n, __pyx_v_diffusiveFlux_ww, __pyx_v_diffusiveFlux_nn);
14893 
14894  /* function exit code */
14895  goto __pyx_L0;
14896  __pyx_L1_error:;
14897  __pyx_r = NULL;
14898  __pyx_L0:;
14899  __Pyx_RefNannyFinishContext();
14900  return __pyx_r;
14901 }
14902 
14903 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) {
14904  PyObject *__pyx_r = NULL;
14905  __Pyx_RefNannyDeclarations
14906  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCPP_sd", 0);
14907 
14908  /* "cnumericalFlux.pyx":3778
14909  * np.ndarray diffusiveFlux_ww,
14910  * np.ndarray diffusiveFlux_nn):
14911  * ccalculateGlobalExteriorNumericalFluxDarcyFCPP_sd(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
14912  * n.shape[1],
14913  * n.shape[2],
14914  */
14915  calculateGlobalExteriorNumericalFluxDarcyFCPP_sd((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), ((int *)__pyx_v_rowptr_ww->data), ((int *)__pyx_v_colind_ww->data), ((int *)__pyx_v_rowptr_nn->data), ((int *)__pyx_v_colind_nn->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_uw->data), ((int *)__pyx_v_isDOFBoundary_un->data), __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a_ww->data), ((double *)__pyx_v_bc_a_nn->data), ((double *)__pyx_v_bc_grad_phi_w->data), ((double *)__pyx_v_bc_grad_phi_n->data), ((double *)__pyx_v_bc_psi_w->data), ((double *)__pyx_v_bc_psi_c->data), ((double *)__pyx_v_bc_psi_n->data), ((double *)__pyx_v_a_ww->data), ((double *)__pyx_v_a_nn->data), ((double *)__pyx_v_grad_phi_w->data), ((double *)__pyx_v_grad_phi_n->data), ((double *)__pyx_v_psi_w->data), ((double *)__pyx_v_psi_c->data), ((double *)__pyx_v_psi_n->data), ((double *)__pyx_v_penalty_w->data), ((double *)__pyx_v_penalty_n->data), ((double *)__pyx_v_diffusiveFlux_ww->data), ((double *)__pyx_v_diffusiveFlux_nn->data));
14916 
14917  /* "cnumericalFlux.pyx":3748
14918  * <double*> diffusiveFlux_ww.data,
14919  * <double*> diffusiveFlux_nn.data)
14920  * def calculateGlobalExteriorNumericalFluxDarcyFCPP_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
14921  * np.ndarray colind_ww,
14922  * np.ndarray rowptr_nn,
14923  */
14924 
14925  /* function exit code */
14926  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14927  __Pyx_XGIVEREF(__pyx_r);
14928  __Pyx_RefNannyFinishContext();
14929  return __pyx_r;
14930 }
14931 
14932 /* "cnumericalFlux.pyx":3811
14933  * <double*> diffusiveFlux_ww.data,
14934  * <double*> diffusiveFlux_nn.data)
14935  * def calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
14936  * np.ndarray exteriorElementBoundaries,
14937  * np.ndarray elementBoundaryElements,
14938  */
14939 
14940 /* Python wrapper */
14941 static PyObject *__pyx_pw_14cnumericalFlux_81calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
14942 static PyMethodDef __pyx_mdef_14cnumericalFlux_81calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian = {"calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_81calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian, METH_VARARGS|METH_KEYWORDS, 0};
14943 static PyObject *__pyx_pw_14cnumericalFlux_81calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
14944  PyArrayObject *__pyx_v_l2g = 0;
14945  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
14946  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
14947  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
14948  PyArrayObject *__pyx_v_isDOFBoundary_uw = 0;
14949  PyArrayObject *__pyx_v_isDOFBoundary_un = 0;
14950  int __pyx_v_fluxBoundaryFlag_uw;
14951  int __pyx_v_fluxBoundaryFlag_un;
14952  PyArrayObject *__pyx_v_n = 0;
14953  PyArrayObject *__pyx_v_a_ww = 0;
14954  PyArrayObject *__pyx_v_da_ww_dw = 0;
14955  PyArrayObject *__pyx_v_da_ww_dn = 0;
14956  PyArrayObject *__pyx_v_a_nn = 0;
14957  PyArrayObject *__pyx_v_da_nn_dw = 0;
14958  PyArrayObject *__pyx_v_da_nn_dn = 0;
14959  PyArrayObject *__pyx_v_grad_phi_w = 0;
14960  PyArrayObject *__pyx_v_grad_phi_n = 0;
14961  PyArrayObject *__pyx_v_dphi_w_w = 0;
14962  PyArrayObject *__pyx_v_dphi_w_n = 0;
14963  PyArrayObject *__pyx_v_dphi_n_w = 0;
14964  PyArrayObject *__pyx_v_dphi_n_n = 0;
14965  PyArrayObject *__pyx_v_psi_w = 0;
14966  PyArrayObject *__pyx_v_psi_c = 0;
14967  PyArrayObject *__pyx_v_psi_n = 0;
14968  PyArrayObject *__pyx_v_dpsi_n_dpsiw = 0;
14969  PyArrayObject *__pyx_v_dpsi_n_dpsic = 0;
14970  PyArrayObject *__pyx_v_v = 0;
14971  PyArrayObject *__pyx_v_grad_v = 0;
14972  PyArrayObject *__pyx_v_penalty_w = 0;
14973  PyArrayObject *__pyx_v_penalty_n = 0;
14974  PyArrayObject *__pyx_v_fluxJacobian_ww = 0;
14975  PyArrayObject *__pyx_v_fluxJacobian_wn = 0;
14976  PyArrayObject *__pyx_v_fluxJacobian_nw = 0;
14977  PyArrayObject *__pyx_v_fluxJacobian_nn = 0;
14978  int __pyx_lineno = 0;
14979  const char *__pyx_filename = NULL;
14980  int __pyx_clineno = 0;
14981  PyObject *__pyx_r = 0;
14982  __Pyx_RefNannyDeclarations
14983  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian (wrapper)", 0);
14984  {
14985  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_uw,&__pyx_n_s_isDOFBoundary_un,&__pyx_n_s_fluxBoundaryFlag_uw,&__pyx_n_s_fluxBoundaryFlag_un,&__pyx_n_s_n,&__pyx_n_s_a_ww,&__pyx_n_s_da_ww_dw,&__pyx_n_s_da_ww_dn,&__pyx_n_s_a_nn,&__pyx_n_s_da_nn_dw,&__pyx_n_s_da_nn_dn,&__pyx_n_s_grad_phi_w,&__pyx_n_s_grad_phi_n,&__pyx_n_s_dphi_w_w,&__pyx_n_s_dphi_w_n,&__pyx_n_s_dphi_n_w,&__pyx_n_s_dphi_n_n,&__pyx_n_s_psi_w,&__pyx_n_s_psi_c,&__pyx_n_s_psi_n,&__pyx_n_s_dpsi_n_dpsiw,&__pyx_n_s_dpsi_n_dpsic,&__pyx_n_s_v,&__pyx_n_s_grad_v,&__pyx_n_s_penalty_w,&__pyx_n_s_penalty_n,&__pyx_n_s_fluxJacobian_ww,&__pyx_n_s_fluxJacobian_wn,&__pyx_n_s_fluxJacobian_nw,&__pyx_n_s_fluxJacobian_nn,0};
14986  PyObject* values[34] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
14987  if (unlikely(__pyx_kwds)) {
14988  Py_ssize_t kw_args;
14989  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
14990  switch (pos_args) {
14991  case 34: values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
14992  CYTHON_FALLTHROUGH;
14993  case 33: values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
14994  CYTHON_FALLTHROUGH;
14995  case 32: values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
14996  CYTHON_FALLTHROUGH;
14997  case 31: values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
14998  CYTHON_FALLTHROUGH;
14999  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
15000  CYTHON_FALLTHROUGH;
15001  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
15002  CYTHON_FALLTHROUGH;
15003  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
15004  CYTHON_FALLTHROUGH;
15005  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
15006  CYTHON_FALLTHROUGH;
15007  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
15008  CYTHON_FALLTHROUGH;
15009  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
15010  CYTHON_FALLTHROUGH;
15011  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
15012  CYTHON_FALLTHROUGH;
15013  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
15014  CYTHON_FALLTHROUGH;
15015  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
15016  CYTHON_FALLTHROUGH;
15017  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
15018  CYTHON_FALLTHROUGH;
15019  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
15020  CYTHON_FALLTHROUGH;
15021  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
15022  CYTHON_FALLTHROUGH;
15023  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
15024  CYTHON_FALLTHROUGH;
15025  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
15026  CYTHON_FALLTHROUGH;
15027  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
15028  CYTHON_FALLTHROUGH;
15029  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
15030  CYTHON_FALLTHROUGH;
15031  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
15032  CYTHON_FALLTHROUGH;
15033  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
15034  CYTHON_FALLTHROUGH;
15035  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
15036  CYTHON_FALLTHROUGH;
15037  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
15038  CYTHON_FALLTHROUGH;
15039  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
15040  CYTHON_FALLTHROUGH;
15041  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
15042  CYTHON_FALLTHROUGH;
15043  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
15044  CYTHON_FALLTHROUGH;
15045  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
15046  CYTHON_FALLTHROUGH;
15047  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
15048  CYTHON_FALLTHROUGH;
15049  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
15050  CYTHON_FALLTHROUGH;
15051  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
15052  CYTHON_FALLTHROUGH;
15053  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
15054  CYTHON_FALLTHROUGH;
15055  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15056  CYTHON_FALLTHROUGH;
15057  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15058  CYTHON_FALLTHROUGH;
15059  case 0: break;
15060  default: goto __pyx_L5_argtuple_error;
15061  }
15062  kw_args = PyDict_Size(__pyx_kwds);
15063  switch (pos_args) {
15064  case 0:
15065  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
15066  else goto __pyx_L5_argtuple_error;
15067  CYTHON_FALLTHROUGH;
15068  case 1:
15069  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
15070  else {
15071  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 1); __PYX_ERR(0, 3811, __pyx_L3_error)
15072  }
15073  CYTHON_FALLTHROUGH;
15074  case 2:
15075  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
15076  else {
15077  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 2); __PYX_ERR(0, 3811, __pyx_L3_error)
15078  }
15079  CYTHON_FALLTHROUGH;
15080  case 3:
15081  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
15082  else {
15083  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 3); __PYX_ERR(0, 3811, __pyx_L3_error)
15084  }
15085  CYTHON_FALLTHROUGH;
15086  case 4:
15087  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_uw)) != 0)) kw_args--;
15088  else {
15089  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 4); __PYX_ERR(0, 3811, __pyx_L3_error)
15090  }
15091  CYTHON_FALLTHROUGH;
15092  case 5:
15093  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_un)) != 0)) kw_args--;
15094  else {
15095  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 5); __PYX_ERR(0, 3811, __pyx_L3_error)
15096  }
15097  CYTHON_FALLTHROUGH;
15098  case 6:
15099  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_uw)) != 0)) kw_args--;
15100  else {
15101  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 6); __PYX_ERR(0, 3811, __pyx_L3_error)
15102  }
15103  CYTHON_FALLTHROUGH;
15104  case 7:
15105  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_un)) != 0)) kw_args--;
15106  else {
15107  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 7); __PYX_ERR(0, 3811, __pyx_L3_error)
15108  }
15109  CYTHON_FALLTHROUGH;
15110  case 8:
15111  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
15112  else {
15113  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 8); __PYX_ERR(0, 3811, __pyx_L3_error)
15114  }
15115  CYTHON_FALLTHROUGH;
15116  case 9:
15117  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_ww)) != 0)) kw_args--;
15118  else {
15119  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 9); __PYX_ERR(0, 3811, __pyx_L3_error)
15120  }
15121  CYTHON_FALLTHROUGH;
15122  case 10:
15123  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_ww_dw)) != 0)) kw_args--;
15124  else {
15125  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 10); __PYX_ERR(0, 3811, __pyx_L3_error)
15126  }
15127  CYTHON_FALLTHROUGH;
15128  case 11:
15129  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_ww_dn)) != 0)) kw_args--;
15130  else {
15131  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 11); __PYX_ERR(0, 3811, __pyx_L3_error)
15132  }
15133  CYTHON_FALLTHROUGH;
15134  case 12:
15135  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_nn)) != 0)) kw_args--;
15136  else {
15137  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 12); __PYX_ERR(0, 3811, __pyx_L3_error)
15138  }
15139  CYTHON_FALLTHROUGH;
15140  case 13:
15141  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_nn_dw)) != 0)) kw_args--;
15142  else {
15143  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 13); __PYX_ERR(0, 3811, __pyx_L3_error)
15144  }
15145  CYTHON_FALLTHROUGH;
15146  case 14:
15147  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_nn_dn)) != 0)) kw_args--;
15148  else {
15149  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 14); __PYX_ERR(0, 3811, __pyx_L3_error)
15150  }
15151  CYTHON_FALLTHROUGH;
15152  case 15:
15153  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_w)) != 0)) kw_args--;
15154  else {
15155  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 15); __PYX_ERR(0, 3811, __pyx_L3_error)
15156  }
15157  CYTHON_FALLTHROUGH;
15158  case 16:
15159  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_n)) != 0)) kw_args--;
15160  else {
15161  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 16); __PYX_ERR(0, 3811, __pyx_L3_error)
15162  }
15163  CYTHON_FALLTHROUGH;
15164  case 17:
15165  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_w_w)) != 0)) kw_args--;
15166  else {
15167  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 17); __PYX_ERR(0, 3811, __pyx_L3_error)
15168  }
15169  CYTHON_FALLTHROUGH;
15170  case 18:
15171  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_w_n)) != 0)) kw_args--;
15172  else {
15173  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 18); __PYX_ERR(0, 3811, __pyx_L3_error)
15174  }
15175  CYTHON_FALLTHROUGH;
15176  case 19:
15177  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_n_w)) != 0)) kw_args--;
15178  else {
15179  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 19); __PYX_ERR(0, 3811, __pyx_L3_error)
15180  }
15181  CYTHON_FALLTHROUGH;
15182  case 20:
15183  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_n_n)) != 0)) kw_args--;
15184  else {
15185  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 20); __PYX_ERR(0, 3811, __pyx_L3_error)
15186  }
15187  CYTHON_FALLTHROUGH;
15188  case 21:
15189  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_w)) != 0)) kw_args--;
15190  else {
15191  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 21); __PYX_ERR(0, 3811, __pyx_L3_error)
15192  }
15193  CYTHON_FALLTHROUGH;
15194  case 22:
15195  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_c)) != 0)) kw_args--;
15196  else {
15197  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 22); __PYX_ERR(0, 3811, __pyx_L3_error)
15198  }
15199  CYTHON_FALLTHROUGH;
15200  case 23:
15201  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_n)) != 0)) kw_args--;
15202  else {
15203  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 23); __PYX_ERR(0, 3811, __pyx_L3_error)
15204  }
15205  CYTHON_FALLTHROUGH;
15206  case 24:
15207  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dpsi_n_dpsiw)) != 0)) kw_args--;
15208  else {
15209  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 24); __PYX_ERR(0, 3811, __pyx_L3_error)
15210  }
15211  CYTHON_FALLTHROUGH;
15212  case 25:
15213  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dpsi_n_dpsic)) != 0)) kw_args--;
15214  else {
15215  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 25); __PYX_ERR(0, 3811, __pyx_L3_error)
15216  }
15217  CYTHON_FALLTHROUGH;
15218  case 26:
15219  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
15220  else {
15221  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 26); __PYX_ERR(0, 3811, __pyx_L3_error)
15222  }
15223  CYTHON_FALLTHROUGH;
15224  case 27:
15225  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
15226  else {
15227  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 27); __PYX_ERR(0, 3811, __pyx_L3_error)
15228  }
15229  CYTHON_FALLTHROUGH;
15230  case 28:
15231  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_w)) != 0)) kw_args--;
15232  else {
15233  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 28); __PYX_ERR(0, 3811, __pyx_L3_error)
15234  }
15235  CYTHON_FALLTHROUGH;
15236  case 29:
15237  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_n)) != 0)) kw_args--;
15238  else {
15239  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 29); __PYX_ERR(0, 3811, __pyx_L3_error)
15240  }
15241  CYTHON_FALLTHROUGH;
15242  case 30:
15243  if (likely((values[30] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_ww)) != 0)) kw_args--;
15244  else {
15245  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 30); __PYX_ERR(0, 3811, __pyx_L3_error)
15246  }
15247  CYTHON_FALLTHROUGH;
15248  case 31:
15249  if (likely((values[31] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_wn)) != 0)) kw_args--;
15250  else {
15251  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 31); __PYX_ERR(0, 3811, __pyx_L3_error)
15252  }
15253  CYTHON_FALLTHROUGH;
15254  case 32:
15255  if (likely((values[32] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_nw)) != 0)) kw_args--;
15256  else {
15257  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 32); __PYX_ERR(0, 3811, __pyx_L3_error)
15258  }
15259  CYTHON_FALLTHROUGH;
15260  case 33:
15261  if (likely((values[33] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_nn)) != 0)) kw_args--;
15262  else {
15263  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, 33); __PYX_ERR(0, 3811, __pyx_L3_error)
15264  }
15265  }
15266  if (unlikely(kw_args > 0)) {
15267  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian") < 0)) __PYX_ERR(0, 3811, __pyx_L3_error)
15268  }
15269  } else if (PyTuple_GET_SIZE(__pyx_args) != 34) {
15270  goto __pyx_L5_argtuple_error;
15271  } else {
15272  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15273  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15274  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
15275  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
15276  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
15277  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
15278  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
15279  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
15280  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
15281  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
15282  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
15283  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
15284  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
15285  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
15286  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
15287  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
15288  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
15289  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
15290  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
15291  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
15292  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
15293  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
15294  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
15295  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
15296  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
15297  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
15298  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
15299  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
15300  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
15301  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
15302  values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
15303  values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
15304  values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
15305  values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
15306  }
15307  __pyx_v_l2g = ((PyArrayObject *)values[0]);
15308  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
15309  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
15310  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
15311  __pyx_v_isDOFBoundary_uw = ((PyArrayObject *)values[4]);
15312  __pyx_v_isDOFBoundary_un = ((PyArrayObject *)values[5]);
15313  __pyx_v_fluxBoundaryFlag_uw = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_fluxBoundaryFlag_uw == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3817, __pyx_L3_error)
15314  __pyx_v_fluxBoundaryFlag_un = __Pyx_PyInt_As_int(values[7]); if (unlikely((__pyx_v_fluxBoundaryFlag_un == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3818, __pyx_L3_error)
15315  __pyx_v_n = ((PyArrayObject *)values[8]);
15316  __pyx_v_a_ww = ((PyArrayObject *)values[9]);
15317  __pyx_v_da_ww_dw = ((PyArrayObject *)values[10]);
15318  __pyx_v_da_ww_dn = ((PyArrayObject *)values[11]);
15319  __pyx_v_a_nn = ((PyArrayObject *)values[12]);
15320  __pyx_v_da_nn_dw = ((PyArrayObject *)values[13]);
15321  __pyx_v_da_nn_dn = ((PyArrayObject *)values[14]);
15322  __pyx_v_grad_phi_w = ((PyArrayObject *)values[15]);
15323  __pyx_v_grad_phi_n = ((PyArrayObject *)values[16]);
15324  __pyx_v_dphi_w_w = ((PyArrayObject *)values[17]);
15325  __pyx_v_dphi_w_n = ((PyArrayObject *)values[18]);
15326  __pyx_v_dphi_n_w = ((PyArrayObject *)values[19]);
15327  __pyx_v_dphi_n_n = ((PyArrayObject *)values[20]);
15328  __pyx_v_psi_w = ((PyArrayObject *)values[21]);
15329  __pyx_v_psi_c = ((PyArrayObject *)values[22]);
15330  __pyx_v_psi_n = ((PyArrayObject *)values[23]);
15331  __pyx_v_dpsi_n_dpsiw = ((PyArrayObject *)values[24]);
15332  __pyx_v_dpsi_n_dpsic = ((PyArrayObject *)values[25]);
15333  __pyx_v_v = ((PyArrayObject *)values[26]);
15334  __pyx_v_grad_v = ((PyArrayObject *)values[27]);
15335  __pyx_v_penalty_w = ((PyArrayObject *)values[28]);
15336  __pyx_v_penalty_n = ((PyArrayObject *)values[29]);
15337  __pyx_v_fluxJacobian_ww = ((PyArrayObject *)values[30]);
15338  __pyx_v_fluxJacobian_wn = ((PyArrayObject *)values[31]);
15339  __pyx_v_fluxJacobian_nw = ((PyArrayObject *)values[32]);
15340  __pyx_v_fluxJacobian_nn = ((PyArrayObject *)values[33]);
15341  }
15342  goto __pyx_L4_argument_unpacking_done;
15343  __pyx_L5_argtuple_error:;
15344  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 1, 34, 34, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3811, __pyx_L3_error)
15345  __pyx_L3_error:;
15346  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename);
15347  __Pyx_RefNannyFinishContext();
15348  return NULL;
15349  __pyx_L4_argument_unpacking_done:;
15350  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 3811, __pyx_L1_error)
15351  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 3812, __pyx_L1_error)
15352  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3813, __pyx_L1_error)
15353  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3814, __pyx_L1_error)
15354  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_uw), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_uw", 0))) __PYX_ERR(0, 3815, __pyx_L1_error)
15355  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_un), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_un", 0))) __PYX_ERR(0, 3816, __pyx_L1_error)
15356  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3819, __pyx_L1_error)
15357  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_ww), __pyx_ptype_5numpy_ndarray, 1, "a_ww", 0))) __PYX_ERR(0, 3820, __pyx_L1_error)
15358  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_ww_dw), __pyx_ptype_5numpy_ndarray, 1, "da_ww_dw", 0))) __PYX_ERR(0, 3821, __pyx_L1_error)
15359  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_ww_dn), __pyx_ptype_5numpy_ndarray, 1, "da_ww_dn", 0))) __PYX_ERR(0, 3822, __pyx_L1_error)
15360  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_nn), __pyx_ptype_5numpy_ndarray, 1, "a_nn", 0))) __PYX_ERR(0, 3823, __pyx_L1_error)
15361  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_nn_dw), __pyx_ptype_5numpy_ndarray, 1, "da_nn_dw", 0))) __PYX_ERR(0, 3824, __pyx_L1_error)
15362  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_nn_dn), __pyx_ptype_5numpy_ndarray, 1, "da_nn_dn", 0))) __PYX_ERR(0, 3825, __pyx_L1_error)
15363  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_w", 0))) __PYX_ERR(0, 3826, __pyx_L1_error)
15364  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_n), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_n", 0))) __PYX_ERR(0, 3827, __pyx_L1_error)
15365  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_w_w), __pyx_ptype_5numpy_ndarray, 1, "dphi_w_w", 0))) __PYX_ERR(0, 3828, __pyx_L1_error)
15366  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_w_n), __pyx_ptype_5numpy_ndarray, 1, "dphi_w_n", 0))) __PYX_ERR(0, 3829, __pyx_L1_error)
15367  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_n_w), __pyx_ptype_5numpy_ndarray, 1, "dphi_n_w", 0))) __PYX_ERR(0, 3830, __pyx_L1_error)
15368  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_n_n), __pyx_ptype_5numpy_ndarray, 1, "dphi_n_n", 0))) __PYX_ERR(0, 3831, __pyx_L1_error)
15369  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_w), __pyx_ptype_5numpy_ndarray, 1, "psi_w", 0))) __PYX_ERR(0, 3832, __pyx_L1_error)
15370  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_c), __pyx_ptype_5numpy_ndarray, 1, "psi_c", 0))) __PYX_ERR(0, 3833, __pyx_L1_error)
15371  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_n), __pyx_ptype_5numpy_ndarray, 1, "psi_n", 0))) __PYX_ERR(0, 3834, __pyx_L1_error)
15372  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpsi_n_dpsiw), __pyx_ptype_5numpy_ndarray, 1, "dpsi_n_dpsiw", 0))) __PYX_ERR(0, 3835, __pyx_L1_error)
15373  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpsi_n_dpsic), __pyx_ptype_5numpy_ndarray, 1, "dpsi_n_dpsic", 0))) __PYX_ERR(0, 3836, __pyx_L1_error)
15374  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 3837, __pyx_L1_error)
15375  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 3838, __pyx_L1_error)
15376  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_w), __pyx_ptype_5numpy_ndarray, 1, "penalty_w", 0))) __PYX_ERR(0, 3839, __pyx_L1_error)
15377  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_n), __pyx_ptype_5numpy_ndarray, 1, "penalty_n", 0))) __PYX_ERR(0, 3840, __pyx_L1_error)
15378  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_ww), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_ww", 0))) __PYX_ERR(0, 3841, __pyx_L1_error)
15379  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_wn), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_wn", 0))) __PYX_ERR(0, 3842, __pyx_L1_error)
15380  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_nw), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_nw", 0))) __PYX_ERR(0, 3843, __pyx_L1_error)
15381  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_nn), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_nn", 0))) __PYX_ERR(0, 3844, __pyx_L1_error)
15382  __pyx_r = __pyx_pf_14cnumericalFlux_80calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian(__pyx_self, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_uw, __pyx_v_isDOFBoundary_un, __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, __pyx_v_n, __pyx_v_a_ww, __pyx_v_da_ww_dw, __pyx_v_da_ww_dn, __pyx_v_a_nn, __pyx_v_da_nn_dw, __pyx_v_da_nn_dn, __pyx_v_grad_phi_w, __pyx_v_grad_phi_n, __pyx_v_dphi_w_w, __pyx_v_dphi_w_n, __pyx_v_dphi_n_w, __pyx_v_dphi_n_n, __pyx_v_psi_w, __pyx_v_psi_c, __pyx_v_psi_n, __pyx_v_dpsi_n_dpsiw, __pyx_v_dpsi_n_dpsic, __pyx_v_v, __pyx_v_grad_v, __pyx_v_penalty_w, __pyx_v_penalty_n, __pyx_v_fluxJacobian_ww, __pyx_v_fluxJacobian_wn, __pyx_v_fluxJacobian_nw, __pyx_v_fluxJacobian_nn);
15383 
15384  /* function exit code */
15385  goto __pyx_L0;
15386  __pyx_L1_error:;
15387  __pyx_r = NULL;
15388  __pyx_L0:;
15389  __Pyx_RefNannyFinishContext();
15390  return __pyx_r;
15391 }
15392 
15393 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) {
15394  PyObject *__pyx_r = NULL;
15395  __Pyx_RefNannyDeclarations
15396  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian", 0);
15397 
15398  /* "cnumericalFlux.pyx":3845
15399  * np.ndarray fluxJacobian_nw,
15400  * np.ndarray fluxJacobian_nn):
15401  * ccalculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
15402  * n.shape[1],
15403  * n.shape[2],
15404  */
15405  calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_l2g->dimensions[1]), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_uw->data), ((int *)__pyx_v_isDOFBoundary_un->data), __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, ((double *)__pyx_v_n->data), ((double *)__pyx_v_a_ww->data), ((double *)__pyx_v_da_ww_dw->data), ((double *)__pyx_v_da_ww_dn->data), ((double *)__pyx_v_a_nn->data), ((double *)__pyx_v_da_nn_dw->data), ((double *)__pyx_v_da_nn_dn->data), ((double *)__pyx_v_grad_phi_w->data), ((double *)__pyx_v_grad_phi_n->data), ((double *)__pyx_v_dphi_w_w->data), ((double *)__pyx_v_dphi_w_n->data), ((double *)__pyx_v_dphi_n_w->data), ((double *)__pyx_v_dphi_n_n->data), ((double *)__pyx_v_psi_w->data), ((double *)__pyx_v_psi_c->data), ((double *)__pyx_v_psi_n->data), ((double *)__pyx_v_dpsi_n_dpsiw->data), ((double *)__pyx_v_dpsi_n_dpsic->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_grad_v->data), ((double *)__pyx_v_penalty_w->data), ((double *)__pyx_v_penalty_n->data), ((double *)__pyx_v_fluxJacobian_ww->data), ((double *)__pyx_v_fluxJacobian_wn->data), ((double *)__pyx_v_fluxJacobian_nw->data), ((double *)__pyx_v_fluxJacobian_nn->data));
15406 
15407  /* "cnumericalFlux.pyx":3811
15408  * <double*> diffusiveFlux_ww.data,
15409  * <double*> diffusiveFlux_nn.data)
15410  * def calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
15411  * np.ndarray exteriorElementBoundaries,
15412  * np.ndarray elementBoundaryElements,
15413  */
15414 
15415  /* function exit code */
15416  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15417  __Pyx_XGIVEREF(__pyx_r);
15418  __Pyx_RefNannyFinishContext();
15419  return __pyx_r;
15420 }
15421 
15422 /* "cnumericalFlux.pyx":3883
15423  * <double*> fluxJacobian_nw.data,
15424  * <double*> fluxJacobian_nn.data)
15425  * def calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
15426  * np.ndarray colind_ww,
15427  * np.ndarray rowptr_nn,
15428  */
15429 
15430 /* Python wrapper */
15431 static PyObject *__pyx_pw_14cnumericalFlux_83calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15432 static PyMethodDef __pyx_mdef_14cnumericalFlux_83calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd = {"calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_83calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd, METH_VARARGS|METH_KEYWORDS, 0};
15433 static PyObject *__pyx_pw_14cnumericalFlux_83calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
15434  PyArrayObject *__pyx_v_rowptr_ww = 0;
15435  PyArrayObject *__pyx_v_colind_ww = 0;
15436  PyArrayObject *__pyx_v_rowptr_nn = 0;
15437  PyArrayObject *__pyx_v_colind_nn = 0;
15438  PyArrayObject *__pyx_v_l2g = 0;
15439  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
15440  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
15441  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
15442  PyArrayObject *__pyx_v_isDOFBoundary_uw = 0;
15443  PyArrayObject *__pyx_v_isDOFBoundary_un = 0;
15444  int __pyx_v_fluxBoundaryFlag_uw;
15445  int __pyx_v_fluxBoundaryFlag_un;
15446  PyArrayObject *__pyx_v_n = 0;
15447  PyArrayObject *__pyx_v_a_ww = 0;
15448  PyArrayObject *__pyx_v_da_ww_dw = 0;
15449  PyArrayObject *__pyx_v_da_ww_dn = 0;
15450  PyArrayObject *__pyx_v_a_nn = 0;
15451  PyArrayObject *__pyx_v_da_nn_dw = 0;
15452  PyArrayObject *__pyx_v_da_nn_dn = 0;
15453  PyArrayObject *__pyx_v_grad_phi_w = 0;
15454  PyArrayObject *__pyx_v_grad_phi_n = 0;
15455  PyArrayObject *__pyx_v_dphi_w_w = 0;
15456  PyArrayObject *__pyx_v_dphi_w_n = 0;
15457  PyArrayObject *__pyx_v_dphi_n_w = 0;
15458  PyArrayObject *__pyx_v_dphi_n_n = 0;
15459  PyArrayObject *__pyx_v_psi_w = 0;
15460  PyArrayObject *__pyx_v_psi_c = 0;
15461  PyArrayObject *__pyx_v_psi_n = 0;
15462  PyArrayObject *__pyx_v_dpsi_n_dpsiw = 0;
15463  PyArrayObject *__pyx_v_dpsi_n_dpsic = 0;
15464  PyArrayObject *__pyx_v_v = 0;
15465  PyArrayObject *__pyx_v_grad_v = 0;
15466  PyArrayObject *__pyx_v_penalty_w = 0;
15467  PyArrayObject *__pyx_v_penalty_n = 0;
15468  PyArrayObject *__pyx_v_fluxJacobian_ww = 0;
15469  PyArrayObject *__pyx_v_fluxJacobian_wn = 0;
15470  PyArrayObject *__pyx_v_fluxJacobian_nw = 0;
15471  PyArrayObject *__pyx_v_fluxJacobian_nn = 0;
15472  int __pyx_lineno = 0;
15473  const char *__pyx_filename = NULL;
15474  int __pyx_clineno = 0;
15475  PyObject *__pyx_r = 0;
15476  __Pyx_RefNannyDeclarations
15477  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd (wrapper)", 0);
15478  {
15479  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr_ww,&__pyx_n_s_colind_ww,&__pyx_n_s_rowptr_nn,&__pyx_n_s_colind_nn,&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_uw,&__pyx_n_s_isDOFBoundary_un,&__pyx_n_s_fluxBoundaryFlag_uw,&__pyx_n_s_fluxBoundaryFlag_un,&__pyx_n_s_n,&__pyx_n_s_a_ww,&__pyx_n_s_da_ww_dw,&__pyx_n_s_da_ww_dn,&__pyx_n_s_a_nn,&__pyx_n_s_da_nn_dw,&__pyx_n_s_da_nn_dn,&__pyx_n_s_grad_phi_w,&__pyx_n_s_grad_phi_n,&__pyx_n_s_dphi_w_w,&__pyx_n_s_dphi_w_n,&__pyx_n_s_dphi_n_w,&__pyx_n_s_dphi_n_n,&__pyx_n_s_psi_w,&__pyx_n_s_psi_c,&__pyx_n_s_psi_n,&__pyx_n_s_dpsi_n_dpsiw,&__pyx_n_s_dpsi_n_dpsic,&__pyx_n_s_v,&__pyx_n_s_grad_v,&__pyx_n_s_penalty_w,&__pyx_n_s_penalty_n,&__pyx_n_s_fluxJacobian_ww,&__pyx_n_s_fluxJacobian_wn,&__pyx_n_s_fluxJacobian_nw,&__pyx_n_s_fluxJacobian_nn,0};
15480  PyObject* values[38] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
15481  if (unlikely(__pyx_kwds)) {
15482  Py_ssize_t kw_args;
15483  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
15484  switch (pos_args) {
15485  case 38: values[37] = PyTuple_GET_ITEM(__pyx_args, 37);
15486  CYTHON_FALLTHROUGH;
15487  case 37: values[36] = PyTuple_GET_ITEM(__pyx_args, 36);
15488  CYTHON_FALLTHROUGH;
15489  case 36: values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
15490  CYTHON_FALLTHROUGH;
15491  case 35: values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
15492  CYTHON_FALLTHROUGH;
15493  case 34: values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
15494  CYTHON_FALLTHROUGH;
15495  case 33: values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
15496  CYTHON_FALLTHROUGH;
15497  case 32: values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
15498  CYTHON_FALLTHROUGH;
15499  case 31: values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
15500  CYTHON_FALLTHROUGH;
15501  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
15502  CYTHON_FALLTHROUGH;
15503  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
15504  CYTHON_FALLTHROUGH;
15505  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
15506  CYTHON_FALLTHROUGH;
15507  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
15508  CYTHON_FALLTHROUGH;
15509  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
15510  CYTHON_FALLTHROUGH;
15511  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
15512  CYTHON_FALLTHROUGH;
15513  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
15514  CYTHON_FALLTHROUGH;
15515  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
15516  CYTHON_FALLTHROUGH;
15517  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
15518  CYTHON_FALLTHROUGH;
15519  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
15520  CYTHON_FALLTHROUGH;
15521  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
15522  CYTHON_FALLTHROUGH;
15523  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
15524  CYTHON_FALLTHROUGH;
15525  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
15526  CYTHON_FALLTHROUGH;
15527  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
15528  CYTHON_FALLTHROUGH;
15529  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
15530  CYTHON_FALLTHROUGH;
15531  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
15532  CYTHON_FALLTHROUGH;
15533  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
15534  CYTHON_FALLTHROUGH;
15535  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
15536  CYTHON_FALLTHROUGH;
15537  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
15538  CYTHON_FALLTHROUGH;
15539  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
15540  CYTHON_FALLTHROUGH;
15541  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
15542  CYTHON_FALLTHROUGH;
15543  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
15544  CYTHON_FALLTHROUGH;
15545  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
15546  CYTHON_FALLTHROUGH;
15547  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
15548  CYTHON_FALLTHROUGH;
15549  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
15550  CYTHON_FALLTHROUGH;
15551  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
15552  CYTHON_FALLTHROUGH;
15553  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
15554  CYTHON_FALLTHROUGH;
15555  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
15556  CYTHON_FALLTHROUGH;
15557  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15558  CYTHON_FALLTHROUGH;
15559  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15560  CYTHON_FALLTHROUGH;
15561  case 0: break;
15562  default: goto __pyx_L5_argtuple_error;
15563  }
15564  kw_args = PyDict_Size(__pyx_kwds);
15565  switch (pos_args) {
15566  case 0:
15567  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr_ww)) != 0)) kw_args--;
15568  else goto __pyx_L5_argtuple_error;
15569  CYTHON_FALLTHROUGH;
15570  case 1:
15571  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind_ww)) != 0)) kw_args--;
15572  else {
15573  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 1); __PYX_ERR(0, 3883, __pyx_L3_error)
15574  }
15575  CYTHON_FALLTHROUGH;
15576  case 2:
15577  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr_nn)) != 0)) kw_args--;
15578  else {
15579  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 2); __PYX_ERR(0, 3883, __pyx_L3_error)
15580  }
15581  CYTHON_FALLTHROUGH;
15582  case 3:
15583  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind_nn)) != 0)) kw_args--;
15584  else {
15585  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 3); __PYX_ERR(0, 3883, __pyx_L3_error)
15586  }
15587  CYTHON_FALLTHROUGH;
15588  case 4:
15589  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
15590  else {
15591  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 4); __PYX_ERR(0, 3883, __pyx_L3_error)
15592  }
15593  CYTHON_FALLTHROUGH;
15594  case 5:
15595  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
15596  else {
15597  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 5); __PYX_ERR(0, 3883, __pyx_L3_error)
15598  }
15599  CYTHON_FALLTHROUGH;
15600  case 6:
15601  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
15602  else {
15603  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 6); __PYX_ERR(0, 3883, __pyx_L3_error)
15604  }
15605  CYTHON_FALLTHROUGH;
15606  case 7:
15607  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
15608  else {
15609  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 7); __PYX_ERR(0, 3883, __pyx_L3_error)
15610  }
15611  CYTHON_FALLTHROUGH;
15612  case 8:
15613  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_uw)) != 0)) kw_args--;
15614  else {
15615  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 8); __PYX_ERR(0, 3883, __pyx_L3_error)
15616  }
15617  CYTHON_FALLTHROUGH;
15618  case 9:
15619  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_un)) != 0)) kw_args--;
15620  else {
15621  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 9); __PYX_ERR(0, 3883, __pyx_L3_error)
15622  }
15623  CYTHON_FALLTHROUGH;
15624  case 10:
15625  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_uw)) != 0)) kw_args--;
15626  else {
15627  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 10); __PYX_ERR(0, 3883, __pyx_L3_error)
15628  }
15629  CYTHON_FALLTHROUGH;
15630  case 11:
15631  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag_un)) != 0)) kw_args--;
15632  else {
15633  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 11); __PYX_ERR(0, 3883, __pyx_L3_error)
15634  }
15635  CYTHON_FALLTHROUGH;
15636  case 12:
15637  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
15638  else {
15639  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 12); __PYX_ERR(0, 3883, __pyx_L3_error)
15640  }
15641  CYTHON_FALLTHROUGH;
15642  case 13:
15643  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_ww)) != 0)) kw_args--;
15644  else {
15645  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 13); __PYX_ERR(0, 3883, __pyx_L3_error)
15646  }
15647  CYTHON_FALLTHROUGH;
15648  case 14:
15649  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_ww_dw)) != 0)) kw_args--;
15650  else {
15651  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 14); __PYX_ERR(0, 3883, __pyx_L3_error)
15652  }
15653  CYTHON_FALLTHROUGH;
15654  case 15:
15655  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_ww_dn)) != 0)) kw_args--;
15656  else {
15657  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 15); __PYX_ERR(0, 3883, __pyx_L3_error)
15658  }
15659  CYTHON_FALLTHROUGH;
15660  case 16:
15661  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_nn)) != 0)) kw_args--;
15662  else {
15663  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 16); __PYX_ERR(0, 3883, __pyx_L3_error)
15664  }
15665  CYTHON_FALLTHROUGH;
15666  case 17:
15667  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_nn_dw)) != 0)) kw_args--;
15668  else {
15669  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 17); __PYX_ERR(0, 3883, __pyx_L3_error)
15670  }
15671  CYTHON_FALLTHROUGH;
15672  case 18:
15673  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da_nn_dn)) != 0)) kw_args--;
15674  else {
15675  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 18); __PYX_ERR(0, 3883, __pyx_L3_error)
15676  }
15677  CYTHON_FALLTHROUGH;
15678  case 19:
15679  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_w)) != 0)) kw_args--;
15680  else {
15681  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 19); __PYX_ERR(0, 3883, __pyx_L3_error)
15682  }
15683  CYTHON_FALLTHROUGH;
15684  case 20:
15685  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi_n)) != 0)) kw_args--;
15686  else {
15687  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 20); __PYX_ERR(0, 3883, __pyx_L3_error)
15688  }
15689  CYTHON_FALLTHROUGH;
15690  case 21:
15691  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_w_w)) != 0)) kw_args--;
15692  else {
15693  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 21); __PYX_ERR(0, 3883, __pyx_L3_error)
15694  }
15695  CYTHON_FALLTHROUGH;
15696  case 22:
15697  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_w_n)) != 0)) kw_args--;
15698  else {
15699  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 22); __PYX_ERR(0, 3883, __pyx_L3_error)
15700  }
15701  CYTHON_FALLTHROUGH;
15702  case 23:
15703  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_n_w)) != 0)) kw_args--;
15704  else {
15705  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 23); __PYX_ERR(0, 3883, __pyx_L3_error)
15706  }
15707  CYTHON_FALLTHROUGH;
15708  case 24:
15709  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi_n_n)) != 0)) kw_args--;
15710  else {
15711  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 24); __PYX_ERR(0, 3883, __pyx_L3_error)
15712  }
15713  CYTHON_FALLTHROUGH;
15714  case 25:
15715  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_w)) != 0)) kw_args--;
15716  else {
15717  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 25); __PYX_ERR(0, 3883, __pyx_L3_error)
15718  }
15719  CYTHON_FALLTHROUGH;
15720  case 26:
15721  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_c)) != 0)) kw_args--;
15722  else {
15723  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 26); __PYX_ERR(0, 3883, __pyx_L3_error)
15724  }
15725  CYTHON_FALLTHROUGH;
15726  case 27:
15727  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_n)) != 0)) kw_args--;
15728  else {
15729  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 27); __PYX_ERR(0, 3883, __pyx_L3_error)
15730  }
15731  CYTHON_FALLTHROUGH;
15732  case 28:
15733  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dpsi_n_dpsiw)) != 0)) kw_args--;
15734  else {
15735  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 28); __PYX_ERR(0, 3883, __pyx_L3_error)
15736  }
15737  CYTHON_FALLTHROUGH;
15738  case 29:
15739  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dpsi_n_dpsic)) != 0)) kw_args--;
15740  else {
15741  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 29); __PYX_ERR(0, 3883, __pyx_L3_error)
15742  }
15743  CYTHON_FALLTHROUGH;
15744  case 30:
15745  if (likely((values[30] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
15746  else {
15747  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 30); __PYX_ERR(0, 3883, __pyx_L3_error)
15748  }
15749  CYTHON_FALLTHROUGH;
15750  case 31:
15751  if (likely((values[31] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
15752  else {
15753  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 31); __PYX_ERR(0, 3883, __pyx_L3_error)
15754  }
15755  CYTHON_FALLTHROUGH;
15756  case 32:
15757  if (likely((values[32] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_w)) != 0)) kw_args--;
15758  else {
15759  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 32); __PYX_ERR(0, 3883, __pyx_L3_error)
15760  }
15761  CYTHON_FALLTHROUGH;
15762  case 33:
15763  if (likely((values[33] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_n)) != 0)) kw_args--;
15764  else {
15765  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 33); __PYX_ERR(0, 3883, __pyx_L3_error)
15766  }
15767  CYTHON_FALLTHROUGH;
15768  case 34:
15769  if (likely((values[34] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_ww)) != 0)) kw_args--;
15770  else {
15771  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 34); __PYX_ERR(0, 3883, __pyx_L3_error)
15772  }
15773  CYTHON_FALLTHROUGH;
15774  case 35:
15775  if (likely((values[35] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_wn)) != 0)) kw_args--;
15776  else {
15777  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 35); __PYX_ERR(0, 3883, __pyx_L3_error)
15778  }
15779  CYTHON_FALLTHROUGH;
15780  case 36:
15781  if (likely((values[36] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_nw)) != 0)) kw_args--;
15782  else {
15783  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 36); __PYX_ERR(0, 3883, __pyx_L3_error)
15784  }
15785  CYTHON_FALLTHROUGH;
15786  case 37:
15787  if (likely((values[37] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_nn)) != 0)) kw_args--;
15788  else {
15789  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, 37); __PYX_ERR(0, 3883, __pyx_L3_error)
15790  }
15791  }
15792  if (unlikely(kw_args > 0)) {
15793  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd") < 0)) __PYX_ERR(0, 3883, __pyx_L3_error)
15794  }
15795  } else if (PyTuple_GET_SIZE(__pyx_args) != 38) {
15796  goto __pyx_L5_argtuple_error;
15797  } else {
15798  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15799  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15800  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
15801  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
15802  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
15803  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
15804  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
15805  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
15806  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
15807  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
15808  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
15809  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
15810  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
15811  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
15812  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
15813  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
15814  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
15815  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
15816  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
15817  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
15818  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
15819  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
15820  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
15821  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
15822  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
15823  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
15824  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
15825  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
15826  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
15827  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
15828  values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
15829  values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
15830  values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
15831  values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
15832  values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
15833  values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
15834  values[36] = PyTuple_GET_ITEM(__pyx_args, 36);
15835  values[37] = PyTuple_GET_ITEM(__pyx_args, 37);
15836  }
15837  __pyx_v_rowptr_ww = ((PyArrayObject *)values[0]);
15838  __pyx_v_colind_ww = ((PyArrayObject *)values[1]);
15839  __pyx_v_rowptr_nn = ((PyArrayObject *)values[2]);
15840  __pyx_v_colind_nn = ((PyArrayObject *)values[3]);
15841  __pyx_v_l2g = ((PyArrayObject *)values[4]);
15842  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[5]);
15843  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[6]);
15844  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[7]);
15845  __pyx_v_isDOFBoundary_uw = ((PyArrayObject *)values[8]);
15846  __pyx_v_isDOFBoundary_un = ((PyArrayObject *)values[9]);
15847  __pyx_v_fluxBoundaryFlag_uw = __Pyx_PyInt_As_int(values[10]); if (unlikely((__pyx_v_fluxBoundaryFlag_uw == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3893, __pyx_L3_error)
15848  __pyx_v_fluxBoundaryFlag_un = __Pyx_PyInt_As_int(values[11]); if (unlikely((__pyx_v_fluxBoundaryFlag_un == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3894, __pyx_L3_error)
15849  __pyx_v_n = ((PyArrayObject *)values[12]);
15850  __pyx_v_a_ww = ((PyArrayObject *)values[13]);
15851  __pyx_v_da_ww_dw = ((PyArrayObject *)values[14]);
15852  __pyx_v_da_ww_dn = ((PyArrayObject *)values[15]);
15853  __pyx_v_a_nn = ((PyArrayObject *)values[16]);
15854  __pyx_v_da_nn_dw = ((PyArrayObject *)values[17]);
15855  __pyx_v_da_nn_dn = ((PyArrayObject *)values[18]);
15856  __pyx_v_grad_phi_w = ((PyArrayObject *)values[19]);
15857  __pyx_v_grad_phi_n = ((PyArrayObject *)values[20]);
15858  __pyx_v_dphi_w_w = ((PyArrayObject *)values[21]);
15859  __pyx_v_dphi_w_n = ((PyArrayObject *)values[22]);
15860  __pyx_v_dphi_n_w = ((PyArrayObject *)values[23]);
15861  __pyx_v_dphi_n_n = ((PyArrayObject *)values[24]);
15862  __pyx_v_psi_w = ((PyArrayObject *)values[25]);
15863  __pyx_v_psi_c = ((PyArrayObject *)values[26]);
15864  __pyx_v_psi_n = ((PyArrayObject *)values[27]);
15865  __pyx_v_dpsi_n_dpsiw = ((PyArrayObject *)values[28]);
15866  __pyx_v_dpsi_n_dpsic = ((PyArrayObject *)values[29]);
15867  __pyx_v_v = ((PyArrayObject *)values[30]);
15868  __pyx_v_grad_v = ((PyArrayObject *)values[31]);
15869  __pyx_v_penalty_w = ((PyArrayObject *)values[32]);
15870  __pyx_v_penalty_n = ((PyArrayObject *)values[33]);
15871  __pyx_v_fluxJacobian_ww = ((PyArrayObject *)values[34]);
15872  __pyx_v_fluxJacobian_wn = ((PyArrayObject *)values[35]);
15873  __pyx_v_fluxJacobian_nw = ((PyArrayObject *)values[36]);
15874  __pyx_v_fluxJacobian_nn = ((PyArrayObject *)values[37]);
15875  }
15876  goto __pyx_L4_argument_unpacking_done;
15877  __pyx_L5_argtuple_error:;
15878  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 1, 38, 38, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3883, __pyx_L3_error)
15879  __pyx_L3_error:;
15880  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
15881  __Pyx_RefNannyFinishContext();
15882  return NULL;
15883  __pyx_L4_argument_unpacking_done:;
15884  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr_ww), __pyx_ptype_5numpy_ndarray, 1, "rowptr_ww", 0))) __PYX_ERR(0, 3883, __pyx_L1_error)
15885  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind_ww), __pyx_ptype_5numpy_ndarray, 1, "colind_ww", 0))) __PYX_ERR(0, 3884, __pyx_L1_error)
15886  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr_nn), __pyx_ptype_5numpy_ndarray, 1, "rowptr_nn", 0))) __PYX_ERR(0, 3885, __pyx_L1_error)
15887  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind_nn), __pyx_ptype_5numpy_ndarray, 1, "colind_nn", 0))) __PYX_ERR(0, 3886, __pyx_L1_error)
15888  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 3887, __pyx_L1_error)
15889  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 3888, __pyx_L1_error)
15890  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3889, __pyx_L1_error)
15891  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3890, __pyx_L1_error)
15892  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_uw), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_uw", 0))) __PYX_ERR(0, 3891, __pyx_L1_error)
15893  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_un), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_un", 0))) __PYX_ERR(0, 3892, __pyx_L1_error)
15894  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3895, __pyx_L1_error)
15895  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_ww), __pyx_ptype_5numpy_ndarray, 1, "a_ww", 0))) __PYX_ERR(0, 3896, __pyx_L1_error)
15896  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_ww_dw), __pyx_ptype_5numpy_ndarray, 1, "da_ww_dw", 0))) __PYX_ERR(0, 3897, __pyx_L1_error)
15897  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_ww_dn), __pyx_ptype_5numpy_ndarray, 1, "da_ww_dn", 0))) __PYX_ERR(0, 3898, __pyx_L1_error)
15898  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a_nn), __pyx_ptype_5numpy_ndarray, 1, "a_nn", 0))) __PYX_ERR(0, 3899, __pyx_L1_error)
15899  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_nn_dw), __pyx_ptype_5numpy_ndarray, 1, "da_nn_dw", 0))) __PYX_ERR(0, 3900, __pyx_L1_error)
15900  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da_nn_dn), __pyx_ptype_5numpy_ndarray, 1, "da_nn_dn", 0))) __PYX_ERR(0, 3901, __pyx_L1_error)
15901  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_w), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_w", 0))) __PYX_ERR(0, 3902, __pyx_L1_error)
15902  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi_n), __pyx_ptype_5numpy_ndarray, 1, "grad_phi_n", 0))) __PYX_ERR(0, 3903, __pyx_L1_error)
15903  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_w_w), __pyx_ptype_5numpy_ndarray, 1, "dphi_w_w", 0))) __PYX_ERR(0, 3904, __pyx_L1_error)
15904  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_w_n), __pyx_ptype_5numpy_ndarray, 1, "dphi_w_n", 0))) __PYX_ERR(0, 3905, __pyx_L1_error)
15905  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_n_w), __pyx_ptype_5numpy_ndarray, 1, "dphi_n_w", 0))) __PYX_ERR(0, 3906, __pyx_L1_error)
15906  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi_n_n), __pyx_ptype_5numpy_ndarray, 1, "dphi_n_n", 0))) __PYX_ERR(0, 3907, __pyx_L1_error)
15907  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_w), __pyx_ptype_5numpy_ndarray, 1, "psi_w", 0))) __PYX_ERR(0, 3908, __pyx_L1_error)
15908  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_c), __pyx_ptype_5numpy_ndarray, 1, "psi_c", 0))) __PYX_ERR(0, 3909, __pyx_L1_error)
15909  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_n), __pyx_ptype_5numpy_ndarray, 1, "psi_n", 0))) __PYX_ERR(0, 3910, __pyx_L1_error)
15910  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpsi_n_dpsiw), __pyx_ptype_5numpy_ndarray, 1, "dpsi_n_dpsiw", 0))) __PYX_ERR(0, 3911, __pyx_L1_error)
15911  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpsi_n_dpsic), __pyx_ptype_5numpy_ndarray, 1, "dpsi_n_dpsic", 0))) __PYX_ERR(0, 3912, __pyx_L1_error)
15912  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 3913, __pyx_L1_error)
15913  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 3914, __pyx_L1_error)
15914  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_w), __pyx_ptype_5numpy_ndarray, 1, "penalty_w", 0))) __PYX_ERR(0, 3915, __pyx_L1_error)
15915  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty_n), __pyx_ptype_5numpy_ndarray, 1, "penalty_n", 0))) __PYX_ERR(0, 3916, __pyx_L1_error)
15916  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_ww), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_ww", 0))) __PYX_ERR(0, 3917, __pyx_L1_error)
15917  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_wn), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_wn", 0))) __PYX_ERR(0, 3918, __pyx_L1_error)
15918  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_nw), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_nw", 0))) __PYX_ERR(0, 3919, __pyx_L1_error)
15919  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_nn), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_nn", 0))) __PYX_ERR(0, 3920, __pyx_L1_error)
15920  __pyx_r = __pyx_pf_14cnumericalFlux_82calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd(__pyx_self, __pyx_v_rowptr_ww, __pyx_v_colind_ww, __pyx_v_rowptr_nn, __pyx_v_colind_nn, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_uw, __pyx_v_isDOFBoundary_un, __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, __pyx_v_n, __pyx_v_a_ww, __pyx_v_da_ww_dw, __pyx_v_da_ww_dn, __pyx_v_a_nn, __pyx_v_da_nn_dw, __pyx_v_da_nn_dn, __pyx_v_grad_phi_w, __pyx_v_grad_phi_n, __pyx_v_dphi_w_w, __pyx_v_dphi_w_n, __pyx_v_dphi_n_w, __pyx_v_dphi_n_n, __pyx_v_psi_w, __pyx_v_psi_c, __pyx_v_psi_n, __pyx_v_dpsi_n_dpsiw, __pyx_v_dpsi_n_dpsic, __pyx_v_v, __pyx_v_grad_v, __pyx_v_penalty_w, __pyx_v_penalty_n, __pyx_v_fluxJacobian_ww, __pyx_v_fluxJacobian_wn, __pyx_v_fluxJacobian_nw, __pyx_v_fluxJacobian_nn);
15921 
15922  /* function exit code */
15923  goto __pyx_L0;
15924  __pyx_L1_error:;
15925  __pyx_r = NULL;
15926  __pyx_L0:;
15927  __Pyx_RefNannyFinishContext();
15928  return __pyx_r;
15929 }
15930 
15931 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) {
15932  PyObject *__pyx_r = NULL;
15933  __Pyx_RefNannyDeclarations
15934  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd", 0);
15935 
15936  /* "cnumericalFlux.pyx":3921
15937  * np.ndarray fluxJacobian_nw,
15938  * np.ndarray fluxJacobian_nn):
15939  * ccalculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
15940  * n.shape[1],
15941  * n.shape[2],
15942  */
15943  calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_l2g->dimensions[1]), ((int *)__pyx_v_rowptr_ww->data), ((int *)__pyx_v_colind_ww->data), ((int *)__pyx_v_rowptr_nn->data), ((int *)__pyx_v_colind_nn->data), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_uw->data), ((int *)__pyx_v_isDOFBoundary_un->data), __pyx_v_fluxBoundaryFlag_uw, __pyx_v_fluxBoundaryFlag_un, ((double *)__pyx_v_n->data), ((double *)__pyx_v_a_ww->data), ((double *)__pyx_v_da_ww_dw->data), ((double *)__pyx_v_da_ww_dn->data), ((double *)__pyx_v_a_nn->data), ((double *)__pyx_v_da_nn_dw->data), ((double *)__pyx_v_da_nn_dn->data), ((double *)__pyx_v_grad_phi_w->data), ((double *)__pyx_v_grad_phi_n->data), ((double *)__pyx_v_dphi_w_w->data), ((double *)__pyx_v_dphi_w_n->data), ((double *)__pyx_v_dphi_n_w->data), ((double *)__pyx_v_dphi_n_n->data), ((double *)__pyx_v_psi_w->data), ((double *)__pyx_v_psi_c->data), ((double *)__pyx_v_psi_n->data), ((double *)__pyx_v_dpsi_n_dpsiw->data), ((double *)__pyx_v_dpsi_n_dpsic->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_grad_v->data), ((double *)__pyx_v_penalty_w->data), ((double *)__pyx_v_penalty_n->data), ((double *)__pyx_v_fluxJacobian_ww->data), ((double *)__pyx_v_fluxJacobian_wn->data), ((double *)__pyx_v_fluxJacobian_nw->data), ((double *)__pyx_v_fluxJacobian_nn->data));
15944 
15945  /* "cnumericalFlux.pyx":3883
15946  * <double*> fluxJacobian_nw.data,
15947  * <double*> fluxJacobian_nn.data)
15948  * def calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
15949  * np.ndarray colind_ww,
15950  * np.ndarray rowptr_nn,
15951  */
15952 
15953  /* function exit code */
15954  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15955  __Pyx_XGIVEREF(__pyx_r);
15956  __Pyx_RefNannyFinishContext();
15957  return __pyx_r;
15958 }
15959 
15960 /* "cnumericalFlux.pyx":3964
15961  * <double*> fluxJacobian_nn.data)
15962  *
15963  * def calculateInteriorNumericalFluxShallowWater_1D(double h_eps, # <<<<<<<<<<<<<<
15964  * double tol_u,
15965  * double g,
15966  */
15967 
15968 /* Python wrapper */
15969 static PyObject *__pyx_pw_14cnumericalFlux_85calculateInteriorNumericalFluxShallowWater_1D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15970 static PyMethodDef __pyx_mdef_14cnumericalFlux_85calculateInteriorNumericalFluxShallowWater_1D = {"calculateInteriorNumericalFluxShallowWater_1D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_85calculateInteriorNumericalFluxShallowWater_1D, METH_VARARGS|METH_KEYWORDS, 0};
15971 static PyObject *__pyx_pw_14cnumericalFlux_85calculateInteriorNumericalFluxShallowWater_1D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
15972  double __pyx_v_h_eps;
15973  double __pyx_v_tol_u;
15974  double __pyx_v_g;
15975  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
15976  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
15977  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
15978  PyArrayObject *__pyx_v_n = 0;
15979  PyArrayObject *__pyx_v_h = 0;
15980  PyArrayObject *__pyx_v_hu = 0;
15981  PyArrayObject *__pyx_v_flux_h = 0;
15982  PyArrayObject *__pyx_v_flux_hu = 0;
15983  int __pyx_lineno = 0;
15984  const char *__pyx_filename = NULL;
15985  int __pyx_clineno = 0;
15986  PyObject *__pyx_r = 0;
15987  __Pyx_RefNannyDeclarations
15988  __Pyx_RefNannySetupContext("calculateInteriorNumericalFluxShallowWater_1D (wrapper)", 0);
15989  {
15990  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_h_eps,&__pyx_n_s_tol_u,&__pyx_n_s_g,&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_h,&__pyx_n_s_hu,&__pyx_n_s_flux_h,&__pyx_n_s_flux_hu,0};
15991  PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
15992  if (unlikely(__pyx_kwds)) {
15993  Py_ssize_t kw_args;
15994  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
15995  switch (pos_args) {
15996  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
15997  CYTHON_FALLTHROUGH;
15998  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
15999  CYTHON_FALLTHROUGH;
16000  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
16001  CYTHON_FALLTHROUGH;
16002  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
16003  CYTHON_FALLTHROUGH;
16004  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
16005  CYTHON_FALLTHROUGH;
16006  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
16007  CYTHON_FALLTHROUGH;
16008  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
16009  CYTHON_FALLTHROUGH;
16010  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
16011  CYTHON_FALLTHROUGH;
16012  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16013  CYTHON_FALLTHROUGH;
16014  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16015  CYTHON_FALLTHROUGH;
16016  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16017  CYTHON_FALLTHROUGH;
16018  case 0: break;
16019  default: goto __pyx_L5_argtuple_error;
16020  }
16021  kw_args = PyDict_Size(__pyx_kwds);
16022  switch (pos_args) {
16023  case 0:
16024  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h_eps)) != 0)) kw_args--;
16025  else goto __pyx_L5_argtuple_error;
16026  CYTHON_FALLTHROUGH;
16027  case 1:
16028  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tol_u)) != 0)) kw_args--;
16029  else {
16030  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_1D", 1, 11, 11, 1); __PYX_ERR(0, 3964, __pyx_L3_error)
16031  }
16032  CYTHON_FALLTHROUGH;
16033  case 2:
16034  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--;
16035  else {
16036  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_1D", 1, 11, 11, 2); __PYX_ERR(0, 3964, __pyx_L3_error)
16037  }
16038  CYTHON_FALLTHROUGH;
16039  case 3:
16040  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
16041  else {
16042  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_1D", 1, 11, 11, 3); __PYX_ERR(0, 3964, __pyx_L3_error)
16043  }
16044  CYTHON_FALLTHROUGH;
16045  case 4:
16046  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
16047  else {
16048  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_1D", 1, 11, 11, 4); __PYX_ERR(0, 3964, __pyx_L3_error)
16049  }
16050  CYTHON_FALLTHROUGH;
16051  case 5:
16052  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
16053  else {
16054  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_1D", 1, 11, 11, 5); __PYX_ERR(0, 3964, __pyx_L3_error)
16055  }
16056  CYTHON_FALLTHROUGH;
16057  case 6:
16058  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
16059  else {
16060  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_1D", 1, 11, 11, 6); __PYX_ERR(0, 3964, __pyx_L3_error)
16061  }
16062  CYTHON_FALLTHROUGH;
16063  case 7:
16064  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
16065  else {
16066  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_1D", 1, 11, 11, 7); __PYX_ERR(0, 3964, __pyx_L3_error)
16067  }
16068  CYTHON_FALLTHROUGH;
16069  case 8:
16070  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hu)) != 0)) kw_args--;
16071  else {
16072  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_1D", 1, 11, 11, 8); __PYX_ERR(0, 3964, __pyx_L3_error)
16073  }
16074  CYTHON_FALLTHROUGH;
16075  case 9:
16076  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_h)) != 0)) kw_args--;
16077  else {
16078  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_1D", 1, 11, 11, 9); __PYX_ERR(0, 3964, __pyx_L3_error)
16079  }
16080  CYTHON_FALLTHROUGH;
16081  case 10:
16082  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_hu)) != 0)) kw_args--;
16083  else {
16084  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_1D", 1, 11, 11, 10); __PYX_ERR(0, 3964, __pyx_L3_error)
16085  }
16086  }
16087  if (unlikely(kw_args > 0)) {
16088  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateInteriorNumericalFluxShallowWater_1D") < 0)) __PYX_ERR(0, 3964, __pyx_L3_error)
16089  }
16090  } else if (PyTuple_GET_SIZE(__pyx_args) != 11) {
16091  goto __pyx_L5_argtuple_error;
16092  } else {
16093  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16094  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16095  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16096  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
16097  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
16098  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
16099  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
16100  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
16101  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
16102  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
16103  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
16104  }
16105  __pyx_v_h_eps = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_h_eps == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3964, __pyx_L3_error)
16106  __pyx_v_tol_u = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_tol_u == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3965, __pyx_L3_error)
16107  __pyx_v_g = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_g == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3966, __pyx_L3_error)
16108  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[3]);
16109  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
16110  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
16111  __pyx_v_n = ((PyArrayObject *)values[6]);
16112  __pyx_v_h = ((PyArrayObject *)values[7]);
16113  __pyx_v_hu = ((PyArrayObject *)values[8]);
16114  __pyx_v_flux_h = ((PyArrayObject *)values[9]);
16115  __pyx_v_flux_hu = ((PyArrayObject *)values[10]);
16116  }
16117  goto __pyx_L4_argument_unpacking_done;
16118  __pyx_L5_argtuple_error:;
16119  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_1D", 1, 11, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3964, __pyx_L3_error)
16120  __pyx_L3_error:;
16121  __Pyx_AddTraceback("cnumericalFlux.calculateInteriorNumericalFluxShallowWater_1D", __pyx_clineno, __pyx_lineno, __pyx_filename);
16122  __Pyx_RefNannyFinishContext();
16123  return NULL;
16124  __pyx_L4_argument_unpacking_done:;
16125  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 3967, __pyx_L1_error)
16126  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 3968, __pyx_L1_error)
16127  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 3969, __pyx_L1_error)
16128  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3970, __pyx_L1_error)
16129  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_h), __pyx_ptype_5numpy_ndarray, 1, "h", 0))) __PYX_ERR(0, 3971, __pyx_L1_error)
16130  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hu), __pyx_ptype_5numpy_ndarray, 1, "hu", 0))) __PYX_ERR(0, 3972, __pyx_L1_error)
16131  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_h), __pyx_ptype_5numpy_ndarray, 1, "flux_h", 0))) __PYX_ERR(0, 3973, __pyx_L1_error)
16132  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_hu), __pyx_ptype_5numpy_ndarray, 1, "flux_hu", 0))) __PYX_ERR(0, 3974, __pyx_L1_error)
16133  __pyx_r = __pyx_pf_14cnumericalFlux_84calculateInteriorNumericalFluxShallowWater_1D(__pyx_self, __pyx_v_h_eps, __pyx_v_tol_u, __pyx_v_g, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_h, __pyx_v_hu, __pyx_v_flux_h, __pyx_v_flux_hu);
16134 
16135  /* function exit code */
16136  goto __pyx_L0;
16137  __pyx_L1_error:;
16138  __pyx_r = NULL;
16139  __pyx_L0:;
16140  __Pyx_RefNannyFinishContext();
16141  return __pyx_r;
16142 }
16143 
16144 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) {
16145  PyObject *__pyx_r = NULL;
16146  __Pyx_RefNannyDeclarations
16147  __Pyx_RefNannySetupContext("calculateInteriorNumericalFluxShallowWater_1D", 0);
16148 
16149  /* "cnumericalFlux.pyx":3975
16150  * np.ndarray flux_h,
16151  * np.ndarray flux_hu):
16152  * ccalculateInteriorNumericalFluxShallowWater_1D(interiorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
16153  * hu.shape[1],
16154  * hu.shape[2],
16155  */
16156  calculateInteriorNumericalFluxShallowWater_1D((__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_hu->dimensions[1]), (__pyx_v_hu->dimensions[2]), __pyx_v_h_eps, __pyx_v_tol_u, __pyx_v_g, ((int *)__pyx_v_interiorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_h->data), ((double *)__pyx_v_hu->data), ((double *)__pyx_v_flux_h->data), ((double *)__pyx_v_flux_hu->data));
16157 
16158  /* "cnumericalFlux.pyx":3964
16159  * <double*> fluxJacobian_nn.data)
16160  *
16161  * def calculateInteriorNumericalFluxShallowWater_1D(double h_eps, # <<<<<<<<<<<<<<
16162  * double tol_u,
16163  * double g,
16164  */
16165 
16166  /* function exit code */
16167  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16168  __Pyx_XGIVEREF(__pyx_r);
16169  __Pyx_RefNannyFinishContext();
16170  return __pyx_r;
16171 }
16172 
16173 /* "cnumericalFlux.pyx":3989
16174  * <double*> flux_h.data,
16175  * <double*> flux_hu.data)
16176  * def calculateExteriorNumericalFluxShallowWater_1D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
16177  * double h_eps,
16178  * double tol_u,
16179  */
16180 
16181 /* Python wrapper */
16182 static PyObject *__pyx_pw_14cnumericalFlux_87calculateExteriorNumericalFluxShallowWater_1D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16183 static PyMethodDef __pyx_mdef_14cnumericalFlux_87calculateExteriorNumericalFluxShallowWater_1D = {"calculateExteriorNumericalFluxShallowWater_1D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_87calculateExteriorNumericalFluxShallowWater_1D, METH_VARARGS|METH_KEYWORDS, 0};
16184 static PyObject *__pyx_pw_14cnumericalFlux_87calculateExteriorNumericalFluxShallowWater_1D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16185  int __pyx_v_nExteriorElementBoundaries_global;
16186  double __pyx_v_h_eps;
16187  double __pyx_v_tol_u;
16188  double __pyx_v_g;
16189  PyArrayObject *__pyx_v_n = 0;
16190  PyArrayObject *__pyx_v_h_lv = 0;
16191  PyArrayObject *__pyx_v_hu_lv = 0;
16192  PyArrayObject *__pyx_v_h_rv = 0;
16193  PyArrayObject *__pyx_v_hu_rv = 0;
16194  PyArrayObject *__pyx_v_flux_h = 0;
16195  PyArrayObject *__pyx_v_flux_hu = 0;
16196  int __pyx_lineno = 0;
16197  const char *__pyx_filename = NULL;
16198  int __pyx_clineno = 0;
16199  PyObject *__pyx_r = 0;
16200  __Pyx_RefNannyDeclarations
16201  __Pyx_RefNannySetupContext("calculateExteriorNumericalFluxShallowWater_1D (wrapper)", 0);
16202  {
16203  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_h_eps,&__pyx_n_s_tol_u,&__pyx_n_s_g,&__pyx_n_s_n,&__pyx_n_s_h_lv,&__pyx_n_s_hu_lv,&__pyx_n_s_h_rv,&__pyx_n_s_hu_rv,&__pyx_n_s_flux_h,&__pyx_n_s_flux_hu,0};
16204  PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
16205  if (unlikely(__pyx_kwds)) {
16206  Py_ssize_t kw_args;
16207  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16208  switch (pos_args) {
16209  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
16210  CYTHON_FALLTHROUGH;
16211  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
16212  CYTHON_FALLTHROUGH;
16213  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
16214  CYTHON_FALLTHROUGH;
16215  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
16216  CYTHON_FALLTHROUGH;
16217  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
16218  CYTHON_FALLTHROUGH;
16219  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
16220  CYTHON_FALLTHROUGH;
16221  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
16222  CYTHON_FALLTHROUGH;
16223  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
16224  CYTHON_FALLTHROUGH;
16225  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16226  CYTHON_FALLTHROUGH;
16227  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16228  CYTHON_FALLTHROUGH;
16229  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16230  CYTHON_FALLTHROUGH;
16231  case 0: break;
16232  default: goto __pyx_L5_argtuple_error;
16233  }
16234  kw_args = PyDict_Size(__pyx_kwds);
16235  switch (pos_args) {
16236  case 0:
16237  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
16238  else goto __pyx_L5_argtuple_error;
16239  CYTHON_FALLTHROUGH;
16240  case 1:
16241  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h_eps)) != 0)) kw_args--;
16242  else {
16243  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_1D", 1, 11, 11, 1); __PYX_ERR(0, 3989, __pyx_L3_error)
16244  }
16245  CYTHON_FALLTHROUGH;
16246  case 2:
16247  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tol_u)) != 0)) kw_args--;
16248  else {
16249  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_1D", 1, 11, 11, 2); __PYX_ERR(0, 3989, __pyx_L3_error)
16250  }
16251  CYTHON_FALLTHROUGH;
16252  case 3:
16253  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--;
16254  else {
16255  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_1D", 1, 11, 11, 3); __PYX_ERR(0, 3989, __pyx_L3_error)
16256  }
16257  CYTHON_FALLTHROUGH;
16258  case 4:
16259  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
16260  else {
16261  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_1D", 1, 11, 11, 4); __PYX_ERR(0, 3989, __pyx_L3_error)
16262  }
16263  CYTHON_FALLTHROUGH;
16264  case 5:
16265  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h_lv)) != 0)) kw_args--;
16266  else {
16267  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_1D", 1, 11, 11, 5); __PYX_ERR(0, 3989, __pyx_L3_error)
16268  }
16269  CYTHON_FALLTHROUGH;
16270  case 6:
16271  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hu_lv)) != 0)) kw_args--;
16272  else {
16273  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_1D", 1, 11, 11, 6); __PYX_ERR(0, 3989, __pyx_L3_error)
16274  }
16275  CYTHON_FALLTHROUGH;
16276  case 7:
16277  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h_rv)) != 0)) kw_args--;
16278  else {
16279  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_1D", 1, 11, 11, 7); __PYX_ERR(0, 3989, __pyx_L3_error)
16280  }
16281  CYTHON_FALLTHROUGH;
16282  case 8:
16283  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hu_rv)) != 0)) kw_args--;
16284  else {
16285  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_1D", 1, 11, 11, 8); __PYX_ERR(0, 3989, __pyx_L3_error)
16286  }
16287  CYTHON_FALLTHROUGH;
16288  case 9:
16289  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_h)) != 0)) kw_args--;
16290  else {
16291  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_1D", 1, 11, 11, 9); __PYX_ERR(0, 3989, __pyx_L3_error)
16292  }
16293  CYTHON_FALLTHROUGH;
16294  case 10:
16295  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_hu)) != 0)) kw_args--;
16296  else {
16297  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_1D", 1, 11, 11, 10); __PYX_ERR(0, 3989, __pyx_L3_error)
16298  }
16299  }
16300  if (unlikely(kw_args > 0)) {
16301  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalFluxShallowWater_1D") < 0)) __PYX_ERR(0, 3989, __pyx_L3_error)
16302  }
16303  } else if (PyTuple_GET_SIZE(__pyx_args) != 11) {
16304  goto __pyx_L5_argtuple_error;
16305  } else {
16306  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16307  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16308  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16309  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
16310  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
16311  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
16312  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
16313  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
16314  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
16315  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
16316  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
16317  }
16318  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3989, __pyx_L3_error)
16319  __pyx_v_h_eps = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_h_eps == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3990, __pyx_L3_error)
16320  __pyx_v_tol_u = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_tol_u == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3991, __pyx_L3_error)
16321  __pyx_v_g = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_g == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3992, __pyx_L3_error)
16322  __pyx_v_n = ((PyArrayObject *)values[4]);
16323  __pyx_v_h_lv = ((PyArrayObject *)values[5]);
16324  __pyx_v_hu_lv = ((PyArrayObject *)values[6]);
16325  __pyx_v_h_rv = ((PyArrayObject *)values[7]);
16326  __pyx_v_hu_rv = ((PyArrayObject *)values[8]);
16327  __pyx_v_flux_h = ((PyArrayObject *)values[9]);
16328  __pyx_v_flux_hu = ((PyArrayObject *)values[10]);
16329  }
16330  goto __pyx_L4_argument_unpacking_done;
16331  __pyx_L5_argtuple_error:;
16332  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_1D", 1, 11, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3989, __pyx_L3_error)
16333  __pyx_L3_error:;
16334  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalFluxShallowWater_1D", __pyx_clineno, __pyx_lineno, __pyx_filename);
16335  __Pyx_RefNannyFinishContext();
16336  return NULL;
16337  __pyx_L4_argument_unpacking_done:;
16338  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 3993, __pyx_L1_error)
16339  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_h_lv), __pyx_ptype_5numpy_ndarray, 1, "h_lv", 0))) __PYX_ERR(0, 3994, __pyx_L1_error)
16340  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hu_lv), __pyx_ptype_5numpy_ndarray, 1, "hu_lv", 0))) __PYX_ERR(0, 3995, __pyx_L1_error)
16341  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_h_rv), __pyx_ptype_5numpy_ndarray, 1, "h_rv", 0))) __PYX_ERR(0, 3996, __pyx_L1_error)
16342  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hu_rv), __pyx_ptype_5numpy_ndarray, 1, "hu_rv", 0))) __PYX_ERR(0, 3997, __pyx_L1_error)
16343  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_h), __pyx_ptype_5numpy_ndarray, 1, "flux_h", 0))) __PYX_ERR(0, 3998, __pyx_L1_error)
16344  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_hu), __pyx_ptype_5numpy_ndarray, 1, "flux_hu", 0))) __PYX_ERR(0, 3999, __pyx_L1_error)
16345  __pyx_r = __pyx_pf_14cnumericalFlux_86calculateExteriorNumericalFluxShallowWater_1D(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_h_eps, __pyx_v_tol_u, __pyx_v_g, __pyx_v_n, __pyx_v_h_lv, __pyx_v_hu_lv, __pyx_v_h_rv, __pyx_v_hu_rv, __pyx_v_flux_h, __pyx_v_flux_hu);
16346 
16347  /* function exit code */
16348  goto __pyx_L0;
16349  __pyx_L1_error:;
16350  __pyx_r = NULL;
16351  __pyx_L0:;
16352  __Pyx_RefNannyFinishContext();
16353  return __pyx_r;
16354 }
16355 
16356 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) {
16357  PyObject *__pyx_r = NULL;
16358  __Pyx_RefNannyDeclarations
16359  __Pyx_RefNannySetupContext("calculateExteriorNumericalFluxShallowWater_1D", 0);
16360 
16361  /* "cnumericalFlux.pyx":4000
16362  * np.ndarray flux_h,
16363  * np.ndarray flux_hu):
16364  * ccalculateExteriorNumericalFluxShallowWater_1D( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
16365  * hu_lv.shape[1],
16366  * h_eps,
16367  */
16368  calculateExteriorNumericalFluxShallowWater_1D(__pyx_v_nExteriorElementBoundaries_global, (__pyx_v_hu_lv->dimensions[1]), __pyx_v_h_eps, __pyx_v_tol_u, __pyx_v_g, ((double *)__pyx_v_n->data), ((double *)__pyx_v_h_lv->data), ((double *)__pyx_v_hu_lv->data), ((double *)__pyx_v_h_rv->data), ((double *)__pyx_v_hu_rv->data), ((double *)__pyx_v_flux_h->data), ((double *)__pyx_v_flux_hu->data));
16369 
16370  /* "cnumericalFlux.pyx":3989
16371  * <double*> flux_h.data,
16372  * <double*> flux_hu.data)
16373  * def calculateExteriorNumericalFluxShallowWater_1D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
16374  * double h_eps,
16375  * double tol_u,
16376  */
16377 
16378  /* function exit code */
16379  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16380  __Pyx_XGIVEREF(__pyx_r);
16381  __Pyx_RefNannyFinishContext();
16382  return __pyx_r;
16383 }
16384 
16385 /* "cnumericalFlux.pyx":4012
16386  * <double*> flux_h.data,
16387  * <double*> flux_hu.data)
16388  * def calculateInteriorNumericalFluxShallowWater_2D(double h_eps, # <<<<<<<<<<<<<<
16389  * double tol_u,
16390  * double g,
16391  */
16392 
16393 /* Python wrapper */
16394 static PyObject *__pyx_pw_14cnumericalFlux_89calculateInteriorNumericalFluxShallowWater_2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16395 static PyMethodDef __pyx_mdef_14cnumericalFlux_89calculateInteriorNumericalFluxShallowWater_2D = {"calculateInteriorNumericalFluxShallowWater_2D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_89calculateInteriorNumericalFluxShallowWater_2D, METH_VARARGS|METH_KEYWORDS, 0};
16396 static PyObject *__pyx_pw_14cnumericalFlux_89calculateInteriorNumericalFluxShallowWater_2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16397  double __pyx_v_h_eps;
16398  double __pyx_v_tol_u;
16399  double __pyx_v_g;
16400  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
16401  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
16402  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
16403  PyArrayObject *__pyx_v_n = 0;
16404  PyArrayObject *__pyx_v_h = 0;
16405  PyArrayObject *__pyx_v_hu = 0;
16406  PyArrayObject *__pyx_v_hv = 0;
16407  PyArrayObject *__pyx_v_flux_h = 0;
16408  PyArrayObject *__pyx_v_flux_hu = 0;
16409  PyArrayObject *__pyx_v_flux_hv = 0;
16410  int __pyx_lineno = 0;
16411  const char *__pyx_filename = NULL;
16412  int __pyx_clineno = 0;
16413  PyObject *__pyx_r = 0;
16414  __Pyx_RefNannyDeclarations
16415  __Pyx_RefNannySetupContext("calculateInteriorNumericalFluxShallowWater_2D (wrapper)", 0);
16416  {
16417  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_h_eps,&__pyx_n_s_tol_u,&__pyx_n_s_g,&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_h,&__pyx_n_s_hu,&__pyx_n_s_hv,&__pyx_n_s_flux_h,&__pyx_n_s_flux_hu,&__pyx_n_s_flux_hv,0};
16418  PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
16419  if (unlikely(__pyx_kwds)) {
16420  Py_ssize_t kw_args;
16421  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16422  switch (pos_args) {
16423  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
16424  CYTHON_FALLTHROUGH;
16425  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
16426  CYTHON_FALLTHROUGH;
16427  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
16428  CYTHON_FALLTHROUGH;
16429  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
16430  CYTHON_FALLTHROUGH;
16431  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
16432  CYTHON_FALLTHROUGH;
16433  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
16434  CYTHON_FALLTHROUGH;
16435  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
16436  CYTHON_FALLTHROUGH;
16437  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
16438  CYTHON_FALLTHROUGH;
16439  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
16440  CYTHON_FALLTHROUGH;
16441  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
16442  CYTHON_FALLTHROUGH;
16443  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16444  CYTHON_FALLTHROUGH;
16445  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16446  CYTHON_FALLTHROUGH;
16447  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16448  CYTHON_FALLTHROUGH;
16449  case 0: break;
16450  default: goto __pyx_L5_argtuple_error;
16451  }
16452  kw_args = PyDict_Size(__pyx_kwds);
16453  switch (pos_args) {
16454  case 0:
16455  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h_eps)) != 0)) kw_args--;
16456  else goto __pyx_L5_argtuple_error;
16457  CYTHON_FALLTHROUGH;
16458  case 1:
16459  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tol_u)) != 0)) kw_args--;
16460  else {
16461  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_2D", 1, 13, 13, 1); __PYX_ERR(0, 4012, __pyx_L3_error)
16462  }
16463  CYTHON_FALLTHROUGH;
16464  case 2:
16465  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--;
16466  else {
16467  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_2D", 1, 13, 13, 2); __PYX_ERR(0, 4012, __pyx_L3_error)
16468  }
16469  CYTHON_FALLTHROUGH;
16470  case 3:
16471  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
16472  else {
16473  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_2D", 1, 13, 13, 3); __PYX_ERR(0, 4012, __pyx_L3_error)
16474  }
16475  CYTHON_FALLTHROUGH;
16476  case 4:
16477  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
16478  else {
16479  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_2D", 1, 13, 13, 4); __PYX_ERR(0, 4012, __pyx_L3_error)
16480  }
16481  CYTHON_FALLTHROUGH;
16482  case 5:
16483  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
16484  else {
16485  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_2D", 1, 13, 13, 5); __PYX_ERR(0, 4012, __pyx_L3_error)
16486  }
16487  CYTHON_FALLTHROUGH;
16488  case 6:
16489  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
16490  else {
16491  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_2D", 1, 13, 13, 6); __PYX_ERR(0, 4012, __pyx_L3_error)
16492  }
16493  CYTHON_FALLTHROUGH;
16494  case 7:
16495  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
16496  else {
16497  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_2D", 1, 13, 13, 7); __PYX_ERR(0, 4012, __pyx_L3_error)
16498  }
16499  CYTHON_FALLTHROUGH;
16500  case 8:
16501  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hu)) != 0)) kw_args--;
16502  else {
16503  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_2D", 1, 13, 13, 8); __PYX_ERR(0, 4012, __pyx_L3_error)
16504  }
16505  CYTHON_FALLTHROUGH;
16506  case 9:
16507  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hv)) != 0)) kw_args--;
16508  else {
16509  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_2D", 1, 13, 13, 9); __PYX_ERR(0, 4012, __pyx_L3_error)
16510  }
16511  CYTHON_FALLTHROUGH;
16512  case 10:
16513  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_h)) != 0)) kw_args--;
16514  else {
16515  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_2D", 1, 13, 13, 10); __PYX_ERR(0, 4012, __pyx_L3_error)
16516  }
16517  CYTHON_FALLTHROUGH;
16518  case 11:
16519  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_hu)) != 0)) kw_args--;
16520  else {
16521  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_2D", 1, 13, 13, 11); __PYX_ERR(0, 4012, __pyx_L3_error)
16522  }
16523  CYTHON_FALLTHROUGH;
16524  case 12:
16525  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_hv)) != 0)) kw_args--;
16526  else {
16527  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_2D", 1, 13, 13, 12); __PYX_ERR(0, 4012, __pyx_L3_error)
16528  }
16529  }
16530  if (unlikely(kw_args > 0)) {
16531  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateInteriorNumericalFluxShallowWater_2D") < 0)) __PYX_ERR(0, 4012, __pyx_L3_error)
16532  }
16533  } else if (PyTuple_GET_SIZE(__pyx_args) != 13) {
16534  goto __pyx_L5_argtuple_error;
16535  } else {
16536  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16537  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16538  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16539  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
16540  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
16541  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
16542  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
16543  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
16544  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
16545  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
16546  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
16547  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
16548  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
16549  }
16550  __pyx_v_h_eps = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_h_eps == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4012, __pyx_L3_error)
16551  __pyx_v_tol_u = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_tol_u == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4013, __pyx_L3_error)
16552  __pyx_v_g = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_g == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4014, __pyx_L3_error)
16553  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[3]);
16554  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
16555  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
16556  __pyx_v_n = ((PyArrayObject *)values[6]);
16557  __pyx_v_h = ((PyArrayObject *)values[7]);
16558  __pyx_v_hu = ((PyArrayObject *)values[8]);
16559  __pyx_v_hv = ((PyArrayObject *)values[9]);
16560  __pyx_v_flux_h = ((PyArrayObject *)values[10]);
16561  __pyx_v_flux_hu = ((PyArrayObject *)values[11]);
16562  __pyx_v_flux_hv = ((PyArrayObject *)values[12]);
16563  }
16564  goto __pyx_L4_argument_unpacking_done;
16565  __pyx_L5_argtuple_error:;
16566  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWater_2D", 1, 13, 13, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4012, __pyx_L3_error)
16567  __pyx_L3_error:;
16568  __Pyx_AddTraceback("cnumericalFlux.calculateInteriorNumericalFluxShallowWater_2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
16569  __Pyx_RefNannyFinishContext();
16570  return NULL;
16571  __pyx_L4_argument_unpacking_done:;
16572  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 4015, __pyx_L1_error)
16573  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4016, __pyx_L1_error)
16574  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4017, __pyx_L1_error)
16575  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4018, __pyx_L1_error)
16576  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_h), __pyx_ptype_5numpy_ndarray, 1, "h", 0))) __PYX_ERR(0, 4019, __pyx_L1_error)
16577  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hu), __pyx_ptype_5numpy_ndarray, 1, "hu", 0))) __PYX_ERR(0, 4020, __pyx_L1_error)
16578  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hv), __pyx_ptype_5numpy_ndarray, 1, "hv", 0))) __PYX_ERR(0, 4021, __pyx_L1_error)
16579  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_h), __pyx_ptype_5numpy_ndarray, 1, "flux_h", 0))) __PYX_ERR(0, 4022, __pyx_L1_error)
16580  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_hu), __pyx_ptype_5numpy_ndarray, 1, "flux_hu", 0))) __PYX_ERR(0, 4023, __pyx_L1_error)
16581  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_hv), __pyx_ptype_5numpy_ndarray, 1, "flux_hv", 0))) __PYX_ERR(0, 4024, __pyx_L1_error)
16582  __pyx_r = __pyx_pf_14cnumericalFlux_88calculateInteriorNumericalFluxShallowWater_2D(__pyx_self, __pyx_v_h_eps, __pyx_v_tol_u, __pyx_v_g, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_h, __pyx_v_hu, __pyx_v_hv, __pyx_v_flux_h, __pyx_v_flux_hu, __pyx_v_flux_hv);
16583 
16584  /* function exit code */
16585  goto __pyx_L0;
16586  __pyx_L1_error:;
16587  __pyx_r = NULL;
16588  __pyx_L0:;
16589  __Pyx_RefNannyFinishContext();
16590  return __pyx_r;
16591 }
16592 
16593 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) {
16594  PyObject *__pyx_r = NULL;
16595  __Pyx_RefNannyDeclarations
16596  __Pyx_RefNannySetupContext("calculateInteriorNumericalFluxShallowWater_2D", 0);
16597 
16598  /* "cnumericalFlux.pyx":4025
16599  * np.ndarray flux_hu,
16600  * np.ndarray flux_hv):
16601  * ccalculateInteriorNumericalFluxShallowWater_2D(interiorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
16602  * hu.shape[1],
16603  * hu.shape[2],
16604  */
16605  calculateInteriorNumericalFluxShallowWater_2D((__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_hu->dimensions[1]), (__pyx_v_hu->dimensions[2]), __pyx_v_h_eps, __pyx_v_tol_u, __pyx_v_g, ((int *)__pyx_v_interiorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_h->data), ((double *)__pyx_v_hu->data), ((double *)__pyx_v_hv->data), ((double *)__pyx_v_flux_h->data), ((double *)__pyx_v_flux_hu->data), ((double *)__pyx_v_flux_hv->data));
16606 
16607  /* "cnumericalFlux.pyx":4012
16608  * <double*> flux_h.data,
16609  * <double*> flux_hu.data)
16610  * def calculateInteriorNumericalFluxShallowWater_2D(double h_eps, # <<<<<<<<<<<<<<
16611  * double tol_u,
16612  * double g,
16613  */
16614 
16615  /* function exit code */
16616  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16617  __Pyx_XGIVEREF(__pyx_r);
16618  __Pyx_RefNannyFinishContext();
16619  return __pyx_r;
16620 }
16621 
16622 /* "cnumericalFlux.pyx":4041
16623  * <double*> flux_hu.data,
16624  * <double*> flux_hv.data)
16625  * def calculateExteriorNumericalFluxShallowWater_2D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
16626  * double h_eps,
16627  * double tol_u,
16628  */
16629 
16630 /* Python wrapper */
16631 static PyObject *__pyx_pw_14cnumericalFlux_91calculateExteriorNumericalFluxShallowWater_2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16632 static PyMethodDef __pyx_mdef_14cnumericalFlux_91calculateExteriorNumericalFluxShallowWater_2D = {"calculateExteriorNumericalFluxShallowWater_2D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_91calculateExteriorNumericalFluxShallowWater_2D, METH_VARARGS|METH_KEYWORDS, 0};
16633 static PyObject *__pyx_pw_14cnumericalFlux_91calculateExteriorNumericalFluxShallowWater_2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16634  int __pyx_v_nExteriorElementBoundaries_global;
16635  double __pyx_v_h_eps;
16636  double __pyx_v_tol_u;
16637  double __pyx_v_g;
16638  PyArrayObject *__pyx_v_n = 0;
16639  PyArrayObject *__pyx_v_h_lq = 0;
16640  PyArrayObject *__pyx_v_hu_lq = 0;
16641  PyArrayObject *__pyx_v_hv_lq = 0;
16642  PyArrayObject *__pyx_v_h_rq = 0;
16643  PyArrayObject *__pyx_v_hu_rq = 0;
16644  PyArrayObject *__pyx_v_hv_rq = 0;
16645  PyArrayObject *__pyx_v_flux_h = 0;
16646  PyArrayObject *__pyx_v_flux_hu = 0;
16647  PyArrayObject *__pyx_v_flux_hv = 0;
16648  int __pyx_lineno = 0;
16649  const char *__pyx_filename = NULL;
16650  int __pyx_clineno = 0;
16651  PyObject *__pyx_r = 0;
16652  __Pyx_RefNannyDeclarations
16653  __Pyx_RefNannySetupContext("calculateExteriorNumericalFluxShallowWater_2D (wrapper)", 0);
16654  {
16655  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_h_eps,&__pyx_n_s_tol_u,&__pyx_n_s_g,&__pyx_n_s_n,&__pyx_n_s_h_lq,&__pyx_n_s_hu_lq,&__pyx_n_s_hv_lq,&__pyx_n_s_h_rq,&__pyx_n_s_hu_rq,&__pyx_n_s_hv_rq,&__pyx_n_s_flux_h,&__pyx_n_s_flux_hu,&__pyx_n_s_flux_hv,0};
16656  PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
16657  if (unlikely(__pyx_kwds)) {
16658  Py_ssize_t kw_args;
16659  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16660  switch (pos_args) {
16661  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
16662  CYTHON_FALLTHROUGH;
16663  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
16664  CYTHON_FALLTHROUGH;
16665  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
16666  CYTHON_FALLTHROUGH;
16667  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
16668  CYTHON_FALLTHROUGH;
16669  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
16670  CYTHON_FALLTHROUGH;
16671  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
16672  CYTHON_FALLTHROUGH;
16673  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
16674  CYTHON_FALLTHROUGH;
16675  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
16676  CYTHON_FALLTHROUGH;
16677  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
16678  CYTHON_FALLTHROUGH;
16679  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
16680  CYTHON_FALLTHROUGH;
16681  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
16682  CYTHON_FALLTHROUGH;
16683  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16684  CYTHON_FALLTHROUGH;
16685  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16686  CYTHON_FALLTHROUGH;
16687  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16688  CYTHON_FALLTHROUGH;
16689  case 0: break;
16690  default: goto __pyx_L5_argtuple_error;
16691  }
16692  kw_args = PyDict_Size(__pyx_kwds);
16693  switch (pos_args) {
16694  case 0:
16695  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
16696  else goto __pyx_L5_argtuple_error;
16697  CYTHON_FALLTHROUGH;
16698  case 1:
16699  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h_eps)) != 0)) kw_args--;
16700  else {
16701  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_2D", 1, 14, 14, 1); __PYX_ERR(0, 4041, __pyx_L3_error)
16702  }
16703  CYTHON_FALLTHROUGH;
16704  case 2:
16705  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tol_u)) != 0)) kw_args--;
16706  else {
16707  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_2D", 1, 14, 14, 2); __PYX_ERR(0, 4041, __pyx_L3_error)
16708  }
16709  CYTHON_FALLTHROUGH;
16710  case 3:
16711  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--;
16712  else {
16713  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_2D", 1, 14, 14, 3); __PYX_ERR(0, 4041, __pyx_L3_error)
16714  }
16715  CYTHON_FALLTHROUGH;
16716  case 4:
16717  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
16718  else {
16719  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_2D", 1, 14, 14, 4); __PYX_ERR(0, 4041, __pyx_L3_error)
16720  }
16721  CYTHON_FALLTHROUGH;
16722  case 5:
16723  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h_lq)) != 0)) kw_args--;
16724  else {
16725  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_2D", 1, 14, 14, 5); __PYX_ERR(0, 4041, __pyx_L3_error)
16726  }
16727  CYTHON_FALLTHROUGH;
16728  case 6:
16729  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hu_lq)) != 0)) kw_args--;
16730  else {
16731  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_2D", 1, 14, 14, 6); __PYX_ERR(0, 4041, __pyx_L3_error)
16732  }
16733  CYTHON_FALLTHROUGH;
16734  case 7:
16735  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hv_lq)) != 0)) kw_args--;
16736  else {
16737  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_2D", 1, 14, 14, 7); __PYX_ERR(0, 4041, __pyx_L3_error)
16738  }
16739  CYTHON_FALLTHROUGH;
16740  case 8:
16741  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h_rq)) != 0)) kw_args--;
16742  else {
16743  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_2D", 1, 14, 14, 8); __PYX_ERR(0, 4041, __pyx_L3_error)
16744  }
16745  CYTHON_FALLTHROUGH;
16746  case 9:
16747  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hu_rq)) != 0)) kw_args--;
16748  else {
16749  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_2D", 1, 14, 14, 9); __PYX_ERR(0, 4041, __pyx_L3_error)
16750  }
16751  CYTHON_FALLTHROUGH;
16752  case 10:
16753  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hv_rq)) != 0)) kw_args--;
16754  else {
16755  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_2D", 1, 14, 14, 10); __PYX_ERR(0, 4041, __pyx_L3_error)
16756  }
16757  CYTHON_FALLTHROUGH;
16758  case 11:
16759  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_h)) != 0)) kw_args--;
16760  else {
16761  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_2D", 1, 14, 14, 11); __PYX_ERR(0, 4041, __pyx_L3_error)
16762  }
16763  CYTHON_FALLTHROUGH;
16764  case 12:
16765  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_hu)) != 0)) kw_args--;
16766  else {
16767  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_2D", 1, 14, 14, 12); __PYX_ERR(0, 4041, __pyx_L3_error)
16768  }
16769  CYTHON_FALLTHROUGH;
16770  case 13:
16771  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_hv)) != 0)) kw_args--;
16772  else {
16773  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_2D", 1, 14, 14, 13); __PYX_ERR(0, 4041, __pyx_L3_error)
16774  }
16775  }
16776  if (unlikely(kw_args > 0)) {
16777  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalFluxShallowWater_2D") < 0)) __PYX_ERR(0, 4041, __pyx_L3_error)
16778  }
16779  } else if (PyTuple_GET_SIZE(__pyx_args) != 14) {
16780  goto __pyx_L5_argtuple_error;
16781  } else {
16782  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16783  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16784  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16785  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
16786  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
16787  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
16788  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
16789  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
16790  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
16791  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
16792  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
16793  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
16794  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
16795  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
16796  }
16797  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4041, __pyx_L3_error)
16798  __pyx_v_h_eps = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_h_eps == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4042, __pyx_L3_error)
16799  __pyx_v_tol_u = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_tol_u == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4043, __pyx_L3_error)
16800  __pyx_v_g = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_g == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4044, __pyx_L3_error)
16801  __pyx_v_n = ((PyArrayObject *)values[4]);
16802  __pyx_v_h_lq = ((PyArrayObject *)values[5]);
16803  __pyx_v_hu_lq = ((PyArrayObject *)values[6]);
16804  __pyx_v_hv_lq = ((PyArrayObject *)values[7]);
16805  __pyx_v_h_rq = ((PyArrayObject *)values[8]);
16806  __pyx_v_hu_rq = ((PyArrayObject *)values[9]);
16807  __pyx_v_hv_rq = ((PyArrayObject *)values[10]);
16808  __pyx_v_flux_h = ((PyArrayObject *)values[11]);
16809  __pyx_v_flux_hu = ((PyArrayObject *)values[12]);
16810  __pyx_v_flux_hv = ((PyArrayObject *)values[13]);
16811  }
16812  goto __pyx_L4_argument_unpacking_done;
16813  __pyx_L5_argtuple_error:;
16814  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWater_2D", 1, 14, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4041, __pyx_L3_error)
16815  __pyx_L3_error:;
16816  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalFluxShallowWater_2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
16817  __Pyx_RefNannyFinishContext();
16818  return NULL;
16819  __pyx_L4_argument_unpacking_done:;
16820  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4045, __pyx_L1_error)
16821  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_h_lq), __pyx_ptype_5numpy_ndarray, 1, "h_lq", 0))) __PYX_ERR(0, 4046, __pyx_L1_error)
16822  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hu_lq), __pyx_ptype_5numpy_ndarray, 1, "hu_lq", 0))) __PYX_ERR(0, 4047, __pyx_L1_error)
16823  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hv_lq), __pyx_ptype_5numpy_ndarray, 1, "hv_lq", 0))) __PYX_ERR(0, 4048, __pyx_L1_error)
16824  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_h_rq), __pyx_ptype_5numpy_ndarray, 1, "h_rq", 0))) __PYX_ERR(0, 4049, __pyx_L1_error)
16825  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hu_rq), __pyx_ptype_5numpy_ndarray, 1, "hu_rq", 0))) __PYX_ERR(0, 4050, __pyx_L1_error)
16826  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hv_rq), __pyx_ptype_5numpy_ndarray, 1, "hv_rq", 0))) __PYX_ERR(0, 4051, __pyx_L1_error)
16827  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_h), __pyx_ptype_5numpy_ndarray, 1, "flux_h", 0))) __PYX_ERR(0, 4052, __pyx_L1_error)
16828  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_hu), __pyx_ptype_5numpy_ndarray, 1, "flux_hu", 0))) __PYX_ERR(0, 4053, __pyx_L1_error)
16829  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_hv), __pyx_ptype_5numpy_ndarray, 1, "flux_hv", 0))) __PYX_ERR(0, 4054, __pyx_L1_error)
16830  __pyx_r = __pyx_pf_14cnumericalFlux_90calculateExteriorNumericalFluxShallowWater_2D(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_h_eps, __pyx_v_tol_u, __pyx_v_g, __pyx_v_n, __pyx_v_h_lq, __pyx_v_hu_lq, __pyx_v_hv_lq, __pyx_v_h_rq, __pyx_v_hu_rq, __pyx_v_hv_rq, __pyx_v_flux_h, __pyx_v_flux_hu, __pyx_v_flux_hv);
16831 
16832  /* function exit code */
16833  goto __pyx_L0;
16834  __pyx_L1_error:;
16835  __pyx_r = NULL;
16836  __pyx_L0:;
16837  __Pyx_RefNannyFinishContext();
16838  return __pyx_r;
16839 }
16840 
16841 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) {
16842  PyObject *__pyx_r = NULL;
16843  __Pyx_RefNannyDeclarations
16844  __Pyx_RefNannySetupContext("calculateExteriorNumericalFluxShallowWater_2D", 0);
16845 
16846  /* "cnumericalFlux.pyx":4055
16847  * np.ndarray flux_hu,
16848  * np.ndarray flux_hv):
16849  * ccalculateExteriorNumericalFluxShallowWater_2D( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
16850  * hu_lq.shape[1],
16851  * h_eps,
16852  */
16853  calculateExteriorNumericalFluxShallowWater_2D(__pyx_v_nExteriorElementBoundaries_global, (__pyx_v_hu_lq->dimensions[1]), __pyx_v_h_eps, __pyx_v_tol_u, __pyx_v_g, ((double *)__pyx_v_n->data), ((double *)__pyx_v_h_lq->data), ((double *)__pyx_v_hu_lq->data), ((double *)__pyx_v_hv_lq->data), ((double *)__pyx_v_h_rq->data), ((double *)__pyx_v_hu_rq->data), ((double *)__pyx_v_hv_rq->data), ((double *)__pyx_v_flux_h->data), ((double *)__pyx_v_flux_hu->data), ((double *)__pyx_v_flux_hv->data));
16854 
16855  /* "cnumericalFlux.pyx":4041
16856  * <double*> flux_hu.data,
16857  * <double*> flux_hv.data)
16858  * def calculateExteriorNumericalFluxShallowWater_2D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
16859  * double h_eps,
16860  * double tol_u,
16861  */
16862 
16863  /* function exit code */
16864  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16865  __Pyx_XGIVEREF(__pyx_r);
16866  __Pyx_RefNannyFinishContext();
16867  return __pyx_r;
16868 }
16869 
16870 /* "cnumericalFlux.pyx":4070
16871  * <double*> flux_hu.data,
16872  * <double*> flux_hv.data)
16873  * def calculateInteriorNumericalFluxShallowWaterHLL_1D(double h_eps, # <<<<<<<<<<<<<<
16874  * double tol_u,
16875  * double g,
16876  */
16877 
16878 /* Python wrapper */
16879 static PyObject *__pyx_pw_14cnumericalFlux_93calculateInteriorNumericalFluxShallowWaterHLL_1D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16880 static PyMethodDef __pyx_mdef_14cnumericalFlux_93calculateInteriorNumericalFluxShallowWaterHLL_1D = {"calculateInteriorNumericalFluxShallowWaterHLL_1D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_93calculateInteriorNumericalFluxShallowWaterHLL_1D, METH_VARARGS|METH_KEYWORDS, 0};
16881 static PyObject *__pyx_pw_14cnumericalFlux_93calculateInteriorNumericalFluxShallowWaterHLL_1D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16882  double __pyx_v_h_eps;
16883  double __pyx_v_tol_u;
16884  double __pyx_v_g;
16885  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
16886  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
16887  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
16888  PyArrayObject *__pyx_v_n = 0;
16889  PyArrayObject *__pyx_v_h = 0;
16890  PyArrayObject *__pyx_v_hu = 0;
16891  PyArrayObject *__pyx_v_flux_h = 0;
16892  PyArrayObject *__pyx_v_flux_hu = 0;
16893  int __pyx_lineno = 0;
16894  const char *__pyx_filename = NULL;
16895  int __pyx_clineno = 0;
16896  PyObject *__pyx_r = 0;
16897  __Pyx_RefNannyDeclarations
16898  __Pyx_RefNannySetupContext("calculateInteriorNumericalFluxShallowWaterHLL_1D (wrapper)", 0);
16899  {
16900  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_h_eps,&__pyx_n_s_tol_u,&__pyx_n_s_g,&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_h,&__pyx_n_s_hu,&__pyx_n_s_flux_h,&__pyx_n_s_flux_hu,0};
16901  PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
16902  if (unlikely(__pyx_kwds)) {
16903  Py_ssize_t kw_args;
16904  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16905  switch (pos_args) {
16906  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
16907  CYTHON_FALLTHROUGH;
16908  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
16909  CYTHON_FALLTHROUGH;
16910  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
16911  CYTHON_FALLTHROUGH;
16912  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
16913  CYTHON_FALLTHROUGH;
16914  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
16915  CYTHON_FALLTHROUGH;
16916  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
16917  CYTHON_FALLTHROUGH;
16918  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
16919  CYTHON_FALLTHROUGH;
16920  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
16921  CYTHON_FALLTHROUGH;
16922  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16923  CYTHON_FALLTHROUGH;
16924  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16925  CYTHON_FALLTHROUGH;
16926  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16927  CYTHON_FALLTHROUGH;
16928  case 0: break;
16929  default: goto __pyx_L5_argtuple_error;
16930  }
16931  kw_args = PyDict_Size(__pyx_kwds);
16932  switch (pos_args) {
16933  case 0:
16934  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h_eps)) != 0)) kw_args--;
16935  else goto __pyx_L5_argtuple_error;
16936  CYTHON_FALLTHROUGH;
16937  case 1:
16938  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tol_u)) != 0)) kw_args--;
16939  else {
16940  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 1); __PYX_ERR(0, 4070, __pyx_L3_error)
16941  }
16942  CYTHON_FALLTHROUGH;
16943  case 2:
16944  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--;
16945  else {
16946  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 2); __PYX_ERR(0, 4070, __pyx_L3_error)
16947  }
16948  CYTHON_FALLTHROUGH;
16949  case 3:
16950  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
16951  else {
16952  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 3); __PYX_ERR(0, 4070, __pyx_L3_error)
16953  }
16954  CYTHON_FALLTHROUGH;
16955  case 4:
16956  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
16957  else {
16958  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 4); __PYX_ERR(0, 4070, __pyx_L3_error)
16959  }
16960  CYTHON_FALLTHROUGH;
16961  case 5:
16962  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
16963  else {
16964  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 5); __PYX_ERR(0, 4070, __pyx_L3_error)
16965  }
16966  CYTHON_FALLTHROUGH;
16967  case 6:
16968  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
16969  else {
16970  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 6); __PYX_ERR(0, 4070, __pyx_L3_error)
16971  }
16972  CYTHON_FALLTHROUGH;
16973  case 7:
16974  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
16975  else {
16976  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 7); __PYX_ERR(0, 4070, __pyx_L3_error)
16977  }
16978  CYTHON_FALLTHROUGH;
16979  case 8:
16980  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hu)) != 0)) kw_args--;
16981  else {
16982  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 8); __PYX_ERR(0, 4070, __pyx_L3_error)
16983  }
16984  CYTHON_FALLTHROUGH;
16985  case 9:
16986  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_h)) != 0)) kw_args--;
16987  else {
16988  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 9); __PYX_ERR(0, 4070, __pyx_L3_error)
16989  }
16990  CYTHON_FALLTHROUGH;
16991  case 10:
16992  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_hu)) != 0)) kw_args--;
16993  else {
16994  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 10); __PYX_ERR(0, 4070, __pyx_L3_error)
16995  }
16996  }
16997  if (unlikely(kw_args > 0)) {
16998  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateInteriorNumericalFluxShallowWaterHLL_1D") < 0)) __PYX_ERR(0, 4070, __pyx_L3_error)
16999  }
17000  } else if (PyTuple_GET_SIZE(__pyx_args) != 11) {
17001  goto __pyx_L5_argtuple_error;
17002  } else {
17003  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17004  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17005  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17006  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
17007  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
17008  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
17009  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
17010  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
17011  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
17012  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
17013  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
17014  }
17015  __pyx_v_h_eps = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_h_eps == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4070, __pyx_L3_error)
17016  __pyx_v_tol_u = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_tol_u == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4071, __pyx_L3_error)
17017  __pyx_v_g = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_g == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4072, __pyx_L3_error)
17018  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[3]);
17019  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
17020  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
17021  __pyx_v_n = ((PyArrayObject *)values[6]);
17022  __pyx_v_h = ((PyArrayObject *)values[7]);
17023  __pyx_v_hu = ((PyArrayObject *)values[8]);
17024  __pyx_v_flux_h = ((PyArrayObject *)values[9]);
17025  __pyx_v_flux_hu = ((PyArrayObject *)values[10]);
17026  }
17027  goto __pyx_L4_argument_unpacking_done;
17028  __pyx_L5_argtuple_error:;
17029  __Pyx_RaiseArgtupleInvalid("calculateInteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4070, __pyx_L3_error)
17030  __pyx_L3_error:;
17031  __Pyx_AddTraceback("cnumericalFlux.calculateInteriorNumericalFluxShallowWaterHLL_1D", __pyx_clineno, __pyx_lineno, __pyx_filename);
17032  __Pyx_RefNannyFinishContext();
17033  return NULL;
17034  __pyx_L4_argument_unpacking_done:;
17035  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 4073, __pyx_L1_error)
17036  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4074, __pyx_L1_error)
17037  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4075, __pyx_L1_error)
17038  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4076, __pyx_L1_error)
17039  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_h), __pyx_ptype_5numpy_ndarray, 1, "h", 0))) __PYX_ERR(0, 4077, __pyx_L1_error)
17040  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hu), __pyx_ptype_5numpy_ndarray, 1, "hu", 0))) __PYX_ERR(0, 4078, __pyx_L1_error)
17041  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_h), __pyx_ptype_5numpy_ndarray, 1, "flux_h", 0))) __PYX_ERR(0, 4079, __pyx_L1_error)
17042  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_hu), __pyx_ptype_5numpy_ndarray, 1, "flux_hu", 0))) __PYX_ERR(0, 4080, __pyx_L1_error)
17043  __pyx_r = __pyx_pf_14cnumericalFlux_92calculateInteriorNumericalFluxShallowWaterHLL_1D(__pyx_self, __pyx_v_h_eps, __pyx_v_tol_u, __pyx_v_g, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_h, __pyx_v_hu, __pyx_v_flux_h, __pyx_v_flux_hu);
17044 
17045  /* function exit code */
17046  goto __pyx_L0;
17047  __pyx_L1_error:;
17048  __pyx_r = NULL;
17049  __pyx_L0:;
17050  __Pyx_RefNannyFinishContext();
17051  return __pyx_r;
17052 }
17053 
17054 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) {
17055  PyObject *__pyx_r = NULL;
17056  __Pyx_RefNannyDeclarations
17057  __Pyx_RefNannySetupContext("calculateInteriorNumericalFluxShallowWaterHLL_1D", 0);
17058 
17059  /* "cnumericalFlux.pyx":4081
17060  * np.ndarray flux_h,
17061  * np.ndarray flux_hu):
17062  * ccalculateInteriorNumericalFluxShallowWaterHLL_1D(interiorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
17063  * hu.shape[1],
17064  * hu.shape[2],
17065  */
17066  calculateInteriorNumericalFluxShallowWaterHLL_1D((__pyx_v_interiorElementBoundaries->dimensions[0]), (__pyx_v_hu->dimensions[1]), (__pyx_v_hu->dimensions[2]), __pyx_v_h_eps, __pyx_v_tol_u, __pyx_v_g, ((int *)__pyx_v_interiorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_h->data), ((double *)__pyx_v_hu->data), ((double *)__pyx_v_flux_h->data), ((double *)__pyx_v_flux_hu->data));
17067 
17068  /* "cnumericalFlux.pyx":4070
17069  * <double*> flux_hu.data,
17070  * <double*> flux_hv.data)
17071  * def calculateInteriorNumericalFluxShallowWaterHLL_1D(double h_eps, # <<<<<<<<<<<<<<
17072  * double tol_u,
17073  * double g,
17074  */
17075 
17076  /* function exit code */
17077  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
17078  __Pyx_XGIVEREF(__pyx_r);
17079  __Pyx_RefNannyFinishContext();
17080  return __pyx_r;
17081 }
17082 
17083 /* "cnumericalFlux.pyx":4095
17084  * <double*> flux_h.data,
17085  * <double*> flux_hu.data)
17086  * def calculateExteriorNumericalFluxShallowWaterHLL_1D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
17087  * double h_eps,
17088  * double tol_u,
17089  */
17090 
17091 /* Python wrapper */
17092 static PyObject *__pyx_pw_14cnumericalFlux_95calculateExteriorNumericalFluxShallowWaterHLL_1D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
17093 static PyMethodDef __pyx_mdef_14cnumericalFlux_95calculateExteriorNumericalFluxShallowWaterHLL_1D = {"calculateExteriorNumericalFluxShallowWaterHLL_1D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_95calculateExteriorNumericalFluxShallowWaterHLL_1D, METH_VARARGS|METH_KEYWORDS, 0};
17094 static PyObject *__pyx_pw_14cnumericalFlux_95calculateExteriorNumericalFluxShallowWaterHLL_1D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
17095  int __pyx_v_nExteriorElementBoundaries_global;
17096  double __pyx_v_h_eps;
17097  double __pyx_v_tol_u;
17098  double __pyx_v_g;
17099  PyArrayObject *__pyx_v_n = 0;
17100  PyArrayObject *__pyx_v_h_lv = 0;
17101  PyArrayObject *__pyx_v_hu_lv = 0;
17102  PyArrayObject *__pyx_v_h_rv = 0;
17103  PyArrayObject *__pyx_v_hu_rv = 0;
17104  PyArrayObject *__pyx_v_flux_h = 0;
17105  PyArrayObject *__pyx_v_flux_hu = 0;
17106  int __pyx_lineno = 0;
17107  const char *__pyx_filename = NULL;
17108  int __pyx_clineno = 0;
17109  PyObject *__pyx_r = 0;
17110  __Pyx_RefNannyDeclarations
17111  __Pyx_RefNannySetupContext("calculateExteriorNumericalFluxShallowWaterHLL_1D (wrapper)", 0);
17112  {
17113  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_h_eps,&__pyx_n_s_tol_u,&__pyx_n_s_g,&__pyx_n_s_n,&__pyx_n_s_h_lv,&__pyx_n_s_hu_lv,&__pyx_n_s_h_rv,&__pyx_n_s_hu_rv,&__pyx_n_s_flux_h,&__pyx_n_s_flux_hu,0};
17114  PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
17115  if (unlikely(__pyx_kwds)) {
17116  Py_ssize_t kw_args;
17117  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
17118  switch (pos_args) {
17119  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
17120  CYTHON_FALLTHROUGH;
17121  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
17122  CYTHON_FALLTHROUGH;
17123  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
17124  CYTHON_FALLTHROUGH;
17125  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
17126  CYTHON_FALLTHROUGH;
17127  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
17128  CYTHON_FALLTHROUGH;
17129  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
17130  CYTHON_FALLTHROUGH;
17131  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
17132  CYTHON_FALLTHROUGH;
17133  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
17134  CYTHON_FALLTHROUGH;
17135  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17136  CYTHON_FALLTHROUGH;
17137  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17138  CYTHON_FALLTHROUGH;
17139  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17140  CYTHON_FALLTHROUGH;
17141  case 0: break;
17142  default: goto __pyx_L5_argtuple_error;
17143  }
17144  kw_args = PyDict_Size(__pyx_kwds);
17145  switch (pos_args) {
17146  case 0:
17147  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
17148  else goto __pyx_L5_argtuple_error;
17149  CYTHON_FALLTHROUGH;
17150  case 1:
17151  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h_eps)) != 0)) kw_args--;
17152  else {
17153  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 1); __PYX_ERR(0, 4095, __pyx_L3_error)
17154  }
17155  CYTHON_FALLTHROUGH;
17156  case 2:
17157  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tol_u)) != 0)) kw_args--;
17158  else {
17159  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 2); __PYX_ERR(0, 4095, __pyx_L3_error)
17160  }
17161  CYTHON_FALLTHROUGH;
17162  case 3:
17163  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--;
17164  else {
17165  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 3); __PYX_ERR(0, 4095, __pyx_L3_error)
17166  }
17167  CYTHON_FALLTHROUGH;
17168  case 4:
17169  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
17170  else {
17171  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 4); __PYX_ERR(0, 4095, __pyx_L3_error)
17172  }
17173  CYTHON_FALLTHROUGH;
17174  case 5:
17175  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h_lv)) != 0)) kw_args--;
17176  else {
17177  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 5); __PYX_ERR(0, 4095, __pyx_L3_error)
17178  }
17179  CYTHON_FALLTHROUGH;
17180  case 6:
17181  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hu_lv)) != 0)) kw_args--;
17182  else {
17183  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 6); __PYX_ERR(0, 4095, __pyx_L3_error)
17184  }
17185  CYTHON_FALLTHROUGH;
17186  case 7:
17187  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h_rv)) != 0)) kw_args--;
17188  else {
17189  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 7); __PYX_ERR(0, 4095, __pyx_L3_error)
17190  }
17191  CYTHON_FALLTHROUGH;
17192  case 8:
17193  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hu_rv)) != 0)) kw_args--;
17194  else {
17195  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 8); __PYX_ERR(0, 4095, __pyx_L3_error)
17196  }
17197  CYTHON_FALLTHROUGH;
17198  case 9:
17199  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_h)) != 0)) kw_args--;
17200  else {
17201  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 9); __PYX_ERR(0, 4095, __pyx_L3_error)
17202  }
17203  CYTHON_FALLTHROUGH;
17204  case 10:
17205  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_hu)) != 0)) kw_args--;
17206  else {
17207  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, 10); __PYX_ERR(0, 4095, __pyx_L3_error)
17208  }
17209  }
17210  if (unlikely(kw_args > 0)) {
17211  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalFluxShallowWaterHLL_1D") < 0)) __PYX_ERR(0, 4095, __pyx_L3_error)
17212  }
17213  } else if (PyTuple_GET_SIZE(__pyx_args) != 11) {
17214  goto __pyx_L5_argtuple_error;
17215  } else {
17216  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17217  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17218  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17219  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
17220  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
17221  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
17222  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
17223  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
17224  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
17225  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
17226  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
17227  }
17228  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4095, __pyx_L3_error)
17229  __pyx_v_h_eps = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_h_eps == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4096, __pyx_L3_error)
17230  __pyx_v_tol_u = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_tol_u == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4097, __pyx_L3_error)
17231  __pyx_v_g = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_g == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4098, __pyx_L3_error)
17232  __pyx_v_n = ((PyArrayObject *)values[4]);
17233  __pyx_v_h_lv = ((PyArrayObject *)values[5]);
17234  __pyx_v_hu_lv = ((PyArrayObject *)values[6]);
17235  __pyx_v_h_rv = ((PyArrayObject *)values[7]);
17236  __pyx_v_hu_rv = ((PyArrayObject *)values[8]);
17237  __pyx_v_flux_h = ((PyArrayObject *)values[9]);
17238  __pyx_v_flux_hu = ((PyArrayObject *)values[10]);
17239  }
17240  goto __pyx_L4_argument_unpacking_done;
17241  __pyx_L5_argtuple_error:;
17242  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalFluxShallowWaterHLL_1D", 1, 11, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4095, __pyx_L3_error)
17243  __pyx_L3_error:;
17244  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalFluxShallowWaterHLL_1D", __pyx_clineno, __pyx_lineno, __pyx_filename);
17245  __Pyx_RefNannyFinishContext();
17246  return NULL;
17247  __pyx_L4_argument_unpacking_done:;
17248  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4099, __pyx_L1_error)
17249  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_h_lv), __pyx_ptype_5numpy_ndarray, 1, "h_lv", 0))) __PYX_ERR(0, 4100, __pyx_L1_error)
17250  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hu_lv), __pyx_ptype_5numpy_ndarray, 1, "hu_lv", 0))) __PYX_ERR(0, 4101, __pyx_L1_error)
17251  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_h_rv), __pyx_ptype_5numpy_ndarray, 1, "h_rv", 0))) __PYX_ERR(0, 4102, __pyx_L1_error)
17252  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hu_rv), __pyx_ptype_5numpy_ndarray, 1, "hu_rv", 0))) __PYX_ERR(0, 4103, __pyx_L1_error)
17253  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_h), __pyx_ptype_5numpy_ndarray, 1, "flux_h", 0))) __PYX_ERR(0, 4104, __pyx_L1_error)
17254  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_hu), __pyx_ptype_5numpy_ndarray, 1, "flux_hu", 0))) __PYX_ERR(0, 4105, __pyx_L1_error)
17255  __pyx_r = __pyx_pf_14cnumericalFlux_94calculateExteriorNumericalFluxShallowWaterHLL_1D(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_h_eps, __pyx_v_tol_u, __pyx_v_g, __pyx_v_n, __pyx_v_h_lv, __pyx_v_hu_lv, __pyx_v_h_rv, __pyx_v_hu_rv, __pyx_v_flux_h, __pyx_v_flux_hu);
17256 
17257  /* function exit code */
17258  goto __pyx_L0;
17259  __pyx_L1_error:;
17260  __pyx_r = NULL;
17261  __pyx_L0:;
17262  __Pyx_RefNannyFinishContext();
17263  return __pyx_r;
17264 }
17265 
17266 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) {
17267  PyObject *__pyx_r = NULL;
17268  __Pyx_RefNannyDeclarations
17269  __Pyx_RefNannySetupContext("calculateExteriorNumericalFluxShallowWaterHLL_1D", 0);
17270 
17271  /* "cnumericalFlux.pyx":4106
17272  * np.ndarray flux_h,
17273  * np.ndarray flux_hu):
17274  * ccalculateExteriorNumericalFluxShallowWaterHLL_1D( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
17275  * hu_lv.shape[1],
17276  * h_eps,
17277  */
17278  calculateExteriorNumericalFluxShallowWaterHLL_1D(__pyx_v_nExteriorElementBoundaries_global, (__pyx_v_hu_lv->dimensions[1]), __pyx_v_h_eps, __pyx_v_tol_u, __pyx_v_g, ((double *)__pyx_v_n->data), ((double *)__pyx_v_h_lv->data), ((double *)__pyx_v_hu_lv->data), ((double *)__pyx_v_h_rv->data), ((double *)__pyx_v_hu_rv->data), ((double *)__pyx_v_flux_h->data), ((double *)__pyx_v_flux_hu->data));
17279 
17280  /* "cnumericalFlux.pyx":4095
17281  * <double*> flux_h.data,
17282  * <double*> flux_hu.data)
17283  * def calculateExteriorNumericalFluxShallowWaterHLL_1D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
17284  * double h_eps,
17285  * double tol_u,
17286  */
17287 
17288  /* function exit code */
17289  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
17290  __Pyx_XGIVEREF(__pyx_r);
17291  __Pyx_RefNannyFinishContext();
17292  return __pyx_r;
17293 }
17294 
17295 /* "cnumericalFlux.pyx":4118
17296  * <double*> flux_h.data,
17297  * <double*> flux_hu.data)
17298  * def calculateGlobalExteriorNumericalStressFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
17299  * np.ndarray elementBoundaryElements,
17300  * np.ndarray elementBoundaryLocalElementBoundaries,
17301  */
17302 
17303 /* Python wrapper */
17304 static PyObject *__pyx_pw_14cnumericalFlux_97calculateGlobalExteriorNumericalStressFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
17305 static PyMethodDef __pyx_mdef_14cnumericalFlux_97calculateGlobalExteriorNumericalStressFlux = {"calculateGlobalExteriorNumericalStressFlux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_97calculateGlobalExteriorNumericalStressFlux, METH_VARARGS|METH_KEYWORDS, 0};
17306 static PyObject *__pyx_pw_14cnumericalFlux_97calculateGlobalExteriorNumericalStressFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
17307  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
17308  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
17309  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
17310  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
17311  PyArrayObject *__pyx_v_isDOFBoundary_v = 0;
17312  PyArrayObject *__pyx_v_isDOFBoundary_w = 0;
17313  PyArrayObject *__pyx_v_n = 0;
17314  PyArrayObject *__pyx_v_bc_u = 0;
17315  PyArrayObject *__pyx_v_bc_v = 0;
17316  PyArrayObject *__pyx_v_bc_w = 0;
17317  PyArrayObject *__pyx_v_sigma = 0;
17318  PyArrayObject *__pyx_v_u = 0;
17319  PyArrayObject *__pyx_v_v = 0;
17320  PyArrayObject *__pyx_v_w = 0;
17321  PyArrayObject *__pyx_v_penalty = 0;
17322  PyArrayObject *__pyx_v_stressFlux_u = 0;
17323  PyArrayObject *__pyx_v_stressFlux_v = 0;
17324  PyArrayObject *__pyx_v_stressFlux_w = 0;
17325  int __pyx_lineno = 0;
17326  const char *__pyx_filename = NULL;
17327  int __pyx_clineno = 0;
17328  PyObject *__pyx_r = 0;
17329  __Pyx_RefNannyDeclarations
17330  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalStressFlux (wrapper)", 0);
17331  {
17332  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_isDOFBoundary_v,&__pyx_n_s_isDOFBoundary_w,&__pyx_n_s_n,&__pyx_n_s_bc_u,&__pyx_n_s_bc_v,&__pyx_n_s_bc_w,&__pyx_n_s_sigma,&__pyx_n_s_u,&__pyx_n_s_v,&__pyx_n_s_w,&__pyx_n_s_penalty,&__pyx_n_s_stressFlux_u,&__pyx_n_s_stressFlux_v,&__pyx_n_s_stressFlux_w,0};
17333  PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
17334  if (unlikely(__pyx_kwds)) {
17335  Py_ssize_t kw_args;
17336  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
17337  switch (pos_args) {
17338  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
17339  CYTHON_FALLTHROUGH;
17340  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
17341  CYTHON_FALLTHROUGH;
17342  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
17343  CYTHON_FALLTHROUGH;
17344  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
17345  CYTHON_FALLTHROUGH;
17346  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
17347  CYTHON_FALLTHROUGH;
17348  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
17349  CYTHON_FALLTHROUGH;
17350  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
17351  CYTHON_FALLTHROUGH;
17352  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
17353  CYTHON_FALLTHROUGH;
17354  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
17355  CYTHON_FALLTHROUGH;
17356  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
17357  CYTHON_FALLTHROUGH;
17358  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
17359  CYTHON_FALLTHROUGH;
17360  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
17361  CYTHON_FALLTHROUGH;
17362  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
17363  CYTHON_FALLTHROUGH;
17364  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
17365  CYTHON_FALLTHROUGH;
17366  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
17367  CYTHON_FALLTHROUGH;
17368  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17369  CYTHON_FALLTHROUGH;
17370  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17371  CYTHON_FALLTHROUGH;
17372  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17373  CYTHON_FALLTHROUGH;
17374  case 0: break;
17375  default: goto __pyx_L5_argtuple_error;
17376  }
17377  kw_args = PyDict_Size(__pyx_kwds);
17378  switch (pos_args) {
17379  case 0:
17380  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
17381  else goto __pyx_L5_argtuple_error;
17382  CYTHON_FALLTHROUGH;
17383  case 1:
17384  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
17385  else {
17386  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 1); __PYX_ERR(0, 4118, __pyx_L3_error)
17387  }
17388  CYTHON_FALLTHROUGH;
17389  case 2:
17390  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
17391  else {
17392  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 2); __PYX_ERR(0, 4118, __pyx_L3_error)
17393  }
17394  CYTHON_FALLTHROUGH;
17395  case 3:
17396  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
17397  else {
17398  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 3); __PYX_ERR(0, 4118, __pyx_L3_error)
17399  }
17400  CYTHON_FALLTHROUGH;
17401  case 4:
17402  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_v)) != 0)) kw_args--;
17403  else {
17404  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 4); __PYX_ERR(0, 4118, __pyx_L3_error)
17405  }
17406  CYTHON_FALLTHROUGH;
17407  case 5:
17408  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_w)) != 0)) kw_args--;
17409  else {
17410  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 5); __PYX_ERR(0, 4118, __pyx_L3_error)
17411  }
17412  CYTHON_FALLTHROUGH;
17413  case 6:
17414  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
17415  else {
17416  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 6); __PYX_ERR(0, 4118, __pyx_L3_error)
17417  }
17418  CYTHON_FALLTHROUGH;
17419  case 7:
17420  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
17421  else {
17422  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 7); __PYX_ERR(0, 4118, __pyx_L3_error)
17423  }
17424  CYTHON_FALLTHROUGH;
17425  case 8:
17426  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_v)) != 0)) kw_args--;
17427  else {
17428  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 8); __PYX_ERR(0, 4118, __pyx_L3_error)
17429  }
17430  CYTHON_FALLTHROUGH;
17431  case 9:
17432  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_w)) != 0)) kw_args--;
17433  else {
17434  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 9); __PYX_ERR(0, 4118, __pyx_L3_error)
17435  }
17436  CYTHON_FALLTHROUGH;
17437  case 10:
17438  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
17439  else {
17440  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 10); __PYX_ERR(0, 4118, __pyx_L3_error)
17441  }
17442  CYTHON_FALLTHROUGH;
17443  case 11:
17444  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
17445  else {
17446  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 11); __PYX_ERR(0, 4118, __pyx_L3_error)
17447  }
17448  CYTHON_FALLTHROUGH;
17449  case 12:
17450  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
17451  else {
17452  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 12); __PYX_ERR(0, 4118, __pyx_L3_error)
17453  }
17454  CYTHON_FALLTHROUGH;
17455  case 13:
17456  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w)) != 0)) kw_args--;
17457  else {
17458  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 13); __PYX_ERR(0, 4118, __pyx_L3_error)
17459  }
17460  CYTHON_FALLTHROUGH;
17461  case 14:
17462  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
17463  else {
17464  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 14); __PYX_ERR(0, 4118, __pyx_L3_error)
17465  }
17466  CYTHON_FALLTHROUGH;
17467  case 15:
17468  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stressFlux_u)) != 0)) kw_args--;
17469  else {
17470  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 15); __PYX_ERR(0, 4118, __pyx_L3_error)
17471  }
17472  CYTHON_FALLTHROUGH;
17473  case 16:
17474  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stressFlux_v)) != 0)) kw_args--;
17475  else {
17476  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 16); __PYX_ERR(0, 4118, __pyx_L3_error)
17477  }
17478  CYTHON_FALLTHROUGH;
17479  case 17:
17480  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stressFlux_w)) != 0)) kw_args--;
17481  else {
17482  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, 17); __PYX_ERR(0, 4118, __pyx_L3_error)
17483  }
17484  }
17485  if (unlikely(kw_args > 0)) {
17486  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalStressFlux") < 0)) __PYX_ERR(0, 4118, __pyx_L3_error)
17487  }
17488  } else if (PyTuple_GET_SIZE(__pyx_args) != 18) {
17489  goto __pyx_L5_argtuple_error;
17490  } else {
17491  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17492  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17493  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17494  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
17495  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
17496  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
17497  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
17498  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
17499  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
17500  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
17501  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
17502  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
17503  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
17504  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
17505  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
17506  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
17507  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
17508  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
17509  }
17510  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
17511  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
17512  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
17513  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[3]);
17514  __pyx_v_isDOFBoundary_v = ((PyArrayObject *)values[4]);
17515  __pyx_v_isDOFBoundary_w = ((PyArrayObject *)values[5]);
17516  __pyx_v_n = ((PyArrayObject *)values[6]);
17517  __pyx_v_bc_u = ((PyArrayObject *)values[7]);
17518  __pyx_v_bc_v = ((PyArrayObject *)values[8]);
17519  __pyx_v_bc_w = ((PyArrayObject *)values[9]);
17520  __pyx_v_sigma = ((PyArrayObject *)values[10]);
17521  __pyx_v_u = ((PyArrayObject *)values[11]);
17522  __pyx_v_v = ((PyArrayObject *)values[12]);
17523  __pyx_v_w = ((PyArrayObject *)values[13]);
17524  __pyx_v_penalty = ((PyArrayObject *)values[14]);
17525  __pyx_v_stressFlux_u = ((PyArrayObject *)values[15]);
17526  __pyx_v_stressFlux_v = ((PyArrayObject *)values[16]);
17527  __pyx_v_stressFlux_w = ((PyArrayObject *)values[17]);
17528  }
17529  goto __pyx_L4_argument_unpacking_done;
17530  __pyx_L5_argtuple_error:;
17531  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalStressFlux", 1, 18, 18, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4118, __pyx_L3_error)
17532  __pyx_L3_error:;
17533  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalStressFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
17534  __Pyx_RefNannyFinishContext();
17535  return NULL;
17536  __pyx_L4_argument_unpacking_done:;
17537  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4118, __pyx_L1_error)
17538  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4119, __pyx_L1_error)
17539  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4120, __pyx_L1_error)
17540  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 4121, __pyx_L1_error)
17541  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_v", 0))) __PYX_ERR(0, 4122, __pyx_L1_error)
17542  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_w), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_w", 0))) __PYX_ERR(0, 4123, __pyx_L1_error)
17543  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4124, __pyx_L1_error)
17544  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 4125, __pyx_L1_error)
17545  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_v), __pyx_ptype_5numpy_ndarray, 1, "bc_v", 0))) __PYX_ERR(0, 4126, __pyx_L1_error)
17546  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_w), __pyx_ptype_5numpy_ndarray, 1, "bc_w", 0))) __PYX_ERR(0, 4127, __pyx_L1_error)
17547  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sigma), __pyx_ptype_5numpy_ndarray, 1, "sigma", 0))) __PYX_ERR(0, 4128, __pyx_L1_error)
17548  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 4129, __pyx_L1_error)
17549  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 4130, __pyx_L1_error)
17550  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w), __pyx_ptype_5numpy_ndarray, 1, "w", 0))) __PYX_ERR(0, 4131, __pyx_L1_error)
17551  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 4132, __pyx_L1_error)
17552  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_stressFlux_u), __pyx_ptype_5numpy_ndarray, 1, "stressFlux_u", 0))) __PYX_ERR(0, 4133, __pyx_L1_error)
17553  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_stressFlux_v), __pyx_ptype_5numpy_ndarray, 1, "stressFlux_v", 0))) __PYX_ERR(0, 4134, __pyx_L1_error)
17554  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_stressFlux_w), __pyx_ptype_5numpy_ndarray, 1, "stressFlux_w", 0))) __PYX_ERR(0, 4135, __pyx_L1_error)
17555  __pyx_r = __pyx_pf_14cnumericalFlux_96calculateGlobalExteriorNumericalStressFlux(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_u, __pyx_v_isDOFBoundary_v, __pyx_v_isDOFBoundary_w, __pyx_v_n, __pyx_v_bc_u, __pyx_v_bc_v, __pyx_v_bc_w, __pyx_v_sigma, __pyx_v_u, __pyx_v_v, __pyx_v_w, __pyx_v_penalty, __pyx_v_stressFlux_u, __pyx_v_stressFlux_v, __pyx_v_stressFlux_w);
17556 
17557  /* function exit code */
17558  goto __pyx_L0;
17559  __pyx_L1_error:;
17560  __pyx_r = NULL;
17561  __pyx_L0:;
17562  __Pyx_RefNannyFinishContext();
17563  return __pyx_r;
17564 }
17565 
17566 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) {
17567  PyObject *__pyx_r = NULL;
17568  __Pyx_RefNannyDeclarations
17569  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalStressFlux", 0);
17570 
17571  /* "cnumericalFlux.pyx":4136
17572  * np.ndarray stressFlux_v,
17573  * np.ndarray stressFlux_w):
17574  * ccalculateGlobalExteriorNumericalStressFlux(n.shape[0], # <<<<<<<<<<<<<<
17575  * n.shape[1],
17576  * n.shape[2],
17577  */
17578  calculateGlobalExteriorNumericalStressFlux((__pyx_v_n->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((int *)__pyx_v_isDOFBoundary_w->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_u->data), ((double *)__pyx_v_bc_v->data), ((double *)__pyx_v_bc_w->data), ((double *)__pyx_v_sigma->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_w->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_stressFlux_u->data), ((double *)__pyx_v_stressFlux_v->data), ((double *)__pyx_v_stressFlux_w->data));
17579 
17580  /* "cnumericalFlux.pyx":4118
17581  * <double*> flux_h.data,
17582  * <double*> flux_hu.data)
17583  * def calculateGlobalExteriorNumericalStressFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
17584  * np.ndarray elementBoundaryElements,
17585  * np.ndarray elementBoundaryLocalElementBoundaries,
17586  */
17587 
17588  /* function exit code */
17589  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
17590  __Pyx_XGIVEREF(__pyx_r);
17591  __Pyx_RefNannyFinishContext();
17592  return __pyx_r;
17593 }
17594 
17595 /* "cnumericalFlux.pyx":4158
17596  * <double*> stressFlux_w.data)
17597  * #######333333
17598  * def calculateExteriorNumericalAdvectiveFluxStokes3D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
17599  * int nQuadraturePoints_elementBoundary,
17600  * int nSpace,
17601  */
17602 
17603 /* Python wrapper */
17604 static PyObject *__pyx_pw_14cnumericalFlux_99calculateExteriorNumericalAdvectiveFluxStokes3D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
17605 static PyMethodDef __pyx_mdef_14cnumericalFlux_99calculateExteriorNumericalAdvectiveFluxStokes3D = {"calculateExteriorNumericalAdvectiveFluxStokes3D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_99calculateExteriorNumericalAdvectiveFluxStokes3D, METH_VARARGS|METH_KEYWORDS, 0};
17606 static PyObject *__pyx_pw_14cnumericalFlux_99calculateExteriorNumericalAdvectiveFluxStokes3D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
17607  int __pyx_v_nExteriorElementBoundaries_global;
17608  int __pyx_v_nQuadraturePoints_elementBoundary;
17609  int __pyx_v_nSpace;
17610  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
17611  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
17612  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
17613  PyArrayObject *__pyx_v_isDOFBoundary_p = 0;
17614  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
17615  PyArrayObject *__pyx_v_isDOFBoundary_v = 0;
17616  PyArrayObject *__pyx_v_isDOFBoundary_w = 0;
17617  PyArrayObject *__pyx_v_n = 0;
17618  PyArrayObject *__pyx_v_bc_p = 0;
17619  PyArrayObject *__pyx_v_bc_f_mass = 0;
17620  PyArrayObject *__pyx_v_p = 0;
17621  PyArrayObject *__pyx_v_f_mass = 0;
17622  PyArrayObject *__pyx_v_df_mass_du = 0;
17623  PyArrayObject *__pyx_v_df_mass_dv = 0;
17624  PyArrayObject *__pyx_v_df_mass_dw = 0;
17625  PyArrayObject *__pyx_v_flux_mass = 0;
17626  PyArrayObject *__pyx_v_flux_umom = 0;
17627  PyArrayObject *__pyx_v_flux_vmom = 0;
17628  PyArrayObject *__pyx_v_flux_wmom = 0;
17629  PyArrayObject *__pyx_v_dflux_mass_du = 0;
17630  PyArrayObject *__pyx_v_dflux_mass_dv = 0;
17631  PyArrayObject *__pyx_v_dflux_mass_dw = 0;
17632  PyArrayObject *__pyx_v_dflux_umom_dp = 0;
17633  PyArrayObject *__pyx_v_dflux_vmom_dp = 0;
17634  PyArrayObject *__pyx_v_dflux_wmom_dp = 0;
17635  PyArrayObject *__pyx_v_velocity = 0;
17636  int __pyx_lineno = 0;
17637  const char *__pyx_filename = NULL;
17638  int __pyx_clineno = 0;
17639  PyObject *__pyx_r = 0;
17640  __Pyx_RefNannyDeclarations
17641  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxStokes3D (wrapper)", 0);
17642  {
17643  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_p,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_isDOFBoundary_v,&__pyx_n_s_isDOFBoundary_w,&__pyx_n_s_n,&__pyx_n_s_bc_p,&__pyx_n_s_bc_f_mass,&__pyx_n_s_p,&__pyx_n_s_f_mass,&__pyx_n_s_df_mass_du,&__pyx_n_s_df_mass_dv,&__pyx_n_s_df_mass_dw,&__pyx_n_s_flux_mass,&__pyx_n_s_flux_umom,&__pyx_n_s_flux_vmom,&__pyx_n_s_flux_wmom,&__pyx_n_s_dflux_mass_du,&__pyx_n_s_dflux_mass_dv,&__pyx_n_s_dflux_mass_dw,&__pyx_n_s_dflux_umom_dp,&__pyx_n_s_dflux_vmom_dp,&__pyx_n_s_dflux_wmom_dp,&__pyx_n_s_velocity,0};
17644  PyObject* values[29] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
17645  if (unlikely(__pyx_kwds)) {
17646  Py_ssize_t kw_args;
17647  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
17648  switch (pos_args) {
17649  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
17650  CYTHON_FALLTHROUGH;
17651  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
17652  CYTHON_FALLTHROUGH;
17653  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
17654  CYTHON_FALLTHROUGH;
17655  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
17656  CYTHON_FALLTHROUGH;
17657  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
17658  CYTHON_FALLTHROUGH;
17659  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
17660  CYTHON_FALLTHROUGH;
17661  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
17662  CYTHON_FALLTHROUGH;
17663  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
17664  CYTHON_FALLTHROUGH;
17665  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
17666  CYTHON_FALLTHROUGH;
17667  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
17668  CYTHON_FALLTHROUGH;
17669  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
17670  CYTHON_FALLTHROUGH;
17671  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
17672  CYTHON_FALLTHROUGH;
17673  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
17674  CYTHON_FALLTHROUGH;
17675  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
17676  CYTHON_FALLTHROUGH;
17677  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
17678  CYTHON_FALLTHROUGH;
17679  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
17680  CYTHON_FALLTHROUGH;
17681  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
17682  CYTHON_FALLTHROUGH;
17683  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
17684  CYTHON_FALLTHROUGH;
17685  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
17686  CYTHON_FALLTHROUGH;
17687  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
17688  CYTHON_FALLTHROUGH;
17689  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
17690  CYTHON_FALLTHROUGH;
17691  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
17692  CYTHON_FALLTHROUGH;
17693  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
17694  CYTHON_FALLTHROUGH;
17695  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
17696  CYTHON_FALLTHROUGH;
17697  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
17698  CYTHON_FALLTHROUGH;
17699  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
17700  CYTHON_FALLTHROUGH;
17701  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17702  CYTHON_FALLTHROUGH;
17703  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17704  CYTHON_FALLTHROUGH;
17705  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17706  CYTHON_FALLTHROUGH;
17707  case 0: break;
17708  default: goto __pyx_L5_argtuple_error;
17709  }
17710  kw_args = PyDict_Size(__pyx_kwds);
17711  switch (pos_args) {
17712  case 0:
17713  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
17714  else goto __pyx_L5_argtuple_error;
17715  CYTHON_FALLTHROUGH;
17716  case 1:
17717  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
17718  else {
17719  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 1); __PYX_ERR(0, 4158, __pyx_L3_error)
17720  }
17721  CYTHON_FALLTHROUGH;
17722  case 2:
17723  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
17724  else {
17725  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 2); __PYX_ERR(0, 4158, __pyx_L3_error)
17726  }
17727  CYTHON_FALLTHROUGH;
17728  case 3:
17729  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
17730  else {
17731  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 3); __PYX_ERR(0, 4158, __pyx_L3_error)
17732  }
17733  CYTHON_FALLTHROUGH;
17734  case 4:
17735  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
17736  else {
17737  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 4); __PYX_ERR(0, 4158, __pyx_L3_error)
17738  }
17739  CYTHON_FALLTHROUGH;
17740  case 5:
17741  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
17742  else {
17743  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 5); __PYX_ERR(0, 4158, __pyx_L3_error)
17744  }
17745  CYTHON_FALLTHROUGH;
17746  case 6:
17747  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_p)) != 0)) kw_args--;
17748  else {
17749  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 6); __PYX_ERR(0, 4158, __pyx_L3_error)
17750  }
17751  CYTHON_FALLTHROUGH;
17752  case 7:
17753  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
17754  else {
17755  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 7); __PYX_ERR(0, 4158, __pyx_L3_error)
17756  }
17757  CYTHON_FALLTHROUGH;
17758  case 8:
17759  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_v)) != 0)) kw_args--;
17760  else {
17761  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 8); __PYX_ERR(0, 4158, __pyx_L3_error)
17762  }
17763  CYTHON_FALLTHROUGH;
17764  case 9:
17765  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_w)) != 0)) kw_args--;
17766  else {
17767  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 9); __PYX_ERR(0, 4158, __pyx_L3_error)
17768  }
17769  CYTHON_FALLTHROUGH;
17770  case 10:
17771  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
17772  else {
17773  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 10); __PYX_ERR(0, 4158, __pyx_L3_error)
17774  }
17775  CYTHON_FALLTHROUGH;
17776  case 11:
17777  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_p)) != 0)) kw_args--;
17778  else {
17779  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 11); __PYX_ERR(0, 4158, __pyx_L3_error)
17780  }
17781  CYTHON_FALLTHROUGH;
17782  case 12:
17783  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_mass)) != 0)) kw_args--;
17784  else {
17785  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 12); __PYX_ERR(0, 4158, __pyx_L3_error)
17786  }
17787  CYTHON_FALLTHROUGH;
17788  case 13:
17789  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--;
17790  else {
17791  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 13); __PYX_ERR(0, 4158, __pyx_L3_error)
17792  }
17793  CYTHON_FALLTHROUGH;
17794  case 14:
17795  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_mass)) != 0)) kw_args--;
17796  else {
17797  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 14); __PYX_ERR(0, 4158, __pyx_L3_error)
17798  }
17799  CYTHON_FALLTHROUGH;
17800  case 15:
17801  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_du)) != 0)) kw_args--;
17802  else {
17803  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 15); __PYX_ERR(0, 4158, __pyx_L3_error)
17804  }
17805  CYTHON_FALLTHROUGH;
17806  case 16:
17807  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_dv)) != 0)) kw_args--;
17808  else {
17809  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 16); __PYX_ERR(0, 4158, __pyx_L3_error)
17810  }
17811  CYTHON_FALLTHROUGH;
17812  case 17:
17813  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_dw)) != 0)) kw_args--;
17814  else {
17815  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 17); __PYX_ERR(0, 4158, __pyx_L3_error)
17816  }
17817  CYTHON_FALLTHROUGH;
17818  case 18:
17819  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_mass)) != 0)) kw_args--;
17820  else {
17821  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 18); __PYX_ERR(0, 4158, __pyx_L3_error)
17822  }
17823  CYTHON_FALLTHROUGH;
17824  case 19:
17825  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_umom)) != 0)) kw_args--;
17826  else {
17827  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 19); __PYX_ERR(0, 4158, __pyx_L3_error)
17828  }
17829  CYTHON_FALLTHROUGH;
17830  case 20:
17831  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_vmom)) != 0)) kw_args--;
17832  else {
17833  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 20); __PYX_ERR(0, 4158, __pyx_L3_error)
17834  }
17835  CYTHON_FALLTHROUGH;
17836  case 21:
17837  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_wmom)) != 0)) kw_args--;
17838  else {
17839  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 21); __PYX_ERR(0, 4158, __pyx_L3_error)
17840  }
17841  CYTHON_FALLTHROUGH;
17842  case 22:
17843  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_du)) != 0)) kw_args--;
17844  else {
17845  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 22); __PYX_ERR(0, 4158, __pyx_L3_error)
17846  }
17847  CYTHON_FALLTHROUGH;
17848  case 23:
17849  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_dv)) != 0)) kw_args--;
17850  else {
17851  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 23); __PYX_ERR(0, 4158, __pyx_L3_error)
17852  }
17853  CYTHON_FALLTHROUGH;
17854  case 24:
17855  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_dw)) != 0)) kw_args--;
17856  else {
17857  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 24); __PYX_ERR(0, 4158, __pyx_L3_error)
17858  }
17859  CYTHON_FALLTHROUGH;
17860  case 25:
17861  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_dp)) != 0)) kw_args--;
17862  else {
17863  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 25); __PYX_ERR(0, 4158, __pyx_L3_error)
17864  }
17865  CYTHON_FALLTHROUGH;
17866  case 26:
17867  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_dp)) != 0)) kw_args--;
17868  else {
17869  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 26); __PYX_ERR(0, 4158, __pyx_L3_error)
17870  }
17871  CYTHON_FALLTHROUGH;
17872  case 27:
17873  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_wmom_dp)) != 0)) kw_args--;
17874  else {
17875  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 27); __PYX_ERR(0, 4158, __pyx_L3_error)
17876  }
17877  CYTHON_FALLTHROUGH;
17878  case 28:
17879  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_velocity)) != 0)) kw_args--;
17880  else {
17881  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, 28); __PYX_ERR(0, 4158, __pyx_L3_error)
17882  }
17883  }
17884  if (unlikely(kw_args > 0)) {
17885  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalAdvectiveFluxStokes3D") < 0)) __PYX_ERR(0, 4158, __pyx_L3_error)
17886  }
17887  } else if (PyTuple_GET_SIZE(__pyx_args) != 29) {
17888  goto __pyx_L5_argtuple_error;
17889  } else {
17890  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17891  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17892  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17893  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
17894  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
17895  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
17896  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
17897  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
17898  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
17899  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
17900  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
17901  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
17902  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
17903  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
17904  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
17905  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
17906  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
17907  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
17908  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
17909  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
17910  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
17911  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
17912  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
17913  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
17914  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
17915  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
17916  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
17917  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
17918  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
17919  }
17920  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4158, __pyx_L3_error)
17921  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4159, __pyx_L3_error)
17922  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4160, __pyx_L3_error)
17923  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
17924  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
17925  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
17926  __pyx_v_isDOFBoundary_p = ((PyArrayObject *)values[6]);
17927  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[7]);
17928  __pyx_v_isDOFBoundary_v = ((PyArrayObject *)values[8]);
17929  __pyx_v_isDOFBoundary_w = ((PyArrayObject *)values[9]);
17930  __pyx_v_n = ((PyArrayObject *)values[10]);
17931  __pyx_v_bc_p = ((PyArrayObject *)values[11]);
17932  __pyx_v_bc_f_mass = ((PyArrayObject *)values[12]);
17933  __pyx_v_p = ((PyArrayObject *)values[13]);
17934  __pyx_v_f_mass = ((PyArrayObject *)values[14]);
17935  __pyx_v_df_mass_du = ((PyArrayObject *)values[15]);
17936  __pyx_v_df_mass_dv = ((PyArrayObject *)values[16]);
17937  __pyx_v_df_mass_dw = ((PyArrayObject *)values[17]);
17938  __pyx_v_flux_mass = ((PyArrayObject *)values[18]);
17939  __pyx_v_flux_umom = ((PyArrayObject *)values[19]);
17940  __pyx_v_flux_vmom = ((PyArrayObject *)values[20]);
17941  __pyx_v_flux_wmom = ((PyArrayObject *)values[21]);
17942  __pyx_v_dflux_mass_du = ((PyArrayObject *)values[22]);
17943  __pyx_v_dflux_mass_dv = ((PyArrayObject *)values[23]);
17944  __pyx_v_dflux_mass_dw = ((PyArrayObject *)values[24]);
17945  __pyx_v_dflux_umom_dp = ((PyArrayObject *)values[25]);
17946  __pyx_v_dflux_vmom_dp = ((PyArrayObject *)values[26]);
17947  __pyx_v_dflux_wmom_dp = ((PyArrayObject *)values[27]);
17948  __pyx_v_velocity = ((PyArrayObject *)values[28]);
17949  }
17950  goto __pyx_L4_argument_unpacking_done;
17951  __pyx_L5_argtuple_error:;
17952  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokes3D", 1, 29, 29, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4158, __pyx_L3_error)
17953  __pyx_L3_error:;
17954  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalAdvectiveFluxStokes3D", __pyx_clineno, __pyx_lineno, __pyx_filename);
17955  __Pyx_RefNannyFinishContext();
17956  return NULL;
17957  __pyx_L4_argument_unpacking_done:;
17958  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4161, __pyx_L1_error)
17959  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4162, __pyx_L1_error)
17960  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4163, __pyx_L1_error)
17961  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_p), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_p", 0))) __PYX_ERR(0, 4164, __pyx_L1_error)
17962  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 4165, __pyx_L1_error)
17963  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_v", 0))) __PYX_ERR(0, 4166, __pyx_L1_error)
17964  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_w), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_w", 0))) __PYX_ERR(0, 4167, __pyx_L1_error)
17965  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4168, __pyx_L1_error)
17966  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_p), __pyx_ptype_5numpy_ndarray, 1, "bc_p", 0))) __PYX_ERR(0, 4169, __pyx_L1_error)
17967  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_mass), __pyx_ptype_5numpy_ndarray, 1, "bc_f_mass", 0))) __PYX_ERR(0, 4170, __pyx_L1_error)
17968  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p), __pyx_ptype_5numpy_ndarray, 1, "p", 0))) __PYX_ERR(0, 4171, __pyx_L1_error)
17969  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_mass), __pyx_ptype_5numpy_ndarray, 1, "f_mass", 0))) __PYX_ERR(0, 4172, __pyx_L1_error)
17970  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_du), __pyx_ptype_5numpy_ndarray, 1, "df_mass_du", 0))) __PYX_ERR(0, 4173, __pyx_L1_error)
17971  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "df_mass_dv", 0))) __PYX_ERR(0, 4174, __pyx_L1_error)
17972  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_dw), __pyx_ptype_5numpy_ndarray, 1, "df_mass_dw", 0))) __PYX_ERR(0, 4175, __pyx_L1_error)
17973  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_mass), __pyx_ptype_5numpy_ndarray, 1, "flux_mass", 0))) __PYX_ERR(0, 4176, __pyx_L1_error)
17974  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_umom), __pyx_ptype_5numpy_ndarray, 1, "flux_umom", 0))) __PYX_ERR(0, 4177, __pyx_L1_error)
17975  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_vmom), __pyx_ptype_5numpy_ndarray, 1, "flux_vmom", 0))) __PYX_ERR(0, 4178, __pyx_L1_error)
17976  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_wmom), __pyx_ptype_5numpy_ndarray, 1, "flux_wmom", 0))) __PYX_ERR(0, 4179, __pyx_L1_error)
17977  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_du", 0))) __PYX_ERR(0, 4180, __pyx_L1_error)
17978  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_dv", 0))) __PYX_ERR(0, 4181, __pyx_L1_error)
17979  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_dw), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_dw", 0))) __PYX_ERR(0, 4182, __pyx_L1_error)
17980  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_dp", 0))) __PYX_ERR(0, 4183, __pyx_L1_error)
17981  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_dp", 0))) __PYX_ERR(0, 4184, __pyx_L1_error)
17982  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_wmom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_wmom_dp", 0))) __PYX_ERR(0, 4185, __pyx_L1_error)
17983  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_velocity), __pyx_ptype_5numpy_ndarray, 1, "velocity", 0))) __PYX_ERR(0, 4186, __pyx_L1_error)
17984  __pyx_r = __pyx_pf_14cnumericalFlux_98calculateExteriorNumericalAdvectiveFluxStokes3D(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_p, __pyx_v_isDOFBoundary_u, __pyx_v_isDOFBoundary_v, __pyx_v_isDOFBoundary_w, __pyx_v_n, __pyx_v_bc_p, __pyx_v_bc_f_mass, __pyx_v_p, __pyx_v_f_mass, __pyx_v_df_mass_du, __pyx_v_df_mass_dv, __pyx_v_df_mass_dw, __pyx_v_flux_mass, __pyx_v_flux_umom, __pyx_v_flux_vmom, __pyx_v_flux_wmom, __pyx_v_dflux_mass_du, __pyx_v_dflux_mass_dv, __pyx_v_dflux_mass_dw, __pyx_v_dflux_umom_dp, __pyx_v_dflux_vmom_dp, __pyx_v_dflux_wmom_dp, __pyx_v_velocity);
17985 
17986  /* function exit code */
17987  goto __pyx_L0;
17988  __pyx_L1_error:;
17989  __pyx_r = NULL;
17990  __pyx_L0:;
17991  __Pyx_RefNannyFinishContext();
17992  return __pyx_r;
17993 }
17994 
17995 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) {
17996  PyObject *__pyx_r = NULL;
17997  __Pyx_RefNannyDeclarations
17998  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxStokes3D", 0);
17999 
18000  /* "cnumericalFlux.pyx":4187
18001  * np.ndarray dflux_wmom_dp,
18002  * np.ndarray velocity):
18003  * ccalculateGlobalExteriorNumericalAdvectiveFluxStokes3D( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
18004  * nQuadraturePoints_elementBoundary,
18005  * nSpace,
18006  */
18007  calculateGlobalExteriorNumericalAdvectiveFluxStokes3D(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((int *)__pyx_v_isDOFBoundary_w->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_p->data), ((double *)__pyx_v_bc_f_mass->data), ((double *)__pyx_v_p->data), ((double *)__pyx_v_f_mass->data), ((double *)__pyx_v_df_mass_du->data), ((double *)__pyx_v_df_mass_dv->data), ((double *)__pyx_v_df_mass_dw->data), ((double *)__pyx_v_flux_mass->data), ((double *)__pyx_v_flux_umom->data), ((double *)__pyx_v_flux_vmom->data), ((double *)__pyx_v_flux_wmom->data), ((double *)__pyx_v_dflux_mass_du->data), ((double *)__pyx_v_dflux_mass_dv->data), ((double *)__pyx_v_dflux_mass_dw->data), ((double *)__pyx_v_dflux_umom_dp->data), ((double *)__pyx_v_dflux_vmom_dp->data), ((double *)__pyx_v_dflux_wmom_dp->data), ((double *)__pyx_v_velocity->data));
18008 
18009  /* "cnumericalFlux.pyx":4158
18010  * <double*> stressFlux_w.data)
18011  * #######333333
18012  * def calculateExteriorNumericalAdvectiveFluxStokes3D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
18013  * int nQuadraturePoints_elementBoundary,
18014  * int nSpace,
18015  */
18016 
18017  /* function exit code */
18018  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
18019  __Pyx_XGIVEREF(__pyx_r);
18020  __Pyx_RefNannyFinishContext();
18021  return __pyx_r;
18022 }
18023 
18024 /* "cnumericalFlux.pyx":4216
18025  * <double*> dflux_wmom_dp.data,
18026  * <double*> velocity.data)
18027  * def calculateExteriorNumericalAdvectiveFluxNavierStokes3D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
18028  * np.ndarray elementBoundaryElements,
18029  * np.ndarray elementBoundaryLocalElementBoundaries,
18030  */
18031 
18032 /* Python wrapper */
18033 static PyObject *__pyx_pw_14cnumericalFlux_101calculateExteriorNumericalAdvectiveFluxNavierStokes3D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
18034 static PyMethodDef __pyx_mdef_14cnumericalFlux_101calculateExteriorNumericalAdvectiveFluxNavierStokes3D = {"calculateExteriorNumericalAdvectiveFluxNavierStokes3D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_101calculateExteriorNumericalAdvectiveFluxNavierStokes3D, METH_VARARGS|METH_KEYWORDS, 0};
18035 static PyObject *__pyx_pw_14cnumericalFlux_101calculateExteriorNumericalAdvectiveFluxNavierStokes3D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
18036  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
18037  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
18038  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
18039  PyArrayObject *__pyx_v_isDOFBoundary_p = 0;
18040  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
18041  PyArrayObject *__pyx_v_isDOFBoundary_v = 0;
18042  PyArrayObject *__pyx_v_isDOFBoundary_w = 0;
18043  PyArrayObject *__pyx_v_n = 0;
18044  PyArrayObject *__pyx_v_bc_p = 0;
18045  PyArrayObject *__pyx_v_bc_f_mass = 0;
18046  PyArrayObject *__pyx_v_bc_f_umom = 0;
18047  PyArrayObject *__pyx_v_bc_f_vmom = 0;
18048  PyArrayObject *__pyx_v_bc_f_wmom = 0;
18049  PyArrayObject *__pyx_v_p = 0;
18050  PyArrayObject *__pyx_v_f_mass = 0;
18051  PyArrayObject *__pyx_v_f_umom = 0;
18052  PyArrayObject *__pyx_v_f_vmom = 0;
18053  PyArrayObject *__pyx_v_f_wmom = 0;
18054  PyArrayObject *__pyx_v_df_mass_du = 0;
18055  PyArrayObject *__pyx_v_df_mass_dv = 0;
18056  PyArrayObject *__pyx_v_df_mass_dw = 0;
18057  PyArrayObject *__pyx_v_df_umom_dp = 0;
18058  PyArrayObject *__pyx_v_df_umom_du = 0;
18059  PyArrayObject *__pyx_v_df_umom_dv = 0;
18060  PyArrayObject *__pyx_v_df_umom_dw = 0;
18061  PyArrayObject *__pyx_v_df_vmom_dp = 0;
18062  PyArrayObject *__pyx_v_df_vmom_du = 0;
18063  PyArrayObject *__pyx_v_df_vmom_dv = 0;
18064  PyArrayObject *__pyx_v_df_vmom_dw = 0;
18065  PyArrayObject *__pyx_v_df_wmom_dp = 0;
18066  PyArrayObject *__pyx_v_df_wmom_du = 0;
18067  PyArrayObject *__pyx_v_df_wmom_dv = 0;
18068  PyArrayObject *__pyx_v_df_wmom_dw = 0;
18069  PyArrayObject *__pyx_v_flux_mass = 0;
18070  PyArrayObject *__pyx_v_flux_umom = 0;
18071  PyArrayObject *__pyx_v_flux_vmom = 0;
18072  PyArrayObject *__pyx_v_flux_wmom = 0;
18073  PyArrayObject *__pyx_v_dflux_mass_du = 0;
18074  PyArrayObject *__pyx_v_dflux_mass_dv = 0;
18075  PyArrayObject *__pyx_v_dflux_mass_dw = 0;
18076  PyArrayObject *__pyx_v_dflux_umom_dp = 0;
18077  PyArrayObject *__pyx_v_dflux_umom_du = 0;
18078  PyArrayObject *__pyx_v_dflux_umom_dv = 0;
18079  PyArrayObject *__pyx_v_dflux_umom_dw = 0;
18080  PyArrayObject *__pyx_v_dflux_vmom_dp = 0;
18081  PyArrayObject *__pyx_v_dflux_vmom_du = 0;
18082  PyArrayObject *__pyx_v_dflux_vmom_dv = 0;
18083  PyArrayObject *__pyx_v_dflux_vmom_dw = 0;
18084  PyArrayObject *__pyx_v_dflux_wmom_dp = 0;
18085  PyArrayObject *__pyx_v_dflux_wmom_du = 0;
18086  PyArrayObject *__pyx_v_dflux_wmom_dv = 0;
18087  PyArrayObject *__pyx_v_dflux_wmom_dw = 0;
18088  PyArrayObject *__pyx_v_velocity = 0;
18089  int __pyx_lineno = 0;
18090  const char *__pyx_filename = NULL;
18091  int __pyx_clineno = 0;
18092  PyObject *__pyx_r = 0;
18093  __Pyx_RefNannyDeclarations
18094  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxNavierStokes3D (wrapper)", 0);
18095  {
18096  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_p,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_isDOFBoundary_v,&__pyx_n_s_isDOFBoundary_w,&__pyx_n_s_n,&__pyx_n_s_bc_p,&__pyx_n_s_bc_f_mass,&__pyx_n_s_bc_f_umom,&__pyx_n_s_bc_f_vmom,&__pyx_n_s_bc_f_wmom,&__pyx_n_s_p,&__pyx_n_s_f_mass,&__pyx_n_s_f_umom,&__pyx_n_s_f_vmom,&__pyx_n_s_f_wmom,&__pyx_n_s_df_mass_du,&__pyx_n_s_df_mass_dv,&__pyx_n_s_df_mass_dw,&__pyx_n_s_df_umom_dp,&__pyx_n_s_df_umom_du,&__pyx_n_s_df_umom_dv,&__pyx_n_s_df_umom_dw,&__pyx_n_s_df_vmom_dp,&__pyx_n_s_df_vmom_du,&__pyx_n_s_df_vmom_dv,&__pyx_n_s_df_vmom_dw,&__pyx_n_s_df_wmom_dp,&__pyx_n_s_df_wmom_du,&__pyx_n_s_df_wmom_dv,&__pyx_n_s_df_wmom_dw,&__pyx_n_s_flux_mass,&__pyx_n_s_flux_umom,&__pyx_n_s_flux_vmom,&__pyx_n_s_flux_wmom,&__pyx_n_s_dflux_mass_du,&__pyx_n_s_dflux_mass_dv,&__pyx_n_s_dflux_mass_dw,&__pyx_n_s_dflux_umom_dp,&__pyx_n_s_dflux_umom_du,&__pyx_n_s_dflux_umom_dv,&__pyx_n_s_dflux_umom_dw,&__pyx_n_s_dflux_vmom_dp,&__pyx_n_s_dflux_vmom_du,&__pyx_n_s_dflux_vmom_dv,&__pyx_n_s_dflux_vmom_dw,&__pyx_n_s_dflux_wmom_dp,&__pyx_n_s_dflux_wmom_du,&__pyx_n_s_dflux_wmom_dv,&__pyx_n_s_dflux_wmom_dw,&__pyx_n_s_velocity,0};
18097  PyObject* values[53] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
18098  if (unlikely(__pyx_kwds)) {
18099  Py_ssize_t kw_args;
18100  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
18101  switch (pos_args) {
18102  case 53: values[52] = PyTuple_GET_ITEM(__pyx_args, 52);
18103  CYTHON_FALLTHROUGH;
18104  case 52: values[51] = PyTuple_GET_ITEM(__pyx_args, 51);
18105  CYTHON_FALLTHROUGH;
18106  case 51: values[50] = PyTuple_GET_ITEM(__pyx_args, 50);
18107  CYTHON_FALLTHROUGH;
18108  case 50: values[49] = PyTuple_GET_ITEM(__pyx_args, 49);
18109  CYTHON_FALLTHROUGH;
18110  case 49: values[48] = PyTuple_GET_ITEM(__pyx_args, 48);
18111  CYTHON_FALLTHROUGH;
18112  case 48: values[47] = PyTuple_GET_ITEM(__pyx_args, 47);
18113  CYTHON_FALLTHROUGH;
18114  case 47: values[46] = PyTuple_GET_ITEM(__pyx_args, 46);
18115  CYTHON_FALLTHROUGH;
18116  case 46: values[45] = PyTuple_GET_ITEM(__pyx_args, 45);
18117  CYTHON_FALLTHROUGH;
18118  case 45: values[44] = PyTuple_GET_ITEM(__pyx_args, 44);
18119  CYTHON_FALLTHROUGH;
18120  case 44: values[43] = PyTuple_GET_ITEM(__pyx_args, 43);
18121  CYTHON_FALLTHROUGH;
18122  case 43: values[42] = PyTuple_GET_ITEM(__pyx_args, 42);
18123  CYTHON_FALLTHROUGH;
18124  case 42: values[41] = PyTuple_GET_ITEM(__pyx_args, 41);
18125  CYTHON_FALLTHROUGH;
18126  case 41: values[40] = PyTuple_GET_ITEM(__pyx_args, 40);
18127  CYTHON_FALLTHROUGH;
18128  case 40: values[39] = PyTuple_GET_ITEM(__pyx_args, 39);
18129  CYTHON_FALLTHROUGH;
18130  case 39: values[38] = PyTuple_GET_ITEM(__pyx_args, 38);
18131  CYTHON_FALLTHROUGH;
18132  case 38: values[37] = PyTuple_GET_ITEM(__pyx_args, 37);
18133  CYTHON_FALLTHROUGH;
18134  case 37: values[36] = PyTuple_GET_ITEM(__pyx_args, 36);
18135  CYTHON_FALLTHROUGH;
18136  case 36: values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
18137  CYTHON_FALLTHROUGH;
18138  case 35: values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
18139  CYTHON_FALLTHROUGH;
18140  case 34: values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
18141  CYTHON_FALLTHROUGH;
18142  case 33: values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
18143  CYTHON_FALLTHROUGH;
18144  case 32: values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
18145  CYTHON_FALLTHROUGH;
18146  case 31: values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
18147  CYTHON_FALLTHROUGH;
18148  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
18149  CYTHON_FALLTHROUGH;
18150  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
18151  CYTHON_FALLTHROUGH;
18152  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
18153  CYTHON_FALLTHROUGH;
18154  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
18155  CYTHON_FALLTHROUGH;
18156  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
18157  CYTHON_FALLTHROUGH;
18158  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
18159  CYTHON_FALLTHROUGH;
18160  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
18161  CYTHON_FALLTHROUGH;
18162  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
18163  CYTHON_FALLTHROUGH;
18164  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
18165  CYTHON_FALLTHROUGH;
18166  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
18167  CYTHON_FALLTHROUGH;
18168  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
18169  CYTHON_FALLTHROUGH;
18170  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
18171  CYTHON_FALLTHROUGH;
18172  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
18173  CYTHON_FALLTHROUGH;
18174  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
18175  CYTHON_FALLTHROUGH;
18176  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
18177  CYTHON_FALLTHROUGH;
18178  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
18179  CYTHON_FALLTHROUGH;
18180  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
18181  CYTHON_FALLTHROUGH;
18182  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
18183  CYTHON_FALLTHROUGH;
18184  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
18185  CYTHON_FALLTHROUGH;
18186  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
18187  CYTHON_FALLTHROUGH;
18188  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
18189  CYTHON_FALLTHROUGH;
18190  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
18191  CYTHON_FALLTHROUGH;
18192  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
18193  CYTHON_FALLTHROUGH;
18194  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
18195  CYTHON_FALLTHROUGH;
18196  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
18197  CYTHON_FALLTHROUGH;
18198  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
18199  CYTHON_FALLTHROUGH;
18200  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
18201  CYTHON_FALLTHROUGH;
18202  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
18203  CYTHON_FALLTHROUGH;
18204  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
18205  CYTHON_FALLTHROUGH;
18206  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
18207  CYTHON_FALLTHROUGH;
18208  case 0: break;
18209  default: goto __pyx_L5_argtuple_error;
18210  }
18211  kw_args = PyDict_Size(__pyx_kwds);
18212  switch (pos_args) {
18213  case 0:
18214  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
18215  else goto __pyx_L5_argtuple_error;
18216  CYTHON_FALLTHROUGH;
18217  case 1:
18218  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
18219  else {
18220  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 1); __PYX_ERR(0, 4216, __pyx_L3_error)
18221  }
18222  CYTHON_FALLTHROUGH;
18223  case 2:
18224  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
18225  else {
18226  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 2); __PYX_ERR(0, 4216, __pyx_L3_error)
18227  }
18228  CYTHON_FALLTHROUGH;
18229  case 3:
18230  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_p)) != 0)) kw_args--;
18231  else {
18232  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 3); __PYX_ERR(0, 4216, __pyx_L3_error)
18233  }
18234  CYTHON_FALLTHROUGH;
18235  case 4:
18236  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
18237  else {
18238  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 4); __PYX_ERR(0, 4216, __pyx_L3_error)
18239  }
18240  CYTHON_FALLTHROUGH;
18241  case 5:
18242  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_v)) != 0)) kw_args--;
18243  else {
18244  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 5); __PYX_ERR(0, 4216, __pyx_L3_error)
18245  }
18246  CYTHON_FALLTHROUGH;
18247  case 6:
18248  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_w)) != 0)) kw_args--;
18249  else {
18250  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 6); __PYX_ERR(0, 4216, __pyx_L3_error)
18251  }
18252  CYTHON_FALLTHROUGH;
18253  case 7:
18254  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
18255  else {
18256  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 7); __PYX_ERR(0, 4216, __pyx_L3_error)
18257  }
18258  CYTHON_FALLTHROUGH;
18259  case 8:
18260  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_p)) != 0)) kw_args--;
18261  else {
18262  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 8); __PYX_ERR(0, 4216, __pyx_L3_error)
18263  }
18264  CYTHON_FALLTHROUGH;
18265  case 9:
18266  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_mass)) != 0)) kw_args--;
18267  else {
18268  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 9); __PYX_ERR(0, 4216, __pyx_L3_error)
18269  }
18270  CYTHON_FALLTHROUGH;
18271  case 10:
18272  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_umom)) != 0)) kw_args--;
18273  else {
18274  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 10); __PYX_ERR(0, 4216, __pyx_L3_error)
18275  }
18276  CYTHON_FALLTHROUGH;
18277  case 11:
18278  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_vmom)) != 0)) kw_args--;
18279  else {
18280  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 11); __PYX_ERR(0, 4216, __pyx_L3_error)
18281  }
18282  CYTHON_FALLTHROUGH;
18283  case 12:
18284  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_wmom)) != 0)) kw_args--;
18285  else {
18286  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 12); __PYX_ERR(0, 4216, __pyx_L3_error)
18287  }
18288  CYTHON_FALLTHROUGH;
18289  case 13:
18290  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--;
18291  else {
18292  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 13); __PYX_ERR(0, 4216, __pyx_L3_error)
18293  }
18294  CYTHON_FALLTHROUGH;
18295  case 14:
18296  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_mass)) != 0)) kw_args--;
18297  else {
18298  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 14); __PYX_ERR(0, 4216, __pyx_L3_error)
18299  }
18300  CYTHON_FALLTHROUGH;
18301  case 15:
18302  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_umom)) != 0)) kw_args--;
18303  else {
18304  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 15); __PYX_ERR(0, 4216, __pyx_L3_error)
18305  }
18306  CYTHON_FALLTHROUGH;
18307  case 16:
18308  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_vmom)) != 0)) kw_args--;
18309  else {
18310  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 16); __PYX_ERR(0, 4216, __pyx_L3_error)
18311  }
18312  CYTHON_FALLTHROUGH;
18313  case 17:
18314  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_wmom)) != 0)) kw_args--;
18315  else {
18316  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 17); __PYX_ERR(0, 4216, __pyx_L3_error)
18317  }
18318  CYTHON_FALLTHROUGH;
18319  case 18:
18320  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_du)) != 0)) kw_args--;
18321  else {
18322  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 18); __PYX_ERR(0, 4216, __pyx_L3_error)
18323  }
18324  CYTHON_FALLTHROUGH;
18325  case 19:
18326  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_dv)) != 0)) kw_args--;
18327  else {
18328  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 19); __PYX_ERR(0, 4216, __pyx_L3_error)
18329  }
18330  CYTHON_FALLTHROUGH;
18331  case 20:
18332  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_dw)) != 0)) kw_args--;
18333  else {
18334  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 20); __PYX_ERR(0, 4216, __pyx_L3_error)
18335  }
18336  CYTHON_FALLTHROUGH;
18337  case 21:
18338  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_umom_dp)) != 0)) kw_args--;
18339  else {
18340  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 21); __PYX_ERR(0, 4216, __pyx_L3_error)
18341  }
18342  CYTHON_FALLTHROUGH;
18343  case 22:
18344  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_umom_du)) != 0)) kw_args--;
18345  else {
18346  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 22); __PYX_ERR(0, 4216, __pyx_L3_error)
18347  }
18348  CYTHON_FALLTHROUGH;
18349  case 23:
18350  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_umom_dv)) != 0)) kw_args--;
18351  else {
18352  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 23); __PYX_ERR(0, 4216, __pyx_L3_error)
18353  }
18354  CYTHON_FALLTHROUGH;
18355  case 24:
18356  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_umom_dw)) != 0)) kw_args--;
18357  else {
18358  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 24); __PYX_ERR(0, 4216, __pyx_L3_error)
18359  }
18360  CYTHON_FALLTHROUGH;
18361  case 25:
18362  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_vmom_dp)) != 0)) kw_args--;
18363  else {
18364  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 25); __PYX_ERR(0, 4216, __pyx_L3_error)
18365  }
18366  CYTHON_FALLTHROUGH;
18367  case 26:
18368  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_vmom_du)) != 0)) kw_args--;
18369  else {
18370  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 26); __PYX_ERR(0, 4216, __pyx_L3_error)
18371  }
18372  CYTHON_FALLTHROUGH;
18373  case 27:
18374  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_vmom_dv)) != 0)) kw_args--;
18375  else {
18376  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 27); __PYX_ERR(0, 4216, __pyx_L3_error)
18377  }
18378  CYTHON_FALLTHROUGH;
18379  case 28:
18380  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_vmom_dw)) != 0)) kw_args--;
18381  else {
18382  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 28); __PYX_ERR(0, 4216, __pyx_L3_error)
18383  }
18384  CYTHON_FALLTHROUGH;
18385  case 29:
18386  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_wmom_dp)) != 0)) kw_args--;
18387  else {
18388  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 29); __PYX_ERR(0, 4216, __pyx_L3_error)
18389  }
18390  CYTHON_FALLTHROUGH;
18391  case 30:
18392  if (likely((values[30] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_wmom_du)) != 0)) kw_args--;
18393  else {
18394  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 30); __PYX_ERR(0, 4216, __pyx_L3_error)
18395  }
18396  CYTHON_FALLTHROUGH;
18397  case 31:
18398  if (likely((values[31] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_wmom_dv)) != 0)) kw_args--;
18399  else {
18400  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 31); __PYX_ERR(0, 4216, __pyx_L3_error)
18401  }
18402  CYTHON_FALLTHROUGH;
18403  case 32:
18404  if (likely((values[32] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_wmom_dw)) != 0)) kw_args--;
18405  else {
18406  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 32); __PYX_ERR(0, 4216, __pyx_L3_error)
18407  }
18408  CYTHON_FALLTHROUGH;
18409  case 33:
18410  if (likely((values[33] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_mass)) != 0)) kw_args--;
18411  else {
18412  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 33); __PYX_ERR(0, 4216, __pyx_L3_error)
18413  }
18414  CYTHON_FALLTHROUGH;
18415  case 34:
18416  if (likely((values[34] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_umom)) != 0)) kw_args--;
18417  else {
18418  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 34); __PYX_ERR(0, 4216, __pyx_L3_error)
18419  }
18420  CYTHON_FALLTHROUGH;
18421  case 35:
18422  if (likely((values[35] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_vmom)) != 0)) kw_args--;
18423  else {
18424  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 35); __PYX_ERR(0, 4216, __pyx_L3_error)
18425  }
18426  CYTHON_FALLTHROUGH;
18427  case 36:
18428  if (likely((values[36] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_wmom)) != 0)) kw_args--;
18429  else {
18430  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 36); __PYX_ERR(0, 4216, __pyx_L3_error)
18431  }
18432  CYTHON_FALLTHROUGH;
18433  case 37:
18434  if (likely((values[37] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_du)) != 0)) kw_args--;
18435  else {
18436  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 37); __PYX_ERR(0, 4216, __pyx_L3_error)
18437  }
18438  CYTHON_FALLTHROUGH;
18439  case 38:
18440  if (likely((values[38] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_dv)) != 0)) kw_args--;
18441  else {
18442  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 38); __PYX_ERR(0, 4216, __pyx_L3_error)
18443  }
18444  CYTHON_FALLTHROUGH;
18445  case 39:
18446  if (likely((values[39] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_dw)) != 0)) kw_args--;
18447  else {
18448  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 39); __PYX_ERR(0, 4216, __pyx_L3_error)
18449  }
18450  CYTHON_FALLTHROUGH;
18451  case 40:
18452  if (likely((values[40] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_dp)) != 0)) kw_args--;
18453  else {
18454  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 40); __PYX_ERR(0, 4216, __pyx_L3_error)
18455  }
18456  CYTHON_FALLTHROUGH;
18457  case 41:
18458  if (likely((values[41] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_du)) != 0)) kw_args--;
18459  else {
18460  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 41); __PYX_ERR(0, 4216, __pyx_L3_error)
18461  }
18462  CYTHON_FALLTHROUGH;
18463  case 42:
18464  if (likely((values[42] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_dv)) != 0)) kw_args--;
18465  else {
18466  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 42); __PYX_ERR(0, 4216, __pyx_L3_error)
18467  }
18468  CYTHON_FALLTHROUGH;
18469  case 43:
18470  if (likely((values[43] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_dw)) != 0)) kw_args--;
18471  else {
18472  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 43); __PYX_ERR(0, 4216, __pyx_L3_error)
18473  }
18474  CYTHON_FALLTHROUGH;
18475  case 44:
18476  if (likely((values[44] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_dp)) != 0)) kw_args--;
18477  else {
18478  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 44); __PYX_ERR(0, 4216, __pyx_L3_error)
18479  }
18480  CYTHON_FALLTHROUGH;
18481  case 45:
18482  if (likely((values[45] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_du)) != 0)) kw_args--;
18483  else {
18484  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 45); __PYX_ERR(0, 4216, __pyx_L3_error)
18485  }
18486  CYTHON_FALLTHROUGH;
18487  case 46:
18488  if (likely((values[46] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_dv)) != 0)) kw_args--;
18489  else {
18490  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 46); __PYX_ERR(0, 4216, __pyx_L3_error)
18491  }
18492  CYTHON_FALLTHROUGH;
18493  case 47:
18494  if (likely((values[47] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_dw)) != 0)) kw_args--;
18495  else {
18496  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 47); __PYX_ERR(0, 4216, __pyx_L3_error)
18497  }
18498  CYTHON_FALLTHROUGH;
18499  case 48:
18500  if (likely((values[48] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_wmom_dp)) != 0)) kw_args--;
18501  else {
18502  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 48); __PYX_ERR(0, 4216, __pyx_L3_error)
18503  }
18504  CYTHON_FALLTHROUGH;
18505  case 49:
18506  if (likely((values[49] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_wmom_du)) != 0)) kw_args--;
18507  else {
18508  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 49); __PYX_ERR(0, 4216, __pyx_L3_error)
18509  }
18510  CYTHON_FALLTHROUGH;
18511  case 50:
18512  if (likely((values[50] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_wmom_dv)) != 0)) kw_args--;
18513  else {
18514  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 50); __PYX_ERR(0, 4216, __pyx_L3_error)
18515  }
18516  CYTHON_FALLTHROUGH;
18517  case 51:
18518  if (likely((values[51] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_wmom_dw)) != 0)) kw_args--;
18519  else {
18520  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 51); __PYX_ERR(0, 4216, __pyx_L3_error)
18521  }
18522  CYTHON_FALLTHROUGH;
18523  case 52:
18524  if (likely((values[52] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_velocity)) != 0)) kw_args--;
18525  else {
18526  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, 52); __PYX_ERR(0, 4216, __pyx_L3_error)
18527  }
18528  }
18529  if (unlikely(kw_args > 0)) {
18530  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalAdvectiveFluxNavierStokes3D") < 0)) __PYX_ERR(0, 4216, __pyx_L3_error)
18531  }
18532  } else if (PyTuple_GET_SIZE(__pyx_args) != 53) {
18533  goto __pyx_L5_argtuple_error;
18534  } else {
18535  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
18536  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
18537  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
18538  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
18539  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
18540  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
18541  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
18542  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
18543  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
18544  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
18545  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
18546  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
18547  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
18548  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
18549  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
18550  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
18551  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
18552  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
18553  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
18554  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
18555  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
18556  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
18557  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
18558  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
18559  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
18560  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
18561  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
18562  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
18563  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
18564  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
18565  values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
18566  values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
18567  values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
18568  values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
18569  values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
18570  values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
18571  values[36] = PyTuple_GET_ITEM(__pyx_args, 36);
18572  values[37] = PyTuple_GET_ITEM(__pyx_args, 37);
18573  values[38] = PyTuple_GET_ITEM(__pyx_args, 38);
18574  values[39] = PyTuple_GET_ITEM(__pyx_args, 39);
18575  values[40] = PyTuple_GET_ITEM(__pyx_args, 40);
18576  values[41] = PyTuple_GET_ITEM(__pyx_args, 41);
18577  values[42] = PyTuple_GET_ITEM(__pyx_args, 42);
18578  values[43] = PyTuple_GET_ITEM(__pyx_args, 43);
18579  values[44] = PyTuple_GET_ITEM(__pyx_args, 44);
18580  values[45] = PyTuple_GET_ITEM(__pyx_args, 45);
18581  values[46] = PyTuple_GET_ITEM(__pyx_args, 46);
18582  values[47] = PyTuple_GET_ITEM(__pyx_args, 47);
18583  values[48] = PyTuple_GET_ITEM(__pyx_args, 48);
18584  values[49] = PyTuple_GET_ITEM(__pyx_args, 49);
18585  values[50] = PyTuple_GET_ITEM(__pyx_args, 50);
18586  values[51] = PyTuple_GET_ITEM(__pyx_args, 51);
18587  values[52] = PyTuple_GET_ITEM(__pyx_args, 52);
18588  }
18589  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
18590  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
18591  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
18592  __pyx_v_isDOFBoundary_p = ((PyArrayObject *)values[3]);
18593  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[4]);
18594  __pyx_v_isDOFBoundary_v = ((PyArrayObject *)values[5]);
18595  __pyx_v_isDOFBoundary_w = ((PyArrayObject *)values[6]);
18596  __pyx_v_n = ((PyArrayObject *)values[7]);
18597  __pyx_v_bc_p = ((PyArrayObject *)values[8]);
18598  __pyx_v_bc_f_mass = ((PyArrayObject *)values[9]);
18599  __pyx_v_bc_f_umom = ((PyArrayObject *)values[10]);
18600  __pyx_v_bc_f_vmom = ((PyArrayObject *)values[11]);
18601  __pyx_v_bc_f_wmom = ((PyArrayObject *)values[12]);
18602  __pyx_v_p = ((PyArrayObject *)values[13]);
18603  __pyx_v_f_mass = ((PyArrayObject *)values[14]);
18604  __pyx_v_f_umom = ((PyArrayObject *)values[15]);
18605  __pyx_v_f_vmom = ((PyArrayObject *)values[16]);
18606  __pyx_v_f_wmom = ((PyArrayObject *)values[17]);
18607  __pyx_v_df_mass_du = ((PyArrayObject *)values[18]);
18608  __pyx_v_df_mass_dv = ((PyArrayObject *)values[19]);
18609  __pyx_v_df_mass_dw = ((PyArrayObject *)values[20]);
18610  __pyx_v_df_umom_dp = ((PyArrayObject *)values[21]);
18611  __pyx_v_df_umom_du = ((PyArrayObject *)values[22]);
18612  __pyx_v_df_umom_dv = ((PyArrayObject *)values[23]);
18613  __pyx_v_df_umom_dw = ((PyArrayObject *)values[24]);
18614  __pyx_v_df_vmom_dp = ((PyArrayObject *)values[25]);
18615  __pyx_v_df_vmom_du = ((PyArrayObject *)values[26]);
18616  __pyx_v_df_vmom_dv = ((PyArrayObject *)values[27]);
18617  __pyx_v_df_vmom_dw = ((PyArrayObject *)values[28]);
18618  __pyx_v_df_wmom_dp = ((PyArrayObject *)values[29]);
18619  __pyx_v_df_wmom_du = ((PyArrayObject *)values[30]);
18620  __pyx_v_df_wmom_dv = ((PyArrayObject *)values[31]);
18621  __pyx_v_df_wmom_dw = ((PyArrayObject *)values[32]);
18622  __pyx_v_flux_mass = ((PyArrayObject *)values[33]);
18623  __pyx_v_flux_umom = ((PyArrayObject *)values[34]);
18624  __pyx_v_flux_vmom = ((PyArrayObject *)values[35]);
18625  __pyx_v_flux_wmom = ((PyArrayObject *)values[36]);
18626  __pyx_v_dflux_mass_du = ((PyArrayObject *)values[37]);
18627  __pyx_v_dflux_mass_dv = ((PyArrayObject *)values[38]);
18628  __pyx_v_dflux_mass_dw = ((PyArrayObject *)values[39]);
18629  __pyx_v_dflux_umom_dp = ((PyArrayObject *)values[40]);
18630  __pyx_v_dflux_umom_du = ((PyArrayObject *)values[41]);
18631  __pyx_v_dflux_umom_dv = ((PyArrayObject *)values[42]);
18632  __pyx_v_dflux_umom_dw = ((PyArrayObject *)values[43]);
18633  __pyx_v_dflux_vmom_dp = ((PyArrayObject *)values[44]);
18634  __pyx_v_dflux_vmom_du = ((PyArrayObject *)values[45]);
18635  __pyx_v_dflux_vmom_dv = ((PyArrayObject *)values[46]);
18636  __pyx_v_dflux_vmom_dw = ((PyArrayObject *)values[47]);
18637  __pyx_v_dflux_wmom_dp = ((PyArrayObject *)values[48]);
18638  __pyx_v_dflux_wmom_du = ((PyArrayObject *)values[49]);
18639  __pyx_v_dflux_wmom_dv = ((PyArrayObject *)values[50]);
18640  __pyx_v_dflux_wmom_dw = ((PyArrayObject *)values[51]);
18641  __pyx_v_velocity = ((PyArrayObject *)values[52]);
18642  }
18643  goto __pyx_L4_argument_unpacking_done;
18644  __pyx_L5_argtuple_error:;
18645  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 53, 53, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4216, __pyx_L3_error)
18646  __pyx_L3_error:;
18647  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalAdvectiveFluxNavierStokes3D", __pyx_clineno, __pyx_lineno, __pyx_filename);
18648  __Pyx_RefNannyFinishContext();
18649  return NULL;
18650  __pyx_L4_argument_unpacking_done:;
18651  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4216, __pyx_L1_error)
18652  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4217, __pyx_L1_error)
18653  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4218, __pyx_L1_error)
18654  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_p), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_p", 0))) __PYX_ERR(0, 4219, __pyx_L1_error)
18655  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 4220, __pyx_L1_error)
18656  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_v", 0))) __PYX_ERR(0, 4221, __pyx_L1_error)
18657  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_w), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_w", 0))) __PYX_ERR(0, 4222, __pyx_L1_error)
18658  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4223, __pyx_L1_error)
18659  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_p), __pyx_ptype_5numpy_ndarray, 1, "bc_p", 0))) __PYX_ERR(0, 4224, __pyx_L1_error)
18660  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_mass), __pyx_ptype_5numpy_ndarray, 1, "bc_f_mass", 0))) __PYX_ERR(0, 4225, __pyx_L1_error)
18661  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_umom), __pyx_ptype_5numpy_ndarray, 1, "bc_f_umom", 0))) __PYX_ERR(0, 4226, __pyx_L1_error)
18662  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_vmom), __pyx_ptype_5numpy_ndarray, 1, "bc_f_vmom", 0))) __PYX_ERR(0, 4227, __pyx_L1_error)
18663  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_wmom), __pyx_ptype_5numpy_ndarray, 1, "bc_f_wmom", 0))) __PYX_ERR(0, 4228, __pyx_L1_error)
18664  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p), __pyx_ptype_5numpy_ndarray, 1, "p", 0))) __PYX_ERR(0, 4229, __pyx_L1_error)
18665  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_mass), __pyx_ptype_5numpy_ndarray, 1, "f_mass", 0))) __PYX_ERR(0, 4230, __pyx_L1_error)
18666  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_umom), __pyx_ptype_5numpy_ndarray, 1, "f_umom", 0))) __PYX_ERR(0, 4231, __pyx_L1_error)
18667  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_vmom), __pyx_ptype_5numpy_ndarray, 1, "f_vmom", 0))) __PYX_ERR(0, 4232, __pyx_L1_error)
18668  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_wmom), __pyx_ptype_5numpy_ndarray, 1, "f_wmom", 0))) __PYX_ERR(0, 4233, __pyx_L1_error)
18669  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_du), __pyx_ptype_5numpy_ndarray, 1, "df_mass_du", 0))) __PYX_ERR(0, 4234, __pyx_L1_error)
18670  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "df_mass_dv", 0))) __PYX_ERR(0, 4235, __pyx_L1_error)
18671  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_dw), __pyx_ptype_5numpy_ndarray, 1, "df_mass_dw", 0))) __PYX_ERR(0, 4236, __pyx_L1_error)
18672  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_umom_dp), __pyx_ptype_5numpy_ndarray, 1, "df_umom_dp", 0))) __PYX_ERR(0, 4237, __pyx_L1_error)
18673  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_umom_du), __pyx_ptype_5numpy_ndarray, 1, "df_umom_du", 0))) __PYX_ERR(0, 4238, __pyx_L1_error)
18674  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_umom_dv), __pyx_ptype_5numpy_ndarray, 1, "df_umom_dv", 0))) __PYX_ERR(0, 4239, __pyx_L1_error)
18675  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_umom_dw), __pyx_ptype_5numpy_ndarray, 1, "df_umom_dw", 0))) __PYX_ERR(0, 4240, __pyx_L1_error)
18676  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_vmom_dp), __pyx_ptype_5numpy_ndarray, 1, "df_vmom_dp", 0))) __PYX_ERR(0, 4241, __pyx_L1_error)
18677  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_vmom_du), __pyx_ptype_5numpy_ndarray, 1, "df_vmom_du", 0))) __PYX_ERR(0, 4242, __pyx_L1_error)
18678  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_vmom_dv), __pyx_ptype_5numpy_ndarray, 1, "df_vmom_dv", 0))) __PYX_ERR(0, 4243, __pyx_L1_error)
18679  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_vmom_dw), __pyx_ptype_5numpy_ndarray, 1, "df_vmom_dw", 0))) __PYX_ERR(0, 4244, __pyx_L1_error)
18680  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_wmom_dp), __pyx_ptype_5numpy_ndarray, 1, "df_wmom_dp", 0))) __PYX_ERR(0, 4245, __pyx_L1_error)
18681  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_wmom_du), __pyx_ptype_5numpy_ndarray, 1, "df_wmom_du", 0))) __PYX_ERR(0, 4246, __pyx_L1_error)
18682  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_wmom_dv), __pyx_ptype_5numpy_ndarray, 1, "df_wmom_dv", 0))) __PYX_ERR(0, 4247, __pyx_L1_error)
18683  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_wmom_dw), __pyx_ptype_5numpy_ndarray, 1, "df_wmom_dw", 0))) __PYX_ERR(0, 4248, __pyx_L1_error)
18684  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_mass), __pyx_ptype_5numpy_ndarray, 1, "flux_mass", 0))) __PYX_ERR(0, 4249, __pyx_L1_error)
18685  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_umom), __pyx_ptype_5numpy_ndarray, 1, "flux_umom", 0))) __PYX_ERR(0, 4250, __pyx_L1_error)
18686  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_vmom), __pyx_ptype_5numpy_ndarray, 1, "flux_vmom", 0))) __PYX_ERR(0, 4251, __pyx_L1_error)
18687  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_wmom), __pyx_ptype_5numpy_ndarray, 1, "flux_wmom", 0))) __PYX_ERR(0, 4252, __pyx_L1_error)
18688  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_du", 0))) __PYX_ERR(0, 4253, __pyx_L1_error)
18689  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_dv", 0))) __PYX_ERR(0, 4254, __pyx_L1_error)
18690  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_dw), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_dw", 0))) __PYX_ERR(0, 4255, __pyx_L1_error)
18691  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_dp", 0))) __PYX_ERR(0, 4256, __pyx_L1_error)
18692  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_du", 0))) __PYX_ERR(0, 4257, __pyx_L1_error)
18693  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_dv", 0))) __PYX_ERR(0, 4258, __pyx_L1_error)
18694  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_dw), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_dw", 0))) __PYX_ERR(0, 4259, __pyx_L1_error)
18695  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_dp", 0))) __PYX_ERR(0, 4260, __pyx_L1_error)
18696  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_du", 0))) __PYX_ERR(0, 4261, __pyx_L1_error)
18697  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_dv", 0))) __PYX_ERR(0, 4262, __pyx_L1_error)
18698  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_dw), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_dw", 0))) __PYX_ERR(0, 4263, __pyx_L1_error)
18699  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_wmom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_wmom_dp", 0))) __PYX_ERR(0, 4264, __pyx_L1_error)
18700  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_wmom_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_wmom_du", 0))) __PYX_ERR(0, 4265, __pyx_L1_error)
18701  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_wmom_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_wmom_dv", 0))) __PYX_ERR(0, 4266, __pyx_L1_error)
18702  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_wmom_dw), __pyx_ptype_5numpy_ndarray, 1, "dflux_wmom_dw", 0))) __PYX_ERR(0, 4267, __pyx_L1_error)
18703  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_velocity), __pyx_ptype_5numpy_ndarray, 1, "velocity", 0))) __PYX_ERR(0, 4268, __pyx_L1_error)
18704  __pyx_r = __pyx_pf_14cnumericalFlux_100calculateExteriorNumericalAdvectiveFluxNavierStokes3D(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_p, __pyx_v_isDOFBoundary_u, __pyx_v_isDOFBoundary_v, __pyx_v_isDOFBoundary_w, __pyx_v_n, __pyx_v_bc_p, __pyx_v_bc_f_mass, __pyx_v_bc_f_umom, __pyx_v_bc_f_vmom, __pyx_v_bc_f_wmom, __pyx_v_p, __pyx_v_f_mass, __pyx_v_f_umom, __pyx_v_f_vmom, __pyx_v_f_wmom, __pyx_v_df_mass_du, __pyx_v_df_mass_dv, __pyx_v_df_mass_dw, __pyx_v_df_umom_dp, __pyx_v_df_umom_du, __pyx_v_df_umom_dv, __pyx_v_df_umom_dw, __pyx_v_df_vmom_dp, __pyx_v_df_vmom_du, __pyx_v_df_vmom_dv, __pyx_v_df_vmom_dw, __pyx_v_df_wmom_dp, __pyx_v_df_wmom_du, __pyx_v_df_wmom_dv, __pyx_v_df_wmom_dw, __pyx_v_flux_mass, __pyx_v_flux_umom, __pyx_v_flux_vmom, __pyx_v_flux_wmom, __pyx_v_dflux_mass_du, __pyx_v_dflux_mass_dv, __pyx_v_dflux_mass_dw, __pyx_v_dflux_umom_dp, __pyx_v_dflux_umom_du, __pyx_v_dflux_umom_dv, __pyx_v_dflux_umom_dw, __pyx_v_dflux_vmom_dp, __pyx_v_dflux_vmom_du, __pyx_v_dflux_vmom_dv, __pyx_v_dflux_vmom_dw, __pyx_v_dflux_wmom_dp, __pyx_v_dflux_wmom_du, __pyx_v_dflux_wmom_dv, __pyx_v_dflux_wmom_dw, __pyx_v_velocity);
18705 
18706  /* function exit code */
18707  goto __pyx_L0;
18708  __pyx_L1_error:;
18709  __pyx_r = NULL;
18710  __pyx_L0:;
18711  __Pyx_RefNannyFinishContext();
18712  return __pyx_r;
18713 }
18714 
18715 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) {
18716  PyObject *__pyx_r = NULL;
18717  __Pyx_RefNannyDeclarations
18718  int __pyx_t_1;
18719  PyObject *__pyx_t_2 = NULL;
18720  PyObject *__pyx_t_3 = NULL;
18721  PyObject *__pyx_t_4 = NULL;
18722  int __pyx_lineno = 0;
18723  const char *__pyx_filename = NULL;
18724  int __pyx_clineno = 0;
18725  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxNavierStokes3D", 0);
18726 
18727  /* "cnumericalFlux.pyx":4269
18728  * np.ndarray dflux_wmom_dw,
18729  * np.ndarray velocity):
18730  * if f_mass.ndim > 3: # <<<<<<<<<<<<<<
18731  * exit(1)
18732  * else:
18733  */
18734  __pyx_t_1 = ((__pyx_v_f_mass->nd > 3) != 0);
18735  if (__pyx_t_1) {
18736 
18737  /* "cnumericalFlux.pyx":4270
18738  * np.ndarray velocity):
18739  * if f_mass.ndim > 3:
18740  * exit(1) # <<<<<<<<<<<<<<
18741  * else:
18742  * ccalculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D(exteriorElementBoundaries.shape[0],
18743  */
18744  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4270, __pyx_L1_error)
18745  __Pyx_GOTREF(__pyx_t_3);
18746  __pyx_t_4 = NULL;
18747  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
18748  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
18749  if (likely(__pyx_t_4)) {
18750  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
18751  __Pyx_INCREF(__pyx_t_4);
18752  __Pyx_INCREF(function);
18753  __Pyx_DECREF_SET(__pyx_t_3, function);
18754  }
18755  }
18756  __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_int_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_1);
18757  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
18758  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4270, __pyx_L1_error)
18759  __Pyx_GOTREF(__pyx_t_2);
18760  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18761  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18762 
18763  /* "cnumericalFlux.pyx":4269
18764  * np.ndarray dflux_wmom_dw,
18765  * np.ndarray velocity):
18766  * if f_mass.ndim > 3: # <<<<<<<<<<<<<<
18767  * exit(1)
18768  * else:
18769  */
18770  goto __pyx_L3;
18771  }
18772 
18773  /* "cnumericalFlux.pyx":4272
18774  * exit(1)
18775  * else:
18776  * ccalculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
18777  * f_mass.shape[1],
18778  * f_mass.shape[2],
18779  */
18780  /*else*/ {
18781 
18782  /* "cnumericalFlux.pyx":4327
18783  * <double*> dflux_wmom_dv.data,
18784  * <double*> dflux_wmom_dw.data,
18785  * <double*> velocity.data) # <<<<<<<<<<<<<<
18786  * def calculateExteriorNumericalAdvectiveFluxRusanov(double safetyFactor,
18787  * np.ndarray exteriorElementBoundaries,
18788  */
18789  calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_f_mass->dimensions[1]), (__pyx_v_f_mass->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((int *)__pyx_v_isDOFBoundary_w->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_p->data), ((double *)__pyx_v_bc_f_mass->data), ((double *)__pyx_v_bc_f_umom->data), ((double *)__pyx_v_bc_f_vmom->data), ((double *)__pyx_v_bc_f_wmom->data), ((double *)__pyx_v_p->data), ((double *)__pyx_v_f_mass->data), ((double *)__pyx_v_f_umom->data), ((double *)__pyx_v_f_vmom->data), ((double *)__pyx_v_f_wmom->data), ((double *)__pyx_v_df_mass_du->data), ((double *)__pyx_v_df_mass_dv->data), ((double *)__pyx_v_df_mass_dw->data), ((double *)__pyx_v_df_umom_dp->data), ((double *)__pyx_v_df_umom_du->data), ((double *)__pyx_v_df_umom_dv->data), ((double *)__pyx_v_df_umom_dw->data), ((double *)__pyx_v_df_vmom_dp->data), ((double *)__pyx_v_df_vmom_du->data), ((double *)__pyx_v_df_vmom_dv->data), ((double *)__pyx_v_df_vmom_dw->data), ((double *)__pyx_v_df_wmom_dp->data), ((double *)__pyx_v_df_wmom_du->data), ((double *)__pyx_v_df_wmom_dv->data), ((double *)__pyx_v_df_wmom_dw->data), ((double *)__pyx_v_flux_mass->data), ((double *)__pyx_v_flux_umom->data), ((double *)__pyx_v_flux_vmom->data), ((double *)__pyx_v_flux_wmom->data), ((double *)__pyx_v_dflux_mass_du->data), ((double *)__pyx_v_dflux_mass_dv->data), ((double *)__pyx_v_dflux_mass_dw->data), ((double *)__pyx_v_dflux_umom_dp->data), ((double *)__pyx_v_dflux_umom_du->data), ((double *)__pyx_v_dflux_umom_dv->data), ((double *)__pyx_v_dflux_umom_dw->data), ((double *)__pyx_v_dflux_vmom_dp->data), ((double *)__pyx_v_dflux_vmom_du->data), ((double *)__pyx_v_dflux_vmom_dv->data), ((double *)__pyx_v_dflux_vmom_dw->data), ((double *)__pyx_v_dflux_wmom_dp->data), ((double *)__pyx_v_dflux_wmom_du->data), ((double *)__pyx_v_dflux_wmom_dv->data), ((double *)__pyx_v_dflux_wmom_dw->data), ((double *)__pyx_v_velocity->data));
18790  }
18791  __pyx_L3:;
18792 
18793  /* "cnumericalFlux.pyx":4216
18794  * <double*> dflux_wmom_dp.data,
18795  * <double*> velocity.data)
18796  * def calculateExteriorNumericalAdvectiveFluxNavierStokes3D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
18797  * np.ndarray elementBoundaryElements,
18798  * np.ndarray elementBoundaryLocalElementBoundaries,
18799  */
18800 
18801  /* function exit code */
18802  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
18803  goto __pyx_L0;
18804  __pyx_L1_error:;
18805  __Pyx_XDECREF(__pyx_t_2);
18806  __Pyx_XDECREF(__pyx_t_3);
18807  __Pyx_XDECREF(__pyx_t_4);
18808  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalAdvectiveFluxNavierStokes3D", __pyx_clineno, __pyx_lineno, __pyx_filename);
18809  __pyx_r = NULL;
18810  __pyx_L0:;
18811  __Pyx_XGIVEREF(__pyx_r);
18812  __Pyx_RefNannyFinishContext();
18813  return __pyx_r;
18814 }
18815 
18816 /* "cnumericalFlux.pyx":4328
18817  * <double*> dflux_wmom_dw.data,
18818  * <double*> velocity.data)
18819  * def calculateExteriorNumericalAdvectiveFluxRusanov(double safetyFactor, # <<<<<<<<<<<<<<
18820  * np.ndarray exteriorElementBoundaries,
18821  * np.ndarray elementBoundaryElements,
18822  */
18823 
18824 /* Python wrapper */
18825 static PyObject *__pyx_pw_14cnumericalFlux_103calculateExteriorNumericalAdvectiveFluxRusanov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
18826 static PyMethodDef __pyx_mdef_14cnumericalFlux_103calculateExteriorNumericalAdvectiveFluxRusanov = {"calculateExteriorNumericalAdvectiveFluxRusanov", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_103calculateExteriorNumericalAdvectiveFluxRusanov, METH_VARARGS|METH_KEYWORDS, 0};
18827 static PyObject *__pyx_pw_14cnumericalFlux_103calculateExteriorNumericalAdvectiveFluxRusanov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
18828  double __pyx_v_safetyFactor;
18829  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
18830  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
18831  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
18832  PyArrayObject *__pyx_v_isDOFBoundary = 0;
18833  PyArrayObject *__pyx_v_inflowFlag = 0;
18834  PyArrayObject *__pyx_v_n = 0;
18835  PyArrayObject *__pyx_v_bc_u = 0;
18836  PyArrayObject *__pyx_v_bc_f = 0;
18837  PyArrayObject *__pyx_v_bc_df = 0;
18838  PyArrayObject *__pyx_v_u = 0;
18839  PyArrayObject *__pyx_v_f = 0;
18840  PyArrayObject *__pyx_v_df = 0;
18841  PyArrayObject *__pyx_v_df_element = 0;
18842  PyArrayObject *__pyx_v_flux = 0;
18843  PyArrayObject *__pyx_v_dflux = 0;
18844  int __pyx_lineno = 0;
18845  const char *__pyx_filename = NULL;
18846  int __pyx_clineno = 0;
18847  PyObject *__pyx_r = 0;
18848  __Pyx_RefNannyDeclarations
18849  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxRusanov (wrapper)", 0);
18850  {
18851  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_safetyFactor,&__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_df_element,&__pyx_n_s_flux,&__pyx_n_s_dflux,0};
18852  PyObject* values[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
18853  if (unlikely(__pyx_kwds)) {
18854  Py_ssize_t kw_args;
18855  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
18856  switch (pos_args) {
18857  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
18858  CYTHON_FALLTHROUGH;
18859  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
18860  CYTHON_FALLTHROUGH;
18861  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
18862  CYTHON_FALLTHROUGH;
18863  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
18864  CYTHON_FALLTHROUGH;
18865  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
18866  CYTHON_FALLTHROUGH;
18867  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
18868  CYTHON_FALLTHROUGH;
18869  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
18870  CYTHON_FALLTHROUGH;
18871  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
18872  CYTHON_FALLTHROUGH;
18873  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
18874  CYTHON_FALLTHROUGH;
18875  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
18876  CYTHON_FALLTHROUGH;
18877  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
18878  CYTHON_FALLTHROUGH;
18879  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
18880  CYTHON_FALLTHROUGH;
18881  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
18882  CYTHON_FALLTHROUGH;
18883  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
18884  CYTHON_FALLTHROUGH;
18885  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
18886  CYTHON_FALLTHROUGH;
18887  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
18888  CYTHON_FALLTHROUGH;
18889  case 0: break;
18890  default: goto __pyx_L5_argtuple_error;
18891  }
18892  kw_args = PyDict_Size(__pyx_kwds);
18893  switch (pos_args) {
18894  case 0:
18895  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_safetyFactor)) != 0)) kw_args--;
18896  else goto __pyx_L5_argtuple_error;
18897  CYTHON_FALLTHROUGH;
18898  case 1:
18899  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
18900  else {
18901  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 1); __PYX_ERR(0, 4328, __pyx_L3_error)
18902  }
18903  CYTHON_FALLTHROUGH;
18904  case 2:
18905  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
18906  else {
18907  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 2); __PYX_ERR(0, 4328, __pyx_L3_error)
18908  }
18909  CYTHON_FALLTHROUGH;
18910  case 3:
18911  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
18912  else {
18913  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 3); __PYX_ERR(0, 4328, __pyx_L3_error)
18914  }
18915  CYTHON_FALLTHROUGH;
18916  case 4:
18917  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
18918  else {
18919  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 4); __PYX_ERR(0, 4328, __pyx_L3_error)
18920  }
18921  CYTHON_FALLTHROUGH;
18922  case 5:
18923  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
18924  else {
18925  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 5); __PYX_ERR(0, 4328, __pyx_L3_error)
18926  }
18927  CYTHON_FALLTHROUGH;
18928  case 6:
18929  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
18930  else {
18931  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 6); __PYX_ERR(0, 4328, __pyx_L3_error)
18932  }
18933  CYTHON_FALLTHROUGH;
18934  case 7:
18935  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
18936  else {
18937  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 7); __PYX_ERR(0, 4328, __pyx_L3_error)
18938  }
18939  CYTHON_FALLTHROUGH;
18940  case 8:
18941  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f)) != 0)) kw_args--;
18942  else {
18943  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 8); __PYX_ERR(0, 4328, __pyx_L3_error)
18944  }
18945  CYTHON_FALLTHROUGH;
18946  case 9:
18947  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_df)) != 0)) kw_args--;
18948  else {
18949  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 9); __PYX_ERR(0, 4328, __pyx_L3_error)
18950  }
18951  CYTHON_FALLTHROUGH;
18952  case 10:
18953  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
18954  else {
18955  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 10); __PYX_ERR(0, 4328, __pyx_L3_error)
18956  }
18957  CYTHON_FALLTHROUGH;
18958  case 11:
18959  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
18960  else {
18961  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 11); __PYX_ERR(0, 4328, __pyx_L3_error)
18962  }
18963  CYTHON_FALLTHROUGH;
18964  case 12:
18965  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
18966  else {
18967  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 12); __PYX_ERR(0, 4328, __pyx_L3_error)
18968  }
18969  CYTHON_FALLTHROUGH;
18970  case 13:
18971  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_element)) != 0)) kw_args--;
18972  else {
18973  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 13); __PYX_ERR(0, 4328, __pyx_L3_error)
18974  }
18975  CYTHON_FALLTHROUGH;
18976  case 14:
18977  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
18978  else {
18979  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 14); __PYX_ERR(0, 4328, __pyx_L3_error)
18980  }
18981  CYTHON_FALLTHROUGH;
18982  case 15:
18983  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux)) != 0)) kw_args--;
18984  else {
18985  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, 15); __PYX_ERR(0, 4328, __pyx_L3_error)
18986  }
18987  }
18988  if (unlikely(kw_args > 0)) {
18989  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalAdvectiveFluxRusanov") < 0)) __PYX_ERR(0, 4328, __pyx_L3_error)
18990  }
18991  } else if (PyTuple_GET_SIZE(__pyx_args) != 16) {
18992  goto __pyx_L5_argtuple_error;
18993  } else {
18994  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
18995  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
18996  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
18997  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
18998  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
18999  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
19000  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
19001  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
19002  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
19003  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
19004  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
19005  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
19006  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
19007  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
19008  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
19009  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
19010  }
19011  __pyx_v_safetyFactor = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_safetyFactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4328, __pyx_L3_error)
19012  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
19013  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
19014  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
19015  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[4]);
19016  __pyx_v_inflowFlag = ((PyArrayObject *)values[5]);
19017  __pyx_v_n = ((PyArrayObject *)values[6]);
19018  __pyx_v_bc_u = ((PyArrayObject *)values[7]);
19019  __pyx_v_bc_f = ((PyArrayObject *)values[8]);
19020  __pyx_v_bc_df = ((PyArrayObject *)values[9]);
19021  __pyx_v_u = ((PyArrayObject *)values[10]);
19022  __pyx_v_f = ((PyArrayObject *)values[11]);
19023  __pyx_v_df = ((PyArrayObject *)values[12]);
19024  __pyx_v_df_element = ((PyArrayObject *)values[13]);
19025  __pyx_v_flux = ((PyArrayObject *)values[14]);
19026  __pyx_v_dflux = ((PyArrayObject *)values[15]);
19027  }
19028  goto __pyx_L4_argument_unpacking_done;
19029  __pyx_L5_argtuple_error:;
19030  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanov", 1, 16, 16, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4328, __pyx_L3_error)
19031  __pyx_L3_error:;
19032  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalAdvectiveFluxRusanov", __pyx_clineno, __pyx_lineno, __pyx_filename);
19033  __Pyx_RefNannyFinishContext();
19034  return NULL;
19035  __pyx_L4_argument_unpacking_done:;
19036  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4329, __pyx_L1_error)
19037  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4330, __pyx_L1_error)
19038  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4331, __pyx_L1_error)
19039  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4332, __pyx_L1_error)
19040  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 4333, __pyx_L1_error)
19041  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4334, __pyx_L1_error)
19042  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 4335, __pyx_L1_error)
19043  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f), __pyx_ptype_5numpy_ndarray, 1, "bc_f", 0))) __PYX_ERR(0, 4336, __pyx_L1_error)
19044  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_df), __pyx_ptype_5numpy_ndarray, 1, "bc_df", 0))) __PYX_ERR(0, 4337, __pyx_L1_error)
19045  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 4338, __pyx_L1_error)
19046  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 4339, __pyx_L1_error)
19047  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 4340, __pyx_L1_error)
19048  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_element), __pyx_ptype_5numpy_ndarray, 1, "df_element", 0))) __PYX_ERR(0, 4341, __pyx_L1_error)
19049  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 4342, __pyx_L1_error)
19050  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux), __pyx_ptype_5numpy_ndarray, 1, "dflux", 0))) __PYX_ERR(0, 4343, __pyx_L1_error)
19051  __pyx_r = __pyx_pf_14cnumericalFlux_102calculateExteriorNumericalAdvectiveFluxRusanov(__pyx_self, __pyx_v_safetyFactor, __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_df_element, __pyx_v_flux, __pyx_v_dflux);
19052 
19053  /* function exit code */
19054  goto __pyx_L0;
19055  __pyx_L1_error:;
19056  __pyx_r = NULL;
19057  __pyx_L0:;
19058  __Pyx_RefNannyFinishContext();
19059  return __pyx_r;
19060 }
19061 
19062 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) {
19063  PyObject *__pyx_r = NULL;
19064  __Pyx_RefNannyDeclarations
19065  int __pyx_t_1;
19066  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxRusanov", 0);
19067 
19068  /* "cnumericalFlux.pyx":4344
19069  * np.ndarray flux,
19070  * np.ndarray dflux):
19071  * if f.ndim > 3: # <<<<<<<<<<<<<<
19072  * ccalculateExteriorNumericalAdvectiveFluxRusanov( safetyFactor,
19073  * exteriorElementBoundaries.shape[0],
19074  */
19075  __pyx_t_1 = ((__pyx_v_f->nd > 3) != 0);
19076  if (__pyx_t_1) {
19077 
19078  /* "cnumericalFlux.pyx":4345
19079  * np.ndarray dflux):
19080  * if f.ndim > 3:
19081  * ccalculateExteriorNumericalAdvectiveFluxRusanov( safetyFactor, # <<<<<<<<<<<<<<
19082  * exteriorElementBoundaries.shape[0],
19083  * f.shape[1],
19084  */
19085  calculateExteriorNumericalAdvectiveFluxRusanov(__pyx_v_safetyFactor, (__pyx_v_exteriorElementBoundaries->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_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_df_element->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_dflux->data));
19086 
19087  /* "cnumericalFlux.pyx":4344
19088  * np.ndarray flux,
19089  * np.ndarray dflux):
19090  * if f.ndim > 3: # <<<<<<<<<<<<<<
19091  * ccalculateExteriorNumericalAdvectiveFluxRusanov( safetyFactor,
19092  * exteriorElementBoundaries.shape[0],
19093  */
19094  goto __pyx_L3;
19095  }
19096 
19097  /* "cnumericalFlux.pyx":4367
19098  * <double*> dflux.data)
19099  * else:
19100  * ccalculateGlobalExteriorNumericalAdvectiveFluxRusanov( safetyFactor, # <<<<<<<<<<<<<<
19101  * exteriorElementBoundaries.shape[0],
19102  * f.shape[1],
19103  */
19104  /*else*/ {
19105 
19106  /* "cnumericalFlux.pyx":4386
19107  * <double*> df_element.data,
19108  * <double*> flux.data,
19109  * <double*> dflux.data) # <<<<<<<<<<<<<<
19110  * def calculateGlobalExteriorNumericalAdvectiveFluxRusanov(double safetyFactor,
19111  * int nExteriorElementBoundaries_global,
19112  */
19113  calculateGlobalExteriorNumericalAdvectiveFluxRusanov(__pyx_v_safetyFactor, (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_f->dimensions[1]), (__pyx_v_df_element->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_df_element->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_dflux->data));
19114  }
19115  __pyx_L3:;
19116 
19117  /* "cnumericalFlux.pyx":4328
19118  * <double*> dflux_wmom_dw.data,
19119  * <double*> velocity.data)
19120  * def calculateExteriorNumericalAdvectiveFluxRusanov(double safetyFactor, # <<<<<<<<<<<<<<
19121  * np.ndarray exteriorElementBoundaries,
19122  * np.ndarray elementBoundaryElements,
19123  */
19124 
19125  /* function exit code */
19126  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
19127  __Pyx_XGIVEREF(__pyx_r);
19128  __Pyx_RefNannyFinishContext();
19129  return __pyx_r;
19130 }
19131 
19132 /* "cnumericalFlux.pyx":4387
19133  * <double*> flux.data,
19134  * <double*> dflux.data)
19135  * def calculateGlobalExteriorNumericalAdvectiveFluxRusanov(double safetyFactor, # <<<<<<<<<<<<<<
19136  * int nExteriorElementBoundaries_global,
19137  * int nQuadraturePoints_elementBoundary,
19138  */
19139 
19140 /* Python wrapper */
19141 static PyObject *__pyx_pw_14cnumericalFlux_105calculateGlobalExteriorNumericalAdvectiveFluxRusanov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
19142 static PyMethodDef __pyx_mdef_14cnumericalFlux_105calculateGlobalExteriorNumericalAdvectiveFluxRusanov = {"calculateGlobalExteriorNumericalAdvectiveFluxRusanov", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_105calculateGlobalExteriorNumericalAdvectiveFluxRusanov, METH_VARARGS|METH_KEYWORDS, 0};
19143 static PyObject *__pyx_pw_14cnumericalFlux_105calculateGlobalExteriorNumericalAdvectiveFluxRusanov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
19144  double __pyx_v_safetyFactor;
19145  int __pyx_v_nExteriorElementBoundaries_global;
19146  int __pyx_v_nQuadraturePoints_elementBoundary;
19147  int __pyx_v_nQuadraturePoints_element;
19148  int __pyx_v_nSpace;
19149  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
19150  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
19151  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
19152  PyArrayObject *__pyx_v_isDOFBoundary = 0;
19153  PyArrayObject *__pyx_v_inflowFlag = 0;
19154  PyArrayObject *__pyx_v_n = 0;
19155  PyArrayObject *__pyx_v_bc_u = 0;
19156  PyArrayObject *__pyx_v_bc_f = 0;
19157  PyArrayObject *__pyx_v_bc_df = 0;
19158  PyArrayObject *__pyx_v_u = 0;
19159  PyArrayObject *__pyx_v_f = 0;
19160  PyArrayObject *__pyx_v_df = 0;
19161  PyArrayObject *__pyx_v_df_element = 0;
19162  PyArrayObject *__pyx_v_flux = 0;
19163  PyArrayObject *__pyx_v_dflux = 0;
19164  int __pyx_lineno = 0;
19165  const char *__pyx_filename = NULL;
19166  int __pyx_clineno = 0;
19167  PyObject *__pyx_r = 0;
19168  __Pyx_RefNannyDeclarations
19169  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxRusanov (wrapper)", 0);
19170  {
19171  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_safetyFactor,&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nQuadraturePoints_element,&__pyx_n_s_nSpace,&__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_df_element,&__pyx_n_s_flux,&__pyx_n_s_dflux,0};
19172  PyObject* values[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
19173  if (unlikely(__pyx_kwds)) {
19174  Py_ssize_t kw_args;
19175  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
19176  switch (pos_args) {
19177  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
19178  CYTHON_FALLTHROUGH;
19179  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
19180  CYTHON_FALLTHROUGH;
19181  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
19182  CYTHON_FALLTHROUGH;
19183  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
19184  CYTHON_FALLTHROUGH;
19185  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
19186  CYTHON_FALLTHROUGH;
19187  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
19188  CYTHON_FALLTHROUGH;
19189  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
19190  CYTHON_FALLTHROUGH;
19191  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
19192  CYTHON_FALLTHROUGH;
19193  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
19194  CYTHON_FALLTHROUGH;
19195  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
19196  CYTHON_FALLTHROUGH;
19197  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
19198  CYTHON_FALLTHROUGH;
19199  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
19200  CYTHON_FALLTHROUGH;
19201  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
19202  CYTHON_FALLTHROUGH;
19203  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
19204  CYTHON_FALLTHROUGH;
19205  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
19206  CYTHON_FALLTHROUGH;
19207  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
19208  CYTHON_FALLTHROUGH;
19209  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
19210  CYTHON_FALLTHROUGH;
19211  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
19212  CYTHON_FALLTHROUGH;
19213  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
19214  CYTHON_FALLTHROUGH;
19215  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19216  CYTHON_FALLTHROUGH;
19217  case 0: break;
19218  default: goto __pyx_L5_argtuple_error;
19219  }
19220  kw_args = PyDict_Size(__pyx_kwds);
19221  switch (pos_args) {
19222  case 0:
19223  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_safetyFactor)) != 0)) kw_args--;
19224  else goto __pyx_L5_argtuple_error;
19225  CYTHON_FALLTHROUGH;
19226  case 1:
19227  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
19228  else {
19229  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 1); __PYX_ERR(0, 4387, __pyx_L3_error)
19230  }
19231  CYTHON_FALLTHROUGH;
19232  case 2:
19233  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
19234  else {
19235  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 2); __PYX_ERR(0, 4387, __pyx_L3_error)
19236  }
19237  CYTHON_FALLTHROUGH;
19238  case 3:
19239  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_element)) != 0)) kw_args--;
19240  else {
19241  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 3); __PYX_ERR(0, 4387, __pyx_L3_error)
19242  }
19243  CYTHON_FALLTHROUGH;
19244  case 4:
19245  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
19246  else {
19247  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 4); __PYX_ERR(0, 4387, __pyx_L3_error)
19248  }
19249  CYTHON_FALLTHROUGH;
19250  case 5:
19251  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
19252  else {
19253  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 5); __PYX_ERR(0, 4387, __pyx_L3_error)
19254  }
19255  CYTHON_FALLTHROUGH;
19256  case 6:
19257  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
19258  else {
19259  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 6); __PYX_ERR(0, 4387, __pyx_L3_error)
19260  }
19261  CYTHON_FALLTHROUGH;
19262  case 7:
19263  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
19264  else {
19265  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 7); __PYX_ERR(0, 4387, __pyx_L3_error)
19266  }
19267  CYTHON_FALLTHROUGH;
19268  case 8:
19269  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
19270  else {
19271  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 8); __PYX_ERR(0, 4387, __pyx_L3_error)
19272  }
19273  CYTHON_FALLTHROUGH;
19274  case 9:
19275  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
19276  else {
19277  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 9); __PYX_ERR(0, 4387, __pyx_L3_error)
19278  }
19279  CYTHON_FALLTHROUGH;
19280  case 10:
19281  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
19282  else {
19283  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 10); __PYX_ERR(0, 4387, __pyx_L3_error)
19284  }
19285  CYTHON_FALLTHROUGH;
19286  case 11:
19287  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
19288  else {
19289  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 11); __PYX_ERR(0, 4387, __pyx_L3_error)
19290  }
19291  CYTHON_FALLTHROUGH;
19292  case 12:
19293  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f)) != 0)) kw_args--;
19294  else {
19295  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 12); __PYX_ERR(0, 4387, __pyx_L3_error)
19296  }
19297  CYTHON_FALLTHROUGH;
19298  case 13:
19299  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_df)) != 0)) kw_args--;
19300  else {
19301  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 13); __PYX_ERR(0, 4387, __pyx_L3_error)
19302  }
19303  CYTHON_FALLTHROUGH;
19304  case 14:
19305  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
19306  else {
19307  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 14); __PYX_ERR(0, 4387, __pyx_L3_error)
19308  }
19309  CYTHON_FALLTHROUGH;
19310  case 15:
19311  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
19312  else {
19313  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 15); __PYX_ERR(0, 4387, __pyx_L3_error)
19314  }
19315  CYTHON_FALLTHROUGH;
19316  case 16:
19317  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
19318  else {
19319  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 16); __PYX_ERR(0, 4387, __pyx_L3_error)
19320  }
19321  CYTHON_FALLTHROUGH;
19322  case 17:
19323  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_element)) != 0)) kw_args--;
19324  else {
19325  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 17); __PYX_ERR(0, 4387, __pyx_L3_error)
19326  }
19327  CYTHON_FALLTHROUGH;
19328  case 18:
19329  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
19330  else {
19331  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 18); __PYX_ERR(0, 4387, __pyx_L3_error)
19332  }
19333  CYTHON_FALLTHROUGH;
19334  case 19:
19335  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux)) != 0)) kw_args--;
19336  else {
19337  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, 19); __PYX_ERR(0, 4387, __pyx_L3_error)
19338  }
19339  }
19340  if (unlikely(kw_args > 0)) {
19341  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalAdvectiveFluxRusanov") < 0)) __PYX_ERR(0, 4387, __pyx_L3_error)
19342  }
19343  } else if (PyTuple_GET_SIZE(__pyx_args) != 20) {
19344  goto __pyx_L5_argtuple_error;
19345  } else {
19346  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19347  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
19348  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
19349  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
19350  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
19351  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
19352  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
19353  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
19354  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
19355  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
19356  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
19357  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
19358  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
19359  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
19360  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
19361  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
19362  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
19363  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
19364  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
19365  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
19366  }
19367  __pyx_v_safetyFactor = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_safetyFactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4387, __pyx_L3_error)
19368  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4388, __pyx_L3_error)
19369  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4389, __pyx_L3_error)
19370  __pyx_v_nQuadraturePoints_element = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nQuadraturePoints_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4390, __pyx_L3_error)
19371  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4391, __pyx_L3_error)
19372  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[5]);
19373  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[6]);
19374  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[7]);
19375  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[8]);
19376  __pyx_v_inflowFlag = ((PyArrayObject *)values[9]);
19377  __pyx_v_n = ((PyArrayObject *)values[10]);
19378  __pyx_v_bc_u = ((PyArrayObject *)values[11]);
19379  __pyx_v_bc_f = ((PyArrayObject *)values[12]);
19380  __pyx_v_bc_df = ((PyArrayObject *)values[13]);
19381  __pyx_v_u = ((PyArrayObject *)values[14]);
19382  __pyx_v_f = ((PyArrayObject *)values[15]);
19383  __pyx_v_df = ((PyArrayObject *)values[16]);
19384  __pyx_v_df_element = ((PyArrayObject *)values[17]);
19385  __pyx_v_flux = ((PyArrayObject *)values[18]);
19386  __pyx_v_dflux = ((PyArrayObject *)values[19]);
19387  }
19388  goto __pyx_L4_argument_unpacking_done;
19389  __pyx_L5_argtuple_error:;
19390  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 1, 20, 20, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4387, __pyx_L3_error)
19391  __pyx_L3_error:;
19392  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalAdvectiveFluxRusanov", __pyx_clineno, __pyx_lineno, __pyx_filename);
19393  __Pyx_RefNannyFinishContext();
19394  return NULL;
19395  __pyx_L4_argument_unpacking_done:;
19396  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4392, __pyx_L1_error)
19397  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4393, __pyx_L1_error)
19398  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4394, __pyx_L1_error)
19399  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4395, __pyx_L1_error)
19400  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 4396, __pyx_L1_error)
19401  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4397, __pyx_L1_error)
19402  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 4398, __pyx_L1_error)
19403  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f), __pyx_ptype_5numpy_ndarray, 1, "bc_f", 0))) __PYX_ERR(0, 4399, __pyx_L1_error)
19404  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_df), __pyx_ptype_5numpy_ndarray, 1, "bc_df", 0))) __PYX_ERR(0, 4400, __pyx_L1_error)
19405  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 4401, __pyx_L1_error)
19406  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 4402, __pyx_L1_error)
19407  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 4403, __pyx_L1_error)
19408  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_element), __pyx_ptype_5numpy_ndarray, 1, "df_element", 0))) __PYX_ERR(0, 4404, __pyx_L1_error)
19409  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 4405, __pyx_L1_error)
19410  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux), __pyx_ptype_5numpy_ndarray, 1, "dflux", 0))) __PYX_ERR(0, 4406, __pyx_L1_error)
19411  __pyx_r = __pyx_pf_14cnumericalFlux_104calculateGlobalExteriorNumericalAdvectiveFluxRusanov(__pyx_self, __pyx_v_safetyFactor, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nQuadraturePoints_element, __pyx_v_nSpace, __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_df_element, __pyx_v_flux, __pyx_v_dflux);
19412 
19413  /* function exit code */
19414  goto __pyx_L0;
19415  __pyx_L1_error:;
19416  __pyx_r = NULL;
19417  __pyx_L0:;
19418  __Pyx_RefNannyFinishContext();
19419  return __pyx_r;
19420 }
19421 
19422 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) {
19423  PyObject *__pyx_r = NULL;
19424  __Pyx_RefNannyDeclarations
19425  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxRusanov", 0);
19426 
19427  /* "cnumericalFlux.pyx":4407
19428  * np.ndarray flux,
19429  * np.ndarray dflux):
19430  * ccalculateGlobalExteriorNumericalAdvectiveFluxRusanov( safetyFactor, # <<<<<<<<<<<<<<
19431  * nExteriorElementBoundaries_global,
19432  * nQuadraturePoints_elementBoundary,
19433  */
19434  calculateGlobalExteriorNumericalAdvectiveFluxRusanov(__pyx_v_safetyFactor, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nQuadraturePoints_element, __pyx_v_nSpace, ((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_df_element->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_dflux->data));
19435 
19436  /* "cnumericalFlux.pyx":4387
19437  * <double*> flux.data,
19438  * <double*> dflux.data)
19439  * def calculateGlobalExteriorNumericalAdvectiveFluxRusanov(double safetyFactor, # <<<<<<<<<<<<<<
19440  * int nExteriorElementBoundaries_global,
19441  * int nQuadraturePoints_elementBoundary,
19442  */
19443 
19444  /* function exit code */
19445  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
19446  __Pyx_XGIVEREF(__pyx_r);
19447  __Pyx_RefNannyFinishContext();
19448  return __pyx_r;
19449 }
19450 
19451 /* "cnumericalFlux.pyx":4427
19452  * <double*> flux.data,
19453  * <double*> dflux.data)
19454  * def calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, # <<<<<<<<<<<<<<
19455  * int nExteriorElementBoundaries_global,
19456  * int nQuadraturePoints_elementBoundary,
19457  */
19458 
19459 /* Python wrapper */
19460 static PyObject *__pyx_pw_14cnumericalFlux_107calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
19461 static PyMethodDef __pyx_mdef_14cnumericalFlux_107calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound = {"calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_107calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound, METH_VARARGS|METH_KEYWORDS, 0};
19462 static PyObject *__pyx_pw_14cnumericalFlux_107calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
19463  double __pyx_v_safetyFactor;
19464  int __pyx_v_nExteriorElementBoundaries_global;
19465  int __pyx_v_nQuadraturePoints_elementBoundary;
19466  int __pyx_v_nQuadraturePoints_element;
19467  int __pyx_v_nSpace;
19468  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
19469  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
19470  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
19471  PyArrayObject *__pyx_v_isDOFBoundary = 0;
19472  PyArrayObject *__pyx_v_inflowFlag = 0;
19473  PyArrayObject *__pyx_v_n = 0;
19474  PyArrayObject *__pyx_v_bc_u = 0;
19475  PyArrayObject *__pyx_v_bc_f = 0;
19476  PyArrayObject *__pyx_v_u = 0;
19477  PyArrayObject *__pyx_v_f = 0;
19478  PyArrayObject *__pyx_v_lambda_bar = 0;
19479  PyArrayObject *__pyx_v_flux = 0;
19480  int __pyx_lineno = 0;
19481  const char *__pyx_filename = NULL;
19482  int __pyx_clineno = 0;
19483  PyObject *__pyx_r = 0;
19484  __Pyx_RefNannyDeclarations
19485  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound (wrapper)", 0);
19486  {
19487  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_safetyFactor,&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nQuadraturePoints_element,&__pyx_n_s_nSpace,&__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_u,&__pyx_n_s_f,&__pyx_n_s_lambda_bar,&__pyx_n_s_flux,0};
19488  PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
19489  if (unlikely(__pyx_kwds)) {
19490  Py_ssize_t kw_args;
19491  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
19492  switch (pos_args) {
19493  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
19494  CYTHON_FALLTHROUGH;
19495  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
19496  CYTHON_FALLTHROUGH;
19497  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
19498  CYTHON_FALLTHROUGH;
19499  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
19500  CYTHON_FALLTHROUGH;
19501  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
19502  CYTHON_FALLTHROUGH;
19503  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
19504  CYTHON_FALLTHROUGH;
19505  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
19506  CYTHON_FALLTHROUGH;
19507  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
19508  CYTHON_FALLTHROUGH;
19509  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
19510  CYTHON_FALLTHROUGH;
19511  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
19512  CYTHON_FALLTHROUGH;
19513  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
19514  CYTHON_FALLTHROUGH;
19515  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
19516  CYTHON_FALLTHROUGH;
19517  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
19518  CYTHON_FALLTHROUGH;
19519  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
19520  CYTHON_FALLTHROUGH;
19521  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
19522  CYTHON_FALLTHROUGH;
19523  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
19524  CYTHON_FALLTHROUGH;
19525  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19526  CYTHON_FALLTHROUGH;
19527  case 0: break;
19528  default: goto __pyx_L5_argtuple_error;
19529  }
19530  kw_args = PyDict_Size(__pyx_kwds);
19531  switch (pos_args) {
19532  case 0:
19533  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_safetyFactor)) != 0)) kw_args--;
19534  else goto __pyx_L5_argtuple_error;
19535  CYTHON_FALLTHROUGH;
19536  case 1:
19537  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
19538  else {
19539  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 1); __PYX_ERR(0, 4427, __pyx_L3_error)
19540  }
19541  CYTHON_FALLTHROUGH;
19542  case 2:
19543  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
19544  else {
19545  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 2); __PYX_ERR(0, 4427, __pyx_L3_error)
19546  }
19547  CYTHON_FALLTHROUGH;
19548  case 3:
19549  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_element)) != 0)) kw_args--;
19550  else {
19551  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 3); __PYX_ERR(0, 4427, __pyx_L3_error)
19552  }
19553  CYTHON_FALLTHROUGH;
19554  case 4:
19555  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
19556  else {
19557  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 4); __PYX_ERR(0, 4427, __pyx_L3_error)
19558  }
19559  CYTHON_FALLTHROUGH;
19560  case 5:
19561  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
19562  else {
19563  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 5); __PYX_ERR(0, 4427, __pyx_L3_error)
19564  }
19565  CYTHON_FALLTHROUGH;
19566  case 6:
19567  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
19568  else {
19569  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 6); __PYX_ERR(0, 4427, __pyx_L3_error)
19570  }
19571  CYTHON_FALLTHROUGH;
19572  case 7:
19573  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
19574  else {
19575  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 7); __PYX_ERR(0, 4427, __pyx_L3_error)
19576  }
19577  CYTHON_FALLTHROUGH;
19578  case 8:
19579  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
19580  else {
19581  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 8); __PYX_ERR(0, 4427, __pyx_L3_error)
19582  }
19583  CYTHON_FALLTHROUGH;
19584  case 9:
19585  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
19586  else {
19587  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 9); __PYX_ERR(0, 4427, __pyx_L3_error)
19588  }
19589  CYTHON_FALLTHROUGH;
19590  case 10:
19591  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
19592  else {
19593  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 10); __PYX_ERR(0, 4427, __pyx_L3_error)
19594  }
19595  CYTHON_FALLTHROUGH;
19596  case 11:
19597  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
19598  else {
19599  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 11); __PYX_ERR(0, 4427, __pyx_L3_error)
19600  }
19601  CYTHON_FALLTHROUGH;
19602  case 12:
19603  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f)) != 0)) kw_args--;
19604  else {
19605  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 12); __PYX_ERR(0, 4427, __pyx_L3_error)
19606  }
19607  CYTHON_FALLTHROUGH;
19608  case 13:
19609  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
19610  else {
19611  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 13); __PYX_ERR(0, 4427, __pyx_L3_error)
19612  }
19613  CYTHON_FALLTHROUGH;
19614  case 14:
19615  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
19616  else {
19617  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 14); __PYX_ERR(0, 4427, __pyx_L3_error)
19618  }
19619  CYTHON_FALLTHROUGH;
19620  case 15:
19621  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lambda_bar)) != 0)) kw_args--;
19622  else {
19623  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 15); __PYX_ERR(0, 4427, __pyx_L3_error)
19624  }
19625  CYTHON_FALLTHROUGH;
19626  case 16:
19627  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
19628  else {
19629  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, 16); __PYX_ERR(0, 4427, __pyx_L3_error)
19630  }
19631  }
19632  if (unlikely(kw_args > 0)) {
19633  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound") < 0)) __PYX_ERR(0, 4427, __pyx_L3_error)
19634  }
19635  } else if (PyTuple_GET_SIZE(__pyx_args) != 17) {
19636  goto __pyx_L5_argtuple_error;
19637  } else {
19638  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19639  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
19640  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
19641  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
19642  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
19643  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
19644  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
19645  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
19646  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
19647  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
19648  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
19649  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
19650  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
19651  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
19652  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
19653  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
19654  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
19655  }
19656  __pyx_v_safetyFactor = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_safetyFactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4427, __pyx_L3_error)
19657  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4428, __pyx_L3_error)
19658  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4429, __pyx_L3_error)
19659  __pyx_v_nQuadraturePoints_element = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nQuadraturePoints_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4430, __pyx_L3_error)
19660  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4431, __pyx_L3_error)
19661  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[5]);
19662  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[6]);
19663  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[7]);
19664  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[8]);
19665  __pyx_v_inflowFlag = ((PyArrayObject *)values[9]);
19666  __pyx_v_n = ((PyArrayObject *)values[10]);
19667  __pyx_v_bc_u = ((PyArrayObject *)values[11]);
19668  __pyx_v_bc_f = ((PyArrayObject *)values[12]);
19669  __pyx_v_u = ((PyArrayObject *)values[13]);
19670  __pyx_v_f = ((PyArrayObject *)values[14]);
19671  __pyx_v_lambda_bar = ((PyArrayObject *)values[15]);
19672  __pyx_v_flux = ((PyArrayObject *)values[16]);
19673  }
19674  goto __pyx_L4_argument_unpacking_done;
19675  __pyx_L5_argtuple_error:;
19676  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 17, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4427, __pyx_L3_error)
19677  __pyx_L3_error:;
19678  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", __pyx_clineno, __pyx_lineno, __pyx_filename);
19679  __Pyx_RefNannyFinishContext();
19680  return NULL;
19681  __pyx_L4_argument_unpacking_done:;
19682  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4432, __pyx_L1_error)
19683  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4433, __pyx_L1_error)
19684  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4434, __pyx_L1_error)
19685  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4435, __pyx_L1_error)
19686  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 4436, __pyx_L1_error)
19687  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4437, __pyx_L1_error)
19688  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 4438, __pyx_L1_error)
19689  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f), __pyx_ptype_5numpy_ndarray, 1, "bc_f", 0))) __PYX_ERR(0, 4439, __pyx_L1_error)
19690  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 4440, __pyx_L1_error)
19691  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 4441, __pyx_L1_error)
19692  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lambda_bar), __pyx_ptype_5numpy_ndarray, 1, "lambda_bar", 0))) __PYX_ERR(0, 4442, __pyx_L1_error)
19693  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 4443, __pyx_L1_error)
19694  __pyx_r = __pyx_pf_14cnumericalFlux_106calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(__pyx_self, __pyx_v_safetyFactor, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nQuadraturePoints_element, __pyx_v_nSpace, __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_u, __pyx_v_f, __pyx_v_lambda_bar, __pyx_v_flux);
19695 
19696  /* function exit code */
19697  goto __pyx_L0;
19698  __pyx_L1_error:;
19699  __pyx_r = NULL;
19700  __pyx_L0:;
19701  __Pyx_RefNannyFinishContext();
19702  return __pyx_r;
19703 }
19704 
19705 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) {
19706  PyObject *__pyx_r = NULL;
19707  __Pyx_RefNannyDeclarations
19708  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 0);
19709 
19710  /* "cnumericalFlux.pyx":4444
19711  * np.ndarray lambda_bar,
19712  * np.ndarray flux):
19713  * ccalculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound( safetyFactor, # <<<<<<<<<<<<<<
19714  * nExteriorElementBoundaries_global,
19715  * nQuadraturePoints_elementBoundary,
19716  */
19717  calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(__pyx_v_safetyFactor, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nQuadraturePoints_element, __pyx_v_nSpace, ((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_u->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_lambda_bar->data), ((double *)__pyx_v_flux->data));
19718 
19719  /* "cnumericalFlux.pyx":4427
19720  * <double*> flux.data,
19721  * <double*> dflux.data)
19722  * def calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, # <<<<<<<<<<<<<<
19723  * int nExteriorElementBoundaries_global,
19724  * int nQuadraturePoints_elementBoundary,
19725  */
19726 
19727  /* function exit code */
19728  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
19729  __Pyx_XGIVEREF(__pyx_r);
19730  __Pyx_RefNannyFinishContext();
19731  return __pyx_r;
19732 }
19733 
19734 /* "cnumericalFlux.pyx":4461
19735  * <double*> lambda_bar.data,
19736  * <double*> flux.data)
19737  * def calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, # <<<<<<<<<<<<<<
19738  * np.ndarray exteriorElementBoundaries,
19739  * np.ndarray elementBoundaryElements,
19740  */
19741 
19742 /* Python wrapper */
19743 static PyObject *__pyx_pw_14cnumericalFlux_109calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
19744 static PyMethodDef __pyx_mdef_14cnumericalFlux_109calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound = {"calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_109calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound, METH_VARARGS|METH_KEYWORDS, 0};
19745 static PyObject *__pyx_pw_14cnumericalFlux_109calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
19746  double __pyx_v_safetyFactor;
19747  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
19748  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
19749  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
19750  PyArrayObject *__pyx_v_isDOFBoundary = 0;
19751  PyArrayObject *__pyx_v_inflowFlag = 0;
19752  PyArrayObject *__pyx_v_n = 0;
19753  PyArrayObject *__pyx_v_bc_u = 0;
19754  PyArrayObject *__pyx_v_bc_f = 0;
19755  PyArrayObject *__pyx_v_u = 0;
19756  PyArrayObject *__pyx_v_f = 0;
19757  PyArrayObject *__pyx_v_lambda_bar_element = 0;
19758  PyArrayObject *__pyx_v_flux = 0;
19759  int __pyx_lineno = 0;
19760  const char *__pyx_filename = NULL;
19761  int __pyx_clineno = 0;
19762  PyObject *__pyx_r = 0;
19763  __Pyx_RefNannyDeclarations
19764  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound (wrapper)", 0);
19765  {
19766  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_safetyFactor,&__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_u,&__pyx_n_s_f,&__pyx_n_s_lambda_bar_element,&__pyx_n_s_flux,0};
19767  PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
19768  if (unlikely(__pyx_kwds)) {
19769  Py_ssize_t kw_args;
19770  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
19771  switch (pos_args) {
19772  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
19773  CYTHON_FALLTHROUGH;
19774  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
19775  CYTHON_FALLTHROUGH;
19776  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
19777  CYTHON_FALLTHROUGH;
19778  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
19779  CYTHON_FALLTHROUGH;
19780  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
19781  CYTHON_FALLTHROUGH;
19782  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
19783  CYTHON_FALLTHROUGH;
19784  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
19785  CYTHON_FALLTHROUGH;
19786  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
19787  CYTHON_FALLTHROUGH;
19788  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
19789  CYTHON_FALLTHROUGH;
19790  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
19791  CYTHON_FALLTHROUGH;
19792  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
19793  CYTHON_FALLTHROUGH;
19794  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
19795  CYTHON_FALLTHROUGH;
19796  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19797  CYTHON_FALLTHROUGH;
19798  case 0: break;
19799  default: goto __pyx_L5_argtuple_error;
19800  }
19801  kw_args = PyDict_Size(__pyx_kwds);
19802  switch (pos_args) {
19803  case 0:
19804  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_safetyFactor)) != 0)) kw_args--;
19805  else goto __pyx_L5_argtuple_error;
19806  CYTHON_FALLTHROUGH;
19807  case 1:
19808  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
19809  else {
19810  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 13, 13, 1); __PYX_ERR(0, 4461, __pyx_L3_error)
19811  }
19812  CYTHON_FALLTHROUGH;
19813  case 2:
19814  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
19815  else {
19816  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 13, 13, 2); __PYX_ERR(0, 4461, __pyx_L3_error)
19817  }
19818  CYTHON_FALLTHROUGH;
19819  case 3:
19820  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
19821  else {
19822  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 13, 13, 3); __PYX_ERR(0, 4461, __pyx_L3_error)
19823  }
19824  CYTHON_FALLTHROUGH;
19825  case 4:
19826  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
19827  else {
19828  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 13, 13, 4); __PYX_ERR(0, 4461, __pyx_L3_error)
19829  }
19830  CYTHON_FALLTHROUGH;
19831  case 5:
19832  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
19833  else {
19834  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 13, 13, 5); __PYX_ERR(0, 4461, __pyx_L3_error)
19835  }
19836  CYTHON_FALLTHROUGH;
19837  case 6:
19838  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
19839  else {
19840  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 13, 13, 6); __PYX_ERR(0, 4461, __pyx_L3_error)
19841  }
19842  CYTHON_FALLTHROUGH;
19843  case 7:
19844  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
19845  else {
19846  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 13, 13, 7); __PYX_ERR(0, 4461, __pyx_L3_error)
19847  }
19848  CYTHON_FALLTHROUGH;
19849  case 8:
19850  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f)) != 0)) kw_args--;
19851  else {
19852  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 13, 13, 8); __PYX_ERR(0, 4461, __pyx_L3_error)
19853  }
19854  CYTHON_FALLTHROUGH;
19855  case 9:
19856  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
19857  else {
19858  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 13, 13, 9); __PYX_ERR(0, 4461, __pyx_L3_error)
19859  }
19860  CYTHON_FALLTHROUGH;
19861  case 10:
19862  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
19863  else {
19864  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 13, 13, 10); __PYX_ERR(0, 4461, __pyx_L3_error)
19865  }
19866  CYTHON_FALLTHROUGH;
19867  case 11:
19868  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lambda_bar_element)) != 0)) kw_args--;
19869  else {
19870  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 13, 13, 11); __PYX_ERR(0, 4461, __pyx_L3_error)
19871  }
19872  CYTHON_FALLTHROUGH;
19873  case 12:
19874  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
19875  else {
19876  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 13, 13, 12); __PYX_ERR(0, 4461, __pyx_L3_error)
19877  }
19878  }
19879  if (unlikely(kw_args > 0)) {
19880  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound") < 0)) __PYX_ERR(0, 4461, __pyx_L3_error)
19881  }
19882  } else if (PyTuple_GET_SIZE(__pyx_args) != 13) {
19883  goto __pyx_L5_argtuple_error;
19884  } else {
19885  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
19886  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
19887  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
19888  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
19889  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
19890  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
19891  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
19892  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
19893  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
19894  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
19895  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
19896  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
19897  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
19898  }
19899  __pyx_v_safetyFactor = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_safetyFactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4461, __pyx_L3_error)
19900  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
19901  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
19902  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
19903  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[4]);
19904  __pyx_v_inflowFlag = ((PyArrayObject *)values[5]);
19905  __pyx_v_n = ((PyArrayObject *)values[6]);
19906  __pyx_v_bc_u = ((PyArrayObject *)values[7]);
19907  __pyx_v_bc_f = ((PyArrayObject *)values[8]);
19908  __pyx_v_u = ((PyArrayObject *)values[9]);
19909  __pyx_v_f = ((PyArrayObject *)values[10]);
19910  __pyx_v_lambda_bar_element = ((PyArrayObject *)values[11]);
19911  __pyx_v_flux = ((PyArrayObject *)values[12]);
19912  }
19913  goto __pyx_L4_argument_unpacking_done;
19914  __pyx_L5_argtuple_error:;
19915  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 1, 13, 13, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4461, __pyx_L3_error)
19916  __pyx_L3_error:;
19917  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", __pyx_clineno, __pyx_lineno, __pyx_filename);
19918  __Pyx_RefNannyFinishContext();
19919  return NULL;
19920  __pyx_L4_argument_unpacking_done:;
19921  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4462, __pyx_L1_error)
19922  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4463, __pyx_L1_error)
19923  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4464, __pyx_L1_error)
19924  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4465, __pyx_L1_error)
19925  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 4466, __pyx_L1_error)
19926  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4467, __pyx_L1_error)
19927  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 4468, __pyx_L1_error)
19928  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f), __pyx_ptype_5numpy_ndarray, 1, "bc_f", 0))) __PYX_ERR(0, 4469, __pyx_L1_error)
19929  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 4470, __pyx_L1_error)
19930  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 4471, __pyx_L1_error)
19931  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lambda_bar_element), __pyx_ptype_5numpy_ndarray, 1, "lambda_bar_element", 0))) __PYX_ERR(0, 4472, __pyx_L1_error)
19932  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 4473, __pyx_L1_error)
19933  __pyx_r = __pyx_pf_14cnumericalFlux_108calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(__pyx_self, __pyx_v_safetyFactor, __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_u, __pyx_v_f, __pyx_v_lambda_bar_element, __pyx_v_flux);
19934 
19935  /* function exit code */
19936  goto __pyx_L0;
19937  __pyx_L1_error:;
19938  __pyx_r = NULL;
19939  __pyx_L0:;
19940  __Pyx_RefNannyFinishContext();
19941  return __pyx_r;
19942 }
19943 
19944 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) {
19945  PyObject *__pyx_r = NULL;
19946  __Pyx_RefNannyDeclarations
19947  int __pyx_t_1;
19948  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound", 0);
19949 
19950  /* "cnumericalFlux.pyx":4474
19951  * np.ndarray lambda_bar_element,
19952  * np.ndarray flux):
19953  * if f.ndim > 3: # <<<<<<<<<<<<<<
19954  * ccalculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound( safetyFactor,
19955  * exteriorElementBoundaries.shape[0],
19956  */
19957  __pyx_t_1 = ((__pyx_v_f->nd > 3) != 0);
19958  if (__pyx_t_1) {
19959 
19960  /* "cnumericalFlux.pyx":4475
19961  * np.ndarray flux):
19962  * if f.ndim > 3:
19963  * ccalculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound( safetyFactor, # <<<<<<<<<<<<<<
19964  * exteriorElementBoundaries.shape[0],
19965  * f.shape[1],
19966  */
19967  calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(__pyx_v_safetyFactor, (__pyx_v_exteriorElementBoundaries->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_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_u->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_lambda_bar_element->data), ((double *)__pyx_v_flux->data));
19968 
19969  /* "cnumericalFlux.pyx":4474
19970  * np.ndarray lambda_bar_element,
19971  * np.ndarray flux):
19972  * if f.ndim > 3: # <<<<<<<<<<<<<<
19973  * ccalculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound( safetyFactor,
19974  * exteriorElementBoundaries.shape[0],
19975  */
19976  goto __pyx_L3;
19977  }
19978 
19979  /* "cnumericalFlux.pyx":4494
19980  * <double*> flux.data)
19981  * else:
19982  * ccalculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound( safetyFactor, # <<<<<<<<<<<<<<
19983  * exteriorElementBoundaries.shape[0],
19984  * f.shape[1],
19985  */
19986  /*else*/ {
19987 
19988  /* "cnumericalFlux.pyx":4510
19989  * <double*> f.data,
19990  * <double*> lambda_bar_element.data,
19991  * <double*> flux.data) # <<<<<<<<<<<<<<
19992  * def calculateExteriorNumericalDiffusiveFlux(np.ndarray exteriorElementBoundaries,
19993  * np.ndarray elementBoundaryElements,
19994  */
19995  calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(__pyx_v_safetyFactor, (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_f->dimensions[1]), (__pyx_v_lambda_bar_element->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_u->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_lambda_bar_element->data), ((double *)__pyx_v_flux->data));
19996  }
19997  __pyx_L3:;
19998 
19999  /* "cnumericalFlux.pyx":4461
20000  * <double*> lambda_bar.data,
20001  * <double*> flux.data)
20002  * def calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, # <<<<<<<<<<<<<<
20003  * np.ndarray exteriorElementBoundaries,
20004  * np.ndarray elementBoundaryElements,
20005  */
20006 
20007  /* function exit code */
20008  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
20009  __Pyx_XGIVEREF(__pyx_r);
20010  __Pyx_RefNannyFinishContext();
20011  return __pyx_r;
20012 }
20013 
20014 /* "cnumericalFlux.pyx":4511
20015  * <double*> lambda_bar_element.data,
20016  * <double*> flux.data)
20017  * def calculateExteriorNumericalDiffusiveFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
20018  * np.ndarray elementBoundaryElements,
20019  * np.ndarray elementBoundaryLocalElementBoundaries,
20020  */
20021 
20022 /* Python wrapper */
20023 static PyObject *__pyx_pw_14cnumericalFlux_111calculateExteriorNumericalDiffusiveFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
20024 static PyMethodDef __pyx_mdef_14cnumericalFlux_111calculateExteriorNumericalDiffusiveFlux = {"calculateExteriorNumericalDiffusiveFlux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_111calculateExteriorNumericalDiffusiveFlux, METH_VARARGS|METH_KEYWORDS, 0};
20025 static PyObject *__pyx_pw_14cnumericalFlux_111calculateExteriorNumericalDiffusiveFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
20026  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
20027  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
20028  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
20029  PyArrayObject *__pyx_v_isDOFBoundary = 0;
20030  PyArrayObject *__pyx_v_n = 0;
20031  PyArrayObject *__pyx_v_bc_a = 0;
20032  PyArrayObject *__pyx_v_bc_grad_phi = 0;
20033  PyArrayObject *__pyx_v_bc_u = 0;
20034  PyArrayObject *__pyx_v_a = 0;
20035  PyArrayObject *__pyx_v_grad_phi = 0;
20036  PyArrayObject *__pyx_v_u = 0;
20037  PyArrayObject *__pyx_v_penalty = 0;
20038  PyArrayObject *__pyx_v_flux = 0;
20039  int __pyx_v_scale_penalty;
20040  double __pyx_v_penalty_floor;
20041  int __pyx_lineno = 0;
20042  const char *__pyx_filename = NULL;
20043  int __pyx_clineno = 0;
20044  PyObject *__pyx_r = 0;
20045  __Pyx_RefNannyDeclarations
20046  __Pyx_RefNannySetupContext("calculateExteriorNumericalDiffusiveFlux (wrapper)", 0);
20047  {
20048  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_n,&__pyx_n_s_bc_a,&__pyx_n_s_bc_grad_phi,&__pyx_n_s_bc_u,&__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};
20049  PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
20050  if (unlikely(__pyx_kwds)) {
20051  Py_ssize_t kw_args;
20052  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
20053  switch (pos_args) {
20054  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
20055  CYTHON_FALLTHROUGH;
20056  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
20057  CYTHON_FALLTHROUGH;
20058  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
20059  CYTHON_FALLTHROUGH;
20060  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
20061  CYTHON_FALLTHROUGH;
20062  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
20063  CYTHON_FALLTHROUGH;
20064  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
20065  CYTHON_FALLTHROUGH;
20066  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
20067  CYTHON_FALLTHROUGH;
20068  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
20069  CYTHON_FALLTHROUGH;
20070  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
20071  CYTHON_FALLTHROUGH;
20072  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
20073  CYTHON_FALLTHROUGH;
20074  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
20075  CYTHON_FALLTHROUGH;
20076  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
20077  CYTHON_FALLTHROUGH;
20078  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
20079  CYTHON_FALLTHROUGH;
20080  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
20081  CYTHON_FALLTHROUGH;
20082  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
20083  CYTHON_FALLTHROUGH;
20084  case 0: break;
20085  default: goto __pyx_L5_argtuple_error;
20086  }
20087  kw_args = PyDict_Size(__pyx_kwds);
20088  switch (pos_args) {
20089  case 0:
20090  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
20091  else goto __pyx_L5_argtuple_error;
20092  CYTHON_FALLTHROUGH;
20093  case 1:
20094  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
20095  else {
20096  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux", 0, 13, 15, 1); __PYX_ERR(0, 4511, __pyx_L3_error)
20097  }
20098  CYTHON_FALLTHROUGH;
20099  case 2:
20100  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
20101  else {
20102  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux", 0, 13, 15, 2); __PYX_ERR(0, 4511, __pyx_L3_error)
20103  }
20104  CYTHON_FALLTHROUGH;
20105  case 3:
20106  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
20107  else {
20108  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux", 0, 13, 15, 3); __PYX_ERR(0, 4511, __pyx_L3_error)
20109  }
20110  CYTHON_FALLTHROUGH;
20111  case 4:
20112  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
20113  else {
20114  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux", 0, 13, 15, 4); __PYX_ERR(0, 4511, __pyx_L3_error)
20115  }
20116  CYTHON_FALLTHROUGH;
20117  case 5:
20118  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a)) != 0)) kw_args--;
20119  else {
20120  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux", 0, 13, 15, 5); __PYX_ERR(0, 4511, __pyx_L3_error)
20121  }
20122  CYTHON_FALLTHROUGH;
20123  case 6:
20124  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi)) != 0)) kw_args--;
20125  else {
20126  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux", 0, 13, 15, 6); __PYX_ERR(0, 4511, __pyx_L3_error)
20127  }
20128  CYTHON_FALLTHROUGH;
20129  case 7:
20130  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
20131  else {
20132  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux", 0, 13, 15, 7); __PYX_ERR(0, 4511, __pyx_L3_error)
20133  }
20134  CYTHON_FALLTHROUGH;
20135  case 8:
20136  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
20137  else {
20138  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux", 0, 13, 15, 8); __PYX_ERR(0, 4511, __pyx_L3_error)
20139  }
20140  CYTHON_FALLTHROUGH;
20141  case 9:
20142  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
20143  else {
20144  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux", 0, 13, 15, 9); __PYX_ERR(0, 4511, __pyx_L3_error)
20145  }
20146  CYTHON_FALLTHROUGH;
20147  case 10:
20148  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
20149  else {
20150  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux", 0, 13, 15, 10); __PYX_ERR(0, 4511, __pyx_L3_error)
20151  }
20152  CYTHON_FALLTHROUGH;
20153  case 11:
20154  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
20155  else {
20156  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux", 0, 13, 15, 11); __PYX_ERR(0, 4511, __pyx_L3_error)
20157  }
20158  CYTHON_FALLTHROUGH;
20159  case 12:
20160  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
20161  else {
20162  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux", 0, 13, 15, 12); __PYX_ERR(0, 4511, __pyx_L3_error)
20163  }
20164  CYTHON_FALLTHROUGH;
20165  case 13:
20166  if (kw_args > 0) {
20167  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty);
20168  if (value) { values[13] = value; kw_args--; }
20169  }
20170  CYTHON_FALLTHROUGH;
20171  case 14:
20172  if (kw_args > 0) {
20173  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor);
20174  if (value) { values[14] = value; kw_args--; }
20175  }
20176  }
20177  if (unlikely(kw_args > 0)) {
20178  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalDiffusiveFlux") < 0)) __PYX_ERR(0, 4511, __pyx_L3_error)
20179  }
20180  } else {
20181  switch (PyTuple_GET_SIZE(__pyx_args)) {
20182  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
20183  CYTHON_FALLTHROUGH;
20184  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
20185  CYTHON_FALLTHROUGH;
20186  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
20187  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
20188  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
20189  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
20190  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
20191  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
20192  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
20193  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
20194  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
20195  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
20196  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
20197  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
20198  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
20199  break;
20200  default: goto __pyx_L5_argtuple_error;
20201  }
20202  }
20203  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
20204  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
20205  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
20206  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[3]);
20207  __pyx_v_n = ((PyArrayObject *)values[4]);
20208  __pyx_v_bc_a = ((PyArrayObject *)values[5]);
20209  __pyx_v_bc_grad_phi = ((PyArrayObject *)values[6]);
20210  __pyx_v_bc_u = ((PyArrayObject *)values[7]);
20211  __pyx_v_a = ((PyArrayObject *)values[8]);
20212  __pyx_v_grad_phi = ((PyArrayObject *)values[9]);
20213  __pyx_v_u = ((PyArrayObject *)values[10]);
20214  __pyx_v_penalty = ((PyArrayObject *)values[11]);
20215  __pyx_v_flux = ((PyArrayObject *)values[12]);
20216  if (values[13]) {
20217  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[13]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4524, __pyx_L3_error)
20218  } else {
20219  __pyx_v_scale_penalty = ((int)0);
20220  }
20221  if (values[14]) {
20222  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[14]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4525, __pyx_L3_error)
20223  } else {
20224  __pyx_v_penalty_floor = ((double)0.0);
20225  }
20226  }
20227  goto __pyx_L4_argument_unpacking_done;
20228  __pyx_L5_argtuple_error:;
20229  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux", 0, 13, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4511, __pyx_L3_error)
20230  __pyx_L3_error:;
20231  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalDiffusiveFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
20232  __Pyx_RefNannyFinishContext();
20233  return NULL;
20234  __pyx_L4_argument_unpacking_done:;
20235  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4511, __pyx_L1_error)
20236  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4512, __pyx_L1_error)
20237  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4513, __pyx_L1_error)
20238  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4514, __pyx_L1_error)
20239  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4515, __pyx_L1_error)
20240  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a), __pyx_ptype_5numpy_ndarray, 1, "bc_a", 0))) __PYX_ERR(0, 4516, __pyx_L1_error)
20241  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi", 0))) __PYX_ERR(0, 4517, __pyx_L1_error)
20242  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 4518, __pyx_L1_error)
20243  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 4519, __pyx_L1_error)
20244  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 4520, __pyx_L1_error)
20245  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 4521, __pyx_L1_error)
20246  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 4522, __pyx_L1_error)
20247  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 4523, __pyx_L1_error)
20248  __pyx_r = __pyx_pf_14cnumericalFlux_110calculateExteriorNumericalDiffusiveFlux(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __pyx_v_n, __pyx_v_bc_a, __pyx_v_bc_grad_phi, __pyx_v_bc_u, __pyx_v_a, __pyx_v_grad_phi, __pyx_v_u, __pyx_v_penalty, __pyx_v_flux, __pyx_v_scale_penalty, __pyx_v_penalty_floor);
20249 
20250  /* function exit code */
20251  goto __pyx_L0;
20252  __pyx_L1_error:;
20253  __pyx_r = NULL;
20254  __pyx_L0:;
20255  __Pyx_RefNannyFinishContext();
20256  return __pyx_r;
20257 }
20258 
20259 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) {
20260  PyObject *__pyx_r = NULL;
20261  __Pyx_RefNannyDeclarations
20262  PyObject *__pyx_t_1 = NULL;
20263  PyObject *__pyx_t_2 = NULL;
20264  PyObject *__pyx_t_3 = NULL;
20265  int __pyx_lineno = 0;
20266  const char *__pyx_filename = NULL;
20267  int __pyx_clineno = 0;
20268  __Pyx_RefNannySetupContext("calculateExteriorNumericalDiffusiveFlux", 0);
20269 
20270  /* "cnumericalFlux.pyx":4526
20271  * int scale_penalty=0,
20272  * double penalty_floor=0.0):
20273  * if grad_phi.ndim == 4: # <<<<<<<<<<<<<<
20274  * ccalculateExteriorNumericalDiffusiveFlux( scale_penalty,
20275  * penalty_floor,
20276  */
20277  switch (__pyx_v_grad_phi->nd) {
20278  case 4:
20279 
20280  /* "cnumericalFlux.pyx":4527
20281  * double penalty_floor=0.0):
20282  * if grad_phi.ndim == 4:
20283  * ccalculateExteriorNumericalDiffusiveFlux( scale_penalty, # <<<<<<<<<<<<<<
20284  * penalty_floor,
20285  * exteriorElementBoundaries.shape[0],
20286  */
20287  calculateExteriorNumericalDiffusiveFlux(__pyx_v_scale_penalty, __pyx_v_penalty_floor, (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_phi->dimensions[1]), (__pyx_v_grad_phi->dimensions[2]), (__pyx_v_grad_phi->dimensions[3]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_u->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));
20288 
20289  /* "cnumericalFlux.pyx":4526
20290  * int scale_penalty=0,
20291  * double penalty_floor=0.0):
20292  * if grad_phi.ndim == 4: # <<<<<<<<<<<<<<
20293  * ccalculateExteriorNumericalDiffusiveFlux( scale_penalty,
20294  * penalty_floor,
20295  */
20296  break;
20297  case 3:
20298 
20299  /* "cnumericalFlux.pyx":4547
20300  * <double*> flux.data)
20301  * elif grad_phi.ndim == 3:
20302  * ccalculateGlobalExteriorNumericalDiffusiveFlux( scale_penalty, # <<<<<<<<<<<<<<
20303  * penalty_floor,
20304  * exteriorElementBoundaries.shape[0],
20305  */
20306  calculateGlobalExteriorNumericalDiffusiveFlux(__pyx_v_scale_penalty, __pyx_v_penalty_floor, (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_phi->dimensions[1]), (__pyx_v_grad_phi->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_u->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));
20307 
20308  /* "cnumericalFlux.pyx":4546
20309  * <double*> penalty.data,
20310  * <double*> flux.data)
20311  * elif grad_phi.ndim == 3: # <<<<<<<<<<<<<<
20312  * ccalculateGlobalExteriorNumericalDiffusiveFlux( scale_penalty,
20313  * penalty_floor,
20314  */
20315  break;
20316  default:
20317 
20318  /* "cnumericalFlux.pyx":4566
20319  * <double*> flux.data)
20320  * else:
20321  * exit(1) # <<<<<<<<<<<<<<
20322  * def calculateExteriorNumericalDiffusiveFlux_sd(np.ndarray rowptr,
20323  * np.ndarray colind,
20324  */
20325  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4566, __pyx_L1_error)
20326  __Pyx_GOTREF(__pyx_t_2);
20327  __pyx_t_3 = NULL;
20328  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
20329  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
20330  if (likely(__pyx_t_3)) {
20331  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
20332  __Pyx_INCREF(__pyx_t_3);
20333  __Pyx_INCREF(function);
20334  __Pyx_DECREF_SET(__pyx_t_2, function);
20335  }
20336  }
20337  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_int_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_1);
20338  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
20339  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4566, __pyx_L1_error)
20340  __Pyx_GOTREF(__pyx_t_1);
20341  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20342  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20343  break;
20344  }
20345 
20346  /* "cnumericalFlux.pyx":4511
20347  * <double*> lambda_bar_element.data,
20348  * <double*> flux.data)
20349  * def calculateExteriorNumericalDiffusiveFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
20350  * np.ndarray elementBoundaryElements,
20351  * np.ndarray elementBoundaryLocalElementBoundaries,
20352  */
20353 
20354  /* function exit code */
20355  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
20356  goto __pyx_L0;
20357  __pyx_L1_error:;
20358  __Pyx_XDECREF(__pyx_t_1);
20359  __Pyx_XDECREF(__pyx_t_2);
20360  __Pyx_XDECREF(__pyx_t_3);
20361  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalDiffusiveFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
20362  __pyx_r = NULL;
20363  __pyx_L0:;
20364  __Pyx_XGIVEREF(__pyx_r);
20365  __Pyx_RefNannyFinishContext();
20366  return __pyx_r;
20367 }
20368 
20369 /* "cnumericalFlux.pyx":4567
20370  * else:
20371  * exit(1)
20372  * def calculateExteriorNumericalDiffusiveFlux_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
20373  * np.ndarray colind,
20374  * np.ndarray exteriorElementBoundaries,
20375  */
20376 
20377 /* Python wrapper */
20378 static PyObject *__pyx_pw_14cnumericalFlux_113calculateExteriorNumericalDiffusiveFlux_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
20379 static PyMethodDef __pyx_mdef_14cnumericalFlux_113calculateExteriorNumericalDiffusiveFlux_sd = {"calculateExteriorNumericalDiffusiveFlux_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_113calculateExteriorNumericalDiffusiveFlux_sd, METH_VARARGS|METH_KEYWORDS, 0};
20380 static PyObject *__pyx_pw_14cnumericalFlux_113calculateExteriorNumericalDiffusiveFlux_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
20381  PyArrayObject *__pyx_v_rowptr = 0;
20382  PyArrayObject *__pyx_v_colind = 0;
20383  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
20384  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
20385  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
20386  PyArrayObject *__pyx_v_isDOFBoundary = 0;
20387  PyArrayObject *__pyx_v_n = 0;
20388  PyArrayObject *__pyx_v_bc_a = 0;
20389  PyArrayObject *__pyx_v_bc_grad_phi = 0;
20390  PyArrayObject *__pyx_v_bc_u = 0;
20391  PyArrayObject *__pyx_v_a = 0;
20392  PyArrayObject *__pyx_v_grad_phi = 0;
20393  PyArrayObject *__pyx_v_u = 0;
20394  PyArrayObject *__pyx_v_penalty = 0;
20395  PyArrayObject *__pyx_v_flux = 0;
20396  int __pyx_v_scale_penalty;
20397  double __pyx_v_penalty_floor;
20398  int __pyx_lineno = 0;
20399  const char *__pyx_filename = NULL;
20400  int __pyx_clineno = 0;
20401  PyObject *__pyx_r = 0;
20402  __Pyx_RefNannyDeclarations
20403  __Pyx_RefNannySetupContext("calculateExteriorNumericalDiffusiveFlux_sd (wrapper)", 0);
20404  {
20405  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_n,&__pyx_n_s_bc_a,&__pyx_n_s_bc_grad_phi,&__pyx_n_s_bc_u,&__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};
20406  PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
20407  if (unlikely(__pyx_kwds)) {
20408  Py_ssize_t kw_args;
20409  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
20410  switch (pos_args) {
20411  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
20412  CYTHON_FALLTHROUGH;
20413  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
20414  CYTHON_FALLTHROUGH;
20415  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
20416  CYTHON_FALLTHROUGH;
20417  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
20418  CYTHON_FALLTHROUGH;
20419  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
20420  CYTHON_FALLTHROUGH;
20421  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
20422  CYTHON_FALLTHROUGH;
20423  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
20424  CYTHON_FALLTHROUGH;
20425  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
20426  CYTHON_FALLTHROUGH;
20427  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
20428  CYTHON_FALLTHROUGH;
20429  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
20430  CYTHON_FALLTHROUGH;
20431  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
20432  CYTHON_FALLTHROUGH;
20433  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
20434  CYTHON_FALLTHROUGH;
20435  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
20436  CYTHON_FALLTHROUGH;
20437  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
20438  CYTHON_FALLTHROUGH;
20439  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
20440  CYTHON_FALLTHROUGH;
20441  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
20442  CYTHON_FALLTHROUGH;
20443  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
20444  CYTHON_FALLTHROUGH;
20445  case 0: break;
20446  default: goto __pyx_L5_argtuple_error;
20447  }
20448  kw_args = PyDict_Size(__pyx_kwds);
20449  switch (pos_args) {
20450  case 0:
20451  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
20452  else goto __pyx_L5_argtuple_error;
20453  CYTHON_FALLTHROUGH;
20454  case 1:
20455  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
20456  else {
20457  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, 1); __PYX_ERR(0, 4567, __pyx_L3_error)
20458  }
20459  CYTHON_FALLTHROUGH;
20460  case 2:
20461  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
20462  else {
20463  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, 2); __PYX_ERR(0, 4567, __pyx_L3_error)
20464  }
20465  CYTHON_FALLTHROUGH;
20466  case 3:
20467  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
20468  else {
20469  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, 3); __PYX_ERR(0, 4567, __pyx_L3_error)
20470  }
20471  CYTHON_FALLTHROUGH;
20472  case 4:
20473  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
20474  else {
20475  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, 4); __PYX_ERR(0, 4567, __pyx_L3_error)
20476  }
20477  CYTHON_FALLTHROUGH;
20478  case 5:
20479  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
20480  else {
20481  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, 5); __PYX_ERR(0, 4567, __pyx_L3_error)
20482  }
20483  CYTHON_FALLTHROUGH;
20484  case 6:
20485  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
20486  else {
20487  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, 6); __PYX_ERR(0, 4567, __pyx_L3_error)
20488  }
20489  CYTHON_FALLTHROUGH;
20490  case 7:
20491  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a)) != 0)) kw_args--;
20492  else {
20493  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, 7); __PYX_ERR(0, 4567, __pyx_L3_error)
20494  }
20495  CYTHON_FALLTHROUGH;
20496  case 8:
20497  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi)) != 0)) kw_args--;
20498  else {
20499  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, 8); __PYX_ERR(0, 4567, __pyx_L3_error)
20500  }
20501  CYTHON_FALLTHROUGH;
20502  case 9:
20503  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
20504  else {
20505  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, 9); __PYX_ERR(0, 4567, __pyx_L3_error)
20506  }
20507  CYTHON_FALLTHROUGH;
20508  case 10:
20509  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
20510  else {
20511  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, 10); __PYX_ERR(0, 4567, __pyx_L3_error)
20512  }
20513  CYTHON_FALLTHROUGH;
20514  case 11:
20515  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
20516  else {
20517  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, 11); __PYX_ERR(0, 4567, __pyx_L3_error)
20518  }
20519  CYTHON_FALLTHROUGH;
20520  case 12:
20521  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
20522  else {
20523  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, 12); __PYX_ERR(0, 4567, __pyx_L3_error)
20524  }
20525  CYTHON_FALLTHROUGH;
20526  case 13:
20527  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
20528  else {
20529  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, 13); __PYX_ERR(0, 4567, __pyx_L3_error)
20530  }
20531  CYTHON_FALLTHROUGH;
20532  case 14:
20533  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
20534  else {
20535  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, 14); __PYX_ERR(0, 4567, __pyx_L3_error)
20536  }
20537  CYTHON_FALLTHROUGH;
20538  case 15:
20539  if (kw_args > 0) {
20540  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty);
20541  if (value) { values[15] = value; kw_args--; }
20542  }
20543  CYTHON_FALLTHROUGH;
20544  case 16:
20545  if (kw_args > 0) {
20546  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor);
20547  if (value) { values[16] = value; kw_args--; }
20548  }
20549  }
20550  if (unlikely(kw_args > 0)) {
20551  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalDiffusiveFlux_sd") < 0)) __PYX_ERR(0, 4567, __pyx_L3_error)
20552  }
20553  } else {
20554  switch (PyTuple_GET_SIZE(__pyx_args)) {
20555  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
20556  CYTHON_FALLTHROUGH;
20557  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
20558  CYTHON_FALLTHROUGH;
20559  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
20560  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
20561  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
20562  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
20563  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
20564  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
20565  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
20566  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
20567  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
20568  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
20569  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
20570  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
20571  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
20572  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
20573  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
20574  break;
20575  default: goto __pyx_L5_argtuple_error;
20576  }
20577  }
20578  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
20579  __pyx_v_colind = ((PyArrayObject *)values[1]);
20580  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[2]);
20581  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[3]);
20582  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[4]);
20583  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[5]);
20584  __pyx_v_n = ((PyArrayObject *)values[6]);
20585  __pyx_v_bc_a = ((PyArrayObject *)values[7]);
20586  __pyx_v_bc_grad_phi = ((PyArrayObject *)values[8]);
20587  __pyx_v_bc_u = ((PyArrayObject *)values[9]);
20588  __pyx_v_a = ((PyArrayObject *)values[10]);
20589  __pyx_v_grad_phi = ((PyArrayObject *)values[11]);
20590  __pyx_v_u = ((PyArrayObject *)values[12]);
20591  __pyx_v_penalty = ((PyArrayObject *)values[13]);
20592  __pyx_v_flux = ((PyArrayObject *)values[14]);
20593  if (values[15]) {
20594  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[15]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4582, __pyx_L3_error)
20595  } else {
20596  __pyx_v_scale_penalty = ((int)0);
20597  }
20598  if (values[16]) {
20599  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[16]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4583, __pyx_L3_error)
20600  } else {
20601  __pyx_v_penalty_floor = ((double)0.0);
20602  }
20603  }
20604  goto __pyx_L4_argument_unpacking_done;
20605  __pyx_L5_argtuple_error:;
20606  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_sd", 0, 15, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4567, __pyx_L3_error)
20607  __pyx_L3_error:;
20608  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalDiffusiveFlux_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
20609  __Pyx_RefNannyFinishContext();
20610  return NULL;
20611  __pyx_L4_argument_unpacking_done:;
20612  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 4567, __pyx_L1_error)
20613  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 4568, __pyx_L1_error)
20614  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4569, __pyx_L1_error)
20615  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4570, __pyx_L1_error)
20616  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4571, __pyx_L1_error)
20617  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4572, __pyx_L1_error)
20618  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4573, __pyx_L1_error)
20619  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a), __pyx_ptype_5numpy_ndarray, 1, "bc_a", 0))) __PYX_ERR(0, 4574, __pyx_L1_error)
20620  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi", 0))) __PYX_ERR(0, 4575, __pyx_L1_error)
20621  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 4576, __pyx_L1_error)
20622  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 4577, __pyx_L1_error)
20623  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 4578, __pyx_L1_error)
20624  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 4579, __pyx_L1_error)
20625  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 4580, __pyx_L1_error)
20626  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 4581, __pyx_L1_error)
20627  __pyx_r = __pyx_pf_14cnumericalFlux_112calculateExteriorNumericalDiffusiveFlux_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __pyx_v_n, __pyx_v_bc_a, __pyx_v_bc_grad_phi, __pyx_v_bc_u, __pyx_v_a, __pyx_v_grad_phi, __pyx_v_u, __pyx_v_penalty, __pyx_v_flux, __pyx_v_scale_penalty, __pyx_v_penalty_floor);
20628 
20629  /* function exit code */
20630  goto __pyx_L0;
20631  __pyx_L1_error:;
20632  __pyx_r = NULL;
20633  __pyx_L0:;
20634  __Pyx_RefNannyFinishContext();
20635  return __pyx_r;
20636 }
20637 
20638 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) {
20639  PyObject *__pyx_r = NULL;
20640  __Pyx_RefNannyDeclarations
20641  __Pyx_RefNannySetupContext("calculateExteriorNumericalDiffusiveFlux_sd", 0);
20642 
20643  /* "cnumericalFlux.pyx":4584
20644  * int scale_penalty=0,
20645  * double penalty_floor=0.0):
20646  * if grad_phi.ndim == 4: # <<<<<<<<<<<<<<
20647  * ccalculateExteriorNumericalDiffusiveFlux_sd(scale_penalty,
20648  * penalty_floor,
20649  */
20650  switch (__pyx_v_grad_phi->nd) {
20651  case 4:
20652 
20653  /* "cnumericalFlux.pyx":4585
20654  * double penalty_floor=0.0):
20655  * if grad_phi.ndim == 4:
20656  * ccalculateExteriorNumericalDiffusiveFlux_sd(scale_penalty, # <<<<<<<<<<<<<<
20657  * penalty_floor,
20658  * exteriorElementBoundaries.shape[0],
20659  */
20660  calculateExteriorNumericalDiffusiveFlux_sd(__pyx_v_scale_penalty, __pyx_v_penalty_floor, (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_phi->dimensions[1]), (__pyx_v_grad_phi->dimensions[2]), (__pyx_v_grad_phi->dimensions[3]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_u->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));
20661 
20662  /* "cnumericalFlux.pyx":4584
20663  * int scale_penalty=0,
20664  * double penalty_floor=0.0):
20665  * if grad_phi.ndim == 4: # <<<<<<<<<<<<<<
20666  * ccalculateExteriorNumericalDiffusiveFlux_sd(scale_penalty,
20667  * penalty_floor,
20668  */
20669  break;
20670  case 3:
20671 
20672  /* "cnumericalFlux.pyx":4607
20673  * <double*> flux.data)
20674  * elif grad_phi.ndim == 3:
20675  * ccalculateGlobalExteriorNumericalDiffusiveFlux_sd(scale_penalty, # <<<<<<<<<<<<<<
20676  * penalty_floor,
20677  * exteriorElementBoundaries.shape[0],
20678  */
20679  calculateGlobalExteriorNumericalDiffusiveFlux_sd(__pyx_v_scale_penalty, __pyx_v_penalty_floor, (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_phi->dimensions[1]), (__pyx_v_grad_phi->dimensions[2]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_u->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));
20680 
20681  /* "cnumericalFlux.pyx":4606
20682  * <double*> penalty.data,
20683  * <double*> flux.data)
20684  * elif grad_phi.ndim == 3: # <<<<<<<<<<<<<<
20685  * ccalculateGlobalExteriorNumericalDiffusiveFlux_sd(scale_penalty,
20686  * penalty_floor,
20687  */
20688  break;
20689  default: break;
20690  }
20691 
20692  /* "cnumericalFlux.pyx":4567
20693  * else:
20694  * exit(1)
20695  * def calculateExteriorNumericalDiffusiveFlux_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
20696  * np.ndarray colind,
20697  * np.ndarray exteriorElementBoundaries,
20698  */
20699 
20700  /* function exit code */
20701  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
20702  __Pyx_XGIVEREF(__pyx_r);
20703  __Pyx_RefNannyFinishContext();
20704  return __pyx_r;
20705 }
20706 
20707 /* "cnumericalFlux.pyx":4627
20708  * <double*> penalty.data,
20709  * <double*> flux.data)
20710  * def calculateGlobalExteriorNumericalDiffusiveFlux(int scale_penalty, # <<<<<<<<<<<<<<
20711  * double penalty_floor,
20712  * int nExteriorElementBoundaries_global,
20713  */
20714 
20715 /* Python wrapper */
20716 static PyObject *__pyx_pw_14cnumericalFlux_115calculateGlobalExteriorNumericalDiffusiveFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
20717 static PyMethodDef __pyx_mdef_14cnumericalFlux_115calculateGlobalExteriorNumericalDiffusiveFlux = {"calculateGlobalExteriorNumericalDiffusiveFlux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_115calculateGlobalExteriorNumericalDiffusiveFlux, METH_VARARGS|METH_KEYWORDS, 0};
20718 static PyObject *__pyx_pw_14cnumericalFlux_115calculateGlobalExteriorNumericalDiffusiveFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
20719  int __pyx_v_scale_penalty;
20720  double __pyx_v_penalty_floor;
20721  int __pyx_v_nExteriorElementBoundaries_global;
20722  int __pyx_v_nQuadraturePoints_elementBoundary;
20723  int __pyx_v_nSpace;
20724  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
20725  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
20726  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
20727  PyArrayObject *__pyx_v_isDOFBoundary = 0;
20728  PyArrayObject *__pyx_v_n = 0;
20729  PyArrayObject *__pyx_v_bc_a = 0;
20730  PyArrayObject *__pyx_v_bc_grad_phi = 0;
20731  PyArrayObject *__pyx_v_bc_u = 0;
20732  PyArrayObject *__pyx_v_a = 0;
20733  PyArrayObject *__pyx_v_grad_phi = 0;
20734  PyArrayObject *__pyx_v_u = 0;
20735  PyArrayObject *__pyx_v_penalty = 0;
20736  PyArrayObject *__pyx_v_flux = 0;
20737  int __pyx_lineno = 0;
20738  const char *__pyx_filename = NULL;
20739  int __pyx_clineno = 0;
20740  PyObject *__pyx_r = 0;
20741  __Pyx_RefNannyDeclarations
20742  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalDiffusiveFlux (wrapper)", 0);
20743  {
20744  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scale_penalty,&__pyx_n_s_penalty_floor,&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_n,&__pyx_n_s_bc_a,&__pyx_n_s_bc_grad_phi,&__pyx_n_s_bc_u,&__pyx_n_s_a,&__pyx_n_s_grad_phi,&__pyx_n_s_u,&__pyx_n_s_penalty,&__pyx_n_s_flux,0};
20745  PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
20746  if (unlikely(__pyx_kwds)) {
20747  Py_ssize_t kw_args;
20748  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
20749  switch (pos_args) {
20750  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
20751  CYTHON_FALLTHROUGH;
20752  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
20753  CYTHON_FALLTHROUGH;
20754  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
20755  CYTHON_FALLTHROUGH;
20756  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
20757  CYTHON_FALLTHROUGH;
20758  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
20759  CYTHON_FALLTHROUGH;
20760  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
20761  CYTHON_FALLTHROUGH;
20762  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
20763  CYTHON_FALLTHROUGH;
20764  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
20765  CYTHON_FALLTHROUGH;
20766  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
20767  CYTHON_FALLTHROUGH;
20768  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
20769  CYTHON_FALLTHROUGH;
20770  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
20771  CYTHON_FALLTHROUGH;
20772  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
20773  CYTHON_FALLTHROUGH;
20774  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
20775  CYTHON_FALLTHROUGH;
20776  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
20777  CYTHON_FALLTHROUGH;
20778  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
20779  CYTHON_FALLTHROUGH;
20780  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
20781  CYTHON_FALLTHROUGH;
20782  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
20783  CYTHON_FALLTHROUGH;
20784  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
20785  CYTHON_FALLTHROUGH;
20786  case 0: break;
20787  default: goto __pyx_L5_argtuple_error;
20788  }
20789  kw_args = PyDict_Size(__pyx_kwds);
20790  switch (pos_args) {
20791  case 0:
20792  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty)) != 0)) kw_args--;
20793  else goto __pyx_L5_argtuple_error;
20794  CYTHON_FALLTHROUGH;
20795  case 1:
20796  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor)) != 0)) kw_args--;
20797  else {
20798  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 1); __PYX_ERR(0, 4627, __pyx_L3_error)
20799  }
20800  CYTHON_FALLTHROUGH;
20801  case 2:
20802  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
20803  else {
20804  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 2); __PYX_ERR(0, 4627, __pyx_L3_error)
20805  }
20806  CYTHON_FALLTHROUGH;
20807  case 3:
20808  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
20809  else {
20810  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 3); __PYX_ERR(0, 4627, __pyx_L3_error)
20811  }
20812  CYTHON_FALLTHROUGH;
20813  case 4:
20814  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
20815  else {
20816  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 4); __PYX_ERR(0, 4627, __pyx_L3_error)
20817  }
20818  CYTHON_FALLTHROUGH;
20819  case 5:
20820  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
20821  else {
20822  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 5); __PYX_ERR(0, 4627, __pyx_L3_error)
20823  }
20824  CYTHON_FALLTHROUGH;
20825  case 6:
20826  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
20827  else {
20828  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 6); __PYX_ERR(0, 4627, __pyx_L3_error)
20829  }
20830  CYTHON_FALLTHROUGH;
20831  case 7:
20832  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
20833  else {
20834  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 7); __PYX_ERR(0, 4627, __pyx_L3_error)
20835  }
20836  CYTHON_FALLTHROUGH;
20837  case 8:
20838  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
20839  else {
20840  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 8); __PYX_ERR(0, 4627, __pyx_L3_error)
20841  }
20842  CYTHON_FALLTHROUGH;
20843  case 9:
20844  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
20845  else {
20846  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 9); __PYX_ERR(0, 4627, __pyx_L3_error)
20847  }
20848  CYTHON_FALLTHROUGH;
20849  case 10:
20850  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a)) != 0)) kw_args--;
20851  else {
20852  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 10); __PYX_ERR(0, 4627, __pyx_L3_error)
20853  }
20854  CYTHON_FALLTHROUGH;
20855  case 11:
20856  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi)) != 0)) kw_args--;
20857  else {
20858  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 11); __PYX_ERR(0, 4627, __pyx_L3_error)
20859  }
20860  CYTHON_FALLTHROUGH;
20861  case 12:
20862  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
20863  else {
20864  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 12); __PYX_ERR(0, 4627, __pyx_L3_error)
20865  }
20866  CYTHON_FALLTHROUGH;
20867  case 13:
20868  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
20869  else {
20870  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 13); __PYX_ERR(0, 4627, __pyx_L3_error)
20871  }
20872  CYTHON_FALLTHROUGH;
20873  case 14:
20874  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
20875  else {
20876  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 14); __PYX_ERR(0, 4627, __pyx_L3_error)
20877  }
20878  CYTHON_FALLTHROUGH;
20879  case 15:
20880  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
20881  else {
20882  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 15); __PYX_ERR(0, 4627, __pyx_L3_error)
20883  }
20884  CYTHON_FALLTHROUGH;
20885  case 16:
20886  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
20887  else {
20888  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 16); __PYX_ERR(0, 4627, __pyx_L3_error)
20889  }
20890  CYTHON_FALLTHROUGH;
20891  case 17:
20892  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
20893  else {
20894  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, 17); __PYX_ERR(0, 4627, __pyx_L3_error)
20895  }
20896  }
20897  if (unlikely(kw_args > 0)) {
20898  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalDiffusiveFlux") < 0)) __PYX_ERR(0, 4627, __pyx_L3_error)
20899  }
20900  } else if (PyTuple_GET_SIZE(__pyx_args) != 18) {
20901  goto __pyx_L5_argtuple_error;
20902  } else {
20903  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
20904  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
20905  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
20906  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
20907  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
20908  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
20909  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
20910  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
20911  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
20912  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
20913  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
20914  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
20915  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
20916  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
20917  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
20918  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
20919  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
20920  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
20921  }
20922  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4627, __pyx_L3_error)
20923  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4628, __pyx_L3_error)
20924  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4629, __pyx_L3_error)
20925  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4630, __pyx_L3_error)
20926  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4631, __pyx_L3_error)
20927  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[5]);
20928  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[6]);
20929  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[7]);
20930  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[8]);
20931  __pyx_v_n = ((PyArrayObject *)values[9]);
20932  __pyx_v_bc_a = ((PyArrayObject *)values[10]);
20933  __pyx_v_bc_grad_phi = ((PyArrayObject *)values[11]);
20934  __pyx_v_bc_u = ((PyArrayObject *)values[12]);
20935  __pyx_v_a = ((PyArrayObject *)values[13]);
20936  __pyx_v_grad_phi = ((PyArrayObject *)values[14]);
20937  __pyx_v_u = ((PyArrayObject *)values[15]);
20938  __pyx_v_penalty = ((PyArrayObject *)values[16]);
20939  __pyx_v_flux = ((PyArrayObject *)values[17]);
20940  }
20941  goto __pyx_L4_argument_unpacking_done;
20942  __pyx_L5_argtuple_error:;
20943  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux", 1, 18, 18, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4627, __pyx_L3_error)
20944  __pyx_L3_error:;
20945  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalDiffusiveFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
20946  __Pyx_RefNannyFinishContext();
20947  return NULL;
20948  __pyx_L4_argument_unpacking_done:;
20949  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4632, __pyx_L1_error)
20950  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4633, __pyx_L1_error)
20951  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4634, __pyx_L1_error)
20952  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4635, __pyx_L1_error)
20953  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4636, __pyx_L1_error)
20954  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a), __pyx_ptype_5numpy_ndarray, 1, "bc_a", 0))) __PYX_ERR(0, 4637, __pyx_L1_error)
20955  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi", 0))) __PYX_ERR(0, 4638, __pyx_L1_error)
20956  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 4639, __pyx_L1_error)
20957  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 4640, __pyx_L1_error)
20958  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 4641, __pyx_L1_error)
20959  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 4642, __pyx_L1_error)
20960  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 4643, __pyx_L1_error)
20961  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 4644, __pyx_L1_error)
20962  __pyx_r = __pyx_pf_14cnumericalFlux_114calculateGlobalExteriorNumericalDiffusiveFlux(__pyx_self, __pyx_v_scale_penalty, __pyx_v_penalty_floor, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __pyx_v_n, __pyx_v_bc_a, __pyx_v_bc_grad_phi, __pyx_v_bc_u, __pyx_v_a, __pyx_v_grad_phi, __pyx_v_u, __pyx_v_penalty, __pyx_v_flux);
20963 
20964  /* function exit code */
20965  goto __pyx_L0;
20966  __pyx_L1_error:;
20967  __pyx_r = NULL;
20968  __pyx_L0:;
20969  __Pyx_RefNannyFinishContext();
20970  return __pyx_r;
20971 }
20972 
20973 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) {
20974  PyObject *__pyx_r = NULL;
20975  __Pyx_RefNannyDeclarations
20976  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalDiffusiveFlux", 0);
20977 
20978  /* "cnumericalFlux.pyx":4645
20979  * np.ndarray penalty,
20980  * np.ndarray flux):
20981  * ccalculateGlobalExteriorNumericalDiffusiveFlux( scale_penalty, # <<<<<<<<<<<<<<
20982  * penalty_floor,
20983  * nExteriorElementBoundaries_global,
20984  */
20985  calculateGlobalExteriorNumericalDiffusiveFlux(__pyx_v_scale_penalty, __pyx_v_penalty_floor, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_u->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));
20986 
20987  /* "cnumericalFlux.pyx":4627
20988  * <double*> penalty.data,
20989  * <double*> flux.data)
20990  * def calculateGlobalExteriorNumericalDiffusiveFlux(int scale_penalty, # <<<<<<<<<<<<<<
20991  * double penalty_floor,
20992  * int nExteriorElementBoundaries_global,
20993  */
20994 
20995  /* function exit code */
20996  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
20997  __Pyx_XGIVEREF(__pyx_r);
20998  __Pyx_RefNannyFinishContext();
20999  return __pyx_r;
21000 }
21001 
21002 /* "cnumericalFlux.pyx":4664
21003  * <double*> flux.data)
21004  *
21005  * def calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
21006  * np.ndarray colind,
21007  * np.ndarray exteriorElementBoundaries,
21008  */
21009 
21010 /* Python wrapper */
21011 static PyObject *__pyx_pw_14cnumericalFlux_117calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
21012 static PyMethodDef __pyx_mdef_14cnumericalFlux_117calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd = {"calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_117calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd, METH_VARARGS|METH_KEYWORDS, 0};
21013 static PyObject *__pyx_pw_14cnumericalFlux_117calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
21014  PyArrayObject *__pyx_v_rowptr = 0;
21015  PyArrayObject *__pyx_v_colind = 0;
21016  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
21017  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
21018  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
21019  PyArrayObject *__pyx_v_isDOFBoundary = 0;
21020  PyArrayObject *__pyx_v_n = 0;
21021  PyArrayObject *__pyx_v_bc_a = 0;
21022  PyArrayObject *__pyx_v_bc_grad_phi = 0;
21023  PyArrayObject *__pyx_v_bc_u = 0;
21024  PyArrayObject *__pyx_v_a = 0;
21025  PyArrayObject *__pyx_v_grad_phi = 0;
21026  PyArrayObject *__pyx_v_u = 0;
21027  PyArrayObject *__pyx_v_penalty = 0;
21028  PyArrayObject *__pyx_v_flux = 0;
21029  int __pyx_v_scale_penalty;
21030  double __pyx_v_penalty_floor;
21031  int __pyx_lineno = 0;
21032  const char *__pyx_filename = NULL;
21033  int __pyx_clineno = 0;
21034  PyObject *__pyx_r = 0;
21035  __Pyx_RefNannyDeclarations
21036  __Pyx_RefNannySetupContext("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd (wrapper)", 0);
21037  {
21038  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_n,&__pyx_n_s_bc_a,&__pyx_n_s_bc_grad_phi,&__pyx_n_s_bc_u,&__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};
21039  PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
21040  if (unlikely(__pyx_kwds)) {
21041  Py_ssize_t kw_args;
21042  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
21043  switch (pos_args) {
21044  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
21045  CYTHON_FALLTHROUGH;
21046  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
21047  CYTHON_FALLTHROUGH;
21048  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
21049  CYTHON_FALLTHROUGH;
21050  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
21051  CYTHON_FALLTHROUGH;
21052  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
21053  CYTHON_FALLTHROUGH;
21054  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
21055  CYTHON_FALLTHROUGH;
21056  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
21057  CYTHON_FALLTHROUGH;
21058  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
21059  CYTHON_FALLTHROUGH;
21060  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
21061  CYTHON_FALLTHROUGH;
21062  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
21063  CYTHON_FALLTHROUGH;
21064  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
21065  CYTHON_FALLTHROUGH;
21066  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
21067  CYTHON_FALLTHROUGH;
21068  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
21069  CYTHON_FALLTHROUGH;
21070  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
21071  CYTHON_FALLTHROUGH;
21072  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
21073  CYTHON_FALLTHROUGH;
21074  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
21075  CYTHON_FALLTHROUGH;
21076  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
21077  CYTHON_FALLTHROUGH;
21078  case 0: break;
21079  default: goto __pyx_L5_argtuple_error;
21080  }
21081  kw_args = PyDict_Size(__pyx_kwds);
21082  switch (pos_args) {
21083  case 0:
21084  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
21085  else goto __pyx_L5_argtuple_error;
21086  CYTHON_FALLTHROUGH;
21087  case 1:
21088  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
21089  else {
21090  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 1); __PYX_ERR(0, 4664, __pyx_L3_error)
21091  }
21092  CYTHON_FALLTHROUGH;
21093  case 2:
21094  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
21095  else {
21096  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 2); __PYX_ERR(0, 4664, __pyx_L3_error)
21097  }
21098  CYTHON_FALLTHROUGH;
21099  case 3:
21100  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
21101  else {
21102  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 3); __PYX_ERR(0, 4664, __pyx_L3_error)
21103  }
21104  CYTHON_FALLTHROUGH;
21105  case 4:
21106  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
21107  else {
21108  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 4); __PYX_ERR(0, 4664, __pyx_L3_error)
21109  }
21110  CYTHON_FALLTHROUGH;
21111  case 5:
21112  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
21113  else {
21114  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 5); __PYX_ERR(0, 4664, __pyx_L3_error)
21115  }
21116  CYTHON_FALLTHROUGH;
21117  case 6:
21118  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
21119  else {
21120  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 6); __PYX_ERR(0, 4664, __pyx_L3_error)
21121  }
21122  CYTHON_FALLTHROUGH;
21123  case 7:
21124  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a)) != 0)) kw_args--;
21125  else {
21126  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 7); __PYX_ERR(0, 4664, __pyx_L3_error)
21127  }
21128  CYTHON_FALLTHROUGH;
21129  case 8:
21130  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi)) != 0)) kw_args--;
21131  else {
21132  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 8); __PYX_ERR(0, 4664, __pyx_L3_error)
21133  }
21134  CYTHON_FALLTHROUGH;
21135  case 9:
21136  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
21137  else {
21138  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 9); __PYX_ERR(0, 4664, __pyx_L3_error)
21139  }
21140  CYTHON_FALLTHROUGH;
21141  case 10:
21142  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
21143  else {
21144  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 10); __PYX_ERR(0, 4664, __pyx_L3_error)
21145  }
21146  CYTHON_FALLTHROUGH;
21147  case 11:
21148  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
21149  else {
21150  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 11); __PYX_ERR(0, 4664, __pyx_L3_error)
21151  }
21152  CYTHON_FALLTHROUGH;
21153  case 12:
21154  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
21155  else {
21156  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 12); __PYX_ERR(0, 4664, __pyx_L3_error)
21157  }
21158  CYTHON_FALLTHROUGH;
21159  case 13:
21160  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
21161  else {
21162  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 13); __PYX_ERR(0, 4664, __pyx_L3_error)
21163  }
21164  CYTHON_FALLTHROUGH;
21165  case 14:
21166  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
21167  else {
21168  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 14); __PYX_ERR(0, 4664, __pyx_L3_error)
21169  }
21170  CYTHON_FALLTHROUGH;
21171  case 15:
21172  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty)) != 0)) kw_args--;
21173  else {
21174  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 15); __PYX_ERR(0, 4664, __pyx_L3_error)
21175  }
21176  CYTHON_FALLTHROUGH;
21177  case 16:
21178  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor)) != 0)) kw_args--;
21179  else {
21180  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, 16); __PYX_ERR(0, 4664, __pyx_L3_error)
21181  }
21182  }
21183  if (unlikely(kw_args > 0)) {
21184  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd") < 0)) __PYX_ERR(0, 4664, __pyx_L3_error)
21185  }
21186  } else if (PyTuple_GET_SIZE(__pyx_args) != 17) {
21187  goto __pyx_L5_argtuple_error;
21188  } else {
21189  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
21190  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
21191  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
21192  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
21193  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
21194  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
21195  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
21196  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
21197  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
21198  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
21199  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
21200  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
21201  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
21202  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
21203  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
21204  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
21205  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
21206  }
21207  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
21208  __pyx_v_colind = ((PyArrayObject *)values[1]);
21209  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[2]);
21210  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[3]);
21211  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[4]);
21212  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[5]);
21213  __pyx_v_n = ((PyArrayObject *)values[6]);
21214  __pyx_v_bc_a = ((PyArrayObject *)values[7]);
21215  __pyx_v_bc_grad_phi = ((PyArrayObject *)values[8]);
21216  __pyx_v_bc_u = ((PyArrayObject *)values[9]);
21217  __pyx_v_a = ((PyArrayObject *)values[10]);
21218  __pyx_v_grad_phi = ((PyArrayObject *)values[11]);
21219  __pyx_v_u = ((PyArrayObject *)values[12]);
21220  __pyx_v_penalty = ((PyArrayObject *)values[13]);
21221  __pyx_v_flux = ((PyArrayObject *)values[14]);
21222  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[15]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4679, __pyx_L3_error)
21223  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[16]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4680, __pyx_L3_error)
21224  }
21225  goto __pyx_L4_argument_unpacking_done;
21226  __pyx_L5_argtuple_error:;
21227  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 1, 17, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4664, __pyx_L3_error)
21228  __pyx_L3_error:;
21229  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
21230  __Pyx_RefNannyFinishContext();
21231  return NULL;
21232  __pyx_L4_argument_unpacking_done:;
21233  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 4664, __pyx_L1_error)
21234  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 4665, __pyx_L1_error)
21235  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4666, __pyx_L1_error)
21236  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4667, __pyx_L1_error)
21237  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4668, __pyx_L1_error)
21238  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4669, __pyx_L1_error)
21239  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4670, __pyx_L1_error)
21240  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a), __pyx_ptype_5numpy_ndarray, 1, "bc_a", 0))) __PYX_ERR(0, 4671, __pyx_L1_error)
21241  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi", 0))) __PYX_ERR(0, 4672, __pyx_L1_error)
21242  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 4673, __pyx_L1_error)
21243  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 4674, __pyx_L1_error)
21244  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 4675, __pyx_L1_error)
21245  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 4676, __pyx_L1_error)
21246  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 4677, __pyx_L1_error)
21247  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 4678, __pyx_L1_error)
21248  __pyx_r = __pyx_pf_14cnumericalFlux_116calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __pyx_v_n, __pyx_v_bc_a, __pyx_v_bc_grad_phi, __pyx_v_bc_u, __pyx_v_a, __pyx_v_grad_phi, __pyx_v_u, __pyx_v_penalty, __pyx_v_flux, __pyx_v_scale_penalty, __pyx_v_penalty_floor);
21249 
21250  /* function exit code */
21251  goto __pyx_L0;
21252  __pyx_L1_error:;
21253  __pyx_r = NULL;
21254  __pyx_L0:;
21255  __Pyx_RefNannyFinishContext();
21256  return __pyx_r;
21257 }
21258 
21259 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) {
21260  PyObject *__pyx_r = NULL;
21261  __Pyx_RefNannyDeclarations
21262  int __pyx_t_1;
21263  PyObject *__pyx_t_2 = NULL;
21264  PyObject *__pyx_t_3 = NULL;
21265  PyObject *__pyx_t_4 = NULL;
21266  int __pyx_lineno = 0;
21267  const char *__pyx_filename = NULL;
21268  int __pyx_clineno = 0;
21269  __Pyx_RefNannySetupContext("calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", 0);
21270 
21271  /* "cnumericalFlux.pyx":4681
21272  * int scale_penalty,
21273  * double penalty_floor):
21274  * if grad_phi.ndim == 3: # <<<<<<<<<<<<<<
21275  * ccalculateGlobalExteriorNumericalDiffusiveFlux_sd( scale_penalty,
21276  * penalty_floor,
21277  */
21278  __pyx_t_1 = ((__pyx_v_grad_phi->nd == 3) != 0);
21279  if (__pyx_t_1) {
21280 
21281  /* "cnumericalFlux.pyx":4682
21282  * double penalty_floor):
21283  * if grad_phi.ndim == 3:
21284  * ccalculateGlobalExteriorNumericalDiffusiveFlux_sd( scale_penalty, # <<<<<<<<<<<<<<
21285  * penalty_floor,
21286  * exteriorElementBoundaries.shape[0],
21287  */
21288  calculateGlobalExteriorNumericalDiffusiveFlux_sd(__pyx_v_scale_penalty, __pyx_v_penalty_floor, (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_phi->dimensions[1]), (__pyx_v_grad_phi->dimensions[2]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_u->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));
21289 
21290  /* "cnumericalFlux.pyx":4681
21291  * int scale_penalty,
21292  * double penalty_floor):
21293  * if grad_phi.ndim == 3: # <<<<<<<<<<<<<<
21294  * ccalculateGlobalExteriorNumericalDiffusiveFlux_sd( scale_penalty,
21295  * penalty_floor,
21296  */
21297  goto __pyx_L3;
21298  }
21299 
21300  /* "cnumericalFlux.pyx":4703
21301  * <double*> flux.data)
21302  * else:
21303  * exit(1) # <<<<<<<<<<<<<<
21304  *
21305  * def calculateGlobalExteriorNumericalDiffusiveFlux_sd(np.ndarray rowptr,
21306  */
21307  /*else*/ {
21308  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4703, __pyx_L1_error)
21309  __Pyx_GOTREF(__pyx_t_3);
21310  __pyx_t_4 = NULL;
21311  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
21312  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
21313  if (likely(__pyx_t_4)) {
21314  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
21315  __Pyx_INCREF(__pyx_t_4);
21316  __Pyx_INCREF(function);
21317  __Pyx_DECREF_SET(__pyx_t_3, function);
21318  }
21319  }
21320  __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_int_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_1);
21321  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
21322  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4703, __pyx_L1_error)
21323  __Pyx_GOTREF(__pyx_t_2);
21324  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21325  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21326  }
21327  __pyx_L3:;
21328 
21329  /* "cnumericalFlux.pyx":4664
21330  * <double*> flux.data)
21331  *
21332  * def calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
21333  * np.ndarray colind,
21334  * np.ndarray exteriorElementBoundaries,
21335  */
21336 
21337  /* function exit code */
21338  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
21339  goto __pyx_L0;
21340  __pyx_L1_error:;
21341  __Pyx_XDECREF(__pyx_t_2);
21342  __Pyx_XDECREF(__pyx_t_3);
21343  __Pyx_XDECREF(__pyx_t_4);
21344  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
21345  __pyx_r = NULL;
21346  __pyx_L0:;
21347  __Pyx_XGIVEREF(__pyx_r);
21348  __Pyx_RefNannyFinishContext();
21349  return __pyx_r;
21350 }
21351 
21352 /* "cnumericalFlux.pyx":4705
21353  * exit(1)
21354  *
21355  * def calculateGlobalExteriorNumericalDiffusiveFlux_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
21356  * np.ndarray colind,
21357  * np.ndarray exteriorElementBoundaries,
21358  */
21359 
21360 /* Python wrapper */
21361 static PyObject *__pyx_pw_14cnumericalFlux_119calculateGlobalExteriorNumericalDiffusiveFlux_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
21362 static PyMethodDef __pyx_mdef_14cnumericalFlux_119calculateGlobalExteriorNumericalDiffusiveFlux_sd = {"calculateGlobalExteriorNumericalDiffusiveFlux_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_119calculateGlobalExteriorNumericalDiffusiveFlux_sd, METH_VARARGS|METH_KEYWORDS, 0};
21363 static PyObject *__pyx_pw_14cnumericalFlux_119calculateGlobalExteriorNumericalDiffusiveFlux_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
21364  PyArrayObject *__pyx_v_rowptr = 0;
21365  PyArrayObject *__pyx_v_colind = 0;
21366  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
21367  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
21368  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
21369  PyArrayObject *__pyx_v_isDOFBoundary = 0;
21370  PyArrayObject *__pyx_v_n = 0;
21371  PyArrayObject *__pyx_v_bc_a = 0;
21372  PyArrayObject *__pyx_v_bc_grad_phi = 0;
21373  PyArrayObject *__pyx_v_bc_u = 0;
21374  PyArrayObject *__pyx_v_a = 0;
21375  PyArrayObject *__pyx_v_grad_phi = 0;
21376  PyArrayObject *__pyx_v_u = 0;
21377  PyArrayObject *__pyx_v_penalty = 0;
21378  PyArrayObject *__pyx_v_flux = 0;
21379  int __pyx_v_scale_penalty;
21380  double __pyx_v_penalty_floor;
21381  int __pyx_lineno = 0;
21382  const char *__pyx_filename = NULL;
21383  int __pyx_clineno = 0;
21384  PyObject *__pyx_r = 0;
21385  __Pyx_RefNannyDeclarations
21386  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalDiffusiveFlux_sd (wrapper)", 0);
21387  {
21388  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_n,&__pyx_n_s_bc_a,&__pyx_n_s_bc_grad_phi,&__pyx_n_s_bc_u,&__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};
21389  PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
21390  if (unlikely(__pyx_kwds)) {
21391  Py_ssize_t kw_args;
21392  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
21393  switch (pos_args) {
21394  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
21395  CYTHON_FALLTHROUGH;
21396  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
21397  CYTHON_FALLTHROUGH;
21398  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
21399  CYTHON_FALLTHROUGH;
21400  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
21401  CYTHON_FALLTHROUGH;
21402  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
21403  CYTHON_FALLTHROUGH;
21404  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
21405  CYTHON_FALLTHROUGH;
21406  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
21407  CYTHON_FALLTHROUGH;
21408  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
21409  CYTHON_FALLTHROUGH;
21410  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
21411  CYTHON_FALLTHROUGH;
21412  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
21413  CYTHON_FALLTHROUGH;
21414  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
21415  CYTHON_FALLTHROUGH;
21416  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
21417  CYTHON_FALLTHROUGH;
21418  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
21419  CYTHON_FALLTHROUGH;
21420  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
21421  CYTHON_FALLTHROUGH;
21422  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
21423  CYTHON_FALLTHROUGH;
21424  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
21425  CYTHON_FALLTHROUGH;
21426  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
21427  CYTHON_FALLTHROUGH;
21428  case 0: break;
21429  default: goto __pyx_L5_argtuple_error;
21430  }
21431  kw_args = PyDict_Size(__pyx_kwds);
21432  switch (pos_args) {
21433  case 0:
21434  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
21435  else goto __pyx_L5_argtuple_error;
21436  CYTHON_FALLTHROUGH;
21437  case 1:
21438  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
21439  else {
21440  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 1); __PYX_ERR(0, 4705, __pyx_L3_error)
21441  }
21442  CYTHON_FALLTHROUGH;
21443  case 2:
21444  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
21445  else {
21446  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 2); __PYX_ERR(0, 4705, __pyx_L3_error)
21447  }
21448  CYTHON_FALLTHROUGH;
21449  case 3:
21450  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
21451  else {
21452  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 3); __PYX_ERR(0, 4705, __pyx_L3_error)
21453  }
21454  CYTHON_FALLTHROUGH;
21455  case 4:
21456  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
21457  else {
21458  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 4); __PYX_ERR(0, 4705, __pyx_L3_error)
21459  }
21460  CYTHON_FALLTHROUGH;
21461  case 5:
21462  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
21463  else {
21464  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 5); __PYX_ERR(0, 4705, __pyx_L3_error)
21465  }
21466  CYTHON_FALLTHROUGH;
21467  case 6:
21468  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
21469  else {
21470  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 6); __PYX_ERR(0, 4705, __pyx_L3_error)
21471  }
21472  CYTHON_FALLTHROUGH;
21473  case 7:
21474  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a)) != 0)) kw_args--;
21475  else {
21476  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 7); __PYX_ERR(0, 4705, __pyx_L3_error)
21477  }
21478  CYTHON_FALLTHROUGH;
21479  case 8:
21480  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi)) != 0)) kw_args--;
21481  else {
21482  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 8); __PYX_ERR(0, 4705, __pyx_L3_error)
21483  }
21484  CYTHON_FALLTHROUGH;
21485  case 9:
21486  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
21487  else {
21488  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 9); __PYX_ERR(0, 4705, __pyx_L3_error)
21489  }
21490  CYTHON_FALLTHROUGH;
21491  case 10:
21492  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
21493  else {
21494  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 10); __PYX_ERR(0, 4705, __pyx_L3_error)
21495  }
21496  CYTHON_FALLTHROUGH;
21497  case 11:
21498  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
21499  else {
21500  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 11); __PYX_ERR(0, 4705, __pyx_L3_error)
21501  }
21502  CYTHON_FALLTHROUGH;
21503  case 12:
21504  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
21505  else {
21506  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 12); __PYX_ERR(0, 4705, __pyx_L3_error)
21507  }
21508  CYTHON_FALLTHROUGH;
21509  case 13:
21510  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
21511  else {
21512  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 13); __PYX_ERR(0, 4705, __pyx_L3_error)
21513  }
21514  CYTHON_FALLTHROUGH;
21515  case 14:
21516  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
21517  else {
21518  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 14); __PYX_ERR(0, 4705, __pyx_L3_error)
21519  }
21520  CYTHON_FALLTHROUGH;
21521  case 15:
21522  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty)) != 0)) kw_args--;
21523  else {
21524  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 15); __PYX_ERR(0, 4705, __pyx_L3_error)
21525  }
21526  CYTHON_FALLTHROUGH;
21527  case 16:
21528  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor)) != 0)) kw_args--;
21529  else {
21530  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, 16); __PYX_ERR(0, 4705, __pyx_L3_error)
21531  }
21532  }
21533  if (unlikely(kw_args > 0)) {
21534  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalDiffusiveFlux_sd") < 0)) __PYX_ERR(0, 4705, __pyx_L3_error)
21535  }
21536  } else if (PyTuple_GET_SIZE(__pyx_args) != 17) {
21537  goto __pyx_L5_argtuple_error;
21538  } else {
21539  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
21540  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
21541  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
21542  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
21543  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
21544  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
21545  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
21546  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
21547  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
21548  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
21549  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
21550  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
21551  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
21552  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
21553  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
21554  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
21555  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
21556  }
21557  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
21558  __pyx_v_colind = ((PyArrayObject *)values[1]);
21559  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[2]);
21560  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[3]);
21561  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[4]);
21562  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[5]);
21563  __pyx_v_n = ((PyArrayObject *)values[6]);
21564  __pyx_v_bc_a = ((PyArrayObject *)values[7]);
21565  __pyx_v_bc_grad_phi = ((PyArrayObject *)values[8]);
21566  __pyx_v_bc_u = ((PyArrayObject *)values[9]);
21567  __pyx_v_a = ((PyArrayObject *)values[10]);
21568  __pyx_v_grad_phi = ((PyArrayObject *)values[11]);
21569  __pyx_v_u = ((PyArrayObject *)values[12]);
21570  __pyx_v_penalty = ((PyArrayObject *)values[13]);
21571  __pyx_v_flux = ((PyArrayObject *)values[14]);
21572  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[15]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4720, __pyx_L3_error)
21573  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[16]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4721, __pyx_L3_error)
21574  }
21575  goto __pyx_L4_argument_unpacking_done;
21576  __pyx_L5_argtuple_error:;
21577  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 1, 17, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4705, __pyx_L3_error)
21578  __pyx_L3_error:;
21579  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalDiffusiveFlux_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
21580  __Pyx_RefNannyFinishContext();
21581  return NULL;
21582  __pyx_L4_argument_unpacking_done:;
21583  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 4705, __pyx_L1_error)
21584  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 4706, __pyx_L1_error)
21585  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4707, __pyx_L1_error)
21586  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4708, __pyx_L1_error)
21587  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4709, __pyx_L1_error)
21588  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4710, __pyx_L1_error)
21589  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4711, __pyx_L1_error)
21590  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a), __pyx_ptype_5numpy_ndarray, 1, "bc_a", 0))) __PYX_ERR(0, 4712, __pyx_L1_error)
21591  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi", 0))) __PYX_ERR(0, 4713, __pyx_L1_error)
21592  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 4714, __pyx_L1_error)
21593  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 4715, __pyx_L1_error)
21594  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 4716, __pyx_L1_error)
21595  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 4717, __pyx_L1_error)
21596  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 4718, __pyx_L1_error)
21597  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 4719, __pyx_L1_error)
21598  __pyx_r = __pyx_pf_14cnumericalFlux_118calculateGlobalExteriorNumericalDiffusiveFlux_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __pyx_v_n, __pyx_v_bc_a, __pyx_v_bc_grad_phi, __pyx_v_bc_u, __pyx_v_a, __pyx_v_grad_phi, __pyx_v_u, __pyx_v_penalty, __pyx_v_flux, __pyx_v_scale_penalty, __pyx_v_penalty_floor);
21599 
21600  /* function exit code */
21601  goto __pyx_L0;
21602  __pyx_L1_error:;
21603  __pyx_r = NULL;
21604  __pyx_L0:;
21605  __Pyx_RefNannyFinishContext();
21606  return __pyx_r;
21607 }
21608 
21609 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) {
21610  PyObject *__pyx_r = NULL;
21611  __Pyx_RefNannyDeclarations
21612  int __pyx_lineno = 0;
21613  const char *__pyx_filename = NULL;
21614  int __pyx_clineno = 0;
21615  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalDiffusiveFlux_sd", 0);
21616 
21617  /* "cnumericalFlux.pyx":4722
21618  * int scale_penalty,
21619  * double penalty_floor):
21620  * assert grad_phi.ndim == 3 # <<<<<<<<<<<<<<
21621  * ccalculateGlobalExteriorNumericalDiffusiveFlux_sd( scale_penalty,
21622  * penalty_floor,
21623  */
21624  #ifndef CYTHON_WITHOUT_ASSERTIONS
21625  if (unlikely(!Py_OptimizeFlag)) {
21626  if (unlikely(!((__pyx_v_grad_phi->nd == 3) != 0))) {
21627  PyErr_SetNone(PyExc_AssertionError);
21628  __PYX_ERR(0, 4722, __pyx_L1_error)
21629  }
21630  }
21631  #endif
21632 
21633  /* "cnumericalFlux.pyx":4723
21634  * double penalty_floor):
21635  * assert grad_phi.ndim == 3
21636  * ccalculateGlobalExteriorNumericalDiffusiveFlux_sd( scale_penalty, # <<<<<<<<<<<<<<
21637  * penalty_floor,
21638  * exteriorElementBoundaries.shape[0],
21639  */
21640  calculateGlobalExteriorNumericalDiffusiveFlux_sd(__pyx_v_scale_penalty, __pyx_v_penalty_floor, (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_phi->dimensions[1]), (__pyx_v_grad_phi->dimensions[2]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_u->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));
21641 
21642  /* "cnumericalFlux.pyx":4705
21643  * exit(1)
21644  *
21645  * def calculateGlobalExteriorNumericalDiffusiveFlux_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
21646  * np.ndarray colind,
21647  * np.ndarray exteriorElementBoundaries,
21648  */
21649 
21650  /* function exit code */
21651  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
21652  goto __pyx_L0;
21653  __pyx_L1_error:;
21654  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalDiffusiveFlux_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
21655  __pyx_r = NULL;
21656  __pyx_L0:;
21657  __Pyx_XGIVEREF(__pyx_r);
21658  __Pyx_RefNannyFinishContext();
21659  return __pyx_r;
21660 }
21661 
21662 /* "cnumericalFlux.pyx":4743
21663  * <double*> penalty.data,
21664  * <double*> flux.data)
21665  * def calculateExteriorNumericalDiffusiveFlux_free(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
21666  * np.ndarray elementBoundaryElements,
21667  * np.ndarray elementBoundaryLocalElementBoundaries,
21668  */
21669 
21670 /* Python wrapper */
21671 static PyObject *__pyx_pw_14cnumericalFlux_121calculateExteriorNumericalDiffusiveFlux_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
21672 static PyMethodDef __pyx_mdef_14cnumericalFlux_121calculateExteriorNumericalDiffusiveFlux_free = {"calculateExteriorNumericalDiffusiveFlux_free", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_121calculateExteriorNumericalDiffusiveFlux_free, METH_VARARGS|METH_KEYWORDS, 0};
21673 static PyObject *__pyx_pw_14cnumericalFlux_121calculateExteriorNumericalDiffusiveFlux_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
21674  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
21675  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
21676  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
21677  PyArrayObject *__pyx_v_isDOFBoundary = 0;
21678  PyArrayObject *__pyx_v_n = 0;
21679  PyArrayObject *__pyx_v_bc_a = 0;
21680  PyArrayObject *__pyx_v_bc_grad_phi = 0;
21681  PyArrayObject *__pyx_v_bc_u = 0;
21682  PyArrayObject *__pyx_v_a = 0;
21683  PyArrayObject *__pyx_v_grad_phi = 0;
21684  PyArrayObject *__pyx_v_u = 0;
21685  PyArrayObject *__pyx_v_penalty = 0;
21686  PyArrayObject *__pyx_v_flux = 0;
21687  int __pyx_lineno = 0;
21688  const char *__pyx_filename = NULL;
21689  int __pyx_clineno = 0;
21690  PyObject *__pyx_r = 0;
21691  __Pyx_RefNannyDeclarations
21692  __Pyx_RefNannySetupContext("calculateExteriorNumericalDiffusiveFlux_free (wrapper)", 0);
21693  {
21694  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_n,&__pyx_n_s_bc_a,&__pyx_n_s_bc_grad_phi,&__pyx_n_s_bc_u,&__pyx_n_s_a,&__pyx_n_s_grad_phi,&__pyx_n_s_u,&__pyx_n_s_penalty,&__pyx_n_s_flux,0};
21695  PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
21696  if (unlikely(__pyx_kwds)) {
21697  Py_ssize_t kw_args;
21698  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
21699  switch (pos_args) {
21700  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
21701  CYTHON_FALLTHROUGH;
21702  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
21703  CYTHON_FALLTHROUGH;
21704  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
21705  CYTHON_FALLTHROUGH;
21706  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
21707  CYTHON_FALLTHROUGH;
21708  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
21709  CYTHON_FALLTHROUGH;
21710  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
21711  CYTHON_FALLTHROUGH;
21712  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
21713  CYTHON_FALLTHROUGH;
21714  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
21715  CYTHON_FALLTHROUGH;
21716  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
21717  CYTHON_FALLTHROUGH;
21718  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
21719  CYTHON_FALLTHROUGH;
21720  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
21721  CYTHON_FALLTHROUGH;
21722  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
21723  CYTHON_FALLTHROUGH;
21724  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
21725  CYTHON_FALLTHROUGH;
21726  case 0: break;
21727  default: goto __pyx_L5_argtuple_error;
21728  }
21729  kw_args = PyDict_Size(__pyx_kwds);
21730  switch (pos_args) {
21731  case 0:
21732  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
21733  else goto __pyx_L5_argtuple_error;
21734  CYTHON_FALLTHROUGH;
21735  case 1:
21736  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
21737  else {
21738  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free", 1, 13, 13, 1); __PYX_ERR(0, 4743, __pyx_L3_error)
21739  }
21740  CYTHON_FALLTHROUGH;
21741  case 2:
21742  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
21743  else {
21744  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free", 1, 13, 13, 2); __PYX_ERR(0, 4743, __pyx_L3_error)
21745  }
21746  CYTHON_FALLTHROUGH;
21747  case 3:
21748  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
21749  else {
21750  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free", 1, 13, 13, 3); __PYX_ERR(0, 4743, __pyx_L3_error)
21751  }
21752  CYTHON_FALLTHROUGH;
21753  case 4:
21754  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
21755  else {
21756  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free", 1, 13, 13, 4); __PYX_ERR(0, 4743, __pyx_L3_error)
21757  }
21758  CYTHON_FALLTHROUGH;
21759  case 5:
21760  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a)) != 0)) kw_args--;
21761  else {
21762  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free", 1, 13, 13, 5); __PYX_ERR(0, 4743, __pyx_L3_error)
21763  }
21764  CYTHON_FALLTHROUGH;
21765  case 6:
21766  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi)) != 0)) kw_args--;
21767  else {
21768  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free", 1, 13, 13, 6); __PYX_ERR(0, 4743, __pyx_L3_error)
21769  }
21770  CYTHON_FALLTHROUGH;
21771  case 7:
21772  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
21773  else {
21774  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free", 1, 13, 13, 7); __PYX_ERR(0, 4743, __pyx_L3_error)
21775  }
21776  CYTHON_FALLTHROUGH;
21777  case 8:
21778  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
21779  else {
21780  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free", 1, 13, 13, 8); __PYX_ERR(0, 4743, __pyx_L3_error)
21781  }
21782  CYTHON_FALLTHROUGH;
21783  case 9:
21784  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
21785  else {
21786  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free", 1, 13, 13, 9); __PYX_ERR(0, 4743, __pyx_L3_error)
21787  }
21788  CYTHON_FALLTHROUGH;
21789  case 10:
21790  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
21791  else {
21792  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free", 1, 13, 13, 10); __PYX_ERR(0, 4743, __pyx_L3_error)
21793  }
21794  CYTHON_FALLTHROUGH;
21795  case 11:
21796  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
21797  else {
21798  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free", 1, 13, 13, 11); __PYX_ERR(0, 4743, __pyx_L3_error)
21799  }
21800  CYTHON_FALLTHROUGH;
21801  case 12:
21802  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
21803  else {
21804  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free", 1, 13, 13, 12); __PYX_ERR(0, 4743, __pyx_L3_error)
21805  }
21806  }
21807  if (unlikely(kw_args > 0)) {
21808  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalDiffusiveFlux_free") < 0)) __PYX_ERR(0, 4743, __pyx_L3_error)
21809  }
21810  } else if (PyTuple_GET_SIZE(__pyx_args) != 13) {
21811  goto __pyx_L5_argtuple_error;
21812  } else {
21813  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
21814  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
21815  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
21816  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
21817  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
21818  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
21819  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
21820  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
21821  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
21822  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
21823  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
21824  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
21825  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
21826  }
21827  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
21828  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
21829  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
21830  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[3]);
21831  __pyx_v_n = ((PyArrayObject *)values[4]);
21832  __pyx_v_bc_a = ((PyArrayObject *)values[5]);
21833  __pyx_v_bc_grad_phi = ((PyArrayObject *)values[6]);
21834  __pyx_v_bc_u = ((PyArrayObject *)values[7]);
21835  __pyx_v_a = ((PyArrayObject *)values[8]);
21836  __pyx_v_grad_phi = ((PyArrayObject *)values[9]);
21837  __pyx_v_u = ((PyArrayObject *)values[10]);
21838  __pyx_v_penalty = ((PyArrayObject *)values[11]);
21839  __pyx_v_flux = ((PyArrayObject *)values[12]);
21840  }
21841  goto __pyx_L4_argument_unpacking_done;
21842  __pyx_L5_argtuple_error:;
21843  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free", 1, 13, 13, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4743, __pyx_L3_error)
21844  __pyx_L3_error:;
21845  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalDiffusiveFlux_free", __pyx_clineno, __pyx_lineno, __pyx_filename);
21846  __Pyx_RefNannyFinishContext();
21847  return NULL;
21848  __pyx_L4_argument_unpacking_done:;
21849  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4743, __pyx_L1_error)
21850  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4744, __pyx_L1_error)
21851  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4745, __pyx_L1_error)
21852  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4746, __pyx_L1_error)
21853  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4747, __pyx_L1_error)
21854  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a), __pyx_ptype_5numpy_ndarray, 1, "bc_a", 0))) __PYX_ERR(0, 4748, __pyx_L1_error)
21855  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi", 0))) __PYX_ERR(0, 4749, __pyx_L1_error)
21856  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 4750, __pyx_L1_error)
21857  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 4751, __pyx_L1_error)
21858  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 4752, __pyx_L1_error)
21859  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 4753, __pyx_L1_error)
21860  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 4754, __pyx_L1_error)
21861  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 4755, __pyx_L1_error)
21862  __pyx_r = __pyx_pf_14cnumericalFlux_120calculateExteriorNumericalDiffusiveFlux_free(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __pyx_v_n, __pyx_v_bc_a, __pyx_v_bc_grad_phi, __pyx_v_bc_u, __pyx_v_a, __pyx_v_grad_phi, __pyx_v_u, __pyx_v_penalty, __pyx_v_flux);
21863 
21864  /* function exit code */
21865  goto __pyx_L0;
21866  __pyx_L1_error:;
21867  __pyx_r = NULL;
21868  __pyx_L0:;
21869  __Pyx_RefNannyFinishContext();
21870  return __pyx_r;
21871 }
21872 
21873 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) {
21874  PyObject *__pyx_r = NULL;
21875  __Pyx_RefNannyDeclarations
21876  PyObject *__pyx_t_1 = NULL;
21877  PyObject *__pyx_t_2 = NULL;
21878  PyObject *__pyx_t_3 = NULL;
21879  int __pyx_lineno = 0;
21880  const char *__pyx_filename = NULL;
21881  int __pyx_clineno = 0;
21882  __Pyx_RefNannySetupContext("calculateExteriorNumericalDiffusiveFlux_free", 0);
21883 
21884  /* "cnumericalFlux.pyx":4756
21885  * np.ndarray penalty,
21886  * np.ndarray flux):
21887  * if grad_phi.ndim == 4: # <<<<<<<<<<<<<<
21888  * ccalculateExteriorNumericalDiffusiveFlux_free(exteriorElementBoundaries.shape[0],
21889  * grad_phi.shape[1],
21890  */
21891  switch (__pyx_v_grad_phi->nd) {
21892  case 4:
21893 
21894  /* "cnumericalFlux.pyx":4757
21895  * np.ndarray flux):
21896  * if grad_phi.ndim == 4:
21897  * ccalculateExteriorNumericalDiffusiveFlux_free(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
21898  * grad_phi.shape[1],
21899  * grad_phi.shape[2],
21900  */
21901  calculateExteriorNumericalDiffusiveFlux_free((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_phi->dimensions[1]), (__pyx_v_grad_phi->dimensions[2]), (__pyx_v_grad_phi->dimensions[3]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_u->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));
21902 
21903  /* "cnumericalFlux.pyx":4756
21904  * np.ndarray penalty,
21905  * np.ndarray flux):
21906  * if grad_phi.ndim == 4: # <<<<<<<<<<<<<<
21907  * ccalculateExteriorNumericalDiffusiveFlux_free(exteriorElementBoundaries.shape[0],
21908  * grad_phi.shape[1],
21909  */
21910  break;
21911  case 3:
21912 
21913  /* "cnumericalFlux.pyx":4775
21914  * <double*> flux.data)
21915  * elif grad_phi.ndim == 3:
21916  * ccalculateGlobalExteriorNumericalDiffusiveFlux_free(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
21917  * grad_phi.shape[1],
21918  * grad_phi.shape[2],
21919  */
21920  calculateGlobalExteriorNumericalDiffusiveFlux_free((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_phi->dimensions[1]), (__pyx_v_grad_phi->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_u->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));
21921 
21922  /* "cnumericalFlux.pyx":4774
21923  * <double*> penalty.data,
21924  * <double*> flux.data)
21925  * elif grad_phi.ndim == 3: # <<<<<<<<<<<<<<
21926  * ccalculateGlobalExteriorNumericalDiffusiveFlux_free(exteriorElementBoundaries.shape[0],
21927  * grad_phi.shape[1],
21928  */
21929  break;
21930  default:
21931 
21932  /* "cnumericalFlux.pyx":4792
21933  * <double*> flux.data)
21934  * else:
21935  * exit(1) # <<<<<<<<<<<<<<
21936  * def calculateExteriorNumericalDiffusiveFlux_free_sd(np.ndarray rowptr,
21937  * np.ndarray colind,
21938  */
21939  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4792, __pyx_L1_error)
21940  __Pyx_GOTREF(__pyx_t_2);
21941  __pyx_t_3 = NULL;
21942  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
21943  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
21944  if (likely(__pyx_t_3)) {
21945  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
21946  __Pyx_INCREF(__pyx_t_3);
21947  __Pyx_INCREF(function);
21948  __Pyx_DECREF_SET(__pyx_t_2, function);
21949  }
21950  }
21951  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_int_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_1);
21952  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
21953  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4792, __pyx_L1_error)
21954  __Pyx_GOTREF(__pyx_t_1);
21955  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21956  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21957  break;
21958  }
21959 
21960  /* "cnumericalFlux.pyx":4743
21961  * <double*> penalty.data,
21962  * <double*> flux.data)
21963  * def calculateExteriorNumericalDiffusiveFlux_free(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
21964  * np.ndarray elementBoundaryElements,
21965  * np.ndarray elementBoundaryLocalElementBoundaries,
21966  */
21967 
21968  /* function exit code */
21969  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
21970  goto __pyx_L0;
21971  __pyx_L1_error:;
21972  __Pyx_XDECREF(__pyx_t_1);
21973  __Pyx_XDECREF(__pyx_t_2);
21974  __Pyx_XDECREF(__pyx_t_3);
21975  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalDiffusiveFlux_free", __pyx_clineno, __pyx_lineno, __pyx_filename);
21976  __pyx_r = NULL;
21977  __pyx_L0:;
21978  __Pyx_XGIVEREF(__pyx_r);
21979  __Pyx_RefNannyFinishContext();
21980  return __pyx_r;
21981 }
21982 
21983 /* "cnumericalFlux.pyx":4793
21984  * else:
21985  * exit(1)
21986  * def calculateExteriorNumericalDiffusiveFlux_free_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
21987  * np.ndarray colind,
21988  * np.ndarray exteriorElementBoundaries,
21989  */
21990 
21991 /* Python wrapper */
21992 static PyObject *__pyx_pw_14cnumericalFlux_123calculateExteriorNumericalDiffusiveFlux_free_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
21993 static PyMethodDef __pyx_mdef_14cnumericalFlux_123calculateExteriorNumericalDiffusiveFlux_free_sd = {"calculateExteriorNumericalDiffusiveFlux_free_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_123calculateExteriorNumericalDiffusiveFlux_free_sd, METH_VARARGS|METH_KEYWORDS, 0};
21994 static PyObject *__pyx_pw_14cnumericalFlux_123calculateExteriorNumericalDiffusiveFlux_free_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
21995  PyArrayObject *__pyx_v_rowptr = 0;
21996  PyArrayObject *__pyx_v_colind = 0;
21997  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
21998  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
21999  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
22000  PyArrayObject *__pyx_v_isDOFBoundary = 0;
22001  PyArrayObject *__pyx_v_n = 0;
22002  PyArrayObject *__pyx_v_bc_a = 0;
22003  PyArrayObject *__pyx_v_bc_grad_phi = 0;
22004  PyArrayObject *__pyx_v_bc_u = 0;
22005  PyArrayObject *__pyx_v_a = 0;
22006  PyArrayObject *__pyx_v_grad_phi = 0;
22007  PyArrayObject *__pyx_v_u = 0;
22008  PyArrayObject *__pyx_v_penalty = 0;
22009  PyArrayObject *__pyx_v_flux = 0;
22010  int __pyx_lineno = 0;
22011  const char *__pyx_filename = NULL;
22012  int __pyx_clineno = 0;
22013  PyObject *__pyx_r = 0;
22014  __Pyx_RefNannyDeclarations
22015  __Pyx_RefNannySetupContext("calculateExteriorNumericalDiffusiveFlux_free_sd (wrapper)", 0);
22016  {
22017  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_n,&__pyx_n_s_bc_a,&__pyx_n_s_bc_grad_phi,&__pyx_n_s_bc_u,&__pyx_n_s_a,&__pyx_n_s_grad_phi,&__pyx_n_s_u,&__pyx_n_s_penalty,&__pyx_n_s_flux,0};
22018  PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
22019  if (unlikely(__pyx_kwds)) {
22020  Py_ssize_t kw_args;
22021  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
22022  switch (pos_args) {
22023  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
22024  CYTHON_FALLTHROUGH;
22025  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
22026  CYTHON_FALLTHROUGH;
22027  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
22028  CYTHON_FALLTHROUGH;
22029  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
22030  CYTHON_FALLTHROUGH;
22031  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
22032  CYTHON_FALLTHROUGH;
22033  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
22034  CYTHON_FALLTHROUGH;
22035  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
22036  CYTHON_FALLTHROUGH;
22037  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
22038  CYTHON_FALLTHROUGH;
22039  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
22040  CYTHON_FALLTHROUGH;
22041  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
22042  CYTHON_FALLTHROUGH;
22043  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
22044  CYTHON_FALLTHROUGH;
22045  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
22046  CYTHON_FALLTHROUGH;
22047  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22048  CYTHON_FALLTHROUGH;
22049  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22050  CYTHON_FALLTHROUGH;
22051  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22052  CYTHON_FALLTHROUGH;
22053  case 0: break;
22054  default: goto __pyx_L5_argtuple_error;
22055  }
22056  kw_args = PyDict_Size(__pyx_kwds);
22057  switch (pos_args) {
22058  case 0:
22059  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
22060  else goto __pyx_L5_argtuple_error;
22061  CYTHON_FALLTHROUGH;
22062  case 1:
22063  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
22064  else {
22065  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, 1); __PYX_ERR(0, 4793, __pyx_L3_error)
22066  }
22067  CYTHON_FALLTHROUGH;
22068  case 2:
22069  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
22070  else {
22071  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, 2); __PYX_ERR(0, 4793, __pyx_L3_error)
22072  }
22073  CYTHON_FALLTHROUGH;
22074  case 3:
22075  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
22076  else {
22077  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, 3); __PYX_ERR(0, 4793, __pyx_L3_error)
22078  }
22079  CYTHON_FALLTHROUGH;
22080  case 4:
22081  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
22082  else {
22083  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, 4); __PYX_ERR(0, 4793, __pyx_L3_error)
22084  }
22085  CYTHON_FALLTHROUGH;
22086  case 5:
22087  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
22088  else {
22089  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, 5); __PYX_ERR(0, 4793, __pyx_L3_error)
22090  }
22091  CYTHON_FALLTHROUGH;
22092  case 6:
22093  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
22094  else {
22095  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, 6); __PYX_ERR(0, 4793, __pyx_L3_error)
22096  }
22097  CYTHON_FALLTHROUGH;
22098  case 7:
22099  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a)) != 0)) kw_args--;
22100  else {
22101  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, 7); __PYX_ERR(0, 4793, __pyx_L3_error)
22102  }
22103  CYTHON_FALLTHROUGH;
22104  case 8:
22105  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi)) != 0)) kw_args--;
22106  else {
22107  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, 8); __PYX_ERR(0, 4793, __pyx_L3_error)
22108  }
22109  CYTHON_FALLTHROUGH;
22110  case 9:
22111  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
22112  else {
22113  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, 9); __PYX_ERR(0, 4793, __pyx_L3_error)
22114  }
22115  CYTHON_FALLTHROUGH;
22116  case 10:
22117  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
22118  else {
22119  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, 10); __PYX_ERR(0, 4793, __pyx_L3_error)
22120  }
22121  CYTHON_FALLTHROUGH;
22122  case 11:
22123  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
22124  else {
22125  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, 11); __PYX_ERR(0, 4793, __pyx_L3_error)
22126  }
22127  CYTHON_FALLTHROUGH;
22128  case 12:
22129  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
22130  else {
22131  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, 12); __PYX_ERR(0, 4793, __pyx_L3_error)
22132  }
22133  CYTHON_FALLTHROUGH;
22134  case 13:
22135  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
22136  else {
22137  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, 13); __PYX_ERR(0, 4793, __pyx_L3_error)
22138  }
22139  CYTHON_FALLTHROUGH;
22140  case 14:
22141  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
22142  else {
22143  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, 14); __PYX_ERR(0, 4793, __pyx_L3_error)
22144  }
22145  }
22146  if (unlikely(kw_args > 0)) {
22147  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalDiffusiveFlux_free_sd") < 0)) __PYX_ERR(0, 4793, __pyx_L3_error)
22148  }
22149  } else if (PyTuple_GET_SIZE(__pyx_args) != 15) {
22150  goto __pyx_L5_argtuple_error;
22151  } else {
22152  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22153  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22154  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22155  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
22156  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
22157  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
22158  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
22159  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
22160  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
22161  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
22162  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
22163  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
22164  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
22165  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
22166  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
22167  }
22168  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
22169  __pyx_v_colind = ((PyArrayObject *)values[1]);
22170  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[2]);
22171  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[3]);
22172  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[4]);
22173  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[5]);
22174  __pyx_v_n = ((PyArrayObject *)values[6]);
22175  __pyx_v_bc_a = ((PyArrayObject *)values[7]);
22176  __pyx_v_bc_grad_phi = ((PyArrayObject *)values[8]);
22177  __pyx_v_bc_u = ((PyArrayObject *)values[9]);
22178  __pyx_v_a = ((PyArrayObject *)values[10]);
22179  __pyx_v_grad_phi = ((PyArrayObject *)values[11]);
22180  __pyx_v_u = ((PyArrayObject *)values[12]);
22181  __pyx_v_penalty = ((PyArrayObject *)values[13]);
22182  __pyx_v_flux = ((PyArrayObject *)values[14]);
22183  }
22184  goto __pyx_L4_argument_unpacking_done;
22185  __pyx_L5_argtuple_error:;
22186  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_free_sd", 1, 15, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4793, __pyx_L3_error)
22187  __pyx_L3_error:;
22188  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalDiffusiveFlux_free_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
22189  __Pyx_RefNannyFinishContext();
22190  return NULL;
22191  __pyx_L4_argument_unpacking_done:;
22192  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 4793, __pyx_L1_error)
22193  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 4794, __pyx_L1_error)
22194  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4795, __pyx_L1_error)
22195  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4796, __pyx_L1_error)
22196  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4797, __pyx_L1_error)
22197  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4798, __pyx_L1_error)
22198  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4799, __pyx_L1_error)
22199  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a), __pyx_ptype_5numpy_ndarray, 1, "bc_a", 0))) __PYX_ERR(0, 4800, __pyx_L1_error)
22200  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi", 0))) __PYX_ERR(0, 4801, __pyx_L1_error)
22201  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 4802, __pyx_L1_error)
22202  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 4803, __pyx_L1_error)
22203  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 4804, __pyx_L1_error)
22204  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 4805, __pyx_L1_error)
22205  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 4806, __pyx_L1_error)
22206  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 4807, __pyx_L1_error)
22207  __pyx_r = __pyx_pf_14cnumericalFlux_122calculateExteriorNumericalDiffusiveFlux_free_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __pyx_v_n, __pyx_v_bc_a, __pyx_v_bc_grad_phi, __pyx_v_bc_u, __pyx_v_a, __pyx_v_grad_phi, __pyx_v_u, __pyx_v_penalty, __pyx_v_flux);
22208 
22209  /* function exit code */
22210  goto __pyx_L0;
22211  __pyx_L1_error:;
22212  __pyx_r = NULL;
22213  __pyx_L0:;
22214  __Pyx_RefNannyFinishContext();
22215  return __pyx_r;
22216 }
22217 
22218 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) {
22219  PyObject *__pyx_r = NULL;
22220  __Pyx_RefNannyDeclarations
22221  PyObject *__pyx_t_1 = NULL;
22222  PyObject *__pyx_t_2 = NULL;
22223  PyObject *__pyx_t_3 = NULL;
22224  int __pyx_lineno = 0;
22225  const char *__pyx_filename = NULL;
22226  int __pyx_clineno = 0;
22227  __Pyx_RefNannySetupContext("calculateExteriorNumericalDiffusiveFlux_free_sd", 0);
22228 
22229  /* "cnumericalFlux.pyx":4808
22230  * np.ndarray penalty,
22231  * np.ndarray flux):
22232  * if grad_phi.ndim == 4: # <<<<<<<<<<<<<<
22233  * ccalculateExteriorNumericalDiffusiveFlux_free_sd(exteriorElementBoundaries.shape[0],
22234  * grad_phi.shape[1],
22235  */
22236  switch (__pyx_v_grad_phi->nd) {
22237  case 4:
22238 
22239  /* "cnumericalFlux.pyx":4809
22240  * np.ndarray flux):
22241  * if grad_phi.ndim == 4:
22242  * ccalculateExteriorNumericalDiffusiveFlux_free_sd(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
22243  * grad_phi.shape[1],
22244  * grad_phi.shape[2],
22245  */
22246  calculateExteriorNumericalDiffusiveFlux_free_sd((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_phi->dimensions[1]), (__pyx_v_grad_phi->dimensions[2]), (__pyx_v_grad_phi->dimensions[3]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_u->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));
22247 
22248  /* "cnumericalFlux.pyx":4808
22249  * np.ndarray penalty,
22250  * np.ndarray flux):
22251  * if grad_phi.ndim == 4: # <<<<<<<<<<<<<<
22252  * ccalculateExteriorNumericalDiffusiveFlux_free_sd(exteriorElementBoundaries.shape[0],
22253  * grad_phi.shape[1],
22254  */
22255  break;
22256  case 3:
22257 
22258  /* "cnumericalFlux.pyx":4829
22259  * <double*> flux.data)
22260  * elif grad_phi.ndim == 3:
22261  * ccalculateGlobalExteriorNumericalDiffusiveFlux_free_sd(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
22262  * grad_phi.shape[1],
22263  * grad_phi.shape[2],
22264  */
22265  calculateGlobalExteriorNumericalDiffusiveFlux_free_sd((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_phi->dimensions[1]), (__pyx_v_grad_phi->dimensions[2]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_u->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));
22266 
22267  /* "cnumericalFlux.pyx":4828
22268  * <double*> penalty.data,
22269  * <double*> flux.data)
22270  * elif grad_phi.ndim == 3: # <<<<<<<<<<<<<<
22271  * ccalculateGlobalExteriorNumericalDiffusiveFlux_free_sd(exteriorElementBoundaries.shape[0],
22272  * grad_phi.shape[1],
22273  */
22274  break;
22275  default:
22276 
22277  /* "cnumericalFlux.pyx":4848
22278  * <double*> flux.data)
22279  * else:
22280  * exit(0) # <<<<<<<<<<<<<<
22281  * def calculateGlobalExteriorNumericalDiffusiveFlux_free(int nExteriorElementBoundaries_global,
22282  * int nQuadraturePoints_elementBoundary,
22283  */
22284  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4848, __pyx_L1_error)
22285  __Pyx_GOTREF(__pyx_t_2);
22286  __pyx_t_3 = NULL;
22287  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
22288  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
22289  if (likely(__pyx_t_3)) {
22290  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
22291  __Pyx_INCREF(__pyx_t_3);
22292  __Pyx_INCREF(function);
22293  __Pyx_DECREF_SET(__pyx_t_2, function);
22294  }
22295  }
22296  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_int_0) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_0);
22297  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
22298  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4848, __pyx_L1_error)
22299  __Pyx_GOTREF(__pyx_t_1);
22300  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22301  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22302  break;
22303  }
22304 
22305  /* "cnumericalFlux.pyx":4793
22306  * else:
22307  * exit(1)
22308  * def calculateExteriorNumericalDiffusiveFlux_free_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
22309  * np.ndarray colind,
22310  * np.ndarray exteriorElementBoundaries,
22311  */
22312 
22313  /* function exit code */
22314  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
22315  goto __pyx_L0;
22316  __pyx_L1_error:;
22317  __Pyx_XDECREF(__pyx_t_1);
22318  __Pyx_XDECREF(__pyx_t_2);
22319  __Pyx_XDECREF(__pyx_t_3);
22320  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalDiffusiveFlux_free_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
22321  __pyx_r = NULL;
22322  __pyx_L0:;
22323  __Pyx_XGIVEREF(__pyx_r);
22324  __Pyx_RefNannyFinishContext();
22325  return __pyx_r;
22326 }
22327 
22328 /* "cnumericalFlux.pyx":4849
22329  * else:
22330  * exit(0)
22331  * def calculateGlobalExteriorNumericalDiffusiveFlux_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
22332  * int nQuadraturePoints_elementBoundary,
22333  * int nSpace,
22334  */
22335 
22336 /* Python wrapper */
22337 static PyObject *__pyx_pw_14cnumericalFlux_125calculateGlobalExteriorNumericalDiffusiveFlux_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
22338 static PyMethodDef __pyx_mdef_14cnumericalFlux_125calculateGlobalExteriorNumericalDiffusiveFlux_free = {"calculateGlobalExteriorNumericalDiffusiveFlux_free", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_125calculateGlobalExteriorNumericalDiffusiveFlux_free, METH_VARARGS|METH_KEYWORDS, 0};
22339 static PyObject *__pyx_pw_14cnumericalFlux_125calculateGlobalExteriorNumericalDiffusiveFlux_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
22340  int __pyx_v_nExteriorElementBoundaries_global;
22341  int __pyx_v_nQuadraturePoints_elementBoundary;
22342  int __pyx_v_nSpace;
22343  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
22344  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
22345  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
22346  PyArrayObject *__pyx_v_isDOFBoundary = 0;
22347  PyArrayObject *__pyx_v_n = 0;
22348  PyArrayObject *__pyx_v_bc_a = 0;
22349  PyArrayObject *__pyx_v_bc_grad_phi = 0;
22350  PyArrayObject *__pyx_v_bc_u = 0;
22351  PyArrayObject *__pyx_v_a = 0;
22352  PyArrayObject *__pyx_v_grad_phi = 0;
22353  PyArrayObject *__pyx_v_u = 0;
22354  PyArrayObject *__pyx_v_penalty = 0;
22355  PyArrayObject *__pyx_v_flux = 0;
22356  int __pyx_lineno = 0;
22357  const char *__pyx_filename = NULL;
22358  int __pyx_clineno = 0;
22359  PyObject *__pyx_r = 0;
22360  __Pyx_RefNannyDeclarations
22361  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalDiffusiveFlux_free (wrapper)", 0);
22362  {
22363  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_n,&__pyx_n_s_bc_a,&__pyx_n_s_bc_grad_phi,&__pyx_n_s_bc_u,&__pyx_n_s_a,&__pyx_n_s_grad_phi,&__pyx_n_s_u,&__pyx_n_s_penalty,&__pyx_n_s_flux,0};
22364  PyObject* values[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
22365  if (unlikely(__pyx_kwds)) {
22366  Py_ssize_t kw_args;
22367  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
22368  switch (pos_args) {
22369  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
22370  CYTHON_FALLTHROUGH;
22371  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
22372  CYTHON_FALLTHROUGH;
22373  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
22374  CYTHON_FALLTHROUGH;
22375  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
22376  CYTHON_FALLTHROUGH;
22377  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
22378  CYTHON_FALLTHROUGH;
22379  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
22380  CYTHON_FALLTHROUGH;
22381  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
22382  CYTHON_FALLTHROUGH;
22383  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
22384  CYTHON_FALLTHROUGH;
22385  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
22386  CYTHON_FALLTHROUGH;
22387  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
22388  CYTHON_FALLTHROUGH;
22389  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
22390  CYTHON_FALLTHROUGH;
22391  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
22392  CYTHON_FALLTHROUGH;
22393  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
22394  CYTHON_FALLTHROUGH;
22395  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22396  CYTHON_FALLTHROUGH;
22397  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22398  CYTHON_FALLTHROUGH;
22399  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22400  CYTHON_FALLTHROUGH;
22401  case 0: break;
22402  default: goto __pyx_L5_argtuple_error;
22403  }
22404  kw_args = PyDict_Size(__pyx_kwds);
22405  switch (pos_args) {
22406  case 0:
22407  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
22408  else goto __pyx_L5_argtuple_error;
22409  CYTHON_FALLTHROUGH;
22410  case 1:
22411  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
22412  else {
22413  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 1); __PYX_ERR(0, 4849, __pyx_L3_error)
22414  }
22415  CYTHON_FALLTHROUGH;
22416  case 2:
22417  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
22418  else {
22419  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 2); __PYX_ERR(0, 4849, __pyx_L3_error)
22420  }
22421  CYTHON_FALLTHROUGH;
22422  case 3:
22423  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
22424  else {
22425  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 3); __PYX_ERR(0, 4849, __pyx_L3_error)
22426  }
22427  CYTHON_FALLTHROUGH;
22428  case 4:
22429  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
22430  else {
22431  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 4); __PYX_ERR(0, 4849, __pyx_L3_error)
22432  }
22433  CYTHON_FALLTHROUGH;
22434  case 5:
22435  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
22436  else {
22437  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 5); __PYX_ERR(0, 4849, __pyx_L3_error)
22438  }
22439  CYTHON_FALLTHROUGH;
22440  case 6:
22441  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
22442  else {
22443  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 6); __PYX_ERR(0, 4849, __pyx_L3_error)
22444  }
22445  CYTHON_FALLTHROUGH;
22446  case 7:
22447  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
22448  else {
22449  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 7); __PYX_ERR(0, 4849, __pyx_L3_error)
22450  }
22451  CYTHON_FALLTHROUGH;
22452  case 8:
22453  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a)) != 0)) kw_args--;
22454  else {
22455  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 8); __PYX_ERR(0, 4849, __pyx_L3_error)
22456  }
22457  CYTHON_FALLTHROUGH;
22458  case 9:
22459  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi)) != 0)) kw_args--;
22460  else {
22461  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 9); __PYX_ERR(0, 4849, __pyx_L3_error)
22462  }
22463  CYTHON_FALLTHROUGH;
22464  case 10:
22465  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
22466  else {
22467  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 10); __PYX_ERR(0, 4849, __pyx_L3_error)
22468  }
22469  CYTHON_FALLTHROUGH;
22470  case 11:
22471  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
22472  else {
22473  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 11); __PYX_ERR(0, 4849, __pyx_L3_error)
22474  }
22475  CYTHON_FALLTHROUGH;
22476  case 12:
22477  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
22478  else {
22479  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 12); __PYX_ERR(0, 4849, __pyx_L3_error)
22480  }
22481  CYTHON_FALLTHROUGH;
22482  case 13:
22483  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
22484  else {
22485  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 13); __PYX_ERR(0, 4849, __pyx_L3_error)
22486  }
22487  CYTHON_FALLTHROUGH;
22488  case 14:
22489  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
22490  else {
22491  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 14); __PYX_ERR(0, 4849, __pyx_L3_error)
22492  }
22493  CYTHON_FALLTHROUGH;
22494  case 15:
22495  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
22496  else {
22497  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, 15); __PYX_ERR(0, 4849, __pyx_L3_error)
22498  }
22499  }
22500  if (unlikely(kw_args > 0)) {
22501  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalDiffusiveFlux_free") < 0)) __PYX_ERR(0, 4849, __pyx_L3_error)
22502  }
22503  } else if (PyTuple_GET_SIZE(__pyx_args) != 16) {
22504  goto __pyx_L5_argtuple_error;
22505  } else {
22506  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22507  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22508  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22509  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
22510  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
22511  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
22512  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
22513  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
22514  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
22515  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
22516  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
22517  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
22518  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
22519  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
22520  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
22521  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
22522  }
22523  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4849, __pyx_L3_error)
22524  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4850, __pyx_L3_error)
22525  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4851, __pyx_L3_error)
22526  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
22527  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
22528  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
22529  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[6]);
22530  __pyx_v_n = ((PyArrayObject *)values[7]);
22531  __pyx_v_bc_a = ((PyArrayObject *)values[8]);
22532  __pyx_v_bc_grad_phi = ((PyArrayObject *)values[9]);
22533  __pyx_v_bc_u = ((PyArrayObject *)values[10]);
22534  __pyx_v_a = ((PyArrayObject *)values[11]);
22535  __pyx_v_grad_phi = ((PyArrayObject *)values[12]);
22536  __pyx_v_u = ((PyArrayObject *)values[13]);
22537  __pyx_v_penalty = ((PyArrayObject *)values[14]);
22538  __pyx_v_flux = ((PyArrayObject *)values[15]);
22539  }
22540  goto __pyx_L4_argument_unpacking_done;
22541  __pyx_L5_argtuple_error:;
22542  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free", 1, 16, 16, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4849, __pyx_L3_error)
22543  __pyx_L3_error:;
22544  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalDiffusiveFlux_free", __pyx_clineno, __pyx_lineno, __pyx_filename);
22545  __Pyx_RefNannyFinishContext();
22546  return NULL;
22547  __pyx_L4_argument_unpacking_done:;
22548  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4852, __pyx_L1_error)
22549  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4853, __pyx_L1_error)
22550  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4854, __pyx_L1_error)
22551  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4855, __pyx_L1_error)
22552  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4856, __pyx_L1_error)
22553  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a), __pyx_ptype_5numpy_ndarray, 1, "bc_a", 0))) __PYX_ERR(0, 4857, __pyx_L1_error)
22554  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi", 0))) __PYX_ERR(0, 4858, __pyx_L1_error)
22555  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 4859, __pyx_L1_error)
22556  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 4860, __pyx_L1_error)
22557  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 4861, __pyx_L1_error)
22558  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 4862, __pyx_L1_error)
22559  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 4863, __pyx_L1_error)
22560  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 4864, __pyx_L1_error)
22561  __pyx_r = __pyx_pf_14cnumericalFlux_124calculateGlobalExteriorNumericalDiffusiveFlux_free(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __pyx_v_n, __pyx_v_bc_a, __pyx_v_bc_grad_phi, __pyx_v_bc_u, __pyx_v_a, __pyx_v_grad_phi, __pyx_v_u, __pyx_v_penalty, __pyx_v_flux);
22562 
22563  /* function exit code */
22564  goto __pyx_L0;
22565  __pyx_L1_error:;
22566  __pyx_r = NULL;
22567  __pyx_L0:;
22568  __Pyx_RefNannyFinishContext();
22569  return __pyx_r;
22570 }
22571 
22572 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) {
22573  PyObject *__pyx_r = NULL;
22574  __Pyx_RefNannyDeclarations
22575  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalDiffusiveFlux_free", 0);
22576 
22577  /* "cnumericalFlux.pyx":4865
22578  * np.ndarray penalty,
22579  * np.ndarray flux):
22580  * ccalculateGlobalExteriorNumericalDiffusiveFlux_free( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
22581  * nQuadraturePoints_elementBoundary,
22582  * nSpace,
22583  */
22584  calculateGlobalExteriorNumericalDiffusiveFlux_free(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_u->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));
22585 
22586  /* "cnumericalFlux.pyx":4849
22587  * else:
22588  * exit(0)
22589  * def calculateGlobalExteriorNumericalDiffusiveFlux_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
22590  * int nQuadraturePoints_elementBoundary,
22591  * int nSpace,
22592  */
22593 
22594  /* function exit code */
22595  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
22596  __Pyx_XGIVEREF(__pyx_r);
22597  __Pyx_RefNannyFinishContext();
22598  return __pyx_r;
22599 }
22600 
22601 /* "cnumericalFlux.pyx":4881
22602  * <double*> penalty.data,
22603  * <double*> flux.data)
22604  * def calculateGlobalExteriorNumericalDiffusiveFlux_free_sd(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
22605  * int nQuadraturePoints_elementBoundary,
22606  * int nSpace,
22607  */
22608 
22609 /* Python wrapper */
22610 static PyObject *__pyx_pw_14cnumericalFlux_127calculateGlobalExteriorNumericalDiffusiveFlux_free_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
22611 static PyMethodDef __pyx_mdef_14cnumericalFlux_127calculateGlobalExteriorNumericalDiffusiveFlux_free_sd = {"calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_127calculateGlobalExteriorNumericalDiffusiveFlux_free_sd, METH_VARARGS|METH_KEYWORDS, 0};
22612 static PyObject *__pyx_pw_14cnumericalFlux_127calculateGlobalExteriorNumericalDiffusiveFlux_free_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
22613  int __pyx_v_nExteriorElementBoundaries_global;
22614  int __pyx_v_nQuadraturePoints_elementBoundary;
22615  int __pyx_v_nSpace;
22616  PyArrayObject *__pyx_v_rowptr = 0;
22617  PyArrayObject *__pyx_v_colind = 0;
22618  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
22619  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
22620  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
22621  PyArrayObject *__pyx_v_isDOFBoundary = 0;
22622  PyArrayObject *__pyx_v_n = 0;
22623  PyArrayObject *__pyx_v_bc_a = 0;
22624  PyArrayObject *__pyx_v_bc_grad_phi = 0;
22625  PyArrayObject *__pyx_v_bc_u = 0;
22626  PyArrayObject *__pyx_v_a = 0;
22627  PyArrayObject *__pyx_v_grad_phi = 0;
22628  PyArrayObject *__pyx_v_u = 0;
22629  PyArrayObject *__pyx_v_penalty = 0;
22630  PyArrayObject *__pyx_v_flux = 0;
22631  int __pyx_lineno = 0;
22632  const char *__pyx_filename = NULL;
22633  int __pyx_clineno = 0;
22634  PyObject *__pyx_r = 0;
22635  __Pyx_RefNannyDeclarations
22636  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd (wrapper)", 0);
22637  {
22638  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_n,&__pyx_n_s_bc_a,&__pyx_n_s_bc_grad_phi,&__pyx_n_s_bc_u,&__pyx_n_s_a,&__pyx_n_s_grad_phi,&__pyx_n_s_u,&__pyx_n_s_penalty,&__pyx_n_s_flux,0};
22639  PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
22640  if (unlikely(__pyx_kwds)) {
22641  Py_ssize_t kw_args;
22642  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
22643  switch (pos_args) {
22644  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
22645  CYTHON_FALLTHROUGH;
22646  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
22647  CYTHON_FALLTHROUGH;
22648  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
22649  CYTHON_FALLTHROUGH;
22650  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
22651  CYTHON_FALLTHROUGH;
22652  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
22653  CYTHON_FALLTHROUGH;
22654  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
22655  CYTHON_FALLTHROUGH;
22656  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
22657  CYTHON_FALLTHROUGH;
22658  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
22659  CYTHON_FALLTHROUGH;
22660  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
22661  CYTHON_FALLTHROUGH;
22662  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
22663  CYTHON_FALLTHROUGH;
22664  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
22665  CYTHON_FALLTHROUGH;
22666  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
22667  CYTHON_FALLTHROUGH;
22668  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
22669  CYTHON_FALLTHROUGH;
22670  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
22671  CYTHON_FALLTHROUGH;
22672  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
22673  CYTHON_FALLTHROUGH;
22674  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22675  CYTHON_FALLTHROUGH;
22676  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22677  CYTHON_FALLTHROUGH;
22678  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22679  CYTHON_FALLTHROUGH;
22680  case 0: break;
22681  default: goto __pyx_L5_argtuple_error;
22682  }
22683  kw_args = PyDict_Size(__pyx_kwds);
22684  switch (pos_args) {
22685  case 0:
22686  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
22687  else goto __pyx_L5_argtuple_error;
22688  CYTHON_FALLTHROUGH;
22689  case 1:
22690  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
22691  else {
22692  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 1); __PYX_ERR(0, 4881, __pyx_L3_error)
22693  }
22694  CYTHON_FALLTHROUGH;
22695  case 2:
22696  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
22697  else {
22698  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 2); __PYX_ERR(0, 4881, __pyx_L3_error)
22699  }
22700  CYTHON_FALLTHROUGH;
22701  case 3:
22702  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
22703  else {
22704  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 3); __PYX_ERR(0, 4881, __pyx_L3_error)
22705  }
22706  CYTHON_FALLTHROUGH;
22707  case 4:
22708  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
22709  else {
22710  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 4); __PYX_ERR(0, 4881, __pyx_L3_error)
22711  }
22712  CYTHON_FALLTHROUGH;
22713  case 5:
22714  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
22715  else {
22716  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 5); __PYX_ERR(0, 4881, __pyx_L3_error)
22717  }
22718  CYTHON_FALLTHROUGH;
22719  case 6:
22720  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
22721  else {
22722  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 6); __PYX_ERR(0, 4881, __pyx_L3_error)
22723  }
22724  CYTHON_FALLTHROUGH;
22725  case 7:
22726  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
22727  else {
22728  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 7); __PYX_ERR(0, 4881, __pyx_L3_error)
22729  }
22730  CYTHON_FALLTHROUGH;
22731  case 8:
22732  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
22733  else {
22734  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 8); __PYX_ERR(0, 4881, __pyx_L3_error)
22735  }
22736  CYTHON_FALLTHROUGH;
22737  case 9:
22738  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
22739  else {
22740  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 9); __PYX_ERR(0, 4881, __pyx_L3_error)
22741  }
22742  CYTHON_FALLTHROUGH;
22743  case 10:
22744  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a)) != 0)) kw_args--;
22745  else {
22746  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 10); __PYX_ERR(0, 4881, __pyx_L3_error)
22747  }
22748  CYTHON_FALLTHROUGH;
22749  case 11:
22750  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi)) != 0)) kw_args--;
22751  else {
22752  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 11); __PYX_ERR(0, 4881, __pyx_L3_error)
22753  }
22754  CYTHON_FALLTHROUGH;
22755  case 12:
22756  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
22757  else {
22758  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 12); __PYX_ERR(0, 4881, __pyx_L3_error)
22759  }
22760  CYTHON_FALLTHROUGH;
22761  case 13:
22762  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
22763  else {
22764  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 13); __PYX_ERR(0, 4881, __pyx_L3_error)
22765  }
22766  CYTHON_FALLTHROUGH;
22767  case 14:
22768  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
22769  else {
22770  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 14); __PYX_ERR(0, 4881, __pyx_L3_error)
22771  }
22772  CYTHON_FALLTHROUGH;
22773  case 15:
22774  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
22775  else {
22776  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 15); __PYX_ERR(0, 4881, __pyx_L3_error)
22777  }
22778  CYTHON_FALLTHROUGH;
22779  case 16:
22780  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
22781  else {
22782  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 16); __PYX_ERR(0, 4881, __pyx_L3_error)
22783  }
22784  CYTHON_FALLTHROUGH;
22785  case 17:
22786  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
22787  else {
22788  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, 17); __PYX_ERR(0, 4881, __pyx_L3_error)
22789  }
22790  }
22791  if (unlikely(kw_args > 0)) {
22792  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalDiffusiveFlux_free_sd") < 0)) __PYX_ERR(0, 4881, __pyx_L3_error)
22793  }
22794  } else if (PyTuple_GET_SIZE(__pyx_args) != 18) {
22795  goto __pyx_L5_argtuple_error;
22796  } else {
22797  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22798  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22799  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22800  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
22801  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
22802  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
22803  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
22804  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
22805  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
22806  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
22807  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
22808  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
22809  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
22810  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
22811  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
22812  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
22813  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
22814  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
22815  }
22816  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4881, __pyx_L3_error)
22817  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4882, __pyx_L3_error)
22818  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4883, __pyx_L3_error)
22819  __pyx_v_rowptr = ((PyArrayObject *)values[3]);
22820  __pyx_v_colind = ((PyArrayObject *)values[4]);
22821  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[5]);
22822  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[6]);
22823  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[7]);
22824  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[8]);
22825  __pyx_v_n = ((PyArrayObject *)values[9]);
22826  __pyx_v_bc_a = ((PyArrayObject *)values[10]);
22827  __pyx_v_bc_grad_phi = ((PyArrayObject *)values[11]);
22828  __pyx_v_bc_u = ((PyArrayObject *)values[12]);
22829  __pyx_v_a = ((PyArrayObject *)values[13]);
22830  __pyx_v_grad_phi = ((PyArrayObject *)values[14]);
22831  __pyx_v_u = ((PyArrayObject *)values[15]);
22832  __pyx_v_penalty = ((PyArrayObject *)values[16]);
22833  __pyx_v_flux = ((PyArrayObject *)values[17]);
22834  }
22835  goto __pyx_L4_argument_unpacking_done;
22836  __pyx_L5_argtuple_error:;
22837  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 1, 18, 18, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4881, __pyx_L3_error)
22838  __pyx_L3_error:;
22839  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
22840  __Pyx_RefNannyFinishContext();
22841  return NULL;
22842  __pyx_L4_argument_unpacking_done:;
22843  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 4884, __pyx_L1_error)
22844  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 4885, __pyx_L1_error)
22845  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4886, __pyx_L1_error)
22846  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4887, __pyx_L1_error)
22847  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4888, __pyx_L1_error)
22848  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4889, __pyx_L1_error)
22849  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4890, __pyx_L1_error)
22850  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a), __pyx_ptype_5numpy_ndarray, 1, "bc_a", 0))) __PYX_ERR(0, 4891, __pyx_L1_error)
22851  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi", 0))) __PYX_ERR(0, 4892, __pyx_L1_error)
22852  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 4893, __pyx_L1_error)
22853  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 4894, __pyx_L1_error)
22854  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 4895, __pyx_L1_error)
22855  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 4896, __pyx_L1_error)
22856  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 4897, __pyx_L1_error)
22857  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 4898, __pyx_L1_error)
22858  __pyx_r = __pyx_pf_14cnumericalFlux_126calculateGlobalExteriorNumericalDiffusiveFlux_free_sd(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __pyx_v_n, __pyx_v_bc_a, __pyx_v_bc_grad_phi, __pyx_v_bc_u, __pyx_v_a, __pyx_v_grad_phi, __pyx_v_u, __pyx_v_penalty, __pyx_v_flux);
22859 
22860  /* function exit code */
22861  goto __pyx_L0;
22862  __pyx_L1_error:;
22863  __pyx_r = NULL;
22864  __pyx_L0:;
22865  __Pyx_RefNannyFinishContext();
22866  return __pyx_r;
22867 }
22868 
22869 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) {
22870  PyObject *__pyx_r = NULL;
22871  __Pyx_RefNannyDeclarations
22872  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalDiffusiveFlux_free_sd", 0);
22873 
22874  /* "cnumericalFlux.pyx":4899
22875  * np.ndarray penalty,
22876  * np.ndarray flux):
22877  * ccalculateGlobalExteriorNumericalDiffusiveFlux_free_sd( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
22878  * nQuadraturePoints_elementBoundary,
22879  * nSpace,
22880  */
22881  calculateGlobalExteriorNumericalDiffusiveFlux_free_sd(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_u->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));
22882 
22883  /* "cnumericalFlux.pyx":4881
22884  * <double*> penalty.data,
22885  * <double*> flux.data)
22886  * def calculateGlobalExteriorNumericalDiffusiveFlux_free_sd(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
22887  * int nQuadraturePoints_elementBoundary,
22888  * int nSpace,
22889  */
22890 
22891  /* function exit code */
22892  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
22893  __Pyx_XGIVEREF(__pyx_r);
22894  __Pyx_RefNannyFinishContext();
22895  return __pyx_r;
22896 }
22897 
22898 /* "cnumericalFlux.pyx":4917
22899  * <double*> penalty.data,
22900  * <double*> flux.data)
22901  * def updateExteriorNumericalDiffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
22902  * np.ndarray exteriorElementBoundaries,
22903  * np.ndarray elementBoundaryElements,
22904  */
22905 
22906 /* Python wrapper */
22907 static PyObject *__pyx_pw_14cnumericalFlux_129updateExteriorNumericalDiffusiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
22908 static PyMethodDef __pyx_mdef_14cnumericalFlux_129updateExteriorNumericalDiffusiveFluxJacobian = {"updateExteriorNumericalDiffusiveFluxJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_129updateExteriorNumericalDiffusiveFluxJacobian, METH_VARARGS|METH_KEYWORDS, 0};
22909 static PyObject *__pyx_pw_14cnumericalFlux_129updateExteriorNumericalDiffusiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
22910  PyArrayObject *__pyx_v_l2g = 0;
22911  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
22912  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
22913  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
22914  PyArrayObject *__pyx_v_isDOFBoundary = 0;
22915  PyArrayObject *__pyx_v_n = 0;
22916  PyArrayObject *__pyx_v_a = 0;
22917  PyArrayObject *__pyx_v_da = 0;
22918  PyArrayObject *__pyx_v_grad_phi = 0;
22919  PyArrayObject *__pyx_v_dphi = 0;
22920  PyArrayObject *__pyx_v_v = 0;
22921  PyArrayObject *__pyx_v_grad_v = 0;
22922  PyArrayObject *__pyx_v_penalty = 0;
22923  PyArrayObject *__pyx_v_fluxJacobian = 0;
22924  int __pyx_v_scale_penalty;
22925  double __pyx_v_penalty_floor;
22926  int __pyx_lineno = 0;
22927  const char *__pyx_filename = NULL;
22928  int __pyx_clineno = 0;
22929  PyObject *__pyx_r = 0;
22930  __Pyx_RefNannyDeclarations
22931  __Pyx_RefNannySetupContext("updateExteriorNumericalDiffusiveFluxJacobian (wrapper)", 0);
22932  {
22933  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__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};
22934  PyObject* values[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
22935  if (unlikely(__pyx_kwds)) {
22936  Py_ssize_t kw_args;
22937  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
22938  switch (pos_args) {
22939  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
22940  CYTHON_FALLTHROUGH;
22941  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
22942  CYTHON_FALLTHROUGH;
22943  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
22944  CYTHON_FALLTHROUGH;
22945  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
22946  CYTHON_FALLTHROUGH;
22947  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
22948  CYTHON_FALLTHROUGH;
22949  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
22950  CYTHON_FALLTHROUGH;
22951  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
22952  CYTHON_FALLTHROUGH;
22953  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
22954  CYTHON_FALLTHROUGH;
22955  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
22956  CYTHON_FALLTHROUGH;
22957  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
22958  CYTHON_FALLTHROUGH;
22959  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
22960  CYTHON_FALLTHROUGH;
22961  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
22962  CYTHON_FALLTHROUGH;
22963  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
22964  CYTHON_FALLTHROUGH;
22965  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
22966  CYTHON_FALLTHROUGH;
22967  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
22968  CYTHON_FALLTHROUGH;
22969  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
22970  CYTHON_FALLTHROUGH;
22971  case 0: break;
22972  default: goto __pyx_L5_argtuple_error;
22973  }
22974  kw_args = PyDict_Size(__pyx_kwds);
22975  switch (pos_args) {
22976  case 0:
22977  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
22978  else goto __pyx_L5_argtuple_error;
22979  CYTHON_FALLTHROUGH;
22980  case 1:
22981  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
22982  else {
22983  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 1); __PYX_ERR(0, 4917, __pyx_L3_error)
22984  }
22985  CYTHON_FALLTHROUGH;
22986  case 2:
22987  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
22988  else {
22989  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 2); __PYX_ERR(0, 4917, __pyx_L3_error)
22990  }
22991  CYTHON_FALLTHROUGH;
22992  case 3:
22993  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
22994  else {
22995  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 3); __PYX_ERR(0, 4917, __pyx_L3_error)
22996  }
22997  CYTHON_FALLTHROUGH;
22998  case 4:
22999  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
23000  else {
23001  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 4); __PYX_ERR(0, 4917, __pyx_L3_error)
23002  }
23003  CYTHON_FALLTHROUGH;
23004  case 5:
23005  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
23006  else {
23007  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 5); __PYX_ERR(0, 4917, __pyx_L3_error)
23008  }
23009  CYTHON_FALLTHROUGH;
23010  case 6:
23011  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
23012  else {
23013  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 6); __PYX_ERR(0, 4917, __pyx_L3_error)
23014  }
23015  CYTHON_FALLTHROUGH;
23016  case 7:
23017  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
23018  else {
23019  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 7); __PYX_ERR(0, 4917, __pyx_L3_error)
23020  }
23021  CYTHON_FALLTHROUGH;
23022  case 8:
23023  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
23024  else {
23025  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 8); __PYX_ERR(0, 4917, __pyx_L3_error)
23026  }
23027  CYTHON_FALLTHROUGH;
23028  case 9:
23029  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
23030  else {
23031  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 9); __PYX_ERR(0, 4917, __pyx_L3_error)
23032  }
23033  CYTHON_FALLTHROUGH;
23034  case 10:
23035  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
23036  else {
23037  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 10); __PYX_ERR(0, 4917, __pyx_L3_error)
23038  }
23039  CYTHON_FALLTHROUGH;
23040  case 11:
23041  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
23042  else {
23043  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 11); __PYX_ERR(0, 4917, __pyx_L3_error)
23044  }
23045  CYTHON_FALLTHROUGH;
23046  case 12:
23047  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
23048  else {
23049  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 12); __PYX_ERR(0, 4917, __pyx_L3_error)
23050  }
23051  CYTHON_FALLTHROUGH;
23052  case 13:
23053  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
23054  else {
23055  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 13); __PYX_ERR(0, 4917, __pyx_L3_error)
23056  }
23057  CYTHON_FALLTHROUGH;
23058  case 14:
23059  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty)) != 0)) kw_args--;
23060  else {
23061  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 14); __PYX_ERR(0, 4917, __pyx_L3_error)
23062  }
23063  CYTHON_FALLTHROUGH;
23064  case 15:
23065  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor)) != 0)) kw_args--;
23066  else {
23067  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, 15); __PYX_ERR(0, 4917, __pyx_L3_error)
23068  }
23069  }
23070  if (unlikely(kw_args > 0)) {
23071  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateExteriorNumericalDiffusiveFluxJacobian") < 0)) __PYX_ERR(0, 4917, __pyx_L3_error)
23072  }
23073  } else if (PyTuple_GET_SIZE(__pyx_args) != 16) {
23074  goto __pyx_L5_argtuple_error;
23075  } else {
23076  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23077  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23078  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23079  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
23080  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
23081  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
23082  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
23083  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
23084  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
23085  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
23086  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
23087  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
23088  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
23089  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
23090  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
23091  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
23092  }
23093  __pyx_v_l2g = ((PyArrayObject *)values[0]);
23094  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
23095  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
23096  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
23097  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[4]);
23098  __pyx_v_n = ((PyArrayObject *)values[5]);
23099  __pyx_v_a = ((PyArrayObject *)values[6]);
23100  __pyx_v_da = ((PyArrayObject *)values[7]);
23101  __pyx_v_grad_phi = ((PyArrayObject *)values[8]);
23102  __pyx_v_dphi = ((PyArrayObject *)values[9]);
23103  __pyx_v_v = ((PyArrayObject *)values[10]);
23104  __pyx_v_grad_v = ((PyArrayObject *)values[11]);
23105  __pyx_v_penalty = ((PyArrayObject *)values[12]);
23106  __pyx_v_fluxJacobian = ((PyArrayObject *)values[13]);
23107  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[14]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4931, __pyx_L3_error)
23108  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[15]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4932, __pyx_L3_error)
23109  }
23110  goto __pyx_L4_argument_unpacking_done;
23111  __pyx_L5_argtuple_error:;
23112  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian", 1, 16, 16, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4917, __pyx_L3_error)
23113  __pyx_L3_error:;
23114  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalDiffusiveFluxJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename);
23115  __Pyx_RefNannyFinishContext();
23116  return NULL;
23117  __pyx_L4_argument_unpacking_done:;
23118  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 4917, __pyx_L1_error)
23119  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4918, __pyx_L1_error)
23120  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4919, __pyx_L1_error)
23121  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4920, __pyx_L1_error)
23122  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4921, __pyx_L1_error)
23123  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4922, __pyx_L1_error)
23124  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 4923, __pyx_L1_error)
23125  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 4924, __pyx_L1_error)
23126  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 4925, __pyx_L1_error)
23127  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 4926, __pyx_L1_error)
23128  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 4927, __pyx_L1_error)
23129  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 4928, __pyx_L1_error)
23130  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 4929, __pyx_L1_error)
23131  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 4930, __pyx_L1_error)
23132  __pyx_r = __pyx_pf_14cnumericalFlux_128updateExteriorNumericalDiffusiveFluxJacobian(__pyx_self, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __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);
23133 
23134  /* function exit code */
23135  goto __pyx_L0;
23136  __pyx_L1_error:;
23137  __pyx_r = NULL;
23138  __pyx_L0:;
23139  __Pyx_RefNannyFinishContext();
23140  return __pyx_r;
23141 }
23142 
23143 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) {
23144  PyObject *__pyx_r = NULL;
23145  __Pyx_RefNannyDeclarations
23146  PyObject *__pyx_t_1 = NULL;
23147  PyObject *__pyx_t_2 = NULL;
23148  PyObject *__pyx_t_3 = NULL;
23149  int __pyx_lineno = 0;
23150  const char *__pyx_filename = NULL;
23151  int __pyx_clineno = 0;
23152  __Pyx_RefNannySetupContext("updateExteriorNumericalDiffusiveFluxJacobian", 0);
23153 
23154  /* "cnumericalFlux.pyx":4933
23155  * int scale_penalty,
23156  * double penalty_floor):
23157  * if grad_v.ndim == 5: # <<<<<<<<<<<<<<
23158  * cupdateExteriorNumericalDiffusiveFluxJacobian( scale_penalty,
23159  * penalty_floor,
23160  */
23161  switch (__pyx_v_grad_v->nd) {
23162  case 5:
23163 
23164  /* "cnumericalFlux.pyx":4934
23165  * double penalty_floor):
23166  * if grad_v.ndim == 5:
23167  * cupdateExteriorNumericalDiffusiveFluxJacobian( scale_penalty, # <<<<<<<<<<<<<<
23168  * penalty_floor,
23169  * exteriorElementBoundaries.shape[0],
23170  */
23171  updateExteriorNumericalDiffusiveFluxJacobian(__pyx_v_scale_penalty, __pyx_v_penalty_floor, (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_v->dimensions[1]), (__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_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->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));
23172 
23173  /* "cnumericalFlux.pyx":4933
23174  * int scale_penalty,
23175  * double penalty_floor):
23176  * if grad_v.ndim == 5: # <<<<<<<<<<<<<<
23177  * cupdateExteriorNumericalDiffusiveFluxJacobian( scale_penalty,
23178  * penalty_floor,
23179  */
23180  break;
23181  case 4:
23182 
23183  /* "cnumericalFlux.pyx":4956
23184  * <double*> fluxJacobian.data)
23185  * elif grad_v.ndim == 4:
23186  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian( scale_penalty, # <<<<<<<<<<<<<<
23187  * penalty_floor,
23188  * exteriorElementBoundaries.shape[0],
23189  */
23190  updateGlobalExteriorNumericalDiffusiveFluxJacobian(__pyx_v_scale_penalty, __pyx_v_penalty_floor, (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_v->dimensions[1]), (__pyx_v_grad_v->dimensions[2]), (__pyx_v_grad_v->dimensions[3]), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->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));
23191 
23192  /* "cnumericalFlux.pyx":4955
23193  * <double*> penalty.data,
23194  * <double*> fluxJacobian.data)
23195  * elif grad_v.ndim == 4: # <<<<<<<<<<<<<<
23196  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian( scale_penalty,
23197  * penalty_floor,
23198  */
23199  break;
23200  default:
23201 
23202  /* "cnumericalFlux.pyx":4977
23203  * <double*> fluxJacobian.data)
23204  * else:
23205  * exit(1) # <<<<<<<<<<<<<<
23206  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian(int scale_penalty,
23207  * double penalty_floor,
23208  */
23209  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4977, __pyx_L1_error)
23210  __Pyx_GOTREF(__pyx_t_2);
23211  __pyx_t_3 = NULL;
23212  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
23213  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
23214  if (likely(__pyx_t_3)) {
23215  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
23216  __Pyx_INCREF(__pyx_t_3);
23217  __Pyx_INCREF(function);
23218  __Pyx_DECREF_SET(__pyx_t_2, function);
23219  }
23220  }
23221  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_int_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_1);
23222  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
23223  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4977, __pyx_L1_error)
23224  __Pyx_GOTREF(__pyx_t_1);
23225  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23226  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23227  break;
23228  }
23229 
23230  /* "cnumericalFlux.pyx":4917
23231  * <double*> penalty.data,
23232  * <double*> flux.data)
23233  * def updateExteriorNumericalDiffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
23234  * np.ndarray exteriorElementBoundaries,
23235  * np.ndarray elementBoundaryElements,
23236  */
23237 
23238  /* function exit code */
23239  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
23240  goto __pyx_L0;
23241  __pyx_L1_error:;
23242  __Pyx_XDECREF(__pyx_t_1);
23243  __Pyx_XDECREF(__pyx_t_2);
23244  __Pyx_XDECREF(__pyx_t_3);
23245  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalDiffusiveFluxJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename);
23246  __pyx_r = NULL;
23247  __pyx_L0:;
23248  __Pyx_XGIVEREF(__pyx_r);
23249  __Pyx_RefNannyFinishContext();
23250  return __pyx_r;
23251 }
23252 
23253 /* "cnumericalFlux.pyx":4978
23254  * else:
23255  * exit(1)
23256  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian(int scale_penalty, # <<<<<<<<<<<<<<
23257  * double penalty_floor,
23258  * int nExteriorElementBoundaries_global,
23259  */
23260 
23261 /* Python wrapper */
23262 static PyObject *__pyx_pw_14cnumericalFlux_131updateGlobalExteriorNumericalDiffusiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23263 static PyMethodDef __pyx_mdef_14cnumericalFlux_131updateGlobalExteriorNumericalDiffusiveFluxJacobian = {"updateGlobalExteriorNumericalDiffusiveFluxJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_131updateGlobalExteriorNumericalDiffusiveFluxJacobian, METH_VARARGS|METH_KEYWORDS, 0};
23264 static PyObject *__pyx_pw_14cnumericalFlux_131updateGlobalExteriorNumericalDiffusiveFluxJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23265  int __pyx_v_scale_penalty;
23266  double __pyx_v_penalty_floor;
23267  int __pyx_v_nExteriorElementBoundaries_global;
23268  int __pyx_v_nQuadraturePoints_elementBoundary;
23269  int __pyx_v_nDOF_trial_element;
23270  int __pyx_v_nSpace;
23271  PyArrayObject *__pyx_v_l2g = 0;
23272  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
23273  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
23274  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
23275  PyArrayObject *__pyx_v_isDOFBoundary = 0;
23276  PyArrayObject *__pyx_v_n = 0;
23277  PyArrayObject *__pyx_v_a = 0;
23278  PyArrayObject *__pyx_v_da = 0;
23279  PyArrayObject *__pyx_v_grad_phi = 0;
23280  PyArrayObject *__pyx_v_dphi = 0;
23281  PyArrayObject *__pyx_v_v = 0;
23282  PyArrayObject *__pyx_v_grad_v = 0;
23283  PyArrayObject *__pyx_v_penalty = 0;
23284  PyArrayObject *__pyx_v_fluxJacobian = 0;
23285  int __pyx_lineno = 0;
23286  const char *__pyx_filename = NULL;
23287  int __pyx_clineno = 0;
23288  PyObject *__pyx_r = 0;
23289  __Pyx_RefNannyDeclarations
23290  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalDiffusiveFluxJacobian (wrapper)", 0);
23291  {
23292  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scale_penalty,&__pyx_n_s_penalty_floor,&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nDOF_trial_element,&__pyx_n_s_nSpace,&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__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,0};
23293  PyObject* values[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
23294  if (unlikely(__pyx_kwds)) {
23295  Py_ssize_t kw_args;
23296  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
23297  switch (pos_args) {
23298  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
23299  CYTHON_FALLTHROUGH;
23300  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
23301  CYTHON_FALLTHROUGH;
23302  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
23303  CYTHON_FALLTHROUGH;
23304  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
23305  CYTHON_FALLTHROUGH;
23306  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
23307  CYTHON_FALLTHROUGH;
23308  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
23309  CYTHON_FALLTHROUGH;
23310  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
23311  CYTHON_FALLTHROUGH;
23312  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
23313  CYTHON_FALLTHROUGH;
23314  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
23315  CYTHON_FALLTHROUGH;
23316  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
23317  CYTHON_FALLTHROUGH;
23318  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
23319  CYTHON_FALLTHROUGH;
23320  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
23321  CYTHON_FALLTHROUGH;
23322  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
23323  CYTHON_FALLTHROUGH;
23324  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
23325  CYTHON_FALLTHROUGH;
23326  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
23327  CYTHON_FALLTHROUGH;
23328  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
23329  CYTHON_FALLTHROUGH;
23330  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
23331  CYTHON_FALLTHROUGH;
23332  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23333  CYTHON_FALLTHROUGH;
23334  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23335  CYTHON_FALLTHROUGH;
23336  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23337  CYTHON_FALLTHROUGH;
23338  case 0: break;
23339  default: goto __pyx_L5_argtuple_error;
23340  }
23341  kw_args = PyDict_Size(__pyx_kwds);
23342  switch (pos_args) {
23343  case 0:
23344  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty)) != 0)) kw_args--;
23345  else goto __pyx_L5_argtuple_error;
23346  CYTHON_FALLTHROUGH;
23347  case 1:
23348  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor)) != 0)) kw_args--;
23349  else {
23350  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 1); __PYX_ERR(0, 4978, __pyx_L3_error)
23351  }
23352  CYTHON_FALLTHROUGH;
23353  case 2:
23354  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
23355  else {
23356  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 2); __PYX_ERR(0, 4978, __pyx_L3_error)
23357  }
23358  CYTHON_FALLTHROUGH;
23359  case 3:
23360  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
23361  else {
23362  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 3); __PYX_ERR(0, 4978, __pyx_L3_error)
23363  }
23364  CYTHON_FALLTHROUGH;
23365  case 4:
23366  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nDOF_trial_element)) != 0)) kw_args--;
23367  else {
23368  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 4); __PYX_ERR(0, 4978, __pyx_L3_error)
23369  }
23370  CYTHON_FALLTHROUGH;
23371  case 5:
23372  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
23373  else {
23374  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 5); __PYX_ERR(0, 4978, __pyx_L3_error)
23375  }
23376  CYTHON_FALLTHROUGH;
23377  case 6:
23378  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
23379  else {
23380  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 6); __PYX_ERR(0, 4978, __pyx_L3_error)
23381  }
23382  CYTHON_FALLTHROUGH;
23383  case 7:
23384  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
23385  else {
23386  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 7); __PYX_ERR(0, 4978, __pyx_L3_error)
23387  }
23388  CYTHON_FALLTHROUGH;
23389  case 8:
23390  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
23391  else {
23392  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 8); __PYX_ERR(0, 4978, __pyx_L3_error)
23393  }
23394  CYTHON_FALLTHROUGH;
23395  case 9:
23396  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
23397  else {
23398  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 9); __PYX_ERR(0, 4978, __pyx_L3_error)
23399  }
23400  CYTHON_FALLTHROUGH;
23401  case 10:
23402  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
23403  else {
23404  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 10); __PYX_ERR(0, 4978, __pyx_L3_error)
23405  }
23406  CYTHON_FALLTHROUGH;
23407  case 11:
23408  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
23409  else {
23410  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 11); __PYX_ERR(0, 4978, __pyx_L3_error)
23411  }
23412  CYTHON_FALLTHROUGH;
23413  case 12:
23414  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
23415  else {
23416  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 12); __PYX_ERR(0, 4978, __pyx_L3_error)
23417  }
23418  CYTHON_FALLTHROUGH;
23419  case 13:
23420  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
23421  else {
23422  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 13); __PYX_ERR(0, 4978, __pyx_L3_error)
23423  }
23424  CYTHON_FALLTHROUGH;
23425  case 14:
23426  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
23427  else {
23428  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 14); __PYX_ERR(0, 4978, __pyx_L3_error)
23429  }
23430  CYTHON_FALLTHROUGH;
23431  case 15:
23432  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
23433  else {
23434  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 15); __PYX_ERR(0, 4978, __pyx_L3_error)
23435  }
23436  CYTHON_FALLTHROUGH;
23437  case 16:
23438  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
23439  else {
23440  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 16); __PYX_ERR(0, 4978, __pyx_L3_error)
23441  }
23442  CYTHON_FALLTHROUGH;
23443  case 17:
23444  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
23445  else {
23446  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 17); __PYX_ERR(0, 4978, __pyx_L3_error)
23447  }
23448  CYTHON_FALLTHROUGH;
23449  case 18:
23450  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
23451  else {
23452  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 18); __PYX_ERR(0, 4978, __pyx_L3_error)
23453  }
23454  CYTHON_FALLTHROUGH;
23455  case 19:
23456  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
23457  else {
23458  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, 19); __PYX_ERR(0, 4978, __pyx_L3_error)
23459  }
23460  }
23461  if (unlikely(kw_args > 0)) {
23462  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateGlobalExteriorNumericalDiffusiveFluxJacobian") < 0)) __PYX_ERR(0, 4978, __pyx_L3_error)
23463  }
23464  } else if (PyTuple_GET_SIZE(__pyx_args) != 20) {
23465  goto __pyx_L5_argtuple_error;
23466  } else {
23467  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23468  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23469  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23470  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
23471  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
23472  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
23473  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
23474  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
23475  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
23476  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
23477  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
23478  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
23479  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
23480  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
23481  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
23482  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
23483  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
23484  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
23485  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
23486  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
23487  }
23488  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4978, __pyx_L3_error)
23489  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4979, __pyx_L3_error)
23490  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4980, __pyx_L3_error)
23491  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4981, __pyx_L3_error)
23492  __pyx_v_nDOF_trial_element = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_nDOF_trial_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4982, __pyx_L3_error)
23493  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4983, __pyx_L3_error)
23494  __pyx_v_l2g = ((PyArrayObject *)values[6]);
23495  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[7]);
23496  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[8]);
23497  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[9]);
23498  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[10]);
23499  __pyx_v_n = ((PyArrayObject *)values[11]);
23500  __pyx_v_a = ((PyArrayObject *)values[12]);
23501  __pyx_v_da = ((PyArrayObject *)values[13]);
23502  __pyx_v_grad_phi = ((PyArrayObject *)values[14]);
23503  __pyx_v_dphi = ((PyArrayObject *)values[15]);
23504  __pyx_v_v = ((PyArrayObject *)values[16]);
23505  __pyx_v_grad_v = ((PyArrayObject *)values[17]);
23506  __pyx_v_penalty = ((PyArrayObject *)values[18]);
23507  __pyx_v_fluxJacobian = ((PyArrayObject *)values[19]);
23508  }
23509  goto __pyx_L4_argument_unpacking_done;
23510  __pyx_L5_argtuple_error:;
23511  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 1, 20, 20, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4978, __pyx_L3_error)
23512  __pyx_L3_error:;
23513  __Pyx_AddTraceback("cnumericalFlux.updateGlobalExteriorNumericalDiffusiveFluxJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename);
23514  __Pyx_RefNannyFinishContext();
23515  return NULL;
23516  __pyx_L4_argument_unpacking_done:;
23517  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 4984, __pyx_L1_error)
23518  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 4985, __pyx_L1_error)
23519  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 4986, __pyx_L1_error)
23520  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 4987, __pyx_L1_error)
23521  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 4988, __pyx_L1_error)
23522  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 4989, __pyx_L1_error)
23523  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 4990, __pyx_L1_error)
23524  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 4991, __pyx_L1_error)
23525  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 4992, __pyx_L1_error)
23526  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 4993, __pyx_L1_error)
23527  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 4994, __pyx_L1_error)
23528  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 4995, __pyx_L1_error)
23529  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 4996, __pyx_L1_error)
23530  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 4997, __pyx_L1_error)
23531  __pyx_r = __pyx_pf_14cnumericalFlux_130updateGlobalExteriorNumericalDiffusiveFluxJacobian(__pyx_self, __pyx_v_scale_penalty, __pyx_v_penalty_floor, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __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);
23532 
23533  /* function exit code */
23534  goto __pyx_L0;
23535  __pyx_L1_error:;
23536  __pyx_r = NULL;
23537  __pyx_L0:;
23538  __Pyx_RefNannyFinishContext();
23539  return __pyx_r;
23540 }
23541 
23542 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) {
23543  PyObject *__pyx_r = NULL;
23544  __Pyx_RefNannyDeclarations
23545  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalDiffusiveFluxJacobian", 0);
23546 
23547  /* "cnumericalFlux.pyx":4998
23548  * np.ndarray penalty,
23549  * np.ndarray fluxJacobian):
23550  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian( scale_penalty, # <<<<<<<<<<<<<<
23551  * penalty_floor,
23552  * nExteriorElementBoundaries_global,
23553  */
23554  updateGlobalExteriorNumericalDiffusiveFluxJacobian(__pyx_v_scale_penalty, __pyx_v_penalty_floor, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->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));
23555 
23556  /* "cnumericalFlux.pyx":4978
23557  * else:
23558  * exit(1)
23559  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian(int scale_penalty, # <<<<<<<<<<<<<<
23560  * double penalty_floor,
23561  * int nExteriorElementBoundaries_global,
23562  */
23563 
23564  /* function exit code */
23565  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
23566  __Pyx_XGIVEREF(__pyx_r);
23567  __Pyx_RefNannyFinishContext();
23568  return __pyx_r;
23569 }
23570 
23571 /* "cnumericalFlux.pyx":5018
23572  * <double*> penalty.data,
23573  * <double*> fluxJacobian.data)
23574  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd(int scale_penalty, # <<<<<<<<<<<<<<
23575  * double penalty_floor,
23576  * int nExteriorElementBoundaries_global,
23577  */
23578 
23579 /* Python wrapper */
23580 static PyObject *__pyx_pw_14cnumericalFlux_133updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23581 static PyMethodDef __pyx_mdef_14cnumericalFlux_133updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd = {"updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_133updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd, METH_VARARGS|METH_KEYWORDS, 0};
23582 static PyObject *__pyx_pw_14cnumericalFlux_133updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23583  int __pyx_v_scale_penalty;
23584  double __pyx_v_penalty_floor;
23585  int __pyx_v_nExteriorElementBoundaries_global;
23586  int __pyx_v_nQuadraturePoints_elementBoundary;
23587  int __pyx_v_nDOF_trial_element;
23588  int __pyx_v_nSpace;
23589  PyArrayObject *__pyx_v_rowptr = 0;
23590  PyArrayObject *__pyx_v_colind = 0;
23591  PyArrayObject *__pyx_v_l2g = 0;
23592  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
23593  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
23594  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
23595  PyArrayObject *__pyx_v_isDOFBoundary = 0;
23596  PyArrayObject *__pyx_v_n = 0;
23597  PyArrayObject *__pyx_v_a = 0;
23598  PyArrayObject *__pyx_v_da = 0;
23599  PyArrayObject *__pyx_v_grad_phi = 0;
23600  PyArrayObject *__pyx_v_dphi = 0;
23601  PyArrayObject *__pyx_v_v = 0;
23602  PyArrayObject *__pyx_v_grad_v = 0;
23603  PyArrayObject *__pyx_v_penalty = 0;
23604  PyArrayObject *__pyx_v_fluxJacobian = 0;
23605  int __pyx_lineno = 0;
23606  const char *__pyx_filename = NULL;
23607  int __pyx_clineno = 0;
23608  PyObject *__pyx_r = 0;
23609  __Pyx_RefNannyDeclarations
23610  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd (wrapper)", 0);
23611  {
23612  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scale_penalty,&__pyx_n_s_penalty_floor,&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nDOF_trial_element,&__pyx_n_s_nSpace,&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__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,0};
23613  PyObject* values[22] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
23614  if (unlikely(__pyx_kwds)) {
23615  Py_ssize_t kw_args;
23616  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
23617  switch (pos_args) {
23618  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
23619  CYTHON_FALLTHROUGH;
23620  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
23621  CYTHON_FALLTHROUGH;
23622  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
23623  CYTHON_FALLTHROUGH;
23624  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
23625  CYTHON_FALLTHROUGH;
23626  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
23627  CYTHON_FALLTHROUGH;
23628  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
23629  CYTHON_FALLTHROUGH;
23630  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
23631  CYTHON_FALLTHROUGH;
23632  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
23633  CYTHON_FALLTHROUGH;
23634  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
23635  CYTHON_FALLTHROUGH;
23636  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
23637  CYTHON_FALLTHROUGH;
23638  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
23639  CYTHON_FALLTHROUGH;
23640  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
23641  CYTHON_FALLTHROUGH;
23642  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
23643  CYTHON_FALLTHROUGH;
23644  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
23645  CYTHON_FALLTHROUGH;
23646  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
23647  CYTHON_FALLTHROUGH;
23648  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
23649  CYTHON_FALLTHROUGH;
23650  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
23651  CYTHON_FALLTHROUGH;
23652  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
23653  CYTHON_FALLTHROUGH;
23654  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
23655  CYTHON_FALLTHROUGH;
23656  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23657  CYTHON_FALLTHROUGH;
23658  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23659  CYTHON_FALLTHROUGH;
23660  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23661  CYTHON_FALLTHROUGH;
23662  case 0: break;
23663  default: goto __pyx_L5_argtuple_error;
23664  }
23665  kw_args = PyDict_Size(__pyx_kwds);
23666  switch (pos_args) {
23667  case 0:
23668  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty)) != 0)) kw_args--;
23669  else goto __pyx_L5_argtuple_error;
23670  CYTHON_FALLTHROUGH;
23671  case 1:
23672  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor)) != 0)) kw_args--;
23673  else {
23674  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 1); __PYX_ERR(0, 5018, __pyx_L3_error)
23675  }
23676  CYTHON_FALLTHROUGH;
23677  case 2:
23678  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
23679  else {
23680  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 2); __PYX_ERR(0, 5018, __pyx_L3_error)
23681  }
23682  CYTHON_FALLTHROUGH;
23683  case 3:
23684  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
23685  else {
23686  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 3); __PYX_ERR(0, 5018, __pyx_L3_error)
23687  }
23688  CYTHON_FALLTHROUGH;
23689  case 4:
23690  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nDOF_trial_element)) != 0)) kw_args--;
23691  else {
23692  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 4); __PYX_ERR(0, 5018, __pyx_L3_error)
23693  }
23694  CYTHON_FALLTHROUGH;
23695  case 5:
23696  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
23697  else {
23698  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 5); __PYX_ERR(0, 5018, __pyx_L3_error)
23699  }
23700  CYTHON_FALLTHROUGH;
23701  case 6:
23702  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
23703  else {
23704  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 6); __PYX_ERR(0, 5018, __pyx_L3_error)
23705  }
23706  CYTHON_FALLTHROUGH;
23707  case 7:
23708  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
23709  else {
23710  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 7); __PYX_ERR(0, 5018, __pyx_L3_error)
23711  }
23712  CYTHON_FALLTHROUGH;
23713  case 8:
23714  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
23715  else {
23716  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 8); __PYX_ERR(0, 5018, __pyx_L3_error)
23717  }
23718  CYTHON_FALLTHROUGH;
23719  case 9:
23720  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
23721  else {
23722  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 9); __PYX_ERR(0, 5018, __pyx_L3_error)
23723  }
23724  CYTHON_FALLTHROUGH;
23725  case 10:
23726  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
23727  else {
23728  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 10); __PYX_ERR(0, 5018, __pyx_L3_error)
23729  }
23730  CYTHON_FALLTHROUGH;
23731  case 11:
23732  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
23733  else {
23734  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 11); __PYX_ERR(0, 5018, __pyx_L3_error)
23735  }
23736  CYTHON_FALLTHROUGH;
23737  case 12:
23738  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
23739  else {
23740  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 12); __PYX_ERR(0, 5018, __pyx_L3_error)
23741  }
23742  CYTHON_FALLTHROUGH;
23743  case 13:
23744  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
23745  else {
23746  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 13); __PYX_ERR(0, 5018, __pyx_L3_error)
23747  }
23748  CYTHON_FALLTHROUGH;
23749  case 14:
23750  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
23751  else {
23752  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 14); __PYX_ERR(0, 5018, __pyx_L3_error)
23753  }
23754  CYTHON_FALLTHROUGH;
23755  case 15:
23756  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
23757  else {
23758  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 15); __PYX_ERR(0, 5018, __pyx_L3_error)
23759  }
23760  CYTHON_FALLTHROUGH;
23761  case 16:
23762  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
23763  else {
23764  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 16); __PYX_ERR(0, 5018, __pyx_L3_error)
23765  }
23766  CYTHON_FALLTHROUGH;
23767  case 17:
23768  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
23769  else {
23770  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 17); __PYX_ERR(0, 5018, __pyx_L3_error)
23771  }
23772  CYTHON_FALLTHROUGH;
23773  case 18:
23774  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
23775  else {
23776  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 18); __PYX_ERR(0, 5018, __pyx_L3_error)
23777  }
23778  CYTHON_FALLTHROUGH;
23779  case 19:
23780  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
23781  else {
23782  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 19); __PYX_ERR(0, 5018, __pyx_L3_error)
23783  }
23784  CYTHON_FALLTHROUGH;
23785  case 20:
23786  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
23787  else {
23788  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 20); __PYX_ERR(0, 5018, __pyx_L3_error)
23789  }
23790  CYTHON_FALLTHROUGH;
23791  case 21:
23792  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
23793  else {
23794  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, 21); __PYX_ERR(0, 5018, __pyx_L3_error)
23795  }
23796  }
23797  if (unlikely(kw_args > 0)) {
23798  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd") < 0)) __PYX_ERR(0, 5018, __pyx_L3_error)
23799  }
23800  } else if (PyTuple_GET_SIZE(__pyx_args) != 22) {
23801  goto __pyx_L5_argtuple_error;
23802  } else {
23803  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23804  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23805  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23806  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
23807  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
23808  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
23809  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
23810  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
23811  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
23812  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
23813  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
23814  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
23815  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
23816  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
23817  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
23818  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
23819  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
23820  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
23821  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
23822  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
23823  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
23824  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
23825  }
23826  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5018, __pyx_L3_error)
23827  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5019, __pyx_L3_error)
23828  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5020, __pyx_L3_error)
23829  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5021, __pyx_L3_error)
23830  __pyx_v_nDOF_trial_element = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_nDOF_trial_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5022, __pyx_L3_error)
23831  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5023, __pyx_L3_error)
23832  __pyx_v_rowptr = ((PyArrayObject *)values[6]);
23833  __pyx_v_colind = ((PyArrayObject *)values[7]);
23834  __pyx_v_l2g = ((PyArrayObject *)values[8]);
23835  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[9]);
23836  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[10]);
23837  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[11]);
23838  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[12]);
23839  __pyx_v_n = ((PyArrayObject *)values[13]);
23840  __pyx_v_a = ((PyArrayObject *)values[14]);
23841  __pyx_v_da = ((PyArrayObject *)values[15]);
23842  __pyx_v_grad_phi = ((PyArrayObject *)values[16]);
23843  __pyx_v_dphi = ((PyArrayObject *)values[17]);
23844  __pyx_v_v = ((PyArrayObject *)values[18]);
23845  __pyx_v_grad_v = ((PyArrayObject *)values[19]);
23846  __pyx_v_penalty = ((PyArrayObject *)values[20]);
23847  __pyx_v_fluxJacobian = ((PyArrayObject *)values[21]);
23848  }
23849  goto __pyx_L4_argument_unpacking_done;
23850  __pyx_L5_argtuple_error:;
23851  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 1, 22, 22, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5018, __pyx_L3_error)
23852  __pyx_L3_error:;
23853  __Pyx_AddTraceback("cnumericalFlux.updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
23854  __Pyx_RefNannyFinishContext();
23855  return NULL;
23856  __pyx_L4_argument_unpacking_done:;
23857  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 5024, __pyx_L1_error)
23858  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 5025, __pyx_L1_error)
23859  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 5026, __pyx_L1_error)
23860  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5027, __pyx_L1_error)
23861  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5028, __pyx_L1_error)
23862  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5029, __pyx_L1_error)
23863  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 5030, __pyx_L1_error)
23864  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5031, __pyx_L1_error)
23865  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 5032, __pyx_L1_error)
23866  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 5033, __pyx_L1_error)
23867  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 5034, __pyx_L1_error)
23868  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 5035, __pyx_L1_error)
23869  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 5036, __pyx_L1_error)
23870  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 5037, __pyx_L1_error)
23871  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 5038, __pyx_L1_error)
23872  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 5039, __pyx_L1_error)
23873  __pyx_r = __pyx_pf_14cnumericalFlux_132updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd(__pyx_self, __pyx_v_scale_penalty, __pyx_v_penalty_floor, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __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);
23874 
23875  /* function exit code */
23876  goto __pyx_L0;
23877  __pyx_L1_error:;
23878  __pyx_r = NULL;
23879  __pyx_L0:;
23880  __Pyx_RefNannyFinishContext();
23881  return __pyx_r;
23882 }
23883 
23884 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) {
23885  PyObject *__pyx_r = NULL;
23886  __Pyx_RefNannyDeclarations
23887  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd", 0);
23888 
23889  /* "cnumericalFlux.pyx":5040
23890  * np.ndarray penalty,
23891  * np.ndarray fluxJacobian):
23892  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian_sd( scale_penalty, # <<<<<<<<<<<<<<
23893  * penalty_floor,
23894  * nExteriorElementBoundaries_global,
23895  */
23896  updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd(__pyx_v_scale_penalty, __pyx_v_penalty_floor, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->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));
23897 
23898  /* "cnumericalFlux.pyx":5018
23899  * <double*> penalty.data,
23900  * <double*> fluxJacobian.data)
23901  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd(int scale_penalty, # <<<<<<<<<<<<<<
23902  * double penalty_floor,
23903  * int nExteriorElementBoundaries_global,
23904  */
23905 
23906  /* function exit code */
23907  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
23908  __Pyx_XGIVEREF(__pyx_r);
23909  __Pyx_RefNannyFinishContext();
23910  return __pyx_r;
23911 }
23912 
23913 /* "cnumericalFlux.pyx":5062
23914  * <double*> penalty.data,
23915  * <double*> fluxJacobian.data)
23916  * def updateExteriorNumericalDiffusiveFluxJacobian_free(np.ndarray l2g, # <<<<<<<<<<<<<<
23917  * np.ndarray exteriorElementBoundaries,
23918  * np.ndarray elementBoundaryElements,
23919  */
23920 
23921 /* Python wrapper */
23922 static PyObject *__pyx_pw_14cnumericalFlux_135updateExteriorNumericalDiffusiveFluxJacobian_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23923 static PyMethodDef __pyx_mdef_14cnumericalFlux_135updateExteriorNumericalDiffusiveFluxJacobian_free = {"updateExteriorNumericalDiffusiveFluxJacobian_free", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_135updateExteriorNumericalDiffusiveFluxJacobian_free, METH_VARARGS|METH_KEYWORDS, 0};
23924 static PyObject *__pyx_pw_14cnumericalFlux_135updateExteriorNumericalDiffusiveFluxJacobian_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23925  PyArrayObject *__pyx_v_l2g = 0;
23926  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
23927  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
23928  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
23929  PyArrayObject *__pyx_v_isDOFBoundary = 0;
23930  PyArrayObject *__pyx_v_n = 0;
23931  PyArrayObject *__pyx_v_a = 0;
23932  PyArrayObject *__pyx_v_da = 0;
23933  PyArrayObject *__pyx_v_grad_phi = 0;
23934  PyArrayObject *__pyx_v_dphi = 0;
23935  PyArrayObject *__pyx_v_v = 0;
23936  PyArrayObject *__pyx_v_grad_v = 0;
23937  PyArrayObject *__pyx_v_penalty = 0;
23938  PyArrayObject *__pyx_v_fluxJacobian = 0;
23939  int __pyx_lineno = 0;
23940  const char *__pyx_filename = NULL;
23941  int __pyx_clineno = 0;
23942  PyObject *__pyx_r = 0;
23943  __Pyx_RefNannyDeclarations
23944  __Pyx_RefNannySetupContext("updateExteriorNumericalDiffusiveFluxJacobian_free (wrapper)", 0);
23945  {
23946  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__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,0};
23947  PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
23948  if (unlikely(__pyx_kwds)) {
23949  Py_ssize_t kw_args;
23950  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
23951  switch (pos_args) {
23952  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
23953  CYTHON_FALLTHROUGH;
23954  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
23955  CYTHON_FALLTHROUGH;
23956  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
23957  CYTHON_FALLTHROUGH;
23958  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
23959  CYTHON_FALLTHROUGH;
23960  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
23961  CYTHON_FALLTHROUGH;
23962  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
23963  CYTHON_FALLTHROUGH;
23964  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
23965  CYTHON_FALLTHROUGH;
23966  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
23967  CYTHON_FALLTHROUGH;
23968  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
23969  CYTHON_FALLTHROUGH;
23970  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
23971  CYTHON_FALLTHROUGH;
23972  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
23973  CYTHON_FALLTHROUGH;
23974  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
23975  CYTHON_FALLTHROUGH;
23976  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
23977  CYTHON_FALLTHROUGH;
23978  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
23979  CYTHON_FALLTHROUGH;
23980  case 0: break;
23981  default: goto __pyx_L5_argtuple_error;
23982  }
23983  kw_args = PyDict_Size(__pyx_kwds);
23984  switch (pos_args) {
23985  case 0:
23986  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
23987  else goto __pyx_L5_argtuple_error;
23988  CYTHON_FALLTHROUGH;
23989  case 1:
23990  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
23991  else {
23992  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free", 1, 14, 14, 1); __PYX_ERR(0, 5062, __pyx_L3_error)
23993  }
23994  CYTHON_FALLTHROUGH;
23995  case 2:
23996  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
23997  else {
23998  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free", 1, 14, 14, 2); __PYX_ERR(0, 5062, __pyx_L3_error)
23999  }
24000  CYTHON_FALLTHROUGH;
24001  case 3:
24002  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
24003  else {
24004  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free", 1, 14, 14, 3); __PYX_ERR(0, 5062, __pyx_L3_error)
24005  }
24006  CYTHON_FALLTHROUGH;
24007  case 4:
24008  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
24009  else {
24010  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free", 1, 14, 14, 4); __PYX_ERR(0, 5062, __pyx_L3_error)
24011  }
24012  CYTHON_FALLTHROUGH;
24013  case 5:
24014  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
24015  else {
24016  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free", 1, 14, 14, 5); __PYX_ERR(0, 5062, __pyx_L3_error)
24017  }
24018  CYTHON_FALLTHROUGH;
24019  case 6:
24020  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
24021  else {
24022  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free", 1, 14, 14, 6); __PYX_ERR(0, 5062, __pyx_L3_error)
24023  }
24024  CYTHON_FALLTHROUGH;
24025  case 7:
24026  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
24027  else {
24028  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free", 1, 14, 14, 7); __PYX_ERR(0, 5062, __pyx_L3_error)
24029  }
24030  CYTHON_FALLTHROUGH;
24031  case 8:
24032  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
24033  else {
24034  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free", 1, 14, 14, 8); __PYX_ERR(0, 5062, __pyx_L3_error)
24035  }
24036  CYTHON_FALLTHROUGH;
24037  case 9:
24038  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
24039  else {
24040  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free", 1, 14, 14, 9); __PYX_ERR(0, 5062, __pyx_L3_error)
24041  }
24042  CYTHON_FALLTHROUGH;
24043  case 10:
24044  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
24045  else {
24046  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free", 1, 14, 14, 10); __PYX_ERR(0, 5062, __pyx_L3_error)
24047  }
24048  CYTHON_FALLTHROUGH;
24049  case 11:
24050  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
24051  else {
24052  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free", 1, 14, 14, 11); __PYX_ERR(0, 5062, __pyx_L3_error)
24053  }
24054  CYTHON_FALLTHROUGH;
24055  case 12:
24056  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
24057  else {
24058  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free", 1, 14, 14, 12); __PYX_ERR(0, 5062, __pyx_L3_error)
24059  }
24060  CYTHON_FALLTHROUGH;
24061  case 13:
24062  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
24063  else {
24064  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free", 1, 14, 14, 13); __PYX_ERR(0, 5062, __pyx_L3_error)
24065  }
24066  }
24067  if (unlikely(kw_args > 0)) {
24068  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateExteriorNumericalDiffusiveFluxJacobian_free") < 0)) __PYX_ERR(0, 5062, __pyx_L3_error)
24069  }
24070  } else if (PyTuple_GET_SIZE(__pyx_args) != 14) {
24071  goto __pyx_L5_argtuple_error;
24072  } else {
24073  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
24074  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
24075  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
24076  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
24077  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
24078  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
24079  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
24080  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
24081  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
24082  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
24083  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
24084  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
24085  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
24086  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
24087  }
24088  __pyx_v_l2g = ((PyArrayObject *)values[0]);
24089  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
24090  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
24091  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
24092  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[4]);
24093  __pyx_v_n = ((PyArrayObject *)values[5]);
24094  __pyx_v_a = ((PyArrayObject *)values[6]);
24095  __pyx_v_da = ((PyArrayObject *)values[7]);
24096  __pyx_v_grad_phi = ((PyArrayObject *)values[8]);
24097  __pyx_v_dphi = ((PyArrayObject *)values[9]);
24098  __pyx_v_v = ((PyArrayObject *)values[10]);
24099  __pyx_v_grad_v = ((PyArrayObject *)values[11]);
24100  __pyx_v_penalty = ((PyArrayObject *)values[12]);
24101  __pyx_v_fluxJacobian = ((PyArrayObject *)values[13]);
24102  }
24103  goto __pyx_L4_argument_unpacking_done;
24104  __pyx_L5_argtuple_error:;
24105  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_free", 1, 14, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5062, __pyx_L3_error)
24106  __pyx_L3_error:;
24107  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalDiffusiveFluxJacobian_free", __pyx_clineno, __pyx_lineno, __pyx_filename);
24108  __Pyx_RefNannyFinishContext();
24109  return NULL;
24110  __pyx_L4_argument_unpacking_done:;
24111  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 5062, __pyx_L1_error)
24112  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5063, __pyx_L1_error)
24113  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5064, __pyx_L1_error)
24114  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5065, __pyx_L1_error)
24115  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 5066, __pyx_L1_error)
24116  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5067, __pyx_L1_error)
24117  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 5068, __pyx_L1_error)
24118  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 5069, __pyx_L1_error)
24119  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 5070, __pyx_L1_error)
24120  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 5071, __pyx_L1_error)
24121  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 5072, __pyx_L1_error)
24122  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 5073, __pyx_L1_error)
24123  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 5074, __pyx_L1_error)
24124  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 5075, __pyx_L1_error)
24125  __pyx_r = __pyx_pf_14cnumericalFlux_134updateExteriorNumericalDiffusiveFluxJacobian_free(__pyx_self, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __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);
24126 
24127  /* function exit code */
24128  goto __pyx_L0;
24129  __pyx_L1_error:;
24130  __pyx_r = NULL;
24131  __pyx_L0:;
24132  __Pyx_RefNannyFinishContext();
24133  return __pyx_r;
24134 }
24135 
24136 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) {
24137  PyObject *__pyx_r = NULL;
24138  __Pyx_RefNannyDeclarations
24139  PyObject *__pyx_t_1 = NULL;
24140  PyObject *__pyx_t_2 = NULL;
24141  PyObject *__pyx_t_3 = NULL;
24142  int __pyx_lineno = 0;
24143  const char *__pyx_filename = NULL;
24144  int __pyx_clineno = 0;
24145  __Pyx_RefNannySetupContext("updateExteriorNumericalDiffusiveFluxJacobian_free", 0);
24146 
24147  /* "cnumericalFlux.pyx":5076
24148  * np.ndarray penalty,
24149  * np.ndarray fluxJacobian):
24150  * if grad_v.ndim == 5: # <<<<<<<<<<<<<<
24151  * cupdateExteriorNumericalDiffusiveFluxJacobian_free(exteriorElementBoundaries.shape[0],
24152  * grad_v.shape[1],
24153  */
24154  switch (__pyx_v_grad_v->nd) {
24155  case 5:
24156 
24157  /* "cnumericalFlux.pyx":5077
24158  * np.ndarray fluxJacobian):
24159  * if grad_v.ndim == 5:
24160  * cupdateExteriorNumericalDiffusiveFluxJacobian_free(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
24161  * grad_v.shape[1],
24162  * grad_v.shape[2],
24163  */
24164  updateExteriorNumericalDiffusiveFluxJacobian_free((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_v->dimensions[1]), (__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_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->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));
24165 
24166  /* "cnumericalFlux.pyx":5076
24167  * np.ndarray penalty,
24168  * np.ndarray fluxJacobian):
24169  * if grad_v.ndim == 5: # <<<<<<<<<<<<<<
24170  * cupdateExteriorNumericalDiffusiveFluxJacobian_free(exteriorElementBoundaries.shape[0],
24171  * grad_v.shape[1],
24172  */
24173  break;
24174  case 4:
24175 
24176  /* "cnumericalFlux.pyx":5097
24177  * <double*> fluxJacobian.data)
24178  * elif grad_v.ndim == 4:
24179  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian_free(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
24180  * grad_v.shape[1],
24181  * grad_v.shape[2],
24182  */
24183  updateGlobalExteriorNumericalDiffusiveFluxJacobian_free((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_v->dimensions[1]), (__pyx_v_grad_v->dimensions[2]), (__pyx_v_grad_v->dimensions[3]), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->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));
24184 
24185  /* "cnumericalFlux.pyx":5096
24186  * <double*> penalty.data,
24187  * <double*> fluxJacobian.data)
24188  * elif grad_v.ndim == 4: # <<<<<<<<<<<<<<
24189  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian_free(exteriorElementBoundaries.shape[0],
24190  * grad_v.shape[1],
24191  */
24192  break;
24193  default:
24194 
24195  /* "cnumericalFlux.pyx":5116
24196  * <double*> fluxJacobian.data)
24197  * else:
24198  * exit(1) # <<<<<<<<<<<<<<
24199  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_free(int nExteriorElementBoundaries_global,
24200  * int nQuadraturePoints_elementBoundary,
24201  */
24202  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5116, __pyx_L1_error)
24203  __Pyx_GOTREF(__pyx_t_2);
24204  __pyx_t_3 = NULL;
24205  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
24206  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
24207  if (likely(__pyx_t_3)) {
24208  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24209  __Pyx_INCREF(__pyx_t_3);
24210  __Pyx_INCREF(function);
24211  __Pyx_DECREF_SET(__pyx_t_2, function);
24212  }
24213  }
24214  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_int_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_1);
24215  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
24216  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5116, __pyx_L1_error)
24217  __Pyx_GOTREF(__pyx_t_1);
24218  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24219  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24220  break;
24221  }
24222 
24223  /* "cnumericalFlux.pyx":5062
24224  * <double*> penalty.data,
24225  * <double*> fluxJacobian.data)
24226  * def updateExteriorNumericalDiffusiveFluxJacobian_free(np.ndarray l2g, # <<<<<<<<<<<<<<
24227  * np.ndarray exteriorElementBoundaries,
24228  * np.ndarray elementBoundaryElements,
24229  */
24230 
24231  /* function exit code */
24232  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
24233  goto __pyx_L0;
24234  __pyx_L1_error:;
24235  __Pyx_XDECREF(__pyx_t_1);
24236  __Pyx_XDECREF(__pyx_t_2);
24237  __Pyx_XDECREF(__pyx_t_3);
24238  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalDiffusiveFluxJacobian_free", __pyx_clineno, __pyx_lineno, __pyx_filename);
24239  __pyx_r = NULL;
24240  __pyx_L0:;
24241  __Pyx_XGIVEREF(__pyx_r);
24242  __Pyx_RefNannyFinishContext();
24243  return __pyx_r;
24244 }
24245 
24246 /* "cnumericalFlux.pyx":5117
24247  * else:
24248  * exit(1)
24249  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
24250  * int nQuadraturePoints_elementBoundary,
24251  * int nDOF_trial_element,
24252  */
24253 
24254 /* Python wrapper */
24255 static PyObject *__pyx_pw_14cnumericalFlux_137updateGlobalExteriorNumericalDiffusiveFluxJacobian_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
24256 static PyMethodDef __pyx_mdef_14cnumericalFlux_137updateGlobalExteriorNumericalDiffusiveFluxJacobian_free = {"updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_137updateGlobalExteriorNumericalDiffusiveFluxJacobian_free, METH_VARARGS|METH_KEYWORDS, 0};
24257 static PyObject *__pyx_pw_14cnumericalFlux_137updateGlobalExteriorNumericalDiffusiveFluxJacobian_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
24258  int __pyx_v_nExteriorElementBoundaries_global;
24259  int __pyx_v_nQuadraturePoints_elementBoundary;
24260  int __pyx_v_nDOF_trial_element;
24261  int __pyx_v_nSpace;
24262  PyArrayObject *__pyx_v_l2g = 0;
24263  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
24264  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
24265  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
24266  PyArrayObject *__pyx_v_isDOFBoundary = 0;
24267  PyArrayObject *__pyx_v_n = 0;
24268  PyArrayObject *__pyx_v_a = 0;
24269  PyArrayObject *__pyx_v_da = 0;
24270  PyArrayObject *__pyx_v_grad_phi = 0;
24271  PyArrayObject *__pyx_v_dphi = 0;
24272  PyArrayObject *__pyx_v_v = 0;
24273  PyArrayObject *__pyx_v_grad_v = 0;
24274  PyArrayObject *__pyx_v_penalty = 0;
24275  PyArrayObject *__pyx_v_fluxJacobian = 0;
24276  int __pyx_lineno = 0;
24277  const char *__pyx_filename = NULL;
24278  int __pyx_clineno = 0;
24279  PyObject *__pyx_r = 0;
24280  __Pyx_RefNannyDeclarations
24281  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free (wrapper)", 0);
24282  {
24283  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nDOF_trial_element,&__pyx_n_s_nSpace,&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__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,0};
24284  PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
24285  if (unlikely(__pyx_kwds)) {
24286  Py_ssize_t kw_args;
24287  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
24288  switch (pos_args) {
24289  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
24290  CYTHON_FALLTHROUGH;
24291  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
24292  CYTHON_FALLTHROUGH;
24293  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
24294  CYTHON_FALLTHROUGH;
24295  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
24296  CYTHON_FALLTHROUGH;
24297  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
24298  CYTHON_FALLTHROUGH;
24299  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
24300  CYTHON_FALLTHROUGH;
24301  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
24302  CYTHON_FALLTHROUGH;
24303  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
24304  CYTHON_FALLTHROUGH;
24305  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
24306  CYTHON_FALLTHROUGH;
24307  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
24308  CYTHON_FALLTHROUGH;
24309  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
24310  CYTHON_FALLTHROUGH;
24311  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
24312  CYTHON_FALLTHROUGH;
24313  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
24314  CYTHON_FALLTHROUGH;
24315  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
24316  CYTHON_FALLTHROUGH;
24317  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
24318  CYTHON_FALLTHROUGH;
24319  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
24320  CYTHON_FALLTHROUGH;
24321  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
24322  CYTHON_FALLTHROUGH;
24323  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
24324  CYTHON_FALLTHROUGH;
24325  case 0: break;
24326  default: goto __pyx_L5_argtuple_error;
24327  }
24328  kw_args = PyDict_Size(__pyx_kwds);
24329  switch (pos_args) {
24330  case 0:
24331  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
24332  else goto __pyx_L5_argtuple_error;
24333  CYTHON_FALLTHROUGH;
24334  case 1:
24335  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
24336  else {
24337  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 1); __PYX_ERR(0, 5117, __pyx_L3_error)
24338  }
24339  CYTHON_FALLTHROUGH;
24340  case 2:
24341  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nDOF_trial_element)) != 0)) kw_args--;
24342  else {
24343  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 2); __PYX_ERR(0, 5117, __pyx_L3_error)
24344  }
24345  CYTHON_FALLTHROUGH;
24346  case 3:
24347  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
24348  else {
24349  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 3); __PYX_ERR(0, 5117, __pyx_L3_error)
24350  }
24351  CYTHON_FALLTHROUGH;
24352  case 4:
24353  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
24354  else {
24355  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 4); __PYX_ERR(0, 5117, __pyx_L3_error)
24356  }
24357  CYTHON_FALLTHROUGH;
24358  case 5:
24359  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
24360  else {
24361  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 5); __PYX_ERR(0, 5117, __pyx_L3_error)
24362  }
24363  CYTHON_FALLTHROUGH;
24364  case 6:
24365  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
24366  else {
24367  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 6); __PYX_ERR(0, 5117, __pyx_L3_error)
24368  }
24369  CYTHON_FALLTHROUGH;
24370  case 7:
24371  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
24372  else {
24373  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 7); __PYX_ERR(0, 5117, __pyx_L3_error)
24374  }
24375  CYTHON_FALLTHROUGH;
24376  case 8:
24377  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
24378  else {
24379  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 8); __PYX_ERR(0, 5117, __pyx_L3_error)
24380  }
24381  CYTHON_FALLTHROUGH;
24382  case 9:
24383  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
24384  else {
24385  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 9); __PYX_ERR(0, 5117, __pyx_L3_error)
24386  }
24387  CYTHON_FALLTHROUGH;
24388  case 10:
24389  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
24390  else {
24391  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 10); __PYX_ERR(0, 5117, __pyx_L3_error)
24392  }
24393  CYTHON_FALLTHROUGH;
24394  case 11:
24395  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
24396  else {
24397  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 11); __PYX_ERR(0, 5117, __pyx_L3_error)
24398  }
24399  CYTHON_FALLTHROUGH;
24400  case 12:
24401  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
24402  else {
24403  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 12); __PYX_ERR(0, 5117, __pyx_L3_error)
24404  }
24405  CYTHON_FALLTHROUGH;
24406  case 13:
24407  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
24408  else {
24409  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 13); __PYX_ERR(0, 5117, __pyx_L3_error)
24410  }
24411  CYTHON_FALLTHROUGH;
24412  case 14:
24413  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
24414  else {
24415  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 14); __PYX_ERR(0, 5117, __pyx_L3_error)
24416  }
24417  CYTHON_FALLTHROUGH;
24418  case 15:
24419  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
24420  else {
24421  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 15); __PYX_ERR(0, 5117, __pyx_L3_error)
24422  }
24423  CYTHON_FALLTHROUGH;
24424  case 16:
24425  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
24426  else {
24427  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 16); __PYX_ERR(0, 5117, __pyx_L3_error)
24428  }
24429  CYTHON_FALLTHROUGH;
24430  case 17:
24431  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
24432  else {
24433  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, 17); __PYX_ERR(0, 5117, __pyx_L3_error)
24434  }
24435  }
24436  if (unlikely(kw_args > 0)) {
24437  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateGlobalExteriorNumericalDiffusiveFluxJacobian_free") < 0)) __PYX_ERR(0, 5117, __pyx_L3_error)
24438  }
24439  } else if (PyTuple_GET_SIZE(__pyx_args) != 18) {
24440  goto __pyx_L5_argtuple_error;
24441  } else {
24442  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
24443  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
24444  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
24445  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
24446  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
24447  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
24448  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
24449  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
24450  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
24451  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
24452  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
24453  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
24454  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
24455  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
24456  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
24457  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
24458  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
24459  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
24460  }
24461  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5117, __pyx_L3_error)
24462  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5118, __pyx_L3_error)
24463  __pyx_v_nDOF_trial_element = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nDOF_trial_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5119, __pyx_L3_error)
24464  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5120, __pyx_L3_error)
24465  __pyx_v_l2g = ((PyArrayObject *)values[4]);
24466  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[5]);
24467  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[6]);
24468  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[7]);
24469  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[8]);
24470  __pyx_v_n = ((PyArrayObject *)values[9]);
24471  __pyx_v_a = ((PyArrayObject *)values[10]);
24472  __pyx_v_da = ((PyArrayObject *)values[11]);
24473  __pyx_v_grad_phi = ((PyArrayObject *)values[12]);
24474  __pyx_v_dphi = ((PyArrayObject *)values[13]);
24475  __pyx_v_v = ((PyArrayObject *)values[14]);
24476  __pyx_v_grad_v = ((PyArrayObject *)values[15]);
24477  __pyx_v_penalty = ((PyArrayObject *)values[16]);
24478  __pyx_v_fluxJacobian = ((PyArrayObject *)values[17]);
24479  }
24480  goto __pyx_L4_argument_unpacking_done;
24481  __pyx_L5_argtuple_error:;
24482  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 1, 18, 18, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5117, __pyx_L3_error)
24483  __pyx_L3_error:;
24484  __Pyx_AddTraceback("cnumericalFlux.updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", __pyx_clineno, __pyx_lineno, __pyx_filename);
24485  __Pyx_RefNannyFinishContext();
24486  return NULL;
24487  __pyx_L4_argument_unpacking_done:;
24488  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 5121, __pyx_L1_error)
24489  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5122, __pyx_L1_error)
24490  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5123, __pyx_L1_error)
24491  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5124, __pyx_L1_error)
24492  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 5125, __pyx_L1_error)
24493  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5126, __pyx_L1_error)
24494  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 5127, __pyx_L1_error)
24495  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 5128, __pyx_L1_error)
24496  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 5129, __pyx_L1_error)
24497  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 5130, __pyx_L1_error)
24498  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 5131, __pyx_L1_error)
24499  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 5132, __pyx_L1_error)
24500  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 5133, __pyx_L1_error)
24501  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 5134, __pyx_L1_error)
24502  __pyx_r = __pyx_pf_14cnumericalFlux_136updateGlobalExteriorNumericalDiffusiveFluxJacobian_free(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __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);
24503 
24504  /* function exit code */
24505  goto __pyx_L0;
24506  __pyx_L1_error:;
24507  __pyx_r = NULL;
24508  __pyx_L0:;
24509  __Pyx_RefNannyFinishContext();
24510  return __pyx_r;
24511 }
24512 
24513 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) {
24514  PyObject *__pyx_r = NULL;
24515  __Pyx_RefNannyDeclarations
24516  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free", 0);
24517 
24518  /* "cnumericalFlux.pyx":5135
24519  * np.ndarray penalty,
24520  * np.ndarray fluxJacobian):
24521  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian_free( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
24522  * nQuadraturePoints_elementBoundary,
24523  * nDOF_trial_element,
24524  */
24525  updateGlobalExteriorNumericalDiffusiveFluxJacobian_free(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->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));
24526 
24527  /* "cnumericalFlux.pyx":5117
24528  * else:
24529  * exit(1)
24530  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
24531  * int nQuadraturePoints_elementBoundary,
24532  * int nDOF_trial_element,
24533  */
24534 
24535  /* function exit code */
24536  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
24537  __Pyx_XGIVEREF(__pyx_r);
24538  __Pyx_RefNannyFinishContext();
24539  return __pyx_r;
24540 }
24541 
24542 /* "cnumericalFlux.pyx":5153
24543  * <double*> penalty.data,
24544  * <double*> fluxJacobian.data)
24545  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
24546  * int nQuadraturePoints_elementBoundary,
24547  * int nDOF_trial_element,
24548  */
24549 
24550 /* Python wrapper */
24551 static PyObject *__pyx_pw_14cnumericalFlux_139updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
24552 static PyMethodDef __pyx_mdef_14cnumericalFlux_139updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd = {"updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_139updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd, METH_VARARGS|METH_KEYWORDS, 0};
24553 static PyObject *__pyx_pw_14cnumericalFlux_139updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
24554  int __pyx_v_nExteriorElementBoundaries_global;
24555  int __pyx_v_nQuadraturePoints_elementBoundary;
24556  int __pyx_v_nDOF_trial_element;
24557  int __pyx_v_nSpace;
24558  PyArrayObject *__pyx_v_rowptr = 0;
24559  PyArrayObject *__pyx_v_colind = 0;
24560  PyArrayObject *__pyx_v_l2g = 0;
24561  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
24562  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
24563  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
24564  PyArrayObject *__pyx_v_isDOFBoundary = 0;
24565  PyArrayObject *__pyx_v_n = 0;
24566  PyArrayObject *__pyx_v_a = 0;
24567  PyArrayObject *__pyx_v_da = 0;
24568  PyArrayObject *__pyx_v_grad_phi = 0;
24569  PyArrayObject *__pyx_v_dphi = 0;
24570  PyArrayObject *__pyx_v_v = 0;
24571  PyArrayObject *__pyx_v_grad_v = 0;
24572  PyArrayObject *__pyx_v_penalty = 0;
24573  PyArrayObject *__pyx_v_fluxJacobian = 0;
24574  int __pyx_lineno = 0;
24575  const char *__pyx_filename = NULL;
24576  int __pyx_clineno = 0;
24577  PyObject *__pyx_r = 0;
24578  __Pyx_RefNannyDeclarations
24579  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd (wrapper)", 0);
24580  {
24581  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nDOF_trial_element,&__pyx_n_s_nSpace,&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__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,0};
24582  PyObject* values[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
24583  if (unlikely(__pyx_kwds)) {
24584  Py_ssize_t kw_args;
24585  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
24586  switch (pos_args) {
24587  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
24588  CYTHON_FALLTHROUGH;
24589  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
24590  CYTHON_FALLTHROUGH;
24591  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
24592  CYTHON_FALLTHROUGH;
24593  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
24594  CYTHON_FALLTHROUGH;
24595  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
24596  CYTHON_FALLTHROUGH;
24597  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
24598  CYTHON_FALLTHROUGH;
24599  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
24600  CYTHON_FALLTHROUGH;
24601  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
24602  CYTHON_FALLTHROUGH;
24603  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
24604  CYTHON_FALLTHROUGH;
24605  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
24606  CYTHON_FALLTHROUGH;
24607  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
24608  CYTHON_FALLTHROUGH;
24609  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
24610  CYTHON_FALLTHROUGH;
24611  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
24612  CYTHON_FALLTHROUGH;
24613  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
24614  CYTHON_FALLTHROUGH;
24615  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
24616  CYTHON_FALLTHROUGH;
24617  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
24618  CYTHON_FALLTHROUGH;
24619  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
24620  CYTHON_FALLTHROUGH;
24621  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
24622  CYTHON_FALLTHROUGH;
24623  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
24624  CYTHON_FALLTHROUGH;
24625  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
24626  CYTHON_FALLTHROUGH;
24627  case 0: break;
24628  default: goto __pyx_L5_argtuple_error;
24629  }
24630  kw_args = PyDict_Size(__pyx_kwds);
24631  switch (pos_args) {
24632  case 0:
24633  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
24634  else goto __pyx_L5_argtuple_error;
24635  CYTHON_FALLTHROUGH;
24636  case 1:
24637  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
24638  else {
24639  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 1); __PYX_ERR(0, 5153, __pyx_L3_error)
24640  }
24641  CYTHON_FALLTHROUGH;
24642  case 2:
24643  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nDOF_trial_element)) != 0)) kw_args--;
24644  else {
24645  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 2); __PYX_ERR(0, 5153, __pyx_L3_error)
24646  }
24647  CYTHON_FALLTHROUGH;
24648  case 3:
24649  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
24650  else {
24651  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 3); __PYX_ERR(0, 5153, __pyx_L3_error)
24652  }
24653  CYTHON_FALLTHROUGH;
24654  case 4:
24655  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
24656  else {
24657  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 4); __PYX_ERR(0, 5153, __pyx_L3_error)
24658  }
24659  CYTHON_FALLTHROUGH;
24660  case 5:
24661  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
24662  else {
24663  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 5); __PYX_ERR(0, 5153, __pyx_L3_error)
24664  }
24665  CYTHON_FALLTHROUGH;
24666  case 6:
24667  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
24668  else {
24669  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 6); __PYX_ERR(0, 5153, __pyx_L3_error)
24670  }
24671  CYTHON_FALLTHROUGH;
24672  case 7:
24673  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
24674  else {
24675  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 7); __PYX_ERR(0, 5153, __pyx_L3_error)
24676  }
24677  CYTHON_FALLTHROUGH;
24678  case 8:
24679  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
24680  else {
24681  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 8); __PYX_ERR(0, 5153, __pyx_L3_error)
24682  }
24683  CYTHON_FALLTHROUGH;
24684  case 9:
24685  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
24686  else {
24687  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 9); __PYX_ERR(0, 5153, __pyx_L3_error)
24688  }
24689  CYTHON_FALLTHROUGH;
24690  case 10:
24691  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
24692  else {
24693  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 10); __PYX_ERR(0, 5153, __pyx_L3_error)
24694  }
24695  CYTHON_FALLTHROUGH;
24696  case 11:
24697  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
24698  else {
24699  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 11); __PYX_ERR(0, 5153, __pyx_L3_error)
24700  }
24701  CYTHON_FALLTHROUGH;
24702  case 12:
24703  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
24704  else {
24705  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 12); __PYX_ERR(0, 5153, __pyx_L3_error)
24706  }
24707  CYTHON_FALLTHROUGH;
24708  case 13:
24709  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
24710  else {
24711  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 13); __PYX_ERR(0, 5153, __pyx_L3_error)
24712  }
24713  CYTHON_FALLTHROUGH;
24714  case 14:
24715  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
24716  else {
24717  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 14); __PYX_ERR(0, 5153, __pyx_L3_error)
24718  }
24719  CYTHON_FALLTHROUGH;
24720  case 15:
24721  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
24722  else {
24723  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 15); __PYX_ERR(0, 5153, __pyx_L3_error)
24724  }
24725  CYTHON_FALLTHROUGH;
24726  case 16:
24727  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
24728  else {
24729  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 16); __PYX_ERR(0, 5153, __pyx_L3_error)
24730  }
24731  CYTHON_FALLTHROUGH;
24732  case 17:
24733  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
24734  else {
24735  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 17); __PYX_ERR(0, 5153, __pyx_L3_error)
24736  }
24737  CYTHON_FALLTHROUGH;
24738  case 18:
24739  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
24740  else {
24741  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 18); __PYX_ERR(0, 5153, __pyx_L3_error)
24742  }
24743  CYTHON_FALLTHROUGH;
24744  case 19:
24745  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
24746  else {
24747  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, 19); __PYX_ERR(0, 5153, __pyx_L3_error)
24748  }
24749  }
24750  if (unlikely(kw_args > 0)) {
24751  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd") < 0)) __PYX_ERR(0, 5153, __pyx_L3_error)
24752  }
24753  } else if (PyTuple_GET_SIZE(__pyx_args) != 20) {
24754  goto __pyx_L5_argtuple_error;
24755  } else {
24756  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
24757  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
24758  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
24759  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
24760  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
24761  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
24762  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
24763  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
24764  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
24765  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
24766  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
24767  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
24768  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
24769  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
24770  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
24771  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
24772  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
24773  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
24774  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
24775  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
24776  }
24777  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5153, __pyx_L3_error)
24778  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5154, __pyx_L3_error)
24779  __pyx_v_nDOF_trial_element = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nDOF_trial_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5155, __pyx_L3_error)
24780  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5156, __pyx_L3_error)
24781  __pyx_v_rowptr = ((PyArrayObject *)values[4]);
24782  __pyx_v_colind = ((PyArrayObject *)values[5]);
24783  __pyx_v_l2g = ((PyArrayObject *)values[6]);
24784  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[7]);
24785  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[8]);
24786  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[9]);
24787  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[10]);
24788  __pyx_v_n = ((PyArrayObject *)values[11]);
24789  __pyx_v_a = ((PyArrayObject *)values[12]);
24790  __pyx_v_da = ((PyArrayObject *)values[13]);
24791  __pyx_v_grad_phi = ((PyArrayObject *)values[14]);
24792  __pyx_v_dphi = ((PyArrayObject *)values[15]);
24793  __pyx_v_v = ((PyArrayObject *)values[16]);
24794  __pyx_v_grad_v = ((PyArrayObject *)values[17]);
24795  __pyx_v_penalty = ((PyArrayObject *)values[18]);
24796  __pyx_v_fluxJacobian = ((PyArrayObject *)values[19]);
24797  }
24798  goto __pyx_L4_argument_unpacking_done;
24799  __pyx_L5_argtuple_error:;
24800  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 1, 20, 20, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5153, __pyx_L3_error)
24801  __pyx_L3_error:;
24802  __Pyx_AddTraceback("cnumericalFlux.updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
24803  __Pyx_RefNannyFinishContext();
24804  return NULL;
24805  __pyx_L4_argument_unpacking_done:;
24806  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 5157, __pyx_L1_error)
24807  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 5158, __pyx_L1_error)
24808  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 5159, __pyx_L1_error)
24809  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5160, __pyx_L1_error)
24810  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5161, __pyx_L1_error)
24811  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5162, __pyx_L1_error)
24812  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 5163, __pyx_L1_error)
24813  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5164, __pyx_L1_error)
24814  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 5165, __pyx_L1_error)
24815  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 5166, __pyx_L1_error)
24816  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 5167, __pyx_L1_error)
24817  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 5168, __pyx_L1_error)
24818  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 5169, __pyx_L1_error)
24819  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 5170, __pyx_L1_error)
24820  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 5171, __pyx_L1_error)
24821  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 5172, __pyx_L1_error)
24822  __pyx_r = __pyx_pf_14cnumericalFlux_138updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __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);
24823 
24824  /* function exit code */
24825  goto __pyx_L0;
24826  __pyx_L1_error:;
24827  __pyx_r = NULL;
24828  __pyx_L0:;
24829  __Pyx_RefNannyFinishContext();
24830  return __pyx_r;
24831 }
24832 
24833 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) {
24834  PyObject *__pyx_r = NULL;
24835  __Pyx_RefNannyDeclarations
24836  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd", 0);
24837 
24838  /* "cnumericalFlux.pyx":5173
24839  * np.ndarray penalty,
24840  * np.ndarray fluxJacobian):
24841  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
24842  * nQuadraturePoints_elementBoundary,
24843  * nDOF_trial_element,
24844  */
24845  updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->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));
24846 
24847  /* "cnumericalFlux.pyx":5153
24848  * <double*> penalty.data,
24849  * <double*> fluxJacobian.data)
24850  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
24851  * int nQuadraturePoints_elementBoundary,
24852  * int nDOF_trial_element,
24853  */
24854 
24855  /* function exit code */
24856  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
24857  __Pyx_XGIVEREF(__pyx_r);
24858  __Pyx_RefNannyFinishContext();
24859  return __pyx_r;
24860 }
24861 
24862 /* "cnumericalFlux.pyx":5193
24863  * <double*> penalty.data,
24864  * <double*> fluxJacobian.data)
24865  * def calculateGlobalExteriorNumericalAdvectiveFlux_NoBC(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
24866  * int nQuadraturePoints_elementBoundary,
24867  * int nSpace,
24868  */
24869 
24870 /* Python wrapper */
24871 static PyObject *__pyx_pw_14cnumericalFlux_141calculateGlobalExteriorNumericalAdvectiveFlux_NoBC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
24872 static PyMethodDef __pyx_mdef_14cnumericalFlux_141calculateGlobalExteriorNumericalAdvectiveFlux_NoBC = {"calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_141calculateGlobalExteriorNumericalAdvectiveFlux_NoBC, METH_VARARGS|METH_KEYWORDS, 0};
24873 static PyObject *__pyx_pw_14cnumericalFlux_141calculateGlobalExteriorNumericalAdvectiveFlux_NoBC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
24874  int __pyx_v_nExteriorElementBoundaries_global;
24875  int __pyx_v_nQuadraturePoints_elementBoundary;
24876  int __pyx_v_nSpace;
24877  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
24878  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
24879  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
24880  PyArrayObject *__pyx_v_inflowFlag = 0;
24881  PyArrayObject *__pyx_v_n = 0;
24882  PyArrayObject *__pyx_v_f = 0;
24883  PyArrayObject *__pyx_v_df = 0;
24884  PyArrayObject *__pyx_v_flux = 0;
24885  PyArrayObject *__pyx_v_dflux_left = 0;
24886  int __pyx_lineno = 0;
24887  const char *__pyx_filename = NULL;
24888  int __pyx_clineno = 0;
24889  PyObject *__pyx_r = 0;
24890  __Pyx_RefNannyDeclarations
24891  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFlux_NoBC (wrapper)", 0);
24892  {
24893  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__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};
24894  PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
24895  if (unlikely(__pyx_kwds)) {
24896  Py_ssize_t kw_args;
24897  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
24898  switch (pos_args) {
24899  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
24900  CYTHON_FALLTHROUGH;
24901  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
24902  CYTHON_FALLTHROUGH;
24903  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
24904  CYTHON_FALLTHROUGH;
24905  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
24906  CYTHON_FALLTHROUGH;
24907  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
24908  CYTHON_FALLTHROUGH;
24909  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
24910  CYTHON_FALLTHROUGH;
24911  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
24912  CYTHON_FALLTHROUGH;
24913  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
24914  CYTHON_FALLTHROUGH;
24915  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
24916  CYTHON_FALLTHROUGH;
24917  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
24918  CYTHON_FALLTHROUGH;
24919  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
24920  CYTHON_FALLTHROUGH;
24921  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
24922  CYTHON_FALLTHROUGH;
24923  case 0: break;
24924  default: goto __pyx_L5_argtuple_error;
24925  }
24926  kw_args = PyDict_Size(__pyx_kwds);
24927  switch (pos_args) {
24928  case 0:
24929  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
24930  else goto __pyx_L5_argtuple_error;
24931  CYTHON_FALLTHROUGH;
24932  case 1:
24933  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
24934  else {
24935  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", 1, 12, 12, 1); __PYX_ERR(0, 5193, __pyx_L3_error)
24936  }
24937  CYTHON_FALLTHROUGH;
24938  case 2:
24939  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
24940  else {
24941  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", 1, 12, 12, 2); __PYX_ERR(0, 5193, __pyx_L3_error)
24942  }
24943  CYTHON_FALLTHROUGH;
24944  case 3:
24945  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
24946  else {
24947  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", 1, 12, 12, 3); __PYX_ERR(0, 5193, __pyx_L3_error)
24948  }
24949  CYTHON_FALLTHROUGH;
24950  case 4:
24951  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
24952  else {
24953  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", 1, 12, 12, 4); __PYX_ERR(0, 5193, __pyx_L3_error)
24954  }
24955  CYTHON_FALLTHROUGH;
24956  case 5:
24957  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
24958  else {
24959  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", 1, 12, 12, 5); __PYX_ERR(0, 5193, __pyx_L3_error)
24960  }
24961  CYTHON_FALLTHROUGH;
24962  case 6:
24963  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
24964  else {
24965  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", 1, 12, 12, 6); __PYX_ERR(0, 5193, __pyx_L3_error)
24966  }
24967  CYTHON_FALLTHROUGH;
24968  case 7:
24969  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
24970  else {
24971  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", 1, 12, 12, 7); __PYX_ERR(0, 5193, __pyx_L3_error)
24972  }
24973  CYTHON_FALLTHROUGH;
24974  case 8:
24975  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
24976  else {
24977  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", 1, 12, 12, 8); __PYX_ERR(0, 5193, __pyx_L3_error)
24978  }
24979  CYTHON_FALLTHROUGH;
24980  case 9:
24981  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
24982  else {
24983  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", 1, 12, 12, 9); __PYX_ERR(0, 5193, __pyx_L3_error)
24984  }
24985  CYTHON_FALLTHROUGH;
24986  case 10:
24987  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
24988  else {
24989  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", 1, 12, 12, 10); __PYX_ERR(0, 5193, __pyx_L3_error)
24990  }
24991  CYTHON_FALLTHROUGH;
24992  case 11:
24993  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
24994  else {
24995  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", 1, 12, 12, 11); __PYX_ERR(0, 5193, __pyx_L3_error)
24996  }
24997  }
24998  if (unlikely(kw_args > 0)) {
24999  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalAdvectiveFlux_NoBC") < 0)) __PYX_ERR(0, 5193, __pyx_L3_error)
25000  }
25001  } else if (PyTuple_GET_SIZE(__pyx_args) != 12) {
25002  goto __pyx_L5_argtuple_error;
25003  } else {
25004  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25005  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25006  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
25007  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
25008  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
25009  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
25010  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
25011  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
25012  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
25013  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
25014  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
25015  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
25016  }
25017  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5193, __pyx_L3_error)
25018  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5194, __pyx_L3_error)
25019  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5195, __pyx_L3_error)
25020  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
25021  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
25022  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
25023  __pyx_v_inflowFlag = ((PyArrayObject *)values[6]);
25024  __pyx_v_n = ((PyArrayObject *)values[7]);
25025  __pyx_v_f = ((PyArrayObject *)values[8]);
25026  __pyx_v_df = ((PyArrayObject *)values[9]);
25027  __pyx_v_flux = ((PyArrayObject *)values[10]);
25028  __pyx_v_dflux_left = ((PyArrayObject *)values[11]);
25029  }
25030  goto __pyx_L4_argument_unpacking_done;
25031  __pyx_L5_argtuple_error:;
25032  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", 1, 12, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5193, __pyx_L3_error)
25033  __pyx_L3_error:;
25034  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", __pyx_clineno, __pyx_lineno, __pyx_filename);
25035  __Pyx_RefNannyFinishContext();
25036  return NULL;
25037  __pyx_L4_argument_unpacking_done:;
25038  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5196, __pyx_L1_error)
25039  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5197, __pyx_L1_error)
25040  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5198, __pyx_L1_error)
25041  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 5199, __pyx_L1_error)
25042  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5200, __pyx_L1_error)
25043  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 5201, __pyx_L1_error)
25044  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 5202, __pyx_L1_error)
25045  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 5203, __pyx_L1_error)
25046  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 5204, __pyx_L1_error)
25047  __pyx_r = __pyx_pf_14cnumericalFlux_140calculateGlobalExteriorNumericalAdvectiveFlux_NoBC(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __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);
25048 
25049  /* function exit code */
25050  goto __pyx_L0;
25051  __pyx_L1_error:;
25052  __pyx_r = NULL;
25053  __pyx_L0:;
25054  __Pyx_RefNannyFinishContext();
25055  return __pyx_r;
25056 }
25057 
25058 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) {
25059  PyObject *__pyx_r = NULL;
25060  __Pyx_RefNannyDeclarations
25061  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFlux_NoBC", 0);
25062 
25063  /* "cnumericalFlux.pyx":5205
25064  * np.ndarray flux,
25065  * np.ndarray dflux_left):
25066  * ccalculateGlobalExteriorNumericalAdvectiveFlux_NoBC( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
25067  * nQuadraturePoints_elementBoundary,
25068  * nSpace,
25069  */
25070  calculateGlobalExteriorNumericalAdvectiveFlux_NoBC(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, ((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));
25071 
25072  /* "cnumericalFlux.pyx":5193
25073  * <double*> penalty.data,
25074  * <double*> fluxJacobian.data)
25075  * def calculateGlobalExteriorNumericalAdvectiveFlux_NoBC(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
25076  * int nQuadraturePoints_elementBoundary,
25077  * int nSpace,
25078  */
25079 
25080  /* function exit code */
25081  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
25082  __Pyx_XGIVEREF(__pyx_r);
25083  __Pyx_RefNannyFinishContext();
25084  return __pyx_r;
25085 }
25086 
25087 /* "cnumericalFlux.pyx":5217
25088  * <double*> flux.data,
25089  * <double*> dflux_left.data)
25090  * def calculateGlobalExteriorNumericalAdvectiveFlux(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
25091  * int nQuadraturePoints_elementBoundary,
25092  * int nSpace,
25093  */
25094 
25095 /* Python wrapper */
25096 static PyObject *__pyx_pw_14cnumericalFlux_143calculateGlobalExteriorNumericalAdvectiveFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
25097 static PyMethodDef __pyx_mdef_14cnumericalFlux_143calculateGlobalExteriorNumericalAdvectiveFlux = {"calculateGlobalExteriorNumericalAdvectiveFlux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_143calculateGlobalExteriorNumericalAdvectiveFlux, METH_VARARGS|METH_KEYWORDS, 0};
25098 static PyObject *__pyx_pw_14cnumericalFlux_143calculateGlobalExteriorNumericalAdvectiveFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
25099  int __pyx_v_nExteriorElementBoundaries_global;
25100  int __pyx_v_nQuadraturePoints_elementBoundary;
25101  int __pyx_v_nSpace;
25102  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
25103  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
25104  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
25105  PyArrayObject *__pyx_v_isDOFBoundary = 0;
25106  PyArrayObject *__pyx_v_inflowFlag = 0;
25107  PyArrayObject *__pyx_v_n = 0;
25108  PyArrayObject *__pyx_v_bc_u = 0;
25109  PyArrayObject *__pyx_v_bc_f = 0;
25110  PyArrayObject *__pyx_v_bc_df = 0;
25111  PyArrayObject *__pyx_v_u = 0;
25112  PyArrayObject *__pyx_v_f = 0;
25113  PyArrayObject *__pyx_v_df = 0;
25114  PyArrayObject *__pyx_v_flux = 0;
25115  PyArrayObject *__pyx_v_dflux = 0;
25116  int __pyx_lineno = 0;
25117  const char *__pyx_filename = NULL;
25118  int __pyx_clineno = 0;
25119  PyObject *__pyx_r = 0;
25120  __Pyx_RefNannyDeclarations
25121  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFlux (wrapper)", 0);
25122  {
25123  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__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};
25124  PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
25125  if (unlikely(__pyx_kwds)) {
25126  Py_ssize_t kw_args;
25127  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
25128  switch (pos_args) {
25129  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
25130  CYTHON_FALLTHROUGH;
25131  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
25132  CYTHON_FALLTHROUGH;
25133  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
25134  CYTHON_FALLTHROUGH;
25135  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
25136  CYTHON_FALLTHROUGH;
25137  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
25138  CYTHON_FALLTHROUGH;
25139  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
25140  CYTHON_FALLTHROUGH;
25141  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
25142  CYTHON_FALLTHROUGH;
25143  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
25144  CYTHON_FALLTHROUGH;
25145  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
25146  CYTHON_FALLTHROUGH;
25147  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
25148  CYTHON_FALLTHROUGH;
25149  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
25150  CYTHON_FALLTHROUGH;
25151  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
25152  CYTHON_FALLTHROUGH;
25153  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
25154  CYTHON_FALLTHROUGH;
25155  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
25156  CYTHON_FALLTHROUGH;
25157  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
25158  CYTHON_FALLTHROUGH;
25159  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25160  CYTHON_FALLTHROUGH;
25161  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25162  CYTHON_FALLTHROUGH;
25163  case 0: break;
25164  default: goto __pyx_L5_argtuple_error;
25165  }
25166  kw_args = PyDict_Size(__pyx_kwds);
25167  switch (pos_args) {
25168  case 0:
25169  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
25170  else goto __pyx_L5_argtuple_error;
25171  CYTHON_FALLTHROUGH;
25172  case 1:
25173  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
25174  else {
25175  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 1); __PYX_ERR(0, 5217, __pyx_L3_error)
25176  }
25177  CYTHON_FALLTHROUGH;
25178  case 2:
25179  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
25180  else {
25181  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 2); __PYX_ERR(0, 5217, __pyx_L3_error)
25182  }
25183  CYTHON_FALLTHROUGH;
25184  case 3:
25185  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
25186  else {
25187  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 3); __PYX_ERR(0, 5217, __pyx_L3_error)
25188  }
25189  CYTHON_FALLTHROUGH;
25190  case 4:
25191  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
25192  else {
25193  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 4); __PYX_ERR(0, 5217, __pyx_L3_error)
25194  }
25195  CYTHON_FALLTHROUGH;
25196  case 5:
25197  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
25198  else {
25199  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 5); __PYX_ERR(0, 5217, __pyx_L3_error)
25200  }
25201  CYTHON_FALLTHROUGH;
25202  case 6:
25203  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
25204  else {
25205  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 6); __PYX_ERR(0, 5217, __pyx_L3_error)
25206  }
25207  CYTHON_FALLTHROUGH;
25208  case 7:
25209  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
25210  else {
25211  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 7); __PYX_ERR(0, 5217, __pyx_L3_error)
25212  }
25213  CYTHON_FALLTHROUGH;
25214  case 8:
25215  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
25216  else {
25217  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 8); __PYX_ERR(0, 5217, __pyx_L3_error)
25218  }
25219  CYTHON_FALLTHROUGH;
25220  case 9:
25221  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
25222  else {
25223  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 9); __PYX_ERR(0, 5217, __pyx_L3_error)
25224  }
25225  CYTHON_FALLTHROUGH;
25226  case 10:
25227  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f)) != 0)) kw_args--;
25228  else {
25229  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 10); __PYX_ERR(0, 5217, __pyx_L3_error)
25230  }
25231  CYTHON_FALLTHROUGH;
25232  case 11:
25233  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_df)) != 0)) kw_args--;
25234  else {
25235  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 11); __PYX_ERR(0, 5217, __pyx_L3_error)
25236  }
25237  CYTHON_FALLTHROUGH;
25238  case 12:
25239  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
25240  else {
25241  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 12); __PYX_ERR(0, 5217, __pyx_L3_error)
25242  }
25243  CYTHON_FALLTHROUGH;
25244  case 13:
25245  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
25246  else {
25247  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 13); __PYX_ERR(0, 5217, __pyx_L3_error)
25248  }
25249  CYTHON_FALLTHROUGH;
25250  case 14:
25251  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
25252  else {
25253  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 14); __PYX_ERR(0, 5217, __pyx_L3_error)
25254  }
25255  CYTHON_FALLTHROUGH;
25256  case 15:
25257  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
25258  else {
25259  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 15); __PYX_ERR(0, 5217, __pyx_L3_error)
25260  }
25261  CYTHON_FALLTHROUGH;
25262  case 16:
25263  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux)) != 0)) kw_args--;
25264  else {
25265  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, 16); __PYX_ERR(0, 5217, __pyx_L3_error)
25266  }
25267  }
25268  if (unlikely(kw_args > 0)) {
25269  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalAdvectiveFlux") < 0)) __PYX_ERR(0, 5217, __pyx_L3_error)
25270  }
25271  } else if (PyTuple_GET_SIZE(__pyx_args) != 17) {
25272  goto __pyx_L5_argtuple_error;
25273  } else {
25274  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25275  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25276  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
25277  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
25278  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
25279  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
25280  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
25281  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
25282  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
25283  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
25284  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
25285  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
25286  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
25287  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
25288  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
25289  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
25290  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
25291  }
25292  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5217, __pyx_L3_error)
25293  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5218, __pyx_L3_error)
25294  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5219, __pyx_L3_error)
25295  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
25296  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
25297  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
25298  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[6]);
25299  __pyx_v_inflowFlag = ((PyArrayObject *)values[7]);
25300  __pyx_v_n = ((PyArrayObject *)values[8]);
25301  __pyx_v_bc_u = ((PyArrayObject *)values[9]);
25302  __pyx_v_bc_f = ((PyArrayObject *)values[10]);
25303  __pyx_v_bc_df = ((PyArrayObject *)values[11]);
25304  __pyx_v_u = ((PyArrayObject *)values[12]);
25305  __pyx_v_f = ((PyArrayObject *)values[13]);
25306  __pyx_v_df = ((PyArrayObject *)values[14]);
25307  __pyx_v_flux = ((PyArrayObject *)values[15]);
25308  __pyx_v_dflux = ((PyArrayObject *)values[16]);
25309  }
25310  goto __pyx_L4_argument_unpacking_done;
25311  __pyx_L5_argtuple_error:;
25312  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux", 1, 17, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5217, __pyx_L3_error)
25313  __pyx_L3_error:;
25314  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalAdvectiveFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
25315  __Pyx_RefNannyFinishContext();
25316  return NULL;
25317  __pyx_L4_argument_unpacking_done:;
25318  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5220, __pyx_L1_error)
25319  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5221, __pyx_L1_error)
25320  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5222, __pyx_L1_error)
25321  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 5223, __pyx_L1_error)
25322  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 5224, __pyx_L1_error)
25323  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5225, __pyx_L1_error)
25324  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 5226, __pyx_L1_error)
25325  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f), __pyx_ptype_5numpy_ndarray, 1, "bc_f", 0))) __PYX_ERR(0, 5227, __pyx_L1_error)
25326  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_df), __pyx_ptype_5numpy_ndarray, 1, "bc_df", 0))) __PYX_ERR(0, 5228, __pyx_L1_error)
25327  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 5229, __pyx_L1_error)
25328  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 5230, __pyx_L1_error)
25329  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 5231, __pyx_L1_error)
25330  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 5232, __pyx_L1_error)
25331  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux), __pyx_ptype_5numpy_ndarray, 1, "dflux", 0))) __PYX_ERR(0, 5233, __pyx_L1_error)
25332  __pyx_r = __pyx_pf_14cnumericalFlux_142calculateGlobalExteriorNumericalAdvectiveFlux(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __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);
25333 
25334  /* function exit code */
25335  goto __pyx_L0;
25336  __pyx_L1_error:;
25337  __pyx_r = NULL;
25338  __pyx_L0:;
25339  __Pyx_RefNannyFinishContext();
25340  return __pyx_r;
25341 }
25342 
25343 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) {
25344  PyObject *__pyx_r = NULL;
25345  __Pyx_RefNannyDeclarations
25346  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFlux", 0);
25347 
25348  /* "cnumericalFlux.pyx":5234
25349  * np.ndarray flux,
25350  * np.ndarray dflux):
25351  * ccalculateGlobalExteriorNumericalAdvectiveFlux( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
25352  * nQuadraturePoints_elementBoundary,
25353  * nSpace,
25354  */
25355  calculateGlobalExteriorNumericalAdvectiveFlux(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, ((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));
25356 
25357  /* "cnumericalFlux.pyx":5217
25358  * <double*> flux.data,
25359  * <double*> dflux_left.data)
25360  * def calculateGlobalExteriorNumericalAdvectiveFlux(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
25361  * int nQuadraturePoints_elementBoundary,
25362  * int nSpace,
25363  */
25364 
25365  /* function exit code */
25366  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
25367  __Pyx_XGIVEREF(__pyx_r);
25368  __Pyx_RefNannyFinishContext();
25369  return __pyx_r;
25370 }
25371 
25372 /* "cnumericalFlux.pyx":5251
25373  * <double*> flux.data,
25374  * <double*> dflux.data)
25375  * def calculateExteriorNumericalAdvectiveFlux_free(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
25376  * np.ndarray elementBoundaryElements,
25377  * np.ndarray elementBoundaryLocalElementBoundaries,
25378  */
25379 
25380 /* Python wrapper */
25381 static PyObject *__pyx_pw_14cnumericalFlux_145calculateExteriorNumericalAdvectiveFlux_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
25382 static PyMethodDef __pyx_mdef_14cnumericalFlux_145calculateExteriorNumericalAdvectiveFlux_free = {"calculateExteriorNumericalAdvectiveFlux_free", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_145calculateExteriorNumericalAdvectiveFlux_free, METH_VARARGS|METH_KEYWORDS, 0};
25383 static PyObject *__pyx_pw_14cnumericalFlux_145calculateExteriorNumericalAdvectiveFlux_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
25384  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
25385  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
25386  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
25387  PyArrayObject *__pyx_v_isDOFBoundary = 0;
25388  PyArrayObject *__pyx_v_inflowFlag = 0;
25389  PyArrayObject *__pyx_v_n = 0;
25390  PyArrayObject *__pyx_v_bc_u = 0;
25391  PyArrayObject *__pyx_v_bc_f = 0;
25392  PyArrayObject *__pyx_v_bc_df = 0;
25393  PyArrayObject *__pyx_v_u = 0;
25394  PyArrayObject *__pyx_v_f = 0;
25395  PyArrayObject *__pyx_v_df = 0;
25396  PyArrayObject *__pyx_v_flux = 0;
25397  PyArrayObject *__pyx_v_dflux = 0;
25398  int __pyx_lineno = 0;
25399  const char *__pyx_filename = NULL;
25400  int __pyx_clineno = 0;
25401  PyObject *__pyx_r = 0;
25402  __Pyx_RefNannyDeclarations
25403  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFlux_free (wrapper)", 0);
25404  {
25405  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};
25406  PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
25407  if (unlikely(__pyx_kwds)) {
25408  Py_ssize_t kw_args;
25409  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
25410  switch (pos_args) {
25411  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
25412  CYTHON_FALLTHROUGH;
25413  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
25414  CYTHON_FALLTHROUGH;
25415  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
25416  CYTHON_FALLTHROUGH;
25417  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
25418  CYTHON_FALLTHROUGH;
25419  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
25420  CYTHON_FALLTHROUGH;
25421  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
25422  CYTHON_FALLTHROUGH;
25423  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
25424  CYTHON_FALLTHROUGH;
25425  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
25426  CYTHON_FALLTHROUGH;
25427  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
25428  CYTHON_FALLTHROUGH;
25429  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
25430  CYTHON_FALLTHROUGH;
25431  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
25432  CYTHON_FALLTHROUGH;
25433  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
25434  CYTHON_FALLTHROUGH;
25435  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25436  CYTHON_FALLTHROUGH;
25437  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25438  CYTHON_FALLTHROUGH;
25439  case 0: break;
25440  default: goto __pyx_L5_argtuple_error;
25441  }
25442  kw_args = PyDict_Size(__pyx_kwds);
25443  switch (pos_args) {
25444  case 0:
25445  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
25446  else goto __pyx_L5_argtuple_error;
25447  CYTHON_FALLTHROUGH;
25448  case 1:
25449  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
25450  else {
25451  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_free", 1, 14, 14, 1); __PYX_ERR(0, 5251, __pyx_L3_error)
25452  }
25453  CYTHON_FALLTHROUGH;
25454  case 2:
25455  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
25456  else {
25457  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_free", 1, 14, 14, 2); __PYX_ERR(0, 5251, __pyx_L3_error)
25458  }
25459  CYTHON_FALLTHROUGH;
25460  case 3:
25461  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
25462  else {
25463  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_free", 1, 14, 14, 3); __PYX_ERR(0, 5251, __pyx_L3_error)
25464  }
25465  CYTHON_FALLTHROUGH;
25466  case 4:
25467  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
25468  else {
25469  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_free", 1, 14, 14, 4); __PYX_ERR(0, 5251, __pyx_L3_error)
25470  }
25471  CYTHON_FALLTHROUGH;
25472  case 5:
25473  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
25474  else {
25475  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_free", 1, 14, 14, 5); __PYX_ERR(0, 5251, __pyx_L3_error)
25476  }
25477  CYTHON_FALLTHROUGH;
25478  case 6:
25479  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
25480  else {
25481  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_free", 1, 14, 14, 6); __PYX_ERR(0, 5251, __pyx_L3_error)
25482  }
25483  CYTHON_FALLTHROUGH;
25484  case 7:
25485  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f)) != 0)) kw_args--;
25486  else {
25487  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_free", 1, 14, 14, 7); __PYX_ERR(0, 5251, __pyx_L3_error)
25488  }
25489  CYTHON_FALLTHROUGH;
25490  case 8:
25491  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_df)) != 0)) kw_args--;
25492  else {
25493  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_free", 1, 14, 14, 8); __PYX_ERR(0, 5251, __pyx_L3_error)
25494  }
25495  CYTHON_FALLTHROUGH;
25496  case 9:
25497  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
25498  else {
25499  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_free", 1, 14, 14, 9); __PYX_ERR(0, 5251, __pyx_L3_error)
25500  }
25501  CYTHON_FALLTHROUGH;
25502  case 10:
25503  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
25504  else {
25505  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_free", 1, 14, 14, 10); __PYX_ERR(0, 5251, __pyx_L3_error)
25506  }
25507  CYTHON_FALLTHROUGH;
25508  case 11:
25509  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
25510  else {
25511  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_free", 1, 14, 14, 11); __PYX_ERR(0, 5251, __pyx_L3_error)
25512  }
25513  CYTHON_FALLTHROUGH;
25514  case 12:
25515  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
25516  else {
25517  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_free", 1, 14, 14, 12); __PYX_ERR(0, 5251, __pyx_L3_error)
25518  }
25519  CYTHON_FALLTHROUGH;
25520  case 13:
25521  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux)) != 0)) kw_args--;
25522  else {
25523  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_free", 1, 14, 14, 13); __PYX_ERR(0, 5251, __pyx_L3_error)
25524  }
25525  }
25526  if (unlikely(kw_args > 0)) {
25527  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalAdvectiveFlux_free") < 0)) __PYX_ERR(0, 5251, __pyx_L3_error)
25528  }
25529  } else if (PyTuple_GET_SIZE(__pyx_args) != 14) {
25530  goto __pyx_L5_argtuple_error;
25531  } else {
25532  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25533  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25534  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
25535  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
25536  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
25537  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
25538  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
25539  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
25540  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
25541  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
25542  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
25543  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
25544  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
25545  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
25546  }
25547  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
25548  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
25549  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
25550  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[3]);
25551  __pyx_v_inflowFlag = ((PyArrayObject *)values[4]);
25552  __pyx_v_n = ((PyArrayObject *)values[5]);
25553  __pyx_v_bc_u = ((PyArrayObject *)values[6]);
25554  __pyx_v_bc_f = ((PyArrayObject *)values[7]);
25555  __pyx_v_bc_df = ((PyArrayObject *)values[8]);
25556  __pyx_v_u = ((PyArrayObject *)values[9]);
25557  __pyx_v_f = ((PyArrayObject *)values[10]);
25558  __pyx_v_df = ((PyArrayObject *)values[11]);
25559  __pyx_v_flux = ((PyArrayObject *)values[12]);
25560  __pyx_v_dflux = ((PyArrayObject *)values[13]);
25561  }
25562  goto __pyx_L4_argument_unpacking_done;
25563  __pyx_L5_argtuple_error:;
25564  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_free", 1, 14, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5251, __pyx_L3_error)
25565  __pyx_L3_error:;
25566  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalAdvectiveFlux_free", __pyx_clineno, __pyx_lineno, __pyx_filename);
25567  __Pyx_RefNannyFinishContext();
25568  return NULL;
25569  __pyx_L4_argument_unpacking_done:;
25570  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5251, __pyx_L1_error)
25571  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5252, __pyx_L1_error)
25572  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5253, __pyx_L1_error)
25573  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 5254, __pyx_L1_error)
25574  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 5255, __pyx_L1_error)
25575  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5256, __pyx_L1_error)
25576  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 5257, __pyx_L1_error)
25577  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f), __pyx_ptype_5numpy_ndarray, 1, "bc_f", 0))) __PYX_ERR(0, 5258, __pyx_L1_error)
25578  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_df), __pyx_ptype_5numpy_ndarray, 1, "bc_df", 0))) __PYX_ERR(0, 5259, __pyx_L1_error)
25579  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 5260, __pyx_L1_error)
25580  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 5261, __pyx_L1_error)
25581  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 5262, __pyx_L1_error)
25582  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 5263, __pyx_L1_error)
25583  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux), __pyx_ptype_5numpy_ndarray, 1, "dflux", 0))) __PYX_ERR(0, 5264, __pyx_L1_error)
25584  __pyx_r = __pyx_pf_14cnumericalFlux_144calculateExteriorNumericalAdvectiveFlux_free(__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);
25585 
25586  /* function exit code */
25587  goto __pyx_L0;
25588  __pyx_L1_error:;
25589  __pyx_r = NULL;
25590  __pyx_L0:;
25591  __Pyx_RefNannyFinishContext();
25592  return __pyx_r;
25593 }
25594 
25595 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) {
25596  PyObject *__pyx_r = NULL;
25597  __Pyx_RefNannyDeclarations
25598  int __pyx_t_1;
25599  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFlux_free", 0);
25600 
25601  /* "cnumericalFlux.pyx":5265
25602  * np.ndarray flux,
25603  * np.ndarray dflux):
25604  * if f.ndim > 3: # <<<<<<<<<<<<<<
25605  * ccalculateExteriorNumericalAdvectiveFlux_free(exteriorElementBoundaries.shape[0],
25606  * f.shape[1],
25607  */
25608  __pyx_t_1 = ((__pyx_v_f->nd > 3) != 0);
25609  if (__pyx_t_1) {
25610 
25611  /* "cnumericalFlux.pyx":5266
25612  * np.ndarray dflux):
25613  * if f.ndim > 3:
25614  * ccalculateExteriorNumericalAdvectiveFlux_free(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
25615  * f.shape[1],
25616  * f.shape[2],
25617  */
25618  calculateExteriorNumericalAdvectiveFlux_free((__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));
25619 
25620  /* "cnumericalFlux.pyx":5265
25621  * np.ndarray flux,
25622  * np.ndarray dflux):
25623  * if f.ndim > 3: # <<<<<<<<<<<<<<
25624  * ccalculateExteriorNumericalAdvectiveFlux_free(exteriorElementBoundaries.shape[0],
25625  * f.shape[1],
25626  */
25627  goto __pyx_L3;
25628  }
25629 
25630  /* "cnumericalFlux.pyx":5285
25631  * <double*> dflux.data)
25632  * else:
25633  * ccalculateGlobalExteriorNumericalAdvectiveFlux_free(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
25634  * f.shape[1],
25635  * f.shape[2],
25636  */
25637  /*else*/ {
25638 
25639  /* "cnumericalFlux.pyx":5301
25640  * <double*> df.data,
25641  * <double*> flux.data,
25642  * <double*> dflux.data) # <<<<<<<<<<<<<<
25643  *
25644  * def calculateGlobalExteriorNumericalAdvectiveFlux_free(int nExteriorElementBoundaries_global,
25645  */
25646  calculateGlobalExteriorNumericalAdvectiveFlux_free((__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));
25647  }
25648  __pyx_L3:;
25649 
25650  /* "cnumericalFlux.pyx":5251
25651  * <double*> flux.data,
25652  * <double*> dflux.data)
25653  * def calculateExteriorNumericalAdvectiveFlux_free(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
25654  * np.ndarray elementBoundaryElements,
25655  * np.ndarray elementBoundaryLocalElementBoundaries,
25656  */
25657 
25658  /* function exit code */
25659  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
25660  __Pyx_XGIVEREF(__pyx_r);
25661  __Pyx_RefNannyFinishContext();
25662  return __pyx_r;
25663 }
25664 
25665 /* "cnumericalFlux.pyx":5303
25666  * <double*> dflux.data)
25667  *
25668  * def calculateGlobalExteriorNumericalAdvectiveFlux_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
25669  * int nQuadraturePoints_elementBoundary,
25670  * int nSpace,
25671  */
25672 
25673 /* Python wrapper */
25674 static PyObject *__pyx_pw_14cnumericalFlux_147calculateGlobalExteriorNumericalAdvectiveFlux_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
25675 static PyMethodDef __pyx_mdef_14cnumericalFlux_147calculateGlobalExteriorNumericalAdvectiveFlux_free = {"calculateGlobalExteriorNumericalAdvectiveFlux_free", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_147calculateGlobalExteriorNumericalAdvectiveFlux_free, METH_VARARGS|METH_KEYWORDS, 0};
25676 static PyObject *__pyx_pw_14cnumericalFlux_147calculateGlobalExteriorNumericalAdvectiveFlux_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
25677  int __pyx_v_nExteriorElementBoundaries_global;
25678  int __pyx_v_nQuadraturePoints_elementBoundary;
25679  int __pyx_v_nSpace;
25680  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
25681  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
25682  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
25683  PyArrayObject *__pyx_v_isDOFBoundary = 0;
25684  PyArrayObject *__pyx_v_inflowFlag = 0;
25685  PyArrayObject *__pyx_v_n = 0;
25686  PyArrayObject *__pyx_v_bc_u = 0;
25687  PyArrayObject *__pyx_v_bc_f = 0;
25688  PyArrayObject *__pyx_v_bc_df = 0;
25689  PyArrayObject *__pyx_v_u = 0;
25690  PyArrayObject *__pyx_v_f = 0;
25691  PyArrayObject *__pyx_v_df = 0;
25692  PyArrayObject *__pyx_v_flux = 0;
25693  PyArrayObject *__pyx_v_dflux = 0;
25694  int __pyx_lineno = 0;
25695  const char *__pyx_filename = NULL;
25696  int __pyx_clineno = 0;
25697  PyObject *__pyx_r = 0;
25698  __Pyx_RefNannyDeclarations
25699  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFlux_free (wrapper)", 0);
25700  {
25701  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__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};
25702  PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
25703  if (unlikely(__pyx_kwds)) {
25704  Py_ssize_t kw_args;
25705  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
25706  switch (pos_args) {
25707  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
25708  CYTHON_FALLTHROUGH;
25709  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
25710  CYTHON_FALLTHROUGH;
25711  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
25712  CYTHON_FALLTHROUGH;
25713  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
25714  CYTHON_FALLTHROUGH;
25715  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
25716  CYTHON_FALLTHROUGH;
25717  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
25718  CYTHON_FALLTHROUGH;
25719  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
25720  CYTHON_FALLTHROUGH;
25721  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
25722  CYTHON_FALLTHROUGH;
25723  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
25724  CYTHON_FALLTHROUGH;
25725  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
25726  CYTHON_FALLTHROUGH;
25727  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
25728  CYTHON_FALLTHROUGH;
25729  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
25730  CYTHON_FALLTHROUGH;
25731  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
25732  CYTHON_FALLTHROUGH;
25733  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
25734  CYTHON_FALLTHROUGH;
25735  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
25736  CYTHON_FALLTHROUGH;
25737  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25738  CYTHON_FALLTHROUGH;
25739  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25740  CYTHON_FALLTHROUGH;
25741  case 0: break;
25742  default: goto __pyx_L5_argtuple_error;
25743  }
25744  kw_args = PyDict_Size(__pyx_kwds);
25745  switch (pos_args) {
25746  case 0:
25747  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
25748  else goto __pyx_L5_argtuple_error;
25749  CYTHON_FALLTHROUGH;
25750  case 1:
25751  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
25752  else {
25753  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 1); __PYX_ERR(0, 5303, __pyx_L3_error)
25754  }
25755  CYTHON_FALLTHROUGH;
25756  case 2:
25757  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
25758  else {
25759  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 2); __PYX_ERR(0, 5303, __pyx_L3_error)
25760  }
25761  CYTHON_FALLTHROUGH;
25762  case 3:
25763  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
25764  else {
25765  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 3); __PYX_ERR(0, 5303, __pyx_L3_error)
25766  }
25767  CYTHON_FALLTHROUGH;
25768  case 4:
25769  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
25770  else {
25771  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 4); __PYX_ERR(0, 5303, __pyx_L3_error)
25772  }
25773  CYTHON_FALLTHROUGH;
25774  case 5:
25775  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
25776  else {
25777  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 5); __PYX_ERR(0, 5303, __pyx_L3_error)
25778  }
25779  CYTHON_FALLTHROUGH;
25780  case 6:
25781  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
25782  else {
25783  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 6); __PYX_ERR(0, 5303, __pyx_L3_error)
25784  }
25785  CYTHON_FALLTHROUGH;
25786  case 7:
25787  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
25788  else {
25789  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 7); __PYX_ERR(0, 5303, __pyx_L3_error)
25790  }
25791  CYTHON_FALLTHROUGH;
25792  case 8:
25793  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
25794  else {
25795  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 8); __PYX_ERR(0, 5303, __pyx_L3_error)
25796  }
25797  CYTHON_FALLTHROUGH;
25798  case 9:
25799  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
25800  else {
25801  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 9); __PYX_ERR(0, 5303, __pyx_L3_error)
25802  }
25803  CYTHON_FALLTHROUGH;
25804  case 10:
25805  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f)) != 0)) kw_args--;
25806  else {
25807  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 10); __PYX_ERR(0, 5303, __pyx_L3_error)
25808  }
25809  CYTHON_FALLTHROUGH;
25810  case 11:
25811  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_df)) != 0)) kw_args--;
25812  else {
25813  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 11); __PYX_ERR(0, 5303, __pyx_L3_error)
25814  }
25815  CYTHON_FALLTHROUGH;
25816  case 12:
25817  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
25818  else {
25819  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 12); __PYX_ERR(0, 5303, __pyx_L3_error)
25820  }
25821  CYTHON_FALLTHROUGH;
25822  case 13:
25823  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
25824  else {
25825  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 13); __PYX_ERR(0, 5303, __pyx_L3_error)
25826  }
25827  CYTHON_FALLTHROUGH;
25828  case 14:
25829  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
25830  else {
25831  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 14); __PYX_ERR(0, 5303, __pyx_L3_error)
25832  }
25833  CYTHON_FALLTHROUGH;
25834  case 15:
25835  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
25836  else {
25837  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 15); __PYX_ERR(0, 5303, __pyx_L3_error)
25838  }
25839  CYTHON_FALLTHROUGH;
25840  case 16:
25841  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux)) != 0)) kw_args--;
25842  else {
25843  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, 16); __PYX_ERR(0, 5303, __pyx_L3_error)
25844  }
25845  }
25846  if (unlikely(kw_args > 0)) {
25847  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalAdvectiveFlux_free") < 0)) __PYX_ERR(0, 5303, __pyx_L3_error)
25848  }
25849  } else if (PyTuple_GET_SIZE(__pyx_args) != 17) {
25850  goto __pyx_L5_argtuple_error;
25851  } else {
25852  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
25853  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
25854  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
25855  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
25856  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
25857  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
25858  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
25859  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
25860  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
25861  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
25862  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
25863  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
25864  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
25865  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
25866  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
25867  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
25868  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
25869  }
25870  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5303, __pyx_L3_error)
25871  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5304, __pyx_L3_error)
25872  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5305, __pyx_L3_error)
25873  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
25874  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
25875  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
25876  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[6]);
25877  __pyx_v_inflowFlag = ((PyArrayObject *)values[7]);
25878  __pyx_v_n = ((PyArrayObject *)values[8]);
25879  __pyx_v_bc_u = ((PyArrayObject *)values[9]);
25880  __pyx_v_bc_f = ((PyArrayObject *)values[10]);
25881  __pyx_v_bc_df = ((PyArrayObject *)values[11]);
25882  __pyx_v_u = ((PyArrayObject *)values[12]);
25883  __pyx_v_f = ((PyArrayObject *)values[13]);
25884  __pyx_v_df = ((PyArrayObject *)values[14]);
25885  __pyx_v_flux = ((PyArrayObject *)values[15]);
25886  __pyx_v_dflux = ((PyArrayObject *)values[16]);
25887  }
25888  goto __pyx_L4_argument_unpacking_done;
25889  __pyx_L5_argtuple_error:;
25890  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_free", 1, 17, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5303, __pyx_L3_error)
25891  __pyx_L3_error:;
25892  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalAdvectiveFlux_free", __pyx_clineno, __pyx_lineno, __pyx_filename);
25893  __Pyx_RefNannyFinishContext();
25894  return NULL;
25895  __pyx_L4_argument_unpacking_done:;
25896  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5306, __pyx_L1_error)
25897  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5307, __pyx_L1_error)
25898  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5308, __pyx_L1_error)
25899  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 5309, __pyx_L1_error)
25900  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 5310, __pyx_L1_error)
25901  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5311, __pyx_L1_error)
25902  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 5312, __pyx_L1_error)
25903  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f), __pyx_ptype_5numpy_ndarray, 1, "bc_f", 0))) __PYX_ERR(0, 5313, __pyx_L1_error)
25904  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_df), __pyx_ptype_5numpy_ndarray, 1, "bc_df", 0))) __PYX_ERR(0, 5314, __pyx_L1_error)
25905  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 5315, __pyx_L1_error)
25906  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 5316, __pyx_L1_error)
25907  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 5317, __pyx_L1_error)
25908  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 5318, __pyx_L1_error)
25909  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux), __pyx_ptype_5numpy_ndarray, 1, "dflux", 0))) __PYX_ERR(0, 5319, __pyx_L1_error)
25910  __pyx_r = __pyx_pf_14cnumericalFlux_146calculateGlobalExteriorNumericalAdvectiveFlux_free(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __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);
25911 
25912  /* function exit code */
25913  goto __pyx_L0;
25914  __pyx_L1_error:;
25915  __pyx_r = NULL;
25916  __pyx_L0:;
25917  __Pyx_RefNannyFinishContext();
25918  return __pyx_r;
25919 }
25920 
25921 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) {
25922  PyObject *__pyx_r = NULL;
25923  __Pyx_RefNannyDeclarations
25924  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFlux_free", 0);
25925 
25926  /* "cnumericalFlux.pyx":5320
25927  * np.ndarray flux,
25928  * np.ndarray dflux):
25929  * ccalculateGlobalExteriorNumericalAdvectiveFlux_free( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
25930  * nQuadraturePoints_elementBoundary,
25931  * nSpace,
25932  */
25933  calculateGlobalExteriorNumericalAdvectiveFlux_free(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, ((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));
25934 
25935  /* "cnumericalFlux.pyx":5303
25936  * <double*> dflux.data)
25937  *
25938  * def calculateGlobalExteriorNumericalAdvectiveFlux_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
25939  * int nQuadraturePoints_elementBoundary,
25940  * int nSpace,
25941  */
25942 
25943  /* function exit code */
25944  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
25945  __Pyx_XGIVEREF(__pyx_r);
25946  __Pyx_RefNannyFinishContext();
25947  return __pyx_r;
25948 }
25949 
25950 /* "cnumericalFlux.pyx":5337
25951  * <double*> flux.data,
25952  * <double*> dflux.data)
25953  * def calculateExteriorNumericalAdvectiveFluxStokesP2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
25954  * np.ndarray elementBoundaryElements,
25955  * np.ndarray elementBoundaryLocalElementBoundaries,
25956  */
25957 
25958 /* Python wrapper */
25959 static PyObject *__pyx_pw_14cnumericalFlux_149calculateExteriorNumericalAdvectiveFluxStokesP2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
25960 static PyMethodDef __pyx_mdef_14cnumericalFlux_149calculateExteriorNumericalAdvectiveFluxStokesP2D = {"calculateExteriorNumericalAdvectiveFluxStokesP2D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_149calculateExteriorNumericalAdvectiveFluxStokesP2D, METH_VARARGS|METH_KEYWORDS, 0};
25961 static PyObject *__pyx_pw_14cnumericalFlux_149calculateExteriorNumericalAdvectiveFluxStokesP2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
25962  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
25963  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
25964  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
25965  PyArrayObject *__pyx_v_isDOFBoundary_p = 0;
25966  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
25967  PyArrayObject *__pyx_v_isDOFBoundary_v = 0;
25968  PyArrayObject *__pyx_v_n = 0;
25969  PyArrayObject *__pyx_v_bc_f = 0;
25970  PyArrayObject *__pyx_v_bc_fpu = 0;
25971  PyArrayObject *__pyx_v_bc_fpv = 0;
25972  PyArrayObject *__pyx_v_f = 0;
25973  PyArrayObject *__pyx_v_fpu = 0;
25974  PyArrayObject *__pyx_v_fpv = 0;
25975  PyArrayObject *__pyx_v_df_du = 0;
25976  PyArrayObject *__pyx_v_df_dv = 0;
25977  PyArrayObject *__pyx_v_dfpu_dp = 0;
25978  PyArrayObject *__pyx_v_dfpv_dp = 0;
25979  PyArrayObject *__pyx_v_flux = 0;
25980  PyArrayObject *__pyx_v_fluxpu = 0;
25981  PyArrayObject *__pyx_v_fluxpv = 0;
25982  PyArrayObject *__pyx_v_dflux_du = 0;
25983  PyArrayObject *__pyx_v_dflux_dv = 0;
25984  PyArrayObject *__pyx_v_dfluxpu_dp = 0;
25985  PyArrayObject *__pyx_v_dfluxpv_dp = 0;
25986  int __pyx_lineno = 0;
25987  const char *__pyx_filename = NULL;
25988  int __pyx_clineno = 0;
25989  PyObject *__pyx_r = 0;
25990  __Pyx_RefNannyDeclarations
25991  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxStokesP2D (wrapper)", 0);
25992  {
25993  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_p,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_isDOFBoundary_v,&__pyx_n_s_n,&__pyx_n_s_bc_f,&__pyx_n_s_bc_fpu,&__pyx_n_s_bc_fpv,&__pyx_n_s_f,&__pyx_n_s_fpu,&__pyx_n_s_fpv,&__pyx_n_s_df_du,&__pyx_n_s_df_dv,&__pyx_n_s_dfpu_dp,&__pyx_n_s_dfpv_dp,&__pyx_n_s_flux,&__pyx_n_s_fluxpu,&__pyx_n_s_fluxpv,&__pyx_n_s_dflux_du,&__pyx_n_s_dflux_dv,&__pyx_n_s_dfluxpu_dp,&__pyx_n_s_dfluxpv_dp,0};
25994  PyObject* values[24] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
25995  if (unlikely(__pyx_kwds)) {
25996  Py_ssize_t kw_args;
25997  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
25998  switch (pos_args) {
25999  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
26000  CYTHON_FALLTHROUGH;
26001  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
26002  CYTHON_FALLTHROUGH;
26003  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
26004  CYTHON_FALLTHROUGH;
26005  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
26006  CYTHON_FALLTHROUGH;
26007  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
26008  CYTHON_FALLTHROUGH;
26009  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
26010  CYTHON_FALLTHROUGH;
26011  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
26012  CYTHON_FALLTHROUGH;
26013  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
26014  CYTHON_FALLTHROUGH;
26015  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
26016  CYTHON_FALLTHROUGH;
26017  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
26018  CYTHON_FALLTHROUGH;
26019  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
26020  CYTHON_FALLTHROUGH;
26021  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
26022  CYTHON_FALLTHROUGH;
26023  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
26024  CYTHON_FALLTHROUGH;
26025  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
26026  CYTHON_FALLTHROUGH;
26027  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
26028  CYTHON_FALLTHROUGH;
26029  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
26030  CYTHON_FALLTHROUGH;
26031  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
26032  CYTHON_FALLTHROUGH;
26033  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
26034  CYTHON_FALLTHROUGH;
26035  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
26036  CYTHON_FALLTHROUGH;
26037  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
26038  CYTHON_FALLTHROUGH;
26039  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
26040  CYTHON_FALLTHROUGH;
26041  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
26042  CYTHON_FALLTHROUGH;
26043  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
26044  CYTHON_FALLTHROUGH;
26045  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
26046  CYTHON_FALLTHROUGH;
26047  case 0: break;
26048  default: goto __pyx_L5_argtuple_error;
26049  }
26050  kw_args = PyDict_Size(__pyx_kwds);
26051  switch (pos_args) {
26052  case 0:
26053  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
26054  else goto __pyx_L5_argtuple_error;
26055  CYTHON_FALLTHROUGH;
26056  case 1:
26057  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
26058  else {
26059  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 1); __PYX_ERR(0, 5337, __pyx_L3_error)
26060  }
26061  CYTHON_FALLTHROUGH;
26062  case 2:
26063  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
26064  else {
26065  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 2); __PYX_ERR(0, 5337, __pyx_L3_error)
26066  }
26067  CYTHON_FALLTHROUGH;
26068  case 3:
26069  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_p)) != 0)) kw_args--;
26070  else {
26071  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 3); __PYX_ERR(0, 5337, __pyx_L3_error)
26072  }
26073  CYTHON_FALLTHROUGH;
26074  case 4:
26075  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
26076  else {
26077  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 4); __PYX_ERR(0, 5337, __pyx_L3_error)
26078  }
26079  CYTHON_FALLTHROUGH;
26080  case 5:
26081  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_v)) != 0)) kw_args--;
26082  else {
26083  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 5); __PYX_ERR(0, 5337, __pyx_L3_error)
26084  }
26085  CYTHON_FALLTHROUGH;
26086  case 6:
26087  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
26088  else {
26089  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 6); __PYX_ERR(0, 5337, __pyx_L3_error)
26090  }
26091  CYTHON_FALLTHROUGH;
26092  case 7:
26093  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f)) != 0)) kw_args--;
26094  else {
26095  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 7); __PYX_ERR(0, 5337, __pyx_L3_error)
26096  }
26097  CYTHON_FALLTHROUGH;
26098  case 8:
26099  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_fpu)) != 0)) kw_args--;
26100  else {
26101  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 8); __PYX_ERR(0, 5337, __pyx_L3_error)
26102  }
26103  CYTHON_FALLTHROUGH;
26104  case 9:
26105  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_fpv)) != 0)) kw_args--;
26106  else {
26107  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 9); __PYX_ERR(0, 5337, __pyx_L3_error)
26108  }
26109  CYTHON_FALLTHROUGH;
26110  case 10:
26111  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
26112  else {
26113  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 10); __PYX_ERR(0, 5337, __pyx_L3_error)
26114  }
26115  CYTHON_FALLTHROUGH;
26116  case 11:
26117  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fpu)) != 0)) kw_args--;
26118  else {
26119  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 11); __PYX_ERR(0, 5337, __pyx_L3_error)
26120  }
26121  CYTHON_FALLTHROUGH;
26122  case 12:
26123  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fpv)) != 0)) kw_args--;
26124  else {
26125  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 12); __PYX_ERR(0, 5337, __pyx_L3_error)
26126  }
26127  CYTHON_FALLTHROUGH;
26128  case 13:
26129  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_du)) != 0)) kw_args--;
26130  else {
26131  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 13); __PYX_ERR(0, 5337, __pyx_L3_error)
26132  }
26133  CYTHON_FALLTHROUGH;
26134  case 14:
26135  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_dv)) != 0)) kw_args--;
26136  else {
26137  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 14); __PYX_ERR(0, 5337, __pyx_L3_error)
26138  }
26139  CYTHON_FALLTHROUGH;
26140  case 15:
26141  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfpu_dp)) != 0)) kw_args--;
26142  else {
26143  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 15); __PYX_ERR(0, 5337, __pyx_L3_error)
26144  }
26145  CYTHON_FALLTHROUGH;
26146  case 16:
26147  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfpv_dp)) != 0)) kw_args--;
26148  else {
26149  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 16); __PYX_ERR(0, 5337, __pyx_L3_error)
26150  }
26151  CYTHON_FALLTHROUGH;
26152  case 17:
26153  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
26154  else {
26155  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 17); __PYX_ERR(0, 5337, __pyx_L3_error)
26156  }
26157  CYTHON_FALLTHROUGH;
26158  case 18:
26159  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxpu)) != 0)) kw_args--;
26160  else {
26161  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 18); __PYX_ERR(0, 5337, __pyx_L3_error)
26162  }
26163  CYTHON_FALLTHROUGH;
26164  case 19:
26165  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxpv)) != 0)) kw_args--;
26166  else {
26167  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 19); __PYX_ERR(0, 5337, __pyx_L3_error)
26168  }
26169  CYTHON_FALLTHROUGH;
26170  case 20:
26171  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_du)) != 0)) kw_args--;
26172  else {
26173  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 20); __PYX_ERR(0, 5337, __pyx_L3_error)
26174  }
26175  CYTHON_FALLTHROUGH;
26176  case 21:
26177  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_dv)) != 0)) kw_args--;
26178  else {
26179  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 21); __PYX_ERR(0, 5337, __pyx_L3_error)
26180  }
26181  CYTHON_FALLTHROUGH;
26182  case 22:
26183  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfluxpu_dp)) != 0)) kw_args--;
26184  else {
26185  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 22); __PYX_ERR(0, 5337, __pyx_L3_error)
26186  }
26187  CYTHON_FALLTHROUGH;
26188  case 23:
26189  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfluxpv_dp)) != 0)) kw_args--;
26190  else {
26191  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, 23); __PYX_ERR(0, 5337, __pyx_L3_error)
26192  }
26193  }
26194  if (unlikely(kw_args > 0)) {
26195  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalAdvectiveFluxStokesP2D") < 0)) __PYX_ERR(0, 5337, __pyx_L3_error)
26196  }
26197  } else if (PyTuple_GET_SIZE(__pyx_args) != 24) {
26198  goto __pyx_L5_argtuple_error;
26199  } else {
26200  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
26201  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
26202  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
26203  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
26204  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
26205  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
26206  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
26207  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
26208  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
26209  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
26210  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
26211  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
26212  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
26213  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
26214  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
26215  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
26216  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
26217  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
26218  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
26219  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
26220  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
26221  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
26222  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
26223  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
26224  }
26225  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
26226  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
26227  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
26228  __pyx_v_isDOFBoundary_p = ((PyArrayObject *)values[3]);
26229  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[4]);
26230  __pyx_v_isDOFBoundary_v = ((PyArrayObject *)values[5]);
26231  __pyx_v_n = ((PyArrayObject *)values[6]);
26232  __pyx_v_bc_f = ((PyArrayObject *)values[7]);
26233  __pyx_v_bc_fpu = ((PyArrayObject *)values[8]);
26234  __pyx_v_bc_fpv = ((PyArrayObject *)values[9]);
26235  __pyx_v_f = ((PyArrayObject *)values[10]);
26236  __pyx_v_fpu = ((PyArrayObject *)values[11]);
26237  __pyx_v_fpv = ((PyArrayObject *)values[12]);
26238  __pyx_v_df_du = ((PyArrayObject *)values[13]);
26239  __pyx_v_df_dv = ((PyArrayObject *)values[14]);
26240  __pyx_v_dfpu_dp = ((PyArrayObject *)values[15]);
26241  __pyx_v_dfpv_dp = ((PyArrayObject *)values[16]);
26242  __pyx_v_flux = ((PyArrayObject *)values[17]);
26243  __pyx_v_fluxpu = ((PyArrayObject *)values[18]);
26244  __pyx_v_fluxpv = ((PyArrayObject *)values[19]);
26245  __pyx_v_dflux_du = ((PyArrayObject *)values[20]);
26246  __pyx_v_dflux_dv = ((PyArrayObject *)values[21]);
26247  __pyx_v_dfluxpu_dp = ((PyArrayObject *)values[22]);
26248  __pyx_v_dfluxpv_dp = ((PyArrayObject *)values[23]);
26249  }
26250  goto __pyx_L4_argument_unpacking_done;
26251  __pyx_L5_argtuple_error:;
26252  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP2D", 1, 24, 24, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5337, __pyx_L3_error)
26253  __pyx_L3_error:;
26254  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalAdvectiveFluxStokesP2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
26255  __Pyx_RefNannyFinishContext();
26256  return NULL;
26257  __pyx_L4_argument_unpacking_done:;
26258  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5337, __pyx_L1_error)
26259  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5338, __pyx_L1_error)
26260  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5339, __pyx_L1_error)
26261  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_p), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_p", 0))) __PYX_ERR(0, 5340, __pyx_L1_error)
26262  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 5341, __pyx_L1_error)
26263  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_v", 0))) __PYX_ERR(0, 5342, __pyx_L1_error)
26264  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5343, __pyx_L1_error)
26265  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f), __pyx_ptype_5numpy_ndarray, 1, "bc_f", 0))) __PYX_ERR(0, 5344, __pyx_L1_error)
26266  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_fpu), __pyx_ptype_5numpy_ndarray, 1, "bc_fpu", 0))) __PYX_ERR(0, 5345, __pyx_L1_error)
26267  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_fpv), __pyx_ptype_5numpy_ndarray, 1, "bc_fpv", 0))) __PYX_ERR(0, 5346, __pyx_L1_error)
26268  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 5347, __pyx_L1_error)
26269  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fpu), __pyx_ptype_5numpy_ndarray, 1, "fpu", 0))) __PYX_ERR(0, 5348, __pyx_L1_error)
26270  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fpv), __pyx_ptype_5numpy_ndarray, 1, "fpv", 0))) __PYX_ERR(0, 5349, __pyx_L1_error)
26271  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_du), __pyx_ptype_5numpy_ndarray, 1, "df_du", 0))) __PYX_ERR(0, 5350, __pyx_L1_error)
26272  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_dv), __pyx_ptype_5numpy_ndarray, 1, "df_dv", 0))) __PYX_ERR(0, 5351, __pyx_L1_error)
26273  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfpu_dp), __pyx_ptype_5numpy_ndarray, 1, "dfpu_dp", 0))) __PYX_ERR(0, 5352, __pyx_L1_error)
26274  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfpv_dp), __pyx_ptype_5numpy_ndarray, 1, "dfpv_dp", 0))) __PYX_ERR(0, 5353, __pyx_L1_error)
26275  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 5354, __pyx_L1_error)
26276  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxpu), __pyx_ptype_5numpy_ndarray, 1, "fluxpu", 0))) __PYX_ERR(0, 5355, __pyx_L1_error)
26277  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxpv), __pyx_ptype_5numpy_ndarray, 1, "fluxpv", 0))) __PYX_ERR(0, 5356, __pyx_L1_error)
26278  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_du", 0))) __PYX_ERR(0, 5357, __pyx_L1_error)
26279  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_dv", 0))) __PYX_ERR(0, 5358, __pyx_L1_error)
26280  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfluxpu_dp), __pyx_ptype_5numpy_ndarray, 1, "dfluxpu_dp", 0))) __PYX_ERR(0, 5359, __pyx_L1_error)
26281  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfluxpv_dp), __pyx_ptype_5numpy_ndarray, 1, "dfluxpv_dp", 0))) __PYX_ERR(0, 5360, __pyx_L1_error)
26282  __pyx_r = __pyx_pf_14cnumericalFlux_148calculateExteriorNumericalAdvectiveFluxStokesP2D(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_p, __pyx_v_isDOFBoundary_u, __pyx_v_isDOFBoundary_v, __pyx_v_n, __pyx_v_bc_f, __pyx_v_bc_fpu, __pyx_v_bc_fpv, __pyx_v_f, __pyx_v_fpu, __pyx_v_fpv, __pyx_v_df_du, __pyx_v_df_dv, __pyx_v_dfpu_dp, __pyx_v_dfpv_dp, __pyx_v_flux, __pyx_v_fluxpu, __pyx_v_fluxpv, __pyx_v_dflux_du, __pyx_v_dflux_dv, __pyx_v_dfluxpu_dp, __pyx_v_dfluxpv_dp);
26283 
26284  /* function exit code */
26285  goto __pyx_L0;
26286  __pyx_L1_error:;
26287  __pyx_r = NULL;
26288  __pyx_L0:;
26289  __Pyx_RefNannyFinishContext();
26290  return __pyx_r;
26291 }
26292 
26293 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) {
26294  PyObject *__pyx_r = NULL;
26295  __Pyx_RefNannyDeclarations
26296  int __pyx_t_1;
26297  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxStokesP2D", 0);
26298 
26299  /* "cnumericalFlux.pyx":5361
26300  * np.ndarray dfluxpu_dp,
26301  * np.ndarray dfluxpv_dp):
26302  * if f.ndim > 3: # <<<<<<<<<<<<<<
26303  * ccalculateExteriorNumericalAdvectiveFluxStokesP2D(exteriorElementBoundaries.shape[0],
26304  * f.shape[1],
26305  */
26306  __pyx_t_1 = ((__pyx_v_f->nd > 3) != 0);
26307  if (__pyx_t_1) {
26308 
26309  /* "cnumericalFlux.pyx":5362
26310  * np.ndarray dfluxpv_dp):
26311  * if f.ndim > 3:
26312  * ccalculateExteriorNumericalAdvectiveFluxStokesP2D(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
26313  * f.shape[1],
26314  * f.shape[2],
26315  */
26316  calculateExteriorNumericalAdvectiveFluxStokesP2D((__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_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_f->data), ((double *)__pyx_v_bc_fpu->data), ((double *)__pyx_v_bc_fpv->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_fpu->data), ((double *)__pyx_v_fpv->data), ((double *)__pyx_v_df_du->data), ((double *)__pyx_v_df_dv->data), ((double *)__pyx_v_dfpu_dp->data), ((double *)__pyx_v_dfpv_dp->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_fluxpu->data), ((double *)__pyx_v_fluxpv->data), ((double *)__pyx_v_dflux_du->data), ((double *)__pyx_v_dflux_dv->data), ((double *)__pyx_v_dfluxpu_dp->data), ((double *)__pyx_v_dfluxpv_dp->data));
26317 
26318  /* "cnumericalFlux.pyx":5361
26319  * np.ndarray dfluxpu_dp,
26320  * np.ndarray dfluxpv_dp):
26321  * if f.ndim > 3: # <<<<<<<<<<<<<<
26322  * ccalculateExteriorNumericalAdvectiveFluxStokesP2D(exteriorElementBoundaries.shape[0],
26323  * f.shape[1],
26324  */
26325  goto __pyx_L3;
26326  }
26327 
26328  /* "cnumericalFlux.pyx":5391
26329  * <double*> dfluxpv_dp.data)
26330  * else:
26331  * ccalculateGlobalExteriorNumericalAdvectiveFluxStokesP2D(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
26332  * f.shape[1],
26333  * f.shape[2],
26334  */
26335  /*else*/ {
26336 
26337  /* "cnumericalFlux.pyx":5417
26338  * <double*> dflux_dv.data,
26339  * <double*> dfluxpu_dp.data,
26340  * <double*> dfluxpv_dp.data) # <<<<<<<<<<<<<<
26341  * def calculateExteriorNumericalAdvectiveFluxNavierStokes2D(np.ndarray exteriorElementBoundaries,
26342  * np.ndarray elementBoundaryElements,
26343  */
26344  calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D((__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_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_f->data), ((double *)__pyx_v_bc_fpu->data), ((double *)__pyx_v_bc_fpv->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_fpu->data), ((double *)__pyx_v_fpv->data), ((double *)__pyx_v_df_du->data), ((double *)__pyx_v_df_dv->data), ((double *)__pyx_v_dfpu_dp->data), ((double *)__pyx_v_dfpv_dp->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_fluxpu->data), ((double *)__pyx_v_fluxpv->data), ((double *)__pyx_v_dflux_du->data), ((double *)__pyx_v_dflux_dv->data), ((double *)__pyx_v_dfluxpu_dp->data), ((double *)__pyx_v_dfluxpv_dp->data));
26345  }
26346  __pyx_L3:;
26347 
26348  /* "cnumericalFlux.pyx":5337
26349  * <double*> flux.data,
26350  * <double*> dflux.data)
26351  * def calculateExteriorNumericalAdvectiveFluxStokesP2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
26352  * np.ndarray elementBoundaryElements,
26353  * np.ndarray elementBoundaryLocalElementBoundaries,
26354  */
26355 
26356  /* function exit code */
26357  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
26358  __Pyx_XGIVEREF(__pyx_r);
26359  __Pyx_RefNannyFinishContext();
26360  return __pyx_r;
26361 }
26362 
26363 /* "cnumericalFlux.pyx":5418
26364  * <double*> dfluxpu_dp.data,
26365  * <double*> dfluxpv_dp.data)
26366  * def calculateExteriorNumericalAdvectiveFluxNavierStokes2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
26367  * np.ndarray elementBoundaryElements,
26368  * np.ndarray elementBoundaryLocalElementBoundaries,
26369  */
26370 
26371 /* Python wrapper */
26372 static PyObject *__pyx_pw_14cnumericalFlux_151calculateExteriorNumericalAdvectiveFluxNavierStokes2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
26373 static PyMethodDef __pyx_mdef_14cnumericalFlux_151calculateExteriorNumericalAdvectiveFluxNavierStokes2D = {"calculateExteriorNumericalAdvectiveFluxNavierStokes2D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_151calculateExteriorNumericalAdvectiveFluxNavierStokes2D, METH_VARARGS|METH_KEYWORDS, 0};
26374 static PyObject *__pyx_pw_14cnumericalFlux_151calculateExteriorNumericalAdvectiveFluxNavierStokes2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
26375  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
26376  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
26377  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
26378  PyArrayObject *__pyx_v_isDOFBoundary_p = 0;
26379  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
26380  PyArrayObject *__pyx_v_isDOFBoundary_v = 0;
26381  PyArrayObject *__pyx_v_n = 0;
26382  PyArrayObject *__pyx_v_bc_p = 0;
26383  PyArrayObject *__pyx_v_bc_f_mass = 0;
26384  PyArrayObject *__pyx_v_bc_f_umom = 0;
26385  PyArrayObject *__pyx_v_bc_f_vmom = 0;
26386  PyArrayObject *__pyx_v_p = 0;
26387  PyArrayObject *__pyx_v_dm_umom = 0;
26388  PyArrayObject *__pyx_v_f_mass = 0;
26389  PyArrayObject *__pyx_v_f_umom = 0;
26390  PyArrayObject *__pyx_v_f_vmom = 0;
26391  PyArrayObject *__pyx_v_df_mass_du = 0;
26392  PyArrayObject *__pyx_v_df_mass_dv = 0;
26393  PyArrayObject *__pyx_v_df_umom_dp = 0;
26394  PyArrayObject *__pyx_v_df_umom_du = 0;
26395  PyArrayObject *__pyx_v_df_umom_dv = 0;
26396  PyArrayObject *__pyx_v_df_vmom_dp = 0;
26397  PyArrayObject *__pyx_v_df_vmom_du = 0;
26398  PyArrayObject *__pyx_v_df_vmom_dv = 0;
26399  PyArrayObject *__pyx_v_flux_mass = 0;
26400  PyArrayObject *__pyx_v_flux_umom = 0;
26401  PyArrayObject *__pyx_v_flux_vmom = 0;
26402  PyArrayObject *__pyx_v_dflux_mass_dp = 0;
26403  PyArrayObject *__pyx_v_dflux_mass_du = 0;
26404  PyArrayObject *__pyx_v_dflux_mass_dv = 0;
26405  PyArrayObject *__pyx_v_dflux_umom_dp = 0;
26406  PyArrayObject *__pyx_v_dflux_umom_du = 0;
26407  PyArrayObject *__pyx_v_dflux_umom_dv = 0;
26408  PyArrayObject *__pyx_v_dflux_vmom_dp = 0;
26409  PyArrayObject *__pyx_v_dflux_vmom_du = 0;
26410  PyArrayObject *__pyx_v_dflux_vmom_dv = 0;
26411  PyArrayObject *__pyx_v_velocity = 0;
26412  int __pyx_lineno = 0;
26413  const char *__pyx_filename = NULL;
26414  int __pyx_clineno = 0;
26415  PyObject *__pyx_r = 0;
26416  __Pyx_RefNannyDeclarations
26417  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxNavierStokes2D (wrapper)", 0);
26418  {
26419  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_p,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_isDOFBoundary_v,&__pyx_n_s_n,&__pyx_n_s_bc_p,&__pyx_n_s_bc_f_mass,&__pyx_n_s_bc_f_umom,&__pyx_n_s_bc_f_vmom,&__pyx_n_s_p,&__pyx_n_s_dm_umom,&__pyx_n_s_f_mass,&__pyx_n_s_f_umom,&__pyx_n_s_f_vmom,&__pyx_n_s_df_mass_du,&__pyx_n_s_df_mass_dv,&__pyx_n_s_df_umom_dp,&__pyx_n_s_df_umom_du,&__pyx_n_s_df_umom_dv,&__pyx_n_s_df_vmom_dp,&__pyx_n_s_df_vmom_du,&__pyx_n_s_df_vmom_dv,&__pyx_n_s_flux_mass,&__pyx_n_s_flux_umom,&__pyx_n_s_flux_vmom,&__pyx_n_s_dflux_mass_dp,&__pyx_n_s_dflux_mass_du,&__pyx_n_s_dflux_mass_dv,&__pyx_n_s_dflux_umom_dp,&__pyx_n_s_dflux_umom_du,&__pyx_n_s_dflux_umom_dv,&__pyx_n_s_dflux_vmom_dp,&__pyx_n_s_dflux_vmom_du,&__pyx_n_s_dflux_vmom_dv,&__pyx_n_s_velocity,0};
26420  PyObject* values[37] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
26421  if (unlikely(__pyx_kwds)) {
26422  Py_ssize_t kw_args;
26423  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
26424  switch (pos_args) {
26425  case 37: values[36] = PyTuple_GET_ITEM(__pyx_args, 36);
26426  CYTHON_FALLTHROUGH;
26427  case 36: values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
26428  CYTHON_FALLTHROUGH;
26429  case 35: values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
26430  CYTHON_FALLTHROUGH;
26431  case 34: values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
26432  CYTHON_FALLTHROUGH;
26433  case 33: values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
26434  CYTHON_FALLTHROUGH;
26435  case 32: values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
26436  CYTHON_FALLTHROUGH;
26437  case 31: values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
26438  CYTHON_FALLTHROUGH;
26439  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
26440  CYTHON_FALLTHROUGH;
26441  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
26442  CYTHON_FALLTHROUGH;
26443  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
26444  CYTHON_FALLTHROUGH;
26445  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
26446  CYTHON_FALLTHROUGH;
26447  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
26448  CYTHON_FALLTHROUGH;
26449  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
26450  CYTHON_FALLTHROUGH;
26451  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
26452  CYTHON_FALLTHROUGH;
26453  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
26454  CYTHON_FALLTHROUGH;
26455  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
26456  CYTHON_FALLTHROUGH;
26457  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
26458  CYTHON_FALLTHROUGH;
26459  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
26460  CYTHON_FALLTHROUGH;
26461  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
26462  CYTHON_FALLTHROUGH;
26463  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
26464  CYTHON_FALLTHROUGH;
26465  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
26466  CYTHON_FALLTHROUGH;
26467  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
26468  CYTHON_FALLTHROUGH;
26469  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
26470  CYTHON_FALLTHROUGH;
26471  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
26472  CYTHON_FALLTHROUGH;
26473  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
26474  CYTHON_FALLTHROUGH;
26475  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
26476  CYTHON_FALLTHROUGH;
26477  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
26478  CYTHON_FALLTHROUGH;
26479  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
26480  CYTHON_FALLTHROUGH;
26481  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
26482  CYTHON_FALLTHROUGH;
26483  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
26484  CYTHON_FALLTHROUGH;
26485  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
26486  CYTHON_FALLTHROUGH;
26487  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
26488  CYTHON_FALLTHROUGH;
26489  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
26490  CYTHON_FALLTHROUGH;
26491  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
26492  CYTHON_FALLTHROUGH;
26493  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
26494  CYTHON_FALLTHROUGH;
26495  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
26496  CYTHON_FALLTHROUGH;
26497  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
26498  CYTHON_FALLTHROUGH;
26499  case 0: break;
26500  default: goto __pyx_L5_argtuple_error;
26501  }
26502  kw_args = PyDict_Size(__pyx_kwds);
26503  switch (pos_args) {
26504  case 0:
26505  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
26506  else goto __pyx_L5_argtuple_error;
26507  CYTHON_FALLTHROUGH;
26508  case 1:
26509  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
26510  else {
26511  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 1); __PYX_ERR(0, 5418, __pyx_L3_error)
26512  }
26513  CYTHON_FALLTHROUGH;
26514  case 2:
26515  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
26516  else {
26517  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 2); __PYX_ERR(0, 5418, __pyx_L3_error)
26518  }
26519  CYTHON_FALLTHROUGH;
26520  case 3:
26521  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_p)) != 0)) kw_args--;
26522  else {
26523  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 3); __PYX_ERR(0, 5418, __pyx_L3_error)
26524  }
26525  CYTHON_FALLTHROUGH;
26526  case 4:
26527  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
26528  else {
26529  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 4); __PYX_ERR(0, 5418, __pyx_L3_error)
26530  }
26531  CYTHON_FALLTHROUGH;
26532  case 5:
26533  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_v)) != 0)) kw_args--;
26534  else {
26535  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 5); __PYX_ERR(0, 5418, __pyx_L3_error)
26536  }
26537  CYTHON_FALLTHROUGH;
26538  case 6:
26539  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
26540  else {
26541  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 6); __PYX_ERR(0, 5418, __pyx_L3_error)
26542  }
26543  CYTHON_FALLTHROUGH;
26544  case 7:
26545  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_p)) != 0)) kw_args--;
26546  else {
26547  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 7); __PYX_ERR(0, 5418, __pyx_L3_error)
26548  }
26549  CYTHON_FALLTHROUGH;
26550  case 8:
26551  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_mass)) != 0)) kw_args--;
26552  else {
26553  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 8); __PYX_ERR(0, 5418, __pyx_L3_error)
26554  }
26555  CYTHON_FALLTHROUGH;
26556  case 9:
26557  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_umom)) != 0)) kw_args--;
26558  else {
26559  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 9); __PYX_ERR(0, 5418, __pyx_L3_error)
26560  }
26561  CYTHON_FALLTHROUGH;
26562  case 10:
26563  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_vmom)) != 0)) kw_args--;
26564  else {
26565  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 10); __PYX_ERR(0, 5418, __pyx_L3_error)
26566  }
26567  CYTHON_FALLTHROUGH;
26568  case 11:
26569  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--;
26570  else {
26571  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 11); __PYX_ERR(0, 5418, __pyx_L3_error)
26572  }
26573  CYTHON_FALLTHROUGH;
26574  case 12:
26575  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm_umom)) != 0)) kw_args--;
26576  else {
26577  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 12); __PYX_ERR(0, 5418, __pyx_L3_error)
26578  }
26579  CYTHON_FALLTHROUGH;
26580  case 13:
26581  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_mass)) != 0)) kw_args--;
26582  else {
26583  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 13); __PYX_ERR(0, 5418, __pyx_L3_error)
26584  }
26585  CYTHON_FALLTHROUGH;
26586  case 14:
26587  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_umom)) != 0)) kw_args--;
26588  else {
26589  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 14); __PYX_ERR(0, 5418, __pyx_L3_error)
26590  }
26591  CYTHON_FALLTHROUGH;
26592  case 15:
26593  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_vmom)) != 0)) kw_args--;
26594  else {
26595  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 15); __PYX_ERR(0, 5418, __pyx_L3_error)
26596  }
26597  CYTHON_FALLTHROUGH;
26598  case 16:
26599  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_du)) != 0)) kw_args--;
26600  else {
26601  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 16); __PYX_ERR(0, 5418, __pyx_L3_error)
26602  }
26603  CYTHON_FALLTHROUGH;
26604  case 17:
26605  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_dv)) != 0)) kw_args--;
26606  else {
26607  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 17); __PYX_ERR(0, 5418, __pyx_L3_error)
26608  }
26609  CYTHON_FALLTHROUGH;
26610  case 18:
26611  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_umom_dp)) != 0)) kw_args--;
26612  else {
26613  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 18); __PYX_ERR(0, 5418, __pyx_L3_error)
26614  }
26615  CYTHON_FALLTHROUGH;
26616  case 19:
26617  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_umom_du)) != 0)) kw_args--;
26618  else {
26619  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 19); __PYX_ERR(0, 5418, __pyx_L3_error)
26620  }
26621  CYTHON_FALLTHROUGH;
26622  case 20:
26623  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_umom_dv)) != 0)) kw_args--;
26624  else {
26625  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 20); __PYX_ERR(0, 5418, __pyx_L3_error)
26626  }
26627  CYTHON_FALLTHROUGH;
26628  case 21:
26629  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_vmom_dp)) != 0)) kw_args--;
26630  else {
26631  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 21); __PYX_ERR(0, 5418, __pyx_L3_error)
26632  }
26633  CYTHON_FALLTHROUGH;
26634  case 22:
26635  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_vmom_du)) != 0)) kw_args--;
26636  else {
26637  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 22); __PYX_ERR(0, 5418, __pyx_L3_error)
26638  }
26639  CYTHON_FALLTHROUGH;
26640  case 23:
26641  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_vmom_dv)) != 0)) kw_args--;
26642  else {
26643  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 23); __PYX_ERR(0, 5418, __pyx_L3_error)
26644  }
26645  CYTHON_FALLTHROUGH;
26646  case 24:
26647  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_mass)) != 0)) kw_args--;
26648  else {
26649  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 24); __PYX_ERR(0, 5418, __pyx_L3_error)
26650  }
26651  CYTHON_FALLTHROUGH;
26652  case 25:
26653  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_umom)) != 0)) kw_args--;
26654  else {
26655  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 25); __PYX_ERR(0, 5418, __pyx_L3_error)
26656  }
26657  CYTHON_FALLTHROUGH;
26658  case 26:
26659  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_vmom)) != 0)) kw_args--;
26660  else {
26661  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 26); __PYX_ERR(0, 5418, __pyx_L3_error)
26662  }
26663  CYTHON_FALLTHROUGH;
26664  case 27:
26665  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_dp)) != 0)) kw_args--;
26666  else {
26667  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 27); __PYX_ERR(0, 5418, __pyx_L3_error)
26668  }
26669  CYTHON_FALLTHROUGH;
26670  case 28:
26671  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_du)) != 0)) kw_args--;
26672  else {
26673  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 28); __PYX_ERR(0, 5418, __pyx_L3_error)
26674  }
26675  CYTHON_FALLTHROUGH;
26676  case 29:
26677  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_dv)) != 0)) kw_args--;
26678  else {
26679  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 29); __PYX_ERR(0, 5418, __pyx_L3_error)
26680  }
26681  CYTHON_FALLTHROUGH;
26682  case 30:
26683  if (likely((values[30] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_dp)) != 0)) kw_args--;
26684  else {
26685  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 30); __PYX_ERR(0, 5418, __pyx_L3_error)
26686  }
26687  CYTHON_FALLTHROUGH;
26688  case 31:
26689  if (likely((values[31] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_du)) != 0)) kw_args--;
26690  else {
26691  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 31); __PYX_ERR(0, 5418, __pyx_L3_error)
26692  }
26693  CYTHON_FALLTHROUGH;
26694  case 32:
26695  if (likely((values[32] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_dv)) != 0)) kw_args--;
26696  else {
26697  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 32); __PYX_ERR(0, 5418, __pyx_L3_error)
26698  }
26699  CYTHON_FALLTHROUGH;
26700  case 33:
26701  if (likely((values[33] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_dp)) != 0)) kw_args--;
26702  else {
26703  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 33); __PYX_ERR(0, 5418, __pyx_L3_error)
26704  }
26705  CYTHON_FALLTHROUGH;
26706  case 34:
26707  if (likely((values[34] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_du)) != 0)) kw_args--;
26708  else {
26709  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 34); __PYX_ERR(0, 5418, __pyx_L3_error)
26710  }
26711  CYTHON_FALLTHROUGH;
26712  case 35:
26713  if (likely((values[35] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_dv)) != 0)) kw_args--;
26714  else {
26715  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 35); __PYX_ERR(0, 5418, __pyx_L3_error)
26716  }
26717  CYTHON_FALLTHROUGH;
26718  case 36:
26719  if (likely((values[36] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_velocity)) != 0)) kw_args--;
26720  else {
26721  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, 36); __PYX_ERR(0, 5418, __pyx_L3_error)
26722  }
26723  }
26724  if (unlikely(kw_args > 0)) {
26725  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalAdvectiveFluxNavierStokes2D") < 0)) __PYX_ERR(0, 5418, __pyx_L3_error)
26726  }
26727  } else if (PyTuple_GET_SIZE(__pyx_args) != 37) {
26728  goto __pyx_L5_argtuple_error;
26729  } else {
26730  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
26731  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
26732  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
26733  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
26734  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
26735  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
26736  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
26737  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
26738  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
26739  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
26740  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
26741  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
26742  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
26743  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
26744  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
26745  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
26746  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
26747  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
26748  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
26749  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
26750  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
26751  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
26752  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
26753  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
26754  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
26755  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
26756  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
26757  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
26758  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
26759  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
26760  values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
26761  values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
26762  values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
26763  values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
26764  values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
26765  values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
26766  values[36] = PyTuple_GET_ITEM(__pyx_args, 36);
26767  }
26768  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
26769  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
26770  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
26771  __pyx_v_isDOFBoundary_p = ((PyArrayObject *)values[3]);
26772  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[4]);
26773  __pyx_v_isDOFBoundary_v = ((PyArrayObject *)values[5]);
26774  __pyx_v_n = ((PyArrayObject *)values[6]);
26775  __pyx_v_bc_p = ((PyArrayObject *)values[7]);
26776  __pyx_v_bc_f_mass = ((PyArrayObject *)values[8]);
26777  __pyx_v_bc_f_umom = ((PyArrayObject *)values[9]);
26778  __pyx_v_bc_f_vmom = ((PyArrayObject *)values[10]);
26779  __pyx_v_p = ((PyArrayObject *)values[11]);
26780  __pyx_v_dm_umom = ((PyArrayObject *)values[12]);
26781  __pyx_v_f_mass = ((PyArrayObject *)values[13]);
26782  __pyx_v_f_umom = ((PyArrayObject *)values[14]);
26783  __pyx_v_f_vmom = ((PyArrayObject *)values[15]);
26784  __pyx_v_df_mass_du = ((PyArrayObject *)values[16]);
26785  __pyx_v_df_mass_dv = ((PyArrayObject *)values[17]);
26786  __pyx_v_df_umom_dp = ((PyArrayObject *)values[18]);
26787  __pyx_v_df_umom_du = ((PyArrayObject *)values[19]);
26788  __pyx_v_df_umom_dv = ((PyArrayObject *)values[20]);
26789  __pyx_v_df_vmom_dp = ((PyArrayObject *)values[21]);
26790  __pyx_v_df_vmom_du = ((PyArrayObject *)values[22]);
26791  __pyx_v_df_vmom_dv = ((PyArrayObject *)values[23]);
26792  __pyx_v_flux_mass = ((PyArrayObject *)values[24]);
26793  __pyx_v_flux_umom = ((PyArrayObject *)values[25]);
26794  __pyx_v_flux_vmom = ((PyArrayObject *)values[26]);
26795  __pyx_v_dflux_mass_dp = ((PyArrayObject *)values[27]);
26796  __pyx_v_dflux_mass_du = ((PyArrayObject *)values[28]);
26797  __pyx_v_dflux_mass_dv = ((PyArrayObject *)values[29]);
26798  __pyx_v_dflux_umom_dp = ((PyArrayObject *)values[30]);
26799  __pyx_v_dflux_umom_du = ((PyArrayObject *)values[31]);
26800  __pyx_v_dflux_umom_dv = ((PyArrayObject *)values[32]);
26801  __pyx_v_dflux_vmom_dp = ((PyArrayObject *)values[33]);
26802  __pyx_v_dflux_vmom_du = ((PyArrayObject *)values[34]);
26803  __pyx_v_dflux_vmom_dv = ((PyArrayObject *)values[35]);
26804  __pyx_v_velocity = ((PyArrayObject *)values[36]);
26805  }
26806  goto __pyx_L4_argument_unpacking_done;
26807  __pyx_L5_argtuple_error:;
26808  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 37, 37, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5418, __pyx_L3_error)
26809  __pyx_L3_error:;
26810  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalAdvectiveFluxNavierStokes2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
26811  __Pyx_RefNannyFinishContext();
26812  return NULL;
26813  __pyx_L4_argument_unpacking_done:;
26814  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5418, __pyx_L1_error)
26815  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5419, __pyx_L1_error)
26816  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5420, __pyx_L1_error)
26817  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_p), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_p", 0))) __PYX_ERR(0, 5421, __pyx_L1_error)
26818  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 5422, __pyx_L1_error)
26819  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_v", 0))) __PYX_ERR(0, 5423, __pyx_L1_error)
26820  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5424, __pyx_L1_error)
26821  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_p), __pyx_ptype_5numpy_ndarray, 1, "bc_p", 0))) __PYX_ERR(0, 5425, __pyx_L1_error)
26822  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_mass), __pyx_ptype_5numpy_ndarray, 1, "bc_f_mass", 0))) __PYX_ERR(0, 5426, __pyx_L1_error)
26823  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_umom), __pyx_ptype_5numpy_ndarray, 1, "bc_f_umom", 0))) __PYX_ERR(0, 5427, __pyx_L1_error)
26824  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_vmom), __pyx_ptype_5numpy_ndarray, 1, "bc_f_vmom", 0))) __PYX_ERR(0, 5428, __pyx_L1_error)
26825  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p), __pyx_ptype_5numpy_ndarray, 1, "p", 0))) __PYX_ERR(0, 5429, __pyx_L1_error)
26826  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm_umom), __pyx_ptype_5numpy_ndarray, 1, "dm_umom", 0))) __PYX_ERR(0, 5430, __pyx_L1_error)
26827  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_mass), __pyx_ptype_5numpy_ndarray, 1, "f_mass", 0))) __PYX_ERR(0, 5431, __pyx_L1_error)
26828  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_umom), __pyx_ptype_5numpy_ndarray, 1, "f_umom", 0))) __PYX_ERR(0, 5432, __pyx_L1_error)
26829  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_vmom), __pyx_ptype_5numpy_ndarray, 1, "f_vmom", 0))) __PYX_ERR(0, 5433, __pyx_L1_error)
26830  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_du), __pyx_ptype_5numpy_ndarray, 1, "df_mass_du", 0))) __PYX_ERR(0, 5434, __pyx_L1_error)
26831  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "df_mass_dv", 0))) __PYX_ERR(0, 5435, __pyx_L1_error)
26832  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_umom_dp), __pyx_ptype_5numpy_ndarray, 1, "df_umom_dp", 0))) __PYX_ERR(0, 5436, __pyx_L1_error)
26833  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_umom_du), __pyx_ptype_5numpy_ndarray, 1, "df_umom_du", 0))) __PYX_ERR(0, 5437, __pyx_L1_error)
26834  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_umom_dv), __pyx_ptype_5numpy_ndarray, 1, "df_umom_dv", 0))) __PYX_ERR(0, 5438, __pyx_L1_error)
26835  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_vmom_dp), __pyx_ptype_5numpy_ndarray, 1, "df_vmom_dp", 0))) __PYX_ERR(0, 5439, __pyx_L1_error)
26836  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_vmom_du), __pyx_ptype_5numpy_ndarray, 1, "df_vmom_du", 0))) __PYX_ERR(0, 5440, __pyx_L1_error)
26837  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_vmom_dv), __pyx_ptype_5numpy_ndarray, 1, "df_vmom_dv", 0))) __PYX_ERR(0, 5441, __pyx_L1_error)
26838  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_mass), __pyx_ptype_5numpy_ndarray, 1, "flux_mass", 0))) __PYX_ERR(0, 5442, __pyx_L1_error)
26839  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_umom), __pyx_ptype_5numpy_ndarray, 1, "flux_umom", 0))) __PYX_ERR(0, 5443, __pyx_L1_error)
26840  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_vmom), __pyx_ptype_5numpy_ndarray, 1, "flux_vmom", 0))) __PYX_ERR(0, 5444, __pyx_L1_error)
26841  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_dp", 0))) __PYX_ERR(0, 5445, __pyx_L1_error)
26842  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_du", 0))) __PYX_ERR(0, 5446, __pyx_L1_error)
26843  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_dv", 0))) __PYX_ERR(0, 5447, __pyx_L1_error)
26844  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_dp", 0))) __PYX_ERR(0, 5448, __pyx_L1_error)
26845  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_du", 0))) __PYX_ERR(0, 5449, __pyx_L1_error)
26846  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_dv", 0))) __PYX_ERR(0, 5450, __pyx_L1_error)
26847  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_dp", 0))) __PYX_ERR(0, 5451, __pyx_L1_error)
26848  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_du", 0))) __PYX_ERR(0, 5452, __pyx_L1_error)
26849  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_dv", 0))) __PYX_ERR(0, 5453, __pyx_L1_error)
26850  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_velocity), __pyx_ptype_5numpy_ndarray, 1, "velocity", 0))) __PYX_ERR(0, 5454, __pyx_L1_error)
26851  __pyx_r = __pyx_pf_14cnumericalFlux_150calculateExteriorNumericalAdvectiveFluxNavierStokes2D(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_p, __pyx_v_isDOFBoundary_u, __pyx_v_isDOFBoundary_v, __pyx_v_n, __pyx_v_bc_p, __pyx_v_bc_f_mass, __pyx_v_bc_f_umom, __pyx_v_bc_f_vmom, __pyx_v_p, __pyx_v_dm_umom, __pyx_v_f_mass, __pyx_v_f_umom, __pyx_v_f_vmom, __pyx_v_df_mass_du, __pyx_v_df_mass_dv, __pyx_v_df_umom_dp, __pyx_v_df_umom_du, __pyx_v_df_umom_dv, __pyx_v_df_vmom_dp, __pyx_v_df_vmom_du, __pyx_v_df_vmom_dv, __pyx_v_flux_mass, __pyx_v_flux_umom, __pyx_v_flux_vmom, __pyx_v_dflux_mass_dp, __pyx_v_dflux_mass_du, __pyx_v_dflux_mass_dv, __pyx_v_dflux_umom_dp, __pyx_v_dflux_umom_du, __pyx_v_dflux_umom_dv, __pyx_v_dflux_vmom_dp, __pyx_v_dflux_vmom_du, __pyx_v_dflux_vmom_dv, __pyx_v_velocity);
26852 
26853  /* function exit code */
26854  goto __pyx_L0;
26855  __pyx_L1_error:;
26856  __pyx_r = NULL;
26857  __pyx_L0:;
26858  __Pyx_RefNannyFinishContext();
26859  return __pyx_r;
26860 }
26861 
26862 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) {
26863  PyObject *__pyx_r = NULL;
26864  __Pyx_RefNannyDeclarations
26865  int __pyx_t_1;
26866  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxNavierStokes2D", 0);
26867 
26868  /* "cnumericalFlux.pyx":5455
26869  * np.ndarray dflux_vmom_dv,
26870  * np.ndarray velocity):
26871  * if f_mass.ndim > 3: # <<<<<<<<<<<<<<
26872  * ccalculateExteriorNumericalAdvectiveFluxNavierStokes2D(exteriorElementBoundaries.shape[0],
26873  * f_mass.shape[1],
26874  */
26875  __pyx_t_1 = ((__pyx_v_f_mass->nd > 3) != 0);
26876  if (__pyx_t_1) {
26877 
26878  /* "cnumericalFlux.pyx":5456
26879  * np.ndarray velocity):
26880  * if f_mass.ndim > 3:
26881  * ccalculateExteriorNumericalAdvectiveFluxNavierStokes2D(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
26882  * f_mass.shape[1],
26883  * f_mass.shape[2],
26884  */
26885  calculateExteriorNumericalAdvectiveFluxNavierStokes2D((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_f_mass->dimensions[1]), (__pyx_v_f_mass->dimensions[2]), (__pyx_v_f_mass->dimensions[3]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_p->data), ((double *)__pyx_v_bc_f_mass->data), ((double *)__pyx_v_bc_f_umom->data), ((double *)__pyx_v_bc_f_vmom->data), ((double *)__pyx_v_p->data), ((double *)__pyx_v_f_mass->data), ((double *)__pyx_v_f_umom->data), ((double *)__pyx_v_f_vmom->data), ((double *)__pyx_v_df_mass_du->data), ((double *)__pyx_v_df_mass_dv->data), ((double *)__pyx_v_df_umom_du->data), ((double *)__pyx_v_df_umom_dv->data), ((double *)__pyx_v_df_vmom_du->data), ((double *)__pyx_v_df_vmom_dv->data), ((double *)__pyx_v_flux_mass->data), ((double *)__pyx_v_flux_umom->data), ((double *)__pyx_v_flux_vmom->data), ((double *)__pyx_v_dflux_mass_du->data), ((double *)__pyx_v_dflux_mass_dv->data), ((double *)__pyx_v_dflux_umom_dp->data), ((double *)__pyx_v_dflux_umom_du->data), ((double *)__pyx_v_dflux_umom_dv->data), ((double *)__pyx_v_dflux_vmom_dp->data), ((double *)__pyx_v_dflux_vmom_du->data), ((double *)__pyx_v_dflux_vmom_dv->data));
26886 
26887  /* "cnumericalFlux.pyx":5455
26888  * np.ndarray dflux_vmom_dv,
26889  * np.ndarray velocity):
26890  * if f_mass.ndim > 3: # <<<<<<<<<<<<<<
26891  * ccalculateExteriorNumericalAdvectiveFluxNavierStokes2D(exteriorElementBoundaries.shape[0],
26892  * f_mass.shape[1],
26893  */
26894  goto __pyx_L3;
26895  }
26896 
26897  /* "cnumericalFlux.pyx":5493
26898  * <double*> dflux_vmom_dv.data)
26899  * else:
26900  * ccalculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
26901  * f_mass.shape[1],
26902  * f_mass.shape[2],
26903  */
26904  /*else*/ {
26905 
26906  /* "cnumericalFlux.pyx":5532
26907  * <double*> dflux_vmom_du.data,
26908  * <double*> dflux_vmom_dv.data,
26909  * <double*> velocity.data) # <<<<<<<<<<<<<<
26910  * def calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D(int nExteriorElementBoundaries_global,
26911  * int nQuadraturePoints_elementBoundary,
26912  */
26913  calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_f_mass->dimensions[1]), (__pyx_v_f_mass->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_p->data), ((double *)__pyx_v_bc_f_mass->data), ((double *)__pyx_v_bc_f_umom->data), ((double *)__pyx_v_bc_f_vmom->data), ((double *)__pyx_v_p->data), ((double *)__pyx_v_dm_umom->data), ((double *)__pyx_v_f_mass->data), ((double *)__pyx_v_f_umom->data), ((double *)__pyx_v_f_vmom->data), ((double *)__pyx_v_df_mass_du->data), ((double *)__pyx_v_df_mass_dv->data), ((double *)__pyx_v_df_umom_dp->data), ((double *)__pyx_v_df_umom_du->data), ((double *)__pyx_v_df_umom_dv->data), ((double *)__pyx_v_df_vmom_dp->data), ((double *)__pyx_v_df_vmom_du->data), ((double *)__pyx_v_df_vmom_dv->data), ((double *)__pyx_v_flux_mass->data), ((double *)__pyx_v_flux_umom->data), ((double *)__pyx_v_flux_vmom->data), ((double *)__pyx_v_dflux_mass_dp->data), ((double *)__pyx_v_dflux_mass_du->data), ((double *)__pyx_v_dflux_mass_dv->data), ((double *)__pyx_v_dflux_umom_dp->data), ((double *)__pyx_v_dflux_umom_du->data), ((double *)__pyx_v_dflux_umom_dv->data), ((double *)__pyx_v_dflux_vmom_dp->data), ((double *)__pyx_v_dflux_vmom_du->data), ((double *)__pyx_v_dflux_vmom_dv->data), ((double *)__pyx_v_velocity->data));
26914  }
26915  __pyx_L3:;
26916 
26917  /* "cnumericalFlux.pyx":5418
26918  * <double*> dfluxpu_dp.data,
26919  * <double*> dfluxpv_dp.data)
26920  * def calculateExteriorNumericalAdvectiveFluxNavierStokes2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
26921  * np.ndarray elementBoundaryElements,
26922  * np.ndarray elementBoundaryLocalElementBoundaries,
26923  */
26924 
26925  /* function exit code */
26926  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
26927  __Pyx_XGIVEREF(__pyx_r);
26928  __Pyx_RefNannyFinishContext();
26929  return __pyx_r;
26930 }
26931 
26932 /* "cnumericalFlux.pyx":5533
26933  * <double*> dflux_vmom_dv.data,
26934  * <double*> velocity.data)
26935  * def calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
26936  * int nQuadraturePoints_elementBoundary,
26937  * int nSpace,
26938  */
26939 
26940 /* Python wrapper */
26941 static PyObject *__pyx_pw_14cnumericalFlux_153calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
26942 static PyMethodDef __pyx_mdef_14cnumericalFlux_153calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D = {"calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_153calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D, METH_VARARGS|METH_KEYWORDS, 0};
26943 static PyObject *__pyx_pw_14cnumericalFlux_153calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
26944  int __pyx_v_nExteriorElementBoundaries_global;
26945  int __pyx_v_nQuadraturePoints_elementBoundary;
26946  int __pyx_v_nSpace;
26947  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
26948  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
26949  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
26950  PyArrayObject *__pyx_v_isDOFBoundary_p = 0;
26951  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
26952  PyArrayObject *__pyx_v_isDOFBoundary_v = 0;
26953  PyArrayObject *__pyx_v_n = 0;
26954  PyArrayObject *__pyx_v_bc_p = 0;
26955  PyArrayObject *__pyx_v_bc_f_mass = 0;
26956  PyArrayObject *__pyx_v_bc_f_umom = 0;
26957  PyArrayObject *__pyx_v_bc_f_vmom = 0;
26958  PyArrayObject *__pyx_v_p = 0;
26959  PyArrayObject *__pyx_v_oneByRho = 0;
26960  PyArrayObject *__pyx_v_f_mass = 0;
26961  PyArrayObject *__pyx_v_f_umom = 0;
26962  PyArrayObject *__pyx_v_f_vmom = 0;
26963  PyArrayObject *__pyx_v_df_mass_du = 0;
26964  PyArrayObject *__pyx_v_df_mass_dv = 0;
26965  PyArrayObject *__pyx_v_df_umom_dp = 0;
26966  PyArrayObject *__pyx_v_df_umom_du = 0;
26967  PyArrayObject *__pyx_v_df_umom_dv = 0;
26968  PyArrayObject *__pyx_v_df_vmom_dp = 0;
26969  PyArrayObject *__pyx_v_df_vmom_du = 0;
26970  PyArrayObject *__pyx_v_df_vmom_dv = 0;
26971  PyArrayObject *__pyx_v_flux_mass = 0;
26972  PyArrayObject *__pyx_v_flux_umom = 0;
26973  PyArrayObject *__pyx_v_flux_vmom = 0;
26974  PyArrayObject *__pyx_v_dflux_mass_dp = 0;
26975  PyArrayObject *__pyx_v_dflux_mass_du = 0;
26976  PyArrayObject *__pyx_v_dflux_mass_dv = 0;
26977  PyArrayObject *__pyx_v_dflux_umom_dp = 0;
26978  PyArrayObject *__pyx_v_dflux_umom_du = 0;
26979  PyArrayObject *__pyx_v_dflux_umom_dv = 0;
26980  PyArrayObject *__pyx_v_dflux_vmom_dp = 0;
26981  PyArrayObject *__pyx_v_dflux_vmom_du = 0;
26982  PyArrayObject *__pyx_v_dflux_vmom_dv = 0;
26983  PyArrayObject *__pyx_v_velocity = 0;
26984  int __pyx_lineno = 0;
26985  const char *__pyx_filename = NULL;
26986  int __pyx_clineno = 0;
26987  PyObject *__pyx_r = 0;
26988  __Pyx_RefNannyDeclarations
26989  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D (wrapper)", 0);
26990  {
26991  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_p,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_isDOFBoundary_v,&__pyx_n_s_n,&__pyx_n_s_bc_p,&__pyx_n_s_bc_f_mass,&__pyx_n_s_bc_f_umom,&__pyx_n_s_bc_f_vmom,&__pyx_n_s_p,&__pyx_n_s_oneByRho,&__pyx_n_s_f_mass,&__pyx_n_s_f_umom,&__pyx_n_s_f_vmom,&__pyx_n_s_df_mass_du,&__pyx_n_s_df_mass_dv,&__pyx_n_s_df_umom_dp,&__pyx_n_s_df_umom_du,&__pyx_n_s_df_umom_dv,&__pyx_n_s_df_vmom_dp,&__pyx_n_s_df_vmom_du,&__pyx_n_s_df_vmom_dv,&__pyx_n_s_flux_mass,&__pyx_n_s_flux_umom,&__pyx_n_s_flux_vmom,&__pyx_n_s_dflux_mass_dp,&__pyx_n_s_dflux_mass_du,&__pyx_n_s_dflux_mass_dv,&__pyx_n_s_dflux_umom_dp,&__pyx_n_s_dflux_umom_du,&__pyx_n_s_dflux_umom_dv,&__pyx_n_s_dflux_vmom_dp,&__pyx_n_s_dflux_vmom_du,&__pyx_n_s_dflux_vmom_dv,&__pyx_n_s_velocity,0};
26992  PyObject* values[40] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
26993  if (unlikely(__pyx_kwds)) {
26994  Py_ssize_t kw_args;
26995  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
26996  switch (pos_args) {
26997  case 40: values[39] = PyTuple_GET_ITEM(__pyx_args, 39);
26998  CYTHON_FALLTHROUGH;
26999  case 39: values[38] = PyTuple_GET_ITEM(__pyx_args, 38);
27000  CYTHON_FALLTHROUGH;
27001  case 38: values[37] = PyTuple_GET_ITEM(__pyx_args, 37);
27002  CYTHON_FALLTHROUGH;
27003  case 37: values[36] = PyTuple_GET_ITEM(__pyx_args, 36);
27004  CYTHON_FALLTHROUGH;
27005  case 36: values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
27006  CYTHON_FALLTHROUGH;
27007  case 35: values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
27008  CYTHON_FALLTHROUGH;
27009  case 34: values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
27010  CYTHON_FALLTHROUGH;
27011  case 33: values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
27012  CYTHON_FALLTHROUGH;
27013  case 32: values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
27014  CYTHON_FALLTHROUGH;
27015  case 31: values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
27016  CYTHON_FALLTHROUGH;
27017  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
27018  CYTHON_FALLTHROUGH;
27019  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
27020  CYTHON_FALLTHROUGH;
27021  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
27022  CYTHON_FALLTHROUGH;
27023  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
27024  CYTHON_FALLTHROUGH;
27025  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
27026  CYTHON_FALLTHROUGH;
27027  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
27028  CYTHON_FALLTHROUGH;
27029  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
27030  CYTHON_FALLTHROUGH;
27031  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
27032  CYTHON_FALLTHROUGH;
27033  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
27034  CYTHON_FALLTHROUGH;
27035  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
27036  CYTHON_FALLTHROUGH;
27037  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
27038  CYTHON_FALLTHROUGH;
27039  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
27040  CYTHON_FALLTHROUGH;
27041  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
27042  CYTHON_FALLTHROUGH;
27043  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
27044  CYTHON_FALLTHROUGH;
27045  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
27046  CYTHON_FALLTHROUGH;
27047  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
27048  CYTHON_FALLTHROUGH;
27049  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
27050  CYTHON_FALLTHROUGH;
27051  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
27052  CYTHON_FALLTHROUGH;
27053  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
27054  CYTHON_FALLTHROUGH;
27055  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
27056  CYTHON_FALLTHROUGH;
27057  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
27058  CYTHON_FALLTHROUGH;
27059  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
27060  CYTHON_FALLTHROUGH;
27061  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
27062  CYTHON_FALLTHROUGH;
27063  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
27064  CYTHON_FALLTHROUGH;
27065  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
27066  CYTHON_FALLTHROUGH;
27067  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
27068  CYTHON_FALLTHROUGH;
27069  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
27070  CYTHON_FALLTHROUGH;
27071  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
27072  CYTHON_FALLTHROUGH;
27073  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
27074  CYTHON_FALLTHROUGH;
27075  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
27076  CYTHON_FALLTHROUGH;
27077  case 0: break;
27078  default: goto __pyx_L5_argtuple_error;
27079  }
27080  kw_args = PyDict_Size(__pyx_kwds);
27081  switch (pos_args) {
27082  case 0:
27083  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
27084  else goto __pyx_L5_argtuple_error;
27085  CYTHON_FALLTHROUGH;
27086  case 1:
27087  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
27088  else {
27089  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 1); __PYX_ERR(0, 5533, __pyx_L3_error)
27090  }
27091  CYTHON_FALLTHROUGH;
27092  case 2:
27093  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
27094  else {
27095  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 2); __PYX_ERR(0, 5533, __pyx_L3_error)
27096  }
27097  CYTHON_FALLTHROUGH;
27098  case 3:
27099  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
27100  else {
27101  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 3); __PYX_ERR(0, 5533, __pyx_L3_error)
27102  }
27103  CYTHON_FALLTHROUGH;
27104  case 4:
27105  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
27106  else {
27107  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 4); __PYX_ERR(0, 5533, __pyx_L3_error)
27108  }
27109  CYTHON_FALLTHROUGH;
27110  case 5:
27111  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
27112  else {
27113  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 5); __PYX_ERR(0, 5533, __pyx_L3_error)
27114  }
27115  CYTHON_FALLTHROUGH;
27116  case 6:
27117  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_p)) != 0)) kw_args--;
27118  else {
27119  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 6); __PYX_ERR(0, 5533, __pyx_L3_error)
27120  }
27121  CYTHON_FALLTHROUGH;
27122  case 7:
27123  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
27124  else {
27125  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 7); __PYX_ERR(0, 5533, __pyx_L3_error)
27126  }
27127  CYTHON_FALLTHROUGH;
27128  case 8:
27129  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_v)) != 0)) kw_args--;
27130  else {
27131  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 8); __PYX_ERR(0, 5533, __pyx_L3_error)
27132  }
27133  CYTHON_FALLTHROUGH;
27134  case 9:
27135  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
27136  else {
27137  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 9); __PYX_ERR(0, 5533, __pyx_L3_error)
27138  }
27139  CYTHON_FALLTHROUGH;
27140  case 10:
27141  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_p)) != 0)) kw_args--;
27142  else {
27143  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 10); __PYX_ERR(0, 5533, __pyx_L3_error)
27144  }
27145  CYTHON_FALLTHROUGH;
27146  case 11:
27147  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_mass)) != 0)) kw_args--;
27148  else {
27149  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 11); __PYX_ERR(0, 5533, __pyx_L3_error)
27150  }
27151  CYTHON_FALLTHROUGH;
27152  case 12:
27153  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_umom)) != 0)) kw_args--;
27154  else {
27155  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 12); __PYX_ERR(0, 5533, __pyx_L3_error)
27156  }
27157  CYTHON_FALLTHROUGH;
27158  case 13:
27159  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_vmom)) != 0)) kw_args--;
27160  else {
27161  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 13); __PYX_ERR(0, 5533, __pyx_L3_error)
27162  }
27163  CYTHON_FALLTHROUGH;
27164  case 14:
27165  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--;
27166  else {
27167  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 14); __PYX_ERR(0, 5533, __pyx_L3_error)
27168  }
27169  CYTHON_FALLTHROUGH;
27170  case 15:
27171  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_oneByRho)) != 0)) kw_args--;
27172  else {
27173  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 15); __PYX_ERR(0, 5533, __pyx_L3_error)
27174  }
27175  CYTHON_FALLTHROUGH;
27176  case 16:
27177  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_mass)) != 0)) kw_args--;
27178  else {
27179  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 16); __PYX_ERR(0, 5533, __pyx_L3_error)
27180  }
27181  CYTHON_FALLTHROUGH;
27182  case 17:
27183  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_umom)) != 0)) kw_args--;
27184  else {
27185  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 17); __PYX_ERR(0, 5533, __pyx_L3_error)
27186  }
27187  CYTHON_FALLTHROUGH;
27188  case 18:
27189  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_vmom)) != 0)) kw_args--;
27190  else {
27191  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 18); __PYX_ERR(0, 5533, __pyx_L3_error)
27192  }
27193  CYTHON_FALLTHROUGH;
27194  case 19:
27195  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_du)) != 0)) kw_args--;
27196  else {
27197  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 19); __PYX_ERR(0, 5533, __pyx_L3_error)
27198  }
27199  CYTHON_FALLTHROUGH;
27200  case 20:
27201  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_dv)) != 0)) kw_args--;
27202  else {
27203  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 20); __PYX_ERR(0, 5533, __pyx_L3_error)
27204  }
27205  CYTHON_FALLTHROUGH;
27206  case 21:
27207  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_umom_dp)) != 0)) kw_args--;
27208  else {
27209  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 21); __PYX_ERR(0, 5533, __pyx_L3_error)
27210  }
27211  CYTHON_FALLTHROUGH;
27212  case 22:
27213  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_umom_du)) != 0)) kw_args--;
27214  else {
27215  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 22); __PYX_ERR(0, 5533, __pyx_L3_error)
27216  }
27217  CYTHON_FALLTHROUGH;
27218  case 23:
27219  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_umom_dv)) != 0)) kw_args--;
27220  else {
27221  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 23); __PYX_ERR(0, 5533, __pyx_L3_error)
27222  }
27223  CYTHON_FALLTHROUGH;
27224  case 24:
27225  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_vmom_dp)) != 0)) kw_args--;
27226  else {
27227  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 24); __PYX_ERR(0, 5533, __pyx_L3_error)
27228  }
27229  CYTHON_FALLTHROUGH;
27230  case 25:
27231  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_vmom_du)) != 0)) kw_args--;
27232  else {
27233  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 25); __PYX_ERR(0, 5533, __pyx_L3_error)
27234  }
27235  CYTHON_FALLTHROUGH;
27236  case 26:
27237  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_vmom_dv)) != 0)) kw_args--;
27238  else {
27239  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 26); __PYX_ERR(0, 5533, __pyx_L3_error)
27240  }
27241  CYTHON_FALLTHROUGH;
27242  case 27:
27243  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_mass)) != 0)) kw_args--;
27244  else {
27245  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 27); __PYX_ERR(0, 5533, __pyx_L3_error)
27246  }
27247  CYTHON_FALLTHROUGH;
27248  case 28:
27249  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_umom)) != 0)) kw_args--;
27250  else {
27251  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 28); __PYX_ERR(0, 5533, __pyx_L3_error)
27252  }
27253  CYTHON_FALLTHROUGH;
27254  case 29:
27255  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_vmom)) != 0)) kw_args--;
27256  else {
27257  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 29); __PYX_ERR(0, 5533, __pyx_L3_error)
27258  }
27259  CYTHON_FALLTHROUGH;
27260  case 30:
27261  if (likely((values[30] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_dp)) != 0)) kw_args--;
27262  else {
27263  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 30); __PYX_ERR(0, 5533, __pyx_L3_error)
27264  }
27265  CYTHON_FALLTHROUGH;
27266  case 31:
27267  if (likely((values[31] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_du)) != 0)) kw_args--;
27268  else {
27269  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 31); __PYX_ERR(0, 5533, __pyx_L3_error)
27270  }
27271  CYTHON_FALLTHROUGH;
27272  case 32:
27273  if (likely((values[32] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_dv)) != 0)) kw_args--;
27274  else {
27275  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 32); __PYX_ERR(0, 5533, __pyx_L3_error)
27276  }
27277  CYTHON_FALLTHROUGH;
27278  case 33:
27279  if (likely((values[33] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_dp)) != 0)) kw_args--;
27280  else {
27281  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 33); __PYX_ERR(0, 5533, __pyx_L3_error)
27282  }
27283  CYTHON_FALLTHROUGH;
27284  case 34:
27285  if (likely((values[34] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_du)) != 0)) kw_args--;
27286  else {
27287  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 34); __PYX_ERR(0, 5533, __pyx_L3_error)
27288  }
27289  CYTHON_FALLTHROUGH;
27290  case 35:
27291  if (likely((values[35] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_dv)) != 0)) kw_args--;
27292  else {
27293  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 35); __PYX_ERR(0, 5533, __pyx_L3_error)
27294  }
27295  CYTHON_FALLTHROUGH;
27296  case 36:
27297  if (likely((values[36] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_dp)) != 0)) kw_args--;
27298  else {
27299  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 36); __PYX_ERR(0, 5533, __pyx_L3_error)
27300  }
27301  CYTHON_FALLTHROUGH;
27302  case 37:
27303  if (likely((values[37] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_du)) != 0)) kw_args--;
27304  else {
27305  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 37); __PYX_ERR(0, 5533, __pyx_L3_error)
27306  }
27307  CYTHON_FALLTHROUGH;
27308  case 38:
27309  if (likely((values[38] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_dv)) != 0)) kw_args--;
27310  else {
27311  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 38); __PYX_ERR(0, 5533, __pyx_L3_error)
27312  }
27313  CYTHON_FALLTHROUGH;
27314  case 39:
27315  if (likely((values[39] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_velocity)) != 0)) kw_args--;
27316  else {
27317  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, 39); __PYX_ERR(0, 5533, __pyx_L3_error)
27318  }
27319  }
27320  if (unlikely(kw_args > 0)) {
27321  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D") < 0)) __PYX_ERR(0, 5533, __pyx_L3_error)
27322  }
27323  } else if (PyTuple_GET_SIZE(__pyx_args) != 40) {
27324  goto __pyx_L5_argtuple_error;
27325  } else {
27326  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
27327  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
27328  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
27329  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
27330  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
27331  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
27332  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
27333  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
27334  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
27335  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
27336  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
27337  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
27338  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
27339  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
27340  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
27341  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
27342  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
27343  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
27344  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
27345  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
27346  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
27347  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
27348  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
27349  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
27350  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
27351  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
27352  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
27353  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
27354  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
27355  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
27356  values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
27357  values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
27358  values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
27359  values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
27360  values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
27361  values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
27362  values[36] = PyTuple_GET_ITEM(__pyx_args, 36);
27363  values[37] = PyTuple_GET_ITEM(__pyx_args, 37);
27364  values[38] = PyTuple_GET_ITEM(__pyx_args, 38);
27365  values[39] = PyTuple_GET_ITEM(__pyx_args, 39);
27366  }
27367  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5533, __pyx_L3_error)
27368  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5534, __pyx_L3_error)
27369  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5535, __pyx_L3_error)
27370  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
27371  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
27372  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
27373  __pyx_v_isDOFBoundary_p = ((PyArrayObject *)values[6]);
27374  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[7]);
27375  __pyx_v_isDOFBoundary_v = ((PyArrayObject *)values[8]);
27376  __pyx_v_n = ((PyArrayObject *)values[9]);
27377  __pyx_v_bc_p = ((PyArrayObject *)values[10]);
27378  __pyx_v_bc_f_mass = ((PyArrayObject *)values[11]);
27379  __pyx_v_bc_f_umom = ((PyArrayObject *)values[12]);
27380  __pyx_v_bc_f_vmom = ((PyArrayObject *)values[13]);
27381  __pyx_v_p = ((PyArrayObject *)values[14]);
27382  __pyx_v_oneByRho = ((PyArrayObject *)values[15]);
27383  __pyx_v_f_mass = ((PyArrayObject *)values[16]);
27384  __pyx_v_f_umom = ((PyArrayObject *)values[17]);
27385  __pyx_v_f_vmom = ((PyArrayObject *)values[18]);
27386  __pyx_v_df_mass_du = ((PyArrayObject *)values[19]);
27387  __pyx_v_df_mass_dv = ((PyArrayObject *)values[20]);
27388  __pyx_v_df_umom_dp = ((PyArrayObject *)values[21]);
27389  __pyx_v_df_umom_du = ((PyArrayObject *)values[22]);
27390  __pyx_v_df_umom_dv = ((PyArrayObject *)values[23]);
27391  __pyx_v_df_vmom_dp = ((PyArrayObject *)values[24]);
27392  __pyx_v_df_vmom_du = ((PyArrayObject *)values[25]);
27393  __pyx_v_df_vmom_dv = ((PyArrayObject *)values[26]);
27394  __pyx_v_flux_mass = ((PyArrayObject *)values[27]);
27395  __pyx_v_flux_umom = ((PyArrayObject *)values[28]);
27396  __pyx_v_flux_vmom = ((PyArrayObject *)values[29]);
27397  __pyx_v_dflux_mass_dp = ((PyArrayObject *)values[30]);
27398  __pyx_v_dflux_mass_du = ((PyArrayObject *)values[31]);
27399  __pyx_v_dflux_mass_dv = ((PyArrayObject *)values[32]);
27400  __pyx_v_dflux_umom_dp = ((PyArrayObject *)values[33]);
27401  __pyx_v_dflux_umom_du = ((PyArrayObject *)values[34]);
27402  __pyx_v_dflux_umom_dv = ((PyArrayObject *)values[35]);
27403  __pyx_v_dflux_vmom_dp = ((PyArrayObject *)values[36]);
27404  __pyx_v_dflux_vmom_du = ((PyArrayObject *)values[37]);
27405  __pyx_v_dflux_vmom_dv = ((PyArrayObject *)values[38]);
27406  __pyx_v_velocity = ((PyArrayObject *)values[39]);
27407  }
27408  goto __pyx_L4_argument_unpacking_done;
27409  __pyx_L5_argtuple_error:;
27410  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 1, 40, 40, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5533, __pyx_L3_error)
27411  __pyx_L3_error:;
27412  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
27413  __Pyx_RefNannyFinishContext();
27414  return NULL;
27415  __pyx_L4_argument_unpacking_done:;
27416  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5536, __pyx_L1_error)
27417  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5537, __pyx_L1_error)
27418  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5538, __pyx_L1_error)
27419  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_p), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_p", 0))) __PYX_ERR(0, 5539, __pyx_L1_error)
27420  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 5540, __pyx_L1_error)
27421  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_v", 0))) __PYX_ERR(0, 5541, __pyx_L1_error)
27422  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5542, __pyx_L1_error)
27423  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_p), __pyx_ptype_5numpy_ndarray, 1, "bc_p", 0))) __PYX_ERR(0, 5543, __pyx_L1_error)
27424  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_mass), __pyx_ptype_5numpy_ndarray, 1, "bc_f_mass", 0))) __PYX_ERR(0, 5544, __pyx_L1_error)
27425  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_umom), __pyx_ptype_5numpy_ndarray, 1, "bc_f_umom", 0))) __PYX_ERR(0, 5545, __pyx_L1_error)
27426  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_vmom), __pyx_ptype_5numpy_ndarray, 1, "bc_f_vmom", 0))) __PYX_ERR(0, 5546, __pyx_L1_error)
27427  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p), __pyx_ptype_5numpy_ndarray, 1, "p", 0))) __PYX_ERR(0, 5547, __pyx_L1_error)
27428  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_oneByRho), __pyx_ptype_5numpy_ndarray, 1, "oneByRho", 0))) __PYX_ERR(0, 5548, __pyx_L1_error)
27429  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_mass), __pyx_ptype_5numpy_ndarray, 1, "f_mass", 0))) __PYX_ERR(0, 5549, __pyx_L1_error)
27430  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_umom), __pyx_ptype_5numpy_ndarray, 1, "f_umom", 0))) __PYX_ERR(0, 5550, __pyx_L1_error)
27431  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_vmom), __pyx_ptype_5numpy_ndarray, 1, "f_vmom", 0))) __PYX_ERR(0, 5551, __pyx_L1_error)
27432  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_du), __pyx_ptype_5numpy_ndarray, 1, "df_mass_du", 0))) __PYX_ERR(0, 5552, __pyx_L1_error)
27433  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "df_mass_dv", 0))) __PYX_ERR(0, 5553, __pyx_L1_error)
27434  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_umom_dp), __pyx_ptype_5numpy_ndarray, 1, "df_umom_dp", 0))) __PYX_ERR(0, 5554, __pyx_L1_error)
27435  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_umom_du), __pyx_ptype_5numpy_ndarray, 1, "df_umom_du", 0))) __PYX_ERR(0, 5555, __pyx_L1_error)
27436  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_umom_dv), __pyx_ptype_5numpy_ndarray, 1, "df_umom_dv", 0))) __PYX_ERR(0, 5556, __pyx_L1_error)
27437  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_vmom_dp), __pyx_ptype_5numpy_ndarray, 1, "df_vmom_dp", 0))) __PYX_ERR(0, 5557, __pyx_L1_error)
27438  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_vmom_du), __pyx_ptype_5numpy_ndarray, 1, "df_vmom_du", 0))) __PYX_ERR(0, 5558, __pyx_L1_error)
27439  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_vmom_dv), __pyx_ptype_5numpy_ndarray, 1, "df_vmom_dv", 0))) __PYX_ERR(0, 5559, __pyx_L1_error)
27440  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_mass), __pyx_ptype_5numpy_ndarray, 1, "flux_mass", 0))) __PYX_ERR(0, 5560, __pyx_L1_error)
27441  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_umom), __pyx_ptype_5numpy_ndarray, 1, "flux_umom", 0))) __PYX_ERR(0, 5561, __pyx_L1_error)
27442  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_vmom), __pyx_ptype_5numpy_ndarray, 1, "flux_vmom", 0))) __PYX_ERR(0, 5562, __pyx_L1_error)
27443  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_dp", 0))) __PYX_ERR(0, 5563, __pyx_L1_error)
27444  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_du", 0))) __PYX_ERR(0, 5564, __pyx_L1_error)
27445  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_dv", 0))) __PYX_ERR(0, 5565, __pyx_L1_error)
27446  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_dp", 0))) __PYX_ERR(0, 5566, __pyx_L1_error)
27447  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_du", 0))) __PYX_ERR(0, 5567, __pyx_L1_error)
27448  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_dv", 0))) __PYX_ERR(0, 5568, __pyx_L1_error)
27449  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_dp", 0))) __PYX_ERR(0, 5569, __pyx_L1_error)
27450  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_du", 0))) __PYX_ERR(0, 5570, __pyx_L1_error)
27451  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_dv", 0))) __PYX_ERR(0, 5571, __pyx_L1_error)
27452  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_velocity), __pyx_ptype_5numpy_ndarray, 1, "velocity", 0))) __PYX_ERR(0, 5572, __pyx_L1_error)
27453  __pyx_r = __pyx_pf_14cnumericalFlux_152calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_p, __pyx_v_isDOFBoundary_u, __pyx_v_isDOFBoundary_v, __pyx_v_n, __pyx_v_bc_p, __pyx_v_bc_f_mass, __pyx_v_bc_f_umom, __pyx_v_bc_f_vmom, __pyx_v_p, __pyx_v_oneByRho, __pyx_v_f_mass, __pyx_v_f_umom, __pyx_v_f_vmom, __pyx_v_df_mass_du, __pyx_v_df_mass_dv, __pyx_v_df_umom_dp, __pyx_v_df_umom_du, __pyx_v_df_umom_dv, __pyx_v_df_vmom_dp, __pyx_v_df_vmom_du, __pyx_v_df_vmom_dv, __pyx_v_flux_mass, __pyx_v_flux_umom, __pyx_v_flux_vmom, __pyx_v_dflux_mass_dp, __pyx_v_dflux_mass_du, __pyx_v_dflux_mass_dv, __pyx_v_dflux_umom_dp, __pyx_v_dflux_umom_du, __pyx_v_dflux_umom_dv, __pyx_v_dflux_vmom_dp, __pyx_v_dflux_vmom_du, __pyx_v_dflux_vmom_dv, __pyx_v_velocity);
27454 
27455  /* function exit code */
27456  goto __pyx_L0;
27457  __pyx_L1_error:;
27458  __pyx_r = NULL;
27459  __pyx_L0:;
27460  __Pyx_RefNannyFinishContext();
27461  return __pyx_r;
27462 }
27463 
27464 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) {
27465  PyObject *__pyx_r = NULL;
27466  __Pyx_RefNannyDeclarations
27467  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D", 0);
27468 
27469  /* "cnumericalFlux.pyx":5573
27470  * np.ndarray dflux_vmom_dv,
27471  * np.ndarray velocity):
27472  * ccalculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
27473  * nQuadraturePoints_elementBoundary,
27474  * nSpace,
27475  */
27476  calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_p->data), ((double *)__pyx_v_bc_f_mass->data), ((double *)__pyx_v_bc_f_umom->data), ((double *)__pyx_v_bc_f_vmom->data), ((double *)__pyx_v_p->data), ((double *)__pyx_v_oneByRho->data), ((double *)__pyx_v_f_mass->data), ((double *)__pyx_v_f_umom->data), ((double *)__pyx_v_f_vmom->data), ((double *)__pyx_v_df_mass_du->data), ((double *)__pyx_v_df_mass_dv->data), ((double *)__pyx_v_df_umom_dp->data), ((double *)__pyx_v_df_umom_du->data), ((double *)__pyx_v_df_umom_dv->data), ((double *)__pyx_v_df_vmom_dp->data), ((double *)__pyx_v_df_vmom_du->data), ((double *)__pyx_v_df_vmom_dv->data), ((double *)__pyx_v_flux_mass->data), ((double *)__pyx_v_flux_umom->data), ((double *)__pyx_v_flux_vmom->data), ((double *)__pyx_v_dflux_mass_dp->data), ((double *)__pyx_v_dflux_mass_du->data), ((double *)__pyx_v_dflux_mass_dv->data), ((double *)__pyx_v_dflux_umom_dp->data), ((double *)__pyx_v_dflux_umom_du->data), ((double *)__pyx_v_dflux_umom_dv->data), ((double *)__pyx_v_dflux_vmom_dp->data), ((double *)__pyx_v_dflux_vmom_du->data), ((double *)__pyx_v_dflux_vmom_dv->data), ((double *)__pyx_v_velocity->data));
27477 
27478  /* "cnumericalFlux.pyx":5533
27479  * <double*> dflux_vmom_dv.data,
27480  * <double*> velocity.data)
27481  * def calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
27482  * int nQuadraturePoints_elementBoundary,
27483  * int nSpace,
27484  */
27485 
27486  /* function exit code */
27487  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
27488  __Pyx_XGIVEREF(__pyx_r);
27489  __Pyx_RefNannyFinishContext();
27490  return __pyx_r;
27491 }
27492 
27493 /* "cnumericalFlux.pyx":5613
27494  * <double*> dflux_vmom_dv.data,
27495  * <double*> velocity.data)
27496  * def calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
27497  * int nQuadraturePoints_elementBoundary,
27498  * int nSpace,
27499  */
27500 
27501 /* Python wrapper */
27502 static PyObject *__pyx_pw_14cnumericalFlux_155calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
27503 static PyMethodDef __pyx_mdef_14cnumericalFlux_155calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D = {"calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_155calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D, METH_VARARGS|METH_KEYWORDS, 0};
27504 static PyObject *__pyx_pw_14cnumericalFlux_155calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
27505  int __pyx_v_nExteriorElementBoundaries_global;
27506  int __pyx_v_nQuadraturePoints_elementBoundary;
27507  int __pyx_v_nSpace;
27508  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
27509  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
27510  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
27511  PyArrayObject *__pyx_v_isDOFBoundary_p = 0;
27512  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
27513  PyArrayObject *__pyx_v_isDOFBoundary_v = 0;
27514  PyArrayObject *__pyx_v_isDOFBoundary_w = 0;
27515  PyArrayObject *__pyx_v_n = 0;
27516  PyArrayObject *__pyx_v_bc_p = 0;
27517  PyArrayObject *__pyx_v_bc_f_mass = 0;
27518  PyArrayObject *__pyx_v_bc_f_umom = 0;
27519  PyArrayObject *__pyx_v_bc_f_vmom = 0;
27520  PyArrayObject *__pyx_v_bc_f_wmom = 0;
27521  PyArrayObject *__pyx_v_p = 0;
27522  PyArrayObject *__pyx_v_f_mass = 0;
27523  PyArrayObject *__pyx_v_f_umom = 0;
27524  PyArrayObject *__pyx_v_f_vmom = 0;
27525  PyArrayObject *__pyx_v_f_wmom = 0;
27526  PyArrayObject *__pyx_v_df_mass_du = 0;
27527  PyArrayObject *__pyx_v_df_mass_dv = 0;
27528  PyArrayObject *__pyx_v_df_mass_dw = 0;
27529  PyArrayObject *__pyx_v_df_umom_dp = 0;
27530  PyArrayObject *__pyx_v_df_umom_du = 0;
27531  PyArrayObject *__pyx_v_df_umom_dv = 0;
27532  PyArrayObject *__pyx_v_df_umom_dw = 0;
27533  PyArrayObject *__pyx_v_df_vmom_dp = 0;
27534  PyArrayObject *__pyx_v_df_vmom_du = 0;
27535  PyArrayObject *__pyx_v_df_vmom_dv = 0;
27536  PyArrayObject *__pyx_v_df_vmom_dw = 0;
27537  PyArrayObject *__pyx_v_df_wmom_dp = 0;
27538  PyArrayObject *__pyx_v_df_wmom_du = 0;
27539  PyArrayObject *__pyx_v_df_wmom_dv = 0;
27540  PyArrayObject *__pyx_v_df_wmom_dw = 0;
27541  PyArrayObject *__pyx_v_flux_mass = 0;
27542  PyArrayObject *__pyx_v_flux_umom = 0;
27543  PyArrayObject *__pyx_v_flux_vmom = 0;
27544  PyArrayObject *__pyx_v_flux_wmom = 0;
27545  PyArrayObject *__pyx_v_dflux_mass_du = 0;
27546  PyArrayObject *__pyx_v_dflux_mass_dv = 0;
27547  PyArrayObject *__pyx_v_dflux_mass_dw = 0;
27548  PyArrayObject *__pyx_v_dflux_umom_dp = 0;
27549  PyArrayObject *__pyx_v_dflux_umom_du = 0;
27550  PyArrayObject *__pyx_v_dflux_umom_dv = 0;
27551  PyArrayObject *__pyx_v_dflux_umom_dw = 0;
27552  PyArrayObject *__pyx_v_dflux_vmom_dp = 0;
27553  PyArrayObject *__pyx_v_dflux_vmom_du = 0;
27554  PyArrayObject *__pyx_v_dflux_vmom_dv = 0;
27555  PyArrayObject *__pyx_v_dflux_vmom_dw = 0;
27556  PyArrayObject *__pyx_v_dflux_wmom_dp = 0;
27557  PyArrayObject *__pyx_v_dflux_wmom_du = 0;
27558  PyArrayObject *__pyx_v_dflux_wmom_dv = 0;
27559  PyArrayObject *__pyx_v_dflux_wmom_dw = 0;
27560  PyArrayObject *__pyx_v_velocity = 0;
27561  int __pyx_lineno = 0;
27562  const char *__pyx_filename = NULL;
27563  int __pyx_clineno = 0;
27564  PyObject *__pyx_r = 0;
27565  __Pyx_RefNannyDeclarations
27566  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D (wrapper)", 0);
27567  {
27568  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_p,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_isDOFBoundary_v,&__pyx_n_s_isDOFBoundary_w,&__pyx_n_s_n,&__pyx_n_s_bc_p,&__pyx_n_s_bc_f_mass,&__pyx_n_s_bc_f_umom,&__pyx_n_s_bc_f_vmom,&__pyx_n_s_bc_f_wmom,&__pyx_n_s_p,&__pyx_n_s_f_mass,&__pyx_n_s_f_umom,&__pyx_n_s_f_vmom,&__pyx_n_s_f_wmom,&__pyx_n_s_df_mass_du,&__pyx_n_s_df_mass_dv,&__pyx_n_s_df_mass_dw,&__pyx_n_s_df_umom_dp,&__pyx_n_s_df_umom_du,&__pyx_n_s_df_umom_dv,&__pyx_n_s_df_umom_dw,&__pyx_n_s_df_vmom_dp,&__pyx_n_s_df_vmom_du,&__pyx_n_s_df_vmom_dv,&__pyx_n_s_df_vmom_dw,&__pyx_n_s_df_wmom_dp,&__pyx_n_s_df_wmom_du,&__pyx_n_s_df_wmom_dv,&__pyx_n_s_df_wmom_dw,&__pyx_n_s_flux_mass,&__pyx_n_s_flux_umom,&__pyx_n_s_flux_vmom,&__pyx_n_s_flux_wmom,&__pyx_n_s_dflux_mass_du,&__pyx_n_s_dflux_mass_dv,&__pyx_n_s_dflux_mass_dw,&__pyx_n_s_dflux_umom_dp,&__pyx_n_s_dflux_umom_du,&__pyx_n_s_dflux_umom_dv,&__pyx_n_s_dflux_umom_dw,&__pyx_n_s_dflux_vmom_dp,&__pyx_n_s_dflux_vmom_du,&__pyx_n_s_dflux_vmom_dv,&__pyx_n_s_dflux_vmom_dw,&__pyx_n_s_dflux_wmom_dp,&__pyx_n_s_dflux_wmom_du,&__pyx_n_s_dflux_wmom_dv,&__pyx_n_s_dflux_wmom_dw,&__pyx_n_s_velocity,0};
27569  PyObject* values[56] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
27570  if (unlikely(__pyx_kwds)) {
27571  Py_ssize_t kw_args;
27572  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
27573  switch (pos_args) {
27574  case 56: values[55] = PyTuple_GET_ITEM(__pyx_args, 55);
27575  CYTHON_FALLTHROUGH;
27576  case 55: values[54] = PyTuple_GET_ITEM(__pyx_args, 54);
27577  CYTHON_FALLTHROUGH;
27578  case 54: values[53] = PyTuple_GET_ITEM(__pyx_args, 53);
27579  CYTHON_FALLTHROUGH;
27580  case 53: values[52] = PyTuple_GET_ITEM(__pyx_args, 52);
27581  CYTHON_FALLTHROUGH;
27582  case 52: values[51] = PyTuple_GET_ITEM(__pyx_args, 51);
27583  CYTHON_FALLTHROUGH;
27584  case 51: values[50] = PyTuple_GET_ITEM(__pyx_args, 50);
27585  CYTHON_FALLTHROUGH;
27586  case 50: values[49] = PyTuple_GET_ITEM(__pyx_args, 49);
27587  CYTHON_FALLTHROUGH;
27588  case 49: values[48] = PyTuple_GET_ITEM(__pyx_args, 48);
27589  CYTHON_FALLTHROUGH;
27590  case 48: values[47] = PyTuple_GET_ITEM(__pyx_args, 47);
27591  CYTHON_FALLTHROUGH;
27592  case 47: values[46] = PyTuple_GET_ITEM(__pyx_args, 46);
27593  CYTHON_FALLTHROUGH;
27594  case 46: values[45] = PyTuple_GET_ITEM(__pyx_args, 45);
27595  CYTHON_FALLTHROUGH;
27596  case 45: values[44] = PyTuple_GET_ITEM(__pyx_args, 44);
27597  CYTHON_FALLTHROUGH;
27598  case 44: values[43] = PyTuple_GET_ITEM(__pyx_args, 43);
27599  CYTHON_FALLTHROUGH;
27600  case 43: values[42] = PyTuple_GET_ITEM(__pyx_args, 42);
27601  CYTHON_FALLTHROUGH;
27602  case 42: values[41] = PyTuple_GET_ITEM(__pyx_args, 41);
27603  CYTHON_FALLTHROUGH;
27604  case 41: values[40] = PyTuple_GET_ITEM(__pyx_args, 40);
27605  CYTHON_FALLTHROUGH;
27606  case 40: values[39] = PyTuple_GET_ITEM(__pyx_args, 39);
27607  CYTHON_FALLTHROUGH;
27608  case 39: values[38] = PyTuple_GET_ITEM(__pyx_args, 38);
27609  CYTHON_FALLTHROUGH;
27610  case 38: values[37] = PyTuple_GET_ITEM(__pyx_args, 37);
27611  CYTHON_FALLTHROUGH;
27612  case 37: values[36] = PyTuple_GET_ITEM(__pyx_args, 36);
27613  CYTHON_FALLTHROUGH;
27614  case 36: values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
27615  CYTHON_FALLTHROUGH;
27616  case 35: values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
27617  CYTHON_FALLTHROUGH;
27618  case 34: values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
27619  CYTHON_FALLTHROUGH;
27620  case 33: values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
27621  CYTHON_FALLTHROUGH;
27622  case 32: values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
27623  CYTHON_FALLTHROUGH;
27624  case 31: values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
27625  CYTHON_FALLTHROUGH;
27626  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
27627  CYTHON_FALLTHROUGH;
27628  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
27629  CYTHON_FALLTHROUGH;
27630  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
27631  CYTHON_FALLTHROUGH;
27632  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
27633  CYTHON_FALLTHROUGH;
27634  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
27635  CYTHON_FALLTHROUGH;
27636  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
27637  CYTHON_FALLTHROUGH;
27638  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
27639  CYTHON_FALLTHROUGH;
27640  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
27641  CYTHON_FALLTHROUGH;
27642  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
27643  CYTHON_FALLTHROUGH;
27644  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
27645  CYTHON_FALLTHROUGH;
27646  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
27647  CYTHON_FALLTHROUGH;
27648  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
27649  CYTHON_FALLTHROUGH;
27650  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
27651  CYTHON_FALLTHROUGH;
27652  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
27653  CYTHON_FALLTHROUGH;
27654  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
27655  CYTHON_FALLTHROUGH;
27656  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
27657  CYTHON_FALLTHROUGH;
27658  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
27659  CYTHON_FALLTHROUGH;
27660  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
27661  CYTHON_FALLTHROUGH;
27662  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
27663  CYTHON_FALLTHROUGH;
27664  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
27665  CYTHON_FALLTHROUGH;
27666  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
27667  CYTHON_FALLTHROUGH;
27668  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
27669  CYTHON_FALLTHROUGH;
27670  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
27671  CYTHON_FALLTHROUGH;
27672  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
27673  CYTHON_FALLTHROUGH;
27674  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
27675  CYTHON_FALLTHROUGH;
27676  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
27677  CYTHON_FALLTHROUGH;
27678  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
27679  CYTHON_FALLTHROUGH;
27680  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
27681  CYTHON_FALLTHROUGH;
27682  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
27683  CYTHON_FALLTHROUGH;
27684  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
27685  CYTHON_FALLTHROUGH;
27686  case 0: break;
27687  default: goto __pyx_L5_argtuple_error;
27688  }
27689  kw_args = PyDict_Size(__pyx_kwds);
27690  switch (pos_args) {
27691  case 0:
27692  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
27693  else goto __pyx_L5_argtuple_error;
27694  CYTHON_FALLTHROUGH;
27695  case 1:
27696  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
27697  else {
27698  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 1); __PYX_ERR(0, 5613, __pyx_L3_error)
27699  }
27700  CYTHON_FALLTHROUGH;
27701  case 2:
27702  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
27703  else {
27704  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 2); __PYX_ERR(0, 5613, __pyx_L3_error)
27705  }
27706  CYTHON_FALLTHROUGH;
27707  case 3:
27708  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
27709  else {
27710  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 3); __PYX_ERR(0, 5613, __pyx_L3_error)
27711  }
27712  CYTHON_FALLTHROUGH;
27713  case 4:
27714  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
27715  else {
27716  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 4); __PYX_ERR(0, 5613, __pyx_L3_error)
27717  }
27718  CYTHON_FALLTHROUGH;
27719  case 5:
27720  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
27721  else {
27722  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 5); __PYX_ERR(0, 5613, __pyx_L3_error)
27723  }
27724  CYTHON_FALLTHROUGH;
27725  case 6:
27726  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_p)) != 0)) kw_args--;
27727  else {
27728  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 6); __PYX_ERR(0, 5613, __pyx_L3_error)
27729  }
27730  CYTHON_FALLTHROUGH;
27731  case 7:
27732  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
27733  else {
27734  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 7); __PYX_ERR(0, 5613, __pyx_L3_error)
27735  }
27736  CYTHON_FALLTHROUGH;
27737  case 8:
27738  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_v)) != 0)) kw_args--;
27739  else {
27740  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 8); __PYX_ERR(0, 5613, __pyx_L3_error)
27741  }
27742  CYTHON_FALLTHROUGH;
27743  case 9:
27744  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_w)) != 0)) kw_args--;
27745  else {
27746  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 9); __PYX_ERR(0, 5613, __pyx_L3_error)
27747  }
27748  CYTHON_FALLTHROUGH;
27749  case 10:
27750  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
27751  else {
27752  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 10); __PYX_ERR(0, 5613, __pyx_L3_error)
27753  }
27754  CYTHON_FALLTHROUGH;
27755  case 11:
27756  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_p)) != 0)) kw_args--;
27757  else {
27758  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 11); __PYX_ERR(0, 5613, __pyx_L3_error)
27759  }
27760  CYTHON_FALLTHROUGH;
27761  case 12:
27762  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_mass)) != 0)) kw_args--;
27763  else {
27764  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 12); __PYX_ERR(0, 5613, __pyx_L3_error)
27765  }
27766  CYTHON_FALLTHROUGH;
27767  case 13:
27768  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_umom)) != 0)) kw_args--;
27769  else {
27770  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 13); __PYX_ERR(0, 5613, __pyx_L3_error)
27771  }
27772  CYTHON_FALLTHROUGH;
27773  case 14:
27774  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_vmom)) != 0)) kw_args--;
27775  else {
27776  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 14); __PYX_ERR(0, 5613, __pyx_L3_error)
27777  }
27778  CYTHON_FALLTHROUGH;
27779  case 15:
27780  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_wmom)) != 0)) kw_args--;
27781  else {
27782  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 15); __PYX_ERR(0, 5613, __pyx_L3_error)
27783  }
27784  CYTHON_FALLTHROUGH;
27785  case 16:
27786  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--;
27787  else {
27788  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 16); __PYX_ERR(0, 5613, __pyx_L3_error)
27789  }
27790  CYTHON_FALLTHROUGH;
27791  case 17:
27792  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_mass)) != 0)) kw_args--;
27793  else {
27794  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 17); __PYX_ERR(0, 5613, __pyx_L3_error)
27795  }
27796  CYTHON_FALLTHROUGH;
27797  case 18:
27798  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_umom)) != 0)) kw_args--;
27799  else {
27800  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 18); __PYX_ERR(0, 5613, __pyx_L3_error)
27801  }
27802  CYTHON_FALLTHROUGH;
27803  case 19:
27804  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_vmom)) != 0)) kw_args--;
27805  else {
27806  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 19); __PYX_ERR(0, 5613, __pyx_L3_error)
27807  }
27808  CYTHON_FALLTHROUGH;
27809  case 20:
27810  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_wmom)) != 0)) kw_args--;
27811  else {
27812  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 20); __PYX_ERR(0, 5613, __pyx_L3_error)
27813  }
27814  CYTHON_FALLTHROUGH;
27815  case 21:
27816  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_du)) != 0)) kw_args--;
27817  else {
27818  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 21); __PYX_ERR(0, 5613, __pyx_L3_error)
27819  }
27820  CYTHON_FALLTHROUGH;
27821  case 22:
27822  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_dv)) != 0)) kw_args--;
27823  else {
27824  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 22); __PYX_ERR(0, 5613, __pyx_L3_error)
27825  }
27826  CYTHON_FALLTHROUGH;
27827  case 23:
27828  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_dw)) != 0)) kw_args--;
27829  else {
27830  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 23); __PYX_ERR(0, 5613, __pyx_L3_error)
27831  }
27832  CYTHON_FALLTHROUGH;
27833  case 24:
27834  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_umom_dp)) != 0)) kw_args--;
27835  else {
27836  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 24); __PYX_ERR(0, 5613, __pyx_L3_error)
27837  }
27838  CYTHON_FALLTHROUGH;
27839  case 25:
27840  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_umom_du)) != 0)) kw_args--;
27841  else {
27842  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 25); __PYX_ERR(0, 5613, __pyx_L3_error)
27843  }
27844  CYTHON_FALLTHROUGH;
27845  case 26:
27846  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_umom_dv)) != 0)) kw_args--;
27847  else {
27848  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 26); __PYX_ERR(0, 5613, __pyx_L3_error)
27849  }
27850  CYTHON_FALLTHROUGH;
27851  case 27:
27852  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_umom_dw)) != 0)) kw_args--;
27853  else {
27854  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 27); __PYX_ERR(0, 5613, __pyx_L3_error)
27855  }
27856  CYTHON_FALLTHROUGH;
27857  case 28:
27858  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_vmom_dp)) != 0)) kw_args--;
27859  else {
27860  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 28); __PYX_ERR(0, 5613, __pyx_L3_error)
27861  }
27862  CYTHON_FALLTHROUGH;
27863  case 29:
27864  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_vmom_du)) != 0)) kw_args--;
27865  else {
27866  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 29); __PYX_ERR(0, 5613, __pyx_L3_error)
27867  }
27868  CYTHON_FALLTHROUGH;
27869  case 30:
27870  if (likely((values[30] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_vmom_dv)) != 0)) kw_args--;
27871  else {
27872  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 30); __PYX_ERR(0, 5613, __pyx_L3_error)
27873  }
27874  CYTHON_FALLTHROUGH;
27875  case 31:
27876  if (likely((values[31] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_vmom_dw)) != 0)) kw_args--;
27877  else {
27878  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 31); __PYX_ERR(0, 5613, __pyx_L3_error)
27879  }
27880  CYTHON_FALLTHROUGH;
27881  case 32:
27882  if (likely((values[32] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_wmom_dp)) != 0)) kw_args--;
27883  else {
27884  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 32); __PYX_ERR(0, 5613, __pyx_L3_error)
27885  }
27886  CYTHON_FALLTHROUGH;
27887  case 33:
27888  if (likely((values[33] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_wmom_du)) != 0)) kw_args--;
27889  else {
27890  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 33); __PYX_ERR(0, 5613, __pyx_L3_error)
27891  }
27892  CYTHON_FALLTHROUGH;
27893  case 34:
27894  if (likely((values[34] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_wmom_dv)) != 0)) kw_args--;
27895  else {
27896  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 34); __PYX_ERR(0, 5613, __pyx_L3_error)
27897  }
27898  CYTHON_FALLTHROUGH;
27899  case 35:
27900  if (likely((values[35] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_wmom_dw)) != 0)) kw_args--;
27901  else {
27902  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 35); __PYX_ERR(0, 5613, __pyx_L3_error)
27903  }
27904  CYTHON_FALLTHROUGH;
27905  case 36:
27906  if (likely((values[36] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_mass)) != 0)) kw_args--;
27907  else {
27908  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 36); __PYX_ERR(0, 5613, __pyx_L3_error)
27909  }
27910  CYTHON_FALLTHROUGH;
27911  case 37:
27912  if (likely((values[37] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_umom)) != 0)) kw_args--;
27913  else {
27914  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 37); __PYX_ERR(0, 5613, __pyx_L3_error)
27915  }
27916  CYTHON_FALLTHROUGH;
27917  case 38:
27918  if (likely((values[38] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_vmom)) != 0)) kw_args--;
27919  else {
27920  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 38); __PYX_ERR(0, 5613, __pyx_L3_error)
27921  }
27922  CYTHON_FALLTHROUGH;
27923  case 39:
27924  if (likely((values[39] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_wmom)) != 0)) kw_args--;
27925  else {
27926  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 39); __PYX_ERR(0, 5613, __pyx_L3_error)
27927  }
27928  CYTHON_FALLTHROUGH;
27929  case 40:
27930  if (likely((values[40] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_du)) != 0)) kw_args--;
27931  else {
27932  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 40); __PYX_ERR(0, 5613, __pyx_L3_error)
27933  }
27934  CYTHON_FALLTHROUGH;
27935  case 41:
27936  if (likely((values[41] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_dv)) != 0)) kw_args--;
27937  else {
27938  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 41); __PYX_ERR(0, 5613, __pyx_L3_error)
27939  }
27940  CYTHON_FALLTHROUGH;
27941  case 42:
27942  if (likely((values[42] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_dw)) != 0)) kw_args--;
27943  else {
27944  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 42); __PYX_ERR(0, 5613, __pyx_L3_error)
27945  }
27946  CYTHON_FALLTHROUGH;
27947  case 43:
27948  if (likely((values[43] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_dp)) != 0)) kw_args--;
27949  else {
27950  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 43); __PYX_ERR(0, 5613, __pyx_L3_error)
27951  }
27952  CYTHON_FALLTHROUGH;
27953  case 44:
27954  if (likely((values[44] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_du)) != 0)) kw_args--;
27955  else {
27956  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 44); __PYX_ERR(0, 5613, __pyx_L3_error)
27957  }
27958  CYTHON_FALLTHROUGH;
27959  case 45:
27960  if (likely((values[45] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_dv)) != 0)) kw_args--;
27961  else {
27962  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 45); __PYX_ERR(0, 5613, __pyx_L3_error)
27963  }
27964  CYTHON_FALLTHROUGH;
27965  case 46:
27966  if (likely((values[46] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_dw)) != 0)) kw_args--;
27967  else {
27968  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 46); __PYX_ERR(0, 5613, __pyx_L3_error)
27969  }
27970  CYTHON_FALLTHROUGH;
27971  case 47:
27972  if (likely((values[47] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_dp)) != 0)) kw_args--;
27973  else {
27974  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 47); __PYX_ERR(0, 5613, __pyx_L3_error)
27975  }
27976  CYTHON_FALLTHROUGH;
27977  case 48:
27978  if (likely((values[48] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_du)) != 0)) kw_args--;
27979  else {
27980  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 48); __PYX_ERR(0, 5613, __pyx_L3_error)
27981  }
27982  CYTHON_FALLTHROUGH;
27983  case 49:
27984  if (likely((values[49] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_dv)) != 0)) kw_args--;
27985  else {
27986  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 49); __PYX_ERR(0, 5613, __pyx_L3_error)
27987  }
27988  CYTHON_FALLTHROUGH;
27989  case 50:
27990  if (likely((values[50] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_dw)) != 0)) kw_args--;
27991  else {
27992  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 50); __PYX_ERR(0, 5613, __pyx_L3_error)
27993  }
27994  CYTHON_FALLTHROUGH;
27995  case 51:
27996  if (likely((values[51] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_wmom_dp)) != 0)) kw_args--;
27997  else {
27998  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 51); __PYX_ERR(0, 5613, __pyx_L3_error)
27999  }
28000  CYTHON_FALLTHROUGH;
28001  case 52:
28002  if (likely((values[52] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_wmom_du)) != 0)) kw_args--;
28003  else {
28004  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 52); __PYX_ERR(0, 5613, __pyx_L3_error)
28005  }
28006  CYTHON_FALLTHROUGH;
28007  case 53:
28008  if (likely((values[53] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_wmom_dv)) != 0)) kw_args--;
28009  else {
28010  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 53); __PYX_ERR(0, 5613, __pyx_L3_error)
28011  }
28012  CYTHON_FALLTHROUGH;
28013  case 54:
28014  if (likely((values[54] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_wmom_dw)) != 0)) kw_args--;
28015  else {
28016  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 54); __PYX_ERR(0, 5613, __pyx_L3_error)
28017  }
28018  CYTHON_FALLTHROUGH;
28019  case 55:
28020  if (likely((values[55] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_velocity)) != 0)) kw_args--;
28021  else {
28022  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, 55); __PYX_ERR(0, 5613, __pyx_L3_error)
28023  }
28024  }
28025  if (unlikely(kw_args > 0)) {
28026  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D") < 0)) __PYX_ERR(0, 5613, __pyx_L3_error)
28027  }
28028  } else if (PyTuple_GET_SIZE(__pyx_args) != 56) {
28029  goto __pyx_L5_argtuple_error;
28030  } else {
28031  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
28032  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
28033  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
28034  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
28035  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
28036  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
28037  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
28038  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
28039  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
28040  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
28041  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
28042  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
28043  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
28044  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
28045  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
28046  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
28047  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
28048  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
28049  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
28050  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
28051  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
28052  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
28053  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
28054  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
28055  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
28056  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
28057  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
28058  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
28059  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
28060  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
28061  values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
28062  values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
28063  values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
28064  values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
28065  values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
28066  values[35] = PyTuple_GET_ITEM(__pyx_args, 35);
28067  values[36] = PyTuple_GET_ITEM(__pyx_args, 36);
28068  values[37] = PyTuple_GET_ITEM(__pyx_args, 37);
28069  values[38] = PyTuple_GET_ITEM(__pyx_args, 38);
28070  values[39] = PyTuple_GET_ITEM(__pyx_args, 39);
28071  values[40] = PyTuple_GET_ITEM(__pyx_args, 40);
28072  values[41] = PyTuple_GET_ITEM(__pyx_args, 41);
28073  values[42] = PyTuple_GET_ITEM(__pyx_args, 42);
28074  values[43] = PyTuple_GET_ITEM(__pyx_args, 43);
28075  values[44] = PyTuple_GET_ITEM(__pyx_args, 44);
28076  values[45] = PyTuple_GET_ITEM(__pyx_args, 45);
28077  values[46] = PyTuple_GET_ITEM(__pyx_args, 46);
28078  values[47] = PyTuple_GET_ITEM(__pyx_args, 47);
28079  values[48] = PyTuple_GET_ITEM(__pyx_args, 48);
28080  values[49] = PyTuple_GET_ITEM(__pyx_args, 49);
28081  values[50] = PyTuple_GET_ITEM(__pyx_args, 50);
28082  values[51] = PyTuple_GET_ITEM(__pyx_args, 51);
28083  values[52] = PyTuple_GET_ITEM(__pyx_args, 52);
28084  values[53] = PyTuple_GET_ITEM(__pyx_args, 53);
28085  values[54] = PyTuple_GET_ITEM(__pyx_args, 54);
28086  values[55] = PyTuple_GET_ITEM(__pyx_args, 55);
28087  }
28088  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5613, __pyx_L3_error)
28089  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5614, __pyx_L3_error)
28090  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5615, __pyx_L3_error)
28091  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
28092  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
28093  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
28094  __pyx_v_isDOFBoundary_p = ((PyArrayObject *)values[6]);
28095  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[7]);
28096  __pyx_v_isDOFBoundary_v = ((PyArrayObject *)values[8]);
28097  __pyx_v_isDOFBoundary_w = ((PyArrayObject *)values[9]);
28098  __pyx_v_n = ((PyArrayObject *)values[10]);
28099  __pyx_v_bc_p = ((PyArrayObject *)values[11]);
28100  __pyx_v_bc_f_mass = ((PyArrayObject *)values[12]);
28101  __pyx_v_bc_f_umom = ((PyArrayObject *)values[13]);
28102  __pyx_v_bc_f_vmom = ((PyArrayObject *)values[14]);
28103  __pyx_v_bc_f_wmom = ((PyArrayObject *)values[15]);
28104  __pyx_v_p = ((PyArrayObject *)values[16]);
28105  __pyx_v_f_mass = ((PyArrayObject *)values[17]);
28106  __pyx_v_f_umom = ((PyArrayObject *)values[18]);
28107  __pyx_v_f_vmom = ((PyArrayObject *)values[19]);
28108  __pyx_v_f_wmom = ((PyArrayObject *)values[20]);
28109  __pyx_v_df_mass_du = ((PyArrayObject *)values[21]);
28110  __pyx_v_df_mass_dv = ((PyArrayObject *)values[22]);
28111  __pyx_v_df_mass_dw = ((PyArrayObject *)values[23]);
28112  __pyx_v_df_umom_dp = ((PyArrayObject *)values[24]);
28113  __pyx_v_df_umom_du = ((PyArrayObject *)values[25]);
28114  __pyx_v_df_umom_dv = ((PyArrayObject *)values[26]);
28115  __pyx_v_df_umom_dw = ((PyArrayObject *)values[27]);
28116  __pyx_v_df_vmom_dp = ((PyArrayObject *)values[28]);
28117  __pyx_v_df_vmom_du = ((PyArrayObject *)values[29]);
28118  __pyx_v_df_vmom_dv = ((PyArrayObject *)values[30]);
28119  __pyx_v_df_vmom_dw = ((PyArrayObject *)values[31]);
28120  __pyx_v_df_wmom_dp = ((PyArrayObject *)values[32]);
28121  __pyx_v_df_wmom_du = ((PyArrayObject *)values[33]);
28122  __pyx_v_df_wmom_dv = ((PyArrayObject *)values[34]);
28123  __pyx_v_df_wmom_dw = ((PyArrayObject *)values[35]);
28124  __pyx_v_flux_mass = ((PyArrayObject *)values[36]);
28125  __pyx_v_flux_umom = ((PyArrayObject *)values[37]);
28126  __pyx_v_flux_vmom = ((PyArrayObject *)values[38]);
28127  __pyx_v_flux_wmom = ((PyArrayObject *)values[39]);
28128  __pyx_v_dflux_mass_du = ((PyArrayObject *)values[40]);
28129  __pyx_v_dflux_mass_dv = ((PyArrayObject *)values[41]);
28130  __pyx_v_dflux_mass_dw = ((PyArrayObject *)values[42]);
28131  __pyx_v_dflux_umom_dp = ((PyArrayObject *)values[43]);
28132  __pyx_v_dflux_umom_du = ((PyArrayObject *)values[44]);
28133  __pyx_v_dflux_umom_dv = ((PyArrayObject *)values[45]);
28134  __pyx_v_dflux_umom_dw = ((PyArrayObject *)values[46]);
28135  __pyx_v_dflux_vmom_dp = ((PyArrayObject *)values[47]);
28136  __pyx_v_dflux_vmom_du = ((PyArrayObject *)values[48]);
28137  __pyx_v_dflux_vmom_dv = ((PyArrayObject *)values[49]);
28138  __pyx_v_dflux_vmom_dw = ((PyArrayObject *)values[50]);
28139  __pyx_v_dflux_wmom_dp = ((PyArrayObject *)values[51]);
28140  __pyx_v_dflux_wmom_du = ((PyArrayObject *)values[52]);
28141  __pyx_v_dflux_wmom_dv = ((PyArrayObject *)values[53]);
28142  __pyx_v_dflux_wmom_dw = ((PyArrayObject *)values[54]);
28143  __pyx_v_velocity = ((PyArrayObject *)values[55]);
28144  }
28145  goto __pyx_L4_argument_unpacking_done;
28146  __pyx_L5_argtuple_error:;
28147  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 1, 56, 56, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5613, __pyx_L3_error)
28148  __pyx_L3_error:;
28149  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", __pyx_clineno, __pyx_lineno, __pyx_filename);
28150  __Pyx_RefNannyFinishContext();
28151  return NULL;
28152  __pyx_L4_argument_unpacking_done:;
28153  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5616, __pyx_L1_error)
28154  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5617, __pyx_L1_error)
28155  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5618, __pyx_L1_error)
28156  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_p), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_p", 0))) __PYX_ERR(0, 5619, __pyx_L1_error)
28157  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 5620, __pyx_L1_error)
28158  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_v", 0))) __PYX_ERR(0, 5621, __pyx_L1_error)
28159  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_w), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_w", 0))) __PYX_ERR(0, 5622, __pyx_L1_error)
28160  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5623, __pyx_L1_error)
28161  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_p), __pyx_ptype_5numpy_ndarray, 1, "bc_p", 0))) __PYX_ERR(0, 5624, __pyx_L1_error)
28162  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_mass), __pyx_ptype_5numpy_ndarray, 1, "bc_f_mass", 0))) __PYX_ERR(0, 5625, __pyx_L1_error)
28163  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_umom), __pyx_ptype_5numpy_ndarray, 1, "bc_f_umom", 0))) __PYX_ERR(0, 5626, __pyx_L1_error)
28164  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_vmom), __pyx_ptype_5numpy_ndarray, 1, "bc_f_vmom", 0))) __PYX_ERR(0, 5627, __pyx_L1_error)
28165  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_wmom), __pyx_ptype_5numpy_ndarray, 1, "bc_f_wmom", 0))) __PYX_ERR(0, 5628, __pyx_L1_error)
28166  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p), __pyx_ptype_5numpy_ndarray, 1, "p", 0))) __PYX_ERR(0, 5629, __pyx_L1_error)
28167  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_mass), __pyx_ptype_5numpy_ndarray, 1, "f_mass", 0))) __PYX_ERR(0, 5630, __pyx_L1_error)
28168  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_umom), __pyx_ptype_5numpy_ndarray, 1, "f_umom", 0))) __PYX_ERR(0, 5631, __pyx_L1_error)
28169  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_vmom), __pyx_ptype_5numpy_ndarray, 1, "f_vmom", 0))) __PYX_ERR(0, 5632, __pyx_L1_error)
28170  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_wmom), __pyx_ptype_5numpy_ndarray, 1, "f_wmom", 0))) __PYX_ERR(0, 5633, __pyx_L1_error)
28171  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_du), __pyx_ptype_5numpy_ndarray, 1, "df_mass_du", 0))) __PYX_ERR(0, 5634, __pyx_L1_error)
28172  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "df_mass_dv", 0))) __PYX_ERR(0, 5635, __pyx_L1_error)
28173  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_dw), __pyx_ptype_5numpy_ndarray, 1, "df_mass_dw", 0))) __PYX_ERR(0, 5636, __pyx_L1_error)
28174  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_umom_dp), __pyx_ptype_5numpy_ndarray, 1, "df_umom_dp", 0))) __PYX_ERR(0, 5637, __pyx_L1_error)
28175  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_umom_du), __pyx_ptype_5numpy_ndarray, 1, "df_umom_du", 0))) __PYX_ERR(0, 5638, __pyx_L1_error)
28176  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_umom_dv), __pyx_ptype_5numpy_ndarray, 1, "df_umom_dv", 0))) __PYX_ERR(0, 5639, __pyx_L1_error)
28177  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_umom_dw), __pyx_ptype_5numpy_ndarray, 1, "df_umom_dw", 0))) __PYX_ERR(0, 5640, __pyx_L1_error)
28178  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_vmom_dp), __pyx_ptype_5numpy_ndarray, 1, "df_vmom_dp", 0))) __PYX_ERR(0, 5641, __pyx_L1_error)
28179  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_vmom_du), __pyx_ptype_5numpy_ndarray, 1, "df_vmom_du", 0))) __PYX_ERR(0, 5642, __pyx_L1_error)
28180  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_vmom_dv), __pyx_ptype_5numpy_ndarray, 1, "df_vmom_dv", 0))) __PYX_ERR(0, 5643, __pyx_L1_error)
28181  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_vmom_dw), __pyx_ptype_5numpy_ndarray, 1, "df_vmom_dw", 0))) __PYX_ERR(0, 5644, __pyx_L1_error)
28182  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_wmom_dp), __pyx_ptype_5numpy_ndarray, 1, "df_wmom_dp", 0))) __PYX_ERR(0, 5645, __pyx_L1_error)
28183  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_wmom_du), __pyx_ptype_5numpy_ndarray, 1, "df_wmom_du", 0))) __PYX_ERR(0, 5646, __pyx_L1_error)
28184  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_wmom_dv), __pyx_ptype_5numpy_ndarray, 1, "df_wmom_dv", 0))) __PYX_ERR(0, 5647, __pyx_L1_error)
28185  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_wmom_dw), __pyx_ptype_5numpy_ndarray, 1, "df_wmom_dw", 0))) __PYX_ERR(0, 5648, __pyx_L1_error)
28186  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_mass), __pyx_ptype_5numpy_ndarray, 1, "flux_mass", 0))) __PYX_ERR(0, 5649, __pyx_L1_error)
28187  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_umom), __pyx_ptype_5numpy_ndarray, 1, "flux_umom", 0))) __PYX_ERR(0, 5650, __pyx_L1_error)
28188  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_vmom), __pyx_ptype_5numpy_ndarray, 1, "flux_vmom", 0))) __PYX_ERR(0, 5651, __pyx_L1_error)
28189  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_wmom), __pyx_ptype_5numpy_ndarray, 1, "flux_wmom", 0))) __PYX_ERR(0, 5652, __pyx_L1_error)
28190  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_du", 0))) __PYX_ERR(0, 5653, __pyx_L1_error)
28191  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_dv", 0))) __PYX_ERR(0, 5654, __pyx_L1_error)
28192  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_dw), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_dw", 0))) __PYX_ERR(0, 5655, __pyx_L1_error)
28193  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_dp", 0))) __PYX_ERR(0, 5656, __pyx_L1_error)
28194  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_du", 0))) __PYX_ERR(0, 5657, __pyx_L1_error)
28195  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_dv", 0))) __PYX_ERR(0, 5658, __pyx_L1_error)
28196  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_dw), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_dw", 0))) __PYX_ERR(0, 5659, __pyx_L1_error)
28197  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_dp", 0))) __PYX_ERR(0, 5660, __pyx_L1_error)
28198  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_du", 0))) __PYX_ERR(0, 5661, __pyx_L1_error)
28199  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_dv", 0))) __PYX_ERR(0, 5662, __pyx_L1_error)
28200  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_dw), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_dw", 0))) __PYX_ERR(0, 5663, __pyx_L1_error)
28201  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_wmom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_wmom_dp", 0))) __PYX_ERR(0, 5664, __pyx_L1_error)
28202  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_wmom_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_wmom_du", 0))) __PYX_ERR(0, 5665, __pyx_L1_error)
28203  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_wmom_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_wmom_dv", 0))) __PYX_ERR(0, 5666, __pyx_L1_error)
28204  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_wmom_dw), __pyx_ptype_5numpy_ndarray, 1, "dflux_wmom_dw", 0))) __PYX_ERR(0, 5667, __pyx_L1_error)
28205  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_velocity), __pyx_ptype_5numpy_ndarray, 1, "velocity", 0))) __PYX_ERR(0, 5668, __pyx_L1_error)
28206  __pyx_r = __pyx_pf_14cnumericalFlux_154calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_p, __pyx_v_isDOFBoundary_u, __pyx_v_isDOFBoundary_v, __pyx_v_isDOFBoundary_w, __pyx_v_n, __pyx_v_bc_p, __pyx_v_bc_f_mass, __pyx_v_bc_f_umom, __pyx_v_bc_f_vmom, __pyx_v_bc_f_wmom, __pyx_v_p, __pyx_v_f_mass, __pyx_v_f_umom, __pyx_v_f_vmom, __pyx_v_f_wmom, __pyx_v_df_mass_du, __pyx_v_df_mass_dv, __pyx_v_df_mass_dw, __pyx_v_df_umom_dp, __pyx_v_df_umom_du, __pyx_v_df_umom_dv, __pyx_v_df_umom_dw, __pyx_v_df_vmom_dp, __pyx_v_df_vmom_du, __pyx_v_df_vmom_dv, __pyx_v_df_vmom_dw, __pyx_v_df_wmom_dp, __pyx_v_df_wmom_du, __pyx_v_df_wmom_dv, __pyx_v_df_wmom_dw, __pyx_v_flux_mass, __pyx_v_flux_umom, __pyx_v_flux_vmom, __pyx_v_flux_wmom, __pyx_v_dflux_mass_du, __pyx_v_dflux_mass_dv, __pyx_v_dflux_mass_dw, __pyx_v_dflux_umom_dp, __pyx_v_dflux_umom_du, __pyx_v_dflux_umom_dv, __pyx_v_dflux_umom_dw, __pyx_v_dflux_vmom_dp, __pyx_v_dflux_vmom_du, __pyx_v_dflux_vmom_dv, __pyx_v_dflux_vmom_dw, __pyx_v_dflux_wmom_dp, __pyx_v_dflux_wmom_du, __pyx_v_dflux_wmom_dv, __pyx_v_dflux_wmom_dw, __pyx_v_velocity);
28207 
28208  /* function exit code */
28209  goto __pyx_L0;
28210  __pyx_L1_error:;
28211  __pyx_r = NULL;
28212  __pyx_L0:;
28213  __Pyx_RefNannyFinishContext();
28214  return __pyx_r;
28215 }
28216 
28217 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) {
28218  PyObject *__pyx_r = NULL;
28219  __Pyx_RefNannyDeclarations
28220  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D", 0);
28221 
28222  /* "cnumericalFlux.pyx":5669
28223  * np.ndarray dflux_wmom_dw,
28224  * np.ndarray velocity):
28225  * ccalculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
28226  * nQuadraturePoints_elementBoundary,
28227  * nSpace,
28228  */
28229  calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((int *)__pyx_v_isDOFBoundary_w->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_p->data), ((double *)__pyx_v_bc_f_mass->data), ((double *)__pyx_v_bc_f_umom->data), ((double *)__pyx_v_bc_f_vmom->data), ((double *)__pyx_v_bc_f_wmom->data), ((double *)__pyx_v_p->data), ((double *)__pyx_v_f_mass->data), ((double *)__pyx_v_f_umom->data), ((double *)__pyx_v_f_vmom->data), ((double *)__pyx_v_f_wmom->data), ((double *)__pyx_v_df_mass_du->data), ((double *)__pyx_v_df_mass_dv->data), ((double *)__pyx_v_df_mass_dw->data), ((double *)__pyx_v_df_umom_dp->data), ((double *)__pyx_v_df_umom_du->data), ((double *)__pyx_v_df_umom_dv->data), ((double *)__pyx_v_df_umom_dw->data), ((double *)__pyx_v_df_vmom_dp->data), ((double *)__pyx_v_df_vmom_du->data), ((double *)__pyx_v_df_vmom_dv->data), ((double *)__pyx_v_df_vmom_dw->data), ((double *)__pyx_v_df_wmom_dp->data), ((double *)__pyx_v_df_wmom_du->data), ((double *)__pyx_v_df_wmom_dv->data), ((double *)__pyx_v_df_wmom_dw->data), ((double *)__pyx_v_flux_mass->data), ((double *)__pyx_v_flux_umom->data), ((double *)__pyx_v_flux_vmom->data), ((double *)__pyx_v_flux_wmom->data), ((double *)__pyx_v_dflux_mass_du->data), ((double *)__pyx_v_dflux_mass_dv->data), ((double *)__pyx_v_dflux_mass_dw->data), ((double *)__pyx_v_dflux_umom_dp->data), ((double *)__pyx_v_dflux_umom_du->data), ((double *)__pyx_v_dflux_umom_dv->data), ((double *)__pyx_v_dflux_umom_dw->data), ((double *)__pyx_v_dflux_vmom_dp->data), ((double *)__pyx_v_dflux_vmom_du->data), ((double *)__pyx_v_dflux_vmom_dv->data), ((double *)__pyx_v_dflux_vmom_dw->data), ((double *)__pyx_v_dflux_wmom_dp->data), ((double *)__pyx_v_dflux_wmom_du->data), ((double *)__pyx_v_dflux_wmom_dv->data), ((double *)__pyx_v_dflux_wmom_dw->data), ((double *)__pyx_v_velocity->data));
28230 
28231  /* "cnumericalFlux.pyx":5613
28232  * <double*> dflux_vmom_dv.data,
28233  * <double*> velocity.data)
28234  * def calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
28235  * int nQuadraturePoints_elementBoundary,
28236  * int nSpace,
28237  */
28238 
28239  /* function exit code */
28240  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
28241  __Pyx_XGIVEREF(__pyx_r);
28242  __Pyx_RefNannyFinishContext();
28243  return __pyx_r;
28244 }
28245 
28246 /* "cnumericalFlux.pyx":5725
28247  * <double*> dflux_wmom_dw.data,
28248  * <double*> velocity.data)
28249  * def calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
28250  * int nQuadraturePoints_elementBoundary,
28251  * int nSpace,
28252  */
28253 
28254 /* Python wrapper */
28255 static PyObject *__pyx_pw_14cnumericalFlux_157calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
28256 static PyMethodDef __pyx_mdef_14cnumericalFlux_157calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D = {"calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_157calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D, METH_VARARGS|METH_KEYWORDS, 0};
28257 static PyObject *__pyx_pw_14cnumericalFlux_157calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
28258  int __pyx_v_nExteriorElementBoundaries_global;
28259  int __pyx_v_nQuadraturePoints_elementBoundary;
28260  int __pyx_v_nSpace;
28261  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
28262  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
28263  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
28264  PyArrayObject *__pyx_v_isDOFBoundary_p = 0;
28265  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
28266  PyArrayObject *__pyx_v_isDOFBoundary_v = 0;
28267  PyArrayObject *__pyx_v_n = 0;
28268  PyArrayObject *__pyx_v_bc_f = 0;
28269  PyArrayObject *__pyx_v_bc_fpu = 0;
28270  PyArrayObject *__pyx_v_bc_fpv = 0;
28271  PyArrayObject *__pyx_v_f = 0;
28272  PyArrayObject *__pyx_v_fpu = 0;
28273  PyArrayObject *__pyx_v_fpv = 0;
28274  PyArrayObject *__pyx_v_df_du = 0;
28275  PyArrayObject *__pyx_v_df_dv = 0;
28276  PyArrayObject *__pyx_v_dfpu_dp = 0;
28277  PyArrayObject *__pyx_v_dfpv_dp = 0;
28278  PyArrayObject *__pyx_v_flux = 0;
28279  PyArrayObject *__pyx_v_fluxpu = 0;
28280  PyArrayObject *__pyx_v_fluxpv = 0;
28281  PyArrayObject *__pyx_v_dflux_du = 0;
28282  PyArrayObject *__pyx_v_dflux_dv = 0;
28283  PyArrayObject *__pyx_v_dfluxpu_dp = 0;
28284  PyArrayObject *__pyx_v_dfluxpv_dp = 0;
28285  int __pyx_lineno = 0;
28286  const char *__pyx_filename = NULL;
28287  int __pyx_clineno = 0;
28288  PyObject *__pyx_r = 0;
28289  __Pyx_RefNannyDeclarations
28290  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D (wrapper)", 0);
28291  {
28292  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_p,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_isDOFBoundary_v,&__pyx_n_s_n,&__pyx_n_s_bc_f,&__pyx_n_s_bc_fpu,&__pyx_n_s_bc_fpv,&__pyx_n_s_f,&__pyx_n_s_fpu,&__pyx_n_s_fpv,&__pyx_n_s_df_du,&__pyx_n_s_df_dv,&__pyx_n_s_dfpu_dp,&__pyx_n_s_dfpv_dp,&__pyx_n_s_flux,&__pyx_n_s_fluxpu,&__pyx_n_s_fluxpv,&__pyx_n_s_dflux_du,&__pyx_n_s_dflux_dv,&__pyx_n_s_dfluxpu_dp,&__pyx_n_s_dfluxpv_dp,0};
28293  PyObject* values[27] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
28294  if (unlikely(__pyx_kwds)) {
28295  Py_ssize_t kw_args;
28296  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
28297  switch (pos_args) {
28298  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
28299  CYTHON_FALLTHROUGH;
28300  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
28301  CYTHON_FALLTHROUGH;
28302  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
28303  CYTHON_FALLTHROUGH;
28304  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
28305  CYTHON_FALLTHROUGH;
28306  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
28307  CYTHON_FALLTHROUGH;
28308  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
28309  CYTHON_FALLTHROUGH;
28310  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
28311  CYTHON_FALLTHROUGH;
28312  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
28313  CYTHON_FALLTHROUGH;
28314  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
28315  CYTHON_FALLTHROUGH;
28316  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
28317  CYTHON_FALLTHROUGH;
28318  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
28319  CYTHON_FALLTHROUGH;
28320  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
28321  CYTHON_FALLTHROUGH;
28322  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
28323  CYTHON_FALLTHROUGH;
28324  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
28325  CYTHON_FALLTHROUGH;
28326  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
28327  CYTHON_FALLTHROUGH;
28328  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
28329  CYTHON_FALLTHROUGH;
28330  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
28331  CYTHON_FALLTHROUGH;
28332  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
28333  CYTHON_FALLTHROUGH;
28334  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
28335  CYTHON_FALLTHROUGH;
28336  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
28337  CYTHON_FALLTHROUGH;
28338  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
28339  CYTHON_FALLTHROUGH;
28340  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
28341  CYTHON_FALLTHROUGH;
28342  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
28343  CYTHON_FALLTHROUGH;
28344  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
28345  CYTHON_FALLTHROUGH;
28346  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
28347  CYTHON_FALLTHROUGH;
28348  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
28349  CYTHON_FALLTHROUGH;
28350  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
28351  CYTHON_FALLTHROUGH;
28352  case 0: break;
28353  default: goto __pyx_L5_argtuple_error;
28354  }
28355  kw_args = PyDict_Size(__pyx_kwds);
28356  switch (pos_args) {
28357  case 0:
28358  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
28359  else goto __pyx_L5_argtuple_error;
28360  CYTHON_FALLTHROUGH;
28361  case 1:
28362  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
28363  else {
28364  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 1); __PYX_ERR(0, 5725, __pyx_L3_error)
28365  }
28366  CYTHON_FALLTHROUGH;
28367  case 2:
28368  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
28369  else {
28370  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 2); __PYX_ERR(0, 5725, __pyx_L3_error)
28371  }
28372  CYTHON_FALLTHROUGH;
28373  case 3:
28374  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
28375  else {
28376  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 3); __PYX_ERR(0, 5725, __pyx_L3_error)
28377  }
28378  CYTHON_FALLTHROUGH;
28379  case 4:
28380  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
28381  else {
28382  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 4); __PYX_ERR(0, 5725, __pyx_L3_error)
28383  }
28384  CYTHON_FALLTHROUGH;
28385  case 5:
28386  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
28387  else {
28388  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 5); __PYX_ERR(0, 5725, __pyx_L3_error)
28389  }
28390  CYTHON_FALLTHROUGH;
28391  case 6:
28392  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_p)) != 0)) kw_args--;
28393  else {
28394  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 6); __PYX_ERR(0, 5725, __pyx_L3_error)
28395  }
28396  CYTHON_FALLTHROUGH;
28397  case 7:
28398  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
28399  else {
28400  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 7); __PYX_ERR(0, 5725, __pyx_L3_error)
28401  }
28402  CYTHON_FALLTHROUGH;
28403  case 8:
28404  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_v)) != 0)) kw_args--;
28405  else {
28406  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 8); __PYX_ERR(0, 5725, __pyx_L3_error)
28407  }
28408  CYTHON_FALLTHROUGH;
28409  case 9:
28410  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
28411  else {
28412  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 9); __PYX_ERR(0, 5725, __pyx_L3_error)
28413  }
28414  CYTHON_FALLTHROUGH;
28415  case 10:
28416  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f)) != 0)) kw_args--;
28417  else {
28418  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 10); __PYX_ERR(0, 5725, __pyx_L3_error)
28419  }
28420  CYTHON_FALLTHROUGH;
28421  case 11:
28422  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_fpu)) != 0)) kw_args--;
28423  else {
28424  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 11); __PYX_ERR(0, 5725, __pyx_L3_error)
28425  }
28426  CYTHON_FALLTHROUGH;
28427  case 12:
28428  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_fpv)) != 0)) kw_args--;
28429  else {
28430  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 12); __PYX_ERR(0, 5725, __pyx_L3_error)
28431  }
28432  CYTHON_FALLTHROUGH;
28433  case 13:
28434  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
28435  else {
28436  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 13); __PYX_ERR(0, 5725, __pyx_L3_error)
28437  }
28438  CYTHON_FALLTHROUGH;
28439  case 14:
28440  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fpu)) != 0)) kw_args--;
28441  else {
28442  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 14); __PYX_ERR(0, 5725, __pyx_L3_error)
28443  }
28444  CYTHON_FALLTHROUGH;
28445  case 15:
28446  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fpv)) != 0)) kw_args--;
28447  else {
28448  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 15); __PYX_ERR(0, 5725, __pyx_L3_error)
28449  }
28450  CYTHON_FALLTHROUGH;
28451  case 16:
28452  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_du)) != 0)) kw_args--;
28453  else {
28454  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 16); __PYX_ERR(0, 5725, __pyx_L3_error)
28455  }
28456  CYTHON_FALLTHROUGH;
28457  case 17:
28458  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_dv)) != 0)) kw_args--;
28459  else {
28460  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 17); __PYX_ERR(0, 5725, __pyx_L3_error)
28461  }
28462  CYTHON_FALLTHROUGH;
28463  case 18:
28464  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfpu_dp)) != 0)) kw_args--;
28465  else {
28466  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 18); __PYX_ERR(0, 5725, __pyx_L3_error)
28467  }
28468  CYTHON_FALLTHROUGH;
28469  case 19:
28470  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfpv_dp)) != 0)) kw_args--;
28471  else {
28472  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 19); __PYX_ERR(0, 5725, __pyx_L3_error)
28473  }
28474  CYTHON_FALLTHROUGH;
28475  case 20:
28476  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
28477  else {
28478  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 20); __PYX_ERR(0, 5725, __pyx_L3_error)
28479  }
28480  CYTHON_FALLTHROUGH;
28481  case 21:
28482  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxpu)) != 0)) kw_args--;
28483  else {
28484  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 21); __PYX_ERR(0, 5725, __pyx_L3_error)
28485  }
28486  CYTHON_FALLTHROUGH;
28487  case 22:
28488  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxpv)) != 0)) kw_args--;
28489  else {
28490  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 22); __PYX_ERR(0, 5725, __pyx_L3_error)
28491  }
28492  CYTHON_FALLTHROUGH;
28493  case 23:
28494  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_du)) != 0)) kw_args--;
28495  else {
28496  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 23); __PYX_ERR(0, 5725, __pyx_L3_error)
28497  }
28498  CYTHON_FALLTHROUGH;
28499  case 24:
28500  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_dv)) != 0)) kw_args--;
28501  else {
28502  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 24); __PYX_ERR(0, 5725, __pyx_L3_error)
28503  }
28504  CYTHON_FALLTHROUGH;
28505  case 25:
28506  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfluxpu_dp)) != 0)) kw_args--;
28507  else {
28508  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 25); __PYX_ERR(0, 5725, __pyx_L3_error)
28509  }
28510  CYTHON_FALLTHROUGH;
28511  case 26:
28512  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfluxpv_dp)) != 0)) kw_args--;
28513  else {
28514  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, 26); __PYX_ERR(0, 5725, __pyx_L3_error)
28515  }
28516  }
28517  if (unlikely(kw_args > 0)) {
28518  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D") < 0)) __PYX_ERR(0, 5725, __pyx_L3_error)
28519  }
28520  } else if (PyTuple_GET_SIZE(__pyx_args) != 27) {
28521  goto __pyx_L5_argtuple_error;
28522  } else {
28523  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
28524  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
28525  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
28526  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
28527  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
28528  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
28529  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
28530  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
28531  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
28532  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
28533  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
28534  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
28535  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
28536  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
28537  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
28538  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
28539  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
28540  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
28541  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
28542  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
28543  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
28544  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
28545  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
28546  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
28547  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
28548  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
28549  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
28550  }
28551  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5725, __pyx_L3_error)
28552  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5726, __pyx_L3_error)
28553  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5727, __pyx_L3_error)
28554  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
28555  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
28556  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
28557  __pyx_v_isDOFBoundary_p = ((PyArrayObject *)values[6]);
28558  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[7]);
28559  __pyx_v_isDOFBoundary_v = ((PyArrayObject *)values[8]);
28560  __pyx_v_n = ((PyArrayObject *)values[9]);
28561  __pyx_v_bc_f = ((PyArrayObject *)values[10]);
28562  __pyx_v_bc_fpu = ((PyArrayObject *)values[11]);
28563  __pyx_v_bc_fpv = ((PyArrayObject *)values[12]);
28564  __pyx_v_f = ((PyArrayObject *)values[13]);
28565  __pyx_v_fpu = ((PyArrayObject *)values[14]);
28566  __pyx_v_fpv = ((PyArrayObject *)values[15]);
28567  __pyx_v_df_du = ((PyArrayObject *)values[16]);
28568  __pyx_v_df_dv = ((PyArrayObject *)values[17]);
28569  __pyx_v_dfpu_dp = ((PyArrayObject *)values[18]);
28570  __pyx_v_dfpv_dp = ((PyArrayObject *)values[19]);
28571  __pyx_v_flux = ((PyArrayObject *)values[20]);
28572  __pyx_v_fluxpu = ((PyArrayObject *)values[21]);
28573  __pyx_v_fluxpv = ((PyArrayObject *)values[22]);
28574  __pyx_v_dflux_du = ((PyArrayObject *)values[23]);
28575  __pyx_v_dflux_dv = ((PyArrayObject *)values[24]);
28576  __pyx_v_dfluxpu_dp = ((PyArrayObject *)values[25]);
28577  __pyx_v_dfluxpv_dp = ((PyArrayObject *)values[26]);
28578  }
28579  goto __pyx_L4_argument_unpacking_done;
28580  __pyx_L5_argtuple_error:;
28581  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 1, 27, 27, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5725, __pyx_L3_error)
28582  __pyx_L3_error:;
28583  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
28584  __Pyx_RefNannyFinishContext();
28585  return NULL;
28586  __pyx_L4_argument_unpacking_done:;
28587  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5728, __pyx_L1_error)
28588  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5729, __pyx_L1_error)
28589  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5730, __pyx_L1_error)
28590  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_p), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_p", 0))) __PYX_ERR(0, 5731, __pyx_L1_error)
28591  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 5732, __pyx_L1_error)
28592  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_v", 0))) __PYX_ERR(0, 5733, __pyx_L1_error)
28593  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5734, __pyx_L1_error)
28594  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f), __pyx_ptype_5numpy_ndarray, 1, "bc_f", 0))) __PYX_ERR(0, 5735, __pyx_L1_error)
28595  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_fpu), __pyx_ptype_5numpy_ndarray, 1, "bc_fpu", 0))) __PYX_ERR(0, 5736, __pyx_L1_error)
28596  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_fpv), __pyx_ptype_5numpy_ndarray, 1, "bc_fpv", 0))) __PYX_ERR(0, 5737, __pyx_L1_error)
28597  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 5738, __pyx_L1_error)
28598  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fpu), __pyx_ptype_5numpy_ndarray, 1, "fpu", 0))) __PYX_ERR(0, 5739, __pyx_L1_error)
28599  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fpv), __pyx_ptype_5numpy_ndarray, 1, "fpv", 0))) __PYX_ERR(0, 5740, __pyx_L1_error)
28600  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_du), __pyx_ptype_5numpy_ndarray, 1, "df_du", 0))) __PYX_ERR(0, 5741, __pyx_L1_error)
28601  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_dv), __pyx_ptype_5numpy_ndarray, 1, "df_dv", 0))) __PYX_ERR(0, 5742, __pyx_L1_error)
28602  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfpu_dp), __pyx_ptype_5numpy_ndarray, 1, "dfpu_dp", 0))) __PYX_ERR(0, 5743, __pyx_L1_error)
28603  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfpv_dp), __pyx_ptype_5numpy_ndarray, 1, "dfpv_dp", 0))) __PYX_ERR(0, 5744, __pyx_L1_error)
28604  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 5745, __pyx_L1_error)
28605  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxpu), __pyx_ptype_5numpy_ndarray, 1, "fluxpu", 0))) __PYX_ERR(0, 5746, __pyx_L1_error)
28606  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxpv), __pyx_ptype_5numpy_ndarray, 1, "fluxpv", 0))) __PYX_ERR(0, 5747, __pyx_L1_error)
28607  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_du", 0))) __PYX_ERR(0, 5748, __pyx_L1_error)
28608  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_dv", 0))) __PYX_ERR(0, 5749, __pyx_L1_error)
28609  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfluxpu_dp), __pyx_ptype_5numpy_ndarray, 1, "dfluxpu_dp", 0))) __PYX_ERR(0, 5750, __pyx_L1_error)
28610  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfluxpv_dp), __pyx_ptype_5numpy_ndarray, 1, "dfluxpv_dp", 0))) __PYX_ERR(0, 5751, __pyx_L1_error)
28611  __pyx_r = __pyx_pf_14cnumericalFlux_156calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_p, __pyx_v_isDOFBoundary_u, __pyx_v_isDOFBoundary_v, __pyx_v_n, __pyx_v_bc_f, __pyx_v_bc_fpu, __pyx_v_bc_fpv, __pyx_v_f, __pyx_v_fpu, __pyx_v_fpv, __pyx_v_df_du, __pyx_v_df_dv, __pyx_v_dfpu_dp, __pyx_v_dfpv_dp, __pyx_v_flux, __pyx_v_fluxpu, __pyx_v_fluxpv, __pyx_v_dflux_du, __pyx_v_dflux_dv, __pyx_v_dfluxpu_dp, __pyx_v_dfluxpv_dp);
28612 
28613  /* function exit code */
28614  goto __pyx_L0;
28615  __pyx_L1_error:;
28616  __pyx_r = NULL;
28617  __pyx_L0:;
28618  __Pyx_RefNannyFinishContext();
28619  return __pyx_r;
28620 }
28621 
28622 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) {
28623  PyObject *__pyx_r = NULL;
28624  __Pyx_RefNannyDeclarations
28625  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D", 0);
28626 
28627  /* "cnumericalFlux.pyx":5752
28628  * np.ndarray dfluxpu_dp,
28629  * np.ndarray dfluxpv_dp):
28630  * ccalculateGlobalExteriorNumericalAdvectiveFluxStokesP2D( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
28631  * nQuadraturePoints_elementBoundary,
28632  * nSpace,
28633  */
28634  calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_f->data), ((double *)__pyx_v_bc_fpu->data), ((double *)__pyx_v_bc_fpv->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_fpu->data), ((double *)__pyx_v_fpv->data), ((double *)__pyx_v_df_du->data), ((double *)__pyx_v_df_dv->data), ((double *)__pyx_v_dfpu_dp->data), ((double *)__pyx_v_dfpv_dp->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_fluxpu->data), ((double *)__pyx_v_fluxpv->data), ((double *)__pyx_v_dflux_du->data), ((double *)__pyx_v_dflux_dv->data), ((double *)__pyx_v_dfluxpu_dp->data), ((double *)__pyx_v_dfluxpv_dp->data));
28635 
28636  /* "cnumericalFlux.pyx":5725
28637  * <double*> dflux_wmom_dw.data,
28638  * <double*> velocity.data)
28639  * def calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
28640  * int nQuadraturePoints_elementBoundary,
28641  * int nSpace,
28642  */
28643 
28644  /* function exit code */
28645  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
28646  __Pyx_XGIVEREF(__pyx_r);
28647  __Pyx_RefNannyFinishContext();
28648  return __pyx_r;
28649 }
28650 
28651 /* "cnumericalFlux.pyx":5779
28652  * <double*> dfluxpu_dp.data,
28653  * <double*> dfluxpv_dp.data)
28654  * def calculateExteriorNumericalAdvectiveFluxStokesP3D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
28655  * np.ndarray elementBoundaryElements,
28656  * np.ndarray elementBoundaryLocalElementBoundaries,
28657  */
28658 
28659 /* Python wrapper */
28660 static PyObject *__pyx_pw_14cnumericalFlux_159calculateExteriorNumericalAdvectiveFluxStokesP3D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
28661 static PyMethodDef __pyx_mdef_14cnumericalFlux_159calculateExteriorNumericalAdvectiveFluxStokesP3D = {"calculateExteriorNumericalAdvectiveFluxStokesP3D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_159calculateExteriorNumericalAdvectiveFluxStokesP3D, METH_VARARGS|METH_KEYWORDS, 0};
28662 static PyObject *__pyx_pw_14cnumericalFlux_159calculateExteriorNumericalAdvectiveFluxStokesP3D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
28663  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
28664  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
28665  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
28666  PyArrayObject *__pyx_v_isDOFBoundary_p = 0;
28667  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
28668  PyArrayObject *__pyx_v_isDOFBoundary_v = 0;
28669  PyArrayObject *__pyx_v_isDOFBoundary_w = 0;
28670  PyArrayObject *__pyx_v_n = 0;
28671  PyArrayObject *__pyx_v_bc_f = 0;
28672  PyArrayObject *__pyx_v_bc_fpu = 0;
28673  PyArrayObject *__pyx_v_bc_fpv = 0;
28674  PyArrayObject *__pyx_v_bc_fpw = 0;
28675  PyArrayObject *__pyx_v_f = 0;
28676  PyArrayObject *__pyx_v_fpu = 0;
28677  PyArrayObject *__pyx_v_fpv = 0;
28678  PyArrayObject *__pyx_v_fpw = 0;
28679  PyArrayObject *__pyx_v_df_du = 0;
28680  PyArrayObject *__pyx_v_df_dv = 0;
28681  PyArrayObject *__pyx_v_df_dw = 0;
28682  PyArrayObject *__pyx_v_dfpu_dp = 0;
28683  PyArrayObject *__pyx_v_dfpv_dp = 0;
28684  PyArrayObject *__pyx_v_dfpw_dp = 0;
28685  PyArrayObject *__pyx_v_flux = 0;
28686  PyArrayObject *__pyx_v_fluxpu = 0;
28687  PyArrayObject *__pyx_v_fluxpv = 0;
28688  PyArrayObject *__pyx_v_fluxpw = 0;
28689  PyArrayObject *__pyx_v_dflux_du = 0;
28690  PyArrayObject *__pyx_v_dflux_dv = 0;
28691  PyArrayObject *__pyx_v_dflux_dw = 0;
28692  PyArrayObject *__pyx_v_dfluxpu_dp = 0;
28693  PyArrayObject *__pyx_v_dfluxpv_dp = 0;
28694  PyArrayObject *__pyx_v_dfluxpw_dp = 0;
28695  int __pyx_lineno = 0;
28696  const char *__pyx_filename = NULL;
28697  int __pyx_clineno = 0;
28698  PyObject *__pyx_r = 0;
28699  __Pyx_RefNannyDeclarations
28700  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxStokesP3D (wrapper)", 0);
28701  {
28702  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_p,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_isDOFBoundary_v,&__pyx_n_s_isDOFBoundary_w,&__pyx_n_s_n,&__pyx_n_s_bc_f,&__pyx_n_s_bc_fpu,&__pyx_n_s_bc_fpv,&__pyx_n_s_bc_fpw,&__pyx_n_s_f,&__pyx_n_s_fpu,&__pyx_n_s_fpv,&__pyx_n_s_fpw,&__pyx_n_s_df_du,&__pyx_n_s_df_dv,&__pyx_n_s_df_dw,&__pyx_n_s_dfpu_dp,&__pyx_n_s_dfpv_dp,&__pyx_n_s_dfpw_dp,&__pyx_n_s_flux,&__pyx_n_s_fluxpu,&__pyx_n_s_fluxpv,&__pyx_n_s_fluxpw,&__pyx_n_s_dflux_du,&__pyx_n_s_dflux_dv,&__pyx_n_s_dflux_dw,&__pyx_n_s_dfluxpu_dp,&__pyx_n_s_dfluxpv_dp,&__pyx_n_s_dfluxpw_dp,0};
28703  PyObject* values[32] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
28704  if (unlikely(__pyx_kwds)) {
28705  Py_ssize_t kw_args;
28706  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
28707  switch (pos_args) {
28708  case 32: values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
28709  CYTHON_FALLTHROUGH;
28710  case 31: values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
28711  CYTHON_FALLTHROUGH;
28712  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
28713  CYTHON_FALLTHROUGH;
28714  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
28715  CYTHON_FALLTHROUGH;
28716  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
28717  CYTHON_FALLTHROUGH;
28718  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
28719  CYTHON_FALLTHROUGH;
28720  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
28721  CYTHON_FALLTHROUGH;
28722  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
28723  CYTHON_FALLTHROUGH;
28724  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
28725  CYTHON_FALLTHROUGH;
28726  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
28727  CYTHON_FALLTHROUGH;
28728  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
28729  CYTHON_FALLTHROUGH;
28730  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
28731  CYTHON_FALLTHROUGH;
28732  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
28733  CYTHON_FALLTHROUGH;
28734  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
28735  CYTHON_FALLTHROUGH;
28736  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
28737  CYTHON_FALLTHROUGH;
28738  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
28739  CYTHON_FALLTHROUGH;
28740  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
28741  CYTHON_FALLTHROUGH;
28742  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
28743  CYTHON_FALLTHROUGH;
28744  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
28745  CYTHON_FALLTHROUGH;
28746  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
28747  CYTHON_FALLTHROUGH;
28748  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
28749  CYTHON_FALLTHROUGH;
28750  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
28751  CYTHON_FALLTHROUGH;
28752  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
28753  CYTHON_FALLTHROUGH;
28754  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
28755  CYTHON_FALLTHROUGH;
28756  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
28757  CYTHON_FALLTHROUGH;
28758  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
28759  CYTHON_FALLTHROUGH;
28760  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
28761  CYTHON_FALLTHROUGH;
28762  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
28763  CYTHON_FALLTHROUGH;
28764  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
28765  CYTHON_FALLTHROUGH;
28766  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
28767  CYTHON_FALLTHROUGH;
28768  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
28769  CYTHON_FALLTHROUGH;
28770  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
28771  CYTHON_FALLTHROUGH;
28772  case 0: break;
28773  default: goto __pyx_L5_argtuple_error;
28774  }
28775  kw_args = PyDict_Size(__pyx_kwds);
28776  switch (pos_args) {
28777  case 0:
28778  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
28779  else goto __pyx_L5_argtuple_error;
28780  CYTHON_FALLTHROUGH;
28781  case 1:
28782  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
28783  else {
28784  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 1); __PYX_ERR(0, 5779, __pyx_L3_error)
28785  }
28786  CYTHON_FALLTHROUGH;
28787  case 2:
28788  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
28789  else {
28790  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 2); __PYX_ERR(0, 5779, __pyx_L3_error)
28791  }
28792  CYTHON_FALLTHROUGH;
28793  case 3:
28794  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_p)) != 0)) kw_args--;
28795  else {
28796  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 3); __PYX_ERR(0, 5779, __pyx_L3_error)
28797  }
28798  CYTHON_FALLTHROUGH;
28799  case 4:
28800  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
28801  else {
28802  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 4); __PYX_ERR(0, 5779, __pyx_L3_error)
28803  }
28804  CYTHON_FALLTHROUGH;
28805  case 5:
28806  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_v)) != 0)) kw_args--;
28807  else {
28808  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 5); __PYX_ERR(0, 5779, __pyx_L3_error)
28809  }
28810  CYTHON_FALLTHROUGH;
28811  case 6:
28812  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_w)) != 0)) kw_args--;
28813  else {
28814  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 6); __PYX_ERR(0, 5779, __pyx_L3_error)
28815  }
28816  CYTHON_FALLTHROUGH;
28817  case 7:
28818  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
28819  else {
28820  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 7); __PYX_ERR(0, 5779, __pyx_L3_error)
28821  }
28822  CYTHON_FALLTHROUGH;
28823  case 8:
28824  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f)) != 0)) kw_args--;
28825  else {
28826  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 8); __PYX_ERR(0, 5779, __pyx_L3_error)
28827  }
28828  CYTHON_FALLTHROUGH;
28829  case 9:
28830  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_fpu)) != 0)) kw_args--;
28831  else {
28832  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 9); __PYX_ERR(0, 5779, __pyx_L3_error)
28833  }
28834  CYTHON_FALLTHROUGH;
28835  case 10:
28836  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_fpv)) != 0)) kw_args--;
28837  else {
28838  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 10); __PYX_ERR(0, 5779, __pyx_L3_error)
28839  }
28840  CYTHON_FALLTHROUGH;
28841  case 11:
28842  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_fpw)) != 0)) kw_args--;
28843  else {
28844  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 11); __PYX_ERR(0, 5779, __pyx_L3_error)
28845  }
28846  CYTHON_FALLTHROUGH;
28847  case 12:
28848  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
28849  else {
28850  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 12); __PYX_ERR(0, 5779, __pyx_L3_error)
28851  }
28852  CYTHON_FALLTHROUGH;
28853  case 13:
28854  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fpu)) != 0)) kw_args--;
28855  else {
28856  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 13); __PYX_ERR(0, 5779, __pyx_L3_error)
28857  }
28858  CYTHON_FALLTHROUGH;
28859  case 14:
28860  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fpv)) != 0)) kw_args--;
28861  else {
28862  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 14); __PYX_ERR(0, 5779, __pyx_L3_error)
28863  }
28864  CYTHON_FALLTHROUGH;
28865  case 15:
28866  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fpw)) != 0)) kw_args--;
28867  else {
28868  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 15); __PYX_ERR(0, 5779, __pyx_L3_error)
28869  }
28870  CYTHON_FALLTHROUGH;
28871  case 16:
28872  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_du)) != 0)) kw_args--;
28873  else {
28874  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 16); __PYX_ERR(0, 5779, __pyx_L3_error)
28875  }
28876  CYTHON_FALLTHROUGH;
28877  case 17:
28878  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_dv)) != 0)) kw_args--;
28879  else {
28880  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 17); __PYX_ERR(0, 5779, __pyx_L3_error)
28881  }
28882  CYTHON_FALLTHROUGH;
28883  case 18:
28884  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_dw)) != 0)) kw_args--;
28885  else {
28886  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 18); __PYX_ERR(0, 5779, __pyx_L3_error)
28887  }
28888  CYTHON_FALLTHROUGH;
28889  case 19:
28890  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfpu_dp)) != 0)) kw_args--;
28891  else {
28892  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 19); __PYX_ERR(0, 5779, __pyx_L3_error)
28893  }
28894  CYTHON_FALLTHROUGH;
28895  case 20:
28896  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfpv_dp)) != 0)) kw_args--;
28897  else {
28898  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 20); __PYX_ERR(0, 5779, __pyx_L3_error)
28899  }
28900  CYTHON_FALLTHROUGH;
28901  case 21:
28902  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfpw_dp)) != 0)) kw_args--;
28903  else {
28904  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 21); __PYX_ERR(0, 5779, __pyx_L3_error)
28905  }
28906  CYTHON_FALLTHROUGH;
28907  case 22:
28908  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
28909  else {
28910  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 22); __PYX_ERR(0, 5779, __pyx_L3_error)
28911  }
28912  CYTHON_FALLTHROUGH;
28913  case 23:
28914  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxpu)) != 0)) kw_args--;
28915  else {
28916  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 23); __PYX_ERR(0, 5779, __pyx_L3_error)
28917  }
28918  CYTHON_FALLTHROUGH;
28919  case 24:
28920  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxpv)) != 0)) kw_args--;
28921  else {
28922  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 24); __PYX_ERR(0, 5779, __pyx_L3_error)
28923  }
28924  CYTHON_FALLTHROUGH;
28925  case 25:
28926  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxpw)) != 0)) kw_args--;
28927  else {
28928  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 25); __PYX_ERR(0, 5779, __pyx_L3_error)
28929  }
28930  CYTHON_FALLTHROUGH;
28931  case 26:
28932  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_du)) != 0)) kw_args--;
28933  else {
28934  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 26); __PYX_ERR(0, 5779, __pyx_L3_error)
28935  }
28936  CYTHON_FALLTHROUGH;
28937  case 27:
28938  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_dv)) != 0)) kw_args--;
28939  else {
28940  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 27); __PYX_ERR(0, 5779, __pyx_L3_error)
28941  }
28942  CYTHON_FALLTHROUGH;
28943  case 28:
28944  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_dw)) != 0)) kw_args--;
28945  else {
28946  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 28); __PYX_ERR(0, 5779, __pyx_L3_error)
28947  }
28948  CYTHON_FALLTHROUGH;
28949  case 29:
28950  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfluxpu_dp)) != 0)) kw_args--;
28951  else {
28952  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 29); __PYX_ERR(0, 5779, __pyx_L3_error)
28953  }
28954  CYTHON_FALLTHROUGH;
28955  case 30:
28956  if (likely((values[30] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfluxpv_dp)) != 0)) kw_args--;
28957  else {
28958  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 30); __PYX_ERR(0, 5779, __pyx_L3_error)
28959  }
28960  CYTHON_FALLTHROUGH;
28961  case 31:
28962  if (likely((values[31] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfluxpw_dp)) != 0)) kw_args--;
28963  else {
28964  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, 31); __PYX_ERR(0, 5779, __pyx_L3_error)
28965  }
28966  }
28967  if (unlikely(kw_args > 0)) {
28968  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalAdvectiveFluxStokesP3D") < 0)) __PYX_ERR(0, 5779, __pyx_L3_error)
28969  }
28970  } else if (PyTuple_GET_SIZE(__pyx_args) != 32) {
28971  goto __pyx_L5_argtuple_error;
28972  } else {
28973  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
28974  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
28975  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
28976  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
28977  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
28978  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
28979  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
28980  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
28981  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
28982  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
28983  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
28984  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
28985  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
28986  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
28987  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
28988  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
28989  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
28990  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
28991  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
28992  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
28993  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
28994  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
28995  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
28996  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
28997  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
28998  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
28999  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
29000  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
29001  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
29002  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
29003  values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
29004  values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
29005  }
29006  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
29007  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
29008  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
29009  __pyx_v_isDOFBoundary_p = ((PyArrayObject *)values[3]);
29010  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[4]);
29011  __pyx_v_isDOFBoundary_v = ((PyArrayObject *)values[5]);
29012  __pyx_v_isDOFBoundary_w = ((PyArrayObject *)values[6]);
29013  __pyx_v_n = ((PyArrayObject *)values[7]);
29014  __pyx_v_bc_f = ((PyArrayObject *)values[8]);
29015  __pyx_v_bc_fpu = ((PyArrayObject *)values[9]);
29016  __pyx_v_bc_fpv = ((PyArrayObject *)values[10]);
29017  __pyx_v_bc_fpw = ((PyArrayObject *)values[11]);
29018  __pyx_v_f = ((PyArrayObject *)values[12]);
29019  __pyx_v_fpu = ((PyArrayObject *)values[13]);
29020  __pyx_v_fpv = ((PyArrayObject *)values[14]);
29021  __pyx_v_fpw = ((PyArrayObject *)values[15]);
29022  __pyx_v_df_du = ((PyArrayObject *)values[16]);
29023  __pyx_v_df_dv = ((PyArrayObject *)values[17]);
29024  __pyx_v_df_dw = ((PyArrayObject *)values[18]);
29025  __pyx_v_dfpu_dp = ((PyArrayObject *)values[19]);
29026  __pyx_v_dfpv_dp = ((PyArrayObject *)values[20]);
29027  __pyx_v_dfpw_dp = ((PyArrayObject *)values[21]);
29028  __pyx_v_flux = ((PyArrayObject *)values[22]);
29029  __pyx_v_fluxpu = ((PyArrayObject *)values[23]);
29030  __pyx_v_fluxpv = ((PyArrayObject *)values[24]);
29031  __pyx_v_fluxpw = ((PyArrayObject *)values[25]);
29032  __pyx_v_dflux_du = ((PyArrayObject *)values[26]);
29033  __pyx_v_dflux_dv = ((PyArrayObject *)values[27]);
29034  __pyx_v_dflux_dw = ((PyArrayObject *)values[28]);
29035  __pyx_v_dfluxpu_dp = ((PyArrayObject *)values[29]);
29036  __pyx_v_dfluxpv_dp = ((PyArrayObject *)values[30]);
29037  __pyx_v_dfluxpw_dp = ((PyArrayObject *)values[31]);
29038  }
29039  goto __pyx_L4_argument_unpacking_done;
29040  __pyx_L5_argtuple_error:;
29041  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFluxStokesP3D", 1, 32, 32, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5779, __pyx_L3_error)
29042  __pyx_L3_error:;
29043  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalAdvectiveFluxStokesP3D", __pyx_clineno, __pyx_lineno, __pyx_filename);
29044  __Pyx_RefNannyFinishContext();
29045  return NULL;
29046  __pyx_L4_argument_unpacking_done:;
29047  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5779, __pyx_L1_error)
29048  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5780, __pyx_L1_error)
29049  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5781, __pyx_L1_error)
29050  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_p), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_p", 0))) __PYX_ERR(0, 5782, __pyx_L1_error)
29051  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 5783, __pyx_L1_error)
29052  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_v", 0))) __PYX_ERR(0, 5784, __pyx_L1_error)
29053  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_w), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_w", 0))) __PYX_ERR(0, 5785, __pyx_L1_error)
29054  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5786, __pyx_L1_error)
29055  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f), __pyx_ptype_5numpy_ndarray, 1, "bc_f", 0))) __PYX_ERR(0, 5787, __pyx_L1_error)
29056  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_fpu), __pyx_ptype_5numpy_ndarray, 1, "bc_fpu", 0))) __PYX_ERR(0, 5788, __pyx_L1_error)
29057  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_fpv), __pyx_ptype_5numpy_ndarray, 1, "bc_fpv", 0))) __PYX_ERR(0, 5789, __pyx_L1_error)
29058  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_fpw), __pyx_ptype_5numpy_ndarray, 1, "bc_fpw", 0))) __PYX_ERR(0, 5790, __pyx_L1_error)
29059  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 5791, __pyx_L1_error)
29060  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fpu), __pyx_ptype_5numpy_ndarray, 1, "fpu", 0))) __PYX_ERR(0, 5792, __pyx_L1_error)
29061  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fpv), __pyx_ptype_5numpy_ndarray, 1, "fpv", 0))) __PYX_ERR(0, 5793, __pyx_L1_error)
29062  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fpw), __pyx_ptype_5numpy_ndarray, 1, "fpw", 0))) __PYX_ERR(0, 5794, __pyx_L1_error)
29063  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_du), __pyx_ptype_5numpy_ndarray, 1, "df_du", 0))) __PYX_ERR(0, 5795, __pyx_L1_error)
29064  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_dv), __pyx_ptype_5numpy_ndarray, 1, "df_dv", 0))) __PYX_ERR(0, 5796, __pyx_L1_error)
29065  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_dw), __pyx_ptype_5numpy_ndarray, 1, "df_dw", 0))) __PYX_ERR(0, 5797, __pyx_L1_error)
29066  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfpu_dp), __pyx_ptype_5numpy_ndarray, 1, "dfpu_dp", 0))) __PYX_ERR(0, 5798, __pyx_L1_error)
29067  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfpv_dp), __pyx_ptype_5numpy_ndarray, 1, "dfpv_dp", 0))) __PYX_ERR(0, 5799, __pyx_L1_error)
29068  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfpw_dp), __pyx_ptype_5numpy_ndarray, 1, "dfpw_dp", 0))) __PYX_ERR(0, 5800, __pyx_L1_error)
29069  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 5801, __pyx_L1_error)
29070  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxpu), __pyx_ptype_5numpy_ndarray, 1, "fluxpu", 0))) __PYX_ERR(0, 5802, __pyx_L1_error)
29071  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxpv), __pyx_ptype_5numpy_ndarray, 1, "fluxpv", 0))) __PYX_ERR(0, 5803, __pyx_L1_error)
29072  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxpw), __pyx_ptype_5numpy_ndarray, 1, "fluxpw", 0))) __PYX_ERR(0, 5804, __pyx_L1_error)
29073  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_du", 0))) __PYX_ERR(0, 5805, __pyx_L1_error)
29074  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_dv", 0))) __PYX_ERR(0, 5806, __pyx_L1_error)
29075  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_dw), __pyx_ptype_5numpy_ndarray, 1, "dflux_dw", 0))) __PYX_ERR(0, 5807, __pyx_L1_error)
29076  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfluxpu_dp), __pyx_ptype_5numpy_ndarray, 1, "dfluxpu_dp", 0))) __PYX_ERR(0, 5808, __pyx_L1_error)
29077  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfluxpv_dp), __pyx_ptype_5numpy_ndarray, 1, "dfluxpv_dp", 0))) __PYX_ERR(0, 5809, __pyx_L1_error)
29078  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfluxpw_dp), __pyx_ptype_5numpy_ndarray, 1, "dfluxpw_dp", 0))) __PYX_ERR(0, 5810, __pyx_L1_error)
29079  __pyx_r = __pyx_pf_14cnumericalFlux_158calculateExteriorNumericalAdvectiveFluxStokesP3D(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_p, __pyx_v_isDOFBoundary_u, __pyx_v_isDOFBoundary_v, __pyx_v_isDOFBoundary_w, __pyx_v_n, __pyx_v_bc_f, __pyx_v_bc_fpu, __pyx_v_bc_fpv, __pyx_v_bc_fpw, __pyx_v_f, __pyx_v_fpu, __pyx_v_fpv, __pyx_v_fpw, __pyx_v_df_du, __pyx_v_df_dv, __pyx_v_df_dw, __pyx_v_dfpu_dp, __pyx_v_dfpv_dp, __pyx_v_dfpw_dp, __pyx_v_flux, __pyx_v_fluxpu, __pyx_v_fluxpv, __pyx_v_fluxpw, __pyx_v_dflux_du, __pyx_v_dflux_dv, __pyx_v_dflux_dw, __pyx_v_dfluxpu_dp, __pyx_v_dfluxpv_dp, __pyx_v_dfluxpw_dp);
29080 
29081  /* function exit code */
29082  goto __pyx_L0;
29083  __pyx_L1_error:;
29084  __pyx_r = NULL;
29085  __pyx_L0:;
29086  __Pyx_RefNannyFinishContext();
29087  return __pyx_r;
29088 }
29089 
29090 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) {
29091  PyObject *__pyx_r = NULL;
29092  __Pyx_RefNannyDeclarations
29093  int __pyx_t_1;
29094  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFluxStokesP3D", 0);
29095 
29096  /* "cnumericalFlux.pyx":5811
29097  * np.ndarray dfluxpv_dp,
29098  * np.ndarray dfluxpw_dp):
29099  * if f.ndim > 3: # <<<<<<<<<<<<<<
29100  * ccalculateExteriorNumericalAdvectiveFluxStokesP3D(exteriorElementBoundaries.shape[0],
29101  * f.shape[1],
29102  */
29103  __pyx_t_1 = ((__pyx_v_f->nd > 3) != 0);
29104  if (__pyx_t_1) {
29105 
29106  /* "cnumericalFlux.pyx":5812
29107  * np.ndarray dfluxpw_dp):
29108  * if f.ndim > 3:
29109  * ccalculateExteriorNumericalAdvectiveFluxStokesP3D(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
29110  * f.shape[1],
29111  * f.shape[2],
29112  */
29113  calculateExteriorNumericalAdvectiveFluxStokesP3D((__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_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((int *)__pyx_v_isDOFBoundary_w->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_f->data), ((double *)__pyx_v_bc_fpu->data), ((double *)__pyx_v_bc_fpv->data), ((double *)__pyx_v_bc_fpw->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_fpu->data), ((double *)__pyx_v_fpv->data), ((double *)__pyx_v_fpw->data), ((double *)__pyx_v_df_du->data), ((double *)__pyx_v_df_dv->data), ((double *)__pyx_v_df_dw->data), ((double *)__pyx_v_dfpu_dp->data), ((double *)__pyx_v_dfpv_dp->data), ((double *)__pyx_v_dfpw_dp->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_fluxpu->data), ((double *)__pyx_v_fluxpv->data), ((double *)__pyx_v_fluxpw->data), ((double *)__pyx_v_dflux_du->data), ((double *)__pyx_v_dflux_dv->data), ((double *)__pyx_v_dflux_dw->data), ((double *)__pyx_v_dfluxpu_dp->data), ((double *)__pyx_v_dfluxpv_dp->data), ((double *)__pyx_v_dfluxpw_dp->data));
29114 
29115  /* "cnumericalFlux.pyx":5811
29116  * np.ndarray dfluxpv_dp,
29117  * np.ndarray dfluxpw_dp):
29118  * if f.ndim > 3: # <<<<<<<<<<<<<<
29119  * ccalculateExteriorNumericalAdvectiveFluxStokesP3D(exteriorElementBoundaries.shape[0],
29120  * f.shape[1],
29121  */
29122  goto __pyx_L3;
29123  }
29124 
29125  /* "cnumericalFlux.pyx":5849
29126  * <double*> dfluxpw_dp.data)
29127  * else:
29128  * ccalculateGlobalExteriorNumericalAdvectiveFluxStokesP3D(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
29129  * f.shape[1],
29130  * f.shape[2],
29131  */
29132  /*else*/ {
29133 
29134  /* "cnumericalFlux.pyx":5883
29135  * <double*> dfluxpu_dp.data,
29136  * <double*> dfluxpv_dp.data,
29137  * <double*> dfluxpw_dp.data) # <<<<<<<<<<<<<<
29138  * def calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D(int nExteriorElementBoundaries_global,
29139  * int nQuadraturePoints_elementBoundary,
29140  */
29141  calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D((__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_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((int *)__pyx_v_isDOFBoundary_w->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_f->data), ((double *)__pyx_v_bc_fpu->data), ((double *)__pyx_v_bc_fpv->data), ((double *)__pyx_v_bc_fpw->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_fpu->data), ((double *)__pyx_v_fpv->data), ((double *)__pyx_v_fpw->data), ((double *)__pyx_v_df_du->data), ((double *)__pyx_v_df_dv->data), ((double *)__pyx_v_df_dw->data), ((double *)__pyx_v_dfpu_dp->data), ((double *)__pyx_v_dfpv_dp->data), ((double *)__pyx_v_dfpw_dp->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_fluxpu->data), ((double *)__pyx_v_fluxpv->data), ((double *)__pyx_v_fluxpw->data), ((double *)__pyx_v_dflux_du->data), ((double *)__pyx_v_dflux_dv->data), ((double *)__pyx_v_dflux_dw->data), ((double *)__pyx_v_dfluxpu_dp->data), ((double *)__pyx_v_dfluxpv_dp->data), ((double *)__pyx_v_dfluxpw_dp->data));
29142  }
29143  __pyx_L3:;
29144 
29145  /* "cnumericalFlux.pyx":5779
29146  * <double*> dfluxpu_dp.data,
29147  * <double*> dfluxpv_dp.data)
29148  * def calculateExteriorNumericalAdvectiveFluxStokesP3D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
29149  * np.ndarray elementBoundaryElements,
29150  * np.ndarray elementBoundaryLocalElementBoundaries,
29151  */
29152 
29153  /* function exit code */
29154  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
29155  __Pyx_XGIVEREF(__pyx_r);
29156  __Pyx_RefNannyFinishContext();
29157  return __pyx_r;
29158 }
29159 
29160 /* "cnumericalFlux.pyx":5884
29161  * <double*> dfluxpv_dp.data,
29162  * <double*> dfluxpw_dp.data)
29163  * def calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
29164  * int nQuadraturePoints_elementBoundary,
29165  * int nSpace,
29166  */
29167 
29168 /* Python wrapper */
29169 static PyObject *__pyx_pw_14cnumericalFlux_161calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
29170 static PyMethodDef __pyx_mdef_14cnumericalFlux_161calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D = {"calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_161calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D, METH_VARARGS|METH_KEYWORDS, 0};
29171 static PyObject *__pyx_pw_14cnumericalFlux_161calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
29172  int __pyx_v_nExteriorElementBoundaries_global;
29173  int __pyx_v_nQuadraturePoints_elementBoundary;
29174  int __pyx_v_nSpace;
29175  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
29176  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
29177  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
29178  PyArrayObject *__pyx_v_isDOFBoundary_p = 0;
29179  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
29180  PyArrayObject *__pyx_v_isDOFBoundary_v = 0;
29181  PyArrayObject *__pyx_v_isDOFBoundary_w = 0;
29182  PyArrayObject *__pyx_v_n = 0;
29183  PyArrayObject *__pyx_v_bc_f = 0;
29184  PyArrayObject *__pyx_v_bc_fpu = 0;
29185  PyArrayObject *__pyx_v_bc_fpv = 0;
29186  PyArrayObject *__pyx_v_bc_fpw = 0;
29187  PyArrayObject *__pyx_v_f = 0;
29188  PyArrayObject *__pyx_v_fpu = 0;
29189  PyArrayObject *__pyx_v_fpv = 0;
29190  PyArrayObject *__pyx_v_fpw = 0;
29191  PyArrayObject *__pyx_v_df_du = 0;
29192  PyArrayObject *__pyx_v_df_dv = 0;
29193  PyArrayObject *__pyx_v_df_dw = 0;
29194  PyArrayObject *__pyx_v_dfpu_dp = 0;
29195  PyArrayObject *__pyx_v_dfpv_dp = 0;
29196  PyArrayObject *__pyx_v_dfpw_dp = 0;
29197  PyArrayObject *__pyx_v_flux = 0;
29198  PyArrayObject *__pyx_v_fluxpu = 0;
29199  PyArrayObject *__pyx_v_fluxpv = 0;
29200  PyArrayObject *__pyx_v_fluxpw = 0;
29201  PyArrayObject *__pyx_v_dflux_du = 0;
29202  PyArrayObject *__pyx_v_dflux_dv = 0;
29203  PyArrayObject *__pyx_v_dflux_dw = 0;
29204  PyArrayObject *__pyx_v_dfluxpu_dp = 0;
29205  PyArrayObject *__pyx_v_dfluxpv_dp = 0;
29206  PyArrayObject *__pyx_v_dfluxpw_dp = 0;
29207  int __pyx_lineno = 0;
29208  const char *__pyx_filename = NULL;
29209  int __pyx_clineno = 0;
29210  PyObject *__pyx_r = 0;
29211  __Pyx_RefNannyDeclarations
29212  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D (wrapper)", 0);
29213  {
29214  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_p,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_isDOFBoundary_v,&__pyx_n_s_isDOFBoundary_w,&__pyx_n_s_n,&__pyx_n_s_bc_f,&__pyx_n_s_bc_fpu,&__pyx_n_s_bc_fpv,&__pyx_n_s_bc_fpw,&__pyx_n_s_f,&__pyx_n_s_fpu,&__pyx_n_s_fpv,&__pyx_n_s_fpw,&__pyx_n_s_df_du,&__pyx_n_s_df_dv,&__pyx_n_s_df_dw,&__pyx_n_s_dfpu_dp,&__pyx_n_s_dfpv_dp,&__pyx_n_s_dfpw_dp,&__pyx_n_s_flux,&__pyx_n_s_fluxpu,&__pyx_n_s_fluxpv,&__pyx_n_s_fluxpw,&__pyx_n_s_dflux_du,&__pyx_n_s_dflux_dv,&__pyx_n_s_dflux_dw,&__pyx_n_s_dfluxpu_dp,&__pyx_n_s_dfluxpv_dp,&__pyx_n_s_dfluxpw_dp,0};
29215  PyObject* values[35] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
29216  if (unlikely(__pyx_kwds)) {
29217  Py_ssize_t kw_args;
29218  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
29219  switch (pos_args) {
29220  case 35: values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
29221  CYTHON_FALLTHROUGH;
29222  case 34: values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
29223  CYTHON_FALLTHROUGH;
29224  case 33: values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
29225  CYTHON_FALLTHROUGH;
29226  case 32: values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
29227  CYTHON_FALLTHROUGH;
29228  case 31: values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
29229  CYTHON_FALLTHROUGH;
29230  case 30: values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
29231  CYTHON_FALLTHROUGH;
29232  case 29: values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
29233  CYTHON_FALLTHROUGH;
29234  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
29235  CYTHON_FALLTHROUGH;
29236  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
29237  CYTHON_FALLTHROUGH;
29238  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
29239  CYTHON_FALLTHROUGH;
29240  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
29241  CYTHON_FALLTHROUGH;
29242  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
29243  CYTHON_FALLTHROUGH;
29244  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
29245  CYTHON_FALLTHROUGH;
29246  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
29247  CYTHON_FALLTHROUGH;
29248  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
29249  CYTHON_FALLTHROUGH;
29250  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
29251  CYTHON_FALLTHROUGH;
29252  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
29253  CYTHON_FALLTHROUGH;
29254  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
29255  CYTHON_FALLTHROUGH;
29256  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
29257  CYTHON_FALLTHROUGH;
29258  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
29259  CYTHON_FALLTHROUGH;
29260  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
29261  CYTHON_FALLTHROUGH;
29262  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
29263  CYTHON_FALLTHROUGH;
29264  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
29265  CYTHON_FALLTHROUGH;
29266  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
29267  CYTHON_FALLTHROUGH;
29268  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
29269  CYTHON_FALLTHROUGH;
29270  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
29271  CYTHON_FALLTHROUGH;
29272  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
29273  CYTHON_FALLTHROUGH;
29274  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
29275  CYTHON_FALLTHROUGH;
29276  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
29277  CYTHON_FALLTHROUGH;
29278  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
29279  CYTHON_FALLTHROUGH;
29280  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
29281  CYTHON_FALLTHROUGH;
29282  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
29283  CYTHON_FALLTHROUGH;
29284  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
29285  CYTHON_FALLTHROUGH;
29286  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
29287  CYTHON_FALLTHROUGH;
29288  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29289  CYTHON_FALLTHROUGH;
29290  case 0: break;
29291  default: goto __pyx_L5_argtuple_error;
29292  }
29293  kw_args = PyDict_Size(__pyx_kwds);
29294  switch (pos_args) {
29295  case 0:
29296  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
29297  else goto __pyx_L5_argtuple_error;
29298  CYTHON_FALLTHROUGH;
29299  case 1:
29300  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
29301  else {
29302  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 1); __PYX_ERR(0, 5884, __pyx_L3_error)
29303  }
29304  CYTHON_FALLTHROUGH;
29305  case 2:
29306  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
29307  else {
29308  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 2); __PYX_ERR(0, 5884, __pyx_L3_error)
29309  }
29310  CYTHON_FALLTHROUGH;
29311  case 3:
29312  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
29313  else {
29314  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 3); __PYX_ERR(0, 5884, __pyx_L3_error)
29315  }
29316  CYTHON_FALLTHROUGH;
29317  case 4:
29318  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
29319  else {
29320  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 4); __PYX_ERR(0, 5884, __pyx_L3_error)
29321  }
29322  CYTHON_FALLTHROUGH;
29323  case 5:
29324  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
29325  else {
29326  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 5); __PYX_ERR(0, 5884, __pyx_L3_error)
29327  }
29328  CYTHON_FALLTHROUGH;
29329  case 6:
29330  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_p)) != 0)) kw_args--;
29331  else {
29332  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 6); __PYX_ERR(0, 5884, __pyx_L3_error)
29333  }
29334  CYTHON_FALLTHROUGH;
29335  case 7:
29336  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
29337  else {
29338  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 7); __PYX_ERR(0, 5884, __pyx_L3_error)
29339  }
29340  CYTHON_FALLTHROUGH;
29341  case 8:
29342  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_v)) != 0)) kw_args--;
29343  else {
29344  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 8); __PYX_ERR(0, 5884, __pyx_L3_error)
29345  }
29346  CYTHON_FALLTHROUGH;
29347  case 9:
29348  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_w)) != 0)) kw_args--;
29349  else {
29350  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 9); __PYX_ERR(0, 5884, __pyx_L3_error)
29351  }
29352  CYTHON_FALLTHROUGH;
29353  case 10:
29354  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
29355  else {
29356  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 10); __PYX_ERR(0, 5884, __pyx_L3_error)
29357  }
29358  CYTHON_FALLTHROUGH;
29359  case 11:
29360  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f)) != 0)) kw_args--;
29361  else {
29362  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 11); __PYX_ERR(0, 5884, __pyx_L3_error)
29363  }
29364  CYTHON_FALLTHROUGH;
29365  case 12:
29366  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_fpu)) != 0)) kw_args--;
29367  else {
29368  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 12); __PYX_ERR(0, 5884, __pyx_L3_error)
29369  }
29370  CYTHON_FALLTHROUGH;
29371  case 13:
29372  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_fpv)) != 0)) kw_args--;
29373  else {
29374  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 13); __PYX_ERR(0, 5884, __pyx_L3_error)
29375  }
29376  CYTHON_FALLTHROUGH;
29377  case 14:
29378  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_fpw)) != 0)) kw_args--;
29379  else {
29380  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 14); __PYX_ERR(0, 5884, __pyx_L3_error)
29381  }
29382  CYTHON_FALLTHROUGH;
29383  case 15:
29384  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
29385  else {
29386  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 15); __PYX_ERR(0, 5884, __pyx_L3_error)
29387  }
29388  CYTHON_FALLTHROUGH;
29389  case 16:
29390  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fpu)) != 0)) kw_args--;
29391  else {
29392  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 16); __PYX_ERR(0, 5884, __pyx_L3_error)
29393  }
29394  CYTHON_FALLTHROUGH;
29395  case 17:
29396  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fpv)) != 0)) kw_args--;
29397  else {
29398  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 17); __PYX_ERR(0, 5884, __pyx_L3_error)
29399  }
29400  CYTHON_FALLTHROUGH;
29401  case 18:
29402  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fpw)) != 0)) kw_args--;
29403  else {
29404  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 18); __PYX_ERR(0, 5884, __pyx_L3_error)
29405  }
29406  CYTHON_FALLTHROUGH;
29407  case 19:
29408  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_du)) != 0)) kw_args--;
29409  else {
29410  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 19); __PYX_ERR(0, 5884, __pyx_L3_error)
29411  }
29412  CYTHON_FALLTHROUGH;
29413  case 20:
29414  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_dv)) != 0)) kw_args--;
29415  else {
29416  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 20); __PYX_ERR(0, 5884, __pyx_L3_error)
29417  }
29418  CYTHON_FALLTHROUGH;
29419  case 21:
29420  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_dw)) != 0)) kw_args--;
29421  else {
29422  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 21); __PYX_ERR(0, 5884, __pyx_L3_error)
29423  }
29424  CYTHON_FALLTHROUGH;
29425  case 22:
29426  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfpu_dp)) != 0)) kw_args--;
29427  else {
29428  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 22); __PYX_ERR(0, 5884, __pyx_L3_error)
29429  }
29430  CYTHON_FALLTHROUGH;
29431  case 23:
29432  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfpv_dp)) != 0)) kw_args--;
29433  else {
29434  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 23); __PYX_ERR(0, 5884, __pyx_L3_error)
29435  }
29436  CYTHON_FALLTHROUGH;
29437  case 24:
29438  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfpw_dp)) != 0)) kw_args--;
29439  else {
29440  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 24); __PYX_ERR(0, 5884, __pyx_L3_error)
29441  }
29442  CYTHON_FALLTHROUGH;
29443  case 25:
29444  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
29445  else {
29446  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 25); __PYX_ERR(0, 5884, __pyx_L3_error)
29447  }
29448  CYTHON_FALLTHROUGH;
29449  case 26:
29450  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxpu)) != 0)) kw_args--;
29451  else {
29452  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 26); __PYX_ERR(0, 5884, __pyx_L3_error)
29453  }
29454  CYTHON_FALLTHROUGH;
29455  case 27:
29456  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxpv)) != 0)) kw_args--;
29457  else {
29458  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 27); __PYX_ERR(0, 5884, __pyx_L3_error)
29459  }
29460  CYTHON_FALLTHROUGH;
29461  case 28:
29462  if (likely((values[28] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxpw)) != 0)) kw_args--;
29463  else {
29464  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 28); __PYX_ERR(0, 5884, __pyx_L3_error)
29465  }
29466  CYTHON_FALLTHROUGH;
29467  case 29:
29468  if (likely((values[29] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_du)) != 0)) kw_args--;
29469  else {
29470  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 29); __PYX_ERR(0, 5884, __pyx_L3_error)
29471  }
29472  CYTHON_FALLTHROUGH;
29473  case 30:
29474  if (likely((values[30] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_dv)) != 0)) kw_args--;
29475  else {
29476  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 30); __PYX_ERR(0, 5884, __pyx_L3_error)
29477  }
29478  CYTHON_FALLTHROUGH;
29479  case 31:
29480  if (likely((values[31] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_dw)) != 0)) kw_args--;
29481  else {
29482  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 31); __PYX_ERR(0, 5884, __pyx_L3_error)
29483  }
29484  CYTHON_FALLTHROUGH;
29485  case 32:
29486  if (likely((values[32] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfluxpu_dp)) != 0)) kw_args--;
29487  else {
29488  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 32); __PYX_ERR(0, 5884, __pyx_L3_error)
29489  }
29490  CYTHON_FALLTHROUGH;
29491  case 33:
29492  if (likely((values[33] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfluxpv_dp)) != 0)) kw_args--;
29493  else {
29494  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 33); __PYX_ERR(0, 5884, __pyx_L3_error)
29495  }
29496  CYTHON_FALLTHROUGH;
29497  case 34:
29498  if (likely((values[34] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfluxpw_dp)) != 0)) kw_args--;
29499  else {
29500  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, 34); __PYX_ERR(0, 5884, __pyx_L3_error)
29501  }
29502  }
29503  if (unlikely(kw_args > 0)) {
29504  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D") < 0)) __PYX_ERR(0, 5884, __pyx_L3_error)
29505  }
29506  } else if (PyTuple_GET_SIZE(__pyx_args) != 35) {
29507  goto __pyx_L5_argtuple_error;
29508  } else {
29509  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29510  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
29511  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
29512  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
29513  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
29514  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
29515  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
29516  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
29517  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
29518  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
29519  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
29520  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
29521  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
29522  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
29523  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
29524  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
29525  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
29526  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
29527  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
29528  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
29529  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
29530  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
29531  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
29532  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
29533  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
29534  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
29535  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
29536  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
29537  values[28] = PyTuple_GET_ITEM(__pyx_args, 28);
29538  values[29] = PyTuple_GET_ITEM(__pyx_args, 29);
29539  values[30] = PyTuple_GET_ITEM(__pyx_args, 30);
29540  values[31] = PyTuple_GET_ITEM(__pyx_args, 31);
29541  values[32] = PyTuple_GET_ITEM(__pyx_args, 32);
29542  values[33] = PyTuple_GET_ITEM(__pyx_args, 33);
29543  values[34] = PyTuple_GET_ITEM(__pyx_args, 34);
29544  }
29545  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5884, __pyx_L3_error)
29546  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5885, __pyx_L3_error)
29547  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5886, __pyx_L3_error)
29548  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
29549  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
29550  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
29551  __pyx_v_isDOFBoundary_p = ((PyArrayObject *)values[6]);
29552  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[7]);
29553  __pyx_v_isDOFBoundary_v = ((PyArrayObject *)values[8]);
29554  __pyx_v_isDOFBoundary_w = ((PyArrayObject *)values[9]);
29555  __pyx_v_n = ((PyArrayObject *)values[10]);
29556  __pyx_v_bc_f = ((PyArrayObject *)values[11]);
29557  __pyx_v_bc_fpu = ((PyArrayObject *)values[12]);
29558  __pyx_v_bc_fpv = ((PyArrayObject *)values[13]);
29559  __pyx_v_bc_fpw = ((PyArrayObject *)values[14]);
29560  __pyx_v_f = ((PyArrayObject *)values[15]);
29561  __pyx_v_fpu = ((PyArrayObject *)values[16]);
29562  __pyx_v_fpv = ((PyArrayObject *)values[17]);
29563  __pyx_v_fpw = ((PyArrayObject *)values[18]);
29564  __pyx_v_df_du = ((PyArrayObject *)values[19]);
29565  __pyx_v_df_dv = ((PyArrayObject *)values[20]);
29566  __pyx_v_df_dw = ((PyArrayObject *)values[21]);
29567  __pyx_v_dfpu_dp = ((PyArrayObject *)values[22]);
29568  __pyx_v_dfpv_dp = ((PyArrayObject *)values[23]);
29569  __pyx_v_dfpw_dp = ((PyArrayObject *)values[24]);
29570  __pyx_v_flux = ((PyArrayObject *)values[25]);
29571  __pyx_v_fluxpu = ((PyArrayObject *)values[26]);
29572  __pyx_v_fluxpv = ((PyArrayObject *)values[27]);
29573  __pyx_v_fluxpw = ((PyArrayObject *)values[28]);
29574  __pyx_v_dflux_du = ((PyArrayObject *)values[29]);
29575  __pyx_v_dflux_dv = ((PyArrayObject *)values[30]);
29576  __pyx_v_dflux_dw = ((PyArrayObject *)values[31]);
29577  __pyx_v_dfluxpu_dp = ((PyArrayObject *)values[32]);
29578  __pyx_v_dfluxpv_dp = ((PyArrayObject *)values[33]);
29579  __pyx_v_dfluxpw_dp = ((PyArrayObject *)values[34]);
29580  }
29581  goto __pyx_L4_argument_unpacking_done;
29582  __pyx_L5_argtuple_error:;
29583  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 1, 35, 35, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5884, __pyx_L3_error)
29584  __pyx_L3_error:;
29585  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", __pyx_clineno, __pyx_lineno, __pyx_filename);
29586  __Pyx_RefNannyFinishContext();
29587  return NULL;
29588  __pyx_L4_argument_unpacking_done:;
29589  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5887, __pyx_L1_error)
29590  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5888, __pyx_L1_error)
29591  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5889, __pyx_L1_error)
29592  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_p), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_p", 0))) __PYX_ERR(0, 5890, __pyx_L1_error)
29593  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 5891, __pyx_L1_error)
29594  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_v", 0))) __PYX_ERR(0, 5892, __pyx_L1_error)
29595  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_w), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_w", 0))) __PYX_ERR(0, 5893, __pyx_L1_error)
29596  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5894, __pyx_L1_error)
29597  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f), __pyx_ptype_5numpy_ndarray, 1, "bc_f", 0))) __PYX_ERR(0, 5895, __pyx_L1_error)
29598  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_fpu), __pyx_ptype_5numpy_ndarray, 1, "bc_fpu", 0))) __PYX_ERR(0, 5896, __pyx_L1_error)
29599  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_fpv), __pyx_ptype_5numpy_ndarray, 1, "bc_fpv", 0))) __PYX_ERR(0, 5897, __pyx_L1_error)
29600  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_fpw), __pyx_ptype_5numpy_ndarray, 1, "bc_fpw", 0))) __PYX_ERR(0, 5898, __pyx_L1_error)
29601  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 5899, __pyx_L1_error)
29602  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fpu), __pyx_ptype_5numpy_ndarray, 1, "fpu", 0))) __PYX_ERR(0, 5900, __pyx_L1_error)
29603  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fpv), __pyx_ptype_5numpy_ndarray, 1, "fpv", 0))) __PYX_ERR(0, 5901, __pyx_L1_error)
29604  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fpw), __pyx_ptype_5numpy_ndarray, 1, "fpw", 0))) __PYX_ERR(0, 5902, __pyx_L1_error)
29605  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_du), __pyx_ptype_5numpy_ndarray, 1, "df_du", 0))) __PYX_ERR(0, 5903, __pyx_L1_error)
29606  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_dv), __pyx_ptype_5numpy_ndarray, 1, "df_dv", 0))) __PYX_ERR(0, 5904, __pyx_L1_error)
29607  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_dw), __pyx_ptype_5numpy_ndarray, 1, "df_dw", 0))) __PYX_ERR(0, 5905, __pyx_L1_error)
29608  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfpu_dp), __pyx_ptype_5numpy_ndarray, 1, "dfpu_dp", 0))) __PYX_ERR(0, 5906, __pyx_L1_error)
29609  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfpv_dp), __pyx_ptype_5numpy_ndarray, 1, "dfpv_dp", 0))) __PYX_ERR(0, 5907, __pyx_L1_error)
29610  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfpw_dp), __pyx_ptype_5numpy_ndarray, 1, "dfpw_dp", 0))) __PYX_ERR(0, 5908, __pyx_L1_error)
29611  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 5909, __pyx_L1_error)
29612  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxpu), __pyx_ptype_5numpy_ndarray, 1, "fluxpu", 0))) __PYX_ERR(0, 5910, __pyx_L1_error)
29613  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxpv), __pyx_ptype_5numpy_ndarray, 1, "fluxpv", 0))) __PYX_ERR(0, 5911, __pyx_L1_error)
29614  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxpw), __pyx_ptype_5numpy_ndarray, 1, "fluxpw", 0))) __PYX_ERR(0, 5912, __pyx_L1_error)
29615  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_du", 0))) __PYX_ERR(0, 5913, __pyx_L1_error)
29616  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_dv", 0))) __PYX_ERR(0, 5914, __pyx_L1_error)
29617  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_dw), __pyx_ptype_5numpy_ndarray, 1, "dflux_dw", 0))) __PYX_ERR(0, 5915, __pyx_L1_error)
29618  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfluxpu_dp), __pyx_ptype_5numpy_ndarray, 1, "dfluxpu_dp", 0))) __PYX_ERR(0, 5916, __pyx_L1_error)
29619  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfluxpv_dp), __pyx_ptype_5numpy_ndarray, 1, "dfluxpv_dp", 0))) __PYX_ERR(0, 5917, __pyx_L1_error)
29620  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfluxpw_dp), __pyx_ptype_5numpy_ndarray, 1, "dfluxpw_dp", 0))) __PYX_ERR(0, 5918, __pyx_L1_error)
29621  __pyx_r = __pyx_pf_14cnumericalFlux_160calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_p, __pyx_v_isDOFBoundary_u, __pyx_v_isDOFBoundary_v, __pyx_v_isDOFBoundary_w, __pyx_v_n, __pyx_v_bc_f, __pyx_v_bc_fpu, __pyx_v_bc_fpv, __pyx_v_bc_fpw, __pyx_v_f, __pyx_v_fpu, __pyx_v_fpv, __pyx_v_fpw, __pyx_v_df_du, __pyx_v_df_dv, __pyx_v_df_dw, __pyx_v_dfpu_dp, __pyx_v_dfpv_dp, __pyx_v_dfpw_dp, __pyx_v_flux, __pyx_v_fluxpu, __pyx_v_fluxpv, __pyx_v_fluxpw, __pyx_v_dflux_du, __pyx_v_dflux_dv, __pyx_v_dflux_dw, __pyx_v_dfluxpu_dp, __pyx_v_dfluxpv_dp, __pyx_v_dfluxpw_dp);
29622 
29623  /* function exit code */
29624  goto __pyx_L0;
29625  __pyx_L1_error:;
29626  __pyx_r = NULL;
29627  __pyx_L0:;
29628  __Pyx_RefNannyFinishContext();
29629  return __pyx_r;
29630 }
29631 
29632 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) {
29633  PyObject *__pyx_r = NULL;
29634  __Pyx_RefNannyDeclarations
29635  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D", 0);
29636 
29637  /* "cnumericalFlux.pyx":5919
29638  * np.ndarray dfluxpv_dp,
29639  * np.ndarray dfluxpw_dp):
29640  * ccalculateGlobalExteriorNumericalAdvectiveFluxStokesP3D( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
29641  * nQuadraturePoints_elementBoundary,
29642  * nSpace,
29643  */
29644  calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((int *)__pyx_v_isDOFBoundary_w->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_f->data), ((double *)__pyx_v_bc_fpu->data), ((double *)__pyx_v_bc_fpv->data), ((double *)__pyx_v_bc_fpw->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_fpu->data), ((double *)__pyx_v_fpv->data), ((double *)__pyx_v_fpw->data), ((double *)__pyx_v_df_du->data), ((double *)__pyx_v_df_dv->data), ((double *)__pyx_v_df_dw->data), ((double *)__pyx_v_dfpu_dp->data), ((double *)__pyx_v_dfpv_dp->data), ((double *)__pyx_v_dfpw_dp->data), ((double *)__pyx_v_flux->data), ((double *)__pyx_v_fluxpu->data), ((double *)__pyx_v_fluxpv->data), ((double *)__pyx_v_fluxpw->data), ((double *)__pyx_v_dflux_du->data), ((double *)__pyx_v_dflux_dv->data), ((double *)__pyx_v_dflux_dw->data), ((double *)__pyx_v_dfluxpu_dp->data), ((double *)__pyx_v_dfluxpv_dp->data), ((double *)__pyx_v_dfluxpw_dp->data));
29645 
29646  /* "cnumericalFlux.pyx":5884
29647  * <double*> dfluxpv_dp.data,
29648  * <double*> dfluxpw_dp.data)
29649  * def calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
29650  * int nQuadraturePoints_elementBoundary,
29651  * int nSpace,
29652  */
29653 
29654  /* function exit code */
29655  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
29656  __Pyx_XGIVEREF(__pyx_r);
29657  __Pyx_RefNannyFinishContext();
29658  return __pyx_r;
29659 }
29660 
29661 /* "cnumericalFlux.pyx":5954
29662  * <double*> dfluxpv_dp.data,
29663  * <double*> dfluxpw_dp.data)
29664  * def calculateExteriorNumericalAdvectiveFlux_average(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
29665  * np.ndarray elementBoundaryElements,
29666  * np.ndarray elementBoundaryLocalElementBoundaries,
29667  */
29668 
29669 /* Python wrapper */
29670 static PyObject *__pyx_pw_14cnumericalFlux_163calculateExteriorNumericalAdvectiveFlux_average(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
29671 static PyMethodDef __pyx_mdef_14cnumericalFlux_163calculateExteriorNumericalAdvectiveFlux_average = {"calculateExteriorNumericalAdvectiveFlux_average", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_163calculateExteriorNumericalAdvectiveFlux_average, METH_VARARGS|METH_KEYWORDS, 0};
29672 static PyObject *__pyx_pw_14cnumericalFlux_163calculateExteriorNumericalAdvectiveFlux_average(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
29673  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
29674  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
29675  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
29676  PyArrayObject *__pyx_v_isDOFBoundary = 0;
29677  PyArrayObject *__pyx_v_inflowFlag = 0;
29678  PyArrayObject *__pyx_v_n = 0;
29679  PyArrayObject *__pyx_v_bc_u = 0;
29680  PyArrayObject *__pyx_v_bc_f = 0;
29681  PyArrayObject *__pyx_v_bc_df = 0;
29682  PyArrayObject *__pyx_v_u = 0;
29683  PyArrayObject *__pyx_v_f = 0;
29684  PyArrayObject *__pyx_v_df = 0;
29685  PyArrayObject *__pyx_v_flux = 0;
29686  PyArrayObject *__pyx_v_dflux = 0;
29687  int __pyx_lineno = 0;
29688  const char *__pyx_filename = NULL;
29689  int __pyx_clineno = 0;
29690  PyObject *__pyx_r = 0;
29691  __Pyx_RefNannyDeclarations
29692  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFlux_average (wrapper)", 0);
29693  {
29694  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};
29695  PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
29696  if (unlikely(__pyx_kwds)) {
29697  Py_ssize_t kw_args;
29698  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
29699  switch (pos_args) {
29700  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
29701  CYTHON_FALLTHROUGH;
29702  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
29703  CYTHON_FALLTHROUGH;
29704  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
29705  CYTHON_FALLTHROUGH;
29706  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
29707  CYTHON_FALLTHROUGH;
29708  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
29709  CYTHON_FALLTHROUGH;
29710  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
29711  CYTHON_FALLTHROUGH;
29712  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
29713  CYTHON_FALLTHROUGH;
29714  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
29715  CYTHON_FALLTHROUGH;
29716  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
29717  CYTHON_FALLTHROUGH;
29718  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
29719  CYTHON_FALLTHROUGH;
29720  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
29721  CYTHON_FALLTHROUGH;
29722  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
29723  CYTHON_FALLTHROUGH;
29724  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
29725  CYTHON_FALLTHROUGH;
29726  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29727  CYTHON_FALLTHROUGH;
29728  case 0: break;
29729  default: goto __pyx_L5_argtuple_error;
29730  }
29731  kw_args = PyDict_Size(__pyx_kwds);
29732  switch (pos_args) {
29733  case 0:
29734  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
29735  else goto __pyx_L5_argtuple_error;
29736  CYTHON_FALLTHROUGH;
29737  case 1:
29738  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
29739  else {
29740  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_average", 1, 14, 14, 1); __PYX_ERR(0, 5954, __pyx_L3_error)
29741  }
29742  CYTHON_FALLTHROUGH;
29743  case 2:
29744  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
29745  else {
29746  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_average", 1, 14, 14, 2); __PYX_ERR(0, 5954, __pyx_L3_error)
29747  }
29748  CYTHON_FALLTHROUGH;
29749  case 3:
29750  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
29751  else {
29752  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_average", 1, 14, 14, 3); __PYX_ERR(0, 5954, __pyx_L3_error)
29753  }
29754  CYTHON_FALLTHROUGH;
29755  case 4:
29756  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
29757  else {
29758  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_average", 1, 14, 14, 4); __PYX_ERR(0, 5954, __pyx_L3_error)
29759  }
29760  CYTHON_FALLTHROUGH;
29761  case 5:
29762  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
29763  else {
29764  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_average", 1, 14, 14, 5); __PYX_ERR(0, 5954, __pyx_L3_error)
29765  }
29766  CYTHON_FALLTHROUGH;
29767  case 6:
29768  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
29769  else {
29770  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_average", 1, 14, 14, 6); __PYX_ERR(0, 5954, __pyx_L3_error)
29771  }
29772  CYTHON_FALLTHROUGH;
29773  case 7:
29774  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f)) != 0)) kw_args--;
29775  else {
29776  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_average", 1, 14, 14, 7); __PYX_ERR(0, 5954, __pyx_L3_error)
29777  }
29778  CYTHON_FALLTHROUGH;
29779  case 8:
29780  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_df)) != 0)) kw_args--;
29781  else {
29782  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_average", 1, 14, 14, 8); __PYX_ERR(0, 5954, __pyx_L3_error)
29783  }
29784  CYTHON_FALLTHROUGH;
29785  case 9:
29786  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
29787  else {
29788  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_average", 1, 14, 14, 9); __PYX_ERR(0, 5954, __pyx_L3_error)
29789  }
29790  CYTHON_FALLTHROUGH;
29791  case 10:
29792  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
29793  else {
29794  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_average", 1, 14, 14, 10); __PYX_ERR(0, 5954, __pyx_L3_error)
29795  }
29796  CYTHON_FALLTHROUGH;
29797  case 11:
29798  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
29799  else {
29800  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_average", 1, 14, 14, 11); __PYX_ERR(0, 5954, __pyx_L3_error)
29801  }
29802  CYTHON_FALLTHROUGH;
29803  case 12:
29804  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
29805  else {
29806  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_average", 1, 14, 14, 12); __PYX_ERR(0, 5954, __pyx_L3_error)
29807  }
29808  CYTHON_FALLTHROUGH;
29809  case 13:
29810  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux)) != 0)) kw_args--;
29811  else {
29812  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_average", 1, 14, 14, 13); __PYX_ERR(0, 5954, __pyx_L3_error)
29813  }
29814  }
29815  if (unlikely(kw_args > 0)) {
29816  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalAdvectiveFlux_average") < 0)) __PYX_ERR(0, 5954, __pyx_L3_error)
29817  }
29818  } else if (PyTuple_GET_SIZE(__pyx_args) != 14) {
29819  goto __pyx_L5_argtuple_error;
29820  } else {
29821  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29822  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
29823  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
29824  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
29825  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
29826  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
29827  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
29828  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
29829  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
29830  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
29831  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
29832  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
29833  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
29834  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
29835  }
29836  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
29837  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
29838  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
29839  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[3]);
29840  __pyx_v_inflowFlag = ((PyArrayObject *)values[4]);
29841  __pyx_v_n = ((PyArrayObject *)values[5]);
29842  __pyx_v_bc_u = ((PyArrayObject *)values[6]);
29843  __pyx_v_bc_f = ((PyArrayObject *)values[7]);
29844  __pyx_v_bc_df = ((PyArrayObject *)values[8]);
29845  __pyx_v_u = ((PyArrayObject *)values[9]);
29846  __pyx_v_f = ((PyArrayObject *)values[10]);
29847  __pyx_v_df = ((PyArrayObject *)values[11]);
29848  __pyx_v_flux = ((PyArrayObject *)values[12]);
29849  __pyx_v_dflux = ((PyArrayObject *)values[13]);
29850  }
29851  goto __pyx_L4_argument_unpacking_done;
29852  __pyx_L5_argtuple_error:;
29853  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalAdvectiveFlux_average", 1, 14, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5954, __pyx_L3_error)
29854  __pyx_L3_error:;
29855  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalAdvectiveFlux_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
29856  __Pyx_RefNannyFinishContext();
29857  return NULL;
29858  __pyx_L4_argument_unpacking_done:;
29859  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 5954, __pyx_L1_error)
29860  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 5955, __pyx_L1_error)
29861  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 5956, __pyx_L1_error)
29862  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 5957, __pyx_L1_error)
29863  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 5958, __pyx_L1_error)
29864  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 5959, __pyx_L1_error)
29865  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 5960, __pyx_L1_error)
29866  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f), __pyx_ptype_5numpy_ndarray, 1, "bc_f", 0))) __PYX_ERR(0, 5961, __pyx_L1_error)
29867  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_df), __pyx_ptype_5numpy_ndarray, 1, "bc_df", 0))) __PYX_ERR(0, 5962, __pyx_L1_error)
29868  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 5963, __pyx_L1_error)
29869  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 5964, __pyx_L1_error)
29870  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 5965, __pyx_L1_error)
29871  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 5966, __pyx_L1_error)
29872  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux), __pyx_ptype_5numpy_ndarray, 1, "dflux", 0))) __PYX_ERR(0, 5967, __pyx_L1_error)
29873  __pyx_r = __pyx_pf_14cnumericalFlux_162calculateExteriorNumericalAdvectiveFlux_average(__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);
29874 
29875  /* function exit code */
29876  goto __pyx_L0;
29877  __pyx_L1_error:;
29878  __pyx_r = NULL;
29879  __pyx_L0:;
29880  __Pyx_RefNannyFinishContext();
29881  return __pyx_r;
29882 }
29883 
29884 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) {
29885  PyObject *__pyx_r = NULL;
29886  __Pyx_RefNannyDeclarations
29887  PyObject *__pyx_t_1 = NULL;
29888  PyObject *__pyx_t_2 = NULL;
29889  int __pyx_t_3;
29890  int __pyx_lineno = 0;
29891  const char *__pyx_filename = NULL;
29892  int __pyx_clineno = 0;
29893  __Pyx_RefNannySetupContext("calculateExteriorNumericalAdvectiveFlux_average", 0);
29894 
29895  /* "cnumericalFlux.pyx":5968
29896  * np.ndarray flux,
29897  * np.ndarray dflux):
29898  * if f.dim > 3: # <<<<<<<<<<<<<<
29899  * ccalculateExteriorNumericalAdvectiveFlux_average(exteriorElementBoundaries.shape[0],
29900  * f.shape[1],
29901  */
29902  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_f), __pyx_n_s_dim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5968, __pyx_L1_error)
29903  __Pyx_GOTREF(__pyx_t_1);
29904  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_3, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5968, __pyx_L1_error)
29905  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
29906  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5968, __pyx_L1_error)
29907  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
29908  if (__pyx_t_3) {
29909 
29910  /* "cnumericalFlux.pyx":5969
29911  * np.ndarray dflux):
29912  * if f.dim > 3:
29913  * ccalculateExteriorNumericalAdvectiveFlux_average(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
29914  * f.shape[1],
29915  * f.shape[2],
29916  */
29917  calculateExteriorNumericalAdvectiveFlux_average((__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));
29918 
29919  /* "cnumericalFlux.pyx":5968
29920  * np.ndarray flux,
29921  * np.ndarray dflux):
29922  * if f.dim > 3: # <<<<<<<<<<<<<<
29923  * ccalculateExteriorNumericalAdvectiveFlux_average(exteriorElementBoundaries.shape[0],
29924  * f.shape[1],
29925  */
29926  goto __pyx_L3;
29927  }
29928 
29929  /* "cnumericalFlux.pyx":5988
29930  * <double*> dflux.data)
29931  * else:
29932  * ccalculateGlobalExteriorNumericalAdvectiveFlux_average(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
29933  * f.shape[1],
29934  * f.shape[2],
29935  */
29936  /*else*/ {
29937 
29938  /* "cnumericalFlux.pyx":6004
29939  * <double*> df.data,
29940  * <double*> flux.data,
29941  * <double*> dflux.data) # <<<<<<<<<<<<<<
29942  * def calculateGlobalExteriorNumericalAdvectiveFlux_average(int nExteriorElementBoundaries_global,
29943  * int nQuadraturePoints_elementBoundary,
29944  */
29945  calculateGlobalExteriorNumericalAdvectiveFlux_average((__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));
29946  }
29947  __pyx_L3:;
29948 
29949  /* "cnumericalFlux.pyx":5954
29950  * <double*> dfluxpv_dp.data,
29951  * <double*> dfluxpw_dp.data)
29952  * def calculateExteriorNumericalAdvectiveFlux_average(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
29953  * np.ndarray elementBoundaryElements,
29954  * np.ndarray elementBoundaryLocalElementBoundaries,
29955  */
29956 
29957  /* function exit code */
29958  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
29959  goto __pyx_L0;
29960  __pyx_L1_error:;
29961  __Pyx_XDECREF(__pyx_t_1);
29962  __Pyx_XDECREF(__pyx_t_2);
29963  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalAdvectiveFlux_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
29964  __pyx_r = NULL;
29965  __pyx_L0:;
29966  __Pyx_XGIVEREF(__pyx_r);
29967  __Pyx_RefNannyFinishContext();
29968  return __pyx_r;
29969 }
29970 
29971 /* "cnumericalFlux.pyx":6005
29972  * <double*> flux.data,
29973  * <double*> dflux.data)
29974  * def calculateGlobalExteriorNumericalAdvectiveFlux_average(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
29975  * int nQuadraturePoints_elementBoundary,
29976  * int nSpace,
29977  */
29978 
29979 /* Python wrapper */
29980 static PyObject *__pyx_pw_14cnumericalFlux_165calculateGlobalExteriorNumericalAdvectiveFlux_average(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
29981 static PyMethodDef __pyx_mdef_14cnumericalFlux_165calculateGlobalExteriorNumericalAdvectiveFlux_average = {"calculateGlobalExteriorNumericalAdvectiveFlux_average", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_165calculateGlobalExteriorNumericalAdvectiveFlux_average, METH_VARARGS|METH_KEYWORDS, 0};
29982 static PyObject *__pyx_pw_14cnumericalFlux_165calculateGlobalExteriorNumericalAdvectiveFlux_average(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
29983  int __pyx_v_nExteriorElementBoundaries_global;
29984  int __pyx_v_nQuadraturePoints_elementBoundary;
29985  int __pyx_v_nSpace;
29986  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
29987  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
29988  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
29989  PyArrayObject *__pyx_v_isDOFBoundary = 0;
29990  PyArrayObject *__pyx_v_inflowFlag = 0;
29991  PyArrayObject *__pyx_v_n = 0;
29992  PyArrayObject *__pyx_v_bc_u = 0;
29993  PyArrayObject *__pyx_v_bc_f = 0;
29994  PyArrayObject *__pyx_v_bc_df = 0;
29995  PyArrayObject *__pyx_v_u = 0;
29996  PyArrayObject *__pyx_v_f = 0;
29997  PyArrayObject *__pyx_v_df = 0;
29998  PyArrayObject *__pyx_v_flux = 0;
29999  PyArrayObject *__pyx_v_dflux = 0;
30000  int __pyx_lineno = 0;
30001  const char *__pyx_filename = NULL;
30002  int __pyx_clineno = 0;
30003  PyObject *__pyx_r = 0;
30004  __Pyx_RefNannyDeclarations
30005  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFlux_average (wrapper)", 0);
30006  {
30007  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__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};
30008  PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
30009  if (unlikely(__pyx_kwds)) {
30010  Py_ssize_t kw_args;
30011  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
30012  switch (pos_args) {
30013  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
30014  CYTHON_FALLTHROUGH;
30015  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
30016  CYTHON_FALLTHROUGH;
30017  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
30018  CYTHON_FALLTHROUGH;
30019  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
30020  CYTHON_FALLTHROUGH;
30021  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
30022  CYTHON_FALLTHROUGH;
30023  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
30024  CYTHON_FALLTHROUGH;
30025  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
30026  CYTHON_FALLTHROUGH;
30027  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
30028  CYTHON_FALLTHROUGH;
30029  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
30030  CYTHON_FALLTHROUGH;
30031  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
30032  CYTHON_FALLTHROUGH;
30033  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
30034  CYTHON_FALLTHROUGH;
30035  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
30036  CYTHON_FALLTHROUGH;
30037  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
30038  CYTHON_FALLTHROUGH;
30039  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
30040  CYTHON_FALLTHROUGH;
30041  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
30042  CYTHON_FALLTHROUGH;
30043  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
30044  CYTHON_FALLTHROUGH;
30045  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
30046  CYTHON_FALLTHROUGH;
30047  case 0: break;
30048  default: goto __pyx_L5_argtuple_error;
30049  }
30050  kw_args = PyDict_Size(__pyx_kwds);
30051  switch (pos_args) {
30052  case 0:
30053  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
30054  else goto __pyx_L5_argtuple_error;
30055  CYTHON_FALLTHROUGH;
30056  case 1:
30057  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
30058  else {
30059  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 1); __PYX_ERR(0, 6005, __pyx_L3_error)
30060  }
30061  CYTHON_FALLTHROUGH;
30062  case 2:
30063  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
30064  else {
30065  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 2); __PYX_ERR(0, 6005, __pyx_L3_error)
30066  }
30067  CYTHON_FALLTHROUGH;
30068  case 3:
30069  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
30070  else {
30071  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 3); __PYX_ERR(0, 6005, __pyx_L3_error)
30072  }
30073  CYTHON_FALLTHROUGH;
30074  case 4:
30075  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
30076  else {
30077  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 4); __PYX_ERR(0, 6005, __pyx_L3_error)
30078  }
30079  CYTHON_FALLTHROUGH;
30080  case 5:
30081  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
30082  else {
30083  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 5); __PYX_ERR(0, 6005, __pyx_L3_error)
30084  }
30085  CYTHON_FALLTHROUGH;
30086  case 6:
30087  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
30088  else {
30089  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 6); __PYX_ERR(0, 6005, __pyx_L3_error)
30090  }
30091  CYTHON_FALLTHROUGH;
30092  case 7:
30093  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
30094  else {
30095  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 7); __PYX_ERR(0, 6005, __pyx_L3_error)
30096  }
30097  CYTHON_FALLTHROUGH;
30098  case 8:
30099  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
30100  else {
30101  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 8); __PYX_ERR(0, 6005, __pyx_L3_error)
30102  }
30103  CYTHON_FALLTHROUGH;
30104  case 9:
30105  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
30106  else {
30107  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 9); __PYX_ERR(0, 6005, __pyx_L3_error)
30108  }
30109  CYTHON_FALLTHROUGH;
30110  case 10:
30111  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f)) != 0)) kw_args--;
30112  else {
30113  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 10); __PYX_ERR(0, 6005, __pyx_L3_error)
30114  }
30115  CYTHON_FALLTHROUGH;
30116  case 11:
30117  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_df)) != 0)) kw_args--;
30118  else {
30119  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 11); __PYX_ERR(0, 6005, __pyx_L3_error)
30120  }
30121  CYTHON_FALLTHROUGH;
30122  case 12:
30123  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
30124  else {
30125  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 12); __PYX_ERR(0, 6005, __pyx_L3_error)
30126  }
30127  CYTHON_FALLTHROUGH;
30128  case 13:
30129  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
30130  else {
30131  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 13); __PYX_ERR(0, 6005, __pyx_L3_error)
30132  }
30133  CYTHON_FALLTHROUGH;
30134  case 14:
30135  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df)) != 0)) kw_args--;
30136  else {
30137  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 14); __PYX_ERR(0, 6005, __pyx_L3_error)
30138  }
30139  CYTHON_FALLTHROUGH;
30140  case 15:
30141  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
30142  else {
30143  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 15); __PYX_ERR(0, 6005, __pyx_L3_error)
30144  }
30145  CYTHON_FALLTHROUGH;
30146  case 16:
30147  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux)) != 0)) kw_args--;
30148  else {
30149  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, 16); __PYX_ERR(0, 6005, __pyx_L3_error)
30150  }
30151  }
30152  if (unlikely(kw_args > 0)) {
30153  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalAdvectiveFlux_average") < 0)) __PYX_ERR(0, 6005, __pyx_L3_error)
30154  }
30155  } else if (PyTuple_GET_SIZE(__pyx_args) != 17) {
30156  goto __pyx_L5_argtuple_error;
30157  } else {
30158  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
30159  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
30160  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
30161  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
30162  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
30163  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
30164  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
30165  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
30166  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
30167  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
30168  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
30169  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
30170  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
30171  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
30172  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
30173  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
30174  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
30175  }
30176  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6005, __pyx_L3_error)
30177  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6006, __pyx_L3_error)
30178  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6007, __pyx_L3_error)
30179  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
30180  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
30181  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
30182  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[6]);
30183  __pyx_v_inflowFlag = ((PyArrayObject *)values[7]);
30184  __pyx_v_n = ((PyArrayObject *)values[8]);
30185  __pyx_v_bc_u = ((PyArrayObject *)values[9]);
30186  __pyx_v_bc_f = ((PyArrayObject *)values[10]);
30187  __pyx_v_bc_df = ((PyArrayObject *)values[11]);
30188  __pyx_v_u = ((PyArrayObject *)values[12]);
30189  __pyx_v_f = ((PyArrayObject *)values[13]);
30190  __pyx_v_df = ((PyArrayObject *)values[14]);
30191  __pyx_v_flux = ((PyArrayObject *)values[15]);
30192  __pyx_v_dflux = ((PyArrayObject *)values[16]);
30193  }
30194  goto __pyx_L4_argument_unpacking_done;
30195  __pyx_L5_argtuple_error:;
30196  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_average", 1, 17, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6005, __pyx_L3_error)
30197  __pyx_L3_error:;
30198  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalAdvectiveFlux_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
30199  __Pyx_RefNannyFinishContext();
30200  return NULL;
30201  __pyx_L4_argument_unpacking_done:;
30202  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6008, __pyx_L1_error)
30203  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6009, __pyx_L1_error)
30204  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6010, __pyx_L1_error)
30205  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 6011, __pyx_L1_error)
30206  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 6012, __pyx_L1_error)
30207  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6013, __pyx_L1_error)
30208  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 6014, __pyx_L1_error)
30209  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f), __pyx_ptype_5numpy_ndarray, 1, "bc_f", 0))) __PYX_ERR(0, 6015, __pyx_L1_error)
30210  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_df), __pyx_ptype_5numpy_ndarray, 1, "bc_df", 0))) __PYX_ERR(0, 6016, __pyx_L1_error)
30211  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 6017, __pyx_L1_error)
30212  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 6018, __pyx_L1_error)
30213  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 6019, __pyx_L1_error)
30214  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 6020, __pyx_L1_error)
30215  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux), __pyx_ptype_5numpy_ndarray, 1, "dflux", 0))) __PYX_ERR(0, 6021, __pyx_L1_error)
30216  __pyx_r = __pyx_pf_14cnumericalFlux_164calculateGlobalExteriorNumericalAdvectiveFlux_average(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __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);
30217 
30218  /* function exit code */
30219  goto __pyx_L0;
30220  __pyx_L1_error:;
30221  __pyx_r = NULL;
30222  __pyx_L0:;
30223  __Pyx_RefNannyFinishContext();
30224  return __pyx_r;
30225 }
30226 
30227 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) {
30228  PyObject *__pyx_r = NULL;
30229  __Pyx_RefNannyDeclarations
30230  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFlux_average", 0);
30231 
30232  /* "cnumericalFlux.pyx":6022
30233  * np.ndarray flux,
30234  * np.ndarray dflux):
30235  * ccalculateGlobalExteriorNumericalAdvectiveFlux_average( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
30236  * nQuadraturePoints_elementBoundary,
30237  * nSpace,
30238  */
30239  calculateGlobalExteriorNumericalAdvectiveFlux_average(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, ((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));
30240 
30241  /* "cnumericalFlux.pyx":6005
30242  * <double*> flux.data,
30243  * <double*> dflux.data)
30244  * def calculateGlobalExteriorNumericalAdvectiveFlux_average(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
30245  * int nQuadraturePoints_elementBoundary,
30246  * int nSpace,
30247  */
30248 
30249  /* function exit code */
30250  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
30251  __Pyx_XGIVEREF(__pyx_r);
30252  __Pyx_RefNannyFinishContext();
30253  return __pyx_r;
30254 }
30255 
30256 /* "cnumericalFlux.pyx":6039
30257  * <double*> flux.data,
30258  * <double*> dflux.data)
30259  * def updateExteriorNumericalAdvectiveFluxJacobian_free(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
30260  * np.ndarray elementBoundaryElements,
30261  * np.ndarray elementBoundaryLocalElementBoundaries,
30262  */
30263 
30264 /* Python wrapper */
30265 static PyObject *__pyx_pw_14cnumericalFlux_167updateExteriorNumericalAdvectiveFluxJacobian_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
30266 static PyMethodDef __pyx_mdef_14cnumericalFlux_167updateExteriorNumericalAdvectiveFluxJacobian_free = {"updateExteriorNumericalAdvectiveFluxJacobian_free", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_167updateExteriorNumericalAdvectiveFluxJacobian_free, METH_VARARGS|METH_KEYWORDS, 0};
30267 static PyObject *__pyx_pw_14cnumericalFlux_167updateExteriorNumericalAdvectiveFluxJacobian_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
30268  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
30269  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
30270  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
30271  PyArrayObject *__pyx_v_inflowFlag = 0;
30272  PyArrayObject *__pyx_v_dflux_left = 0;
30273  PyArrayObject *__pyx_v_v = 0;
30274  PyArrayObject *__pyx_v_fluxJacobian = 0;
30275  int __pyx_lineno = 0;
30276  const char *__pyx_filename = NULL;
30277  int __pyx_clineno = 0;
30278  PyObject *__pyx_r = 0;
30279  __Pyx_RefNannyDeclarations
30280  __Pyx_RefNannySetupContext("updateExteriorNumericalAdvectiveFluxJacobian_free (wrapper)", 0);
30281  {
30282  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};
30283  PyObject* values[7] = {0,0,0,0,0,0,0};
30284  if (unlikely(__pyx_kwds)) {
30285  Py_ssize_t kw_args;
30286  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
30287  switch (pos_args) {
30288  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
30289  CYTHON_FALLTHROUGH;
30290  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
30291  CYTHON_FALLTHROUGH;
30292  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
30293  CYTHON_FALLTHROUGH;
30294  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
30295  CYTHON_FALLTHROUGH;
30296  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
30297  CYTHON_FALLTHROUGH;
30298  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
30299  CYTHON_FALLTHROUGH;
30300  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
30301  CYTHON_FALLTHROUGH;
30302  case 0: break;
30303  default: goto __pyx_L5_argtuple_error;
30304  }
30305  kw_args = PyDict_Size(__pyx_kwds);
30306  switch (pos_args) {
30307  case 0:
30308  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
30309  else goto __pyx_L5_argtuple_error;
30310  CYTHON_FALLTHROUGH;
30311  case 1:
30312  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
30313  else {
30314  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalAdvectiveFluxJacobian_free", 1, 7, 7, 1); __PYX_ERR(0, 6039, __pyx_L3_error)
30315  }
30316  CYTHON_FALLTHROUGH;
30317  case 2:
30318  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
30319  else {
30320  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalAdvectiveFluxJacobian_free", 1, 7, 7, 2); __PYX_ERR(0, 6039, __pyx_L3_error)
30321  }
30322  CYTHON_FALLTHROUGH;
30323  case 3:
30324  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
30325  else {
30326  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalAdvectiveFluxJacobian_free", 1, 7, 7, 3); __PYX_ERR(0, 6039, __pyx_L3_error)
30327  }
30328  CYTHON_FALLTHROUGH;
30329  case 4:
30330  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
30331  else {
30332  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalAdvectiveFluxJacobian_free", 1, 7, 7, 4); __PYX_ERR(0, 6039, __pyx_L3_error)
30333  }
30334  CYTHON_FALLTHROUGH;
30335  case 5:
30336  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
30337  else {
30338  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalAdvectiveFluxJacobian_free", 1, 7, 7, 5); __PYX_ERR(0, 6039, __pyx_L3_error)
30339  }
30340  CYTHON_FALLTHROUGH;
30341  case 6:
30342  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
30343  else {
30344  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalAdvectiveFluxJacobian_free", 1, 7, 7, 6); __PYX_ERR(0, 6039, __pyx_L3_error)
30345  }
30346  }
30347  if (unlikely(kw_args > 0)) {
30348  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateExteriorNumericalAdvectiveFluxJacobian_free") < 0)) __PYX_ERR(0, 6039, __pyx_L3_error)
30349  }
30350  } else if (PyTuple_GET_SIZE(__pyx_args) != 7) {
30351  goto __pyx_L5_argtuple_error;
30352  } else {
30353  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
30354  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
30355  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
30356  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
30357  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
30358  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
30359  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
30360  }
30361  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
30362  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
30363  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
30364  __pyx_v_inflowFlag = ((PyArrayObject *)values[3]);
30365  __pyx_v_dflux_left = ((PyArrayObject *)values[4]);
30366  __pyx_v_v = ((PyArrayObject *)values[5]);
30367  __pyx_v_fluxJacobian = ((PyArrayObject *)values[6]);
30368  }
30369  goto __pyx_L4_argument_unpacking_done;
30370  __pyx_L5_argtuple_error:;
30371  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalAdvectiveFluxJacobian_free", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6039, __pyx_L3_error)
30372  __pyx_L3_error:;
30373  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalAdvectiveFluxJacobian_free", __pyx_clineno, __pyx_lineno, __pyx_filename);
30374  __Pyx_RefNannyFinishContext();
30375  return NULL;
30376  __pyx_L4_argument_unpacking_done:;
30377  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6039, __pyx_L1_error)
30378  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6040, __pyx_L1_error)
30379  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6041, __pyx_L1_error)
30380  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 6042, __pyx_L1_error)
30381  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 6043, __pyx_L1_error)
30382  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 6044, __pyx_L1_error)
30383  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 6045, __pyx_L1_error)
30384  __pyx_r = __pyx_pf_14cnumericalFlux_166updateExteriorNumericalAdvectiveFluxJacobian_free(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_inflowFlag, __pyx_v_dflux_left, __pyx_v_v, __pyx_v_fluxJacobian);
30385 
30386  /* function exit code */
30387  goto __pyx_L0;
30388  __pyx_L1_error:;
30389  __pyx_r = NULL;
30390  __pyx_L0:;
30391  __Pyx_RefNannyFinishContext();
30392  return __pyx_r;
30393 }
30394 
30395 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) {
30396  PyObject *__pyx_r = NULL;
30397  __Pyx_RefNannyDeclarations
30398  PyObject *__pyx_t_1 = NULL;
30399  PyObject *__pyx_t_2 = NULL;
30400  int __pyx_t_3;
30401  int __pyx_lineno = 0;
30402  const char *__pyx_filename = NULL;
30403  int __pyx_clineno = 0;
30404  __Pyx_RefNannySetupContext("updateExteriorNumericalAdvectiveFluxJacobian_free", 0);
30405 
30406  /* "cnumericalFlux.pyx":6046
30407  * np.ndarray v,
30408  * np.ndarray fluxJacobian):
30409  * if v.dim == 4: # <<<<<<<<<<<<<<
30410  * cupdateExteriorNumericalAdvectiveFluxJacobian_free(exteriorElementBoundaries.shape[0],
30411  * v.shape[1],
30412  */
30413  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_v), __pyx_n_s_dim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6046, __pyx_L1_error)
30414  __Pyx_GOTREF(__pyx_t_1);
30415  __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_4, 4, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6046, __pyx_L1_error)
30416  __Pyx_GOTREF(__pyx_t_2);
30417  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30418  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6046, __pyx_L1_error)
30419  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30420  if (__pyx_t_3) {
30421 
30422  /* "cnumericalFlux.pyx":6047
30423  * np.ndarray fluxJacobian):
30424  * if v.dim == 4:
30425  * cupdateExteriorNumericalAdvectiveFluxJacobian_free(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
30426  * v.shape[1],
30427  * v.shape[2],
30428  */
30429  updateExteriorNumericalAdvectiveFluxJacobian_free((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_v->dimensions[1]), (__pyx_v_v->dimensions[2]), (__pyx_v_v->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_dflux_left->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_fluxJacobian->data));
30430 
30431  /* "cnumericalFlux.pyx":6046
30432  * np.ndarray v,
30433  * np.ndarray fluxJacobian):
30434  * if v.dim == 4: # <<<<<<<<<<<<<<
30435  * cupdateExteriorNumericalAdvectiveFluxJacobian_free(exteriorElementBoundaries.shape[0],
30436  * v.shape[1],
30437  */
30438  goto __pyx_L3;
30439  }
30440 
30441  /* "cnumericalFlux.pyx":6058
30442  * <double*> v.data,
30443  * <double*> fluxJacobian.data)
30444  * elif v.dim == 3: # <<<<<<<<<<<<<<
30445  * cupdateGlobalExteriorNumericalAdvectiveFluxJacobian_free(exteriorElementBoundaries.shape[0],
30446  * v.shape[1],
30447  */
30448  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_v), __pyx_n_s_dim); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6058, __pyx_L1_error)
30449  __Pyx_GOTREF(__pyx_t_2);
30450  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_2, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6058, __pyx_L1_error)
30451  __Pyx_GOTREF(__pyx_t_1);
30452  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30453  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6058, __pyx_L1_error)
30454  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
30455  if (__pyx_t_3) {
30456 
30457  /* "cnumericalFlux.pyx":6059
30458  * <double*> fluxJacobian.data)
30459  * elif v.dim == 3:
30460  * cupdateGlobalExteriorNumericalAdvectiveFluxJacobian_free(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
30461  * v.shape[1],
30462  * v.shape[2],
30463  */
30464  updateGlobalExteriorNumericalAdvectiveFluxJacobian_free((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_v->dimensions[1]), (__pyx_v_v->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_dflux_left->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_fluxJacobian->data));
30465 
30466  /* "cnumericalFlux.pyx":6058
30467  * <double*> v.data,
30468  * <double*> fluxJacobian.data)
30469  * elif v.dim == 3: # <<<<<<<<<<<<<<
30470  * cupdateGlobalExteriorNumericalAdvectiveFluxJacobian_free(exteriorElementBoundaries.shape[0],
30471  * v.shape[1],
30472  */
30473  }
30474  __pyx_L3:;
30475 
30476  /* "cnumericalFlux.pyx":6039
30477  * <double*> flux.data,
30478  * <double*> dflux.data)
30479  * def updateExteriorNumericalAdvectiveFluxJacobian_free(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
30480  * np.ndarray elementBoundaryElements,
30481  * np.ndarray elementBoundaryLocalElementBoundaries,
30482  */
30483 
30484  /* function exit code */
30485  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
30486  goto __pyx_L0;
30487  __pyx_L1_error:;
30488  __Pyx_XDECREF(__pyx_t_1);
30489  __Pyx_XDECREF(__pyx_t_2);
30490  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalAdvectiveFluxJacobian_free", __pyx_clineno, __pyx_lineno, __pyx_filename);
30491  __pyx_r = NULL;
30492  __pyx_L0:;
30493  __Pyx_XGIVEREF(__pyx_r);
30494  __Pyx_RefNannyFinishContext();
30495  return __pyx_r;
30496 }
30497 
30498 /* "cnumericalFlux.pyx":6069
30499  * <double*> v.data,
30500  * <double*> fluxJacobian.data)
30501  * def updateGlobalExteriorNumericalAdvectiveFluxJacobian_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
30502  * int nQuadraturePoints_elementBoundary,
30503  * int nDOF_trial_element,
30504  */
30505 
30506 /* Python wrapper */
30507 static PyObject *__pyx_pw_14cnumericalFlux_169updateGlobalExteriorNumericalAdvectiveFluxJacobian_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
30508 static PyMethodDef __pyx_mdef_14cnumericalFlux_169updateGlobalExteriorNumericalAdvectiveFluxJacobian_free = {"updateGlobalExteriorNumericalAdvectiveFluxJacobian_free", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_169updateGlobalExteriorNumericalAdvectiveFluxJacobian_free, METH_VARARGS|METH_KEYWORDS, 0};
30509 static PyObject *__pyx_pw_14cnumericalFlux_169updateGlobalExteriorNumericalAdvectiveFluxJacobian_free(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
30510  int __pyx_v_nExteriorElementBoundaries_global;
30511  int __pyx_v_nQuadraturePoints_elementBoundary;
30512  int __pyx_v_nDOF_trial_element;
30513  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
30514  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
30515  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
30516  PyArrayObject *__pyx_v_inflowFlag = 0;
30517  PyArrayObject *__pyx_v_dflux_left = 0;
30518  PyArrayObject *__pyx_v_v = 0;
30519  PyArrayObject *__pyx_v_fluxJacobian = 0;
30520  int __pyx_lineno = 0;
30521  const char *__pyx_filename = NULL;
30522  int __pyx_clineno = 0;
30523  PyObject *__pyx_r = 0;
30524  __Pyx_RefNannyDeclarations
30525  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalAdvectiveFluxJacobian_free (wrapper)", 0);
30526  {
30527  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nDOF_trial_element,&__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};
30528  PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
30529  if (unlikely(__pyx_kwds)) {
30530  Py_ssize_t kw_args;
30531  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
30532  switch (pos_args) {
30533  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
30534  CYTHON_FALLTHROUGH;
30535  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
30536  CYTHON_FALLTHROUGH;
30537  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
30538  CYTHON_FALLTHROUGH;
30539  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
30540  CYTHON_FALLTHROUGH;
30541  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
30542  CYTHON_FALLTHROUGH;
30543  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
30544  CYTHON_FALLTHROUGH;
30545  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
30546  CYTHON_FALLTHROUGH;
30547  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
30548  CYTHON_FALLTHROUGH;
30549  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
30550  CYTHON_FALLTHROUGH;
30551  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
30552  CYTHON_FALLTHROUGH;
30553  case 0: break;
30554  default: goto __pyx_L5_argtuple_error;
30555  }
30556  kw_args = PyDict_Size(__pyx_kwds);
30557  switch (pos_args) {
30558  case 0:
30559  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
30560  else goto __pyx_L5_argtuple_error;
30561  CYTHON_FALLTHROUGH;
30562  case 1:
30563  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
30564  else {
30565  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian_free", 1, 10, 10, 1); __PYX_ERR(0, 6069, __pyx_L3_error)
30566  }
30567  CYTHON_FALLTHROUGH;
30568  case 2:
30569  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nDOF_trial_element)) != 0)) kw_args--;
30570  else {
30571  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian_free", 1, 10, 10, 2); __PYX_ERR(0, 6069, __pyx_L3_error)
30572  }
30573  CYTHON_FALLTHROUGH;
30574  case 3:
30575  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
30576  else {
30577  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian_free", 1, 10, 10, 3); __PYX_ERR(0, 6069, __pyx_L3_error)
30578  }
30579  CYTHON_FALLTHROUGH;
30580  case 4:
30581  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
30582  else {
30583  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian_free", 1, 10, 10, 4); __PYX_ERR(0, 6069, __pyx_L3_error)
30584  }
30585  CYTHON_FALLTHROUGH;
30586  case 5:
30587  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
30588  else {
30589  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian_free", 1, 10, 10, 5); __PYX_ERR(0, 6069, __pyx_L3_error)
30590  }
30591  CYTHON_FALLTHROUGH;
30592  case 6:
30593  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
30594  else {
30595  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian_free", 1, 10, 10, 6); __PYX_ERR(0, 6069, __pyx_L3_error)
30596  }
30597  CYTHON_FALLTHROUGH;
30598  case 7:
30599  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_left)) != 0)) kw_args--;
30600  else {
30601  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian_free", 1, 10, 10, 7); __PYX_ERR(0, 6069, __pyx_L3_error)
30602  }
30603  CYTHON_FALLTHROUGH;
30604  case 8:
30605  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
30606  else {
30607  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian_free", 1, 10, 10, 8); __PYX_ERR(0, 6069, __pyx_L3_error)
30608  }
30609  CYTHON_FALLTHROUGH;
30610  case 9:
30611  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
30612  else {
30613  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian_free", 1, 10, 10, 9); __PYX_ERR(0, 6069, __pyx_L3_error)
30614  }
30615  }
30616  if (unlikely(kw_args > 0)) {
30617  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateGlobalExteriorNumericalAdvectiveFluxJacobian_free") < 0)) __PYX_ERR(0, 6069, __pyx_L3_error)
30618  }
30619  } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
30620  goto __pyx_L5_argtuple_error;
30621  } else {
30622  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
30623  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
30624  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
30625  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
30626  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
30627  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
30628  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
30629  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
30630  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
30631  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
30632  }
30633  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6069, __pyx_L3_error)
30634  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6070, __pyx_L3_error)
30635  __pyx_v_nDOF_trial_element = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nDOF_trial_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6071, __pyx_L3_error)
30636  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
30637  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
30638  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
30639  __pyx_v_inflowFlag = ((PyArrayObject *)values[6]);
30640  __pyx_v_dflux_left = ((PyArrayObject *)values[7]);
30641  __pyx_v_v = ((PyArrayObject *)values[8]);
30642  __pyx_v_fluxJacobian = ((PyArrayObject *)values[9]);
30643  }
30644  goto __pyx_L4_argument_unpacking_done;
30645  __pyx_L5_argtuple_error:;
30646  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalAdvectiveFluxJacobian_free", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6069, __pyx_L3_error)
30647  __pyx_L3_error:;
30648  __Pyx_AddTraceback("cnumericalFlux.updateGlobalExteriorNumericalAdvectiveFluxJacobian_free", __pyx_clineno, __pyx_lineno, __pyx_filename);
30649  __Pyx_RefNannyFinishContext();
30650  return NULL;
30651  __pyx_L4_argument_unpacking_done:;
30652  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6072, __pyx_L1_error)
30653  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6073, __pyx_L1_error)
30654  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6074, __pyx_L1_error)
30655  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 6075, __pyx_L1_error)
30656  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_left), __pyx_ptype_5numpy_ndarray, 1, "dflux_left", 0))) __PYX_ERR(0, 6076, __pyx_L1_error)
30657  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 6077, __pyx_L1_error)
30658  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 6078, __pyx_L1_error)
30659  __pyx_r = __pyx_pf_14cnumericalFlux_168updateGlobalExteriorNumericalAdvectiveFluxJacobian_free(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_inflowFlag, __pyx_v_dflux_left, __pyx_v_v, __pyx_v_fluxJacobian);
30660 
30661  /* function exit code */
30662  goto __pyx_L0;
30663  __pyx_L1_error:;
30664  __pyx_r = NULL;
30665  __pyx_L0:;
30666  __Pyx_RefNannyFinishContext();
30667  return __pyx_r;
30668 }
30669 
30670 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) {
30671  PyObject *__pyx_r = NULL;
30672  __Pyx_RefNannyDeclarations
30673  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalAdvectiveFluxJacobian_free", 0);
30674 
30675  /* "cnumericalFlux.pyx":6079
30676  * np.ndarray v,
30677  * np.ndarray fluxJacobian):
30678  * cupdateGlobalExteriorNumericalAdvectiveFluxJacobian_free( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
30679  * nQuadraturePoints_elementBoundary,
30680  * nDOF_trial_element,
30681  */
30682  updateGlobalExteriorNumericalAdvectiveFluxJacobian_free(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_inflowFlag->data), ((double *)__pyx_v_dflux_left->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_fluxJacobian->data));
30683 
30684  /* "cnumericalFlux.pyx":6069
30685  * <double*> v.data,
30686  * <double*> fluxJacobian.data)
30687  * def updateGlobalExteriorNumericalAdvectiveFluxJacobian_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
30688  * int nQuadraturePoints_elementBoundary,
30689  * int nDOF_trial_element,
30690  */
30691 
30692  /* function exit code */
30693  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
30694  __Pyx_XGIVEREF(__pyx_r);
30695  __Pyx_RefNannyFinishContext();
30696  return __pyx_r;
30697 }
30698 
30699 /* "cnumericalFlux.pyx":6089
30700  * <double*> v.data,
30701  * <double*> fluxJacobian.data)
30702  * def calculateExteriorNumericalDiffusiveFlux_LDG_upwind(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
30703  * np.ndarray elementBoundaryElements,
30704  * np.ndarray elementBoundaryLocalElementBoundaries,
30705  */
30706 
30707 /* Python wrapper */
30708 static PyObject *__pyx_pw_14cnumericalFlux_171calculateExteriorNumericalDiffusiveFlux_LDG_upwind(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
30709 static PyMethodDef __pyx_mdef_14cnumericalFlux_171calculateExteriorNumericalDiffusiveFlux_LDG_upwind = {"calculateExteriorNumericalDiffusiveFlux_LDG_upwind", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_171calculateExteriorNumericalDiffusiveFlux_LDG_upwind, METH_VARARGS|METH_KEYWORDS, 0};
30710 static PyObject *__pyx_pw_14cnumericalFlux_171calculateExteriorNumericalDiffusiveFlux_LDG_upwind(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
30711  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
30712  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
30713  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
30714  PyArrayObject *__pyx_v_n = 0;
30715  PyArrayObject *__pyx_v_u = 0;
30716  PyArrayObject *__pyx_v_a = 0;
30717  PyArrayObject *__pyx_v_phi_bc = 0;
30718  PyArrayObject *__pyx_v_phi = 0;
30719  PyArrayObject *__pyx_v_V = 0;
30720  PyArrayObject *__pyx_v_penalty = 0;
30721  PyArrayObject *__pyx_v_flux = 0;
30722  int __pyx_lineno = 0;
30723  const char *__pyx_filename = NULL;
30724  int __pyx_clineno = 0;
30725  PyObject *__pyx_r = 0;
30726  __Pyx_RefNannyDeclarations
30727  __Pyx_RefNannySetupContext("calculateExteriorNumericalDiffusiveFlux_LDG_upwind (wrapper)", 0);
30728  {
30729  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_u,&__pyx_n_s_a,&__pyx_n_s_phi_bc,&__pyx_n_s_phi,&__pyx_n_s_V,&__pyx_n_s_penalty,&__pyx_n_s_flux,0};
30730  PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
30731  if (unlikely(__pyx_kwds)) {
30732  Py_ssize_t kw_args;
30733  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
30734  switch (pos_args) {
30735  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
30736  CYTHON_FALLTHROUGH;
30737  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
30738  CYTHON_FALLTHROUGH;
30739  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
30740  CYTHON_FALLTHROUGH;
30741  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
30742  CYTHON_FALLTHROUGH;
30743  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
30744  CYTHON_FALLTHROUGH;
30745  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
30746  CYTHON_FALLTHROUGH;
30747  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
30748  CYTHON_FALLTHROUGH;
30749  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
30750  CYTHON_FALLTHROUGH;
30751  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
30752  CYTHON_FALLTHROUGH;
30753  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
30754  CYTHON_FALLTHROUGH;
30755  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
30756  CYTHON_FALLTHROUGH;
30757  case 0: break;
30758  default: goto __pyx_L5_argtuple_error;
30759  }
30760  kw_args = PyDict_Size(__pyx_kwds);
30761  switch (pos_args) {
30762  case 0:
30763  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
30764  else goto __pyx_L5_argtuple_error;
30765  CYTHON_FALLTHROUGH;
30766  case 1:
30767  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
30768  else {
30769  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 11, 11, 1); __PYX_ERR(0, 6089, __pyx_L3_error)
30770  }
30771  CYTHON_FALLTHROUGH;
30772  case 2:
30773  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
30774  else {
30775  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 11, 11, 2); __PYX_ERR(0, 6089, __pyx_L3_error)
30776  }
30777  CYTHON_FALLTHROUGH;
30778  case 3:
30779  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
30780  else {
30781  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 11, 11, 3); __PYX_ERR(0, 6089, __pyx_L3_error)
30782  }
30783  CYTHON_FALLTHROUGH;
30784  case 4:
30785  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
30786  else {
30787  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 11, 11, 4); __PYX_ERR(0, 6089, __pyx_L3_error)
30788  }
30789  CYTHON_FALLTHROUGH;
30790  case 5:
30791  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
30792  else {
30793  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 11, 11, 5); __PYX_ERR(0, 6089, __pyx_L3_error)
30794  }
30795  CYTHON_FALLTHROUGH;
30796  case 6:
30797  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_phi_bc)) != 0)) kw_args--;
30798  else {
30799  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 11, 11, 6); __PYX_ERR(0, 6089, __pyx_L3_error)
30800  }
30801  CYTHON_FALLTHROUGH;
30802  case 7:
30803  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_phi)) != 0)) kw_args--;
30804  else {
30805  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 11, 11, 7); __PYX_ERR(0, 6089, __pyx_L3_error)
30806  }
30807  CYTHON_FALLTHROUGH;
30808  case 8:
30809  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--;
30810  else {
30811  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 11, 11, 8); __PYX_ERR(0, 6089, __pyx_L3_error)
30812  }
30813  CYTHON_FALLTHROUGH;
30814  case 9:
30815  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
30816  else {
30817  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 11, 11, 9); __PYX_ERR(0, 6089, __pyx_L3_error)
30818  }
30819  CYTHON_FALLTHROUGH;
30820  case 10:
30821  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
30822  else {
30823  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 11, 11, 10); __PYX_ERR(0, 6089, __pyx_L3_error)
30824  }
30825  }
30826  if (unlikely(kw_args > 0)) {
30827  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalDiffusiveFlux_LDG_upwind") < 0)) __PYX_ERR(0, 6089, __pyx_L3_error)
30828  }
30829  } else if (PyTuple_GET_SIZE(__pyx_args) != 11) {
30830  goto __pyx_L5_argtuple_error;
30831  } else {
30832  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
30833  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
30834  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
30835  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
30836  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
30837  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
30838  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
30839  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
30840  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
30841  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
30842  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
30843  }
30844  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
30845  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
30846  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
30847  __pyx_v_n = ((PyArrayObject *)values[3]);
30848  __pyx_v_u = ((PyArrayObject *)values[4]);
30849  __pyx_v_a = ((PyArrayObject *)values[5]);
30850  __pyx_v_phi_bc = ((PyArrayObject *)values[6]);
30851  __pyx_v_phi = ((PyArrayObject *)values[7]);
30852  __pyx_v_V = ((PyArrayObject *)values[8]);
30853  __pyx_v_penalty = ((PyArrayObject *)values[9]);
30854  __pyx_v_flux = ((PyArrayObject *)values[10]);
30855  }
30856  goto __pyx_L4_argument_unpacking_done;
30857  __pyx_L5_argtuple_error:;
30858  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 11, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6089, __pyx_L3_error)
30859  __pyx_L3_error:;
30860  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalDiffusiveFlux_LDG_upwind", __pyx_clineno, __pyx_lineno, __pyx_filename);
30861  __Pyx_RefNannyFinishContext();
30862  return NULL;
30863  __pyx_L4_argument_unpacking_done:;
30864  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6089, __pyx_L1_error)
30865  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6090, __pyx_L1_error)
30866  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6091, __pyx_L1_error)
30867  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6092, __pyx_L1_error)
30868  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 6093, __pyx_L1_error)
30869  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 6094, __pyx_L1_error)
30870  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phi_bc), __pyx_ptype_5numpy_ndarray, 1, "phi_bc", 0))) __PYX_ERR(0, 6095, __pyx_L1_error)
30871  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phi), __pyx_ptype_5numpy_ndarray, 1, "phi", 0))) __PYX_ERR(0, 6096, __pyx_L1_error)
30872  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_V), __pyx_ptype_5numpy_ndarray, 1, "V", 0))) __PYX_ERR(0, 6097, __pyx_L1_error)
30873  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 6098, __pyx_L1_error)
30874  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 6099, __pyx_L1_error)
30875  __pyx_r = __pyx_pf_14cnumericalFlux_170calculateExteriorNumericalDiffusiveFlux_LDG_upwind(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_u, __pyx_v_a, __pyx_v_phi_bc, __pyx_v_phi, __pyx_v_V, __pyx_v_penalty, __pyx_v_flux);
30876 
30877  /* function exit code */
30878  goto __pyx_L0;
30879  __pyx_L1_error:;
30880  __pyx_r = NULL;
30881  __pyx_L0:;
30882  __Pyx_RefNannyFinishContext();
30883  return __pyx_r;
30884 }
30885 
30886 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) {
30887  PyObject *__pyx_r = NULL;
30888  __Pyx_RefNannyDeclarations
30889  int __pyx_t_1;
30890  __Pyx_RefNannySetupContext("calculateExteriorNumericalDiffusiveFlux_LDG_upwind", 0);
30891 
30892  /* "cnumericalFlux.pyx":6100
30893  * np.ndarray penalty,
30894  * np.ndarray flux):
30895  * if n.ndim > 3: # <<<<<<<<<<<<<<
30896  * ccalculateExteriorNumericalDiffusiveFlux_LDG_upwind(exteriorElementBoundaries.shape[0],
30897  * n.shape[1],
30898  */
30899  __pyx_t_1 = ((__pyx_v_n->nd > 3) != 0);
30900  if (__pyx_t_1) {
30901 
30902  /* "cnumericalFlux.pyx":6101
30903  * np.ndarray flux):
30904  * if n.ndim > 3:
30905  * ccalculateExteriorNumericalDiffusiveFlux_LDG_upwind(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
30906  * n.shape[1],
30907  * n.shape[2],
30908  */
30909  calculateExteriorNumericalDiffusiveFlux_LDG_upwind((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_n->dimensions[3]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_phi_bc->data), ((double *)__pyx_v_phi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_flux->data));
30910 
30911  /* "cnumericalFlux.pyx":6100
30912  * np.ndarray penalty,
30913  * np.ndarray flux):
30914  * if n.ndim > 3: # <<<<<<<<<<<<<<
30915  * ccalculateExteriorNumericalDiffusiveFlux_LDG_upwind(exteriorElementBoundaries.shape[0],
30916  * n.shape[1],
30917  */
30918  goto __pyx_L3;
30919  }
30920 
30921  /* "cnumericalFlux.pyx":6117
30922  * <double*> flux.data)
30923  * else:
30924  * ccalculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
30925  * V.shape[1],
30926  * V.shape[2],
30927  */
30928  /*else*/ {
30929 
30930  /* "cnumericalFlux.pyx":6131
30931  * <double*> V.data,
30932  * <double*> penalty.data,
30933  * <double*> flux.data) # <<<<<<<<<<<<<<
30934  * def calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(np.ndarray rowptr,
30935  * np.ndarray colind,
30936  */
30937  calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_V->dimensions[1]), (__pyx_v_V->dimensions[2]), (__pyx_v_V->dimensions[3]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_phi_bc->data), ((double *)__pyx_v_phi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_flux->data));
30938  }
30939  __pyx_L3:;
30940 
30941  /* "cnumericalFlux.pyx":6089
30942  * <double*> v.data,
30943  * <double*> fluxJacobian.data)
30944  * def calculateExteriorNumericalDiffusiveFlux_LDG_upwind(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
30945  * np.ndarray elementBoundaryElements,
30946  * np.ndarray elementBoundaryLocalElementBoundaries,
30947  */
30948 
30949  /* function exit code */
30950  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
30951  __Pyx_XGIVEREF(__pyx_r);
30952  __Pyx_RefNannyFinishContext();
30953  return __pyx_r;
30954 }
30955 
30956 /* "cnumericalFlux.pyx":6132
30957  * <double*> penalty.data,
30958  * <double*> flux.data)
30959  * def calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
30960  * np.ndarray colind,
30961  * np.ndarray exteriorElementBoundaries,
30962  */
30963 
30964 /* Python wrapper */
30965 static PyObject *__pyx_pw_14cnumericalFlux_173calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
30966 static PyMethodDef __pyx_mdef_14cnumericalFlux_173calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd = {"calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_173calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd, METH_VARARGS|METH_KEYWORDS, 0};
30967 static PyObject *__pyx_pw_14cnumericalFlux_173calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
30968  PyArrayObject *__pyx_v_rowptr = 0;
30969  PyArrayObject *__pyx_v_colind = 0;
30970  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
30971  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
30972  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
30973  PyArrayObject *__pyx_v_n = 0;
30974  PyArrayObject *__pyx_v_u = 0;
30975  PyArrayObject *__pyx_v_a = 0;
30976  PyArrayObject *__pyx_v_phi_bc = 0;
30977  PyArrayObject *__pyx_v_phi = 0;
30978  PyArrayObject *__pyx_v_V = 0;
30979  PyArrayObject *__pyx_v_penalty = 0;
30980  PyArrayObject *__pyx_v_flux = 0;
30981  int __pyx_lineno = 0;
30982  const char *__pyx_filename = NULL;
30983  int __pyx_clineno = 0;
30984  PyObject *__pyx_r = 0;
30985  __Pyx_RefNannyDeclarations
30986  __Pyx_RefNannySetupContext("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd (wrapper)", 0);
30987  {
30988  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_u,&__pyx_n_s_a,&__pyx_n_s_phi_bc,&__pyx_n_s_phi,&__pyx_n_s_V,&__pyx_n_s_penalty,&__pyx_n_s_flux,0};
30989  PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
30990  if (unlikely(__pyx_kwds)) {
30991  Py_ssize_t kw_args;
30992  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
30993  switch (pos_args) {
30994  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
30995  CYTHON_FALLTHROUGH;
30996  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
30997  CYTHON_FALLTHROUGH;
30998  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
30999  CYTHON_FALLTHROUGH;
31000  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
31001  CYTHON_FALLTHROUGH;
31002  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
31003  CYTHON_FALLTHROUGH;
31004  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
31005  CYTHON_FALLTHROUGH;
31006  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
31007  CYTHON_FALLTHROUGH;
31008  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
31009  CYTHON_FALLTHROUGH;
31010  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
31011  CYTHON_FALLTHROUGH;
31012  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
31013  CYTHON_FALLTHROUGH;
31014  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
31015  CYTHON_FALLTHROUGH;
31016  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
31017  CYTHON_FALLTHROUGH;
31018  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
31019  CYTHON_FALLTHROUGH;
31020  case 0: break;
31021  default: goto __pyx_L5_argtuple_error;
31022  }
31023  kw_args = PyDict_Size(__pyx_kwds);
31024  switch (pos_args) {
31025  case 0:
31026  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
31027  else goto __pyx_L5_argtuple_error;
31028  CYTHON_FALLTHROUGH;
31029  case 1:
31030  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
31031  else {
31032  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 13, 13, 1); __PYX_ERR(0, 6132, __pyx_L3_error)
31033  }
31034  CYTHON_FALLTHROUGH;
31035  case 2:
31036  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
31037  else {
31038  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 13, 13, 2); __PYX_ERR(0, 6132, __pyx_L3_error)
31039  }
31040  CYTHON_FALLTHROUGH;
31041  case 3:
31042  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
31043  else {
31044  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 13, 13, 3); __PYX_ERR(0, 6132, __pyx_L3_error)
31045  }
31046  CYTHON_FALLTHROUGH;
31047  case 4:
31048  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
31049  else {
31050  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 13, 13, 4); __PYX_ERR(0, 6132, __pyx_L3_error)
31051  }
31052  CYTHON_FALLTHROUGH;
31053  case 5:
31054  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
31055  else {
31056  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 13, 13, 5); __PYX_ERR(0, 6132, __pyx_L3_error)
31057  }
31058  CYTHON_FALLTHROUGH;
31059  case 6:
31060  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
31061  else {
31062  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 13, 13, 6); __PYX_ERR(0, 6132, __pyx_L3_error)
31063  }
31064  CYTHON_FALLTHROUGH;
31065  case 7:
31066  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
31067  else {
31068  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 13, 13, 7); __PYX_ERR(0, 6132, __pyx_L3_error)
31069  }
31070  CYTHON_FALLTHROUGH;
31071  case 8:
31072  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_phi_bc)) != 0)) kw_args--;
31073  else {
31074  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 13, 13, 8); __PYX_ERR(0, 6132, __pyx_L3_error)
31075  }
31076  CYTHON_FALLTHROUGH;
31077  case 9:
31078  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_phi)) != 0)) kw_args--;
31079  else {
31080  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 13, 13, 9); __PYX_ERR(0, 6132, __pyx_L3_error)
31081  }
31082  CYTHON_FALLTHROUGH;
31083  case 10:
31084  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--;
31085  else {
31086  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 13, 13, 10); __PYX_ERR(0, 6132, __pyx_L3_error)
31087  }
31088  CYTHON_FALLTHROUGH;
31089  case 11:
31090  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
31091  else {
31092  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 13, 13, 11); __PYX_ERR(0, 6132, __pyx_L3_error)
31093  }
31094  CYTHON_FALLTHROUGH;
31095  case 12:
31096  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
31097  else {
31098  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 13, 13, 12); __PYX_ERR(0, 6132, __pyx_L3_error)
31099  }
31100  }
31101  if (unlikely(kw_args > 0)) {
31102  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd") < 0)) __PYX_ERR(0, 6132, __pyx_L3_error)
31103  }
31104  } else if (PyTuple_GET_SIZE(__pyx_args) != 13) {
31105  goto __pyx_L5_argtuple_error;
31106  } else {
31107  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
31108  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
31109  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
31110  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
31111  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
31112  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
31113  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
31114  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
31115  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
31116  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
31117  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
31118  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
31119  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
31120  }
31121  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
31122  __pyx_v_colind = ((PyArrayObject *)values[1]);
31123  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[2]);
31124  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[3]);
31125  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[4]);
31126  __pyx_v_n = ((PyArrayObject *)values[5]);
31127  __pyx_v_u = ((PyArrayObject *)values[6]);
31128  __pyx_v_a = ((PyArrayObject *)values[7]);
31129  __pyx_v_phi_bc = ((PyArrayObject *)values[8]);
31130  __pyx_v_phi = ((PyArrayObject *)values[9]);
31131  __pyx_v_V = ((PyArrayObject *)values[10]);
31132  __pyx_v_penalty = ((PyArrayObject *)values[11]);
31133  __pyx_v_flux = ((PyArrayObject *)values[12]);
31134  }
31135  goto __pyx_L4_argument_unpacking_done;
31136  __pyx_L5_argtuple_error:;
31137  __Pyx_RaiseArgtupleInvalid("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 13, 13, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6132, __pyx_L3_error)
31138  __pyx_L3_error:;
31139  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
31140  __Pyx_RefNannyFinishContext();
31141  return NULL;
31142  __pyx_L4_argument_unpacking_done:;
31143  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 6132, __pyx_L1_error)
31144  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 6133, __pyx_L1_error)
31145  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6134, __pyx_L1_error)
31146  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6135, __pyx_L1_error)
31147  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6136, __pyx_L1_error)
31148  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6137, __pyx_L1_error)
31149  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 6138, __pyx_L1_error)
31150  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 6139, __pyx_L1_error)
31151  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phi_bc), __pyx_ptype_5numpy_ndarray, 1, "phi_bc", 0))) __PYX_ERR(0, 6140, __pyx_L1_error)
31152  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phi), __pyx_ptype_5numpy_ndarray, 1, "phi", 0))) __PYX_ERR(0, 6141, __pyx_L1_error)
31153  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_V), __pyx_ptype_5numpy_ndarray, 1, "V", 0))) __PYX_ERR(0, 6142, __pyx_L1_error)
31154  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 6143, __pyx_L1_error)
31155  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 6144, __pyx_L1_error)
31156  __pyx_r = __pyx_pf_14cnumericalFlux_172calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_u, __pyx_v_a, __pyx_v_phi_bc, __pyx_v_phi, __pyx_v_V, __pyx_v_penalty, __pyx_v_flux);
31157 
31158  /* function exit code */
31159  goto __pyx_L0;
31160  __pyx_L1_error:;
31161  __pyx_r = NULL;
31162  __pyx_L0:;
31163  __Pyx_RefNannyFinishContext();
31164  return __pyx_r;
31165 }
31166 
31167 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) {
31168  PyObject *__pyx_r = NULL;
31169  __Pyx_RefNannyDeclarations
31170  int __pyx_t_1;
31171  __Pyx_RefNannySetupContext("calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 0);
31172 
31173  /* "cnumericalFlux.pyx":6145
31174  * np.ndarray penalty,
31175  * np.ndarray flux):
31176  * if n.ndim > 3: # <<<<<<<<<<<<<<
31177  * ccalculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(exteriorElementBoundaries.shape[0],
31178  * n.shape[1],
31179  */
31180  __pyx_t_1 = ((__pyx_v_n->nd > 3) != 0);
31181  if (__pyx_t_1) {
31182 
31183  /* "cnumericalFlux.pyx":6146
31184  * np.ndarray flux):
31185  * if n.ndim > 3:
31186  * ccalculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
31187  * n.shape[1],
31188  * n.shape[2],
31189  */
31190  calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_n->dimensions[3]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_phi_bc->data), ((double *)__pyx_v_phi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_flux->data));
31191 
31192  /* "cnumericalFlux.pyx":6145
31193  * np.ndarray penalty,
31194  * np.ndarray flux):
31195  * if n.ndim > 3: # <<<<<<<<<<<<<<
31196  * ccalculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(exteriorElementBoundaries.shape[0],
31197  * n.shape[1],
31198  */
31199  goto __pyx_L3;
31200  }
31201 
31202  /* "cnumericalFlux.pyx":6164
31203  * <double*> flux.data)
31204  * else:
31205  * ccalculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
31206  * V.shape[1],
31207  * V.shape[2],
31208  */
31209  /*else*/ {
31210 
31211  /* "cnumericalFlux.pyx":6180
31212  * <double*> V.data,
31213  * <double*> penalty.data,
31214  * <double*> flux.data) # <<<<<<<<<<<<<<
31215  * def calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind(int nExteriorElementBoundaries_global,
31216  * int nElementBoundaries_element,
31217  */
31218  calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_V->dimensions[1]), (__pyx_v_V->dimensions[2]), (__pyx_v_V->dimensions[3]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_phi_bc->data), ((double *)__pyx_v_phi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_flux->data));
31219  }
31220  __pyx_L3:;
31221 
31222  /* "cnumericalFlux.pyx":6132
31223  * <double*> penalty.data,
31224  * <double*> flux.data)
31225  * def calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
31226  * np.ndarray colind,
31227  * np.ndarray exteriorElementBoundaries,
31228  */
31229 
31230  /* function exit code */
31231  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
31232  __Pyx_XGIVEREF(__pyx_r);
31233  __Pyx_RefNannyFinishContext();
31234  return __pyx_r;
31235 }
31236 
31237 /* "cnumericalFlux.pyx":6181
31238  * <double*> penalty.data,
31239  * <double*> flux.data)
31240  * def calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
31241  * int nElementBoundaries_element,
31242  * int nQuadraturePoints_elementBoundary,
31243  */
31244 
31245 /* Python wrapper */
31246 static PyObject *__pyx_pw_14cnumericalFlux_175calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
31247 static PyMethodDef __pyx_mdef_14cnumericalFlux_175calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind = {"calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_175calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind, METH_VARARGS|METH_KEYWORDS, 0};
31248 static PyObject *__pyx_pw_14cnumericalFlux_175calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
31249  int __pyx_v_nExteriorElementBoundaries_global;
31250  int __pyx_v_nElementBoundaries_element;
31251  int __pyx_v_nQuadraturePoints_elementBoundary;
31252  int __pyx_v_nSpace;
31253  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
31254  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
31255  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
31256  PyArrayObject *__pyx_v_n = 0;
31257  PyArrayObject *__pyx_v_u = 0;
31258  PyArrayObject *__pyx_v_a = 0;
31259  PyArrayObject *__pyx_v_phi_bc = 0;
31260  PyArrayObject *__pyx_v_phi = 0;
31261  PyArrayObject *__pyx_v_V = 0;
31262  PyArrayObject *__pyx_v_penalty = 0;
31263  PyArrayObject *__pyx_v_flux = 0;
31264  int __pyx_lineno = 0;
31265  const char *__pyx_filename = NULL;
31266  int __pyx_clineno = 0;
31267  PyObject *__pyx_r = 0;
31268  __Pyx_RefNannyDeclarations
31269  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind (wrapper)", 0);
31270  {
31271  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nElementBoundaries_element,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_u,&__pyx_n_s_a,&__pyx_n_s_phi_bc,&__pyx_n_s_phi,&__pyx_n_s_V,&__pyx_n_s_penalty,&__pyx_n_s_flux,0};
31272  PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
31273  if (unlikely(__pyx_kwds)) {
31274  Py_ssize_t kw_args;
31275  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
31276  switch (pos_args) {
31277  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
31278  CYTHON_FALLTHROUGH;
31279  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
31280  CYTHON_FALLTHROUGH;
31281  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
31282  CYTHON_FALLTHROUGH;
31283  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
31284  CYTHON_FALLTHROUGH;
31285  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
31286  CYTHON_FALLTHROUGH;
31287  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
31288  CYTHON_FALLTHROUGH;
31289  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
31290  CYTHON_FALLTHROUGH;
31291  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
31292  CYTHON_FALLTHROUGH;
31293  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
31294  CYTHON_FALLTHROUGH;
31295  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
31296  CYTHON_FALLTHROUGH;
31297  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
31298  CYTHON_FALLTHROUGH;
31299  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
31300  CYTHON_FALLTHROUGH;
31301  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
31302  CYTHON_FALLTHROUGH;
31303  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
31304  CYTHON_FALLTHROUGH;
31305  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
31306  CYTHON_FALLTHROUGH;
31307  case 0: break;
31308  default: goto __pyx_L5_argtuple_error;
31309  }
31310  kw_args = PyDict_Size(__pyx_kwds);
31311  switch (pos_args) {
31312  case 0:
31313  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
31314  else goto __pyx_L5_argtuple_error;
31315  CYTHON_FALLTHROUGH;
31316  case 1:
31317  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nElementBoundaries_element)) != 0)) kw_args--;
31318  else {
31319  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, 1); __PYX_ERR(0, 6181, __pyx_L3_error)
31320  }
31321  CYTHON_FALLTHROUGH;
31322  case 2:
31323  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
31324  else {
31325  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, 2); __PYX_ERR(0, 6181, __pyx_L3_error)
31326  }
31327  CYTHON_FALLTHROUGH;
31328  case 3:
31329  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
31330  else {
31331  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, 3); __PYX_ERR(0, 6181, __pyx_L3_error)
31332  }
31333  CYTHON_FALLTHROUGH;
31334  case 4:
31335  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
31336  else {
31337  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, 4); __PYX_ERR(0, 6181, __pyx_L3_error)
31338  }
31339  CYTHON_FALLTHROUGH;
31340  case 5:
31341  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
31342  else {
31343  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, 5); __PYX_ERR(0, 6181, __pyx_L3_error)
31344  }
31345  CYTHON_FALLTHROUGH;
31346  case 6:
31347  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
31348  else {
31349  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, 6); __PYX_ERR(0, 6181, __pyx_L3_error)
31350  }
31351  CYTHON_FALLTHROUGH;
31352  case 7:
31353  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
31354  else {
31355  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, 7); __PYX_ERR(0, 6181, __pyx_L3_error)
31356  }
31357  CYTHON_FALLTHROUGH;
31358  case 8:
31359  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
31360  else {
31361  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, 8); __PYX_ERR(0, 6181, __pyx_L3_error)
31362  }
31363  CYTHON_FALLTHROUGH;
31364  case 9:
31365  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
31366  else {
31367  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, 9); __PYX_ERR(0, 6181, __pyx_L3_error)
31368  }
31369  CYTHON_FALLTHROUGH;
31370  case 10:
31371  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_phi_bc)) != 0)) kw_args--;
31372  else {
31373  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, 10); __PYX_ERR(0, 6181, __pyx_L3_error)
31374  }
31375  CYTHON_FALLTHROUGH;
31376  case 11:
31377  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_phi)) != 0)) kw_args--;
31378  else {
31379  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, 11); __PYX_ERR(0, 6181, __pyx_L3_error)
31380  }
31381  CYTHON_FALLTHROUGH;
31382  case 12:
31383  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--;
31384  else {
31385  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, 12); __PYX_ERR(0, 6181, __pyx_L3_error)
31386  }
31387  CYTHON_FALLTHROUGH;
31388  case 13:
31389  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
31390  else {
31391  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, 13); __PYX_ERR(0, 6181, __pyx_L3_error)
31392  }
31393  CYTHON_FALLTHROUGH;
31394  case 14:
31395  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
31396  else {
31397  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, 14); __PYX_ERR(0, 6181, __pyx_L3_error)
31398  }
31399  }
31400  if (unlikely(kw_args > 0)) {
31401  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind") < 0)) __PYX_ERR(0, 6181, __pyx_L3_error)
31402  }
31403  } else if (PyTuple_GET_SIZE(__pyx_args) != 15) {
31404  goto __pyx_L5_argtuple_error;
31405  } else {
31406  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
31407  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
31408  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
31409  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
31410  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
31411  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
31412  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
31413  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
31414  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
31415  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
31416  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
31417  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
31418  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
31419  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
31420  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
31421  }
31422  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6181, __pyx_L3_error)
31423  __pyx_v_nElementBoundaries_element = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nElementBoundaries_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6182, __pyx_L3_error)
31424  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6183, __pyx_L3_error)
31425  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6184, __pyx_L3_error)
31426  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[4]);
31427  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[5]);
31428  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[6]);
31429  __pyx_v_n = ((PyArrayObject *)values[7]);
31430  __pyx_v_u = ((PyArrayObject *)values[8]);
31431  __pyx_v_a = ((PyArrayObject *)values[9]);
31432  __pyx_v_phi_bc = ((PyArrayObject *)values[10]);
31433  __pyx_v_phi = ((PyArrayObject *)values[11]);
31434  __pyx_v_V = ((PyArrayObject *)values[12]);
31435  __pyx_v_penalty = ((PyArrayObject *)values[13]);
31436  __pyx_v_flux = ((PyArrayObject *)values[14]);
31437  }
31438  goto __pyx_L4_argument_unpacking_done;
31439  __pyx_L5_argtuple_error:;
31440  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 1, 15, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6181, __pyx_L3_error)
31441  __pyx_L3_error:;
31442  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", __pyx_clineno, __pyx_lineno, __pyx_filename);
31443  __Pyx_RefNannyFinishContext();
31444  return NULL;
31445  __pyx_L4_argument_unpacking_done:;
31446  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6185, __pyx_L1_error)
31447  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6186, __pyx_L1_error)
31448  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6187, __pyx_L1_error)
31449  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6188, __pyx_L1_error)
31450  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 6189, __pyx_L1_error)
31451  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 6190, __pyx_L1_error)
31452  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phi_bc), __pyx_ptype_5numpy_ndarray, 1, "phi_bc", 0))) __PYX_ERR(0, 6191, __pyx_L1_error)
31453  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phi), __pyx_ptype_5numpy_ndarray, 1, "phi", 0))) __PYX_ERR(0, 6192, __pyx_L1_error)
31454  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_V), __pyx_ptype_5numpy_ndarray, 1, "V", 0))) __PYX_ERR(0, 6193, __pyx_L1_error)
31455  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 6194, __pyx_L1_error)
31456  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 6195, __pyx_L1_error)
31457  __pyx_r = __pyx_pf_14cnumericalFlux_174calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nElementBoundaries_element, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_u, __pyx_v_a, __pyx_v_phi_bc, __pyx_v_phi, __pyx_v_V, __pyx_v_penalty, __pyx_v_flux);
31458 
31459  /* function exit code */
31460  goto __pyx_L0;
31461  __pyx_L1_error:;
31462  __pyx_r = NULL;
31463  __pyx_L0:;
31464  __Pyx_RefNannyFinishContext();
31465  return __pyx_r;
31466 }
31467 
31468 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) {
31469  PyObject *__pyx_r = NULL;
31470  __Pyx_RefNannyDeclarations
31471  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind", 0);
31472 
31473  /* "cnumericalFlux.pyx":6196
31474  * np.ndarray penalty,
31475  * np.ndarray flux):
31476  * ccalculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
31477  * nElementBoundaries_element,
31478  * nQuadraturePoints_elementBoundary,
31479  */
31480  calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nElementBoundaries_element, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_phi_bc->data), ((double *)__pyx_v_phi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_flux->data));
31481 
31482  /* "cnumericalFlux.pyx":6181
31483  * <double*> penalty.data,
31484  * <double*> flux.data)
31485  * def calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
31486  * int nElementBoundaries_element,
31487  * int nQuadraturePoints_elementBoundary,
31488  */
31489 
31490  /* function exit code */
31491  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
31492  __Pyx_XGIVEREF(__pyx_r);
31493  __Pyx_RefNannyFinishContext();
31494  return __pyx_r;
31495 }
31496 
31497 /* "cnumericalFlux.pyx":6211
31498  * <double*> penalty.data,
31499  * <double*> flux.data)
31500  * def calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
31501  * int nElementBoundaries_element,
31502  * int nQuadraturePoints_elementBoundary,
31503  */
31504 
31505 /* Python wrapper */
31506 static PyObject *__pyx_pw_14cnumericalFlux_177calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
31507 static PyMethodDef __pyx_mdef_14cnumericalFlux_177calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd = {"calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_177calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd, METH_VARARGS|METH_KEYWORDS, 0};
31508 static PyObject *__pyx_pw_14cnumericalFlux_177calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
31509  int __pyx_v_nExteriorElementBoundaries_global;
31510  int __pyx_v_nElementBoundaries_element;
31511  int __pyx_v_nQuadraturePoints_elementBoundary;
31512  int __pyx_v_nSpace;
31513  PyArrayObject *__pyx_v_rowptr = 0;
31514  PyArrayObject *__pyx_v_colind = 0;
31515  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
31516  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
31517  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
31518  PyArrayObject *__pyx_v_n = 0;
31519  PyArrayObject *__pyx_v_u = 0;
31520  PyArrayObject *__pyx_v_a = 0;
31521  PyArrayObject *__pyx_v_phi_bc = 0;
31522  PyArrayObject *__pyx_v_phi = 0;
31523  PyArrayObject *__pyx_v_V = 0;
31524  PyArrayObject *__pyx_v_penalty = 0;
31525  PyArrayObject *__pyx_v_flux = 0;
31526  int __pyx_lineno = 0;
31527  const char *__pyx_filename = NULL;
31528  int __pyx_clineno = 0;
31529  PyObject *__pyx_r = 0;
31530  __Pyx_RefNannyDeclarations
31531  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd (wrapper)", 0);
31532  {
31533  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nElementBoundaries_element,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_u,&__pyx_n_s_a,&__pyx_n_s_phi_bc,&__pyx_n_s_phi,&__pyx_n_s_V,&__pyx_n_s_penalty,&__pyx_n_s_flux,0};
31534  PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
31535  if (unlikely(__pyx_kwds)) {
31536  Py_ssize_t kw_args;
31537  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
31538  switch (pos_args) {
31539  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
31540  CYTHON_FALLTHROUGH;
31541  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
31542  CYTHON_FALLTHROUGH;
31543  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
31544  CYTHON_FALLTHROUGH;
31545  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
31546  CYTHON_FALLTHROUGH;
31547  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
31548  CYTHON_FALLTHROUGH;
31549  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
31550  CYTHON_FALLTHROUGH;
31551  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
31552  CYTHON_FALLTHROUGH;
31553  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
31554  CYTHON_FALLTHROUGH;
31555  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
31556  CYTHON_FALLTHROUGH;
31557  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
31558  CYTHON_FALLTHROUGH;
31559  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
31560  CYTHON_FALLTHROUGH;
31561  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
31562  CYTHON_FALLTHROUGH;
31563  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
31564  CYTHON_FALLTHROUGH;
31565  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
31566  CYTHON_FALLTHROUGH;
31567  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
31568  CYTHON_FALLTHROUGH;
31569  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
31570  CYTHON_FALLTHROUGH;
31571  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
31572  CYTHON_FALLTHROUGH;
31573  case 0: break;
31574  default: goto __pyx_L5_argtuple_error;
31575  }
31576  kw_args = PyDict_Size(__pyx_kwds);
31577  switch (pos_args) {
31578  case 0:
31579  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
31580  else goto __pyx_L5_argtuple_error;
31581  CYTHON_FALLTHROUGH;
31582  case 1:
31583  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nElementBoundaries_element)) != 0)) kw_args--;
31584  else {
31585  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 1); __PYX_ERR(0, 6211, __pyx_L3_error)
31586  }
31587  CYTHON_FALLTHROUGH;
31588  case 2:
31589  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
31590  else {
31591  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 2); __PYX_ERR(0, 6211, __pyx_L3_error)
31592  }
31593  CYTHON_FALLTHROUGH;
31594  case 3:
31595  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
31596  else {
31597  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 3); __PYX_ERR(0, 6211, __pyx_L3_error)
31598  }
31599  CYTHON_FALLTHROUGH;
31600  case 4:
31601  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
31602  else {
31603  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 4); __PYX_ERR(0, 6211, __pyx_L3_error)
31604  }
31605  CYTHON_FALLTHROUGH;
31606  case 5:
31607  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
31608  else {
31609  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 5); __PYX_ERR(0, 6211, __pyx_L3_error)
31610  }
31611  CYTHON_FALLTHROUGH;
31612  case 6:
31613  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
31614  else {
31615  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 6); __PYX_ERR(0, 6211, __pyx_L3_error)
31616  }
31617  CYTHON_FALLTHROUGH;
31618  case 7:
31619  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
31620  else {
31621  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 7); __PYX_ERR(0, 6211, __pyx_L3_error)
31622  }
31623  CYTHON_FALLTHROUGH;
31624  case 8:
31625  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
31626  else {
31627  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 8); __PYX_ERR(0, 6211, __pyx_L3_error)
31628  }
31629  CYTHON_FALLTHROUGH;
31630  case 9:
31631  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
31632  else {
31633  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 9); __PYX_ERR(0, 6211, __pyx_L3_error)
31634  }
31635  CYTHON_FALLTHROUGH;
31636  case 10:
31637  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
31638  else {
31639  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 10); __PYX_ERR(0, 6211, __pyx_L3_error)
31640  }
31641  CYTHON_FALLTHROUGH;
31642  case 11:
31643  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
31644  else {
31645  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 11); __PYX_ERR(0, 6211, __pyx_L3_error)
31646  }
31647  CYTHON_FALLTHROUGH;
31648  case 12:
31649  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_phi_bc)) != 0)) kw_args--;
31650  else {
31651  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 12); __PYX_ERR(0, 6211, __pyx_L3_error)
31652  }
31653  CYTHON_FALLTHROUGH;
31654  case 13:
31655  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_phi)) != 0)) kw_args--;
31656  else {
31657  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 13); __PYX_ERR(0, 6211, __pyx_L3_error)
31658  }
31659  CYTHON_FALLTHROUGH;
31660  case 14:
31661  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--;
31662  else {
31663  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 14); __PYX_ERR(0, 6211, __pyx_L3_error)
31664  }
31665  CYTHON_FALLTHROUGH;
31666  case 15:
31667  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
31668  else {
31669  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 15); __PYX_ERR(0, 6211, __pyx_L3_error)
31670  }
31671  CYTHON_FALLTHROUGH;
31672  case 16:
31673  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
31674  else {
31675  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, 16); __PYX_ERR(0, 6211, __pyx_L3_error)
31676  }
31677  }
31678  if (unlikely(kw_args > 0)) {
31679  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd") < 0)) __PYX_ERR(0, 6211, __pyx_L3_error)
31680  }
31681  } else if (PyTuple_GET_SIZE(__pyx_args) != 17) {
31682  goto __pyx_L5_argtuple_error;
31683  } else {
31684  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
31685  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
31686  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
31687  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
31688  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
31689  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
31690  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
31691  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
31692  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
31693  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
31694  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
31695  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
31696  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
31697  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
31698  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
31699  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
31700  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
31701  }
31702  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6211, __pyx_L3_error)
31703  __pyx_v_nElementBoundaries_element = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nElementBoundaries_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6212, __pyx_L3_error)
31704  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6213, __pyx_L3_error)
31705  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6214, __pyx_L3_error)
31706  __pyx_v_rowptr = ((PyArrayObject *)values[4]);
31707  __pyx_v_colind = ((PyArrayObject *)values[5]);
31708  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[6]);
31709  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[7]);
31710  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[8]);
31711  __pyx_v_n = ((PyArrayObject *)values[9]);
31712  __pyx_v_u = ((PyArrayObject *)values[10]);
31713  __pyx_v_a = ((PyArrayObject *)values[11]);
31714  __pyx_v_phi_bc = ((PyArrayObject *)values[12]);
31715  __pyx_v_phi = ((PyArrayObject *)values[13]);
31716  __pyx_v_V = ((PyArrayObject *)values[14]);
31717  __pyx_v_penalty = ((PyArrayObject *)values[15]);
31718  __pyx_v_flux = ((PyArrayObject *)values[16]);
31719  }
31720  goto __pyx_L4_argument_unpacking_done;
31721  __pyx_L5_argtuple_error:;
31722  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 1, 17, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6211, __pyx_L3_error)
31723  __pyx_L3_error:;
31724  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
31725  __Pyx_RefNannyFinishContext();
31726  return NULL;
31727  __pyx_L4_argument_unpacking_done:;
31728  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 6215, __pyx_L1_error)
31729  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 6216, __pyx_L1_error)
31730  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6217, __pyx_L1_error)
31731  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6218, __pyx_L1_error)
31732  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6219, __pyx_L1_error)
31733  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6220, __pyx_L1_error)
31734  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 6221, __pyx_L1_error)
31735  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 6222, __pyx_L1_error)
31736  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phi_bc), __pyx_ptype_5numpy_ndarray, 1, "phi_bc", 0))) __PYX_ERR(0, 6223, __pyx_L1_error)
31737  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phi), __pyx_ptype_5numpy_ndarray, 1, "phi", 0))) __PYX_ERR(0, 6224, __pyx_L1_error)
31738  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_V), __pyx_ptype_5numpy_ndarray, 1, "V", 0))) __PYX_ERR(0, 6225, __pyx_L1_error)
31739  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 6226, __pyx_L1_error)
31740  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 6227, __pyx_L1_error)
31741  __pyx_r = __pyx_pf_14cnumericalFlux_176calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nElementBoundaries_element, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_u, __pyx_v_a, __pyx_v_phi_bc, __pyx_v_phi, __pyx_v_V, __pyx_v_penalty, __pyx_v_flux);
31742 
31743  /* function exit code */
31744  goto __pyx_L0;
31745  __pyx_L1_error:;
31746  __pyx_r = NULL;
31747  __pyx_L0:;
31748  __Pyx_RefNannyFinishContext();
31749  return __pyx_r;
31750 }
31751 
31752 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) {
31753  PyObject *__pyx_r = NULL;
31754  __Pyx_RefNannyDeclarations
31755  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd", 0);
31756 
31757  /* "cnumericalFlux.pyx":6228
31758  * np.ndarray penalty,
31759  * np.ndarray flux):
31760  * ccalculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
31761  * nElementBoundaries_element,
31762  * nQuadraturePoints_elementBoundary,
31763  */
31764  calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nElementBoundaries_element, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_phi_bc->data), ((double *)__pyx_v_phi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_flux->data));
31765 
31766  /* "cnumericalFlux.pyx":6211
31767  * <double*> penalty.data,
31768  * <double*> flux.data)
31769  * def calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
31770  * int nElementBoundaries_element,
31771  * int nQuadraturePoints_elementBoundary,
31772  */
31773 
31774  /* function exit code */
31775  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
31776  __Pyx_XGIVEREF(__pyx_r);
31777  __Pyx_RefNannyFinishContext();
31778  return __pyx_r;
31779 }
31780 
31781 /* "cnumericalFlux.pyx":6245
31782  * <double*> penalty.data,
31783  * <double*> flux.data)
31784  * def updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
31785  * np.ndarray exteriorElementBoundaries,
31786  * np.ndarray elementBoundaryElements,
31787  */
31788 
31789 /* Python wrapper */
31790 static PyObject *__pyx_pw_14cnumericalFlux_179updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
31791 static PyMethodDef __pyx_mdef_14cnumericalFlux_179updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind = {"updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_179updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind, METH_VARARGS|METH_KEYWORDS, 0};
31792 static PyObject *__pyx_pw_14cnumericalFlux_179updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
31793  PyArrayObject *__pyx_v_isDiffusiveFluxBoundary = 0;
31794  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
31795  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
31796  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
31797  PyArrayObject *__pyx_v_n = 0;
31798  PyArrayObject *__pyx_v_a = 0;
31799  PyArrayObject *__pyx_v_da = 0;
31800  PyArrayObject *__pyx_v_dphi = 0;
31801  PyArrayObject *__pyx_v_V = 0;
31802  PyArrayObject *__pyx_v_DV = 0;
31803  PyArrayObject *__pyx_v_DV_eb = 0;
31804  PyArrayObject *__pyx_v_v = 0;
31805  PyArrayObject *__pyx_v_penalty = 0;
31806  PyArrayObject *__pyx_v_fluxJacobian = 0;
31807  PyArrayObject *__pyx_v_fluxJacobian_eb = 0;
31808  int __pyx_lineno = 0;
31809  const char *__pyx_filename = NULL;
31810  int __pyx_clineno = 0;
31811  PyObject *__pyx_r = 0;
31812  __Pyx_RefNannyDeclarations
31813  __Pyx_RefNannySetupContext("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind (wrapper)", 0);
31814  {
31815  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isDiffusiveFluxBoundary,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_a,&__pyx_n_s_da,&__pyx_n_s_dphi,&__pyx_n_s_V,&__pyx_n_s_DV,&__pyx_n_s_DV_eb,&__pyx_n_s_v,&__pyx_n_s_penalty,&__pyx_n_s_fluxJacobian,&__pyx_n_s_fluxJacobian_eb,0};
31816  PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
31817  if (unlikely(__pyx_kwds)) {
31818  Py_ssize_t kw_args;
31819  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
31820  switch (pos_args) {
31821  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
31822  CYTHON_FALLTHROUGH;
31823  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
31824  CYTHON_FALLTHROUGH;
31825  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
31826  CYTHON_FALLTHROUGH;
31827  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
31828  CYTHON_FALLTHROUGH;
31829  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
31830  CYTHON_FALLTHROUGH;
31831  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
31832  CYTHON_FALLTHROUGH;
31833  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
31834  CYTHON_FALLTHROUGH;
31835  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
31836  CYTHON_FALLTHROUGH;
31837  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
31838  CYTHON_FALLTHROUGH;
31839  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
31840  CYTHON_FALLTHROUGH;
31841  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
31842  CYTHON_FALLTHROUGH;
31843  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
31844  CYTHON_FALLTHROUGH;
31845  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
31846  CYTHON_FALLTHROUGH;
31847  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
31848  CYTHON_FALLTHROUGH;
31849  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
31850  CYTHON_FALLTHROUGH;
31851  case 0: break;
31852  default: goto __pyx_L5_argtuple_error;
31853  }
31854  kw_args = PyDict_Size(__pyx_kwds);
31855  switch (pos_args) {
31856  case 0:
31857  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDiffusiveFluxBoundary)) != 0)) kw_args--;
31858  else goto __pyx_L5_argtuple_error;
31859  CYTHON_FALLTHROUGH;
31860  case 1:
31861  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
31862  else {
31863  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, 1); __PYX_ERR(0, 6245, __pyx_L3_error)
31864  }
31865  CYTHON_FALLTHROUGH;
31866  case 2:
31867  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
31868  else {
31869  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, 2); __PYX_ERR(0, 6245, __pyx_L3_error)
31870  }
31871  CYTHON_FALLTHROUGH;
31872  case 3:
31873  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
31874  else {
31875  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, 3); __PYX_ERR(0, 6245, __pyx_L3_error)
31876  }
31877  CYTHON_FALLTHROUGH;
31878  case 4:
31879  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
31880  else {
31881  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, 4); __PYX_ERR(0, 6245, __pyx_L3_error)
31882  }
31883  CYTHON_FALLTHROUGH;
31884  case 5:
31885  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
31886  else {
31887  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, 5); __PYX_ERR(0, 6245, __pyx_L3_error)
31888  }
31889  CYTHON_FALLTHROUGH;
31890  case 6:
31891  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
31892  else {
31893  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, 6); __PYX_ERR(0, 6245, __pyx_L3_error)
31894  }
31895  CYTHON_FALLTHROUGH;
31896  case 7:
31897  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
31898  else {
31899  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, 7); __PYX_ERR(0, 6245, __pyx_L3_error)
31900  }
31901  CYTHON_FALLTHROUGH;
31902  case 8:
31903  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--;
31904  else {
31905  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, 8); __PYX_ERR(0, 6245, __pyx_L3_error)
31906  }
31907  CYTHON_FALLTHROUGH;
31908  case 9:
31909  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DV)) != 0)) kw_args--;
31910  else {
31911  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, 9); __PYX_ERR(0, 6245, __pyx_L3_error)
31912  }
31913  CYTHON_FALLTHROUGH;
31914  case 10:
31915  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DV_eb)) != 0)) kw_args--;
31916  else {
31917  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, 10); __PYX_ERR(0, 6245, __pyx_L3_error)
31918  }
31919  CYTHON_FALLTHROUGH;
31920  case 11:
31921  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
31922  else {
31923  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, 11); __PYX_ERR(0, 6245, __pyx_L3_error)
31924  }
31925  CYTHON_FALLTHROUGH;
31926  case 12:
31927  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
31928  else {
31929  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, 12); __PYX_ERR(0, 6245, __pyx_L3_error)
31930  }
31931  CYTHON_FALLTHROUGH;
31932  case 13:
31933  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
31934  else {
31935  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, 13); __PYX_ERR(0, 6245, __pyx_L3_error)
31936  }
31937  CYTHON_FALLTHROUGH;
31938  case 14:
31939  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_eb)) != 0)) kw_args--;
31940  else {
31941  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, 14); __PYX_ERR(0, 6245, __pyx_L3_error)
31942  }
31943  }
31944  if (unlikely(kw_args > 0)) {
31945  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind") < 0)) __PYX_ERR(0, 6245, __pyx_L3_error)
31946  }
31947  } else if (PyTuple_GET_SIZE(__pyx_args) != 15) {
31948  goto __pyx_L5_argtuple_error;
31949  } else {
31950  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
31951  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
31952  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
31953  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
31954  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
31955  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
31956  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
31957  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
31958  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
31959  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
31960  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
31961  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
31962  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
31963  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
31964  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
31965  }
31966  __pyx_v_isDiffusiveFluxBoundary = ((PyArrayObject *)values[0]);
31967  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
31968  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
31969  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
31970  __pyx_v_n = ((PyArrayObject *)values[4]);
31971  __pyx_v_a = ((PyArrayObject *)values[5]);
31972  __pyx_v_da = ((PyArrayObject *)values[6]);
31973  __pyx_v_dphi = ((PyArrayObject *)values[7]);
31974  __pyx_v_V = ((PyArrayObject *)values[8]);
31975  __pyx_v_DV = ((PyArrayObject *)values[9]);
31976  __pyx_v_DV_eb = ((PyArrayObject *)values[10]);
31977  __pyx_v_v = ((PyArrayObject *)values[11]);
31978  __pyx_v_penalty = ((PyArrayObject *)values[12]);
31979  __pyx_v_fluxJacobian = ((PyArrayObject *)values[13]);
31980  __pyx_v_fluxJacobian_eb = ((PyArrayObject *)values[14]);
31981  }
31982  goto __pyx_L4_argument_unpacking_done;
31983  __pyx_L5_argtuple_error:;
31984  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 15, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6245, __pyx_L3_error)
31985  __pyx_L3_error:;
31986  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", __pyx_clineno, __pyx_lineno, __pyx_filename);
31987  __Pyx_RefNannyFinishContext();
31988  return NULL;
31989  __pyx_L4_argument_unpacking_done:;
31990  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDiffusiveFluxBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDiffusiveFluxBoundary", 0))) __PYX_ERR(0, 6245, __pyx_L1_error)
31991  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6246, __pyx_L1_error)
31992  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6247, __pyx_L1_error)
31993  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6248, __pyx_L1_error)
31994  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6249, __pyx_L1_error)
31995  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 6250, __pyx_L1_error)
31996  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 6251, __pyx_L1_error)
31997  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 6252, __pyx_L1_error)
31998  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_V), __pyx_ptype_5numpy_ndarray, 1, "V", 0))) __PYX_ERR(0, 6253, __pyx_L1_error)
31999  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_DV), __pyx_ptype_5numpy_ndarray, 1, "DV", 0))) __PYX_ERR(0, 6254, __pyx_L1_error)
32000  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_DV_eb), __pyx_ptype_5numpy_ndarray, 1, "DV_eb", 0))) __PYX_ERR(0, 6255, __pyx_L1_error)
32001  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 6256, __pyx_L1_error)
32002  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 6257, __pyx_L1_error)
32003  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 6258, __pyx_L1_error)
32004  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_eb), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_eb", 0))) __PYX_ERR(0, 6259, __pyx_L1_error)
32005  __pyx_r = __pyx_pf_14cnumericalFlux_178updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(__pyx_self, __pyx_v_isDiffusiveFluxBoundary, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_a, __pyx_v_da, __pyx_v_dphi, __pyx_v_V, __pyx_v_DV, __pyx_v_DV_eb, __pyx_v_v, __pyx_v_penalty, __pyx_v_fluxJacobian, __pyx_v_fluxJacobian_eb);
32006 
32007  /* function exit code */
32008  goto __pyx_L0;
32009  __pyx_L1_error:;
32010  __pyx_r = NULL;
32011  __pyx_L0:;
32012  __Pyx_RefNannyFinishContext();
32013  return __pyx_r;
32014 }
32015 
32016 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) {
32017  PyObject *__pyx_r = NULL;
32018  __Pyx_RefNannyDeclarations
32019  int __pyx_t_1;
32020  __Pyx_RefNannySetupContext("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 0);
32021 
32022  /* "cnumericalFlux.pyx":6260
32023  * np.ndarray fluxJacobian,
32024  * np.ndarray fluxJacobian_eb):
32025  * if n.ndim > 3: # <<<<<<<<<<<<<<
32026  * cupdateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(<int*> isDiffusiveFluxBoundary.data,
32027  * exteriorElementBoundaries.shape[0],
32028  */
32029  __pyx_t_1 = ((__pyx_v_n->nd > 3) != 0);
32030  if (__pyx_t_1) {
32031 
32032  /* "cnumericalFlux.pyx":6261
32033  * np.ndarray fluxJacobian_eb):
32034  * if n.ndim > 3:
32035  * cupdateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(<int*> isDiffusiveFluxBoundary.data, # <<<<<<<<<<<<<<
32036  * exteriorElementBoundaries.shape[0],
32037  * v.shape[1],
32038  */
32039  updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(((int *)__pyx_v_isDiffusiveFluxBoundary->data), (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_v->dimensions[1]), (__pyx_v_v->dimensions[2]), (__pyx_v_v->dimensions[3]), (__pyx_v_n->dimensions[3]), ((int *)__pyx_v_exteriorElementBoundaries->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_dphi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_DV->data), ((double *)__pyx_v_DV_eb->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_fluxJacobian->data), ((double *)__pyx_v_fluxJacobian_eb->data));
32040 
32041  /* "cnumericalFlux.pyx":6260
32042  * np.ndarray fluxJacobian,
32043  * np.ndarray fluxJacobian_eb):
32044  * if n.ndim > 3: # <<<<<<<<<<<<<<
32045  * cupdateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(<int*> isDiffusiveFluxBoundary.data,
32046  * exteriorElementBoundaries.shape[0],
32047  */
32048  goto __pyx_L3;
32049  }
32050 
32051  /* "cnumericalFlux.pyx":6282
32052  * <double*> fluxJacobian_eb.data)
32053  * else:
32054  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(<int*> isDiffusiveFluxBoundary.data, # <<<<<<<<<<<<<<
32055  * exteriorElementBoundaries.shape[0],
32056  * DV.shape[1],
32057  */
32058  /*else*/ {
32059 
32060  /* "cnumericalFlux.pyx":6301
32061  * <double*> penalty.data,
32062  * <double*> fluxJacobian.data,
32063  * <double*> fluxJacobian_eb.data) # <<<<<<<<<<<<<<
32064  *
32065  * def updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(np.ndarray isDiffusiveFluxBoundary,
32066  */
32067  updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(((int *)__pyx_v_isDiffusiveFluxBoundary->data), (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_DV->dimensions[1]), (__pyx_v_DV->dimensions[2]), (__pyx_v_DV->dimensions[3]), (__pyx_v_n->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->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_dphi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_DV->data), ((double *)__pyx_v_DV_eb->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_fluxJacobian->data), ((double *)__pyx_v_fluxJacobian_eb->data));
32068  }
32069  __pyx_L3:;
32070 
32071  /* "cnumericalFlux.pyx":6245
32072  * <double*> penalty.data,
32073  * <double*> flux.data)
32074  * def updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
32075  * np.ndarray exteriorElementBoundaries,
32076  * np.ndarray elementBoundaryElements,
32077  */
32078 
32079  /* function exit code */
32080  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
32081  __Pyx_XGIVEREF(__pyx_r);
32082  __Pyx_RefNannyFinishContext();
32083  return __pyx_r;
32084 }
32085 
32086 /* "cnumericalFlux.pyx":6303
32087  * <double*> fluxJacobian_eb.data)
32088  *
32089  * def updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
32090  * np.ndarray rowptr,
32091  * np.ndarray colind,
32092  */
32093 
32094 /* Python wrapper */
32095 static PyObject *__pyx_pw_14cnumericalFlux_181updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
32096 static PyMethodDef __pyx_mdef_14cnumericalFlux_181updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd = {"updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_181updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd, METH_VARARGS|METH_KEYWORDS, 0};
32097 static PyObject *__pyx_pw_14cnumericalFlux_181updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
32098  PyArrayObject *__pyx_v_isDiffusiveFluxBoundary = 0;
32099  PyArrayObject *__pyx_v_rowptr = 0;
32100  PyArrayObject *__pyx_v_colind = 0;
32101  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
32102  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
32103  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
32104  PyArrayObject *__pyx_v_n = 0;
32105  PyArrayObject *__pyx_v_a = 0;
32106  PyArrayObject *__pyx_v_da = 0;
32107  PyArrayObject *__pyx_v_dphi = 0;
32108  PyArrayObject *__pyx_v_V = 0;
32109  PyArrayObject *__pyx_v_DV = 0;
32110  PyArrayObject *__pyx_v_DV_eb = 0;
32111  PyArrayObject *__pyx_v_v = 0;
32112  PyArrayObject *__pyx_v_penalty = 0;
32113  PyArrayObject *__pyx_v_fluxJacobian = 0;
32114  PyArrayObject *__pyx_v_fluxJacobian_eb = 0;
32115  int __pyx_lineno = 0;
32116  const char *__pyx_filename = NULL;
32117  int __pyx_clineno = 0;
32118  PyObject *__pyx_r = 0;
32119  __Pyx_RefNannyDeclarations
32120  __Pyx_RefNannySetupContext("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd (wrapper)", 0);
32121  {
32122  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isDiffusiveFluxBoundary,&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_a,&__pyx_n_s_da,&__pyx_n_s_dphi,&__pyx_n_s_V,&__pyx_n_s_DV,&__pyx_n_s_DV_eb,&__pyx_n_s_v,&__pyx_n_s_penalty,&__pyx_n_s_fluxJacobian,&__pyx_n_s_fluxJacobian_eb,0};
32123  PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
32124  if (unlikely(__pyx_kwds)) {
32125  Py_ssize_t kw_args;
32126  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
32127  switch (pos_args) {
32128  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
32129  CYTHON_FALLTHROUGH;
32130  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
32131  CYTHON_FALLTHROUGH;
32132  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
32133  CYTHON_FALLTHROUGH;
32134  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
32135  CYTHON_FALLTHROUGH;
32136  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
32137  CYTHON_FALLTHROUGH;
32138  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
32139  CYTHON_FALLTHROUGH;
32140  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
32141  CYTHON_FALLTHROUGH;
32142  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
32143  CYTHON_FALLTHROUGH;
32144  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
32145  CYTHON_FALLTHROUGH;
32146  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
32147  CYTHON_FALLTHROUGH;
32148  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
32149  CYTHON_FALLTHROUGH;
32150  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
32151  CYTHON_FALLTHROUGH;
32152  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
32153  CYTHON_FALLTHROUGH;
32154  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
32155  CYTHON_FALLTHROUGH;
32156  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
32157  CYTHON_FALLTHROUGH;
32158  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
32159  CYTHON_FALLTHROUGH;
32160  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
32161  CYTHON_FALLTHROUGH;
32162  case 0: break;
32163  default: goto __pyx_L5_argtuple_error;
32164  }
32165  kw_args = PyDict_Size(__pyx_kwds);
32166  switch (pos_args) {
32167  case 0:
32168  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDiffusiveFluxBoundary)) != 0)) kw_args--;
32169  else goto __pyx_L5_argtuple_error;
32170  CYTHON_FALLTHROUGH;
32171  case 1:
32172  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
32173  else {
32174  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 1); __PYX_ERR(0, 6303, __pyx_L3_error)
32175  }
32176  CYTHON_FALLTHROUGH;
32177  case 2:
32178  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
32179  else {
32180  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 2); __PYX_ERR(0, 6303, __pyx_L3_error)
32181  }
32182  CYTHON_FALLTHROUGH;
32183  case 3:
32184  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
32185  else {
32186  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 3); __PYX_ERR(0, 6303, __pyx_L3_error)
32187  }
32188  CYTHON_FALLTHROUGH;
32189  case 4:
32190  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
32191  else {
32192  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 4); __PYX_ERR(0, 6303, __pyx_L3_error)
32193  }
32194  CYTHON_FALLTHROUGH;
32195  case 5:
32196  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
32197  else {
32198  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 5); __PYX_ERR(0, 6303, __pyx_L3_error)
32199  }
32200  CYTHON_FALLTHROUGH;
32201  case 6:
32202  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
32203  else {
32204  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 6); __PYX_ERR(0, 6303, __pyx_L3_error)
32205  }
32206  CYTHON_FALLTHROUGH;
32207  case 7:
32208  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
32209  else {
32210  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 7); __PYX_ERR(0, 6303, __pyx_L3_error)
32211  }
32212  CYTHON_FALLTHROUGH;
32213  case 8:
32214  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
32215  else {
32216  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 8); __PYX_ERR(0, 6303, __pyx_L3_error)
32217  }
32218  CYTHON_FALLTHROUGH;
32219  case 9:
32220  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
32221  else {
32222  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 9); __PYX_ERR(0, 6303, __pyx_L3_error)
32223  }
32224  CYTHON_FALLTHROUGH;
32225  case 10:
32226  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--;
32227  else {
32228  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 10); __PYX_ERR(0, 6303, __pyx_L3_error)
32229  }
32230  CYTHON_FALLTHROUGH;
32231  case 11:
32232  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DV)) != 0)) kw_args--;
32233  else {
32234  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 11); __PYX_ERR(0, 6303, __pyx_L3_error)
32235  }
32236  CYTHON_FALLTHROUGH;
32237  case 12:
32238  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DV_eb)) != 0)) kw_args--;
32239  else {
32240  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 12); __PYX_ERR(0, 6303, __pyx_L3_error)
32241  }
32242  CYTHON_FALLTHROUGH;
32243  case 13:
32244  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
32245  else {
32246  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 13); __PYX_ERR(0, 6303, __pyx_L3_error)
32247  }
32248  CYTHON_FALLTHROUGH;
32249  case 14:
32250  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
32251  else {
32252  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 14); __PYX_ERR(0, 6303, __pyx_L3_error)
32253  }
32254  CYTHON_FALLTHROUGH;
32255  case 15:
32256  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
32257  else {
32258  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 15); __PYX_ERR(0, 6303, __pyx_L3_error)
32259  }
32260  CYTHON_FALLTHROUGH;
32261  case 16:
32262  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_eb)) != 0)) kw_args--;
32263  else {
32264  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, 16); __PYX_ERR(0, 6303, __pyx_L3_error)
32265  }
32266  }
32267  if (unlikely(kw_args > 0)) {
32268  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd") < 0)) __PYX_ERR(0, 6303, __pyx_L3_error)
32269  }
32270  } else if (PyTuple_GET_SIZE(__pyx_args) != 17) {
32271  goto __pyx_L5_argtuple_error;
32272  } else {
32273  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
32274  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
32275  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
32276  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
32277  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
32278  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
32279  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
32280  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
32281  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
32282  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
32283  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
32284  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
32285  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
32286  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
32287  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
32288  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
32289  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
32290  }
32291  __pyx_v_isDiffusiveFluxBoundary = ((PyArrayObject *)values[0]);
32292  __pyx_v_rowptr = ((PyArrayObject *)values[1]);
32293  __pyx_v_colind = ((PyArrayObject *)values[2]);
32294  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
32295  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
32296  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
32297  __pyx_v_n = ((PyArrayObject *)values[6]);
32298  __pyx_v_a = ((PyArrayObject *)values[7]);
32299  __pyx_v_da = ((PyArrayObject *)values[8]);
32300  __pyx_v_dphi = ((PyArrayObject *)values[9]);
32301  __pyx_v_V = ((PyArrayObject *)values[10]);
32302  __pyx_v_DV = ((PyArrayObject *)values[11]);
32303  __pyx_v_DV_eb = ((PyArrayObject *)values[12]);
32304  __pyx_v_v = ((PyArrayObject *)values[13]);
32305  __pyx_v_penalty = ((PyArrayObject *)values[14]);
32306  __pyx_v_fluxJacobian = ((PyArrayObject *)values[15]);
32307  __pyx_v_fluxJacobian_eb = ((PyArrayObject *)values[16]);
32308  }
32309  goto __pyx_L4_argument_unpacking_done;
32310  __pyx_L5_argtuple_error:;
32311  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 17, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6303, __pyx_L3_error)
32312  __pyx_L3_error:;
32313  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
32314  __Pyx_RefNannyFinishContext();
32315  return NULL;
32316  __pyx_L4_argument_unpacking_done:;
32317  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDiffusiveFluxBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDiffusiveFluxBoundary", 0))) __PYX_ERR(0, 6303, __pyx_L1_error)
32318  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 6304, __pyx_L1_error)
32319  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 6305, __pyx_L1_error)
32320  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6306, __pyx_L1_error)
32321  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6307, __pyx_L1_error)
32322  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6308, __pyx_L1_error)
32323  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6309, __pyx_L1_error)
32324  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 6310, __pyx_L1_error)
32325  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 6311, __pyx_L1_error)
32326  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 6312, __pyx_L1_error)
32327  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_V), __pyx_ptype_5numpy_ndarray, 1, "V", 0))) __PYX_ERR(0, 6313, __pyx_L1_error)
32328  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_DV), __pyx_ptype_5numpy_ndarray, 1, "DV", 0))) __PYX_ERR(0, 6314, __pyx_L1_error)
32329  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_DV_eb), __pyx_ptype_5numpy_ndarray, 1, "DV_eb", 0))) __PYX_ERR(0, 6315, __pyx_L1_error)
32330  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 6316, __pyx_L1_error)
32331  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 6317, __pyx_L1_error)
32332  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 6318, __pyx_L1_error)
32333  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_eb), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_eb", 0))) __PYX_ERR(0, 6319, __pyx_L1_error)
32334  __pyx_r = __pyx_pf_14cnumericalFlux_180updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(__pyx_self, __pyx_v_isDiffusiveFluxBoundary, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_a, __pyx_v_da, __pyx_v_dphi, __pyx_v_V, __pyx_v_DV, __pyx_v_DV_eb, __pyx_v_v, __pyx_v_penalty, __pyx_v_fluxJacobian, __pyx_v_fluxJacobian_eb);
32335 
32336  /* function exit code */
32337  goto __pyx_L0;
32338  __pyx_L1_error:;
32339  __pyx_r = NULL;
32340  __pyx_L0:;
32341  __Pyx_RefNannyFinishContext();
32342  return __pyx_r;
32343 }
32344 
32345 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) {
32346  PyObject *__pyx_r = NULL;
32347  __Pyx_RefNannyDeclarations
32348  int __pyx_t_1;
32349  __Pyx_RefNannySetupContext("updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 0);
32350 
32351  /* "cnumericalFlux.pyx":6320
32352  * np.ndarray fluxJacobian,
32353  * np.ndarray fluxJacobian_eb):
32354  * if n.ndim > 3: # <<<<<<<<<<<<<<
32355  * cupdateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(<int*> isDiffusiveFluxBoundary.data,
32356  * exteriorElementBoundaries.shape[0],
32357  */
32358  __pyx_t_1 = ((__pyx_v_n->nd > 3) != 0);
32359  if (__pyx_t_1) {
32360 
32361  /* "cnumericalFlux.pyx":6321
32362  * np.ndarray fluxJacobian_eb):
32363  * if n.ndim > 3:
32364  * cupdateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(<int*> isDiffusiveFluxBoundary.data, # <<<<<<<<<<<<<<
32365  * exteriorElementBoundaries.shape[0],
32366  * v.shape[1],
32367  */
32368  updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(((int *)__pyx_v_isDiffusiveFluxBoundary->data), (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_v->dimensions[1]), (__pyx_v_v->dimensions[2]), (__pyx_v_v->dimensions[3]), (__pyx_v_n->dimensions[3]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_exteriorElementBoundaries->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_dphi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_DV->data), ((double *)__pyx_v_DV_eb->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_fluxJacobian->data), ((double *)__pyx_v_fluxJacobian_eb->data));
32369 
32370  /* "cnumericalFlux.pyx":6320
32371  * np.ndarray fluxJacobian,
32372  * np.ndarray fluxJacobian_eb):
32373  * if n.ndim > 3: # <<<<<<<<<<<<<<
32374  * cupdateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(<int*> isDiffusiveFluxBoundary.data,
32375  * exteriorElementBoundaries.shape[0],
32376  */
32377  goto __pyx_L3;
32378  }
32379 
32380  /* "cnumericalFlux.pyx":6344
32381  * <double*> fluxJacobian_eb.data)
32382  * else:
32383  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(<int*> isDiffusiveFluxBoundary.data, # <<<<<<<<<<<<<<
32384  * exteriorElementBoundaries.shape[0],
32385  * DV.shape[1],
32386  */
32387  /*else*/ {
32388 
32389  /* "cnumericalFlux.pyx":6365
32390  * <double*> penalty.data,
32391  * <double*> fluxJacobian.data,
32392  * <double*> fluxJacobian_eb.data) # <<<<<<<<<<<<<<
32393  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(np.ndarray isDiffusiveFluxBoundary,
32394  * int nExteriorElementBoundaries_global,
32395  */
32396  updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(((int *)__pyx_v_isDiffusiveFluxBoundary->data), (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_DV->dimensions[1]), (__pyx_v_DV->dimensions[2]), (__pyx_v_DV->dimensions[3]), (__pyx_v_n->dimensions[2]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_exteriorElementBoundaries->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_dphi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_DV->data), ((double *)__pyx_v_DV_eb->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_fluxJacobian->data), ((double *)__pyx_v_fluxJacobian_eb->data));
32397  }
32398  __pyx_L3:;
32399 
32400  /* "cnumericalFlux.pyx":6303
32401  * <double*> fluxJacobian_eb.data)
32402  *
32403  * def updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
32404  * np.ndarray rowptr,
32405  * np.ndarray colind,
32406  */
32407 
32408  /* function exit code */
32409  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
32410  __Pyx_XGIVEREF(__pyx_r);
32411  __Pyx_RefNannyFinishContext();
32412  return __pyx_r;
32413 }
32414 
32415 /* "cnumericalFlux.pyx":6366
32416  * <double*> fluxJacobian.data,
32417  * <double*> fluxJacobian_eb.data)
32418  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
32419  * int nExteriorElementBoundaries_global,
32420  * int nElementBoundaries_element,
32421  */
32422 
32423 /* Python wrapper */
32424 static PyObject *__pyx_pw_14cnumericalFlux_183updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
32425 static PyMethodDef __pyx_mdef_14cnumericalFlux_183updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind = {"updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_183updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind, METH_VARARGS|METH_KEYWORDS, 0};
32426 static PyObject *__pyx_pw_14cnumericalFlux_183updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
32427  PyArrayObject *__pyx_v_isDiffusiveFluxBoundary = 0;
32428  int __pyx_v_nExteriorElementBoundaries_global;
32429  int __pyx_v_nElementBoundaries_element;
32430  int __pyx_v_nQuadraturePoints_elementBoundary;
32431  int __pyx_v_nDOF_trial_element;
32432  int __pyx_v_nSpace;
32433  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
32434  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
32435  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
32436  PyArrayObject *__pyx_v_n = 0;
32437  PyArrayObject *__pyx_v_a = 0;
32438  PyArrayObject *__pyx_v_da = 0;
32439  PyArrayObject *__pyx_v_dphi = 0;
32440  PyArrayObject *__pyx_v_V = 0;
32441  PyArrayObject *__pyx_v_DV = 0;
32442  PyArrayObject *__pyx_v_DV_eb = 0;
32443  PyArrayObject *__pyx_v_v = 0;
32444  PyArrayObject *__pyx_v_penalty = 0;
32445  PyArrayObject *__pyx_v_fluxJacobian_exterior = 0;
32446  PyArrayObject *__pyx_v_fluxJacobian_eb = 0;
32447  int __pyx_lineno = 0;
32448  const char *__pyx_filename = NULL;
32449  int __pyx_clineno = 0;
32450  PyObject *__pyx_r = 0;
32451  __Pyx_RefNannyDeclarations
32452  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind (wrapper)", 0);
32453  {
32454  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isDiffusiveFluxBoundary,&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nElementBoundaries_element,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nDOF_trial_element,&__pyx_n_s_nSpace,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_a,&__pyx_n_s_da,&__pyx_n_s_dphi,&__pyx_n_s_V,&__pyx_n_s_DV,&__pyx_n_s_DV_eb,&__pyx_n_s_v,&__pyx_n_s_penalty,&__pyx_n_s_fluxJacobian_exterior,&__pyx_n_s_fluxJacobian_eb,0};
32455  PyObject* values[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
32456  if (unlikely(__pyx_kwds)) {
32457  Py_ssize_t kw_args;
32458  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
32459  switch (pos_args) {
32460  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
32461  CYTHON_FALLTHROUGH;
32462  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
32463  CYTHON_FALLTHROUGH;
32464  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
32465  CYTHON_FALLTHROUGH;
32466  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
32467  CYTHON_FALLTHROUGH;
32468  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
32469  CYTHON_FALLTHROUGH;
32470  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
32471  CYTHON_FALLTHROUGH;
32472  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
32473  CYTHON_FALLTHROUGH;
32474  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
32475  CYTHON_FALLTHROUGH;
32476  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
32477  CYTHON_FALLTHROUGH;
32478  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
32479  CYTHON_FALLTHROUGH;
32480  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
32481  CYTHON_FALLTHROUGH;
32482  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
32483  CYTHON_FALLTHROUGH;
32484  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
32485  CYTHON_FALLTHROUGH;
32486  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
32487  CYTHON_FALLTHROUGH;
32488  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
32489  CYTHON_FALLTHROUGH;
32490  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
32491  CYTHON_FALLTHROUGH;
32492  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
32493  CYTHON_FALLTHROUGH;
32494  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
32495  CYTHON_FALLTHROUGH;
32496  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
32497  CYTHON_FALLTHROUGH;
32498  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
32499  CYTHON_FALLTHROUGH;
32500  case 0: break;
32501  default: goto __pyx_L5_argtuple_error;
32502  }
32503  kw_args = PyDict_Size(__pyx_kwds);
32504  switch (pos_args) {
32505  case 0:
32506  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDiffusiveFluxBoundary)) != 0)) kw_args--;
32507  else goto __pyx_L5_argtuple_error;
32508  CYTHON_FALLTHROUGH;
32509  case 1:
32510  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
32511  else {
32512  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 1); __PYX_ERR(0, 6366, __pyx_L3_error)
32513  }
32514  CYTHON_FALLTHROUGH;
32515  case 2:
32516  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nElementBoundaries_element)) != 0)) kw_args--;
32517  else {
32518  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 2); __PYX_ERR(0, 6366, __pyx_L3_error)
32519  }
32520  CYTHON_FALLTHROUGH;
32521  case 3:
32522  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
32523  else {
32524  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 3); __PYX_ERR(0, 6366, __pyx_L3_error)
32525  }
32526  CYTHON_FALLTHROUGH;
32527  case 4:
32528  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nDOF_trial_element)) != 0)) kw_args--;
32529  else {
32530  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 4); __PYX_ERR(0, 6366, __pyx_L3_error)
32531  }
32532  CYTHON_FALLTHROUGH;
32533  case 5:
32534  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
32535  else {
32536  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 5); __PYX_ERR(0, 6366, __pyx_L3_error)
32537  }
32538  CYTHON_FALLTHROUGH;
32539  case 6:
32540  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
32541  else {
32542  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 6); __PYX_ERR(0, 6366, __pyx_L3_error)
32543  }
32544  CYTHON_FALLTHROUGH;
32545  case 7:
32546  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
32547  else {
32548  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 7); __PYX_ERR(0, 6366, __pyx_L3_error)
32549  }
32550  CYTHON_FALLTHROUGH;
32551  case 8:
32552  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
32553  else {
32554  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 8); __PYX_ERR(0, 6366, __pyx_L3_error)
32555  }
32556  CYTHON_FALLTHROUGH;
32557  case 9:
32558  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
32559  else {
32560  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 9); __PYX_ERR(0, 6366, __pyx_L3_error)
32561  }
32562  CYTHON_FALLTHROUGH;
32563  case 10:
32564  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
32565  else {
32566  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 10); __PYX_ERR(0, 6366, __pyx_L3_error)
32567  }
32568  CYTHON_FALLTHROUGH;
32569  case 11:
32570  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
32571  else {
32572  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 11); __PYX_ERR(0, 6366, __pyx_L3_error)
32573  }
32574  CYTHON_FALLTHROUGH;
32575  case 12:
32576  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
32577  else {
32578  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 12); __PYX_ERR(0, 6366, __pyx_L3_error)
32579  }
32580  CYTHON_FALLTHROUGH;
32581  case 13:
32582  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--;
32583  else {
32584  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 13); __PYX_ERR(0, 6366, __pyx_L3_error)
32585  }
32586  CYTHON_FALLTHROUGH;
32587  case 14:
32588  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DV)) != 0)) kw_args--;
32589  else {
32590  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 14); __PYX_ERR(0, 6366, __pyx_L3_error)
32591  }
32592  CYTHON_FALLTHROUGH;
32593  case 15:
32594  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DV_eb)) != 0)) kw_args--;
32595  else {
32596  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 15); __PYX_ERR(0, 6366, __pyx_L3_error)
32597  }
32598  CYTHON_FALLTHROUGH;
32599  case 16:
32600  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
32601  else {
32602  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 16); __PYX_ERR(0, 6366, __pyx_L3_error)
32603  }
32604  CYTHON_FALLTHROUGH;
32605  case 17:
32606  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
32607  else {
32608  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 17); __PYX_ERR(0, 6366, __pyx_L3_error)
32609  }
32610  CYTHON_FALLTHROUGH;
32611  case 18:
32612  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_exterior)) != 0)) kw_args--;
32613  else {
32614  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 18); __PYX_ERR(0, 6366, __pyx_L3_error)
32615  }
32616  CYTHON_FALLTHROUGH;
32617  case 19:
32618  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_eb)) != 0)) kw_args--;
32619  else {
32620  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, 19); __PYX_ERR(0, 6366, __pyx_L3_error)
32621  }
32622  }
32623  if (unlikely(kw_args > 0)) {
32624  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind") < 0)) __PYX_ERR(0, 6366, __pyx_L3_error)
32625  }
32626  } else if (PyTuple_GET_SIZE(__pyx_args) != 20) {
32627  goto __pyx_L5_argtuple_error;
32628  } else {
32629  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
32630  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
32631  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
32632  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
32633  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
32634  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
32635  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
32636  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
32637  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
32638  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
32639  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
32640  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
32641  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
32642  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
32643  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
32644  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
32645  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
32646  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
32647  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
32648  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
32649  }
32650  __pyx_v_isDiffusiveFluxBoundary = ((PyArrayObject *)values[0]);
32651  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6367, __pyx_L3_error)
32652  __pyx_v_nElementBoundaries_element = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nElementBoundaries_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6368, __pyx_L3_error)
32653  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6369, __pyx_L3_error)
32654  __pyx_v_nDOF_trial_element = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_nDOF_trial_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6370, __pyx_L3_error)
32655  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6371, __pyx_L3_error)
32656  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[6]);
32657  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[7]);
32658  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[8]);
32659  __pyx_v_n = ((PyArrayObject *)values[9]);
32660  __pyx_v_a = ((PyArrayObject *)values[10]);
32661  __pyx_v_da = ((PyArrayObject *)values[11]);
32662  __pyx_v_dphi = ((PyArrayObject *)values[12]);
32663  __pyx_v_V = ((PyArrayObject *)values[13]);
32664  __pyx_v_DV = ((PyArrayObject *)values[14]);
32665  __pyx_v_DV_eb = ((PyArrayObject *)values[15]);
32666  __pyx_v_v = ((PyArrayObject *)values[16]);
32667  __pyx_v_penalty = ((PyArrayObject *)values[17]);
32668  __pyx_v_fluxJacobian_exterior = ((PyArrayObject *)values[18]);
32669  __pyx_v_fluxJacobian_eb = ((PyArrayObject *)values[19]);
32670  }
32671  goto __pyx_L4_argument_unpacking_done;
32672  __pyx_L5_argtuple_error:;
32673  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 1, 20, 20, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6366, __pyx_L3_error)
32674  __pyx_L3_error:;
32675  __Pyx_AddTraceback("cnumericalFlux.updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", __pyx_clineno, __pyx_lineno, __pyx_filename);
32676  __Pyx_RefNannyFinishContext();
32677  return NULL;
32678  __pyx_L4_argument_unpacking_done:;
32679  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDiffusiveFluxBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDiffusiveFluxBoundary", 0))) __PYX_ERR(0, 6366, __pyx_L1_error)
32680  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6372, __pyx_L1_error)
32681  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6373, __pyx_L1_error)
32682  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6374, __pyx_L1_error)
32683  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6375, __pyx_L1_error)
32684  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 6376, __pyx_L1_error)
32685  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 6377, __pyx_L1_error)
32686  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 6378, __pyx_L1_error)
32687  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_V), __pyx_ptype_5numpy_ndarray, 1, "V", 0))) __PYX_ERR(0, 6379, __pyx_L1_error)
32688  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_DV), __pyx_ptype_5numpy_ndarray, 1, "DV", 0))) __PYX_ERR(0, 6380, __pyx_L1_error)
32689  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_DV_eb), __pyx_ptype_5numpy_ndarray, 1, "DV_eb", 0))) __PYX_ERR(0, 6381, __pyx_L1_error)
32690  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 6382, __pyx_L1_error)
32691  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 6383, __pyx_L1_error)
32692  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_exterior), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_exterior", 0))) __PYX_ERR(0, 6384, __pyx_L1_error)
32693  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_eb), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_eb", 0))) __PYX_ERR(0, 6385, __pyx_L1_error)
32694  __pyx_r = __pyx_pf_14cnumericalFlux_182updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(__pyx_self, __pyx_v_isDiffusiveFluxBoundary, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nElementBoundaries_element, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_a, __pyx_v_da, __pyx_v_dphi, __pyx_v_V, __pyx_v_DV, __pyx_v_DV_eb, __pyx_v_v, __pyx_v_penalty, __pyx_v_fluxJacobian_exterior, __pyx_v_fluxJacobian_eb);
32695 
32696  /* function exit code */
32697  goto __pyx_L0;
32698  __pyx_L1_error:;
32699  __pyx_r = NULL;
32700  __pyx_L0:;
32701  __Pyx_RefNannyFinishContext();
32702  return __pyx_r;
32703 }
32704 
32705 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) {
32706  PyObject *__pyx_r = NULL;
32707  __Pyx_RefNannyDeclarations
32708  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind", 0);
32709 
32710  /* "cnumericalFlux.pyx":6386
32711  * np.ndarray fluxJacobian_exterior,
32712  * np.ndarray fluxJacobian_eb):
32713  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(<int*> isDiffusiveFluxBoundary.data, # <<<<<<<<<<<<<<
32714  * nExteriorElementBoundaries_global,
32715  * nElementBoundaries_element,
32716  */
32717  updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(((int *)__pyx_v_isDiffusiveFluxBoundary->data), __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nElementBoundaries_element, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, ((int *)__pyx_v_exteriorElementBoundaries->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_dphi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_DV->data), ((double *)__pyx_v_DV_eb->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_fluxJacobian_exterior->data), ((double *)__pyx_v_fluxJacobian_eb->data));
32718 
32719  /* "cnumericalFlux.pyx":6366
32720  * <double*> fluxJacobian.data,
32721  * <double*> fluxJacobian_eb.data)
32722  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
32723  * int nExteriorElementBoundaries_global,
32724  * int nElementBoundaries_element,
32725  */
32726 
32727  /* function exit code */
32728  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
32729  __Pyx_XGIVEREF(__pyx_r);
32730  __Pyx_RefNannyFinishContext();
32731  return __pyx_r;
32732 }
32733 
32734 /* "cnumericalFlux.pyx":6406
32735  * <double*> fluxJacobian_exterior.data,
32736  * <double*> fluxJacobian_eb.data)
32737  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
32738  * int nExteriorElementBoundaries_global,
32739  * int nElementBoundaries_element,
32740  */
32741 
32742 /* Python wrapper */
32743 static PyObject *__pyx_pw_14cnumericalFlux_185updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
32744 static PyMethodDef __pyx_mdef_14cnumericalFlux_185updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd = {"updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_185updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd, METH_VARARGS|METH_KEYWORDS, 0};
32745 static PyObject *__pyx_pw_14cnumericalFlux_185updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
32746  PyArrayObject *__pyx_v_isDiffusiveFluxBoundary = 0;
32747  int __pyx_v_nExteriorElementBoundaries_global;
32748  int __pyx_v_nElementBoundaries_element;
32749  int __pyx_v_nQuadraturePoints_elementBoundary;
32750  int __pyx_v_nDOF_trial_element;
32751  int __pyx_v_nSpace;
32752  PyArrayObject *__pyx_v_rowptr = 0;
32753  PyArrayObject *__pyx_v_colind = 0;
32754  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
32755  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
32756  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
32757  PyArrayObject *__pyx_v_n = 0;
32758  PyArrayObject *__pyx_v_a = 0;
32759  PyArrayObject *__pyx_v_da = 0;
32760  PyArrayObject *__pyx_v_dphi = 0;
32761  PyArrayObject *__pyx_v_V = 0;
32762  PyArrayObject *__pyx_v_DV = 0;
32763  PyArrayObject *__pyx_v_DV_eb = 0;
32764  PyArrayObject *__pyx_v_v = 0;
32765  PyArrayObject *__pyx_v_penalty = 0;
32766  PyArrayObject *__pyx_v_fluxJacobian_exterior = 0;
32767  PyArrayObject *__pyx_v_fluxJacobian_eb = 0;
32768  int __pyx_lineno = 0;
32769  const char *__pyx_filename = NULL;
32770  int __pyx_clineno = 0;
32771  PyObject *__pyx_r = 0;
32772  __Pyx_RefNannyDeclarations
32773  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd (wrapper)", 0);
32774  {
32775  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isDiffusiveFluxBoundary,&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nElementBoundaries_element,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nDOF_trial_element,&__pyx_n_s_nSpace,&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_n,&__pyx_n_s_a,&__pyx_n_s_da,&__pyx_n_s_dphi,&__pyx_n_s_V,&__pyx_n_s_DV,&__pyx_n_s_DV_eb,&__pyx_n_s_v,&__pyx_n_s_penalty,&__pyx_n_s_fluxJacobian_exterior,&__pyx_n_s_fluxJacobian_eb,0};
32776  PyObject* values[22] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
32777  if (unlikely(__pyx_kwds)) {
32778  Py_ssize_t kw_args;
32779  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
32780  switch (pos_args) {
32781  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
32782  CYTHON_FALLTHROUGH;
32783  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
32784  CYTHON_FALLTHROUGH;
32785  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
32786  CYTHON_FALLTHROUGH;
32787  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
32788  CYTHON_FALLTHROUGH;
32789  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
32790  CYTHON_FALLTHROUGH;
32791  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
32792  CYTHON_FALLTHROUGH;
32793  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
32794  CYTHON_FALLTHROUGH;
32795  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
32796  CYTHON_FALLTHROUGH;
32797  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
32798  CYTHON_FALLTHROUGH;
32799  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
32800  CYTHON_FALLTHROUGH;
32801  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
32802  CYTHON_FALLTHROUGH;
32803  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
32804  CYTHON_FALLTHROUGH;
32805  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
32806  CYTHON_FALLTHROUGH;
32807  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
32808  CYTHON_FALLTHROUGH;
32809  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
32810  CYTHON_FALLTHROUGH;
32811  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
32812  CYTHON_FALLTHROUGH;
32813  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
32814  CYTHON_FALLTHROUGH;
32815  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
32816  CYTHON_FALLTHROUGH;
32817  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
32818  CYTHON_FALLTHROUGH;
32819  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
32820  CYTHON_FALLTHROUGH;
32821  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
32822  CYTHON_FALLTHROUGH;
32823  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
32824  CYTHON_FALLTHROUGH;
32825  case 0: break;
32826  default: goto __pyx_L5_argtuple_error;
32827  }
32828  kw_args = PyDict_Size(__pyx_kwds);
32829  switch (pos_args) {
32830  case 0:
32831  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDiffusiveFluxBoundary)) != 0)) kw_args--;
32832  else goto __pyx_L5_argtuple_error;
32833  CYTHON_FALLTHROUGH;
32834  case 1:
32835  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
32836  else {
32837  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 1); __PYX_ERR(0, 6406, __pyx_L3_error)
32838  }
32839  CYTHON_FALLTHROUGH;
32840  case 2:
32841  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nElementBoundaries_element)) != 0)) kw_args--;
32842  else {
32843  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 2); __PYX_ERR(0, 6406, __pyx_L3_error)
32844  }
32845  CYTHON_FALLTHROUGH;
32846  case 3:
32847  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
32848  else {
32849  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 3); __PYX_ERR(0, 6406, __pyx_L3_error)
32850  }
32851  CYTHON_FALLTHROUGH;
32852  case 4:
32853  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nDOF_trial_element)) != 0)) kw_args--;
32854  else {
32855  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 4); __PYX_ERR(0, 6406, __pyx_L3_error)
32856  }
32857  CYTHON_FALLTHROUGH;
32858  case 5:
32859  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
32860  else {
32861  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 5); __PYX_ERR(0, 6406, __pyx_L3_error)
32862  }
32863  CYTHON_FALLTHROUGH;
32864  case 6:
32865  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
32866  else {
32867  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 6); __PYX_ERR(0, 6406, __pyx_L3_error)
32868  }
32869  CYTHON_FALLTHROUGH;
32870  case 7:
32871  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
32872  else {
32873  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 7); __PYX_ERR(0, 6406, __pyx_L3_error)
32874  }
32875  CYTHON_FALLTHROUGH;
32876  case 8:
32877  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
32878  else {
32879  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 8); __PYX_ERR(0, 6406, __pyx_L3_error)
32880  }
32881  CYTHON_FALLTHROUGH;
32882  case 9:
32883  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
32884  else {
32885  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 9); __PYX_ERR(0, 6406, __pyx_L3_error)
32886  }
32887  CYTHON_FALLTHROUGH;
32888  case 10:
32889  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
32890  else {
32891  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 10); __PYX_ERR(0, 6406, __pyx_L3_error)
32892  }
32893  CYTHON_FALLTHROUGH;
32894  case 11:
32895  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
32896  else {
32897  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 11); __PYX_ERR(0, 6406, __pyx_L3_error)
32898  }
32899  CYTHON_FALLTHROUGH;
32900  case 12:
32901  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
32902  else {
32903  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 12); __PYX_ERR(0, 6406, __pyx_L3_error)
32904  }
32905  CYTHON_FALLTHROUGH;
32906  case 13:
32907  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
32908  else {
32909  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 13); __PYX_ERR(0, 6406, __pyx_L3_error)
32910  }
32911  CYTHON_FALLTHROUGH;
32912  case 14:
32913  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
32914  else {
32915  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 14); __PYX_ERR(0, 6406, __pyx_L3_error)
32916  }
32917  CYTHON_FALLTHROUGH;
32918  case 15:
32919  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--;
32920  else {
32921  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 15); __PYX_ERR(0, 6406, __pyx_L3_error)
32922  }
32923  CYTHON_FALLTHROUGH;
32924  case 16:
32925  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DV)) != 0)) kw_args--;
32926  else {
32927  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 16); __PYX_ERR(0, 6406, __pyx_L3_error)
32928  }
32929  CYTHON_FALLTHROUGH;
32930  case 17:
32931  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DV_eb)) != 0)) kw_args--;
32932  else {
32933  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 17); __PYX_ERR(0, 6406, __pyx_L3_error)
32934  }
32935  CYTHON_FALLTHROUGH;
32936  case 18:
32937  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
32938  else {
32939  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 18); __PYX_ERR(0, 6406, __pyx_L3_error)
32940  }
32941  CYTHON_FALLTHROUGH;
32942  case 19:
32943  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
32944  else {
32945  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 19); __PYX_ERR(0, 6406, __pyx_L3_error)
32946  }
32947  CYTHON_FALLTHROUGH;
32948  case 20:
32949  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_exterior)) != 0)) kw_args--;
32950  else {
32951  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 20); __PYX_ERR(0, 6406, __pyx_L3_error)
32952  }
32953  CYTHON_FALLTHROUGH;
32954  case 21:
32955  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian_eb)) != 0)) kw_args--;
32956  else {
32957  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, 21); __PYX_ERR(0, 6406, __pyx_L3_error)
32958  }
32959  }
32960  if (unlikely(kw_args > 0)) {
32961  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd") < 0)) __PYX_ERR(0, 6406, __pyx_L3_error)
32962  }
32963  } else if (PyTuple_GET_SIZE(__pyx_args) != 22) {
32964  goto __pyx_L5_argtuple_error;
32965  } else {
32966  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
32967  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
32968  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
32969  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
32970  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
32971  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
32972  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
32973  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
32974  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
32975  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
32976  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
32977  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
32978  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
32979  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
32980  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
32981  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
32982  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
32983  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
32984  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
32985  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
32986  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
32987  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
32988  }
32989  __pyx_v_isDiffusiveFluxBoundary = ((PyArrayObject *)values[0]);
32990  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6407, __pyx_L3_error)
32991  __pyx_v_nElementBoundaries_element = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nElementBoundaries_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6408, __pyx_L3_error)
32992  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6409, __pyx_L3_error)
32993  __pyx_v_nDOF_trial_element = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_nDOF_trial_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6410, __pyx_L3_error)
32994  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6411, __pyx_L3_error)
32995  __pyx_v_rowptr = ((PyArrayObject *)values[6]);
32996  __pyx_v_colind = ((PyArrayObject *)values[7]);
32997  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[8]);
32998  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[9]);
32999  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[10]);
33000  __pyx_v_n = ((PyArrayObject *)values[11]);
33001  __pyx_v_a = ((PyArrayObject *)values[12]);
33002  __pyx_v_da = ((PyArrayObject *)values[13]);
33003  __pyx_v_dphi = ((PyArrayObject *)values[14]);
33004  __pyx_v_V = ((PyArrayObject *)values[15]);
33005  __pyx_v_DV = ((PyArrayObject *)values[16]);
33006  __pyx_v_DV_eb = ((PyArrayObject *)values[17]);
33007  __pyx_v_v = ((PyArrayObject *)values[18]);
33008  __pyx_v_penalty = ((PyArrayObject *)values[19]);
33009  __pyx_v_fluxJacobian_exterior = ((PyArrayObject *)values[20]);
33010  __pyx_v_fluxJacobian_eb = ((PyArrayObject *)values[21]);
33011  }
33012  goto __pyx_L4_argument_unpacking_done;
33013  __pyx_L5_argtuple_error:;
33014  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 1, 22, 22, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6406, __pyx_L3_error)
33015  __pyx_L3_error:;
33016  __Pyx_AddTraceback("cnumericalFlux.updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
33017  __Pyx_RefNannyFinishContext();
33018  return NULL;
33019  __pyx_L4_argument_unpacking_done:;
33020  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDiffusiveFluxBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDiffusiveFluxBoundary", 0))) __PYX_ERR(0, 6406, __pyx_L1_error)
33021  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 6412, __pyx_L1_error)
33022  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 6413, __pyx_L1_error)
33023  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6414, __pyx_L1_error)
33024  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6415, __pyx_L1_error)
33025  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6416, __pyx_L1_error)
33026  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6417, __pyx_L1_error)
33027  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 6418, __pyx_L1_error)
33028  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 6419, __pyx_L1_error)
33029  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 6420, __pyx_L1_error)
33030  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_V), __pyx_ptype_5numpy_ndarray, 1, "V", 0))) __PYX_ERR(0, 6421, __pyx_L1_error)
33031  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_DV), __pyx_ptype_5numpy_ndarray, 1, "DV", 0))) __PYX_ERR(0, 6422, __pyx_L1_error)
33032  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_DV_eb), __pyx_ptype_5numpy_ndarray, 1, "DV_eb", 0))) __PYX_ERR(0, 6423, __pyx_L1_error)
33033  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 6424, __pyx_L1_error)
33034  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 6425, __pyx_L1_error)
33035  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_exterior), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_exterior", 0))) __PYX_ERR(0, 6426, __pyx_L1_error)
33036  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian_eb), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian_eb", 0))) __PYX_ERR(0, 6427, __pyx_L1_error)
33037  __pyx_r = __pyx_pf_14cnumericalFlux_184updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(__pyx_self, __pyx_v_isDiffusiveFluxBoundary, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nElementBoundaries_element, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_n, __pyx_v_a, __pyx_v_da, __pyx_v_dphi, __pyx_v_V, __pyx_v_DV, __pyx_v_DV_eb, __pyx_v_v, __pyx_v_penalty, __pyx_v_fluxJacobian_exterior, __pyx_v_fluxJacobian_eb);
33038 
33039  /* function exit code */
33040  goto __pyx_L0;
33041  __pyx_L1_error:;
33042  __pyx_r = NULL;
33043  __pyx_L0:;
33044  __Pyx_RefNannyFinishContext();
33045  return __pyx_r;
33046 }
33047 
33048 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) {
33049  PyObject *__pyx_r = NULL;
33050  __Pyx_RefNannyDeclarations
33051  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd", 0);
33052 
33053  /* "cnumericalFlux.pyx":6428
33054  * np.ndarray fluxJacobian_exterior,
33055  * np.ndarray fluxJacobian_eb):
33056  * cupdateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(<int*> isDiffusiveFluxBoundary.data, # <<<<<<<<<<<<<<
33057  * nExteriorElementBoundaries_global,
33058  * nElementBoundaries_element,
33059  */
33060  updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(((int *)__pyx_v_isDiffusiveFluxBoundary->data), __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nElementBoundaries_element, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_exteriorElementBoundaries->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_dphi->data), ((double *)__pyx_v_V->data), ((double *)__pyx_v_DV->data), ((double *)__pyx_v_DV_eb->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_fluxJacobian_exterior->data), ((double *)__pyx_v_fluxJacobian_eb->data));
33061 
33062  /* "cnumericalFlux.pyx":6406
33063  * <double*> fluxJacobian_exterior.data,
33064  * <double*> fluxJacobian_eb.data)
33065  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
33066  * int nExteriorElementBoundaries_global,
33067  * int nElementBoundaries_element,
33068  */
33069 
33070  /* function exit code */
33071  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
33072  __Pyx_XGIVEREF(__pyx_r);
33073  __Pyx_RefNannyFinishContext();
33074  return __pyx_r;
33075 }
33076 
33077 /* "cnumericalFlux.pyx":6450
33078  * <double*> fluxJacobian_exterior.data,
33079  * <double*> fluxJacobian_eb.data)
33080  * def calculateExteriorLesaintRaviartNumericalFlux(int speedEvalFlag, # <<<<<<<<<<<<<<
33081  * np.ndarray exteriorElementBoundaries,
33082  * np.ndarray elementBoundaryElements,
33083  */
33084 
33085 /* Python wrapper */
33086 static PyObject *__pyx_pw_14cnumericalFlux_187calculateExteriorLesaintRaviartNumericalFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
33087 static PyMethodDef __pyx_mdef_14cnumericalFlux_187calculateExteriorLesaintRaviartNumericalFlux = {"calculateExteriorLesaintRaviartNumericalFlux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_187calculateExteriorLesaintRaviartNumericalFlux, METH_VARARGS|METH_KEYWORDS, 0};
33088 static PyObject *__pyx_pw_14cnumericalFlux_187calculateExteriorLesaintRaviartNumericalFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
33089  int __pyx_v_speedEvalFlag;
33090  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
33091  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
33092  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
33093  PyArrayObject *__pyx_v_isDOFBoundary = 0;
33094  PyArrayObject *__pyx_v_inflowFlag = 0;
33095  PyArrayObject *__pyx_v_n = 0;
33096  PyArrayObject *__pyx_v_bc_u = 0;
33097  PyArrayObject *__pyx_v_bc_H = 0;
33098  PyArrayObject *__pyx_v_bc_dH = 0;
33099  PyArrayObject *__pyx_v_u = 0;
33100  PyArrayObject *__pyx_v_H = 0;
33101  PyArrayObject *__pyx_v_dH = 0;
33102  PyArrayObject *__pyx_v_flux = 0;
33103  PyArrayObject *__pyx_v_dflux = 0;
33104  int __pyx_lineno = 0;
33105  const char *__pyx_filename = NULL;
33106  int __pyx_clineno = 0;
33107  PyObject *__pyx_r = 0;
33108  __Pyx_RefNannyDeclarations
33109  __Pyx_RefNannySetupContext("calculateExteriorLesaintRaviartNumericalFlux (wrapper)", 0);
33110  {
33111  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_speedEvalFlag,&__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_H,&__pyx_n_s_bc_dH,&__pyx_n_s_u,&__pyx_n_s_H,&__pyx_n_s_dH,&__pyx_n_s_flux,&__pyx_n_s_dflux,0};
33112  PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
33113  if (unlikely(__pyx_kwds)) {
33114  Py_ssize_t kw_args;
33115  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
33116  switch (pos_args) {
33117  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
33118  CYTHON_FALLTHROUGH;
33119  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
33120  CYTHON_FALLTHROUGH;
33121  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
33122  CYTHON_FALLTHROUGH;
33123  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
33124  CYTHON_FALLTHROUGH;
33125  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
33126  CYTHON_FALLTHROUGH;
33127  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
33128  CYTHON_FALLTHROUGH;
33129  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
33130  CYTHON_FALLTHROUGH;
33131  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
33132  CYTHON_FALLTHROUGH;
33133  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
33134  CYTHON_FALLTHROUGH;
33135  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
33136  CYTHON_FALLTHROUGH;
33137  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
33138  CYTHON_FALLTHROUGH;
33139  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
33140  CYTHON_FALLTHROUGH;
33141  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
33142  CYTHON_FALLTHROUGH;
33143  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33144  CYTHON_FALLTHROUGH;
33145  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33146  CYTHON_FALLTHROUGH;
33147  case 0: break;
33148  default: goto __pyx_L5_argtuple_error;
33149  }
33150  kw_args = PyDict_Size(__pyx_kwds);
33151  switch (pos_args) {
33152  case 0:
33153  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_speedEvalFlag)) != 0)) kw_args--;
33154  else goto __pyx_L5_argtuple_error;
33155  CYTHON_FALLTHROUGH;
33156  case 1:
33157  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
33158  else {
33159  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, 1); __PYX_ERR(0, 6450, __pyx_L3_error)
33160  }
33161  CYTHON_FALLTHROUGH;
33162  case 2:
33163  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
33164  else {
33165  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, 2); __PYX_ERR(0, 6450, __pyx_L3_error)
33166  }
33167  CYTHON_FALLTHROUGH;
33168  case 3:
33169  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
33170  else {
33171  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, 3); __PYX_ERR(0, 6450, __pyx_L3_error)
33172  }
33173  CYTHON_FALLTHROUGH;
33174  case 4:
33175  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
33176  else {
33177  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, 4); __PYX_ERR(0, 6450, __pyx_L3_error)
33178  }
33179  CYTHON_FALLTHROUGH;
33180  case 5:
33181  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
33182  else {
33183  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, 5); __PYX_ERR(0, 6450, __pyx_L3_error)
33184  }
33185  CYTHON_FALLTHROUGH;
33186  case 6:
33187  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
33188  else {
33189  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, 6); __PYX_ERR(0, 6450, __pyx_L3_error)
33190  }
33191  CYTHON_FALLTHROUGH;
33192  case 7:
33193  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
33194  else {
33195  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, 7); __PYX_ERR(0, 6450, __pyx_L3_error)
33196  }
33197  CYTHON_FALLTHROUGH;
33198  case 8:
33199  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_H)) != 0)) kw_args--;
33200  else {
33201  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, 8); __PYX_ERR(0, 6450, __pyx_L3_error)
33202  }
33203  CYTHON_FALLTHROUGH;
33204  case 9:
33205  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_dH)) != 0)) kw_args--;
33206  else {
33207  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, 9); __PYX_ERR(0, 6450, __pyx_L3_error)
33208  }
33209  CYTHON_FALLTHROUGH;
33210  case 10:
33211  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
33212  else {
33213  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, 10); __PYX_ERR(0, 6450, __pyx_L3_error)
33214  }
33215  CYTHON_FALLTHROUGH;
33216  case 11:
33217  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_H)) != 0)) kw_args--;
33218  else {
33219  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, 11); __PYX_ERR(0, 6450, __pyx_L3_error)
33220  }
33221  CYTHON_FALLTHROUGH;
33222  case 12:
33223  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dH)) != 0)) kw_args--;
33224  else {
33225  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, 12); __PYX_ERR(0, 6450, __pyx_L3_error)
33226  }
33227  CYTHON_FALLTHROUGH;
33228  case 13:
33229  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
33230  else {
33231  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, 13); __PYX_ERR(0, 6450, __pyx_L3_error)
33232  }
33233  CYTHON_FALLTHROUGH;
33234  case 14:
33235  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux)) != 0)) kw_args--;
33236  else {
33237  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, 14); __PYX_ERR(0, 6450, __pyx_L3_error)
33238  }
33239  }
33240  if (unlikely(kw_args > 0)) {
33241  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateExteriorLesaintRaviartNumericalFlux") < 0)) __PYX_ERR(0, 6450, __pyx_L3_error)
33242  }
33243  } else if (PyTuple_GET_SIZE(__pyx_args) != 15) {
33244  goto __pyx_L5_argtuple_error;
33245  } else {
33246  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33247  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33248  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
33249  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
33250  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
33251  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
33252  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
33253  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
33254  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
33255  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
33256  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
33257  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
33258  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
33259  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
33260  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
33261  }
33262  __pyx_v_speedEvalFlag = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_speedEvalFlag == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6450, __pyx_L3_error)
33263  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
33264  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
33265  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
33266  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[4]);
33267  __pyx_v_inflowFlag = ((PyArrayObject *)values[5]);
33268  __pyx_v_n = ((PyArrayObject *)values[6]);
33269  __pyx_v_bc_u = ((PyArrayObject *)values[7]);
33270  __pyx_v_bc_H = ((PyArrayObject *)values[8]);
33271  __pyx_v_bc_dH = ((PyArrayObject *)values[9]);
33272  __pyx_v_u = ((PyArrayObject *)values[10]);
33273  __pyx_v_H = ((PyArrayObject *)values[11]);
33274  __pyx_v_dH = ((PyArrayObject *)values[12]);
33275  __pyx_v_flux = ((PyArrayObject *)values[13]);
33276  __pyx_v_dflux = ((PyArrayObject *)values[14]);
33277  }
33278  goto __pyx_L4_argument_unpacking_done;
33279  __pyx_L5_argtuple_error:;
33280  __Pyx_RaiseArgtupleInvalid("calculateExteriorLesaintRaviartNumericalFlux", 1, 15, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6450, __pyx_L3_error)
33281  __pyx_L3_error:;
33282  __Pyx_AddTraceback("cnumericalFlux.calculateExteriorLesaintRaviartNumericalFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
33283  __Pyx_RefNannyFinishContext();
33284  return NULL;
33285  __pyx_L4_argument_unpacking_done:;
33286  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6451, __pyx_L1_error)
33287  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6452, __pyx_L1_error)
33288  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6453, __pyx_L1_error)
33289  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 6454, __pyx_L1_error)
33290  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 6455, __pyx_L1_error)
33291  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6456, __pyx_L1_error)
33292  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 6457, __pyx_L1_error)
33293  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_H), __pyx_ptype_5numpy_ndarray, 1, "bc_H", 0))) __PYX_ERR(0, 6458, __pyx_L1_error)
33294  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_dH), __pyx_ptype_5numpy_ndarray, 1, "bc_dH", 0))) __PYX_ERR(0, 6459, __pyx_L1_error)
33295  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 6460, __pyx_L1_error)
33296  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_H), __pyx_ptype_5numpy_ndarray, 1, "H", 0))) __PYX_ERR(0, 6461, __pyx_L1_error)
33297  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dH), __pyx_ptype_5numpy_ndarray, 1, "dH", 0))) __PYX_ERR(0, 6462, __pyx_L1_error)
33298  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 6463, __pyx_L1_error)
33299  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux), __pyx_ptype_5numpy_ndarray, 1, "dflux", 0))) __PYX_ERR(0, 6464, __pyx_L1_error)
33300  __pyx_r = __pyx_pf_14cnumericalFlux_186calculateExteriorLesaintRaviartNumericalFlux(__pyx_self, __pyx_v_speedEvalFlag, __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_H, __pyx_v_bc_dH, __pyx_v_u, __pyx_v_H, __pyx_v_dH, __pyx_v_flux, __pyx_v_dflux);
33301 
33302  /* function exit code */
33303  goto __pyx_L0;
33304  __pyx_L1_error:;
33305  __pyx_r = NULL;
33306  __pyx_L0:;
33307  __Pyx_RefNannyFinishContext();
33308  return __pyx_r;
33309 }
33310 
33311 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) {
33312  PyObject *__pyx_r = NULL;
33313  __Pyx_RefNannyDeclarations
33314  int __pyx_t_1;
33315  __Pyx_RefNannySetupContext("calculateExteriorLesaintRaviartNumericalFlux", 0);
33316 
33317  /* "cnumericalFlux.pyx":6465
33318  * np.ndarray flux,
33319  * np.ndarray dflux):
33320  * if dH.ndim > 3: # <<<<<<<<<<<<<<
33321  * ccalculateExteriorLesaintRaviartNumericalFlux( elementBoundaryElements.shape[0],
33322  * dH.shape[1],
33323  */
33324  __pyx_t_1 = ((__pyx_v_dH->nd > 3) != 0);
33325  if (__pyx_t_1) {
33326 
33327  /* "cnumericalFlux.pyx":6466
33328  * np.ndarray dflux):
33329  * if dH.ndim > 3:
33330  * ccalculateExteriorLesaintRaviartNumericalFlux( elementBoundaryElements.shape[0], # <<<<<<<<<<<<<<
33331  * dH.shape[1],
33332  * dH.shape[2],
33333  */
33334  calculateExteriorLesaintRaviartNumericalFlux((__pyx_v_elementBoundaryElements->dimensions[0]), (__pyx_v_dH->dimensions[1]), (__pyx_v_dH->dimensions[2]), (__pyx_v_dH->dimensions[3]), __pyx_v_speedEvalFlag, ((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_H->data), ((double *)__pyx_v_bc_dH->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->data));
33335 
33336  /* "cnumericalFlux.pyx":6465
33337  * np.ndarray flux,
33338  * np.ndarray dflux):
33339  * if dH.ndim > 3: # <<<<<<<<<<<<<<
33340  * ccalculateExteriorLesaintRaviartNumericalFlux( elementBoundaryElements.shape[0],
33341  * dH.shape[1],
33342  */
33343  goto __pyx_L3;
33344  }
33345 
33346  /* "cnumericalFlux.pyx":6486
33347  * <double*> dflux.data)
33348  * else:
33349  * ccalculateGlobalExteriorLesaintRaviartNumericalFlux( elementBoundaryElements.shape[0], # <<<<<<<<<<<<<<
33350  * dH.shape[1],
33351  * dH.shape[2],
33352  */
33353  /*else*/ {
33354 
33355  /* "cnumericalFlux.pyx":6503
33356  * <double*> dH.data,
33357  * <double*> flux.data,
33358  * <double*> dflux.data) # <<<<<<<<<<<<<<
33359  * def calculateGlobalExteriorLesaintRaviartNumericalFlux(int nExteriorElementBoundaries_global,
33360  * int nQuadraturePoints_elementBoundary,
33361  */
33362  calculateGlobalExteriorLesaintRaviartNumericalFlux((__pyx_v_elementBoundaryElements->dimensions[0]), (__pyx_v_dH->dimensions[1]), (__pyx_v_dH->dimensions[2]), __pyx_v_speedEvalFlag, ((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_H->data), ((double *)__pyx_v_bc_dH->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->data));
33363  }
33364  __pyx_L3:;
33365 
33366  /* "cnumericalFlux.pyx":6450
33367  * <double*> fluxJacobian_exterior.data,
33368  * <double*> fluxJacobian_eb.data)
33369  * def calculateExteriorLesaintRaviartNumericalFlux(int speedEvalFlag, # <<<<<<<<<<<<<<
33370  * np.ndarray exteriorElementBoundaries,
33371  * np.ndarray elementBoundaryElements,
33372  */
33373 
33374  /* function exit code */
33375  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
33376  __Pyx_XGIVEREF(__pyx_r);
33377  __Pyx_RefNannyFinishContext();
33378  return __pyx_r;
33379 }
33380 
33381 /* "cnumericalFlux.pyx":6504
33382  * <double*> flux.data,
33383  * <double*> dflux.data)
33384  * def calculateGlobalExteriorLesaintRaviartNumericalFlux(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
33385  * int nQuadraturePoints_elementBoundary,
33386  * int nSpace,
33387  */
33388 
33389 /* Python wrapper */
33390 static PyObject *__pyx_pw_14cnumericalFlux_189calculateGlobalExteriorLesaintRaviartNumericalFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
33391 static PyMethodDef __pyx_mdef_14cnumericalFlux_189calculateGlobalExteriorLesaintRaviartNumericalFlux = {"calculateGlobalExteriorLesaintRaviartNumericalFlux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_189calculateGlobalExteriorLesaintRaviartNumericalFlux, METH_VARARGS|METH_KEYWORDS, 0};
33392 static PyObject *__pyx_pw_14cnumericalFlux_189calculateGlobalExteriorLesaintRaviartNumericalFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
33393  int __pyx_v_nExteriorElementBoundaries_global;
33394  int __pyx_v_nQuadraturePoints_elementBoundary;
33395  int __pyx_v_nSpace;
33396  int __pyx_v_speedEvalFlag;
33397  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
33398  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
33399  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
33400  PyArrayObject *__pyx_v_isDOFBoundary = 0;
33401  PyArrayObject *__pyx_v_inflowFlag = 0;
33402  PyArrayObject *__pyx_v_n = 0;
33403  PyArrayObject *__pyx_v_bc_u = 0;
33404  PyArrayObject *__pyx_v_bc_H = 0;
33405  PyArrayObject *__pyx_v_bc_dH = 0;
33406  PyArrayObject *__pyx_v_u = 0;
33407  PyArrayObject *__pyx_v_H = 0;
33408  PyArrayObject *__pyx_v_dH = 0;
33409  PyArrayObject *__pyx_v_flux = 0;
33410  PyArrayObject *__pyx_v_dflux = 0;
33411  int __pyx_lineno = 0;
33412  const char *__pyx_filename = NULL;
33413  int __pyx_clineno = 0;
33414  PyObject *__pyx_r = 0;
33415  __Pyx_RefNannyDeclarations
33416  __Pyx_RefNannySetupContext("calculateGlobalExteriorLesaintRaviartNumericalFlux (wrapper)", 0);
33417  {
33418  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nSpace,&__pyx_n_s_speedEvalFlag,&__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_H,&__pyx_n_s_bc_dH,&__pyx_n_s_u,&__pyx_n_s_H,&__pyx_n_s_dH,&__pyx_n_s_flux,&__pyx_n_s_dflux,0};
33419  PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
33420  if (unlikely(__pyx_kwds)) {
33421  Py_ssize_t kw_args;
33422  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
33423  switch (pos_args) {
33424  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
33425  CYTHON_FALLTHROUGH;
33426  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
33427  CYTHON_FALLTHROUGH;
33428  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
33429  CYTHON_FALLTHROUGH;
33430  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
33431  CYTHON_FALLTHROUGH;
33432  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
33433  CYTHON_FALLTHROUGH;
33434  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
33435  CYTHON_FALLTHROUGH;
33436  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
33437  CYTHON_FALLTHROUGH;
33438  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
33439  CYTHON_FALLTHROUGH;
33440  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
33441  CYTHON_FALLTHROUGH;
33442  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
33443  CYTHON_FALLTHROUGH;
33444  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
33445  CYTHON_FALLTHROUGH;
33446  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
33447  CYTHON_FALLTHROUGH;
33448  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
33449  CYTHON_FALLTHROUGH;
33450  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
33451  CYTHON_FALLTHROUGH;
33452  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
33453  CYTHON_FALLTHROUGH;
33454  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
33455  CYTHON_FALLTHROUGH;
33456  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33457  CYTHON_FALLTHROUGH;
33458  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33459  CYTHON_FALLTHROUGH;
33460  case 0: break;
33461  default: goto __pyx_L5_argtuple_error;
33462  }
33463  kw_args = PyDict_Size(__pyx_kwds);
33464  switch (pos_args) {
33465  case 0:
33466  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
33467  else goto __pyx_L5_argtuple_error;
33468  CYTHON_FALLTHROUGH;
33469  case 1:
33470  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
33471  else {
33472  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 1); __PYX_ERR(0, 6504, __pyx_L3_error)
33473  }
33474  CYTHON_FALLTHROUGH;
33475  case 2:
33476  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
33477  else {
33478  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 2); __PYX_ERR(0, 6504, __pyx_L3_error)
33479  }
33480  CYTHON_FALLTHROUGH;
33481  case 3:
33482  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_speedEvalFlag)) != 0)) kw_args--;
33483  else {
33484  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 3); __PYX_ERR(0, 6504, __pyx_L3_error)
33485  }
33486  CYTHON_FALLTHROUGH;
33487  case 4:
33488  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
33489  else {
33490  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 4); __PYX_ERR(0, 6504, __pyx_L3_error)
33491  }
33492  CYTHON_FALLTHROUGH;
33493  case 5:
33494  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
33495  else {
33496  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 5); __PYX_ERR(0, 6504, __pyx_L3_error)
33497  }
33498  CYTHON_FALLTHROUGH;
33499  case 6:
33500  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
33501  else {
33502  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 6); __PYX_ERR(0, 6504, __pyx_L3_error)
33503  }
33504  CYTHON_FALLTHROUGH;
33505  case 7:
33506  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
33507  else {
33508  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 7); __PYX_ERR(0, 6504, __pyx_L3_error)
33509  }
33510  CYTHON_FALLTHROUGH;
33511  case 8:
33512  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inflowFlag)) != 0)) kw_args--;
33513  else {
33514  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 8); __PYX_ERR(0, 6504, __pyx_L3_error)
33515  }
33516  CYTHON_FALLTHROUGH;
33517  case 9:
33518  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
33519  else {
33520  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 9); __PYX_ERR(0, 6504, __pyx_L3_error)
33521  }
33522  CYTHON_FALLTHROUGH;
33523  case 10:
33524  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_u)) != 0)) kw_args--;
33525  else {
33526  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 10); __PYX_ERR(0, 6504, __pyx_L3_error)
33527  }
33528  CYTHON_FALLTHROUGH;
33529  case 11:
33530  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_H)) != 0)) kw_args--;
33531  else {
33532  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 11); __PYX_ERR(0, 6504, __pyx_L3_error)
33533  }
33534  CYTHON_FALLTHROUGH;
33535  case 12:
33536  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_dH)) != 0)) kw_args--;
33537  else {
33538  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 12); __PYX_ERR(0, 6504, __pyx_L3_error)
33539  }
33540  CYTHON_FALLTHROUGH;
33541  case 13:
33542  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
33543  else {
33544  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 13); __PYX_ERR(0, 6504, __pyx_L3_error)
33545  }
33546  CYTHON_FALLTHROUGH;
33547  case 14:
33548  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_H)) != 0)) kw_args--;
33549  else {
33550  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 14); __PYX_ERR(0, 6504, __pyx_L3_error)
33551  }
33552  CYTHON_FALLTHROUGH;
33553  case 15:
33554  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dH)) != 0)) kw_args--;
33555  else {
33556  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 15); __PYX_ERR(0, 6504, __pyx_L3_error)
33557  }
33558  CYTHON_FALLTHROUGH;
33559  case 16:
33560  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux)) != 0)) kw_args--;
33561  else {
33562  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 16); __PYX_ERR(0, 6504, __pyx_L3_error)
33563  }
33564  CYTHON_FALLTHROUGH;
33565  case 17:
33566  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux)) != 0)) kw_args--;
33567  else {
33568  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, 17); __PYX_ERR(0, 6504, __pyx_L3_error)
33569  }
33570  }
33571  if (unlikely(kw_args > 0)) {
33572  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorLesaintRaviartNumericalFlux") < 0)) __PYX_ERR(0, 6504, __pyx_L3_error)
33573  }
33574  } else if (PyTuple_GET_SIZE(__pyx_args) != 18) {
33575  goto __pyx_L5_argtuple_error;
33576  } else {
33577  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33578  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33579  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
33580  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
33581  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
33582  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
33583  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
33584  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
33585  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
33586  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
33587  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
33588  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
33589  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
33590  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
33591  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
33592  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
33593  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
33594  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
33595  }
33596  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6504, __pyx_L3_error)
33597  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6505, __pyx_L3_error)
33598  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6506, __pyx_L3_error)
33599  __pyx_v_speedEvalFlag = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_speedEvalFlag == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6507, __pyx_L3_error)
33600  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[4]);
33601  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[5]);
33602  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[6]);
33603  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[7]);
33604  __pyx_v_inflowFlag = ((PyArrayObject *)values[8]);
33605  __pyx_v_n = ((PyArrayObject *)values[9]);
33606  __pyx_v_bc_u = ((PyArrayObject *)values[10]);
33607  __pyx_v_bc_H = ((PyArrayObject *)values[11]);
33608  __pyx_v_bc_dH = ((PyArrayObject *)values[12]);
33609  __pyx_v_u = ((PyArrayObject *)values[13]);
33610  __pyx_v_H = ((PyArrayObject *)values[14]);
33611  __pyx_v_dH = ((PyArrayObject *)values[15]);
33612  __pyx_v_flux = ((PyArrayObject *)values[16]);
33613  __pyx_v_dflux = ((PyArrayObject *)values[17]);
33614  }
33615  goto __pyx_L4_argument_unpacking_done;
33616  __pyx_L5_argtuple_error:;
33617  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorLesaintRaviartNumericalFlux", 1, 18, 18, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6504, __pyx_L3_error)
33618  __pyx_L3_error:;
33619  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorLesaintRaviartNumericalFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
33620  __Pyx_RefNannyFinishContext();
33621  return NULL;
33622  __pyx_L4_argument_unpacking_done:;
33623  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6508, __pyx_L1_error)
33624  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6509, __pyx_L1_error)
33625  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6510, __pyx_L1_error)
33626  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 6511, __pyx_L1_error)
33627  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inflowFlag), __pyx_ptype_5numpy_ndarray, 1, "inflowFlag", 0))) __PYX_ERR(0, 6512, __pyx_L1_error)
33628  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6513, __pyx_L1_error)
33629  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_u), __pyx_ptype_5numpy_ndarray, 1, "bc_u", 0))) __PYX_ERR(0, 6514, __pyx_L1_error)
33630  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_H), __pyx_ptype_5numpy_ndarray, 1, "bc_H", 0))) __PYX_ERR(0, 6515, __pyx_L1_error)
33631  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_dH), __pyx_ptype_5numpy_ndarray, 1, "bc_dH", 0))) __PYX_ERR(0, 6516, __pyx_L1_error)
33632  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 6517, __pyx_L1_error)
33633  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_H), __pyx_ptype_5numpy_ndarray, 1, "H", 0))) __PYX_ERR(0, 6518, __pyx_L1_error)
33634  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dH), __pyx_ptype_5numpy_ndarray, 1, "dH", 0))) __PYX_ERR(0, 6519, __pyx_L1_error)
33635  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 6520, __pyx_L1_error)
33636  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux), __pyx_ptype_5numpy_ndarray, 1, "dflux", 0))) __PYX_ERR(0, 6521, __pyx_L1_error)
33637  __pyx_r = __pyx_pf_14cnumericalFlux_188calculateGlobalExteriorLesaintRaviartNumericalFlux(__pyx_self, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __pyx_v_speedEvalFlag, __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_H, __pyx_v_bc_dH, __pyx_v_u, __pyx_v_H, __pyx_v_dH, __pyx_v_flux, __pyx_v_dflux);
33638 
33639  /* function exit code */
33640  goto __pyx_L0;
33641  __pyx_L1_error:;
33642  __pyx_r = NULL;
33643  __pyx_L0:;
33644  __Pyx_RefNannyFinishContext();
33645  return __pyx_r;
33646 }
33647 
33648 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) {
33649  PyObject *__pyx_r = NULL;
33650  __Pyx_RefNannyDeclarations
33651  __Pyx_RefNannySetupContext("calculateGlobalExteriorLesaintRaviartNumericalFlux", 0);
33652 
33653  /* "cnumericalFlux.pyx":6522
33654  * np.ndarray flux,
33655  * np.ndarray dflux):
33656  * ccalculateGlobalExteriorLesaintRaviartNumericalFlux( nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
33657  * nQuadraturePoints_elementBoundary,
33658  * nSpace,
33659  */
33660  calculateGlobalExteriorLesaintRaviartNumericalFlux(__pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nSpace, __pyx_v_speedEvalFlag, ((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_H->data), ((double *)__pyx_v_bc_dH->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->data));
33661 
33662  /* "cnumericalFlux.pyx":6504
33663  * <double*> flux.data,
33664  * <double*> dflux.data)
33665  * def calculateGlobalExteriorLesaintRaviartNumericalFlux(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
33666  * int nQuadraturePoints_elementBoundary,
33667  * int nSpace,
33668  */
33669 
33670  /* function exit code */
33671  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
33672  __Pyx_XGIVEREF(__pyx_r);
33673  __Pyx_RefNannyFinishContext();
33674  return __pyx_r;
33675 }
33676 
33677 /* "cnumericalFlux.pyx":6540
33678  * <double*> flux.data,
33679  * <double*> dflux.data)
33680  * def calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
33681  * np.ndarray elementBoundaryElements,
33682  * np.ndarray elementBoundaryLocalElementBoundaries,
33683  */
33684 
33685 /* Python wrapper */
33686 static PyObject *__pyx_pw_14cnumericalFlux_191calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
33687 static PyMethodDef __pyx_mdef_14cnumericalFlux_191calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC = {"calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_191calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC, METH_VARARGS|METH_KEYWORDS, 0};
33688 static PyObject *__pyx_pw_14cnumericalFlux_191calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
33689  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
33690  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
33691  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
33692  PyArrayObject *__pyx_v_isDOFBoundary_sw = 0;
33693  PyArrayObject *__pyx_v_isDOFBoundary_psiw = 0;
33694  PyArrayObject *__pyx_v_n = 0;
33695  PyArrayObject *__pyx_v_bc_sw = 0;
33696  PyArrayObject *__pyx_v_bc_psiw = 0;
33697  PyArrayObject *__pyx_v_bc_fw = 0;
33698  PyArrayObject *__pyx_v_bc_dfw_dsw = 0;
33699  PyArrayObject *__pyx_v_bc_dfw_dpsiw = 0;
33700  PyArrayObject *__pyx_v_bc_fn = 0;
33701  PyArrayObject *__pyx_v_bc_dfn_dsw = 0;
33702  PyArrayObject *__pyx_v_bc_dfn_dpsiw = 0;
33703  PyArrayObject *__pyx_v_sw = 0;
33704  PyArrayObject *__pyx_v_psiw = 0;
33705  PyArrayObject *__pyx_v_fw = 0;
33706  PyArrayObject *__pyx_v_dfw_dsw = 0;
33707  PyArrayObject *__pyx_v_dfw_dpsiw = 0;
33708  PyArrayObject *__pyx_v_fn = 0;
33709  PyArrayObject *__pyx_v_dfn_dsw = 0;
33710  PyArrayObject *__pyx_v_dfn_dpsiw = 0;
33711  PyArrayObject *__pyx_v_fluxw = 0;
33712  PyArrayObject *__pyx_v_dfluxw_dsw = 0;
33713  PyArrayObject *__pyx_v_dfluxw_dpsiw = 0;
33714  PyArrayObject *__pyx_v_fluxn = 0;
33715  PyArrayObject *__pyx_v_dfluxn_dsw = 0;
33716  PyArrayObject *__pyx_v_dfluxn_dpsiw = 0;
33717  int __pyx_lineno = 0;
33718  const char *__pyx_filename = NULL;
33719  int __pyx_clineno = 0;
33720  PyObject *__pyx_r = 0;
33721  __Pyx_RefNannyDeclarations
33722  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC (wrapper)", 0);
33723  {
33724  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_sw,&__pyx_n_s_isDOFBoundary_psiw,&__pyx_n_s_n,&__pyx_n_s_bc_sw,&__pyx_n_s_bc_psiw,&__pyx_n_s_bc_fw,&__pyx_n_s_bc_dfw_dsw,&__pyx_n_s_bc_dfw_dpsiw,&__pyx_n_s_bc_fn,&__pyx_n_s_bc_dfn_dsw,&__pyx_n_s_bc_dfn_dpsiw,&__pyx_n_s_sw,&__pyx_n_s_psiw,&__pyx_n_s_fw,&__pyx_n_s_dfw_dsw,&__pyx_n_s_dfw_dpsiw,&__pyx_n_s_fn,&__pyx_n_s_dfn_dsw,&__pyx_n_s_dfn_dpsiw,&__pyx_n_s_fluxw,&__pyx_n_s_dfluxw_dsw,&__pyx_n_s_dfluxw_dpsiw,&__pyx_n_s_fluxn,&__pyx_n_s_dfluxn_dsw,&__pyx_n_s_dfluxn_dpsiw,0};
33725  PyObject* values[28] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
33726  if (unlikely(__pyx_kwds)) {
33727  Py_ssize_t kw_args;
33728  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
33729  switch (pos_args) {
33730  case 28: values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
33731  CYTHON_FALLTHROUGH;
33732  case 27: values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
33733  CYTHON_FALLTHROUGH;
33734  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
33735  CYTHON_FALLTHROUGH;
33736  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
33737  CYTHON_FALLTHROUGH;
33738  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
33739  CYTHON_FALLTHROUGH;
33740  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
33741  CYTHON_FALLTHROUGH;
33742  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
33743  CYTHON_FALLTHROUGH;
33744  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
33745  CYTHON_FALLTHROUGH;
33746  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
33747  CYTHON_FALLTHROUGH;
33748  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
33749  CYTHON_FALLTHROUGH;
33750  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
33751  CYTHON_FALLTHROUGH;
33752  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
33753  CYTHON_FALLTHROUGH;
33754  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
33755  CYTHON_FALLTHROUGH;
33756  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
33757  CYTHON_FALLTHROUGH;
33758  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
33759  CYTHON_FALLTHROUGH;
33760  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
33761  CYTHON_FALLTHROUGH;
33762  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
33763  CYTHON_FALLTHROUGH;
33764  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
33765  CYTHON_FALLTHROUGH;
33766  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
33767  CYTHON_FALLTHROUGH;
33768  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
33769  CYTHON_FALLTHROUGH;
33770  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
33771  CYTHON_FALLTHROUGH;
33772  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
33773  CYTHON_FALLTHROUGH;
33774  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
33775  CYTHON_FALLTHROUGH;
33776  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
33777  CYTHON_FALLTHROUGH;
33778  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
33779  CYTHON_FALLTHROUGH;
33780  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
33781  CYTHON_FALLTHROUGH;
33782  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33783  CYTHON_FALLTHROUGH;
33784  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33785  CYTHON_FALLTHROUGH;
33786  case 0: break;
33787  default: goto __pyx_L5_argtuple_error;
33788  }
33789  kw_args = PyDict_Size(__pyx_kwds);
33790  switch (pos_args) {
33791  case 0:
33792  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
33793  else goto __pyx_L5_argtuple_error;
33794  CYTHON_FALLTHROUGH;
33795  case 1:
33796  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
33797  else {
33798  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 1); __PYX_ERR(0, 6540, __pyx_L3_error)
33799  }
33800  CYTHON_FALLTHROUGH;
33801  case 2:
33802  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
33803  else {
33804  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 2); __PYX_ERR(0, 6540, __pyx_L3_error)
33805  }
33806  CYTHON_FALLTHROUGH;
33807  case 3:
33808  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_sw)) != 0)) kw_args--;
33809  else {
33810  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 3); __PYX_ERR(0, 6540, __pyx_L3_error)
33811  }
33812  CYTHON_FALLTHROUGH;
33813  case 4:
33814  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_psiw)) != 0)) kw_args--;
33815  else {
33816  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 4); __PYX_ERR(0, 6540, __pyx_L3_error)
33817  }
33818  CYTHON_FALLTHROUGH;
33819  case 5:
33820  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
33821  else {
33822  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 5); __PYX_ERR(0, 6540, __pyx_L3_error)
33823  }
33824  CYTHON_FALLTHROUGH;
33825  case 6:
33826  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_sw)) != 0)) kw_args--;
33827  else {
33828  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 6); __PYX_ERR(0, 6540, __pyx_L3_error)
33829  }
33830  CYTHON_FALLTHROUGH;
33831  case 7:
33832  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psiw)) != 0)) kw_args--;
33833  else {
33834  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 7); __PYX_ERR(0, 6540, __pyx_L3_error)
33835  }
33836  CYTHON_FALLTHROUGH;
33837  case 8:
33838  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_fw)) != 0)) kw_args--;
33839  else {
33840  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 8); __PYX_ERR(0, 6540, __pyx_L3_error)
33841  }
33842  CYTHON_FALLTHROUGH;
33843  case 9:
33844  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_dfw_dsw)) != 0)) kw_args--;
33845  else {
33846  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 9); __PYX_ERR(0, 6540, __pyx_L3_error)
33847  }
33848  CYTHON_FALLTHROUGH;
33849  case 10:
33850  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_dfw_dpsiw)) != 0)) kw_args--;
33851  else {
33852  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 10); __PYX_ERR(0, 6540, __pyx_L3_error)
33853  }
33854  CYTHON_FALLTHROUGH;
33855  case 11:
33856  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_fn)) != 0)) kw_args--;
33857  else {
33858  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 11); __PYX_ERR(0, 6540, __pyx_L3_error)
33859  }
33860  CYTHON_FALLTHROUGH;
33861  case 12:
33862  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_dfn_dsw)) != 0)) kw_args--;
33863  else {
33864  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 12); __PYX_ERR(0, 6540, __pyx_L3_error)
33865  }
33866  CYTHON_FALLTHROUGH;
33867  case 13:
33868  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_dfn_dpsiw)) != 0)) kw_args--;
33869  else {
33870  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 13); __PYX_ERR(0, 6540, __pyx_L3_error)
33871  }
33872  CYTHON_FALLTHROUGH;
33873  case 14:
33874  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw)) != 0)) kw_args--;
33875  else {
33876  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 14); __PYX_ERR(0, 6540, __pyx_L3_error)
33877  }
33878  CYTHON_FALLTHROUGH;
33879  case 15:
33880  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psiw)) != 0)) kw_args--;
33881  else {
33882  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 15); __PYX_ERR(0, 6540, __pyx_L3_error)
33883  }
33884  CYTHON_FALLTHROUGH;
33885  case 16:
33886  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fw)) != 0)) kw_args--;
33887  else {
33888  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 16); __PYX_ERR(0, 6540, __pyx_L3_error)
33889  }
33890  CYTHON_FALLTHROUGH;
33891  case 17:
33892  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfw_dsw)) != 0)) kw_args--;
33893  else {
33894  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 17); __PYX_ERR(0, 6540, __pyx_L3_error)
33895  }
33896  CYTHON_FALLTHROUGH;
33897  case 18:
33898  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfw_dpsiw)) != 0)) kw_args--;
33899  else {
33900  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 18); __PYX_ERR(0, 6540, __pyx_L3_error)
33901  }
33902  CYTHON_FALLTHROUGH;
33903  case 19:
33904  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fn)) != 0)) kw_args--;
33905  else {
33906  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 19); __PYX_ERR(0, 6540, __pyx_L3_error)
33907  }
33908  CYTHON_FALLTHROUGH;
33909  case 20:
33910  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfn_dsw)) != 0)) kw_args--;
33911  else {
33912  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 20); __PYX_ERR(0, 6540, __pyx_L3_error)
33913  }
33914  CYTHON_FALLTHROUGH;
33915  case 21:
33916  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfn_dpsiw)) != 0)) kw_args--;
33917  else {
33918  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 21); __PYX_ERR(0, 6540, __pyx_L3_error)
33919  }
33920  CYTHON_FALLTHROUGH;
33921  case 22:
33922  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxw)) != 0)) kw_args--;
33923  else {
33924  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 22); __PYX_ERR(0, 6540, __pyx_L3_error)
33925  }
33926  CYTHON_FALLTHROUGH;
33927  case 23:
33928  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfluxw_dsw)) != 0)) kw_args--;
33929  else {
33930  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 23); __PYX_ERR(0, 6540, __pyx_L3_error)
33931  }
33932  CYTHON_FALLTHROUGH;
33933  case 24:
33934  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfluxw_dpsiw)) != 0)) kw_args--;
33935  else {
33936  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 24); __PYX_ERR(0, 6540, __pyx_L3_error)
33937  }
33938  CYTHON_FALLTHROUGH;
33939  case 25:
33940  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxn)) != 0)) kw_args--;
33941  else {
33942  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 25); __PYX_ERR(0, 6540, __pyx_L3_error)
33943  }
33944  CYTHON_FALLTHROUGH;
33945  case 26:
33946  if (likely((values[26] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfluxn_dsw)) != 0)) kw_args--;
33947  else {
33948  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 26); __PYX_ERR(0, 6540, __pyx_L3_error)
33949  }
33950  CYTHON_FALLTHROUGH;
33951  case 27:
33952  if (likely((values[27] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dfluxn_dpsiw)) != 0)) kw_args--;
33953  else {
33954  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, 27); __PYX_ERR(0, 6540, __pyx_L3_error)
33955  }
33956  }
33957  if (unlikely(kw_args > 0)) {
33958  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC") < 0)) __PYX_ERR(0, 6540, __pyx_L3_error)
33959  }
33960  } else if (PyTuple_GET_SIZE(__pyx_args) != 28) {
33961  goto __pyx_L5_argtuple_error;
33962  } else {
33963  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
33964  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
33965  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
33966  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
33967  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
33968  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
33969  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
33970  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
33971  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
33972  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
33973  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
33974  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
33975  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
33976  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
33977  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
33978  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
33979  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
33980  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
33981  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
33982  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
33983  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
33984  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
33985  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
33986  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
33987  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
33988  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
33989  values[26] = PyTuple_GET_ITEM(__pyx_args, 26);
33990  values[27] = PyTuple_GET_ITEM(__pyx_args, 27);
33991  }
33992  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
33993  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
33994  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
33995  __pyx_v_isDOFBoundary_sw = ((PyArrayObject *)values[3]);
33996  __pyx_v_isDOFBoundary_psiw = ((PyArrayObject *)values[4]);
33997  __pyx_v_n = ((PyArrayObject *)values[5]);
33998  __pyx_v_bc_sw = ((PyArrayObject *)values[6]);
33999  __pyx_v_bc_psiw = ((PyArrayObject *)values[7]);
34000  __pyx_v_bc_fw = ((PyArrayObject *)values[8]);
34001  __pyx_v_bc_dfw_dsw = ((PyArrayObject *)values[9]);
34002  __pyx_v_bc_dfw_dpsiw = ((PyArrayObject *)values[10]);
34003  __pyx_v_bc_fn = ((PyArrayObject *)values[11]);
34004  __pyx_v_bc_dfn_dsw = ((PyArrayObject *)values[12]);
34005  __pyx_v_bc_dfn_dpsiw = ((PyArrayObject *)values[13]);
34006  __pyx_v_sw = ((PyArrayObject *)values[14]);
34007  __pyx_v_psiw = ((PyArrayObject *)values[15]);
34008  __pyx_v_fw = ((PyArrayObject *)values[16]);
34009  __pyx_v_dfw_dsw = ((PyArrayObject *)values[17]);
34010  __pyx_v_dfw_dpsiw = ((PyArrayObject *)values[18]);
34011  __pyx_v_fn = ((PyArrayObject *)values[19]);
34012  __pyx_v_dfn_dsw = ((PyArrayObject *)values[20]);
34013  __pyx_v_dfn_dpsiw = ((PyArrayObject *)values[21]);
34014  __pyx_v_fluxw = ((PyArrayObject *)values[22]);
34015  __pyx_v_dfluxw_dsw = ((PyArrayObject *)values[23]);
34016  __pyx_v_dfluxw_dpsiw = ((PyArrayObject *)values[24]);
34017  __pyx_v_fluxn = ((PyArrayObject *)values[25]);
34018  __pyx_v_dfluxn_dsw = ((PyArrayObject *)values[26]);
34019  __pyx_v_dfluxn_dpsiw = ((PyArrayObject *)values[27]);
34020  }
34021  goto __pyx_L4_argument_unpacking_done;
34022  __pyx_L5_argtuple_error:;
34023  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 1, 28, 28, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6540, __pyx_L3_error)
34024  __pyx_L3_error:;
34025  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", __pyx_clineno, __pyx_lineno, __pyx_filename);
34026  __Pyx_RefNannyFinishContext();
34027  return NULL;
34028  __pyx_L4_argument_unpacking_done:;
34029  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6540, __pyx_L1_error)
34030  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6541, __pyx_L1_error)
34031  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6542, __pyx_L1_error)
34032  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_sw), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_sw", 0))) __PYX_ERR(0, 6543, __pyx_L1_error)
34033  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_psiw), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_psiw", 0))) __PYX_ERR(0, 6544, __pyx_L1_error)
34034  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6545, __pyx_L1_error)
34035  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_sw), __pyx_ptype_5numpy_ndarray, 1, "bc_sw", 0))) __PYX_ERR(0, 6546, __pyx_L1_error)
34036  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psiw), __pyx_ptype_5numpy_ndarray, 1, "bc_psiw", 0))) __PYX_ERR(0, 6547, __pyx_L1_error)
34037  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_fw), __pyx_ptype_5numpy_ndarray, 1, "bc_fw", 0))) __PYX_ERR(0, 6548, __pyx_L1_error)
34038  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_dfw_dsw), __pyx_ptype_5numpy_ndarray, 1, "bc_dfw_dsw", 0))) __PYX_ERR(0, 6549, __pyx_L1_error)
34039  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_dfw_dpsiw), __pyx_ptype_5numpy_ndarray, 1, "bc_dfw_dpsiw", 0))) __PYX_ERR(0, 6550, __pyx_L1_error)
34040  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_fn), __pyx_ptype_5numpy_ndarray, 1, "bc_fn", 0))) __PYX_ERR(0, 6551, __pyx_L1_error)
34041  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_dfn_dsw), __pyx_ptype_5numpy_ndarray, 1, "bc_dfn_dsw", 0))) __PYX_ERR(0, 6552, __pyx_L1_error)
34042  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_dfn_dpsiw), __pyx_ptype_5numpy_ndarray, 1, "bc_dfn_dpsiw", 0))) __PYX_ERR(0, 6553, __pyx_L1_error)
34043  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sw), __pyx_ptype_5numpy_ndarray, 1, "sw", 0))) __PYX_ERR(0, 6554, __pyx_L1_error)
34044  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psiw), __pyx_ptype_5numpy_ndarray, 1, "psiw", 0))) __PYX_ERR(0, 6555, __pyx_L1_error)
34045  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fw), __pyx_ptype_5numpy_ndarray, 1, "fw", 0))) __PYX_ERR(0, 6556, __pyx_L1_error)
34046  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfw_dsw), __pyx_ptype_5numpy_ndarray, 1, "dfw_dsw", 0))) __PYX_ERR(0, 6557, __pyx_L1_error)
34047  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfw_dpsiw), __pyx_ptype_5numpy_ndarray, 1, "dfw_dpsiw", 0))) __PYX_ERR(0, 6558, __pyx_L1_error)
34048  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fn), __pyx_ptype_5numpy_ndarray, 1, "fn", 0))) __PYX_ERR(0, 6559, __pyx_L1_error)
34049  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfn_dsw), __pyx_ptype_5numpy_ndarray, 1, "dfn_dsw", 0))) __PYX_ERR(0, 6560, __pyx_L1_error)
34050  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfn_dpsiw), __pyx_ptype_5numpy_ndarray, 1, "dfn_dpsiw", 0))) __PYX_ERR(0, 6561, __pyx_L1_error)
34051  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxw), __pyx_ptype_5numpy_ndarray, 1, "fluxw", 0))) __PYX_ERR(0, 6562, __pyx_L1_error)
34052  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfluxw_dsw), __pyx_ptype_5numpy_ndarray, 1, "dfluxw_dsw", 0))) __PYX_ERR(0, 6563, __pyx_L1_error)
34053  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfluxw_dpsiw), __pyx_ptype_5numpy_ndarray, 1, "dfluxw_dpsiw", 0))) __PYX_ERR(0, 6564, __pyx_L1_error)
34054  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxn), __pyx_ptype_5numpy_ndarray, 1, "fluxn", 0))) __PYX_ERR(0, 6565, __pyx_L1_error)
34055  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfluxn_dsw), __pyx_ptype_5numpy_ndarray, 1, "dfluxn_dsw", 0))) __PYX_ERR(0, 6566, __pyx_L1_error)
34056  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dfluxn_dpsiw), __pyx_ptype_5numpy_ndarray, 1, "dfluxn_dpsiw", 0))) __PYX_ERR(0, 6567, __pyx_L1_error)
34057  __pyx_r = __pyx_pf_14cnumericalFlux_190calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_sw, __pyx_v_isDOFBoundary_psiw, __pyx_v_n, __pyx_v_bc_sw, __pyx_v_bc_psiw, __pyx_v_bc_fw, __pyx_v_bc_dfw_dsw, __pyx_v_bc_dfw_dpsiw, __pyx_v_bc_fn, __pyx_v_bc_dfn_dsw, __pyx_v_bc_dfn_dpsiw, __pyx_v_sw, __pyx_v_psiw, __pyx_v_fw, __pyx_v_dfw_dsw, __pyx_v_dfw_dpsiw, __pyx_v_fn, __pyx_v_dfn_dsw, __pyx_v_dfn_dpsiw, __pyx_v_fluxw, __pyx_v_dfluxw_dsw, __pyx_v_dfluxw_dpsiw, __pyx_v_fluxn, __pyx_v_dfluxn_dsw, __pyx_v_dfluxn_dpsiw);
34058 
34059  /* function exit code */
34060  goto __pyx_L0;
34061  __pyx_L1_error:;
34062  __pyx_r = NULL;
34063  __pyx_L0:;
34064  __Pyx_RefNannyFinishContext();
34065  return __pyx_r;
34066 }
34067 
34068 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) {
34069  PyObject *__pyx_r = NULL;
34070  __Pyx_RefNannyDeclarations
34071  int __pyx_t_1;
34072  PyObject *__pyx_t_2 = NULL;
34073  PyObject *__pyx_t_3 = NULL;
34074  PyObject *__pyx_t_4 = NULL;
34075  int __pyx_lineno = 0;
34076  const char *__pyx_filename = NULL;
34077  int __pyx_clineno = 0;
34078  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", 0);
34079 
34080  /* "cnumericalFlux.pyx":6568
34081  * np.ndarray dfluxn_dsw,
34082  * np.ndarray dfluxn_dpsiw):
34083  * if fw.ndim == 3: # <<<<<<<<<<<<<<
34084  * ccalculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC(exteriorElementBoundaries.shape[0],
34085  * fw.shape[1],
34086  */
34087  __pyx_t_1 = ((__pyx_v_fw->nd == 3) != 0);
34088  if (__pyx_t_1) {
34089 
34090  /* "cnumericalFlux.pyx":6569
34091  * np.ndarray dfluxn_dpsiw):
34092  * if fw.ndim == 3:
34093  * ccalculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
34094  * fw.shape[1],
34095  * fw.shape[2],
34096  */
34097  calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_fw->dimensions[1]), (__pyx_v_fw->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_sw->data), ((int *)__pyx_v_isDOFBoundary_psiw->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_sw->data), ((double *)__pyx_v_bc_psiw->data), ((double *)__pyx_v_bc_fw->data), ((double *)__pyx_v_bc_dfw_dsw->data), ((double *)__pyx_v_bc_dfw_dpsiw->data), ((double *)__pyx_v_bc_fn->data), ((double *)__pyx_v_bc_dfn_dsw->data), ((double *)__pyx_v_bc_dfn_dpsiw->data), ((double *)__pyx_v_sw->data), ((double *)__pyx_v_psiw->data), ((double *)__pyx_v_fw->data), ((double *)__pyx_v_dfw_dsw->data), ((double *)__pyx_v_dfw_dpsiw->data), ((double *)__pyx_v_fn->data), ((double *)__pyx_v_dfn_dsw->data), ((double *)__pyx_v_dfn_dpsiw->data), ((double *)__pyx_v_fluxw->data), ((double *)__pyx_v_dfluxw_dsw->data), ((double *)__pyx_v_dfluxw_dpsiw->data), ((double *)__pyx_v_fluxn->data), ((double *)__pyx_v_dfluxn_dsw->data), ((double *)__pyx_v_dfluxn_dpsiw->data));
34098 
34099  /* "cnumericalFlux.pyx":6568
34100  * np.ndarray dfluxn_dsw,
34101  * np.ndarray dfluxn_dpsiw):
34102  * if fw.ndim == 3: # <<<<<<<<<<<<<<
34103  * ccalculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC(exteriorElementBoundaries.shape[0],
34104  * fw.shape[1],
34105  */
34106  goto __pyx_L3;
34107  }
34108 
34109  /* "cnumericalFlux.pyx":6601
34110  * <double*> dfluxn_dpsiw.data)
34111  * else:
34112  * exit(1) # <<<<<<<<<<<<<<
34113  * def calculateGlobalExteriorNumericalFluxDarcySplitPressure(np.ndarray exteriorElementBoundaries,
34114  * np.ndarray elementBoundaryElements,
34115  */
34116  /*else*/ {
34117  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6601, __pyx_L1_error)
34118  __Pyx_GOTREF(__pyx_t_3);
34119  __pyx_t_4 = NULL;
34120  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
34121  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
34122  if (likely(__pyx_t_4)) {
34123  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
34124  __Pyx_INCREF(__pyx_t_4);
34125  __Pyx_INCREF(function);
34126  __Pyx_DECREF_SET(__pyx_t_3, function);
34127  }
34128  }
34129  __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_int_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_1);
34130  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
34131  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6601, __pyx_L1_error)
34132  __Pyx_GOTREF(__pyx_t_2);
34133  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
34134  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
34135  }
34136  __pyx_L3:;
34137 
34138  /* "cnumericalFlux.pyx":6540
34139  * <double*> flux.data,
34140  * <double*> dflux.data)
34141  * def calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
34142  * np.ndarray elementBoundaryElements,
34143  * np.ndarray elementBoundaryLocalElementBoundaries,
34144  */
34145 
34146  /* function exit code */
34147  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
34148  goto __pyx_L0;
34149  __pyx_L1_error:;
34150  __Pyx_XDECREF(__pyx_t_2);
34151  __Pyx_XDECREF(__pyx_t_3);
34152  __Pyx_XDECREF(__pyx_t_4);
34153  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC", __pyx_clineno, __pyx_lineno, __pyx_filename);
34154  __pyx_r = NULL;
34155  __pyx_L0:;
34156  __Pyx_XGIVEREF(__pyx_r);
34157  __Pyx_RefNannyFinishContext();
34158  return __pyx_r;
34159 }
34160 
34161 /* "cnumericalFlux.pyx":6602
34162  * else:
34163  * exit(1)
34164  * def calculateGlobalExteriorNumericalFluxDarcySplitPressure(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
34165  * np.ndarray elementBoundaryElements,
34166  * np.ndarray elementBoundaryLocalElementBoundaries,
34167  */
34168 
34169 /* Python wrapper */
34170 static PyObject *__pyx_pw_14cnumericalFlux_193calculateGlobalExteriorNumericalFluxDarcySplitPressure(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
34171 static PyMethodDef __pyx_mdef_14cnumericalFlux_193calculateGlobalExteriorNumericalFluxDarcySplitPressure = {"calculateGlobalExteriorNumericalFluxDarcySplitPressure", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_193calculateGlobalExteriorNumericalFluxDarcySplitPressure, METH_VARARGS|METH_KEYWORDS, 0};
34172 static PyObject *__pyx_pw_14cnumericalFlux_193calculateGlobalExteriorNumericalFluxDarcySplitPressure(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
34173  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
34174  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
34175  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
34176  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
34177  PyArrayObject *__pyx_v_n = 0;
34178  PyArrayObject *__pyx_v_bc_a = 0;
34179  PyArrayObject *__pyx_v_bc_grad_phi = 0;
34180  PyArrayObject *__pyx_v_bc_psi_w = 0;
34181  PyArrayObject *__pyx_v_bc_psi_n = 0;
34182  PyArrayObject *__pyx_v_a = 0;
34183  PyArrayObject *__pyx_v_grad_phi = 0;
34184  PyArrayObject *__pyx_v_psi_w = 0;
34185  PyArrayObject *__pyx_v_psi_n = 0;
34186  PyArrayObject *__pyx_v_penalty = 0;
34187  PyArrayObject *__pyx_v_diffusiveFlux = 0;
34188  int __pyx_lineno = 0;
34189  const char *__pyx_filename = NULL;
34190  int __pyx_clineno = 0;
34191  PyObject *__pyx_r = 0;
34192  __Pyx_RefNannyDeclarations
34193  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcySplitPressure (wrapper)", 0);
34194  {
34195  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_n,&__pyx_n_s_bc_a,&__pyx_n_s_bc_grad_phi,&__pyx_n_s_bc_psi_w,&__pyx_n_s_bc_psi_n,&__pyx_n_s_a,&__pyx_n_s_grad_phi,&__pyx_n_s_psi_w,&__pyx_n_s_psi_n,&__pyx_n_s_penalty,&__pyx_n_s_diffusiveFlux,0};
34196  PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
34197  if (unlikely(__pyx_kwds)) {
34198  Py_ssize_t kw_args;
34199  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
34200  switch (pos_args) {
34201  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
34202  CYTHON_FALLTHROUGH;
34203  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
34204  CYTHON_FALLTHROUGH;
34205  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
34206  CYTHON_FALLTHROUGH;
34207  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
34208  CYTHON_FALLTHROUGH;
34209  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
34210  CYTHON_FALLTHROUGH;
34211  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
34212  CYTHON_FALLTHROUGH;
34213  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
34214  CYTHON_FALLTHROUGH;
34215  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
34216  CYTHON_FALLTHROUGH;
34217  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
34218  CYTHON_FALLTHROUGH;
34219  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
34220  CYTHON_FALLTHROUGH;
34221  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
34222  CYTHON_FALLTHROUGH;
34223  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
34224  CYTHON_FALLTHROUGH;
34225  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
34226  CYTHON_FALLTHROUGH;
34227  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
34228  CYTHON_FALLTHROUGH;
34229  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
34230  CYTHON_FALLTHROUGH;
34231  case 0: break;
34232  default: goto __pyx_L5_argtuple_error;
34233  }
34234  kw_args = PyDict_Size(__pyx_kwds);
34235  switch (pos_args) {
34236  case 0:
34237  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
34238  else goto __pyx_L5_argtuple_error;
34239  CYTHON_FALLTHROUGH;
34240  case 1:
34241  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
34242  else {
34243  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, 1); __PYX_ERR(0, 6602, __pyx_L3_error)
34244  }
34245  CYTHON_FALLTHROUGH;
34246  case 2:
34247  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
34248  else {
34249  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, 2); __PYX_ERR(0, 6602, __pyx_L3_error)
34250  }
34251  CYTHON_FALLTHROUGH;
34252  case 3:
34253  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
34254  else {
34255  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, 3); __PYX_ERR(0, 6602, __pyx_L3_error)
34256  }
34257  CYTHON_FALLTHROUGH;
34258  case 4:
34259  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
34260  else {
34261  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, 4); __PYX_ERR(0, 6602, __pyx_L3_error)
34262  }
34263  CYTHON_FALLTHROUGH;
34264  case 5:
34265  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a)) != 0)) kw_args--;
34266  else {
34267  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, 5); __PYX_ERR(0, 6602, __pyx_L3_error)
34268  }
34269  CYTHON_FALLTHROUGH;
34270  case 6:
34271  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi)) != 0)) kw_args--;
34272  else {
34273  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, 6); __PYX_ERR(0, 6602, __pyx_L3_error)
34274  }
34275  CYTHON_FALLTHROUGH;
34276  case 7:
34277  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psi_w)) != 0)) kw_args--;
34278  else {
34279  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, 7); __PYX_ERR(0, 6602, __pyx_L3_error)
34280  }
34281  CYTHON_FALLTHROUGH;
34282  case 8:
34283  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psi_n)) != 0)) kw_args--;
34284  else {
34285  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, 8); __PYX_ERR(0, 6602, __pyx_L3_error)
34286  }
34287  CYTHON_FALLTHROUGH;
34288  case 9:
34289  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
34290  else {
34291  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, 9); __PYX_ERR(0, 6602, __pyx_L3_error)
34292  }
34293  CYTHON_FALLTHROUGH;
34294  case 10:
34295  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
34296  else {
34297  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, 10); __PYX_ERR(0, 6602, __pyx_L3_error)
34298  }
34299  CYTHON_FALLTHROUGH;
34300  case 11:
34301  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_w)) != 0)) kw_args--;
34302  else {
34303  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, 11); __PYX_ERR(0, 6602, __pyx_L3_error)
34304  }
34305  CYTHON_FALLTHROUGH;
34306  case 12:
34307  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_n)) != 0)) kw_args--;
34308  else {
34309  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, 12); __PYX_ERR(0, 6602, __pyx_L3_error)
34310  }
34311  CYTHON_FALLTHROUGH;
34312  case 13:
34313  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
34314  else {
34315  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, 13); __PYX_ERR(0, 6602, __pyx_L3_error)
34316  }
34317  CYTHON_FALLTHROUGH;
34318  case 14:
34319  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux)) != 0)) kw_args--;
34320  else {
34321  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, 14); __PYX_ERR(0, 6602, __pyx_L3_error)
34322  }
34323  }
34324  if (unlikely(kw_args > 0)) {
34325  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalFluxDarcySplitPressure") < 0)) __PYX_ERR(0, 6602, __pyx_L3_error)
34326  }
34327  } else if (PyTuple_GET_SIZE(__pyx_args) != 15) {
34328  goto __pyx_L5_argtuple_error;
34329  } else {
34330  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
34331  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
34332  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
34333  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
34334  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
34335  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
34336  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
34337  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
34338  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
34339  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
34340  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
34341  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
34342  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
34343  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
34344  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
34345  }
34346  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
34347  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
34348  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
34349  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[3]);
34350  __pyx_v_n = ((PyArrayObject *)values[4]);
34351  __pyx_v_bc_a = ((PyArrayObject *)values[5]);
34352  __pyx_v_bc_grad_phi = ((PyArrayObject *)values[6]);
34353  __pyx_v_bc_psi_w = ((PyArrayObject *)values[7]);
34354  __pyx_v_bc_psi_n = ((PyArrayObject *)values[8]);
34355  __pyx_v_a = ((PyArrayObject *)values[9]);
34356  __pyx_v_grad_phi = ((PyArrayObject *)values[10]);
34357  __pyx_v_psi_w = ((PyArrayObject *)values[11]);
34358  __pyx_v_psi_n = ((PyArrayObject *)values[12]);
34359  __pyx_v_penalty = ((PyArrayObject *)values[13]);
34360  __pyx_v_diffusiveFlux = ((PyArrayObject *)values[14]);
34361  }
34362  goto __pyx_L4_argument_unpacking_done;
34363  __pyx_L5_argtuple_error:;
34364  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 1, 15, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6602, __pyx_L3_error)
34365  __pyx_L3_error:;
34366  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcySplitPressure", __pyx_clineno, __pyx_lineno, __pyx_filename);
34367  __Pyx_RefNannyFinishContext();
34368  return NULL;
34369  __pyx_L4_argument_unpacking_done:;
34370  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6602, __pyx_L1_error)
34371  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6603, __pyx_L1_error)
34372  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6604, __pyx_L1_error)
34373  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 6605, __pyx_L1_error)
34374  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6606, __pyx_L1_error)
34375  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a), __pyx_ptype_5numpy_ndarray, 1, "bc_a", 0))) __PYX_ERR(0, 6607, __pyx_L1_error)
34376  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi", 0))) __PYX_ERR(0, 6608, __pyx_L1_error)
34377  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psi_w), __pyx_ptype_5numpy_ndarray, 1, "bc_psi_w", 0))) __PYX_ERR(0, 6609, __pyx_L1_error)
34378  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psi_n), __pyx_ptype_5numpy_ndarray, 1, "bc_psi_n", 0))) __PYX_ERR(0, 6610, __pyx_L1_error)
34379  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 6611, __pyx_L1_error)
34380  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 6612, __pyx_L1_error)
34381  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_w), __pyx_ptype_5numpy_ndarray, 1, "psi_w", 0))) __PYX_ERR(0, 6613, __pyx_L1_error)
34382  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_n), __pyx_ptype_5numpy_ndarray, 1, "psi_n", 0))) __PYX_ERR(0, 6614, __pyx_L1_error)
34383  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 6615, __pyx_L1_error)
34384  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux", 0))) __PYX_ERR(0, 6616, __pyx_L1_error)
34385  __pyx_r = __pyx_pf_14cnumericalFlux_192calculateGlobalExteriorNumericalFluxDarcySplitPressure(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_u, __pyx_v_n, __pyx_v_bc_a, __pyx_v_bc_grad_phi, __pyx_v_bc_psi_w, __pyx_v_bc_psi_n, __pyx_v_a, __pyx_v_grad_phi, __pyx_v_psi_w, __pyx_v_psi_n, __pyx_v_penalty, __pyx_v_diffusiveFlux);
34386 
34387  /* function exit code */
34388  goto __pyx_L0;
34389  __pyx_L1_error:;
34390  __pyx_r = NULL;
34391  __pyx_L0:;
34392  __Pyx_RefNannyFinishContext();
34393  return __pyx_r;
34394 }
34395 
34396 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) {
34397  PyObject *__pyx_r = NULL;
34398  __Pyx_RefNannyDeclarations
34399  int __pyx_t_1;
34400  PyObject *__pyx_t_2 = NULL;
34401  PyObject *__pyx_t_3 = NULL;
34402  PyObject *__pyx_t_4 = NULL;
34403  int __pyx_lineno = 0;
34404  const char *__pyx_filename = NULL;
34405  int __pyx_clineno = 0;
34406  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcySplitPressure", 0);
34407 
34408  /* "cnumericalFlux.pyx":6617
34409  * np.ndarray penalty,
34410  * np.ndarray diffusiveFlux):
34411  * if grad_phi.ndim == 3: # <<<<<<<<<<<<<<
34412  * ccalculateGlobalExteriorNumericalFluxDarcySplitPressure(exteriorElementBoundaries.shape[0],
34413  * grad_phi.shape[1],
34414  */
34415  __pyx_t_1 = ((__pyx_v_grad_phi->nd == 3) != 0);
34416  if (__pyx_t_1) {
34417 
34418  /* "cnumericalFlux.pyx":6618
34419  * np.ndarray diffusiveFlux):
34420  * if grad_phi.ndim == 3:
34421  * ccalculateGlobalExteriorNumericalFluxDarcySplitPressure(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
34422  * grad_phi.shape[1],
34423  * grad_phi.shape[2],
34424  */
34425  calculateGlobalExteriorNumericalFluxDarcySplitPressure((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_phi->dimensions[1]), (__pyx_v_grad_phi->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_psi_w->data), ((double *)__pyx_v_bc_psi_n->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_grad_phi->data), ((double *)__pyx_v_psi_w->data), ((double *)__pyx_v_psi_n->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_diffusiveFlux->data));
34426 
34427  /* "cnumericalFlux.pyx":6617
34428  * np.ndarray penalty,
34429  * np.ndarray diffusiveFlux):
34430  * if grad_phi.ndim == 3: # <<<<<<<<<<<<<<
34431  * ccalculateGlobalExteriorNumericalFluxDarcySplitPressure(exteriorElementBoundaries.shape[0],
34432  * grad_phi.shape[1],
34433  */
34434  goto __pyx_L3;
34435  }
34436 
34437  /* "cnumericalFlux.pyx":6637
34438  * <double*> diffusiveFlux.data)
34439  * else:
34440  * exit(1) # <<<<<<<<<<<<<<
34441  * def calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(np.ndarray rowptr,
34442  * np.ndarray colind,
34443  */
34444  /*else*/ {
34445  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6637, __pyx_L1_error)
34446  __Pyx_GOTREF(__pyx_t_3);
34447  __pyx_t_4 = NULL;
34448  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
34449  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
34450  if (likely(__pyx_t_4)) {
34451  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
34452  __Pyx_INCREF(__pyx_t_4);
34453  __Pyx_INCREF(function);
34454  __Pyx_DECREF_SET(__pyx_t_3, function);
34455  }
34456  }
34457  __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_int_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_1);
34458  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
34459  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6637, __pyx_L1_error)
34460  __Pyx_GOTREF(__pyx_t_2);
34461  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
34462  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
34463  }
34464  __pyx_L3:;
34465 
34466  /* "cnumericalFlux.pyx":6602
34467  * else:
34468  * exit(1)
34469  * def calculateGlobalExteriorNumericalFluxDarcySplitPressure(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
34470  * np.ndarray elementBoundaryElements,
34471  * np.ndarray elementBoundaryLocalElementBoundaries,
34472  */
34473 
34474  /* function exit code */
34475  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
34476  goto __pyx_L0;
34477  __pyx_L1_error:;
34478  __Pyx_XDECREF(__pyx_t_2);
34479  __Pyx_XDECREF(__pyx_t_3);
34480  __Pyx_XDECREF(__pyx_t_4);
34481  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcySplitPressure", __pyx_clineno, __pyx_lineno, __pyx_filename);
34482  __pyx_r = NULL;
34483  __pyx_L0:;
34484  __Pyx_XGIVEREF(__pyx_r);
34485  __Pyx_RefNannyFinishContext();
34486  return __pyx_r;
34487 }
34488 
34489 /* "cnumericalFlux.pyx":6638
34490  * else:
34491  * exit(1)
34492  * def calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
34493  * np.ndarray colind,
34494  * np.ndarray exteriorElementBoundaries,
34495  */
34496 
34497 /* Python wrapper */
34498 static PyObject *__pyx_pw_14cnumericalFlux_195calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
34499 static PyMethodDef __pyx_mdef_14cnumericalFlux_195calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd = {"calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_195calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd, METH_VARARGS|METH_KEYWORDS, 0};
34500 static PyObject *__pyx_pw_14cnumericalFlux_195calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
34501  PyArrayObject *__pyx_v_rowptr = 0;
34502  PyArrayObject *__pyx_v_colind = 0;
34503  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
34504  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
34505  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
34506  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
34507  PyArrayObject *__pyx_v_n = 0;
34508  PyArrayObject *__pyx_v_bc_a = 0;
34509  PyArrayObject *__pyx_v_bc_grad_phi = 0;
34510  PyArrayObject *__pyx_v_bc_psi_w = 0;
34511  PyArrayObject *__pyx_v_bc_psi_n = 0;
34512  PyArrayObject *__pyx_v_a = 0;
34513  PyArrayObject *__pyx_v_grad_phi = 0;
34514  PyArrayObject *__pyx_v_psi_w = 0;
34515  PyArrayObject *__pyx_v_psi_n = 0;
34516  PyArrayObject *__pyx_v_penalty = 0;
34517  PyArrayObject *__pyx_v_diffusiveFlux = 0;
34518  int __pyx_lineno = 0;
34519  const char *__pyx_filename = NULL;
34520  int __pyx_clineno = 0;
34521  PyObject *__pyx_r = 0;
34522  __Pyx_RefNannyDeclarations
34523  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd (wrapper)", 0);
34524  {
34525  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_n,&__pyx_n_s_bc_a,&__pyx_n_s_bc_grad_phi,&__pyx_n_s_bc_psi_w,&__pyx_n_s_bc_psi_n,&__pyx_n_s_a,&__pyx_n_s_grad_phi,&__pyx_n_s_psi_w,&__pyx_n_s_psi_n,&__pyx_n_s_penalty,&__pyx_n_s_diffusiveFlux,0};
34526  PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
34527  if (unlikely(__pyx_kwds)) {
34528  Py_ssize_t kw_args;
34529  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
34530  switch (pos_args) {
34531  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
34532  CYTHON_FALLTHROUGH;
34533  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
34534  CYTHON_FALLTHROUGH;
34535  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
34536  CYTHON_FALLTHROUGH;
34537  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
34538  CYTHON_FALLTHROUGH;
34539  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
34540  CYTHON_FALLTHROUGH;
34541  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
34542  CYTHON_FALLTHROUGH;
34543  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
34544  CYTHON_FALLTHROUGH;
34545  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
34546  CYTHON_FALLTHROUGH;
34547  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
34548  CYTHON_FALLTHROUGH;
34549  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
34550  CYTHON_FALLTHROUGH;
34551  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
34552  CYTHON_FALLTHROUGH;
34553  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
34554  CYTHON_FALLTHROUGH;
34555  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
34556  CYTHON_FALLTHROUGH;
34557  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
34558  CYTHON_FALLTHROUGH;
34559  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
34560  CYTHON_FALLTHROUGH;
34561  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
34562  CYTHON_FALLTHROUGH;
34563  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
34564  CYTHON_FALLTHROUGH;
34565  case 0: break;
34566  default: goto __pyx_L5_argtuple_error;
34567  }
34568  kw_args = PyDict_Size(__pyx_kwds);
34569  switch (pos_args) {
34570  case 0:
34571  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
34572  else goto __pyx_L5_argtuple_error;
34573  CYTHON_FALLTHROUGH;
34574  case 1:
34575  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
34576  else {
34577  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 1); __PYX_ERR(0, 6638, __pyx_L3_error)
34578  }
34579  CYTHON_FALLTHROUGH;
34580  case 2:
34581  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
34582  else {
34583  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 2); __PYX_ERR(0, 6638, __pyx_L3_error)
34584  }
34585  CYTHON_FALLTHROUGH;
34586  case 3:
34587  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
34588  else {
34589  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 3); __PYX_ERR(0, 6638, __pyx_L3_error)
34590  }
34591  CYTHON_FALLTHROUGH;
34592  case 4:
34593  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
34594  else {
34595  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 4); __PYX_ERR(0, 6638, __pyx_L3_error)
34596  }
34597  CYTHON_FALLTHROUGH;
34598  case 5:
34599  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
34600  else {
34601  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 5); __PYX_ERR(0, 6638, __pyx_L3_error)
34602  }
34603  CYTHON_FALLTHROUGH;
34604  case 6:
34605  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
34606  else {
34607  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 6); __PYX_ERR(0, 6638, __pyx_L3_error)
34608  }
34609  CYTHON_FALLTHROUGH;
34610  case 7:
34611  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_a)) != 0)) kw_args--;
34612  else {
34613  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 7); __PYX_ERR(0, 6638, __pyx_L3_error)
34614  }
34615  CYTHON_FALLTHROUGH;
34616  case 8:
34617  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_grad_phi)) != 0)) kw_args--;
34618  else {
34619  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 8); __PYX_ERR(0, 6638, __pyx_L3_error)
34620  }
34621  CYTHON_FALLTHROUGH;
34622  case 9:
34623  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psi_w)) != 0)) kw_args--;
34624  else {
34625  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 9); __PYX_ERR(0, 6638, __pyx_L3_error)
34626  }
34627  CYTHON_FALLTHROUGH;
34628  case 10:
34629  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_psi_n)) != 0)) kw_args--;
34630  else {
34631  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 10); __PYX_ERR(0, 6638, __pyx_L3_error)
34632  }
34633  CYTHON_FALLTHROUGH;
34634  case 11:
34635  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
34636  else {
34637  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 11); __PYX_ERR(0, 6638, __pyx_L3_error)
34638  }
34639  CYTHON_FALLTHROUGH;
34640  case 12:
34641  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
34642  else {
34643  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 12); __PYX_ERR(0, 6638, __pyx_L3_error)
34644  }
34645  CYTHON_FALLTHROUGH;
34646  case 13:
34647  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_w)) != 0)) kw_args--;
34648  else {
34649  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 13); __PYX_ERR(0, 6638, __pyx_L3_error)
34650  }
34651  CYTHON_FALLTHROUGH;
34652  case 14:
34653  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_psi_n)) != 0)) kw_args--;
34654  else {
34655  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 14); __PYX_ERR(0, 6638, __pyx_L3_error)
34656  }
34657  CYTHON_FALLTHROUGH;
34658  case 15:
34659  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
34660  else {
34661  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 15); __PYX_ERR(0, 6638, __pyx_L3_error)
34662  }
34663  CYTHON_FALLTHROUGH;
34664  case 16:
34665  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux)) != 0)) kw_args--;
34666  else {
34667  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, 16); __PYX_ERR(0, 6638, __pyx_L3_error)
34668  }
34669  }
34670  if (unlikely(kw_args > 0)) {
34671  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd") < 0)) __PYX_ERR(0, 6638, __pyx_L3_error)
34672  }
34673  } else if (PyTuple_GET_SIZE(__pyx_args) != 17) {
34674  goto __pyx_L5_argtuple_error;
34675  } else {
34676  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
34677  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
34678  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
34679  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
34680  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
34681  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
34682  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
34683  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
34684  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
34685  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
34686  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
34687  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
34688  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
34689  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
34690  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
34691  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
34692  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
34693  }
34694  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
34695  __pyx_v_colind = ((PyArrayObject *)values[1]);
34696  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[2]);
34697  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[3]);
34698  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[4]);
34699  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[5]);
34700  __pyx_v_n = ((PyArrayObject *)values[6]);
34701  __pyx_v_bc_a = ((PyArrayObject *)values[7]);
34702  __pyx_v_bc_grad_phi = ((PyArrayObject *)values[8]);
34703  __pyx_v_bc_psi_w = ((PyArrayObject *)values[9]);
34704  __pyx_v_bc_psi_n = ((PyArrayObject *)values[10]);
34705  __pyx_v_a = ((PyArrayObject *)values[11]);
34706  __pyx_v_grad_phi = ((PyArrayObject *)values[12]);
34707  __pyx_v_psi_w = ((PyArrayObject *)values[13]);
34708  __pyx_v_psi_n = ((PyArrayObject *)values[14]);
34709  __pyx_v_penalty = ((PyArrayObject *)values[15]);
34710  __pyx_v_diffusiveFlux = ((PyArrayObject *)values[16]);
34711  }
34712  goto __pyx_L4_argument_unpacking_done;
34713  __pyx_L5_argtuple_error:;
34714  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 1, 17, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6638, __pyx_L3_error)
34715  __pyx_L3_error:;
34716  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
34717  __Pyx_RefNannyFinishContext();
34718  return NULL;
34719  __pyx_L4_argument_unpacking_done:;
34720  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 6638, __pyx_L1_error)
34721  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 6639, __pyx_L1_error)
34722  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6640, __pyx_L1_error)
34723  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6641, __pyx_L1_error)
34724  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6642, __pyx_L1_error)
34725  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 6643, __pyx_L1_error)
34726  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6644, __pyx_L1_error)
34727  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_a), __pyx_ptype_5numpy_ndarray, 1, "bc_a", 0))) __PYX_ERR(0, 6645, __pyx_L1_error)
34728  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "bc_grad_phi", 0))) __PYX_ERR(0, 6646, __pyx_L1_error)
34729  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psi_w), __pyx_ptype_5numpy_ndarray, 1, "bc_psi_w", 0))) __PYX_ERR(0, 6647, __pyx_L1_error)
34730  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_psi_n), __pyx_ptype_5numpy_ndarray, 1, "bc_psi_n", 0))) __PYX_ERR(0, 6648, __pyx_L1_error)
34731  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 6649, __pyx_L1_error)
34732  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 6650, __pyx_L1_error)
34733  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_w), __pyx_ptype_5numpy_ndarray, 1, "psi_w", 0))) __PYX_ERR(0, 6651, __pyx_L1_error)
34734  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_psi_n), __pyx_ptype_5numpy_ndarray, 1, "psi_n", 0))) __PYX_ERR(0, 6652, __pyx_L1_error)
34735  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 6653, __pyx_L1_error)
34736  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux", 0))) __PYX_ERR(0, 6654, __pyx_L1_error)
34737  __pyx_r = __pyx_pf_14cnumericalFlux_194calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_u, __pyx_v_n, __pyx_v_bc_a, __pyx_v_bc_grad_phi, __pyx_v_bc_psi_w, __pyx_v_bc_psi_n, __pyx_v_a, __pyx_v_grad_phi, __pyx_v_psi_w, __pyx_v_psi_n, __pyx_v_penalty, __pyx_v_diffusiveFlux);
34738 
34739  /* function exit code */
34740  goto __pyx_L0;
34741  __pyx_L1_error:;
34742  __pyx_r = NULL;
34743  __pyx_L0:;
34744  __Pyx_RefNannyFinishContext();
34745  return __pyx_r;
34746 }
34747 
34748 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) {
34749  PyObject *__pyx_r = NULL;
34750  __Pyx_RefNannyDeclarations
34751  int __pyx_t_1;
34752  PyObject *__pyx_t_2 = NULL;
34753  PyObject *__pyx_t_3 = NULL;
34754  PyObject *__pyx_t_4 = NULL;
34755  int __pyx_lineno = 0;
34756  const char *__pyx_filename = NULL;
34757  int __pyx_clineno = 0;
34758  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", 0);
34759 
34760  /* "cnumericalFlux.pyx":6655
34761  * np.ndarray penalty,
34762  * np.ndarray diffusiveFlux):
34763  * if grad_phi.ndim == 3: # <<<<<<<<<<<<<<
34764  * ccalculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(exteriorElementBoundaries.shape[0],
34765  * grad_phi.shape[1],
34766  */
34767  __pyx_t_1 = ((__pyx_v_grad_phi->nd == 3) != 0);
34768  if (__pyx_t_1) {
34769 
34770  /* "cnumericalFlux.pyx":6656
34771  * np.ndarray diffusiveFlux):
34772  * if grad_phi.ndim == 3:
34773  * ccalculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
34774  * grad_phi.shape[1],
34775  * grad_phi.shape[2],
34776  */
34777  calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_phi->dimensions[1]), (__pyx_v_grad_phi->dimensions[2]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_a->data), ((double *)__pyx_v_bc_grad_phi->data), ((double *)__pyx_v_bc_psi_w->data), ((double *)__pyx_v_bc_psi_n->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_grad_phi->data), ((double *)__pyx_v_psi_w->data), ((double *)__pyx_v_psi_n->data), ((double *)__pyx_v_penalty->data), ((double *)__pyx_v_diffusiveFlux->data));
34778 
34779  /* "cnumericalFlux.pyx":6655
34780  * np.ndarray penalty,
34781  * np.ndarray diffusiveFlux):
34782  * if grad_phi.ndim == 3: # <<<<<<<<<<<<<<
34783  * ccalculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(exteriorElementBoundaries.shape[0],
34784  * grad_phi.shape[1],
34785  */
34786  goto __pyx_L3;
34787  }
34788 
34789  /* "cnumericalFlux.pyx":6677
34790  * <double*> diffusiveFlux.data)
34791  * else:
34792  * exit(1) # <<<<<<<<<<<<<<
34793  * def updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(np.ndarray rowptr,
34794  * np.ndarray colind,
34795  */
34796  /*else*/ {
34797  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6677, __pyx_L1_error)
34798  __Pyx_GOTREF(__pyx_t_3);
34799  __pyx_t_4 = NULL;
34800  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
34801  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
34802  if (likely(__pyx_t_4)) {
34803  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
34804  __Pyx_INCREF(__pyx_t_4);
34805  __Pyx_INCREF(function);
34806  __Pyx_DECREF_SET(__pyx_t_3, function);
34807  }
34808  }
34809  __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_int_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_1);
34810  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
34811  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6677, __pyx_L1_error)
34812  __Pyx_GOTREF(__pyx_t_2);
34813  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
34814  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
34815  }
34816  __pyx_L3:;
34817 
34818  /* "cnumericalFlux.pyx":6638
34819  * else:
34820  * exit(1)
34821  * def calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
34822  * np.ndarray colind,
34823  * np.ndarray exteriorElementBoundaries,
34824  */
34825 
34826  /* function exit code */
34827  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
34828  goto __pyx_L0;
34829  __pyx_L1_error:;
34830  __Pyx_XDECREF(__pyx_t_2);
34831  __Pyx_XDECREF(__pyx_t_3);
34832  __Pyx_XDECREF(__pyx_t_4);
34833  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
34834  __pyx_r = NULL;
34835  __pyx_L0:;
34836  __Pyx_XGIVEREF(__pyx_r);
34837  __Pyx_RefNannyFinishContext();
34838  return __pyx_r;
34839 }
34840 
34841 /* "cnumericalFlux.pyx":6678
34842  * else:
34843  * exit(1)
34844  * def updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
34845  * np.ndarray colind,
34846  * np.ndarray l2g,
34847  */
34848 
34849 /* Python wrapper */
34850 static PyObject *__pyx_pw_14cnumericalFlux_197updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
34851 static PyMethodDef __pyx_mdef_14cnumericalFlux_197updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd = {"updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_197updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd, METH_VARARGS|METH_KEYWORDS, 0};
34852 static PyObject *__pyx_pw_14cnumericalFlux_197updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
34853  PyArrayObject *__pyx_v_rowptr = 0;
34854  PyArrayObject *__pyx_v_colind = 0;
34855  PyArrayObject *__pyx_v_l2g = 0;
34856  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
34857  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
34858  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
34859  PyArrayObject *__pyx_v_isDOFBoundary = 0;
34860  PyArrayObject *__pyx_v_fluxBoundaryFlag = 0;
34861  PyArrayObject *__pyx_v_n = 0;
34862  PyArrayObject *__pyx_v_a = 0;
34863  PyArrayObject *__pyx_v_da = 0;
34864  PyArrayObject *__pyx_v_grad_phi = 0;
34865  PyArrayObject *__pyx_v_dphi = 0;
34866  PyArrayObject *__pyx_v_v = 0;
34867  PyArrayObject *__pyx_v_grad_v = 0;
34868  PyArrayObject *__pyx_v_penalty = 0;
34869  PyArrayObject *__pyx_v_fluxJacobian = 0;
34870  int __pyx_v_scale_penalty;
34871  double __pyx_v_penalty_floor;
34872  int __pyx_lineno = 0;
34873  const char *__pyx_filename = NULL;
34874  int __pyx_clineno = 0;
34875  PyObject *__pyx_r = 0;
34876  __Pyx_RefNannyDeclarations
34877  __Pyx_RefNannySetupContext("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd (wrapper)", 0);
34878  {
34879  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_fluxBoundaryFlag,&__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};
34880  PyObject* values[19] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
34881  if (unlikely(__pyx_kwds)) {
34882  Py_ssize_t kw_args;
34883  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
34884  switch (pos_args) {
34885  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
34886  CYTHON_FALLTHROUGH;
34887  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
34888  CYTHON_FALLTHROUGH;
34889  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
34890  CYTHON_FALLTHROUGH;
34891  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
34892  CYTHON_FALLTHROUGH;
34893  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
34894  CYTHON_FALLTHROUGH;
34895  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
34896  CYTHON_FALLTHROUGH;
34897  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
34898  CYTHON_FALLTHROUGH;
34899  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
34900  CYTHON_FALLTHROUGH;
34901  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
34902  CYTHON_FALLTHROUGH;
34903  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
34904  CYTHON_FALLTHROUGH;
34905  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
34906  CYTHON_FALLTHROUGH;
34907  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
34908  CYTHON_FALLTHROUGH;
34909  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
34910  CYTHON_FALLTHROUGH;
34911  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
34912  CYTHON_FALLTHROUGH;
34913  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
34914  CYTHON_FALLTHROUGH;
34915  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
34916  CYTHON_FALLTHROUGH;
34917  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
34918  CYTHON_FALLTHROUGH;
34919  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
34920  CYTHON_FALLTHROUGH;
34921  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
34922  CYTHON_FALLTHROUGH;
34923  case 0: break;
34924  default: goto __pyx_L5_argtuple_error;
34925  }
34926  kw_args = PyDict_Size(__pyx_kwds);
34927  switch (pos_args) {
34928  case 0:
34929  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
34930  else goto __pyx_L5_argtuple_error;
34931  CYTHON_FALLTHROUGH;
34932  case 1:
34933  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
34934  else {
34935  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 1); __PYX_ERR(0, 6678, __pyx_L3_error)
34936  }
34937  CYTHON_FALLTHROUGH;
34938  case 2:
34939  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
34940  else {
34941  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 2); __PYX_ERR(0, 6678, __pyx_L3_error)
34942  }
34943  CYTHON_FALLTHROUGH;
34944  case 3:
34945  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
34946  else {
34947  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 3); __PYX_ERR(0, 6678, __pyx_L3_error)
34948  }
34949  CYTHON_FALLTHROUGH;
34950  case 4:
34951  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
34952  else {
34953  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 4); __PYX_ERR(0, 6678, __pyx_L3_error)
34954  }
34955  CYTHON_FALLTHROUGH;
34956  case 5:
34957  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
34958  else {
34959  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 5); __PYX_ERR(0, 6678, __pyx_L3_error)
34960  }
34961  CYTHON_FALLTHROUGH;
34962  case 6:
34963  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
34964  else {
34965  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 6); __PYX_ERR(0, 6678, __pyx_L3_error)
34966  }
34967  CYTHON_FALLTHROUGH;
34968  case 7:
34969  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag)) != 0)) kw_args--;
34970  else {
34971  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 7); __PYX_ERR(0, 6678, __pyx_L3_error)
34972  }
34973  CYTHON_FALLTHROUGH;
34974  case 8:
34975  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
34976  else {
34977  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 8); __PYX_ERR(0, 6678, __pyx_L3_error)
34978  }
34979  CYTHON_FALLTHROUGH;
34980  case 9:
34981  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
34982  else {
34983  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 9); __PYX_ERR(0, 6678, __pyx_L3_error)
34984  }
34985  CYTHON_FALLTHROUGH;
34986  case 10:
34987  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
34988  else {
34989  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 10); __PYX_ERR(0, 6678, __pyx_L3_error)
34990  }
34991  CYTHON_FALLTHROUGH;
34992  case 11:
34993  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
34994  else {
34995  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 11); __PYX_ERR(0, 6678, __pyx_L3_error)
34996  }
34997  CYTHON_FALLTHROUGH;
34998  case 12:
34999  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
35000  else {
35001  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 12); __PYX_ERR(0, 6678, __pyx_L3_error)
35002  }
35003  CYTHON_FALLTHROUGH;
35004  case 13:
35005  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
35006  else {
35007  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 13); __PYX_ERR(0, 6678, __pyx_L3_error)
35008  }
35009  CYTHON_FALLTHROUGH;
35010  case 14:
35011  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
35012  else {
35013  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 14); __PYX_ERR(0, 6678, __pyx_L3_error)
35014  }
35015  CYTHON_FALLTHROUGH;
35016  case 15:
35017  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
35018  else {
35019  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 15); __PYX_ERR(0, 6678, __pyx_L3_error)
35020  }
35021  CYTHON_FALLTHROUGH;
35022  case 16:
35023  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
35024  else {
35025  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 16); __PYX_ERR(0, 6678, __pyx_L3_error)
35026  }
35027  CYTHON_FALLTHROUGH;
35028  case 17:
35029  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty)) != 0)) kw_args--;
35030  else {
35031  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 17); __PYX_ERR(0, 6678, __pyx_L3_error)
35032  }
35033  CYTHON_FALLTHROUGH;
35034  case 18:
35035  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor)) != 0)) kw_args--;
35036  else {
35037  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, 18); __PYX_ERR(0, 6678, __pyx_L3_error)
35038  }
35039  }
35040  if (unlikely(kw_args > 0)) {
35041  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd") < 0)) __PYX_ERR(0, 6678, __pyx_L3_error)
35042  }
35043  } else if (PyTuple_GET_SIZE(__pyx_args) != 19) {
35044  goto __pyx_L5_argtuple_error;
35045  } else {
35046  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35047  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35048  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
35049  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
35050  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
35051  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
35052  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
35053  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
35054  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
35055  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
35056  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
35057  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
35058  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
35059  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
35060  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
35061  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
35062  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
35063  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
35064  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
35065  }
35066  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
35067  __pyx_v_colind = ((PyArrayObject *)values[1]);
35068  __pyx_v_l2g = ((PyArrayObject *)values[2]);
35069  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[3]);
35070  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[4]);
35071  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[5]);
35072  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[6]);
35073  __pyx_v_fluxBoundaryFlag = ((PyArrayObject *)values[7]);
35074  __pyx_v_n = ((PyArrayObject *)values[8]);
35075  __pyx_v_a = ((PyArrayObject *)values[9]);
35076  __pyx_v_da = ((PyArrayObject *)values[10]);
35077  __pyx_v_grad_phi = ((PyArrayObject *)values[11]);
35078  __pyx_v_dphi = ((PyArrayObject *)values[12]);
35079  __pyx_v_v = ((PyArrayObject *)values[13]);
35080  __pyx_v_grad_v = ((PyArrayObject *)values[14]);
35081  __pyx_v_penalty = ((PyArrayObject *)values[15]);
35082  __pyx_v_fluxJacobian = ((PyArrayObject *)values[16]);
35083  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[17]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6695, __pyx_L3_error)
35084  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[18]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6696, __pyx_L3_error)
35085  }
35086  goto __pyx_L4_argument_unpacking_done;
35087  __pyx_L5_argtuple_error:;
35088  __Pyx_RaiseArgtupleInvalid("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 19, 19, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6678, __pyx_L3_error)
35089  __pyx_L3_error:;
35090  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
35091  __Pyx_RefNannyFinishContext();
35092  return NULL;
35093  __pyx_L4_argument_unpacking_done:;
35094  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 6678, __pyx_L1_error)
35095  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 6679, __pyx_L1_error)
35096  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 6680, __pyx_L1_error)
35097  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6681, __pyx_L1_error)
35098  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6682, __pyx_L1_error)
35099  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6683, __pyx_L1_error)
35100  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 6684, __pyx_L1_error)
35101  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxBoundaryFlag), __pyx_ptype_5numpy_ndarray, 1, "fluxBoundaryFlag", 0))) __PYX_ERR(0, 6685, __pyx_L1_error)
35102  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6686, __pyx_L1_error)
35103  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 6687, __pyx_L1_error)
35104  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 6688, __pyx_L1_error)
35105  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 6689, __pyx_L1_error)
35106  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 6690, __pyx_L1_error)
35107  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 6691, __pyx_L1_error)
35108  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 6692, __pyx_L1_error)
35109  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 6693, __pyx_L1_error)
35110  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 6694, __pyx_L1_error)
35111  __pyx_r = __pyx_pf_14cnumericalFlux_196updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __pyx_v_fluxBoundaryFlag, __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);
35112 
35113  /* function exit code */
35114  goto __pyx_L0;
35115  __pyx_L1_error:;
35116  __pyx_r = NULL;
35117  __pyx_L0:;
35118  __Pyx_RefNannyFinishContext();
35119  return __pyx_r;
35120 }
35121 
35122 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) {
35123  PyObject *__pyx_r = NULL;
35124  __Pyx_RefNannyDeclarations
35125  int __pyx_t_1;
35126  PyObject *__pyx_t_2 = NULL;
35127  PyObject *__pyx_t_3 = NULL;
35128  PyObject *__pyx_t_4 = NULL;
35129  int __pyx_lineno = 0;
35130  const char *__pyx_filename = NULL;
35131  int __pyx_clineno = 0;
35132  __Pyx_RefNannySetupContext("updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 0);
35133 
35134  /* "cnumericalFlux.pyx":6697
35135  * int scale_penalty,
35136  * double penalty_floor):
35137  * if grad_v.ndim == 4: # <<<<<<<<<<<<<<
35138  * cupdateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd( scale_penalty,
35139  * penalty_floor,
35140  */
35141  __pyx_t_1 = ((__pyx_v_grad_v->nd == 4) != 0);
35142  if (__pyx_t_1) {
35143 
35144  /* "cnumericalFlux.pyx":6698
35145  * double penalty_floor):
35146  * if grad_v.ndim == 4:
35147  * cupdateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd( scale_penalty, # <<<<<<<<<<<<<<
35148  * penalty_floor,
35149  * exteriorElementBoundaries.shape[0],
35150  */
35151  updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(__pyx_v_scale_penalty, __pyx_v_penalty_floor, (__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_v->dimensions[1]), (__pyx_v_grad_v->dimensions[2]), (__pyx_v_grad_v->dimensions[3]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((int *)__pyx_v_fluxBoundaryFlag->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));
35152 
35153  /* "cnumericalFlux.pyx":6697
35154  * int scale_penalty,
35155  * double penalty_floor):
35156  * if grad_v.ndim == 4: # <<<<<<<<<<<<<<
35157  * cupdateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd( scale_penalty,
35158  * penalty_floor,
35159  */
35160  goto __pyx_L3;
35161  }
35162 
35163  /* "cnumericalFlux.pyx":6722
35164  * <double*> fluxJacobian.data)
35165  * else:
35166  * exit(1) # <<<<<<<<<<<<<<
35167  * def updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(int scale_penalty,
35168  * double penalty_floor,
35169  */
35170  /*else*/ {
35171  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6722, __pyx_L1_error)
35172  __Pyx_GOTREF(__pyx_t_3);
35173  __pyx_t_4 = NULL;
35174  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
35175  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
35176  if (likely(__pyx_t_4)) {
35177  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
35178  __Pyx_INCREF(__pyx_t_4);
35179  __Pyx_INCREF(function);
35180  __Pyx_DECREF_SET(__pyx_t_3, function);
35181  }
35182  }
35183  __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_int_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_1);
35184  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
35185  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6722, __pyx_L1_error)
35186  __Pyx_GOTREF(__pyx_t_2);
35187  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
35188  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
35189  }
35190  __pyx_L3:;
35191 
35192  /* "cnumericalFlux.pyx":6678
35193  * else:
35194  * exit(1)
35195  * def updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
35196  * np.ndarray colind,
35197  * np.ndarray l2g,
35198  */
35199 
35200  /* function exit code */
35201  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
35202  goto __pyx_L0;
35203  __pyx_L1_error:;
35204  __Pyx_XDECREF(__pyx_t_2);
35205  __Pyx_XDECREF(__pyx_t_3);
35206  __Pyx_XDECREF(__pyx_t_4);
35207  __Pyx_AddTraceback("cnumericalFlux.updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
35208  __pyx_r = NULL;
35209  __pyx_L0:;
35210  __Pyx_XGIVEREF(__pyx_r);
35211  __Pyx_RefNannyFinishContext();
35212  return __pyx_r;
35213 }
35214 
35215 /* "cnumericalFlux.pyx":6723
35216  * else:
35217  * exit(1)
35218  * def updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(int scale_penalty, # <<<<<<<<<<<<<<
35219  * double penalty_floor,
35220  * int nExteriorElementBoundaries_global,
35221  */
35222 
35223 /* Python wrapper */
35224 static PyObject *__pyx_pw_14cnumericalFlux_199updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
35225 static PyMethodDef __pyx_mdef_14cnumericalFlux_199updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd = {"updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_199updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd, METH_VARARGS|METH_KEYWORDS, 0};
35226 static PyObject *__pyx_pw_14cnumericalFlux_199updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
35227  int __pyx_v_scale_penalty;
35228  double __pyx_v_penalty_floor;
35229  int __pyx_v_nExteriorElementBoundaries_global;
35230  int __pyx_v_nQuadraturePoints_elementBoundary;
35231  int __pyx_v_nDOF_trial_element;
35232  int __pyx_v_nSpace;
35233  PyArrayObject *__pyx_v_rowptr = 0;
35234  PyArrayObject *__pyx_v_colind = 0;
35235  PyArrayObject *__pyx_v_l2g = 0;
35236  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
35237  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
35238  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
35239  PyArrayObject *__pyx_v_isDOFBoundary = 0;
35240  PyArrayObject *__pyx_v_fluxBoundaryFlag = 0;
35241  PyArrayObject *__pyx_v_n = 0;
35242  PyArrayObject *__pyx_v_a = 0;
35243  PyArrayObject *__pyx_v_da = 0;
35244  PyArrayObject *__pyx_v_grad_phi = 0;
35245  PyArrayObject *__pyx_v_dphi = 0;
35246  PyArrayObject *__pyx_v_v = 0;
35247  PyArrayObject *__pyx_v_grad_v = 0;
35248  PyArrayObject *__pyx_v_penalty = 0;
35249  PyArrayObject *__pyx_v_fluxJacobian = 0;
35250  int __pyx_lineno = 0;
35251  const char *__pyx_filename = NULL;
35252  int __pyx_clineno = 0;
35253  PyObject *__pyx_r = 0;
35254  __Pyx_RefNannyDeclarations
35255  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd (wrapper)", 0);
35256  {
35257  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scale_penalty,&__pyx_n_s_penalty_floor,&__pyx_n_s_nExteriorElementBoundaries_globa,&__pyx_n_s_nQuadraturePoints_elementBoundar,&__pyx_n_s_nDOF_trial_element,&__pyx_n_s_nSpace,&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_l2g,&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_fluxBoundaryFlag,&__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,0};
35258  PyObject* values[23] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
35259  if (unlikely(__pyx_kwds)) {
35260  Py_ssize_t kw_args;
35261  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
35262  switch (pos_args) {
35263  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
35264  CYTHON_FALLTHROUGH;
35265  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
35266  CYTHON_FALLTHROUGH;
35267  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
35268  CYTHON_FALLTHROUGH;
35269  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
35270  CYTHON_FALLTHROUGH;
35271  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
35272  CYTHON_FALLTHROUGH;
35273  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
35274  CYTHON_FALLTHROUGH;
35275  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
35276  CYTHON_FALLTHROUGH;
35277  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
35278  CYTHON_FALLTHROUGH;
35279  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
35280  CYTHON_FALLTHROUGH;
35281  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
35282  CYTHON_FALLTHROUGH;
35283  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
35284  CYTHON_FALLTHROUGH;
35285  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
35286  CYTHON_FALLTHROUGH;
35287  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
35288  CYTHON_FALLTHROUGH;
35289  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
35290  CYTHON_FALLTHROUGH;
35291  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
35292  CYTHON_FALLTHROUGH;
35293  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
35294  CYTHON_FALLTHROUGH;
35295  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
35296  CYTHON_FALLTHROUGH;
35297  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
35298  CYTHON_FALLTHROUGH;
35299  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
35300  CYTHON_FALLTHROUGH;
35301  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
35302  CYTHON_FALLTHROUGH;
35303  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
35304  CYTHON_FALLTHROUGH;
35305  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35306  CYTHON_FALLTHROUGH;
35307  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35308  CYTHON_FALLTHROUGH;
35309  case 0: break;
35310  default: goto __pyx_L5_argtuple_error;
35311  }
35312  kw_args = PyDict_Size(__pyx_kwds);
35313  switch (pos_args) {
35314  case 0:
35315  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scale_penalty)) != 0)) kw_args--;
35316  else goto __pyx_L5_argtuple_error;
35317  CYTHON_FALLTHROUGH;
35318  case 1:
35319  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty_floor)) != 0)) kw_args--;
35320  else {
35321  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 1); __PYX_ERR(0, 6723, __pyx_L3_error)
35322  }
35323  CYTHON_FALLTHROUGH;
35324  case 2:
35325  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nExteriorElementBoundaries_globa)) != 0)) kw_args--;
35326  else {
35327  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 2); __PYX_ERR(0, 6723, __pyx_L3_error)
35328  }
35329  CYTHON_FALLTHROUGH;
35330  case 3:
35331  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nQuadraturePoints_elementBoundar)) != 0)) kw_args--;
35332  else {
35333  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 3); __PYX_ERR(0, 6723, __pyx_L3_error)
35334  }
35335  CYTHON_FALLTHROUGH;
35336  case 4:
35337  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nDOF_trial_element)) != 0)) kw_args--;
35338  else {
35339  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 4); __PYX_ERR(0, 6723, __pyx_L3_error)
35340  }
35341  CYTHON_FALLTHROUGH;
35342  case 5:
35343  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nSpace)) != 0)) kw_args--;
35344  else {
35345  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 5); __PYX_ERR(0, 6723, __pyx_L3_error)
35346  }
35347  CYTHON_FALLTHROUGH;
35348  case 6:
35349  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
35350  else {
35351  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 6); __PYX_ERR(0, 6723, __pyx_L3_error)
35352  }
35353  CYTHON_FALLTHROUGH;
35354  case 7:
35355  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
35356  else {
35357  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 7); __PYX_ERR(0, 6723, __pyx_L3_error)
35358  }
35359  CYTHON_FALLTHROUGH;
35360  case 8:
35361  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
35362  else {
35363  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 8); __PYX_ERR(0, 6723, __pyx_L3_error)
35364  }
35365  CYTHON_FALLTHROUGH;
35366  case 9:
35367  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
35368  else {
35369  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 9); __PYX_ERR(0, 6723, __pyx_L3_error)
35370  }
35371  CYTHON_FALLTHROUGH;
35372  case 10:
35373  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
35374  else {
35375  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 10); __PYX_ERR(0, 6723, __pyx_L3_error)
35376  }
35377  CYTHON_FALLTHROUGH;
35378  case 11:
35379  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
35380  else {
35381  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 11); __PYX_ERR(0, 6723, __pyx_L3_error)
35382  }
35383  CYTHON_FALLTHROUGH;
35384  case 12:
35385  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
35386  else {
35387  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 12); __PYX_ERR(0, 6723, __pyx_L3_error)
35388  }
35389  CYTHON_FALLTHROUGH;
35390  case 13:
35391  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxBoundaryFlag)) != 0)) kw_args--;
35392  else {
35393  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 13); __PYX_ERR(0, 6723, __pyx_L3_error)
35394  }
35395  CYTHON_FALLTHROUGH;
35396  case 14:
35397  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
35398  else {
35399  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 14); __PYX_ERR(0, 6723, __pyx_L3_error)
35400  }
35401  CYTHON_FALLTHROUGH;
35402  case 15:
35403  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
35404  else {
35405  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 15); __PYX_ERR(0, 6723, __pyx_L3_error)
35406  }
35407  CYTHON_FALLTHROUGH;
35408  case 16:
35409  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
35410  else {
35411  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 16); __PYX_ERR(0, 6723, __pyx_L3_error)
35412  }
35413  CYTHON_FALLTHROUGH;
35414  case 17:
35415  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_phi)) != 0)) kw_args--;
35416  else {
35417  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 17); __PYX_ERR(0, 6723, __pyx_L3_error)
35418  }
35419  CYTHON_FALLTHROUGH;
35420  case 18:
35421  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
35422  else {
35423  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 18); __PYX_ERR(0, 6723, __pyx_L3_error)
35424  }
35425  CYTHON_FALLTHROUGH;
35426  case 19:
35427  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
35428  else {
35429  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 19); __PYX_ERR(0, 6723, __pyx_L3_error)
35430  }
35431  CYTHON_FALLTHROUGH;
35432  case 20:
35433  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_v)) != 0)) kw_args--;
35434  else {
35435  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 20); __PYX_ERR(0, 6723, __pyx_L3_error)
35436  }
35437  CYTHON_FALLTHROUGH;
35438  case 21:
35439  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penalty)) != 0)) kw_args--;
35440  else {
35441  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 21); __PYX_ERR(0, 6723, __pyx_L3_error)
35442  }
35443  CYTHON_FALLTHROUGH;
35444  case 22:
35445  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
35446  else {
35447  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, 22); __PYX_ERR(0, 6723, __pyx_L3_error)
35448  }
35449  }
35450  if (unlikely(kw_args > 0)) {
35451  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd") < 0)) __PYX_ERR(0, 6723, __pyx_L3_error)
35452  }
35453  } else if (PyTuple_GET_SIZE(__pyx_args) != 23) {
35454  goto __pyx_L5_argtuple_error;
35455  } else {
35456  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35457  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35458  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
35459  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
35460  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
35461  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
35462  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
35463  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
35464  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
35465  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
35466  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
35467  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
35468  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
35469  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
35470  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
35471  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
35472  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
35473  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
35474  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
35475  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
35476  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
35477  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
35478  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
35479  }
35480  __pyx_v_scale_penalty = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_scale_penalty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6723, __pyx_L3_error)
35481  __pyx_v_penalty_floor = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_penalty_floor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6724, __pyx_L3_error)
35482  __pyx_v_nExteriorElementBoundaries_global = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nExteriorElementBoundaries_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6725, __pyx_L3_error)
35483  __pyx_v_nQuadraturePoints_elementBoundary = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nQuadraturePoints_elementBoundary == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6726, __pyx_L3_error)
35484  __pyx_v_nDOF_trial_element = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_nDOF_trial_element == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6727, __pyx_L3_error)
35485  __pyx_v_nSpace = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6728, __pyx_L3_error)
35486  __pyx_v_rowptr = ((PyArrayObject *)values[6]);
35487  __pyx_v_colind = ((PyArrayObject *)values[7]);
35488  __pyx_v_l2g = ((PyArrayObject *)values[8]);
35489  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[9]);
35490  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[10]);
35491  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[11]);
35492  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[12]);
35493  __pyx_v_fluxBoundaryFlag = ((PyArrayObject *)values[13]);
35494  __pyx_v_n = ((PyArrayObject *)values[14]);
35495  __pyx_v_a = ((PyArrayObject *)values[15]);
35496  __pyx_v_da = ((PyArrayObject *)values[16]);
35497  __pyx_v_grad_phi = ((PyArrayObject *)values[17]);
35498  __pyx_v_dphi = ((PyArrayObject *)values[18]);
35499  __pyx_v_v = ((PyArrayObject *)values[19]);
35500  __pyx_v_grad_v = ((PyArrayObject *)values[20]);
35501  __pyx_v_penalty = ((PyArrayObject *)values[21]);
35502  __pyx_v_fluxJacobian = ((PyArrayObject *)values[22]);
35503  }
35504  goto __pyx_L4_argument_unpacking_done;
35505  __pyx_L5_argtuple_error:;
35506  __Pyx_RaiseArgtupleInvalid("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 1, 23, 23, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6723, __pyx_L3_error)
35507  __pyx_L3_error:;
35508  __Pyx_AddTraceback("cnumericalFlux.updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
35509  __Pyx_RefNannyFinishContext();
35510  return NULL;
35511  __pyx_L4_argument_unpacking_done:;
35512  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 6729, __pyx_L1_error)
35513  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 6730, __pyx_L1_error)
35514  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 6731, __pyx_L1_error)
35515  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6732, __pyx_L1_error)
35516  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6733, __pyx_L1_error)
35517  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6734, __pyx_L1_error)
35518  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 6735, __pyx_L1_error)
35519  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxBoundaryFlag), __pyx_ptype_5numpy_ndarray, 1, "fluxBoundaryFlag", 0))) __PYX_ERR(0, 6736, __pyx_L1_error)
35520  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6737, __pyx_L1_error)
35521  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 6738, __pyx_L1_error)
35522  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 6739, __pyx_L1_error)
35523  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 6740, __pyx_L1_error)
35524  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 6741, __pyx_L1_error)
35525  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 6742, __pyx_L1_error)
35526  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_v), __pyx_ptype_5numpy_ndarray, 1, "grad_v", 0))) __PYX_ERR(0, 6743, __pyx_L1_error)
35527  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_penalty), __pyx_ptype_5numpy_ndarray, 1, "penalty", 0))) __PYX_ERR(0, 6744, __pyx_L1_error)
35528  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 6745, __pyx_L1_error)
35529  __pyx_r = __pyx_pf_14cnumericalFlux_198updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(__pyx_self, __pyx_v_scale_penalty, __pyx_v_penalty_floor, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_l2g, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary, __pyx_v_fluxBoundaryFlag, __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);
35530 
35531  /* function exit code */
35532  goto __pyx_L0;
35533  __pyx_L1_error:;
35534  __pyx_r = NULL;
35535  __pyx_L0:;
35536  __Pyx_RefNannyFinishContext();
35537  return __pyx_r;
35538 }
35539 
35540 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) {
35541  PyObject *__pyx_r = NULL;
35542  __Pyx_RefNannyDeclarations
35543  __Pyx_RefNannySetupContext("updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd", 0);
35544 
35545  /* "cnumericalFlux.pyx":6746
35546  * np.ndarray penalty,
35547  * np.ndarray fluxJacobian):
35548  * cupdateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd( scale_penalty, # <<<<<<<<<<<<<<
35549  * penalty_floor,
35550  * nExteriorElementBoundaries_global,
35551  */
35552  updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(__pyx_v_scale_penalty, __pyx_v_penalty_floor, __pyx_v_nExteriorElementBoundaries_global, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_l2g->data), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary->data), ((int *)__pyx_v_fluxBoundaryFlag->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));
35553 
35554  /* "cnumericalFlux.pyx":6723
35555  * else:
35556  * exit(1)
35557  * def updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(int scale_penalty, # <<<<<<<<<<<<<<
35558  * double penalty_floor,
35559  * int nExteriorElementBoundaries_global,
35560  */
35561 
35562  /* function exit code */
35563  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
35564  __Pyx_XGIVEREF(__pyx_r);
35565  __Pyx_RefNannyFinishContext();
35566  return __pyx_r;
35567 }
35568 
35569 /* "cnumericalFlux.pyx":6769
35570  * <double*> penalty.data,
35571  * <double*> fluxJacobian.data)
35572  * def calculateGlobalExteriorNumericalAdvectiveFluxStokes2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
35573  * np.ndarray elementBoundaryElements,
35574  * np.ndarray elementBoundaryLocalElementBoundaries,
35575  */
35576 
35577 /* Python wrapper */
35578 static PyObject *__pyx_pw_14cnumericalFlux_201calculateGlobalExteriorNumericalAdvectiveFluxStokes2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
35579 static PyMethodDef __pyx_mdef_14cnumericalFlux_201calculateGlobalExteriorNumericalAdvectiveFluxStokes2D = {"calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_201calculateGlobalExteriorNumericalAdvectiveFluxStokes2D, METH_VARARGS|METH_KEYWORDS, 0};
35580 static PyObject *__pyx_pw_14cnumericalFlux_201calculateGlobalExteriorNumericalAdvectiveFluxStokes2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
35581  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
35582  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
35583  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
35584  PyArrayObject *__pyx_v_isDOFBoundary_p = 0;
35585  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
35586  PyArrayObject *__pyx_v_isDOFBoundary_v = 0;
35587  PyArrayObject *__pyx_v_n = 0;
35588  PyArrayObject *__pyx_v_bc_p = 0;
35589  PyArrayObject *__pyx_v_bc_f_mass = 0;
35590  PyArrayObject *__pyx_v_p = 0;
35591  PyArrayObject *__pyx_v_f_mass = 0;
35592  PyArrayObject *__pyx_v_df_mass_du = 0;
35593  PyArrayObject *__pyx_v_df_mass_dv = 0;
35594  PyArrayObject *__pyx_v_flux_mass = 0;
35595  PyArrayObject *__pyx_v_flux_umom = 0;
35596  PyArrayObject *__pyx_v_flux_vmom = 0;
35597  PyArrayObject *__pyx_v_dflux_mass_du = 0;
35598  PyArrayObject *__pyx_v_dflux_mass_dv = 0;
35599  PyArrayObject *__pyx_v_dflux_umom_dp = 0;
35600  PyArrayObject *__pyx_v_dflux_vmom_dp = 0;
35601  PyArrayObject *__pyx_v_velocity = 0;
35602  int __pyx_lineno = 0;
35603  const char *__pyx_filename = NULL;
35604  int __pyx_clineno = 0;
35605  PyObject *__pyx_r = 0;
35606  __Pyx_RefNannyDeclarations
35607  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D (wrapper)", 0);
35608  {
35609  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_p,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_isDOFBoundary_v,&__pyx_n_s_n,&__pyx_n_s_bc_p,&__pyx_n_s_bc_f_mass,&__pyx_n_s_p,&__pyx_n_s_f_mass,&__pyx_n_s_df_mass_du,&__pyx_n_s_df_mass_dv,&__pyx_n_s_flux_mass,&__pyx_n_s_flux_umom,&__pyx_n_s_flux_vmom,&__pyx_n_s_dflux_mass_du,&__pyx_n_s_dflux_mass_dv,&__pyx_n_s_dflux_umom_dp,&__pyx_n_s_dflux_vmom_dp,&__pyx_n_s_velocity,0};
35610  PyObject* values[21] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
35611  if (unlikely(__pyx_kwds)) {
35612  Py_ssize_t kw_args;
35613  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
35614  switch (pos_args) {
35615  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
35616  CYTHON_FALLTHROUGH;
35617  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
35618  CYTHON_FALLTHROUGH;
35619  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
35620  CYTHON_FALLTHROUGH;
35621  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
35622  CYTHON_FALLTHROUGH;
35623  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
35624  CYTHON_FALLTHROUGH;
35625  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
35626  CYTHON_FALLTHROUGH;
35627  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
35628  CYTHON_FALLTHROUGH;
35629  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
35630  CYTHON_FALLTHROUGH;
35631  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
35632  CYTHON_FALLTHROUGH;
35633  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
35634  CYTHON_FALLTHROUGH;
35635  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
35636  CYTHON_FALLTHROUGH;
35637  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
35638  CYTHON_FALLTHROUGH;
35639  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
35640  CYTHON_FALLTHROUGH;
35641  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
35642  CYTHON_FALLTHROUGH;
35643  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
35644  CYTHON_FALLTHROUGH;
35645  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
35646  CYTHON_FALLTHROUGH;
35647  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
35648  CYTHON_FALLTHROUGH;
35649  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
35650  CYTHON_FALLTHROUGH;
35651  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
35652  CYTHON_FALLTHROUGH;
35653  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35654  CYTHON_FALLTHROUGH;
35655  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35656  CYTHON_FALLTHROUGH;
35657  case 0: break;
35658  default: goto __pyx_L5_argtuple_error;
35659  }
35660  kw_args = PyDict_Size(__pyx_kwds);
35661  switch (pos_args) {
35662  case 0:
35663  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
35664  else goto __pyx_L5_argtuple_error;
35665  CYTHON_FALLTHROUGH;
35666  case 1:
35667  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
35668  else {
35669  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 1); __PYX_ERR(0, 6769, __pyx_L3_error)
35670  }
35671  CYTHON_FALLTHROUGH;
35672  case 2:
35673  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
35674  else {
35675  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 2); __PYX_ERR(0, 6769, __pyx_L3_error)
35676  }
35677  CYTHON_FALLTHROUGH;
35678  case 3:
35679  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_p)) != 0)) kw_args--;
35680  else {
35681  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 3); __PYX_ERR(0, 6769, __pyx_L3_error)
35682  }
35683  CYTHON_FALLTHROUGH;
35684  case 4:
35685  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
35686  else {
35687  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 4); __PYX_ERR(0, 6769, __pyx_L3_error)
35688  }
35689  CYTHON_FALLTHROUGH;
35690  case 5:
35691  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_v)) != 0)) kw_args--;
35692  else {
35693  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 5); __PYX_ERR(0, 6769, __pyx_L3_error)
35694  }
35695  CYTHON_FALLTHROUGH;
35696  case 6:
35697  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
35698  else {
35699  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 6); __PYX_ERR(0, 6769, __pyx_L3_error)
35700  }
35701  CYTHON_FALLTHROUGH;
35702  case 7:
35703  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_p)) != 0)) kw_args--;
35704  else {
35705  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 7); __PYX_ERR(0, 6769, __pyx_L3_error)
35706  }
35707  CYTHON_FALLTHROUGH;
35708  case 8:
35709  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_mass)) != 0)) kw_args--;
35710  else {
35711  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 8); __PYX_ERR(0, 6769, __pyx_L3_error)
35712  }
35713  CYTHON_FALLTHROUGH;
35714  case 9:
35715  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--;
35716  else {
35717  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 9); __PYX_ERR(0, 6769, __pyx_L3_error)
35718  }
35719  CYTHON_FALLTHROUGH;
35720  case 10:
35721  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_mass)) != 0)) kw_args--;
35722  else {
35723  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 10); __PYX_ERR(0, 6769, __pyx_L3_error)
35724  }
35725  CYTHON_FALLTHROUGH;
35726  case 11:
35727  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_du)) != 0)) kw_args--;
35728  else {
35729  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 11); __PYX_ERR(0, 6769, __pyx_L3_error)
35730  }
35731  CYTHON_FALLTHROUGH;
35732  case 12:
35733  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_dv)) != 0)) kw_args--;
35734  else {
35735  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 12); __PYX_ERR(0, 6769, __pyx_L3_error)
35736  }
35737  CYTHON_FALLTHROUGH;
35738  case 13:
35739  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_mass)) != 0)) kw_args--;
35740  else {
35741  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 13); __PYX_ERR(0, 6769, __pyx_L3_error)
35742  }
35743  CYTHON_FALLTHROUGH;
35744  case 14:
35745  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_umom)) != 0)) kw_args--;
35746  else {
35747  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 14); __PYX_ERR(0, 6769, __pyx_L3_error)
35748  }
35749  CYTHON_FALLTHROUGH;
35750  case 15:
35751  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_vmom)) != 0)) kw_args--;
35752  else {
35753  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 15); __PYX_ERR(0, 6769, __pyx_L3_error)
35754  }
35755  CYTHON_FALLTHROUGH;
35756  case 16:
35757  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_du)) != 0)) kw_args--;
35758  else {
35759  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 16); __PYX_ERR(0, 6769, __pyx_L3_error)
35760  }
35761  CYTHON_FALLTHROUGH;
35762  case 17:
35763  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_dv)) != 0)) kw_args--;
35764  else {
35765  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 17); __PYX_ERR(0, 6769, __pyx_L3_error)
35766  }
35767  CYTHON_FALLTHROUGH;
35768  case 18:
35769  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_dp)) != 0)) kw_args--;
35770  else {
35771  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 18); __PYX_ERR(0, 6769, __pyx_L3_error)
35772  }
35773  CYTHON_FALLTHROUGH;
35774  case 19:
35775  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_dp)) != 0)) kw_args--;
35776  else {
35777  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 19); __PYX_ERR(0, 6769, __pyx_L3_error)
35778  }
35779  CYTHON_FALLTHROUGH;
35780  case 20:
35781  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_velocity)) != 0)) kw_args--;
35782  else {
35783  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, 20); __PYX_ERR(0, 6769, __pyx_L3_error)
35784  }
35785  }
35786  if (unlikely(kw_args > 0)) {
35787  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalAdvectiveFluxStokes2D") < 0)) __PYX_ERR(0, 6769, __pyx_L3_error)
35788  }
35789  } else if (PyTuple_GET_SIZE(__pyx_args) != 21) {
35790  goto __pyx_L5_argtuple_error;
35791  } else {
35792  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
35793  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
35794  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
35795  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
35796  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
35797  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
35798  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
35799  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
35800  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
35801  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
35802  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
35803  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
35804  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
35805  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
35806  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
35807  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
35808  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
35809  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
35810  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
35811  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
35812  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
35813  }
35814  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
35815  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
35816  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
35817  __pyx_v_isDOFBoundary_p = ((PyArrayObject *)values[3]);
35818  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[4]);
35819  __pyx_v_isDOFBoundary_v = ((PyArrayObject *)values[5]);
35820  __pyx_v_n = ((PyArrayObject *)values[6]);
35821  __pyx_v_bc_p = ((PyArrayObject *)values[7]);
35822  __pyx_v_bc_f_mass = ((PyArrayObject *)values[8]);
35823  __pyx_v_p = ((PyArrayObject *)values[9]);
35824  __pyx_v_f_mass = ((PyArrayObject *)values[10]);
35825  __pyx_v_df_mass_du = ((PyArrayObject *)values[11]);
35826  __pyx_v_df_mass_dv = ((PyArrayObject *)values[12]);
35827  __pyx_v_flux_mass = ((PyArrayObject *)values[13]);
35828  __pyx_v_flux_umom = ((PyArrayObject *)values[14]);
35829  __pyx_v_flux_vmom = ((PyArrayObject *)values[15]);
35830  __pyx_v_dflux_mass_du = ((PyArrayObject *)values[16]);
35831  __pyx_v_dflux_mass_dv = ((PyArrayObject *)values[17]);
35832  __pyx_v_dflux_umom_dp = ((PyArrayObject *)values[18]);
35833  __pyx_v_dflux_vmom_dp = ((PyArrayObject *)values[19]);
35834  __pyx_v_velocity = ((PyArrayObject *)values[20]);
35835  }
35836  goto __pyx_L4_argument_unpacking_done;
35837  __pyx_L5_argtuple_error:;
35838  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 1, 21, 21, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6769, __pyx_L3_error)
35839  __pyx_L3_error:;
35840  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
35841  __Pyx_RefNannyFinishContext();
35842  return NULL;
35843  __pyx_L4_argument_unpacking_done:;
35844  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6769, __pyx_L1_error)
35845  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6770, __pyx_L1_error)
35846  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6771, __pyx_L1_error)
35847  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_p), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_p", 0))) __PYX_ERR(0, 6772, __pyx_L1_error)
35848  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 6773, __pyx_L1_error)
35849  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_v", 0))) __PYX_ERR(0, 6774, __pyx_L1_error)
35850  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6775, __pyx_L1_error)
35851  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_p), __pyx_ptype_5numpy_ndarray, 1, "bc_p", 0))) __PYX_ERR(0, 6776, __pyx_L1_error)
35852  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_mass), __pyx_ptype_5numpy_ndarray, 1, "bc_f_mass", 0))) __PYX_ERR(0, 6777, __pyx_L1_error)
35853  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p), __pyx_ptype_5numpy_ndarray, 1, "p", 0))) __PYX_ERR(0, 6778, __pyx_L1_error)
35854  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_mass), __pyx_ptype_5numpy_ndarray, 1, "f_mass", 0))) __PYX_ERR(0, 6779, __pyx_L1_error)
35855  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_du), __pyx_ptype_5numpy_ndarray, 1, "df_mass_du", 0))) __PYX_ERR(0, 6780, __pyx_L1_error)
35856  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "df_mass_dv", 0))) __PYX_ERR(0, 6781, __pyx_L1_error)
35857  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_mass), __pyx_ptype_5numpy_ndarray, 1, "flux_mass", 0))) __PYX_ERR(0, 6782, __pyx_L1_error)
35858  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_umom), __pyx_ptype_5numpy_ndarray, 1, "flux_umom", 0))) __PYX_ERR(0, 6783, __pyx_L1_error)
35859  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_vmom), __pyx_ptype_5numpy_ndarray, 1, "flux_vmom", 0))) __PYX_ERR(0, 6784, __pyx_L1_error)
35860  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_du", 0))) __PYX_ERR(0, 6785, __pyx_L1_error)
35861  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_dv", 0))) __PYX_ERR(0, 6786, __pyx_L1_error)
35862  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_dp", 0))) __PYX_ERR(0, 6787, __pyx_L1_error)
35863  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_dp", 0))) __PYX_ERR(0, 6788, __pyx_L1_error)
35864  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_velocity), __pyx_ptype_5numpy_ndarray, 1, "velocity", 0))) __PYX_ERR(0, 6789, __pyx_L1_error)
35865  __pyx_r = __pyx_pf_14cnumericalFlux_200calculateGlobalExteriorNumericalAdvectiveFluxStokes2D(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_p, __pyx_v_isDOFBoundary_u, __pyx_v_isDOFBoundary_v, __pyx_v_n, __pyx_v_bc_p, __pyx_v_bc_f_mass, __pyx_v_p, __pyx_v_f_mass, __pyx_v_df_mass_du, __pyx_v_df_mass_dv, __pyx_v_flux_mass, __pyx_v_flux_umom, __pyx_v_flux_vmom, __pyx_v_dflux_mass_du, __pyx_v_dflux_mass_dv, __pyx_v_dflux_umom_dp, __pyx_v_dflux_vmom_dp, __pyx_v_velocity);
35866 
35867  /* function exit code */
35868  goto __pyx_L0;
35869  __pyx_L1_error:;
35870  __pyx_r = NULL;
35871  __pyx_L0:;
35872  __Pyx_RefNannyFinishContext();
35873  return __pyx_r;
35874 }
35875 
35876 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) {
35877  PyObject *__pyx_r = NULL;
35878  __Pyx_RefNannyDeclarations
35879  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxStokes2D", 0);
35880 
35881  /* "cnumericalFlux.pyx":6790
35882  * np.ndarray dflux_vmom_dp,
35883  * np.ndarray velocity):
35884  * ccalculateGlobalExteriorNumericalAdvectiveFluxStokes2D(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
35885  * f_mass.shape[1],
35886  * f_mass.shape[2],
35887  */
35888  calculateGlobalExteriorNumericalAdvectiveFluxStokes2D((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_f_mass->dimensions[1]), (__pyx_v_f_mass->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_p->data), ((double *)__pyx_v_bc_f_mass->data), ((double *)__pyx_v_p->data), ((double *)__pyx_v_f_mass->data), ((double *)__pyx_v_df_mass_du->data), ((double *)__pyx_v_df_mass_dv->data), ((double *)__pyx_v_flux_mass->data), ((double *)__pyx_v_flux_umom->data), ((double *)__pyx_v_flux_vmom->data), ((double *)__pyx_v_dflux_mass_du->data), ((double *)__pyx_v_dflux_mass_dv->data), ((double *)__pyx_v_dflux_umom_dp->data), ((double *)__pyx_v_dflux_vmom_dp->data), ((double *)__pyx_v_velocity->data));
35889 
35890  /* "cnumericalFlux.pyx":6769
35891  * <double*> penalty.data,
35892  * <double*> fluxJacobian.data)
35893  * def calculateGlobalExteriorNumericalAdvectiveFluxStokes2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
35894  * np.ndarray elementBoundaryElements,
35895  * np.ndarray elementBoundaryLocalElementBoundaries,
35896  */
35897 
35898  /* function exit code */
35899  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
35900  __Pyx_XGIVEREF(__pyx_r);
35901  __Pyx_RefNannyFinishContext();
35902  return __pyx_r;
35903 }
35904 
35905 /* "cnumericalFlux.pyx":6814
35906  * <double*> dflux_vmom_dp.data,
35907  * <double*> velocity.data)
35908  * def calculateGlobalExteriorNumericalAdvectiveFluxStokes3D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
35909  * np.ndarray elementBoundaryElements,
35910  * np.ndarray elementBoundaryLocalElementBoundaries,
35911  */
35912 
35913 /* Python wrapper */
35914 static PyObject *__pyx_pw_14cnumericalFlux_203calculateGlobalExteriorNumericalAdvectiveFluxStokes3D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
35915 static PyMethodDef __pyx_mdef_14cnumericalFlux_203calculateGlobalExteriorNumericalAdvectiveFluxStokes3D = {"calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_203calculateGlobalExteriorNumericalAdvectiveFluxStokes3D, METH_VARARGS|METH_KEYWORDS, 0};
35916 static PyObject *__pyx_pw_14cnumericalFlux_203calculateGlobalExteriorNumericalAdvectiveFluxStokes3D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
35917  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
35918  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
35919  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
35920  PyArrayObject *__pyx_v_isDOFBoundary_p = 0;
35921  PyArrayObject *__pyx_v_isDOFBoundary_u = 0;
35922  PyArrayObject *__pyx_v_isDOFBoundary_v = 0;
35923  PyArrayObject *__pyx_v_isDOFBoundary_w = 0;
35924  PyArrayObject *__pyx_v_n = 0;
35925  PyArrayObject *__pyx_v_bc_p = 0;
35926  PyArrayObject *__pyx_v_bc_f_mass = 0;
35927  PyArrayObject *__pyx_v_p = 0;
35928  PyArrayObject *__pyx_v_f_mass = 0;
35929  PyArrayObject *__pyx_v_df_mass_du = 0;
35930  PyArrayObject *__pyx_v_df_mass_dv = 0;
35931  PyArrayObject *__pyx_v_df_mass_dw = 0;
35932  PyArrayObject *__pyx_v_flux_mass = 0;
35933  PyArrayObject *__pyx_v_flux_umom = 0;
35934  PyArrayObject *__pyx_v_flux_vmom = 0;
35935  PyArrayObject *__pyx_v_flux_wmom = 0;
35936  PyArrayObject *__pyx_v_dflux_mass_du = 0;
35937  PyArrayObject *__pyx_v_dflux_mass_dv = 0;
35938  PyArrayObject *__pyx_v_dflux_mass_dw = 0;
35939  PyArrayObject *__pyx_v_dflux_umom_dp = 0;
35940  PyArrayObject *__pyx_v_dflux_vmom_dp = 0;
35941  PyArrayObject *__pyx_v_dflux_wmom_dp = 0;
35942  PyArrayObject *__pyx_v_velocity = 0;
35943  int __pyx_lineno = 0;
35944  const char *__pyx_filename = NULL;
35945  int __pyx_clineno = 0;
35946  PyObject *__pyx_r = 0;
35947  __Pyx_RefNannyDeclarations
35948  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D (wrapper)", 0);
35949  {
35950  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isDOFBoundary_p,&__pyx_n_s_isDOFBoundary_u,&__pyx_n_s_isDOFBoundary_v,&__pyx_n_s_isDOFBoundary_w,&__pyx_n_s_n,&__pyx_n_s_bc_p,&__pyx_n_s_bc_f_mass,&__pyx_n_s_p,&__pyx_n_s_f_mass,&__pyx_n_s_df_mass_du,&__pyx_n_s_df_mass_dv,&__pyx_n_s_df_mass_dw,&__pyx_n_s_flux_mass,&__pyx_n_s_flux_umom,&__pyx_n_s_flux_vmom,&__pyx_n_s_flux_wmom,&__pyx_n_s_dflux_mass_du,&__pyx_n_s_dflux_mass_dv,&__pyx_n_s_dflux_mass_dw,&__pyx_n_s_dflux_umom_dp,&__pyx_n_s_dflux_vmom_dp,&__pyx_n_s_dflux_wmom_dp,&__pyx_n_s_velocity,0};
35951  PyObject* values[26] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
35952  if (unlikely(__pyx_kwds)) {
35953  Py_ssize_t kw_args;
35954  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
35955  switch (pos_args) {
35956  case 26: values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
35957  CYTHON_FALLTHROUGH;
35958  case 25: values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
35959  CYTHON_FALLTHROUGH;
35960  case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
35961  CYTHON_FALLTHROUGH;
35962  case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
35963  CYTHON_FALLTHROUGH;
35964  case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
35965  CYTHON_FALLTHROUGH;
35966  case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
35967  CYTHON_FALLTHROUGH;
35968  case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
35969  CYTHON_FALLTHROUGH;
35970  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
35971  CYTHON_FALLTHROUGH;
35972  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
35973  CYTHON_FALLTHROUGH;
35974  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
35975  CYTHON_FALLTHROUGH;
35976  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
35977  CYTHON_FALLTHROUGH;
35978  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
35979  CYTHON_FALLTHROUGH;
35980  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
35981  CYTHON_FALLTHROUGH;
35982  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
35983  CYTHON_FALLTHROUGH;
35984  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
35985  CYTHON_FALLTHROUGH;
35986  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
35987  CYTHON_FALLTHROUGH;
35988  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
35989  CYTHON_FALLTHROUGH;
35990  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
35991  CYTHON_FALLTHROUGH;
35992  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
35993  CYTHON_FALLTHROUGH;
35994  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
35995  CYTHON_FALLTHROUGH;
35996  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
35997  CYTHON_FALLTHROUGH;
35998  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
35999  CYTHON_FALLTHROUGH;
36000  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
36001  CYTHON_FALLTHROUGH;
36002  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
36003  CYTHON_FALLTHROUGH;
36004  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
36005  CYTHON_FALLTHROUGH;
36006  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36007  CYTHON_FALLTHROUGH;
36008  case 0: break;
36009  default: goto __pyx_L5_argtuple_error;
36010  }
36011  kw_args = PyDict_Size(__pyx_kwds);
36012  switch (pos_args) {
36013  case 0:
36014  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
36015  else goto __pyx_L5_argtuple_error;
36016  CYTHON_FALLTHROUGH;
36017  case 1:
36018  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
36019  else {
36020  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 1); __PYX_ERR(0, 6814, __pyx_L3_error)
36021  }
36022  CYTHON_FALLTHROUGH;
36023  case 2:
36024  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
36025  else {
36026  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 2); __PYX_ERR(0, 6814, __pyx_L3_error)
36027  }
36028  CYTHON_FALLTHROUGH;
36029  case 3:
36030  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_p)) != 0)) kw_args--;
36031  else {
36032  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 3); __PYX_ERR(0, 6814, __pyx_L3_error)
36033  }
36034  CYTHON_FALLTHROUGH;
36035  case 4:
36036  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_u)) != 0)) kw_args--;
36037  else {
36038  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 4); __PYX_ERR(0, 6814, __pyx_L3_error)
36039  }
36040  CYTHON_FALLTHROUGH;
36041  case 5:
36042  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_v)) != 0)) kw_args--;
36043  else {
36044  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 5); __PYX_ERR(0, 6814, __pyx_L3_error)
36045  }
36046  CYTHON_FALLTHROUGH;
36047  case 6:
36048  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary_w)) != 0)) kw_args--;
36049  else {
36050  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 6); __PYX_ERR(0, 6814, __pyx_L3_error)
36051  }
36052  CYTHON_FALLTHROUGH;
36053  case 7:
36054  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
36055  else {
36056  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 7); __PYX_ERR(0, 6814, __pyx_L3_error)
36057  }
36058  CYTHON_FALLTHROUGH;
36059  case 8:
36060  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_p)) != 0)) kw_args--;
36061  else {
36062  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 8); __PYX_ERR(0, 6814, __pyx_L3_error)
36063  }
36064  CYTHON_FALLTHROUGH;
36065  case 9:
36066  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bc_f_mass)) != 0)) kw_args--;
36067  else {
36068  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 9); __PYX_ERR(0, 6814, __pyx_L3_error)
36069  }
36070  CYTHON_FALLTHROUGH;
36071  case 10:
36072  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--;
36073  else {
36074  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 10); __PYX_ERR(0, 6814, __pyx_L3_error)
36075  }
36076  CYTHON_FALLTHROUGH;
36077  case 11:
36078  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f_mass)) != 0)) kw_args--;
36079  else {
36080  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 11); __PYX_ERR(0, 6814, __pyx_L3_error)
36081  }
36082  CYTHON_FALLTHROUGH;
36083  case 12:
36084  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_du)) != 0)) kw_args--;
36085  else {
36086  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 12); __PYX_ERR(0, 6814, __pyx_L3_error)
36087  }
36088  CYTHON_FALLTHROUGH;
36089  case 13:
36090  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_dv)) != 0)) kw_args--;
36091  else {
36092  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 13); __PYX_ERR(0, 6814, __pyx_L3_error)
36093  }
36094  CYTHON_FALLTHROUGH;
36095  case 14:
36096  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_df_mass_dw)) != 0)) kw_args--;
36097  else {
36098  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 14); __PYX_ERR(0, 6814, __pyx_L3_error)
36099  }
36100  CYTHON_FALLTHROUGH;
36101  case 15:
36102  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_mass)) != 0)) kw_args--;
36103  else {
36104  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 15); __PYX_ERR(0, 6814, __pyx_L3_error)
36105  }
36106  CYTHON_FALLTHROUGH;
36107  case 16:
36108  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_umom)) != 0)) kw_args--;
36109  else {
36110  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 16); __PYX_ERR(0, 6814, __pyx_L3_error)
36111  }
36112  CYTHON_FALLTHROUGH;
36113  case 17:
36114  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_vmom)) != 0)) kw_args--;
36115  else {
36116  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 17); __PYX_ERR(0, 6814, __pyx_L3_error)
36117  }
36118  CYTHON_FALLTHROUGH;
36119  case 18:
36120  if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flux_wmom)) != 0)) kw_args--;
36121  else {
36122  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 18); __PYX_ERR(0, 6814, __pyx_L3_error)
36123  }
36124  CYTHON_FALLTHROUGH;
36125  case 19:
36126  if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_du)) != 0)) kw_args--;
36127  else {
36128  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 19); __PYX_ERR(0, 6814, __pyx_L3_error)
36129  }
36130  CYTHON_FALLTHROUGH;
36131  case 20:
36132  if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_dv)) != 0)) kw_args--;
36133  else {
36134  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 20); __PYX_ERR(0, 6814, __pyx_L3_error)
36135  }
36136  CYTHON_FALLTHROUGH;
36137  case 21:
36138  if (likely((values[21] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_mass_dw)) != 0)) kw_args--;
36139  else {
36140  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 21); __PYX_ERR(0, 6814, __pyx_L3_error)
36141  }
36142  CYTHON_FALLTHROUGH;
36143  case 22:
36144  if (likely((values[22] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_umom_dp)) != 0)) kw_args--;
36145  else {
36146  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 22); __PYX_ERR(0, 6814, __pyx_L3_error)
36147  }
36148  CYTHON_FALLTHROUGH;
36149  case 23:
36150  if (likely((values[23] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_vmom_dp)) != 0)) kw_args--;
36151  else {
36152  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 23); __PYX_ERR(0, 6814, __pyx_L3_error)
36153  }
36154  CYTHON_FALLTHROUGH;
36155  case 24:
36156  if (likely((values[24] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dflux_wmom_dp)) != 0)) kw_args--;
36157  else {
36158  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 24); __PYX_ERR(0, 6814, __pyx_L3_error)
36159  }
36160  CYTHON_FALLTHROUGH;
36161  case 25:
36162  if (likely((values[25] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_velocity)) != 0)) kw_args--;
36163  else {
36164  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, 25); __PYX_ERR(0, 6814, __pyx_L3_error)
36165  }
36166  }
36167  if (unlikely(kw_args > 0)) {
36168  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateGlobalExteriorNumericalAdvectiveFluxStokes3D") < 0)) __PYX_ERR(0, 6814, __pyx_L3_error)
36169  }
36170  } else if (PyTuple_GET_SIZE(__pyx_args) != 26) {
36171  goto __pyx_L5_argtuple_error;
36172  } else {
36173  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36174  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
36175  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
36176  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
36177  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
36178  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
36179  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
36180  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
36181  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
36182  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
36183  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
36184  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
36185  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
36186  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
36187  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
36188  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
36189  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
36190  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
36191  values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
36192  values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
36193  values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
36194  values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
36195  values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
36196  values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
36197  values[24] = PyTuple_GET_ITEM(__pyx_args, 24);
36198  values[25] = PyTuple_GET_ITEM(__pyx_args, 25);
36199  }
36200  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
36201  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
36202  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
36203  __pyx_v_isDOFBoundary_p = ((PyArrayObject *)values[3]);
36204  __pyx_v_isDOFBoundary_u = ((PyArrayObject *)values[4]);
36205  __pyx_v_isDOFBoundary_v = ((PyArrayObject *)values[5]);
36206  __pyx_v_isDOFBoundary_w = ((PyArrayObject *)values[6]);
36207  __pyx_v_n = ((PyArrayObject *)values[7]);
36208  __pyx_v_bc_p = ((PyArrayObject *)values[8]);
36209  __pyx_v_bc_f_mass = ((PyArrayObject *)values[9]);
36210  __pyx_v_p = ((PyArrayObject *)values[10]);
36211  __pyx_v_f_mass = ((PyArrayObject *)values[11]);
36212  __pyx_v_df_mass_du = ((PyArrayObject *)values[12]);
36213  __pyx_v_df_mass_dv = ((PyArrayObject *)values[13]);
36214  __pyx_v_df_mass_dw = ((PyArrayObject *)values[14]);
36215  __pyx_v_flux_mass = ((PyArrayObject *)values[15]);
36216  __pyx_v_flux_umom = ((PyArrayObject *)values[16]);
36217  __pyx_v_flux_vmom = ((PyArrayObject *)values[17]);
36218  __pyx_v_flux_wmom = ((PyArrayObject *)values[18]);
36219  __pyx_v_dflux_mass_du = ((PyArrayObject *)values[19]);
36220  __pyx_v_dflux_mass_dv = ((PyArrayObject *)values[20]);
36221  __pyx_v_dflux_mass_dw = ((PyArrayObject *)values[21]);
36222  __pyx_v_dflux_umom_dp = ((PyArrayObject *)values[22]);
36223  __pyx_v_dflux_vmom_dp = ((PyArrayObject *)values[23]);
36224  __pyx_v_dflux_wmom_dp = ((PyArrayObject *)values[24]);
36225  __pyx_v_velocity = ((PyArrayObject *)values[25]);
36226  }
36227  goto __pyx_L4_argument_unpacking_done;
36228  __pyx_L5_argtuple_error:;
36229  __Pyx_RaiseArgtupleInvalid("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 1, 26, 26, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6814, __pyx_L3_error)
36230  __pyx_L3_error:;
36231  __Pyx_AddTraceback("cnumericalFlux.calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", __pyx_clineno, __pyx_lineno, __pyx_filename);
36232  __Pyx_RefNannyFinishContext();
36233  return NULL;
36234  __pyx_L4_argument_unpacking_done:;
36235  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6814, __pyx_L1_error)
36236  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6815, __pyx_L1_error)
36237  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6816, __pyx_L1_error)
36238  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_p), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_p", 0))) __PYX_ERR(0, 6817, __pyx_L1_error)
36239  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_u), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_u", 0))) __PYX_ERR(0, 6818, __pyx_L1_error)
36240  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_v), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_v", 0))) __PYX_ERR(0, 6819, __pyx_L1_error)
36241  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary_w), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary_w", 0))) __PYX_ERR(0, 6820, __pyx_L1_error)
36242  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6821, __pyx_L1_error)
36243  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_p), __pyx_ptype_5numpy_ndarray, 1, "bc_p", 0))) __PYX_ERR(0, 6822, __pyx_L1_error)
36244  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bc_f_mass), __pyx_ptype_5numpy_ndarray, 1, "bc_f_mass", 0))) __PYX_ERR(0, 6823, __pyx_L1_error)
36245  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p), __pyx_ptype_5numpy_ndarray, 1, "p", 0))) __PYX_ERR(0, 6824, __pyx_L1_error)
36246  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f_mass), __pyx_ptype_5numpy_ndarray, 1, "f_mass", 0))) __PYX_ERR(0, 6825, __pyx_L1_error)
36247  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_du), __pyx_ptype_5numpy_ndarray, 1, "df_mass_du", 0))) __PYX_ERR(0, 6826, __pyx_L1_error)
36248  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "df_mass_dv", 0))) __PYX_ERR(0, 6827, __pyx_L1_error)
36249  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df_mass_dw), __pyx_ptype_5numpy_ndarray, 1, "df_mass_dw", 0))) __PYX_ERR(0, 6828, __pyx_L1_error)
36250  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_mass), __pyx_ptype_5numpy_ndarray, 1, "flux_mass", 0))) __PYX_ERR(0, 6829, __pyx_L1_error)
36251  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_umom), __pyx_ptype_5numpy_ndarray, 1, "flux_umom", 0))) __PYX_ERR(0, 6830, __pyx_L1_error)
36252  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_vmom), __pyx_ptype_5numpy_ndarray, 1, "flux_vmom", 0))) __PYX_ERR(0, 6831, __pyx_L1_error)
36253  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_wmom), __pyx_ptype_5numpy_ndarray, 1, "flux_wmom", 0))) __PYX_ERR(0, 6832, __pyx_L1_error)
36254  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_du), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_du", 0))) __PYX_ERR(0, 6833, __pyx_L1_error)
36255  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_dv), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_dv", 0))) __PYX_ERR(0, 6834, __pyx_L1_error)
36256  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_mass_dw), __pyx_ptype_5numpy_ndarray, 1, "dflux_mass_dw", 0))) __PYX_ERR(0, 6835, __pyx_L1_error)
36257  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_umom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_umom_dp", 0))) __PYX_ERR(0, 6836, __pyx_L1_error)
36258  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_vmom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_vmom_dp", 0))) __PYX_ERR(0, 6837, __pyx_L1_error)
36259  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dflux_wmom_dp), __pyx_ptype_5numpy_ndarray, 1, "dflux_wmom_dp", 0))) __PYX_ERR(0, 6838, __pyx_L1_error)
36260  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_velocity), __pyx_ptype_5numpy_ndarray, 1, "velocity", 0))) __PYX_ERR(0, 6839, __pyx_L1_error)
36261  __pyx_r = __pyx_pf_14cnumericalFlux_202calculateGlobalExteriorNumericalAdvectiveFluxStokes3D(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isDOFBoundary_p, __pyx_v_isDOFBoundary_u, __pyx_v_isDOFBoundary_v, __pyx_v_isDOFBoundary_w, __pyx_v_n, __pyx_v_bc_p, __pyx_v_bc_f_mass, __pyx_v_p, __pyx_v_f_mass, __pyx_v_df_mass_du, __pyx_v_df_mass_dv, __pyx_v_df_mass_dw, __pyx_v_flux_mass, __pyx_v_flux_umom, __pyx_v_flux_vmom, __pyx_v_flux_wmom, __pyx_v_dflux_mass_du, __pyx_v_dflux_mass_dv, __pyx_v_dflux_mass_dw, __pyx_v_dflux_umom_dp, __pyx_v_dflux_vmom_dp, __pyx_v_dflux_wmom_dp, __pyx_v_velocity);
36262 
36263  /* function exit code */
36264  goto __pyx_L0;
36265  __pyx_L1_error:;
36266  __pyx_r = NULL;
36267  __pyx_L0:;
36268  __Pyx_RefNannyFinishContext();
36269  return __pyx_r;
36270 }
36271 
36272 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) {
36273  PyObject *__pyx_r = NULL;
36274  __Pyx_RefNannyDeclarations
36275  __Pyx_RefNannySetupContext("calculateGlobalExteriorNumericalAdvectiveFluxStokes3D", 0);
36276 
36277  /* "cnumericalFlux.pyx":6840
36278  * np.ndarray dflux_wmom_dp,
36279  * np.ndarray velocity):
36280  * ccalculateGlobalExteriorNumericalAdvectiveFluxStokes3D(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
36281  * f_mass.shape[1],
36282  * f_mass.shape[2],
36283  */
36284  calculateGlobalExteriorNumericalAdvectiveFluxStokes3D((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_f_mass->dimensions[1]), (__pyx_v_f_mass->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isDOFBoundary_p->data), ((int *)__pyx_v_isDOFBoundary_u->data), ((int *)__pyx_v_isDOFBoundary_v->data), ((int *)__pyx_v_isDOFBoundary_w->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_bc_p->data), ((double *)__pyx_v_bc_f_mass->data), ((double *)__pyx_v_p->data), ((double *)__pyx_v_f_mass->data), ((double *)__pyx_v_df_mass_du->data), ((double *)__pyx_v_df_mass_dv->data), ((double *)__pyx_v_df_mass_dw->data), ((double *)__pyx_v_flux_mass->data), ((double *)__pyx_v_flux_umom->data), ((double *)__pyx_v_flux_vmom->data), ((double *)__pyx_v_flux_wmom->data), ((double *)__pyx_v_dflux_mass_du->data), ((double *)__pyx_v_dflux_mass_dv->data), ((double *)__pyx_v_dflux_mass_dw->data), ((double *)__pyx_v_dflux_umom_dp->data), ((double *)__pyx_v_dflux_vmom_dp->data), ((double *)__pyx_v_dflux_wmom_dp->data), ((double *)__pyx_v_velocity->data));
36285 
36286  /* "cnumericalFlux.pyx":6814
36287  * <double*> dflux_vmom_dp.data,
36288  * <double*> velocity.data)
36289  * def calculateGlobalExteriorNumericalAdvectiveFluxStokes3D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
36290  * np.ndarray elementBoundaryElements,
36291  * np.ndarray elementBoundaryLocalElementBoundaries,
36292  */
36293 
36294  /* function exit code */
36295  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36296  __Pyx_XGIVEREF(__pyx_r);
36297  __Pyx_RefNannyFinishContext();
36298  return __pyx_r;
36299 }
36300 
36301 /* "cnumericalFlux.pyx":6869
36302  * <double*> dflux_wmom_dp.data,
36303  * <double*> velocity.data)
36304  * def applySeepageFace(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
36305  * np.ndarray elementBoundaryElements,
36306  * np.ndarray elementBoundaryLocalElementBoundaries,
36307  */
36308 
36309 /* Python wrapper */
36310 static PyObject *__pyx_pw_14cnumericalFlux_205applySeepageFace(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
36311 static PyMethodDef __pyx_mdef_14cnumericalFlux_205applySeepageFace = {"applySeepageFace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_205applySeepageFace, METH_VARARGS|METH_KEYWORDS, 0};
36312 static PyObject *__pyx_pw_14cnumericalFlux_205applySeepageFace(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
36313  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
36314  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
36315  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
36316  PyArrayObject *__pyx_v_isSeepageFace = 0;
36317  PyArrayObject *__pyx_v_isDOFBoundary = 0;
36318  double __pyx_v_epsFact;
36319  PyArrayObject *__pyx_v_elementDiameters = 0;
36320  PyArrayObject *__pyx_v_g = 0;
36321  PyArrayObject *__pyx_v_n = 0;
36322  PyArrayObject *__pyx_v_grad_u = 0;
36323  PyArrayObject *__pyx_v_u = 0;
36324  PyArrayObject *__pyx_v_advectiveFlux = 0;
36325  PyArrayObject *__pyx_v_diffusiveFlux = 0;
36326  int __pyx_lineno = 0;
36327  const char *__pyx_filename = NULL;
36328  int __pyx_clineno = 0;
36329  PyObject *__pyx_r = 0;
36330  __Pyx_RefNannyDeclarations
36331  __Pyx_RefNannySetupContext("applySeepageFace (wrapper)", 0);
36332  {
36333  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isSeepageFace,&__pyx_n_s_isDOFBoundary,&__pyx_n_s_epsFact,&__pyx_n_s_elementDiameters,&__pyx_n_s_g,&__pyx_n_s_n,&__pyx_n_s_grad_u,&__pyx_n_s_u,&__pyx_n_s_advectiveFlux,&__pyx_n_s_diffusiveFlux,0};
36334  PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
36335  if (unlikely(__pyx_kwds)) {
36336  Py_ssize_t kw_args;
36337  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
36338  switch (pos_args) {
36339  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
36340  CYTHON_FALLTHROUGH;
36341  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
36342  CYTHON_FALLTHROUGH;
36343  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
36344  CYTHON_FALLTHROUGH;
36345  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
36346  CYTHON_FALLTHROUGH;
36347  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
36348  CYTHON_FALLTHROUGH;
36349  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
36350  CYTHON_FALLTHROUGH;
36351  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
36352  CYTHON_FALLTHROUGH;
36353  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
36354  CYTHON_FALLTHROUGH;
36355  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
36356  CYTHON_FALLTHROUGH;
36357  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
36358  CYTHON_FALLTHROUGH;
36359  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
36360  CYTHON_FALLTHROUGH;
36361  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
36362  CYTHON_FALLTHROUGH;
36363  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36364  CYTHON_FALLTHROUGH;
36365  case 0: break;
36366  default: goto __pyx_L5_argtuple_error;
36367  }
36368  kw_args = PyDict_Size(__pyx_kwds);
36369  switch (pos_args) {
36370  case 0:
36371  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
36372  else goto __pyx_L5_argtuple_error;
36373  CYTHON_FALLTHROUGH;
36374  case 1:
36375  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
36376  else {
36377  __Pyx_RaiseArgtupleInvalid("applySeepageFace", 1, 13, 13, 1); __PYX_ERR(0, 6869, __pyx_L3_error)
36378  }
36379  CYTHON_FALLTHROUGH;
36380  case 2:
36381  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
36382  else {
36383  __Pyx_RaiseArgtupleInvalid("applySeepageFace", 1, 13, 13, 2); __PYX_ERR(0, 6869, __pyx_L3_error)
36384  }
36385  CYTHON_FALLTHROUGH;
36386  case 3:
36387  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isSeepageFace)) != 0)) kw_args--;
36388  else {
36389  __Pyx_RaiseArgtupleInvalid("applySeepageFace", 1, 13, 13, 3); __PYX_ERR(0, 6869, __pyx_L3_error)
36390  }
36391  CYTHON_FALLTHROUGH;
36392  case 4:
36393  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isDOFBoundary)) != 0)) kw_args--;
36394  else {
36395  __Pyx_RaiseArgtupleInvalid("applySeepageFace", 1, 13, 13, 4); __PYX_ERR(0, 6869, __pyx_L3_error)
36396  }
36397  CYTHON_FALLTHROUGH;
36398  case 5:
36399  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_epsFact)) != 0)) kw_args--;
36400  else {
36401  __Pyx_RaiseArgtupleInvalid("applySeepageFace", 1, 13, 13, 5); __PYX_ERR(0, 6869, __pyx_L3_error)
36402  }
36403  CYTHON_FALLTHROUGH;
36404  case 6:
36405  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementDiameters)) != 0)) kw_args--;
36406  else {
36407  __Pyx_RaiseArgtupleInvalid("applySeepageFace", 1, 13, 13, 6); __PYX_ERR(0, 6869, __pyx_L3_error)
36408  }
36409  CYTHON_FALLTHROUGH;
36410  case 7:
36411  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--;
36412  else {
36413  __Pyx_RaiseArgtupleInvalid("applySeepageFace", 1, 13, 13, 7); __PYX_ERR(0, 6869, __pyx_L3_error)
36414  }
36415  CYTHON_FALLTHROUGH;
36416  case 8:
36417  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
36418  else {
36419  __Pyx_RaiseArgtupleInvalid("applySeepageFace", 1, 13, 13, 8); __PYX_ERR(0, 6869, __pyx_L3_error)
36420  }
36421  CYTHON_FALLTHROUGH;
36422  case 9:
36423  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_u)) != 0)) kw_args--;
36424  else {
36425  __Pyx_RaiseArgtupleInvalid("applySeepageFace", 1, 13, 13, 9); __PYX_ERR(0, 6869, __pyx_L3_error)
36426  }
36427  CYTHON_FALLTHROUGH;
36428  case 10:
36429  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
36430  else {
36431  __Pyx_RaiseArgtupleInvalid("applySeepageFace", 1, 13, 13, 10); __PYX_ERR(0, 6869, __pyx_L3_error)
36432  }
36433  CYTHON_FALLTHROUGH;
36434  case 11:
36435  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_advectiveFlux)) != 0)) kw_args--;
36436  else {
36437  __Pyx_RaiseArgtupleInvalid("applySeepageFace", 1, 13, 13, 11); __PYX_ERR(0, 6869, __pyx_L3_error)
36438  }
36439  CYTHON_FALLTHROUGH;
36440  case 12:
36441  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux)) != 0)) kw_args--;
36442  else {
36443  __Pyx_RaiseArgtupleInvalid("applySeepageFace", 1, 13, 13, 12); __PYX_ERR(0, 6869, __pyx_L3_error)
36444  }
36445  }
36446  if (unlikely(kw_args > 0)) {
36447  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "applySeepageFace") < 0)) __PYX_ERR(0, 6869, __pyx_L3_error)
36448  }
36449  } else if (PyTuple_GET_SIZE(__pyx_args) != 13) {
36450  goto __pyx_L5_argtuple_error;
36451  } else {
36452  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36453  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
36454  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
36455  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
36456  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
36457  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
36458  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
36459  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
36460  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
36461  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
36462  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
36463  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
36464  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
36465  }
36466  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
36467  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
36468  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
36469  __pyx_v_isSeepageFace = ((PyArrayObject *)values[3]);
36470  __pyx_v_isDOFBoundary = ((PyArrayObject *)values[4]);
36471  __pyx_v_epsFact = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_epsFact == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6874, __pyx_L3_error)
36472  __pyx_v_elementDiameters = ((PyArrayObject *)values[6]);
36473  __pyx_v_g = ((PyArrayObject *)values[7]);
36474  __pyx_v_n = ((PyArrayObject *)values[8]);
36475  __pyx_v_grad_u = ((PyArrayObject *)values[9]);
36476  __pyx_v_u = ((PyArrayObject *)values[10]);
36477  __pyx_v_advectiveFlux = ((PyArrayObject *)values[11]);
36478  __pyx_v_diffusiveFlux = ((PyArrayObject *)values[12]);
36479  }
36480  goto __pyx_L4_argument_unpacking_done;
36481  __pyx_L5_argtuple_error:;
36482  __Pyx_RaiseArgtupleInvalid("applySeepageFace", 1, 13, 13, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6869, __pyx_L3_error)
36483  __pyx_L3_error:;
36484  __Pyx_AddTraceback("cnumericalFlux.applySeepageFace", __pyx_clineno, __pyx_lineno, __pyx_filename);
36485  __Pyx_RefNannyFinishContext();
36486  return NULL;
36487  __pyx_L4_argument_unpacking_done:;
36488  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6869, __pyx_L1_error)
36489  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6870, __pyx_L1_error)
36490  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6871, __pyx_L1_error)
36491  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isSeepageFace), __pyx_ptype_5numpy_ndarray, 1, "isSeepageFace", 0))) __PYX_ERR(0, 6872, __pyx_L1_error)
36492  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isDOFBoundary), __pyx_ptype_5numpy_ndarray, 1, "isDOFBoundary", 0))) __PYX_ERR(0, 6873, __pyx_L1_error)
36493  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameters), __pyx_ptype_5numpy_ndarray, 1, "elementDiameters", 0))) __PYX_ERR(0, 6875, __pyx_L1_error)
36494  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_g), __pyx_ptype_5numpy_ndarray, 1, "g", 0))) __PYX_ERR(0, 6876, __pyx_L1_error)
36495  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6877, __pyx_L1_error)
36496  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_u), __pyx_ptype_5numpy_ndarray, 1, "grad_u", 0))) __PYX_ERR(0, 6878, __pyx_L1_error)
36497  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 6879, __pyx_L1_error)
36498  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_advectiveFlux), __pyx_ptype_5numpy_ndarray, 1, "advectiveFlux", 0))) __PYX_ERR(0, 6880, __pyx_L1_error)
36499  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux", 0))) __PYX_ERR(0, 6881, __pyx_L1_error)
36500  __pyx_r = __pyx_pf_14cnumericalFlux_204applySeepageFace(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isSeepageFace, __pyx_v_isDOFBoundary, __pyx_v_epsFact, __pyx_v_elementDiameters, __pyx_v_g, __pyx_v_n, __pyx_v_grad_u, __pyx_v_u, __pyx_v_advectiveFlux, __pyx_v_diffusiveFlux);
36501 
36502  /* function exit code */
36503  goto __pyx_L0;
36504  __pyx_L1_error:;
36505  __pyx_r = NULL;
36506  __pyx_L0:;
36507  __Pyx_RefNannyFinishContext();
36508  return __pyx_r;
36509 }
36510 
36511 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) {
36512  PyObject *__pyx_r = NULL;
36513  __Pyx_RefNannyDeclarations
36514  PyObject *__pyx_t_1 = NULL;
36515  PyObject *__pyx_t_2 = NULL;
36516  int __pyx_t_3;
36517  int __pyx_lineno = 0;
36518  const char *__pyx_filename = NULL;
36519  int __pyx_clineno = 0;
36520  __Pyx_RefNannySetupContext("applySeepageFace", 0);
36521 
36522  /* "cnumericalFlux.pyx":6882
36523  * np.ndarray advectiveFlux,
36524  * np.ndarray diffusiveFlux):
36525  * capplySeepageFace(exteriorElementBoundaries.sape[0], # <<<<<<<<<<<<<<
36526  * grad_u.shape[1],
36527  * grad_u.shape[2],
36528  */
36529  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_n_s_sape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6882, __pyx_L1_error)
36530  __Pyx_GOTREF(__pyx_t_1);
36531  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6882, __pyx_L1_error)
36532  __Pyx_GOTREF(__pyx_t_2);
36533  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36534  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6882, __pyx_L1_error)
36535  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36536 
36537  /* "cnumericalFlux.pyx":6897
36538  * <double*> u.data,
36539  * <double*> advectiveFlux.data,
36540  * <double*> diffusiveFlux.data) # <<<<<<<<<<<<<<
36541  * def applySeepageFaceJacobian(np.ndarray exteriorElementBoundaries,
36542  * np.ndarray elementBoundaryElements,
36543  */
36544  applySeepageFace(__pyx_t_3, (__pyx_v_grad_u->dimensions[1]), (__pyx_v_grad_u->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isSeepageFace->data), ((int *)__pyx_v_isDOFBoundary->data), __pyx_v_epsFact, ((double *)__pyx_v_elementDiameters->data), ((double *)__pyx_v_g->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_grad_u->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_advectiveFlux->data), ((double *)__pyx_v_diffusiveFlux->data));
36545 
36546  /* "cnumericalFlux.pyx":6869
36547  * <double*> dflux_wmom_dp.data,
36548  * <double*> velocity.data)
36549  * def applySeepageFace(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
36550  * np.ndarray elementBoundaryElements,
36551  * np.ndarray elementBoundaryLocalElementBoundaries,
36552  */
36553 
36554  /* function exit code */
36555  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36556  goto __pyx_L0;
36557  __pyx_L1_error:;
36558  __Pyx_XDECREF(__pyx_t_1);
36559  __Pyx_XDECREF(__pyx_t_2);
36560  __Pyx_AddTraceback("cnumericalFlux.applySeepageFace", __pyx_clineno, __pyx_lineno, __pyx_filename);
36561  __pyx_r = NULL;
36562  __pyx_L0:;
36563  __Pyx_XGIVEREF(__pyx_r);
36564  __Pyx_RefNannyFinishContext();
36565  return __pyx_r;
36566 }
36567 
36568 /* "cnumericalFlux.pyx":6898
36569  * <double*> advectiveFlux.data,
36570  * <double*> diffusiveFlux.data)
36571  * def applySeepageFaceJacobian(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
36572  * np.ndarray elementBoundaryElements,
36573  * np.ndarray elementBoundaryLocalElementBoundaries,
36574  */
36575 
36576 /* Python wrapper */
36577 static PyObject *__pyx_pw_14cnumericalFlux_207applySeepageFaceJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
36578 static PyMethodDef __pyx_mdef_14cnumericalFlux_207applySeepageFaceJacobian = {"applySeepageFaceJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14cnumericalFlux_207applySeepageFaceJacobian, METH_VARARGS|METH_KEYWORDS, 0};
36579 static PyObject *__pyx_pw_14cnumericalFlux_207applySeepageFaceJacobian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
36580  PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
36581  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
36582  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
36583  PyArrayObject *__pyx_v_isSeepageFace = 0;
36584  double __pyx_v_epsFact;
36585  PyArrayObject *__pyx_v_elementDiameters = 0;
36586  PyArrayObject *__pyx_v_g = 0;
36587  PyArrayObject *__pyx_v_n = 0;
36588  PyArrayObject *__pyx_v_grad_u = 0;
36589  PyArrayObject *__pyx_v_u = 0;
36590  PyArrayObject *__pyx_v_advectiveFlux = 0;
36591  PyArrayObject *__pyx_v_diffusiveFlux = 0;
36592  PyArrayObject *__pyx_v_v = 0;
36593  PyArrayObject *__pyx_v_fluxJacobian = 0;
36594  int __pyx_lineno = 0;
36595  const char *__pyx_filename = NULL;
36596  int __pyx_clineno = 0;
36597  PyObject *__pyx_r = 0;
36598  __Pyx_RefNannyDeclarations
36599  __Pyx_RefNannySetupContext("applySeepageFaceJacobian (wrapper)", 0);
36600  {
36601  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_isSeepageFace,&__pyx_n_s_epsFact,&__pyx_n_s_elementDiameters,&__pyx_n_s_g,&__pyx_n_s_n,&__pyx_n_s_grad_u,&__pyx_n_s_u,&__pyx_n_s_advectiveFlux,&__pyx_n_s_diffusiveFlux,&__pyx_n_s_v,&__pyx_n_s_fluxJacobian,0};
36602  PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
36603  if (unlikely(__pyx_kwds)) {
36604  Py_ssize_t kw_args;
36605  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
36606  switch (pos_args) {
36607  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
36608  CYTHON_FALLTHROUGH;
36609  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
36610  CYTHON_FALLTHROUGH;
36611  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
36612  CYTHON_FALLTHROUGH;
36613  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
36614  CYTHON_FALLTHROUGH;
36615  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
36616  CYTHON_FALLTHROUGH;
36617  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
36618  CYTHON_FALLTHROUGH;
36619  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
36620  CYTHON_FALLTHROUGH;
36621  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
36622  CYTHON_FALLTHROUGH;
36623  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
36624  CYTHON_FALLTHROUGH;
36625  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
36626  CYTHON_FALLTHROUGH;
36627  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
36628  CYTHON_FALLTHROUGH;
36629  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
36630  CYTHON_FALLTHROUGH;
36631  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
36632  CYTHON_FALLTHROUGH;
36633  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36634  CYTHON_FALLTHROUGH;
36635  case 0: break;
36636  default: goto __pyx_L5_argtuple_error;
36637  }
36638  kw_args = PyDict_Size(__pyx_kwds);
36639  switch (pos_args) {
36640  case 0:
36641  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundaries)) != 0)) kw_args--;
36642  else goto __pyx_L5_argtuple_error;
36643  CYTHON_FALLTHROUGH;
36644  case 1:
36645  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
36646  else {
36647  __Pyx_RaiseArgtupleInvalid("applySeepageFaceJacobian", 1, 14, 14, 1); __PYX_ERR(0, 6898, __pyx_L3_error)
36648  }
36649  CYTHON_FALLTHROUGH;
36650  case 2:
36651  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
36652  else {
36653  __Pyx_RaiseArgtupleInvalid("applySeepageFaceJacobian", 1, 14, 14, 2); __PYX_ERR(0, 6898, __pyx_L3_error)
36654  }
36655  CYTHON_FALLTHROUGH;
36656  case 3:
36657  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isSeepageFace)) != 0)) kw_args--;
36658  else {
36659  __Pyx_RaiseArgtupleInvalid("applySeepageFaceJacobian", 1, 14, 14, 3); __PYX_ERR(0, 6898, __pyx_L3_error)
36660  }
36661  CYTHON_FALLTHROUGH;
36662  case 4:
36663  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_epsFact)) != 0)) kw_args--;
36664  else {
36665  __Pyx_RaiseArgtupleInvalid("applySeepageFaceJacobian", 1, 14, 14, 4); __PYX_ERR(0, 6898, __pyx_L3_error)
36666  }
36667  CYTHON_FALLTHROUGH;
36668  case 5:
36669  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementDiameters)) != 0)) kw_args--;
36670  else {
36671  __Pyx_RaiseArgtupleInvalid("applySeepageFaceJacobian", 1, 14, 14, 5); __PYX_ERR(0, 6898, __pyx_L3_error)
36672  }
36673  CYTHON_FALLTHROUGH;
36674  case 6:
36675  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--;
36676  else {
36677  __Pyx_RaiseArgtupleInvalid("applySeepageFaceJacobian", 1, 14, 14, 6); __PYX_ERR(0, 6898, __pyx_L3_error)
36678  }
36679  CYTHON_FALLTHROUGH;
36680  case 7:
36681  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
36682  else {
36683  __Pyx_RaiseArgtupleInvalid("applySeepageFaceJacobian", 1, 14, 14, 7); __PYX_ERR(0, 6898, __pyx_L3_error)
36684  }
36685  CYTHON_FALLTHROUGH;
36686  case 8:
36687  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grad_u)) != 0)) kw_args--;
36688  else {
36689  __Pyx_RaiseArgtupleInvalid("applySeepageFaceJacobian", 1, 14, 14, 8); __PYX_ERR(0, 6898, __pyx_L3_error)
36690  }
36691  CYTHON_FALLTHROUGH;
36692  case 9:
36693  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
36694  else {
36695  __Pyx_RaiseArgtupleInvalid("applySeepageFaceJacobian", 1, 14, 14, 9); __PYX_ERR(0, 6898, __pyx_L3_error)
36696  }
36697  CYTHON_FALLTHROUGH;
36698  case 10:
36699  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_advectiveFlux)) != 0)) kw_args--;
36700  else {
36701  __Pyx_RaiseArgtupleInvalid("applySeepageFaceJacobian", 1, 14, 14, 10); __PYX_ERR(0, 6898, __pyx_L3_error)
36702  }
36703  CYTHON_FALLTHROUGH;
36704  case 11:
36705  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffusiveFlux)) != 0)) kw_args--;
36706  else {
36707  __Pyx_RaiseArgtupleInvalid("applySeepageFaceJacobian", 1, 14, 14, 11); __PYX_ERR(0, 6898, __pyx_L3_error)
36708  }
36709  CYTHON_FALLTHROUGH;
36710  case 12:
36711  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
36712  else {
36713  __Pyx_RaiseArgtupleInvalid("applySeepageFaceJacobian", 1, 14, 14, 12); __PYX_ERR(0, 6898, __pyx_L3_error)
36714  }
36715  CYTHON_FALLTHROUGH;
36716  case 13:
36717  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fluxJacobian)) != 0)) kw_args--;
36718  else {
36719  __Pyx_RaiseArgtupleInvalid("applySeepageFaceJacobian", 1, 14, 14, 13); __PYX_ERR(0, 6898, __pyx_L3_error)
36720  }
36721  }
36722  if (unlikely(kw_args > 0)) {
36723  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "applySeepageFaceJacobian") < 0)) __PYX_ERR(0, 6898, __pyx_L3_error)
36724  }
36725  } else if (PyTuple_GET_SIZE(__pyx_args) != 14) {
36726  goto __pyx_L5_argtuple_error;
36727  } else {
36728  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
36729  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
36730  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
36731  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
36732  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
36733  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
36734  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
36735  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
36736  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
36737  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
36738  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
36739  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
36740  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
36741  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
36742  }
36743  __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
36744  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
36745  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
36746  __pyx_v_isSeepageFace = ((PyArrayObject *)values[3]);
36747  __pyx_v_epsFact = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_epsFact == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6902, __pyx_L3_error)
36748  __pyx_v_elementDiameters = ((PyArrayObject *)values[5]);
36749  __pyx_v_g = ((PyArrayObject *)values[6]);
36750  __pyx_v_n = ((PyArrayObject *)values[7]);
36751  __pyx_v_grad_u = ((PyArrayObject *)values[8]);
36752  __pyx_v_u = ((PyArrayObject *)values[9]);
36753  __pyx_v_advectiveFlux = ((PyArrayObject *)values[10]);
36754  __pyx_v_diffusiveFlux = ((PyArrayObject *)values[11]);
36755  __pyx_v_v = ((PyArrayObject *)values[12]);
36756  __pyx_v_fluxJacobian = ((PyArrayObject *)values[13]);
36757  }
36758  goto __pyx_L4_argument_unpacking_done;
36759  __pyx_L5_argtuple_error:;
36760  __Pyx_RaiseArgtupleInvalid("applySeepageFaceJacobian", 1, 14, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6898, __pyx_L3_error)
36761  __pyx_L3_error:;
36762  __Pyx_AddTraceback("cnumericalFlux.applySeepageFaceJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename);
36763  __Pyx_RefNannyFinishContext();
36764  return NULL;
36765  __pyx_L4_argument_unpacking_done:;
36766  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 6898, __pyx_L1_error)
36767  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 6899, __pyx_L1_error)
36768  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 6900, __pyx_L1_error)
36769  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isSeepageFace), __pyx_ptype_5numpy_ndarray, 1, "isSeepageFace", 0))) __PYX_ERR(0, 6901, __pyx_L1_error)
36770  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameters), __pyx_ptype_5numpy_ndarray, 1, "elementDiameters", 0))) __PYX_ERR(0, 6903, __pyx_L1_error)
36771  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_g), __pyx_ptype_5numpy_ndarray, 1, "g", 0))) __PYX_ERR(0, 6904, __pyx_L1_error)
36772  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 6905, __pyx_L1_error)
36773  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_u), __pyx_ptype_5numpy_ndarray, 1, "grad_u", 0))) __PYX_ERR(0, 6906, __pyx_L1_error)
36774  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 6907, __pyx_L1_error)
36775  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_advectiveFlux), __pyx_ptype_5numpy_ndarray, 1, "advectiveFlux", 0))) __PYX_ERR(0, 6908, __pyx_L1_error)
36776  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusiveFlux), __pyx_ptype_5numpy_ndarray, 1, "diffusiveFlux", 0))) __PYX_ERR(0, 6909, __pyx_L1_error)
36777  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 6910, __pyx_L1_error)
36778  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxJacobian), __pyx_ptype_5numpy_ndarray, 1, "fluxJacobian", 0))) __PYX_ERR(0, 6911, __pyx_L1_error)
36779  __pyx_r = __pyx_pf_14cnumericalFlux_206applySeepageFaceJacobian(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_isSeepageFace, __pyx_v_epsFact, __pyx_v_elementDiameters, __pyx_v_g, __pyx_v_n, __pyx_v_grad_u, __pyx_v_u, __pyx_v_advectiveFlux, __pyx_v_diffusiveFlux, __pyx_v_v, __pyx_v_fluxJacobian);
36780 
36781  /* function exit code */
36782  goto __pyx_L0;
36783  __pyx_L1_error:;
36784  __pyx_r = NULL;
36785  __pyx_L0:;
36786  __Pyx_RefNannyFinishContext();
36787  return __pyx_r;
36788 }
36789 
36790 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) {
36791  PyObject *__pyx_r = NULL;
36792  __Pyx_RefNannyDeclarations
36793  __Pyx_RefNannySetupContext("applySeepageFaceJacobian", 0);
36794 
36795  /* "cnumericalFlux.pyx":6912
36796  * np.ndarray v,
36797  * np.ndarray fluxJacobian):
36798  * capplySeepageFaceJacobian(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
36799  * grad_u.shape[1],
36800  * fluxJacobian.shape[2],
36801  */
36802  applySeepageFaceJacobian((__pyx_v_exteriorElementBoundaries->dimensions[0]), (__pyx_v_grad_u->dimensions[1]), (__pyx_v_fluxJacobian->dimensions[2]), (__pyx_v_grad_u->dimensions[2]), ((int *)__pyx_v_exteriorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_isSeepageFace->data), __pyx_v_epsFact, ((double *)__pyx_v_elementDiameters->data), ((double *)__pyx_v_g->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_grad_u->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_advectiveFlux->data), ((double *)__pyx_v_diffusiveFlux->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_fluxJacobian->data));
36803 
36804  /* "cnumericalFlux.pyx":6898
36805  * <double*> advectiveFlux.data,
36806  * <double*> diffusiveFlux.data)
36807  * def applySeepageFaceJacobian(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
36808  * np.ndarray elementBoundaryElements,
36809  * np.ndarray elementBoundaryLocalElementBoundaries,
36810  */
36811 
36812  /* function exit code */
36813  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36814  __Pyx_XGIVEREF(__pyx_r);
36815  __Pyx_RefNannyFinishContext();
36816  return __pyx_r;
36817 }
36818 
36819 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":735
36820  * ctypedef npy_cdouble complex_t
36821  *
36822  * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
36823  * return PyArray_MultiIterNew(1, <void*>a)
36824  *
36825  */
36826 
36827 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
36828  PyObject *__pyx_r = NULL;
36829  __Pyx_RefNannyDeclarations
36830  PyObject *__pyx_t_1 = NULL;
36831  int __pyx_lineno = 0;
36832  const char *__pyx_filename = NULL;
36833  int __pyx_clineno = 0;
36834  __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0);
36835 
36836  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":736
36837  *
36838  * cdef inline object PyArray_MultiIterNew1(a):
36839  * return PyArray_MultiIterNew(1, <void*>a) # <<<<<<<<<<<<<<
36840  *
36841  * cdef inline object PyArray_MultiIterNew2(a, b):
36842  */
36843  __Pyx_XDECREF(__pyx_r);
36844  __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 736, __pyx_L1_error)
36845  __Pyx_GOTREF(__pyx_t_1);
36846  __pyx_r = __pyx_t_1;
36847  __pyx_t_1 = 0;
36848  goto __pyx_L0;
36849 
36850  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":735
36851  * ctypedef npy_cdouble complex_t
36852  *
36853  * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
36854  * return PyArray_MultiIterNew(1, <void*>a)
36855  *
36856  */
36857 
36858  /* function exit code */
36859  __pyx_L1_error:;
36860  __Pyx_XDECREF(__pyx_t_1);
36861  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
36862  __pyx_r = 0;
36863  __pyx_L0:;
36864  __Pyx_XGIVEREF(__pyx_r);
36865  __Pyx_RefNannyFinishContext();
36866  return __pyx_r;
36867 }
36868 
36869 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":738
36870  * return PyArray_MultiIterNew(1, <void*>a)
36871  *
36872  * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
36873  * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
36874  *
36875  */
36876 
36877 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
36878  PyObject *__pyx_r = NULL;
36879  __Pyx_RefNannyDeclarations
36880  PyObject *__pyx_t_1 = NULL;
36881  int __pyx_lineno = 0;
36882  const char *__pyx_filename = NULL;
36883  int __pyx_clineno = 0;
36884  __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0);
36885 
36886  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":739
36887  *
36888  * cdef inline object PyArray_MultiIterNew2(a, b):
36889  * return PyArray_MultiIterNew(2, <void*>a, <void*>b) # <<<<<<<<<<<<<<
36890  *
36891  * cdef inline object PyArray_MultiIterNew3(a, b, c):
36892  */
36893  __Pyx_XDECREF(__pyx_r);
36894  __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 739, __pyx_L1_error)
36895  __Pyx_GOTREF(__pyx_t_1);
36896  __pyx_r = __pyx_t_1;
36897  __pyx_t_1 = 0;
36898  goto __pyx_L0;
36899 
36900  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":738
36901  * return PyArray_MultiIterNew(1, <void*>a)
36902  *
36903  * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
36904  * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
36905  *
36906  */
36907 
36908  /* function exit code */
36909  __pyx_L1_error:;
36910  __Pyx_XDECREF(__pyx_t_1);
36911  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
36912  __pyx_r = 0;
36913  __pyx_L0:;
36914  __Pyx_XGIVEREF(__pyx_r);
36915  __Pyx_RefNannyFinishContext();
36916  return __pyx_r;
36917 }
36918 
36919 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":741
36920  * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
36921  *
36922  * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
36923  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
36924  *
36925  */
36926 
36927 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {
36928  PyObject *__pyx_r = NULL;
36929  __Pyx_RefNannyDeclarations
36930  PyObject *__pyx_t_1 = NULL;
36931  int __pyx_lineno = 0;
36932  const char *__pyx_filename = NULL;
36933  int __pyx_clineno = 0;
36934  __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0);
36935 
36936  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":742
36937  *
36938  * cdef inline object PyArray_MultiIterNew3(a, b, c):
36939  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c) # <<<<<<<<<<<<<<
36940  *
36941  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
36942  */
36943  __Pyx_XDECREF(__pyx_r);
36944  __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 742, __pyx_L1_error)
36945  __Pyx_GOTREF(__pyx_t_1);
36946  __pyx_r = __pyx_t_1;
36947  __pyx_t_1 = 0;
36948  goto __pyx_L0;
36949 
36950  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":741
36951  * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
36952  *
36953  * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
36954  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
36955  *
36956  */
36957 
36958  /* function exit code */
36959  __pyx_L1_error:;
36960  __Pyx_XDECREF(__pyx_t_1);
36961  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
36962  __pyx_r = 0;
36963  __pyx_L0:;
36964  __Pyx_XGIVEREF(__pyx_r);
36965  __Pyx_RefNannyFinishContext();
36966  return __pyx_r;
36967 }
36968 
36969 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":744
36970  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
36971  *
36972  * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
36973  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
36974  *
36975  */
36976 
36977 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) {
36978  PyObject *__pyx_r = NULL;
36979  __Pyx_RefNannyDeclarations
36980  PyObject *__pyx_t_1 = NULL;
36981  int __pyx_lineno = 0;
36982  const char *__pyx_filename = NULL;
36983  int __pyx_clineno = 0;
36984  __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0);
36985 
36986  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":745
36987  *
36988  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
36989  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d) # <<<<<<<<<<<<<<
36990  *
36991  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
36992  */
36993  __Pyx_XDECREF(__pyx_r);
36994  __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 745, __pyx_L1_error)
36995  __Pyx_GOTREF(__pyx_t_1);
36996  __pyx_r = __pyx_t_1;
36997  __pyx_t_1 = 0;
36998  goto __pyx_L0;
36999 
37000  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":744
37001  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
37002  *
37003  * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
37004  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
37005  *
37006  */
37007 
37008  /* function exit code */
37009  __pyx_L1_error:;
37010  __Pyx_XDECREF(__pyx_t_1);
37011  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
37012  __pyx_r = 0;
37013  __pyx_L0:;
37014  __Pyx_XGIVEREF(__pyx_r);
37015  __Pyx_RefNannyFinishContext();
37016  return __pyx_r;
37017 }
37018 
37019 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":747
37020  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
37021  *
37022  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
37023  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
37024  *
37025  */
37026 
37027 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) {
37028  PyObject *__pyx_r = NULL;
37029  __Pyx_RefNannyDeclarations
37030  PyObject *__pyx_t_1 = NULL;
37031  int __pyx_lineno = 0;
37032  const char *__pyx_filename = NULL;
37033  int __pyx_clineno = 0;
37034  __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0);
37035 
37036  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":748
37037  *
37038  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
37039  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e) # <<<<<<<<<<<<<<
37040  *
37041  * cdef inline tuple PyDataType_SHAPE(dtype d):
37042  */
37043  __Pyx_XDECREF(__pyx_r);
37044  __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 748, __pyx_L1_error)
37045  __Pyx_GOTREF(__pyx_t_1);
37046  __pyx_r = __pyx_t_1;
37047  __pyx_t_1 = 0;
37048  goto __pyx_L0;
37049 
37050  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":747
37051  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
37052  *
37053  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
37054  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
37055  *
37056  */
37057 
37058  /* function exit code */
37059  __pyx_L1_error:;
37060  __Pyx_XDECREF(__pyx_t_1);
37061  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
37062  __pyx_r = 0;
37063  __pyx_L0:;
37064  __Pyx_XGIVEREF(__pyx_r);
37065  __Pyx_RefNannyFinishContext();
37066  return __pyx_r;
37067 }
37068 
37069 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":750
37070  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
37071  *
37072  * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
37073  * if PyDataType_HASSUBARRAY(d):
37074  * return <tuple>d.subarray.shape
37075  */
37076 
37077 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
37078  PyObject *__pyx_r = NULL;
37079  __Pyx_RefNannyDeclarations
37080  int __pyx_t_1;
37081  __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0);
37082 
37083  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":751
37084  *
37085  * cdef inline tuple PyDataType_SHAPE(dtype d):
37086  * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
37087  * return <tuple>d.subarray.shape
37088  * else:
37089  */
37090  __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0);
37091  if (__pyx_t_1) {
37092 
37093  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":752
37094  * cdef inline tuple PyDataType_SHAPE(dtype d):
37095  * if PyDataType_HASSUBARRAY(d):
37096  * return <tuple>d.subarray.shape # <<<<<<<<<<<<<<
37097  * else:
37098  * return ()
37099  */
37100  __Pyx_XDECREF(__pyx_r);
37101  __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape));
37102  __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape);
37103  goto __pyx_L0;
37104 
37105  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":751
37106  *
37107  * cdef inline tuple PyDataType_SHAPE(dtype d):
37108  * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
37109  * return <tuple>d.subarray.shape
37110  * else:
37111  */
37112  }
37113 
37114  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":754
37115  * return <tuple>d.subarray.shape
37116  * else:
37117  * return () # <<<<<<<<<<<<<<
37118  *
37119  *
37120  */
37121  /*else*/ {
37122  __Pyx_XDECREF(__pyx_r);
37123  __Pyx_INCREF(__pyx_empty_tuple);
37124  __pyx_r = __pyx_empty_tuple;
37125  goto __pyx_L0;
37126  }
37127 
37128  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":750
37129  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
37130  *
37131  * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
37132  * if PyDataType_HASSUBARRAY(d):
37133  * return <tuple>d.subarray.shape
37134  */
37135 
37136  /* function exit code */
37137  __pyx_L0:;
37138  __Pyx_XGIVEREF(__pyx_r);
37139  __Pyx_RefNannyFinishContext();
37140  return __pyx_r;
37141 }
37142 
37143 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":929
37144  * int _import_umath() except -1
37145  *
37146  * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<<
37147  * Py_INCREF(base) # important to do this before stealing the reference below!
37148  * PyArray_SetBaseObject(arr, base)
37149  */
37150 
37151 static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {
37152  __Pyx_RefNannyDeclarations
37153  __Pyx_RefNannySetupContext("set_array_base", 0);
37154 
37155  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":930
37156  *
37157  * cdef inline void set_array_base(ndarray arr, object base):
37158  * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<<
37159  * PyArray_SetBaseObject(arr, base)
37160  *
37161  */
37162  Py_INCREF(__pyx_v_base);
37163 
37164  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":931
37165  * cdef inline void set_array_base(ndarray arr, object base):
37166  * Py_INCREF(base) # important to do this before stealing the reference below!
37167  * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<<
37168  *
37169  * cdef inline object get_array_base(ndarray arr):
37170  */
37171  (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base));
37172 
37173  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":929
37174  * int _import_umath() except -1
37175  *
37176  * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<<
37177  * Py_INCREF(base) # important to do this before stealing the reference below!
37178  * PyArray_SetBaseObject(arr, base)
37179  */
37180 
37181  /* function exit code */
37182  __Pyx_RefNannyFinishContext();
37183 }
37184 
37185 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":933
37186  * PyArray_SetBaseObject(arr, base)
37187  *
37188  * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
37189  * base = PyArray_BASE(arr)
37190  * if base is NULL:
37191  */
37192 
37193 static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
37194  PyObject *__pyx_v_base;
37195  PyObject *__pyx_r = NULL;
37196  __Pyx_RefNannyDeclarations
37197  int __pyx_t_1;
37198  __Pyx_RefNannySetupContext("get_array_base", 0);
37199 
37200  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":934
37201  *
37202  * cdef inline object get_array_base(ndarray arr):
37203  * base = PyArray_BASE(arr) # <<<<<<<<<<<<<<
37204  * if base is NULL:
37205  * return None
37206  */
37207  __pyx_v_base = PyArray_BASE(__pyx_v_arr);
37208 
37209  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":935
37210  * cdef inline object get_array_base(ndarray arr):
37211  * base = PyArray_BASE(arr)
37212  * if base is NULL: # <<<<<<<<<<<<<<
37213  * return None
37214  * return <object>base
37215  */
37216  __pyx_t_1 = ((__pyx_v_base == NULL) != 0);
37217  if (__pyx_t_1) {
37218 
37219  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":936
37220  * base = PyArray_BASE(arr)
37221  * if base is NULL:
37222  * return None # <<<<<<<<<<<<<<
37223  * return <object>base
37224  *
37225  */
37226  __Pyx_XDECREF(__pyx_r);
37227  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
37228  goto __pyx_L0;
37229 
37230  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":935
37231  * cdef inline object get_array_base(ndarray arr):
37232  * base = PyArray_BASE(arr)
37233  * if base is NULL: # <<<<<<<<<<<<<<
37234  * return None
37235  * return <object>base
37236  */
37237  }
37238 
37239  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":937
37240  * if base is NULL:
37241  * return None
37242  * return <object>base # <<<<<<<<<<<<<<
37243  *
37244  * # Versions of the import_* functions which are more suitable for
37245  */
37246  __Pyx_XDECREF(__pyx_r);
37247  __Pyx_INCREF(((PyObject *)__pyx_v_base));
37248  __pyx_r = ((PyObject *)__pyx_v_base);
37249  goto __pyx_L0;
37250 
37251  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":933
37252  * PyArray_SetBaseObject(arr, base)
37253  *
37254  * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
37255  * base = PyArray_BASE(arr)
37256  * if base is NULL:
37257  */
37258 
37259  /* function exit code */
37260  __pyx_L0:;
37261  __Pyx_XGIVEREF(__pyx_r);
37262  __Pyx_RefNannyFinishContext();
37263  return __pyx_r;
37264 }
37265 
37266 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":941
37267  * # Versions of the import_* functions which are more suitable for
37268  * # Cython code.
37269  * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
37270  * try:
37271  * __pyx_import_array()
37272  */
37273 
37274 static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
37275  int __pyx_r;
37276  __Pyx_RefNannyDeclarations
37277  PyObject *__pyx_t_1 = NULL;
37278  PyObject *__pyx_t_2 = NULL;
37279  PyObject *__pyx_t_3 = NULL;
37280  int __pyx_t_4;
37281  PyObject *__pyx_t_5 = NULL;
37282  PyObject *__pyx_t_6 = NULL;
37283  PyObject *__pyx_t_7 = NULL;
37284  PyObject *__pyx_t_8 = NULL;
37285  int __pyx_lineno = 0;
37286  const char *__pyx_filename = NULL;
37287  int __pyx_clineno = 0;
37288  __Pyx_RefNannySetupContext("import_array", 0);
37289 
37290  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":942
37291  * # Cython code.
37292  * cdef inline int import_array() except -1:
37293  * try: # <<<<<<<<<<<<<<
37294  * __pyx_import_array()
37295  * except Exception:
37296  */
37297  {
37298  __Pyx_PyThreadState_declare
37299  __Pyx_PyThreadState_assign
37300  __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
37301  __Pyx_XGOTREF(__pyx_t_1);
37302  __Pyx_XGOTREF(__pyx_t_2);
37303  __Pyx_XGOTREF(__pyx_t_3);
37304  /*try:*/ {
37305 
37306  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":943
37307  * cdef inline int import_array() except -1:
37308  * try:
37309  * __pyx_import_array() # <<<<<<<<<<<<<<
37310  * except Exception:
37311  * raise ImportError("numpy.core.multiarray failed to import")
37312  */
37313  __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 943, __pyx_L3_error)
37314 
37315  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":942
37316  * # Cython code.
37317  * cdef inline int import_array() except -1:
37318  * try: # <<<<<<<<<<<<<<
37319  * __pyx_import_array()
37320  * except Exception:
37321  */
37322  }
37323  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
37324  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
37325  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
37326  goto __pyx_L8_try_end;
37327  __pyx_L3_error:;
37328 
37329  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":944
37330  * try:
37331  * __pyx_import_array()
37332  * except Exception: # <<<<<<<<<<<<<<
37333  * raise ImportError("numpy.core.multiarray failed to import")
37334  *
37335  */
37336  __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
37337  if (__pyx_t_4) {
37338  __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
37339  if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 944, __pyx_L5_except_error)
37340  __Pyx_GOTREF(__pyx_t_5);
37341  __Pyx_GOTREF(__pyx_t_6);
37342  __Pyx_GOTREF(__pyx_t_7);
37343 
37344  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":945
37345  * __pyx_import_array()
37346  * except Exception:
37347  * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<<
37348  *
37349  * cdef inline int import_umath() except -1:
37350  */
37351  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 945, __pyx_L5_except_error)
37352  __Pyx_GOTREF(__pyx_t_8);
37353  __Pyx_Raise(__pyx_t_8, 0, 0, 0);
37354  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
37355  __PYX_ERR(1, 945, __pyx_L5_except_error)
37356  }
37357  goto __pyx_L5_except_error;
37358  __pyx_L5_except_error:;
37359 
37360  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":942
37361  * # Cython code.
37362  * cdef inline int import_array() except -1:
37363  * try: # <<<<<<<<<<<<<<
37364  * __pyx_import_array()
37365  * except Exception:
37366  */
37367  __Pyx_XGIVEREF(__pyx_t_1);
37368  __Pyx_XGIVEREF(__pyx_t_2);
37369  __Pyx_XGIVEREF(__pyx_t_3);
37370  __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
37371  goto __pyx_L1_error;
37372  __pyx_L8_try_end:;
37373  }
37374 
37375  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":941
37376  * # Versions of the import_* functions which are more suitable for
37377  * # Cython code.
37378  * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
37379  * try:
37380  * __pyx_import_array()
37381  */
37382 
37383  /* function exit code */
37384  __pyx_r = 0;
37385  goto __pyx_L0;
37386  __pyx_L1_error:;
37387  __Pyx_XDECREF(__pyx_t_5);
37388  __Pyx_XDECREF(__pyx_t_6);
37389  __Pyx_XDECREF(__pyx_t_7);
37390  __Pyx_XDECREF(__pyx_t_8);
37391  __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
37392  __pyx_r = -1;
37393  __pyx_L0:;
37394  __Pyx_RefNannyFinishContext();
37395  return __pyx_r;
37396 }
37397 
37398 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":947
37399  * raise ImportError("numpy.core.multiarray failed to import")
37400  *
37401  * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
37402  * try:
37403  * _import_umath()
37404  */
37405 
37406 static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
37407  int __pyx_r;
37408  __Pyx_RefNannyDeclarations
37409  PyObject *__pyx_t_1 = NULL;
37410  PyObject *__pyx_t_2 = NULL;
37411  PyObject *__pyx_t_3 = NULL;
37412  int __pyx_t_4;
37413  PyObject *__pyx_t_5 = NULL;
37414  PyObject *__pyx_t_6 = NULL;
37415  PyObject *__pyx_t_7 = NULL;
37416  PyObject *__pyx_t_8 = NULL;
37417  int __pyx_lineno = 0;
37418  const char *__pyx_filename = NULL;
37419  int __pyx_clineno = 0;
37420  __Pyx_RefNannySetupContext("import_umath", 0);
37421 
37422  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":948
37423  *
37424  * cdef inline int import_umath() except -1:
37425  * try: # <<<<<<<<<<<<<<
37426  * _import_umath()
37427  * except Exception:
37428  */
37429  {
37430  __Pyx_PyThreadState_declare
37431  __Pyx_PyThreadState_assign
37432  __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
37433  __Pyx_XGOTREF(__pyx_t_1);
37434  __Pyx_XGOTREF(__pyx_t_2);
37435  __Pyx_XGOTREF(__pyx_t_3);
37436  /*try:*/ {
37437 
37438  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":949
37439  * cdef inline int import_umath() except -1:
37440  * try:
37441  * _import_umath() # <<<<<<<<<<<<<<
37442  * except Exception:
37443  * raise ImportError("numpy.core.umath failed to import")
37444  */
37445  __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 949, __pyx_L3_error)
37446 
37447  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":948
37448  *
37449  * cdef inline int import_umath() except -1:
37450  * try: # <<<<<<<<<<<<<<
37451  * _import_umath()
37452  * except Exception:
37453  */
37454  }
37455  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
37456  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
37457  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
37458  goto __pyx_L8_try_end;
37459  __pyx_L3_error:;
37460 
37461  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":950
37462  * try:
37463  * _import_umath()
37464  * except Exception: # <<<<<<<<<<<<<<
37465  * raise ImportError("numpy.core.umath failed to import")
37466  *
37467  */
37468  __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
37469  if (__pyx_t_4) {
37470  __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
37471  if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 950, __pyx_L5_except_error)
37472  __Pyx_GOTREF(__pyx_t_5);
37473  __Pyx_GOTREF(__pyx_t_6);
37474  __Pyx_GOTREF(__pyx_t_7);
37475 
37476  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":951
37477  * _import_umath()
37478  * except Exception:
37479  * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<<
37480  *
37481  * cdef inline int import_ufunc() except -1:
37482  */
37483  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 951, __pyx_L5_except_error)
37484  __Pyx_GOTREF(__pyx_t_8);
37485  __Pyx_Raise(__pyx_t_8, 0, 0, 0);
37486  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
37487  __PYX_ERR(1, 951, __pyx_L5_except_error)
37488  }
37489  goto __pyx_L5_except_error;
37490  __pyx_L5_except_error:;
37491 
37492  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":948
37493  *
37494  * cdef inline int import_umath() except -1:
37495  * try: # <<<<<<<<<<<<<<
37496  * _import_umath()
37497  * except Exception:
37498  */
37499  __Pyx_XGIVEREF(__pyx_t_1);
37500  __Pyx_XGIVEREF(__pyx_t_2);
37501  __Pyx_XGIVEREF(__pyx_t_3);
37502  __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
37503  goto __pyx_L1_error;
37504  __pyx_L8_try_end:;
37505  }
37506 
37507  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":947
37508  * raise ImportError("numpy.core.multiarray failed to import")
37509  *
37510  * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
37511  * try:
37512  * _import_umath()
37513  */
37514 
37515  /* function exit code */
37516  __pyx_r = 0;
37517  goto __pyx_L0;
37518  __pyx_L1_error:;
37519  __Pyx_XDECREF(__pyx_t_5);
37520  __Pyx_XDECREF(__pyx_t_6);
37521  __Pyx_XDECREF(__pyx_t_7);
37522  __Pyx_XDECREF(__pyx_t_8);
37523  __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
37524  __pyx_r = -1;
37525  __pyx_L0:;
37526  __Pyx_RefNannyFinishContext();
37527  return __pyx_r;
37528 }
37529 
37530 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":953
37531  * raise ImportError("numpy.core.umath failed to import")
37532  *
37533  * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
37534  * try:
37535  * _import_umath()
37536  */
37537 
37538 static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
37539  int __pyx_r;
37540  __Pyx_RefNannyDeclarations
37541  PyObject *__pyx_t_1 = NULL;
37542  PyObject *__pyx_t_2 = NULL;
37543  PyObject *__pyx_t_3 = NULL;
37544  int __pyx_t_4;
37545  PyObject *__pyx_t_5 = NULL;
37546  PyObject *__pyx_t_6 = NULL;
37547  PyObject *__pyx_t_7 = NULL;
37548  PyObject *__pyx_t_8 = NULL;
37549  int __pyx_lineno = 0;
37550  const char *__pyx_filename = NULL;
37551  int __pyx_clineno = 0;
37552  __Pyx_RefNannySetupContext("import_ufunc", 0);
37553 
37554  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":954
37555  *
37556  * cdef inline int import_ufunc() except -1:
37557  * try: # <<<<<<<<<<<<<<
37558  * _import_umath()
37559  * except Exception:
37560  */
37561  {
37562  __Pyx_PyThreadState_declare
37563  __Pyx_PyThreadState_assign
37564  __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
37565  __Pyx_XGOTREF(__pyx_t_1);
37566  __Pyx_XGOTREF(__pyx_t_2);
37567  __Pyx_XGOTREF(__pyx_t_3);
37568  /*try:*/ {
37569 
37570  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":955
37571  * cdef inline int import_ufunc() except -1:
37572  * try:
37573  * _import_umath() # <<<<<<<<<<<<<<
37574  * except Exception:
37575  * raise ImportError("numpy.core.umath failed to import")
37576  */
37577  __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 955, __pyx_L3_error)
37578 
37579  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":954
37580  *
37581  * cdef inline int import_ufunc() except -1:
37582  * try: # <<<<<<<<<<<<<<
37583  * _import_umath()
37584  * except Exception:
37585  */
37586  }
37587  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
37588  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
37589  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
37590  goto __pyx_L8_try_end;
37591  __pyx_L3_error:;
37592 
37593  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":956
37594  * try:
37595  * _import_umath()
37596  * except Exception: # <<<<<<<<<<<<<<
37597  * raise ImportError("numpy.core.umath failed to import")
37598  *
37599  */
37600  __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
37601  if (__pyx_t_4) {
37602  __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
37603  if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 956, __pyx_L5_except_error)
37604  __Pyx_GOTREF(__pyx_t_5);
37605  __Pyx_GOTREF(__pyx_t_6);
37606  __Pyx_GOTREF(__pyx_t_7);
37607 
37608  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":957
37609  * _import_umath()
37610  * except Exception:
37611  * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<<
37612  *
37613  * cdef extern from *:
37614  */
37615  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 957, __pyx_L5_except_error)
37616  __Pyx_GOTREF(__pyx_t_8);
37617  __Pyx_Raise(__pyx_t_8, 0, 0, 0);
37618  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
37619  __PYX_ERR(1, 957, __pyx_L5_except_error)
37620  }
37621  goto __pyx_L5_except_error;
37622  __pyx_L5_except_error:;
37623 
37624  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":954
37625  *
37626  * cdef inline int import_ufunc() except -1:
37627  * try: # <<<<<<<<<<<<<<
37628  * _import_umath()
37629  * except Exception:
37630  */
37631  __Pyx_XGIVEREF(__pyx_t_1);
37632  __Pyx_XGIVEREF(__pyx_t_2);
37633  __Pyx_XGIVEREF(__pyx_t_3);
37634  __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
37635  goto __pyx_L1_error;
37636  __pyx_L8_try_end:;
37637  }
37638 
37639  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":953
37640  * raise ImportError("numpy.core.umath failed to import")
37641  *
37642  * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
37643  * try:
37644  * _import_umath()
37645  */
37646 
37647  /* function exit code */
37648  __pyx_r = 0;
37649  goto __pyx_L0;
37650  __pyx_L1_error:;
37651  __Pyx_XDECREF(__pyx_t_5);
37652  __Pyx_XDECREF(__pyx_t_6);
37653  __Pyx_XDECREF(__pyx_t_7);
37654  __Pyx_XDECREF(__pyx_t_8);
37655  __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
37656  __pyx_r = -1;
37657  __pyx_L0:;
37658  __Pyx_RefNannyFinishContext();
37659  return __pyx_r;
37660 }
37661 
37662 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":967
37663  *
37664  *
37665  * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<<
37666  * """
37667  * Cython equivalent of `isinstance(obj, np.timedelta64)`
37668  */
37669 
37670 static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) {
37671  int __pyx_r;
37672  __Pyx_RefNannyDeclarations
37673  __Pyx_RefNannySetupContext("is_timedelta64_object", 0);
37674 
37675  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":979
37676  * bool
37677  * """
37678  * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<<
37679  *
37680  *
37681  */
37682  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type));
37683  goto __pyx_L0;
37684 
37685  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":967
37686  *
37687  *
37688  * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<<
37689  * """
37690  * Cython equivalent of `isinstance(obj, np.timedelta64)`
37691  */
37692 
37693  /* function exit code */
37694  __pyx_L0:;
37695  __Pyx_RefNannyFinishContext();
37696  return __pyx_r;
37697 }
37698 
37699 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":982
37700  *
37701  *
37702  * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<<
37703  * """
37704  * Cython equivalent of `isinstance(obj, np.datetime64)`
37705  */
37706 
37707 static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) {
37708  int __pyx_r;
37709  __Pyx_RefNannyDeclarations
37710  __Pyx_RefNannySetupContext("is_datetime64_object", 0);
37711 
37712  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":994
37713  * bool
37714  * """
37715  * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<<
37716  *
37717  *
37718  */
37719  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type));
37720  goto __pyx_L0;
37721 
37722  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":982
37723  *
37724  *
37725  * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<<
37726  * """
37727  * Cython equivalent of `isinstance(obj, np.datetime64)`
37728  */
37729 
37730  /* function exit code */
37731  __pyx_L0:;
37732  __Pyx_RefNannyFinishContext();
37733  return __pyx_r;
37734 }
37735 
37736 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":997
37737  *
37738  *
37739  * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<<
37740  * """
37741  * returns the int64 value underlying scalar numpy datetime64 object
37742  */
37743 
37744 static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) {
37745  npy_datetime __pyx_r;
37746 
37747  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1004
37748  * also needed. That can be found using `get_datetime64_unit`.
37749  * """
37750  * return (<PyDatetimeScalarObject*>obj).obval # <<<<<<<<<<<<<<
37751  *
37752  *
37753  */
37754  __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval;
37755  goto __pyx_L0;
37756 
37757  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":997
37758  *
37759  *
37760  * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<<
37761  * """
37762  * returns the int64 value underlying scalar numpy datetime64 object
37763  */
37764 
37765  /* function exit code */
37766  __pyx_L0:;
37767  return __pyx_r;
37768 }
37769 
37770 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1007
37771  *
37772  *
37773  * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<<
37774  * """
37775  * returns the int64 value underlying scalar numpy timedelta64 object
37776  */
37777 
37778 static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) {
37779  npy_timedelta __pyx_r;
37780 
37781  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1011
37782  * returns the int64 value underlying scalar numpy timedelta64 object
37783  * """
37784  * return (<PyTimedeltaScalarObject*>obj).obval # <<<<<<<<<<<<<<
37785  *
37786  *
37787  */
37788  __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval;
37789  goto __pyx_L0;
37790 
37791  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1007
37792  *
37793  *
37794  * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<<
37795  * """
37796  * returns the int64 value underlying scalar numpy timedelta64 object
37797  */
37798 
37799  /* function exit code */
37800  __pyx_L0:;
37801  return __pyx_r;
37802 }
37803 
37804 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1014
37805  *
37806  *
37807  * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<<
37808  * """
37809  * returns the unit part of the dtype for a numpy datetime64 object.
37810  */
37811 
37812 static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) {
37813  NPY_DATETIMEUNIT __pyx_r;
37814 
37815  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1018
37816  * returns the unit part of the dtype for a numpy datetime64 object.
37817  * """
37818  * return <NPY_DATETIMEUNIT>(<PyDatetimeScalarObject*>obj).obmeta.base # <<<<<<<<<<<<<<
37819  */
37820  __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base);
37821  goto __pyx_L0;
37822 
37823  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1014
37824  *
37825  *
37826  * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<<
37827  * """
37828  * returns the unit part of the dtype for a numpy datetime64 object.
37829  */
37830 
37831  /* function exit code */
37832  __pyx_L0:;
37833  return __pyx_r;
37834 }
37835 
37836 static PyMethodDef __pyx_methods[] = {
37837  {0, 0, 0, 0}
37838 };
37839 
37840 #if PY_MAJOR_VERSION >= 3
37841 #if CYTHON_PEP489_MULTI_PHASE_INIT
37842 static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
37843 static int __pyx_pymod_exec_cnumericalFlux(PyObject* module); /*proto*/
37844 static PyModuleDef_Slot __pyx_moduledef_slots[] = {
37845  {Py_mod_create, (void*)__pyx_pymod_create},
37846  {Py_mod_exec, (void*)__pyx_pymod_exec_cnumericalFlux},
37847  {0, NULL}
37848 };
37849 #endif
37850 
37851 static struct PyModuleDef __pyx_moduledef = {
37852  PyModuleDef_HEAD_INIT,
37853  "cnumericalFlux",
37854  0, /* m_doc */
37855  #if CYTHON_PEP489_MULTI_PHASE_INIT
37856  0, /* m_size */
37857  #else
37858  -1, /* m_size */
37859  #endif
37860  __pyx_methods /* m_methods */,
37861  #if CYTHON_PEP489_MULTI_PHASE_INIT
37862  __pyx_moduledef_slots, /* m_slots */
37863  #else
37864  NULL, /* m_reload */
37865  #endif
37866  NULL, /* m_traverse */
37867  NULL, /* m_clear */
37868  NULL /* m_free */
37869 };
37870 #endif
37871 #ifndef CYTHON_SMALL_CODE
37872 #if defined(__clang__)
37873  #define CYTHON_SMALL_CODE
37874 #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
37875  #define CYTHON_SMALL_CODE __attribute__((cold))
37876 #else
37877  #define CYTHON_SMALL_CODE
37878 #endif
37879 #endif
37880 
37881 static __Pyx_StringTabEntry __pyx_string_tab[] = {
37882  {&__pyx_n_s_DV, __pyx_k_DV, sizeof(__pyx_k_DV), 0, 0, 1, 1},
37883  {&__pyx_n_s_DV_eb, __pyx_k_DV_eb, sizeof(__pyx_k_DV_eb), 0, 0, 1, 1},
37884  {&__pyx_n_s_H, __pyx_k_H, sizeof(__pyx_k_H), 0, 0, 1, 1},
37885  {&__pyx_n_s_H_element, __pyx_k_H_element, sizeof(__pyx_k_H_element), 0, 0, 1, 1},
37886  {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1},
37887  {&__pyx_n_s_K, __pyx_k_K, sizeof(__pyx_k_K), 0, 0, 1, 1},
37888  {&__pyx_n_s_K_rho_g, __pyx_k_K_rho_g, sizeof(__pyx_k_K_rho_g), 0, 0, 1, 1},
37889  {&__pyx_n_s_V, __pyx_k_V, sizeof(__pyx_k_V), 0, 0, 1, 1},
37890  {&__pyx_n_s_a, __pyx_k_a, sizeof(__pyx_k_a), 0, 0, 1, 1},
37891  {&__pyx_n_s_aHat, __pyx_k_aHat, sizeof(__pyx_k_aHat), 0, 0, 1, 1},
37892  {&__pyx_n_s_aSplit, __pyx_k_aSplit, sizeof(__pyx_k_aSplit), 0, 0, 1, 1},
37893  {&__pyx_n_s_aTilde, __pyx_k_aTilde, sizeof(__pyx_k_aTilde), 0, 0, 1, 1},
37894  {&__pyx_n_s_a_mm, __pyx_k_a_mm, sizeof(__pyx_k_a_mm), 0, 0, 1, 1},
37895  {&__pyx_n_s_a_mw, __pyx_k_a_mw, sizeof(__pyx_k_a_mw), 0, 0, 1, 1},
37896  {&__pyx_n_s_a_nn, __pyx_k_a_nn, sizeof(__pyx_k_a_nn), 0, 0, 1, 1},
37897  {&__pyx_n_s_a_wm, __pyx_k_a_wm, sizeof(__pyx_k_a_wm), 0, 0, 1, 1},
37898  {&__pyx_n_s_a_ww, __pyx_k_a_ww, sizeof(__pyx_k_a_ww), 0, 0, 1, 1},
37899  {&__pyx_n_s_advectiveFlux, __pyx_k_advectiveFlux, sizeof(__pyx_k_advectiveFlux), 0, 0, 1, 1},
37900  {&__pyx_n_s_advectiveFlux_m, __pyx_k_advectiveFlux_m, sizeof(__pyx_k_advectiveFlux_m), 0, 0, 1, 1},
37901  {&__pyx_n_s_applySeepageFace, __pyx_k_applySeepageFace, sizeof(__pyx_k_applySeepageFace), 0, 0, 1, 1},
37902  {&__pyx_n_s_applySeepageFaceJacobian, __pyx_k_applySeepageFaceJacobian, sizeof(__pyx_k_applySeepageFaceJacobian), 0, 0, 1, 1},
37903  {&__pyx_n_s_bc_H, __pyx_k_bc_H, sizeof(__pyx_k_bc_H), 0, 0, 1, 1},
37904  {&__pyx_n_s_bc_a, __pyx_k_bc_a, sizeof(__pyx_k_bc_a), 0, 0, 1, 1},
37905  {&__pyx_n_s_bc_a_mm, __pyx_k_bc_a_mm, sizeof(__pyx_k_bc_a_mm), 0, 0, 1, 1},
37906  {&__pyx_n_s_bc_a_mw, __pyx_k_bc_a_mw, sizeof(__pyx_k_bc_a_mw), 0, 0, 1, 1},
37907  {&__pyx_n_s_bc_a_nn, __pyx_k_bc_a_nn, sizeof(__pyx_k_bc_a_nn), 0, 0, 1, 1},
37908  {&__pyx_n_s_bc_a_wm, __pyx_k_bc_a_wm, sizeof(__pyx_k_bc_a_wm), 0, 0, 1, 1},
37909  {&__pyx_n_s_bc_a_ww, __pyx_k_bc_a_ww, sizeof(__pyx_k_bc_a_ww), 0, 0, 1, 1},
37910  {&__pyx_n_s_bc_dH, __pyx_k_bc_dH, sizeof(__pyx_k_bc_dH), 0, 0, 1, 1},
37911  {&__pyx_n_s_bc_df, __pyx_k_bc_df, sizeof(__pyx_k_bc_df), 0, 0, 1, 1},
37912  {&__pyx_n_s_bc_dfn_dpsiw, __pyx_k_bc_dfn_dpsiw, sizeof(__pyx_k_bc_dfn_dpsiw), 0, 0, 1, 1},
37913  {&__pyx_n_s_bc_dfn_dsw, __pyx_k_bc_dfn_dsw, sizeof(__pyx_k_bc_dfn_dsw), 0, 0, 1, 1},
37914  {&__pyx_n_s_bc_dfw_dpsiw, __pyx_k_bc_dfw_dpsiw, sizeof(__pyx_k_bc_dfw_dpsiw), 0, 0, 1, 1},
37915  {&__pyx_n_s_bc_dfw_dsw, __pyx_k_bc_dfw_dsw, sizeof(__pyx_k_bc_dfw_dsw), 0, 0, 1, 1},
37916  {&__pyx_n_s_bc_f, __pyx_k_bc_f, sizeof(__pyx_k_bc_f), 0, 0, 1, 1},
37917  {&__pyx_n_s_bc_f_m, __pyx_k_bc_f_m, sizeof(__pyx_k_bc_f_m), 0, 0, 1, 1},
37918  {&__pyx_n_s_bc_f_mass, __pyx_k_bc_f_mass, sizeof(__pyx_k_bc_f_mass), 0, 0, 1, 1},
37919  {&__pyx_n_s_bc_f_umom, __pyx_k_bc_f_umom, sizeof(__pyx_k_bc_f_umom), 0, 0, 1, 1},
37920  {&__pyx_n_s_bc_f_vmom, __pyx_k_bc_f_vmom, sizeof(__pyx_k_bc_f_vmom), 0, 0, 1, 1},
37921  {&__pyx_n_s_bc_f_wmom, __pyx_k_bc_f_wmom, sizeof(__pyx_k_bc_f_wmom), 0, 0, 1, 1},
37922  {&__pyx_n_s_bc_fn, __pyx_k_bc_fn, sizeof(__pyx_k_bc_fn), 0, 0, 1, 1},
37923  {&__pyx_n_s_bc_fpu, __pyx_k_bc_fpu, sizeof(__pyx_k_bc_fpu), 0, 0, 1, 1},
37924  {&__pyx_n_s_bc_fpv, __pyx_k_bc_fpv, sizeof(__pyx_k_bc_fpv), 0, 0, 1, 1},
37925  {&__pyx_n_s_bc_fpw, __pyx_k_bc_fpw, sizeof(__pyx_k_bc_fpw), 0, 0, 1, 1},
37926  {&__pyx_n_s_bc_fw, __pyx_k_bc_fw, sizeof(__pyx_k_bc_fw), 0, 0, 1, 1},
37927  {&__pyx_n_s_bc_grad_phi, __pyx_k_bc_grad_phi, sizeof(__pyx_k_bc_grad_phi), 0, 0, 1, 1},
37928  {&__pyx_n_s_bc_grad_phi_m, __pyx_k_bc_grad_phi_m, sizeof(__pyx_k_bc_grad_phi_m), 0, 0, 1, 1},
37929  {&__pyx_n_s_bc_grad_phi_n, __pyx_k_bc_grad_phi_n, sizeof(__pyx_k_bc_grad_phi_n), 0, 0, 1, 1},
37930  {&__pyx_n_s_bc_grad_phi_w, __pyx_k_bc_grad_phi_w, sizeof(__pyx_k_bc_grad_phi_w), 0, 0, 1, 1},
37931  {&__pyx_n_s_bc_p, __pyx_k_bc_p, sizeof(__pyx_k_bc_p), 0, 0, 1, 1},
37932  {&__pyx_n_s_bc_psi_c, __pyx_k_bc_psi_c, sizeof(__pyx_k_bc_psi_c), 0, 0, 1, 1},
37933  {&__pyx_n_s_bc_psi_n, __pyx_k_bc_psi_n, sizeof(__pyx_k_bc_psi_n), 0, 0, 1, 1},
37934  {&__pyx_n_s_bc_psi_w, __pyx_k_bc_psi_w, sizeof(__pyx_k_bc_psi_w), 0, 0, 1, 1},
37935  {&__pyx_n_s_bc_psiw, __pyx_k_bc_psiw, sizeof(__pyx_k_bc_psiw), 0, 0, 1, 1},
37936  {&__pyx_n_s_bc_s_w, __pyx_k_bc_s_w, sizeof(__pyx_k_bc_s_w), 0, 0, 1, 1},
37937  {&__pyx_n_s_bc_sw, __pyx_k_bc_sw, sizeof(__pyx_k_bc_sw), 0, 0, 1, 1},
37938  {&__pyx_n_s_bc_u, __pyx_k_bc_u, sizeof(__pyx_k_bc_u), 0, 0, 1, 1},
37939  {&__pyx_n_s_bc_u_m, __pyx_k_bc_u_m, sizeof(__pyx_k_bc_u_m), 0, 0, 1, 1},
37940  {&__pyx_n_s_bc_u_w, __pyx_k_bc_u_w, sizeof(__pyx_k_bc_u_w), 0, 0, 1, 1},
37941  {&__pyx_n_s_bc_v, __pyx_k_bc_v, sizeof(__pyx_k_bc_v), 0, 0, 1, 1},
37942  {&__pyx_n_s_bc_w, __pyx_k_bc_w, sizeof(__pyx_k_bc_w), 0, 0, 1, 1},
37943  {&__pyx_n_s_calculateDiffusionMatrixSplittin, __pyx_k_calculateDiffusionMatrixSplittin, sizeof(__pyx_k_calculateDiffusionMatrixSplittin), 0, 0, 1, 1},
37944  {&__pyx_n_s_calculateExteriorLesaintRaviartN, __pyx_k_calculateExteriorLesaintRaviartN, sizeof(__pyx_k_calculateExteriorLesaintRaviartN), 0, 0, 1, 1},
37945  {&__pyx_n_s_calculateExteriorNumericalAdvect, __pyx_k_calculateExteriorNumericalAdvect, sizeof(__pyx_k_calculateExteriorNumericalAdvect), 0, 0, 1, 1},
37946  {&__pyx_n_s_calculateExteriorNumericalAdvect_10, __pyx_k_calculateExteriorNumericalAdvect_10, sizeof(__pyx_k_calculateExteriorNumericalAdvect_10), 0, 0, 1, 1},
37947  {&__pyx_n_s_calculateExteriorNumericalAdvect_11, __pyx_k_calculateExteriorNumericalAdvect_11, sizeof(__pyx_k_calculateExteriorNumericalAdvect_11), 0, 0, 1, 1},
37948  {&__pyx_n_s_calculateExteriorNumericalAdvect_12, __pyx_k_calculateExteriorNumericalAdvect_12, sizeof(__pyx_k_calculateExteriorNumericalAdvect_12), 0, 0, 1, 1},
37949  {&__pyx_n_s_calculateExteriorNumericalAdvect_2, __pyx_k_calculateExteriorNumericalAdvect_2, sizeof(__pyx_k_calculateExteriorNumericalAdvect_2), 0, 0, 1, 1},
37950  {&__pyx_n_s_calculateExteriorNumericalAdvect_3, __pyx_k_calculateExteriorNumericalAdvect_3, sizeof(__pyx_k_calculateExteriorNumericalAdvect_3), 0, 0, 1, 1},
37951  {&__pyx_n_s_calculateExteriorNumericalAdvect_4, __pyx_k_calculateExteriorNumericalAdvect_4, sizeof(__pyx_k_calculateExteriorNumericalAdvect_4), 0, 0, 1, 1},
37952  {&__pyx_n_s_calculateExteriorNumericalAdvect_5, __pyx_k_calculateExteriorNumericalAdvect_5, sizeof(__pyx_k_calculateExteriorNumericalAdvect_5), 0, 0, 1, 1},
37953  {&__pyx_n_s_calculateExteriorNumericalAdvect_6, __pyx_k_calculateExteriorNumericalAdvect_6, sizeof(__pyx_k_calculateExteriorNumericalAdvect_6), 0, 0, 1, 1},
37954  {&__pyx_n_s_calculateExteriorNumericalAdvect_7, __pyx_k_calculateExteriorNumericalAdvect_7, sizeof(__pyx_k_calculateExteriorNumericalAdvect_7), 0, 0, 1, 1},
37955  {&__pyx_n_s_calculateExteriorNumericalAdvect_8, __pyx_k_calculateExteriorNumericalAdvect_8, sizeof(__pyx_k_calculateExteriorNumericalAdvect_8), 0, 0, 1, 1},
37956  {&__pyx_n_s_calculateExteriorNumericalAdvect_9, __pyx_k_calculateExteriorNumericalAdvect_9, sizeof(__pyx_k_calculateExteriorNumericalAdvect_9), 0, 0, 1, 1},
37957  {&__pyx_n_s_calculateExteriorNumericalDiffus, __pyx_k_calculateExteriorNumericalDiffus, sizeof(__pyx_k_calculateExteriorNumericalDiffus), 0, 0, 1, 1},
37958  {&__pyx_n_s_calculateExteriorNumericalDiffus_2, __pyx_k_calculateExteriorNumericalDiffus_2, sizeof(__pyx_k_calculateExteriorNumericalDiffus_2), 0, 0, 1, 1},
37959  {&__pyx_n_s_calculateExteriorNumericalDiffus_3, __pyx_k_calculateExteriorNumericalDiffus_3, sizeof(__pyx_k_calculateExteriorNumericalDiffus_3), 0, 0, 1, 1},
37960  {&__pyx_n_s_calculateExteriorNumericalDiffus_4, __pyx_k_calculateExteriorNumericalDiffus_4, sizeof(__pyx_k_calculateExteriorNumericalDiffus_4), 0, 0, 1, 1},
37961  {&__pyx_n_s_calculateExteriorNumericalDiffus_5, __pyx_k_calculateExteriorNumericalDiffus_5, sizeof(__pyx_k_calculateExteriorNumericalDiffus_5), 0, 0, 1, 1},
37962  {&__pyx_n_s_calculateExteriorNumericalDiffus_6, __pyx_k_calculateExteriorNumericalDiffus_6, sizeof(__pyx_k_calculateExteriorNumericalDiffus_6), 0, 0, 1, 1},
37963  {&__pyx_n_s_calculateExteriorNumericalDiffus_7, __pyx_k_calculateExteriorNumericalDiffus_7, sizeof(__pyx_k_calculateExteriorNumericalDiffus_7), 0, 0, 1, 1},
37964  {&__pyx_n_s_calculateExteriorNumericalFluxJa, __pyx_k_calculateExteriorNumericalFluxJa, sizeof(__pyx_k_calculateExteriorNumericalFluxJa), 0, 0, 1, 1},
37965  {&__pyx_n_s_calculateExteriorNumericalFluxRi, __pyx_k_calculateExteriorNumericalFluxRi, sizeof(__pyx_k_calculateExteriorNumericalFluxRi), 0, 0, 1, 1},
37966  {&__pyx_n_s_calculateExteriorNumericalFluxSh, __pyx_k_calculateExteriorNumericalFluxSh, sizeof(__pyx_k_calculateExteriorNumericalFluxSh), 0, 0, 1, 1},
37967  {&__pyx_n_s_calculateExteriorNumericalFluxSh_2, __pyx_k_calculateExteriorNumericalFluxSh_2, sizeof(__pyx_k_calculateExteriorNumericalFluxSh_2), 0, 0, 1, 1},
37968  {&__pyx_n_s_calculateExteriorNumericalFluxSh_3, __pyx_k_calculateExteriorNumericalFluxSh_3, sizeof(__pyx_k_calculateExteriorNumericalFluxSh_3), 0, 0, 1, 1},
37969  {&__pyx_n_s_calculateGlobalExteriorInflowNum, __pyx_k_calculateGlobalExteriorInflowNum, sizeof(__pyx_k_calculateGlobalExteriorInflowNum), 0, 0, 1, 1},
37970  {&__pyx_n_s_calculateGlobalExteriorLesaintRa, __pyx_k_calculateGlobalExteriorLesaintRa, sizeof(__pyx_k_calculateGlobalExteriorLesaintRa), 0, 0, 1, 1},
37971  {&__pyx_n_s_calculateGlobalExteriorNumerical, __pyx_k_calculateGlobalExteriorNumerical, sizeof(__pyx_k_calculateGlobalExteriorNumerical), 0, 0, 1, 1},
37972  {&__pyx_n_s_calculateGlobalExteriorNumerical_10, __pyx_k_calculateGlobalExteriorNumerical_10, sizeof(__pyx_k_calculateGlobalExteriorNumerical_10), 0, 0, 1, 1},
37973  {&__pyx_n_s_calculateGlobalExteriorNumerical_11, __pyx_k_calculateGlobalExteriorNumerical_11, sizeof(__pyx_k_calculateGlobalExteriorNumerical_11), 0, 0, 1, 1},
37974  {&__pyx_n_s_calculateGlobalExteriorNumerical_12, __pyx_k_calculateGlobalExteriorNumerical_12, sizeof(__pyx_k_calculateGlobalExteriorNumerical_12), 0, 0, 1, 1},
37975  {&__pyx_n_s_calculateGlobalExteriorNumerical_13, __pyx_k_calculateGlobalExteriorNumerical_13, sizeof(__pyx_k_calculateGlobalExteriorNumerical_13), 0, 0, 1, 1},
37976  {&__pyx_n_s_calculateGlobalExteriorNumerical_14, __pyx_k_calculateGlobalExteriorNumerical_14, sizeof(__pyx_k_calculateGlobalExteriorNumerical_14), 0, 0, 1, 1},
37977  {&__pyx_n_s_calculateGlobalExteriorNumerical_15, __pyx_k_calculateGlobalExteriorNumerical_15, sizeof(__pyx_k_calculateGlobalExteriorNumerical_15), 0, 0, 1, 1},
37978  {&__pyx_n_s_calculateGlobalExteriorNumerical_16, __pyx_k_calculateGlobalExteriorNumerical_16, sizeof(__pyx_k_calculateGlobalExteriorNumerical_16), 0, 0, 1, 1},
37979  {&__pyx_n_s_calculateGlobalExteriorNumerical_17, __pyx_k_calculateGlobalExteriorNumerical_17, sizeof(__pyx_k_calculateGlobalExteriorNumerical_17), 0, 0, 1, 1},
37980  {&__pyx_n_s_calculateGlobalExteriorNumerical_18, __pyx_k_calculateGlobalExteriorNumerical_18, sizeof(__pyx_k_calculateGlobalExteriorNumerical_18), 0, 0, 1, 1},
37981  {&__pyx_n_s_calculateGlobalExteriorNumerical_19, __pyx_k_calculateGlobalExteriorNumerical_19, sizeof(__pyx_k_calculateGlobalExteriorNumerical_19), 0, 0, 1, 1},
37982  {&__pyx_n_s_calculateGlobalExteriorNumerical_2, __pyx_k_calculateGlobalExteriorNumerical_2, sizeof(__pyx_k_calculateGlobalExteriorNumerical_2), 0, 0, 1, 1},
37983  {&__pyx_n_s_calculateGlobalExteriorNumerical_20, __pyx_k_calculateGlobalExteriorNumerical_20, sizeof(__pyx_k_calculateGlobalExteriorNumerical_20), 0, 0, 1, 1},
37984  {&__pyx_n_s_calculateGlobalExteriorNumerical_21, __pyx_k_calculateGlobalExteriorNumerical_21, sizeof(__pyx_k_calculateGlobalExteriorNumerical_21), 0, 0, 1, 1},
37985  {&__pyx_n_s_calculateGlobalExteriorNumerical_22, __pyx_k_calculateGlobalExteriorNumerical_22, sizeof(__pyx_k_calculateGlobalExteriorNumerical_22), 0, 0, 1, 1},
37986  {&__pyx_n_s_calculateGlobalExteriorNumerical_23, __pyx_k_calculateGlobalExteriorNumerical_23, sizeof(__pyx_k_calculateGlobalExteriorNumerical_23), 0, 0, 1, 1},
37987  {&__pyx_n_s_calculateGlobalExteriorNumerical_24, __pyx_k_calculateGlobalExteriorNumerical_24, sizeof(__pyx_k_calculateGlobalExteriorNumerical_24), 0, 0, 1, 1},
37988  {&__pyx_n_s_calculateGlobalExteriorNumerical_25, __pyx_k_calculateGlobalExteriorNumerical_25, sizeof(__pyx_k_calculateGlobalExteriorNumerical_25), 0, 0, 1, 1},
37989  {&__pyx_n_s_calculateGlobalExteriorNumerical_26, __pyx_k_calculateGlobalExteriorNumerical_26, sizeof(__pyx_k_calculateGlobalExteriorNumerical_26), 0, 0, 1, 1},
37990  {&__pyx_n_s_calculateGlobalExteriorNumerical_27, __pyx_k_calculateGlobalExteriorNumerical_27, sizeof(__pyx_k_calculateGlobalExteriorNumerical_27), 0, 0, 1, 1},
37991  {&__pyx_n_s_calculateGlobalExteriorNumerical_28, __pyx_k_calculateGlobalExteriorNumerical_28, sizeof(__pyx_k_calculateGlobalExteriorNumerical_28), 0, 0, 1, 1},
37992  {&__pyx_n_s_calculateGlobalExteriorNumerical_29, __pyx_k_calculateGlobalExteriorNumerical_29, sizeof(__pyx_k_calculateGlobalExteriorNumerical_29), 0, 0, 1, 1},
37993  {&__pyx_n_s_calculateGlobalExteriorNumerical_3, __pyx_k_calculateGlobalExteriorNumerical_3, sizeof(__pyx_k_calculateGlobalExteriorNumerical_3), 0, 0, 1, 1},
37994  {&__pyx_n_s_calculateGlobalExteriorNumerical_30, __pyx_k_calculateGlobalExteriorNumerical_30, sizeof(__pyx_k_calculateGlobalExteriorNumerical_30), 0, 0, 1, 1},
37995  {&__pyx_n_s_calculateGlobalExteriorNumerical_31, __pyx_k_calculateGlobalExteriorNumerical_31, sizeof(__pyx_k_calculateGlobalExteriorNumerical_31), 0, 0, 1, 1},
37996  {&__pyx_n_s_calculateGlobalExteriorNumerical_32, __pyx_k_calculateGlobalExteriorNumerical_32, sizeof(__pyx_k_calculateGlobalExteriorNumerical_32), 0, 0, 1, 1},
37997  {&__pyx_n_s_calculateGlobalExteriorNumerical_33, __pyx_k_calculateGlobalExteriorNumerical_33, sizeof(__pyx_k_calculateGlobalExteriorNumerical_33), 0, 0, 1, 1},
37998  {&__pyx_n_s_calculateGlobalExteriorNumerical_34, __pyx_k_calculateGlobalExteriorNumerical_34, sizeof(__pyx_k_calculateGlobalExteriorNumerical_34), 0, 0, 1, 1},
37999  {&__pyx_n_s_calculateGlobalExteriorNumerical_4, __pyx_k_calculateGlobalExteriorNumerical_4, sizeof(__pyx_k_calculateGlobalExteriorNumerical_4), 0, 0, 1, 1},
38000  {&__pyx_n_s_calculateGlobalExteriorNumerical_5, __pyx_k_calculateGlobalExteriorNumerical_5, sizeof(__pyx_k_calculateGlobalExteriorNumerical_5), 0, 0, 1, 1},
38001  {&__pyx_n_s_calculateGlobalExteriorNumerical_6, __pyx_k_calculateGlobalExteriorNumerical_6, sizeof(__pyx_k_calculateGlobalExteriorNumerical_6), 0, 0, 1, 1},
38002  {&__pyx_n_s_calculateGlobalExteriorNumerical_7, __pyx_k_calculateGlobalExteriorNumerical_7, sizeof(__pyx_k_calculateGlobalExteriorNumerical_7), 0, 0, 1, 1},
38003  {&__pyx_n_s_calculateGlobalExteriorNumerical_8, __pyx_k_calculateGlobalExteriorNumerical_8, sizeof(__pyx_k_calculateGlobalExteriorNumerical_8), 0, 0, 1, 1},
38004  {&__pyx_n_s_calculateGlobalExteriorNumerical_9, __pyx_k_calculateGlobalExteriorNumerical_9, sizeof(__pyx_k_calculateGlobalExteriorNumerical_9), 0, 0, 1, 1},
38005  {&__pyx_n_s_calculateInteriorChengShuNumeric, __pyx_k_calculateInteriorChengShuNumeric, sizeof(__pyx_k_calculateInteriorChengShuNumeric), 0, 0, 1, 1},
38006  {&__pyx_n_s_calculateInteriorLesaintRaviartN, __pyx_k_calculateInteriorLesaintRaviartN, sizeof(__pyx_k_calculateInteriorLesaintRaviartN), 0, 0, 1, 1},
38007  {&__pyx_n_s_calculateInteriorNumericalAdvect, __pyx_k_calculateInteriorNumericalAdvect, sizeof(__pyx_k_calculateInteriorNumericalAdvect), 0, 0, 1, 1},
38008  {&__pyx_n_s_calculateInteriorNumericalAdvect_2, __pyx_k_calculateInteriorNumericalAdvect_2, sizeof(__pyx_k_calculateInteriorNumericalAdvect_2), 0, 0, 1, 1},
38009  {&__pyx_n_s_calculateInteriorNumericalAdvect_3, __pyx_k_calculateInteriorNumericalAdvect_3, sizeof(__pyx_k_calculateInteriorNumericalAdvect_3), 0, 0, 1, 1},
38010  {&__pyx_n_s_calculateInteriorNumericalAdvect_4, __pyx_k_calculateInteriorNumericalAdvect_4, sizeof(__pyx_k_calculateInteriorNumericalAdvect_4), 0, 0, 1, 1},
38011  {&__pyx_n_s_calculateInteriorNumericalAdvect_5, __pyx_k_calculateInteriorNumericalAdvect_5, sizeof(__pyx_k_calculateInteriorNumericalAdvect_5), 0, 0, 1, 1},
38012  {&__pyx_n_s_calculateInteriorNumericalDiffus, __pyx_k_calculateInteriorNumericalDiffus, sizeof(__pyx_k_calculateInteriorNumericalDiffus), 0, 0, 1, 1},
38013  {&__pyx_n_s_calculateInteriorNumericalDiffus_2, __pyx_k_calculateInteriorNumericalDiffus_2, sizeof(__pyx_k_calculateInteriorNumericalDiffus_2), 0, 0, 1, 1},
38014  {&__pyx_n_s_calculateInteriorNumericalDiffus_3, __pyx_k_calculateInteriorNumericalDiffus_3, sizeof(__pyx_k_calculateInteriorNumericalDiffus_3), 0, 0, 1, 1},
38015  {&__pyx_n_s_calculateInteriorNumericalDiffus_4, __pyx_k_calculateInteriorNumericalDiffus_4, sizeof(__pyx_k_calculateInteriorNumericalDiffus_4), 0, 0, 1, 1},
38016  {&__pyx_n_s_calculateInteriorNumericalFluxSh, __pyx_k_calculateInteriorNumericalFluxSh, sizeof(__pyx_k_calculateInteriorNumericalFluxSh), 0, 0, 1, 1},
38017  {&__pyx_n_s_calculateInteriorNumericalFluxSh_2, __pyx_k_calculateInteriorNumericalFluxSh_2, sizeof(__pyx_k_calculateInteriorNumericalFluxSh_2), 0, 0, 1, 1},
38018  {&__pyx_n_s_calculateInteriorNumericalFluxSh_3, __pyx_k_calculateInteriorNumericalFluxSh_3, sizeof(__pyx_k_calculateInteriorNumericalFluxSh_3), 0, 0, 1, 1},
38019  {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
38020  {&__pyx_n_s_cnumericalFlux, __pyx_k_cnumericalFlux, sizeof(__pyx_k_cnumericalFlux), 0, 0, 1, 1},
38021  {&__pyx_n_s_colind, __pyx_k_colind, sizeof(__pyx_k_colind), 0, 0, 1, 1},
38022  {&__pyx_n_s_colind_mm, __pyx_k_colind_mm, sizeof(__pyx_k_colind_mm), 0, 0, 1, 1},
38023  {&__pyx_n_s_colind_mw, __pyx_k_colind_mw, sizeof(__pyx_k_colind_mw), 0, 0, 1, 1},
38024  {&__pyx_n_s_colind_nn, __pyx_k_colind_nn, sizeof(__pyx_k_colind_nn), 0, 0, 1, 1},
38025  {&__pyx_n_s_colind_wm, __pyx_k_colind_wm, sizeof(__pyx_k_colind_wm), 0, 0, 1, 1},
38026  {&__pyx_n_s_colind_ww, __pyx_k_colind_ww, sizeof(__pyx_k_colind_ww), 0, 0, 1, 1},
38027  {&__pyx_n_s_dH, __pyx_k_dH, sizeof(__pyx_k_dH), 0, 0, 1, 1},
38028  {&__pyx_n_s_dH_element, __pyx_k_dH_element, sizeof(__pyx_k_dH_element), 0, 0, 1, 1},
38029  {&__pyx_n_s_dK, __pyx_k_dK, sizeof(__pyx_k_dK), 0, 0, 1, 1},
38030  {&__pyx_n_s_dK_rho_g, __pyx_k_dK_rho_g, sizeof(__pyx_k_dK_rho_g), 0, 0, 1, 1},
38031  {&__pyx_n_s_da, __pyx_k_da, sizeof(__pyx_k_da), 0, 0, 1, 1},
38032  {&__pyx_n_s_da_mm_dm, __pyx_k_da_mm_dm, sizeof(__pyx_k_da_mm_dm), 0, 0, 1, 1},
38033  {&__pyx_n_s_da_mm_dw, __pyx_k_da_mm_dw, sizeof(__pyx_k_da_mm_dw), 0, 0, 1, 1},
38034  {&__pyx_n_s_da_mw_dm, __pyx_k_da_mw_dm, sizeof(__pyx_k_da_mw_dm), 0, 0, 1, 1},
38035  {&__pyx_n_s_da_mw_dw, __pyx_k_da_mw_dw, sizeof(__pyx_k_da_mw_dw), 0, 0, 1, 1},
38036  {&__pyx_n_s_da_nn_dn, __pyx_k_da_nn_dn, sizeof(__pyx_k_da_nn_dn), 0, 0, 1, 1},
38037  {&__pyx_n_s_da_nn_dw, __pyx_k_da_nn_dw, sizeof(__pyx_k_da_nn_dw), 0, 0, 1, 1},
38038  {&__pyx_n_s_da_wm_dm, __pyx_k_da_wm_dm, sizeof(__pyx_k_da_wm_dm), 0, 0, 1, 1},
38039  {&__pyx_n_s_da_wm_dw, __pyx_k_da_wm_dw, sizeof(__pyx_k_da_wm_dw), 0, 0, 1, 1},
38040  {&__pyx_n_s_da_ww_dn, __pyx_k_da_ww_dn, sizeof(__pyx_k_da_ww_dn), 0, 0, 1, 1},
38041  {&__pyx_n_s_da_ww_dw, __pyx_k_da_ww_dw, sizeof(__pyx_k_da_ww_dw), 0, 0, 1, 1},
38042  {&__pyx_n_s_dadvectiveFlux_m_dw, __pyx_k_dadvectiveFlux_m_dw, sizeof(__pyx_k_dadvectiveFlux_m_dw), 0, 0, 1, 1},
38043  {&__pyx_n_s_df, __pyx_k_df, sizeof(__pyx_k_df), 0, 0, 1, 1},
38044  {&__pyx_n_s_df_du, __pyx_k_df_du, sizeof(__pyx_k_df_du), 0, 0, 1, 1},
38045  {&__pyx_n_s_df_dv, __pyx_k_df_dv, sizeof(__pyx_k_df_dv), 0, 0, 1, 1},
38046  {&__pyx_n_s_df_dw, __pyx_k_df_dw, sizeof(__pyx_k_df_dw), 0, 0, 1, 1},
38047  {&__pyx_n_s_df_element, __pyx_k_df_element, sizeof(__pyx_k_df_element), 0, 0, 1, 1},
38048  {&__pyx_n_s_df_m_dw, __pyx_k_df_m_dw, sizeof(__pyx_k_df_m_dw), 0, 0, 1, 1},
38049  {&__pyx_n_s_df_mass_du, __pyx_k_df_mass_du, sizeof(__pyx_k_df_mass_du), 0, 0, 1, 1},
38050  {&__pyx_n_s_df_mass_dv, __pyx_k_df_mass_dv, sizeof(__pyx_k_df_mass_dv), 0, 0, 1, 1},
38051  {&__pyx_n_s_df_mass_dw, __pyx_k_df_mass_dw, sizeof(__pyx_k_df_mass_dw), 0, 0, 1, 1},
38052  {&__pyx_n_s_df_umom_dp, __pyx_k_df_umom_dp, sizeof(__pyx_k_df_umom_dp), 0, 0, 1, 1},
38053  {&__pyx_n_s_df_umom_du, __pyx_k_df_umom_du, sizeof(__pyx_k_df_umom_du), 0, 0, 1, 1},
38054  {&__pyx_n_s_df_umom_dv, __pyx_k_df_umom_dv, sizeof(__pyx_k_df_umom_dv), 0, 0, 1, 1},
38055  {&__pyx_n_s_df_umom_dw, __pyx_k_df_umom_dw, sizeof(__pyx_k_df_umom_dw), 0, 0, 1, 1},
38056  {&__pyx_n_s_df_vmom_dp, __pyx_k_df_vmom_dp, sizeof(__pyx_k_df_vmom_dp), 0, 0, 1, 1},
38057  {&__pyx_n_s_df_vmom_du, __pyx_k_df_vmom_du, sizeof(__pyx_k_df_vmom_du), 0, 0, 1, 1},
38058  {&__pyx_n_s_df_vmom_dv, __pyx_k_df_vmom_dv, sizeof(__pyx_k_df_vmom_dv), 0, 0, 1, 1},
38059  {&__pyx_n_s_df_vmom_dw, __pyx_k_df_vmom_dw, sizeof(__pyx_k_df_vmom_dw), 0, 0, 1, 1},
38060  {&__pyx_n_s_df_wmom_dp, __pyx_k_df_wmom_dp, sizeof(__pyx_k_df_wmom_dp), 0, 0, 1, 1},
38061  {&__pyx_n_s_df_wmom_du, __pyx_k_df_wmom_du, sizeof(__pyx_k_df_wmom_du), 0, 0, 1, 1},
38062  {&__pyx_n_s_df_wmom_dv, __pyx_k_df_wmom_dv, sizeof(__pyx_k_df_wmom_dv), 0, 0, 1, 1},
38063  {&__pyx_n_s_df_wmom_dw, __pyx_k_df_wmom_dw, sizeof(__pyx_k_df_wmom_dw), 0, 0, 1, 1},
38064  {&__pyx_n_s_dflux, __pyx_k_dflux, sizeof(__pyx_k_dflux), 0, 0, 1, 1},
38065  {&__pyx_n_s_dflux_du, __pyx_k_dflux_du, sizeof(__pyx_k_dflux_du), 0, 0, 1, 1},
38066  {&__pyx_n_s_dflux_dv, __pyx_k_dflux_dv, sizeof(__pyx_k_dflux_dv), 0, 0, 1, 1},
38067  {&__pyx_n_s_dflux_dw, __pyx_k_dflux_dw, sizeof(__pyx_k_dflux_dw), 0, 0, 1, 1},
38068  {&__pyx_n_s_dflux_left, __pyx_k_dflux_left, sizeof(__pyx_k_dflux_left), 0, 0, 1, 1},
38069  {&__pyx_n_s_dflux_mass_dp, __pyx_k_dflux_mass_dp, sizeof(__pyx_k_dflux_mass_dp), 0, 0, 1, 1},
38070  {&__pyx_n_s_dflux_mass_du, __pyx_k_dflux_mass_du, sizeof(__pyx_k_dflux_mass_du), 0, 0, 1, 1},
38071  {&__pyx_n_s_dflux_mass_dv, __pyx_k_dflux_mass_dv, sizeof(__pyx_k_dflux_mass_dv), 0, 0, 1, 1},
38072  {&__pyx_n_s_dflux_mass_dw, __pyx_k_dflux_mass_dw, sizeof(__pyx_k_dflux_mass_dw), 0, 0, 1, 1},
38073  {&__pyx_n_s_dflux_right, __pyx_k_dflux_right, sizeof(__pyx_k_dflux_right), 0, 0, 1, 1},
38074  {&__pyx_n_s_dflux_umom_dp, __pyx_k_dflux_umom_dp, sizeof(__pyx_k_dflux_umom_dp), 0, 0, 1, 1},
38075  {&__pyx_n_s_dflux_umom_du, __pyx_k_dflux_umom_du, sizeof(__pyx_k_dflux_umom_du), 0, 0, 1, 1},
38076  {&__pyx_n_s_dflux_umom_dv, __pyx_k_dflux_umom_dv, sizeof(__pyx_k_dflux_umom_dv), 0, 0, 1, 1},
38077  {&__pyx_n_s_dflux_umom_dw, __pyx_k_dflux_umom_dw, sizeof(__pyx_k_dflux_umom_dw), 0, 0, 1, 1},
38078  {&__pyx_n_s_dflux_vmom_dp, __pyx_k_dflux_vmom_dp, sizeof(__pyx_k_dflux_vmom_dp), 0, 0, 1, 1},
38079  {&__pyx_n_s_dflux_vmom_du, __pyx_k_dflux_vmom_du, sizeof(__pyx_k_dflux_vmom_du), 0, 0, 1, 1},
38080  {&__pyx_n_s_dflux_vmom_dv, __pyx_k_dflux_vmom_dv, sizeof(__pyx_k_dflux_vmom_dv), 0, 0, 1, 1},
38081  {&__pyx_n_s_dflux_vmom_dw, __pyx_k_dflux_vmom_dw, sizeof(__pyx_k_dflux_vmom_dw), 0, 0, 1, 1},
38082  {&__pyx_n_s_dflux_wmom_dp, __pyx_k_dflux_wmom_dp, sizeof(__pyx_k_dflux_wmom_dp), 0, 0, 1, 1},
38083  {&__pyx_n_s_dflux_wmom_du, __pyx_k_dflux_wmom_du, sizeof(__pyx_k_dflux_wmom_du), 0, 0, 1, 1},
38084  {&__pyx_n_s_dflux_wmom_dv, __pyx_k_dflux_wmom_dv, sizeof(__pyx_k_dflux_wmom_dv), 0, 0, 1, 1},
38085  {&__pyx_n_s_dflux_wmom_dw, __pyx_k_dflux_wmom_dw, sizeof(__pyx_k_dflux_wmom_dw), 0, 0, 1, 1},
38086  {&__pyx_n_s_dfluxn_dpsiw, __pyx_k_dfluxn_dpsiw, sizeof(__pyx_k_dfluxn_dpsiw), 0, 0, 1, 1},
38087  {&__pyx_n_s_dfluxn_dsw, __pyx_k_dfluxn_dsw, sizeof(__pyx_k_dfluxn_dsw), 0, 0, 1, 1},
38088  {&__pyx_n_s_dfluxpu_dp, __pyx_k_dfluxpu_dp, sizeof(__pyx_k_dfluxpu_dp), 0, 0, 1, 1},
38089  {&__pyx_n_s_dfluxpv_dp, __pyx_k_dfluxpv_dp, sizeof(__pyx_k_dfluxpv_dp), 0, 0, 1, 1},
38090  {&__pyx_n_s_dfluxpw_dp, __pyx_k_dfluxpw_dp, sizeof(__pyx_k_dfluxpw_dp), 0, 0, 1, 1},
38091  {&__pyx_n_s_dfluxw_dpsiw, __pyx_k_dfluxw_dpsiw, sizeof(__pyx_k_dfluxw_dpsiw), 0, 0, 1, 1},
38092  {&__pyx_n_s_dfluxw_dsw, __pyx_k_dfluxw_dsw, sizeof(__pyx_k_dfluxw_dsw), 0, 0, 1, 1},
38093  {&__pyx_n_s_dfn_dpsiw, __pyx_k_dfn_dpsiw, sizeof(__pyx_k_dfn_dpsiw), 0, 0, 1, 1},
38094  {&__pyx_n_s_dfn_dsw, __pyx_k_dfn_dsw, sizeof(__pyx_k_dfn_dsw), 0, 0, 1, 1},
38095  {&__pyx_n_s_dfpu_dp, __pyx_k_dfpu_dp, sizeof(__pyx_k_dfpu_dp), 0, 0, 1, 1},
38096  {&__pyx_n_s_dfpv_dp, __pyx_k_dfpv_dp, sizeof(__pyx_k_dfpv_dp), 0, 0, 1, 1},
38097  {&__pyx_n_s_dfpw_dp, __pyx_k_dfpw_dp, sizeof(__pyx_k_dfpw_dp), 0, 0, 1, 1},
38098  {&__pyx_n_s_dfw_dpsiw, __pyx_k_dfw_dpsiw, sizeof(__pyx_k_dfw_dpsiw), 0, 0, 1, 1},
38099  {&__pyx_n_s_dfw_dsw, __pyx_k_dfw_dsw, sizeof(__pyx_k_dfw_dsw), 0, 0, 1, 1},
38100  {&__pyx_n_s_diffusiveFlux, __pyx_k_diffusiveFlux, sizeof(__pyx_k_diffusiveFlux), 0, 0, 1, 1},
38101  {&__pyx_n_s_diffusiveFlux_mm, __pyx_k_diffusiveFlux_mm, sizeof(__pyx_k_diffusiveFlux_mm), 0, 0, 1, 1},
38102  {&__pyx_n_s_diffusiveFlux_mw, __pyx_k_diffusiveFlux_mw, sizeof(__pyx_k_diffusiveFlux_mw), 0, 0, 1, 1},
38103  {&__pyx_n_s_diffusiveFlux_nn, __pyx_k_diffusiveFlux_nn, sizeof(__pyx_k_diffusiveFlux_nn), 0, 0, 1, 1},
38104  {&__pyx_n_s_diffusiveFlux_wm, __pyx_k_diffusiveFlux_wm, sizeof(__pyx_k_diffusiveFlux_wm), 0, 0, 1, 1},
38105  {&__pyx_n_s_diffusiveFlux_ww, __pyx_k_diffusiveFlux_ww, sizeof(__pyx_k_diffusiveFlux_ww), 0, 0, 1, 1},
38106  {&__pyx_n_s_dim, __pyx_k_dim, sizeof(__pyx_k_dim), 0, 0, 1, 1},
38107  {&__pyx_n_s_dm_umom, __pyx_k_dm_umom, sizeof(__pyx_k_dm_umom), 0, 0, 1, 1},
38108  {&__pyx_n_s_dphi, __pyx_k_dphi, sizeof(__pyx_k_dphi), 0, 0, 1, 1},
38109  {&__pyx_n_s_dphi_m_m, __pyx_k_dphi_m_m, sizeof(__pyx_k_dphi_m_m), 0, 0, 1, 1},
38110  {&__pyx_n_s_dphi_m_w, __pyx_k_dphi_m_w, sizeof(__pyx_k_dphi_m_w), 0, 0, 1, 1},
38111  {&__pyx_n_s_dphi_n_n, __pyx_k_dphi_n_n, sizeof(__pyx_k_dphi_n_n), 0, 0, 1, 1},
38112  {&__pyx_n_s_dphi_n_w, __pyx_k_dphi_n_w, sizeof(__pyx_k_dphi_n_w), 0, 0, 1, 1},
38113  {&__pyx_n_s_dphi_w_m, __pyx_k_dphi_w_m, sizeof(__pyx_k_dphi_w_m), 0, 0, 1, 1},
38114  {&__pyx_n_s_dphi_w_n, __pyx_k_dphi_w_n, sizeof(__pyx_k_dphi_w_n), 0, 0, 1, 1},
38115  {&__pyx_n_s_dphi_w_w, __pyx_k_dphi_w_w, sizeof(__pyx_k_dphi_w_w), 0, 0, 1, 1},
38116  {&__pyx_n_s_dpsi_n_dpsic, __pyx_k_dpsi_n_dpsic, sizeof(__pyx_k_dpsi_n_dpsic), 0, 0, 1, 1},
38117  {&__pyx_n_s_dpsi_n_dpsiw, __pyx_k_dpsi_n_dpsiw, sizeof(__pyx_k_dpsi_n_dpsiw), 0, 0, 1, 1},
38118  {&__pyx_n_s_dpsi_n_dsw, __pyx_k_dpsi_n_dsw, sizeof(__pyx_k_dpsi_n_dsw), 0, 0, 1, 1},
38119  {&__pyx_n_s_dstress_u_u, __pyx_k_dstress_u_u, sizeof(__pyx_k_dstress_u_u), 0, 0, 1, 1},
38120  {&__pyx_n_s_dstress_u_v, __pyx_k_dstress_u_v, sizeof(__pyx_k_dstress_u_v), 0, 0, 1, 1},
38121  {&__pyx_n_s_dstress_u_w, __pyx_k_dstress_u_w, sizeof(__pyx_k_dstress_u_w), 0, 0, 1, 1},
38122  {&__pyx_n_s_dstress_v_u, __pyx_k_dstress_v_u, sizeof(__pyx_k_dstress_v_u), 0, 0, 1, 1},
38123  {&__pyx_n_s_dstress_v_v, __pyx_k_dstress_v_v, sizeof(__pyx_k_dstress_v_v), 0, 0, 1, 1},
38124  {&__pyx_n_s_dstress_v_w, __pyx_k_dstress_v_w, sizeof(__pyx_k_dstress_v_w), 0, 0, 1, 1},
38125  {&__pyx_n_s_dstress_w_u, __pyx_k_dstress_w_u, sizeof(__pyx_k_dstress_w_u), 0, 0, 1, 1},
38126  {&__pyx_n_s_dstress_w_v, __pyx_k_dstress_w_v, sizeof(__pyx_k_dstress_w_v), 0, 0, 1, 1},
38127  {&__pyx_n_s_dstress_w_w, __pyx_k_dstress_w_w, sizeof(__pyx_k_dstress_w_w), 0, 0, 1, 1},
38128  {&__pyx_n_s_eb_aHat, __pyx_k_eb_aHat, sizeof(__pyx_k_eb_aHat), 0, 0, 1, 1},
38129  {&__pyx_n_s_eb_aTilde, __pyx_k_eb_aTilde, sizeof(__pyx_k_eb_aTilde), 0, 0, 1, 1},
38130  {&__pyx_n_s_ebq_a, __pyx_k_ebq_a, sizeof(__pyx_k_ebq_a), 0, 0, 1, 1},
38131  {&__pyx_n_s_elementBoundaryElements, __pyx_k_elementBoundaryElements, sizeof(__pyx_k_elementBoundaryElements), 0, 0, 1, 1},
38132  {&__pyx_n_s_elementBoundaryLocalElementBound, __pyx_k_elementBoundaryLocalElementBound, sizeof(__pyx_k_elementBoundaryLocalElementBound), 0, 0, 1, 1},
38133  {&__pyx_n_s_elementDiameters, __pyx_k_elementDiameters, sizeof(__pyx_k_elementDiameters), 0, 0, 1, 1},
38134  {&__pyx_n_s_epsFact, __pyx_k_epsFact, sizeof(__pyx_k_epsFact), 0, 0, 1, 1},
38135  {&__pyx_n_s_exit, __pyx_k_exit, sizeof(__pyx_k_exit), 0, 0, 1, 1},
38136  {&__pyx_n_s_exteriorElementBoundaries, __pyx_k_exteriorElementBoundaries, sizeof(__pyx_k_exteriorElementBoundaries), 0, 0, 1, 1},
38137  {&__pyx_n_s_f, __pyx_k_f, sizeof(__pyx_k_f), 0, 0, 1, 1},
38138  {&__pyx_n_s_f_m, __pyx_k_f_m, sizeof(__pyx_k_f_m), 0, 0, 1, 1},
38139  {&__pyx_n_s_f_mass, __pyx_k_f_mass, sizeof(__pyx_k_f_mass), 0, 0, 1, 1},
38140  {&__pyx_n_s_f_umom, __pyx_k_f_umom, sizeof(__pyx_k_f_umom), 0, 0, 1, 1},
38141  {&__pyx_n_s_f_vmom, __pyx_k_f_vmom, sizeof(__pyx_k_f_vmom), 0, 0, 1, 1},
38142  {&__pyx_n_s_f_wmom, __pyx_k_f_wmom, sizeof(__pyx_k_f_wmom), 0, 0, 1, 1},
38143  {&__pyx_n_s_flux, __pyx_k_flux, sizeof(__pyx_k_flux), 0, 0, 1, 1},
38144  {&__pyx_n_s_fluxBoundaryFlag, __pyx_k_fluxBoundaryFlag, sizeof(__pyx_k_fluxBoundaryFlag), 0, 0, 1, 1},
38145  {&__pyx_n_s_fluxBoundaryFlag_un, __pyx_k_fluxBoundaryFlag_un, sizeof(__pyx_k_fluxBoundaryFlag_un), 0, 0, 1, 1},
38146  {&__pyx_n_s_fluxBoundaryFlag_uw, __pyx_k_fluxBoundaryFlag_uw, sizeof(__pyx_k_fluxBoundaryFlag_uw), 0, 0, 1, 1},
38147  {&__pyx_n_s_fluxJacobian, __pyx_k_fluxJacobian, sizeof(__pyx_k_fluxJacobian), 0, 0, 1, 1},
38148  {&__pyx_n_s_fluxJacobian_2sided, __pyx_k_fluxJacobian_2sided, sizeof(__pyx_k_fluxJacobian_2sided), 0, 0, 1, 1},
38149  {&__pyx_n_s_fluxJacobian_eb, __pyx_k_fluxJacobian_eb, sizeof(__pyx_k_fluxJacobian_eb), 0, 0, 1, 1},
38150  {&__pyx_n_s_fluxJacobian_exterior, __pyx_k_fluxJacobian_exterior, sizeof(__pyx_k_fluxJacobian_exterior), 0, 0, 1, 1},
38151  {&__pyx_n_s_fluxJacobian_mm, __pyx_k_fluxJacobian_mm, sizeof(__pyx_k_fluxJacobian_mm), 0, 0, 1, 1},
38152  {&__pyx_n_s_fluxJacobian_mw, __pyx_k_fluxJacobian_mw, sizeof(__pyx_k_fluxJacobian_mw), 0, 0, 1, 1},
38153  {&__pyx_n_s_fluxJacobian_nn, __pyx_k_fluxJacobian_nn, sizeof(__pyx_k_fluxJacobian_nn), 0, 0, 1, 1},
38154  {&__pyx_n_s_fluxJacobian_nw, __pyx_k_fluxJacobian_nw, sizeof(__pyx_k_fluxJacobian_nw), 0, 0, 1, 1},
38155  {&__pyx_n_s_fluxJacobian_u_u, __pyx_k_fluxJacobian_u_u, sizeof(__pyx_k_fluxJacobian_u_u), 0, 0, 1, 1},
38156  {&__pyx_n_s_fluxJacobian_u_v, __pyx_k_fluxJacobian_u_v, sizeof(__pyx_k_fluxJacobian_u_v), 0, 0, 1, 1},
38157  {&__pyx_n_s_fluxJacobian_u_w, __pyx_k_fluxJacobian_u_w, sizeof(__pyx_k_fluxJacobian_u_w), 0, 0, 1, 1},
38158  {&__pyx_n_s_fluxJacobian_v_u, __pyx_k_fluxJacobian_v_u, sizeof(__pyx_k_fluxJacobian_v_u), 0, 0, 1, 1},
38159  {&__pyx_n_s_fluxJacobian_v_v, __pyx_k_fluxJacobian_v_v, sizeof(__pyx_k_fluxJacobian_v_v), 0, 0, 1, 1},
38160  {&__pyx_n_s_fluxJacobian_v_w, __pyx_k_fluxJacobian_v_w, sizeof(__pyx_k_fluxJacobian_v_w), 0, 0, 1, 1},
38161  {&__pyx_n_s_fluxJacobian_w_u, __pyx_k_fluxJacobian_w_u, sizeof(__pyx_k_fluxJacobian_w_u), 0, 0, 1, 1},
38162  {&__pyx_n_s_fluxJacobian_w_v, __pyx_k_fluxJacobian_w_v, sizeof(__pyx_k_fluxJacobian_w_v), 0, 0, 1, 1},
38163  {&__pyx_n_s_fluxJacobian_w_w, __pyx_k_fluxJacobian_w_w, sizeof(__pyx_k_fluxJacobian_w_w), 0, 0, 1, 1},
38164  {&__pyx_n_s_fluxJacobian_wm, __pyx_k_fluxJacobian_wm, sizeof(__pyx_k_fluxJacobian_wm), 0, 0, 1, 1},
38165  {&__pyx_n_s_fluxJacobian_wn, __pyx_k_fluxJacobian_wn, sizeof(__pyx_k_fluxJacobian_wn), 0, 0, 1, 1},
38166  {&__pyx_n_s_fluxJacobian_ww, __pyx_k_fluxJacobian_ww, sizeof(__pyx_k_fluxJacobian_ww), 0, 0, 1, 1},
38167  {&__pyx_n_s_flux_h, __pyx_k_flux_h, sizeof(__pyx_k_flux_h), 0, 0, 1, 1},
38168  {&__pyx_n_s_flux_hu, __pyx_k_flux_hu, sizeof(__pyx_k_flux_hu), 0, 0, 1, 1},
38169  {&__pyx_n_s_flux_hv, __pyx_k_flux_hv, sizeof(__pyx_k_flux_hv), 0, 0, 1, 1},
38170  {&__pyx_n_s_flux_mass, __pyx_k_flux_mass, sizeof(__pyx_k_flux_mass), 0, 0, 1, 1},
38171  {&__pyx_n_s_flux_umom, __pyx_k_flux_umom, sizeof(__pyx_k_flux_umom), 0, 0, 1, 1},
38172  {&__pyx_n_s_flux_vmom, __pyx_k_flux_vmom, sizeof(__pyx_k_flux_vmom), 0, 0, 1, 1},
38173  {&__pyx_n_s_flux_wmom, __pyx_k_flux_wmom, sizeof(__pyx_k_flux_wmom), 0, 0, 1, 1},
38174  {&__pyx_n_s_fluxn, __pyx_k_fluxn, sizeof(__pyx_k_fluxn), 0, 0, 1, 1},
38175  {&__pyx_n_s_fluxpu, __pyx_k_fluxpu, sizeof(__pyx_k_fluxpu), 0, 0, 1, 1},
38176  {&__pyx_n_s_fluxpv, __pyx_k_fluxpv, sizeof(__pyx_k_fluxpv), 0, 0, 1, 1},
38177  {&__pyx_n_s_fluxpw, __pyx_k_fluxpw, sizeof(__pyx_k_fluxpw), 0, 0, 1, 1},
38178  {&__pyx_n_s_fluxw, __pyx_k_fluxw, sizeof(__pyx_k_fluxw), 0, 0, 1, 1},
38179  {&__pyx_n_s_fn, __pyx_k_fn, sizeof(__pyx_k_fn), 0, 0, 1, 1},
38180  {&__pyx_n_s_fpu, __pyx_k_fpu, sizeof(__pyx_k_fpu), 0, 0, 1, 1},
38181  {&__pyx_n_s_fpv, __pyx_k_fpv, sizeof(__pyx_k_fpv), 0, 0, 1, 1},
38182  {&__pyx_n_s_fpw, __pyx_k_fpw, sizeof(__pyx_k_fpw), 0, 0, 1, 1},
38183  {&__pyx_n_s_fw, __pyx_k_fw, sizeof(__pyx_k_fw), 0, 0, 1, 1},
38184  {&__pyx_n_s_g, __pyx_k_g, sizeof(__pyx_k_g), 0, 0, 1, 1},
38185  {&__pyx_n_s_grad_phi, __pyx_k_grad_phi, sizeof(__pyx_k_grad_phi), 0, 0, 1, 1},
38186  {&__pyx_n_s_grad_phi_m, __pyx_k_grad_phi_m, sizeof(__pyx_k_grad_phi_m), 0, 0, 1, 1},
38187  {&__pyx_n_s_grad_phi_n, __pyx_k_grad_phi_n, sizeof(__pyx_k_grad_phi_n), 0, 0, 1, 1},
38188  {&__pyx_n_s_grad_phi_w, __pyx_k_grad_phi_w, sizeof(__pyx_k_grad_phi_w), 0, 0, 1, 1},
38189  {&__pyx_n_s_grad_psi, __pyx_k_grad_psi, sizeof(__pyx_k_grad_psi), 0, 0, 1, 1},
38190  {&__pyx_n_s_grad_u, __pyx_k_grad_u, sizeof(__pyx_k_grad_u), 0, 0, 1, 1},
38191  {&__pyx_n_s_grad_v, __pyx_k_grad_v, sizeof(__pyx_k_grad_v), 0, 0, 1, 1},
38192  {&__pyx_n_s_h, __pyx_k_h, sizeof(__pyx_k_h), 0, 0, 1, 1},
38193  {&__pyx_n_s_h_eps, __pyx_k_h_eps, sizeof(__pyx_k_h_eps), 0, 0, 1, 1},
38194  {&__pyx_n_s_h_lq, __pyx_k_h_lq, sizeof(__pyx_k_h_lq), 0, 0, 1, 1},
38195  {&__pyx_n_s_h_lv, __pyx_k_h_lv, sizeof(__pyx_k_h_lv), 0, 0, 1, 1},
38196  {&__pyx_n_s_h_rq, __pyx_k_h_rq, sizeof(__pyx_k_h_rq), 0, 0, 1, 1},
38197  {&__pyx_n_s_h_rv, __pyx_k_h_rv, sizeof(__pyx_k_h_rv), 0, 0, 1, 1},
38198  {&__pyx_n_s_hu, __pyx_k_hu, sizeof(__pyx_k_hu), 0, 0, 1, 1},
38199  {&__pyx_n_s_hu_lq, __pyx_k_hu_lq, sizeof(__pyx_k_hu_lq), 0, 0, 1, 1},
38200  {&__pyx_n_s_hu_lv, __pyx_k_hu_lv, sizeof(__pyx_k_hu_lv), 0, 0, 1, 1},
38201  {&__pyx_n_s_hu_rq, __pyx_k_hu_rq, sizeof(__pyx_k_hu_rq), 0, 0, 1, 1},
38202  {&__pyx_n_s_hu_rv, __pyx_k_hu_rv, sizeof(__pyx_k_hu_rv), 0, 0, 1, 1},
38203  {&__pyx_n_s_hv, __pyx_k_hv, sizeof(__pyx_k_hv), 0, 0, 1, 1},
38204  {&__pyx_n_s_hv_lq, __pyx_k_hv_lq, sizeof(__pyx_k_hv_lq), 0, 0, 1, 1},
38205  {&__pyx_n_s_hv_rq, __pyx_k_hv_rq, sizeof(__pyx_k_hv_rq), 0, 0, 1, 1},
38206  {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
38207  {&__pyx_n_s_inflowFlag, __pyx_k_inflowFlag, sizeof(__pyx_k_inflowFlag), 0, 0, 1, 1},
38208  {&__pyx_n_s_inflowFlux, __pyx_k_inflowFlux, sizeof(__pyx_k_inflowFlux), 0, 0, 1, 1},
38209  {&__pyx_n_s_interiorElementBoundaries, __pyx_k_interiorElementBoundaries, sizeof(__pyx_k_interiorElementBoundaries), 0, 0, 1, 1},
38210  {&__pyx_n_s_isDOFBoundary, __pyx_k_isDOFBoundary, sizeof(__pyx_k_isDOFBoundary), 0, 0, 1, 1},
38211  {&__pyx_n_s_isDOFBoundary_p, __pyx_k_isDOFBoundary_p, sizeof(__pyx_k_isDOFBoundary_p), 0, 0, 1, 1},
38212  {&__pyx_n_s_isDOFBoundary_psiw, __pyx_k_isDOFBoundary_psiw, sizeof(__pyx_k_isDOFBoundary_psiw), 0, 0, 1, 1},
38213  {&__pyx_n_s_isDOFBoundary_sw, __pyx_k_isDOFBoundary_sw, sizeof(__pyx_k_isDOFBoundary_sw), 0, 0, 1, 1},
38214  {&__pyx_n_s_isDOFBoundary_u, __pyx_k_isDOFBoundary_u, sizeof(__pyx_k_isDOFBoundary_u), 0, 0, 1, 1},
38215  {&__pyx_n_s_isDOFBoundary_um, __pyx_k_isDOFBoundary_um, sizeof(__pyx_k_isDOFBoundary_um), 0, 0, 1, 1},
38216  {&__pyx_n_s_isDOFBoundary_un, __pyx_k_isDOFBoundary_un, sizeof(__pyx_k_isDOFBoundary_un), 0, 0, 1, 1},
38217  {&__pyx_n_s_isDOFBoundary_uw, __pyx_k_isDOFBoundary_uw, sizeof(__pyx_k_isDOFBoundary_uw), 0, 0, 1, 1},
38218  {&__pyx_n_s_isDOFBoundary_v, __pyx_k_isDOFBoundary_v, sizeof(__pyx_k_isDOFBoundary_v), 0, 0, 1, 1},
38219  {&__pyx_n_s_isDOFBoundary_w, __pyx_k_isDOFBoundary_w, sizeof(__pyx_k_isDOFBoundary_w), 0, 0, 1, 1},
38220  {&__pyx_n_s_isDiffusiveFluxBoundary, __pyx_k_isDiffusiveFluxBoundary, sizeof(__pyx_k_isDiffusiveFluxBoundary), 0, 0, 1, 1},
38221  {&__pyx_n_s_isSeepageFace, __pyx_k_isSeepageFace, sizeof(__pyx_k_isSeepageFace), 0, 0, 1, 1},
38222  {&__pyx_n_s_isStressBoundary_u, __pyx_k_isStressBoundary_u, sizeof(__pyx_k_isStressBoundary_u), 0, 0, 1, 1},
38223  {&__pyx_n_s_isStressBoundary_v, __pyx_k_isStressBoundary_v, sizeof(__pyx_k_isStressBoundary_v), 0, 0, 1, 1},
38224  {&__pyx_n_s_isStressBoundary_w, __pyx_k_isStressBoundary_w, sizeof(__pyx_k_isStressBoundary_w), 0, 0, 1, 1},
38225  {&__pyx_n_s_l2g, __pyx_k_l2g, sizeof(__pyx_k_l2g), 0, 0, 1, 1},
38226  {&__pyx_n_s_lambda_bar, __pyx_k_lambda_bar, sizeof(__pyx_k_lambda_bar), 0, 0, 1, 1},
38227  {&__pyx_n_s_lambda_bar_element, __pyx_k_lambda_bar_element, sizeof(__pyx_k_lambda_bar_element), 0, 0, 1, 1},
38228  {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
38229  {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1},
38230  {&__pyx_n_s_nDOF_trial_element, __pyx_k_nDOF_trial_element, sizeof(__pyx_k_nDOF_trial_element), 0, 0, 1, 1},
38231  {&__pyx_n_s_nElementBoundaries_element, __pyx_k_nElementBoundaries_element, sizeof(__pyx_k_nElementBoundaries_element), 0, 0, 1, 1},
38232  {&__pyx_n_s_nExteriorElementBoundaries_globa, __pyx_k_nExteriorElementBoundaries_globa, sizeof(__pyx_k_nExteriorElementBoundaries_globa), 0, 0, 1, 1},
38233  {&__pyx_n_s_nQuadraturePoints_element, __pyx_k_nQuadraturePoints_element, sizeof(__pyx_k_nQuadraturePoints_element), 0, 0, 1, 1},
38234  {&__pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_k_nQuadraturePoints_elementBoundar, sizeof(__pyx_k_nQuadraturePoints_elementBoundar), 0, 0, 1, 1},
38235  {&__pyx_n_s_nSpace, __pyx_k_nSpace, sizeof(__pyx_k_nSpace), 0, 0, 1, 1},
38236  {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
38237  {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1},
38238  {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1},
38239  {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0},
38240  {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0},
38241  {&__pyx_n_s_oneByRho, __pyx_k_oneByRho, sizeof(__pyx_k_oneByRho), 0, 0, 1, 1},
38242  {&__pyx_n_s_p, __pyx_k_p, sizeof(__pyx_k_p), 0, 0, 1, 1},
38243  {&__pyx_n_s_penalty, __pyx_k_penalty, sizeof(__pyx_k_penalty), 0, 0, 1, 1},
38244  {&__pyx_n_s_penalty_floor, __pyx_k_penalty_floor, sizeof(__pyx_k_penalty_floor), 0, 0, 1, 1},
38245  {&__pyx_n_s_penalty_m, __pyx_k_penalty_m, sizeof(__pyx_k_penalty_m), 0, 0, 1, 1},
38246  {&__pyx_n_s_penalty_n, __pyx_k_penalty_n, sizeof(__pyx_k_penalty_n), 0, 0, 1, 1},
38247  {&__pyx_n_s_penalty_w, __pyx_k_penalty_w, sizeof(__pyx_k_penalty_w), 0, 0, 1, 1},
38248  {&__pyx_n_s_phi, __pyx_k_phi, sizeof(__pyx_k_phi), 0, 0, 1, 1},
38249  {&__pyx_n_s_phi_bc, __pyx_k_phi_bc, sizeof(__pyx_k_phi_bc), 0, 0, 1, 1},
38250  {&__pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_k_proteus_cnumericalFlux_pyx, sizeof(__pyx_k_proteus_cnumericalFlux_pyx), 0, 0, 1, 0},
38251  {&__pyx_n_s_psi_c, __pyx_k_psi_c, sizeof(__pyx_k_psi_c), 0, 0, 1, 1},
38252  {&__pyx_n_s_psi_n, __pyx_k_psi_n, sizeof(__pyx_k_psi_n), 0, 0, 1, 1},
38253  {&__pyx_n_s_psi_w, __pyx_k_psi_w, sizeof(__pyx_k_psi_w), 0, 0, 1, 1},
38254  {&__pyx_n_s_psiw, __pyx_k_psiw, sizeof(__pyx_k_psiw), 0, 0, 1, 1},
38255  {&__pyx_n_s_q_a, __pyx_k_q_a, sizeof(__pyx_k_q_a), 0, 0, 1, 1},
38256  {&__pyx_n_s_rowptr, __pyx_k_rowptr, sizeof(__pyx_k_rowptr), 0, 0, 1, 1},
38257  {&__pyx_n_s_rowptr_mm, __pyx_k_rowptr_mm, sizeof(__pyx_k_rowptr_mm), 0, 0, 1, 1},
38258  {&__pyx_n_s_rowptr_mw, __pyx_k_rowptr_mw, sizeof(__pyx_k_rowptr_mw), 0, 0, 1, 1},
38259  {&__pyx_n_s_rowptr_nn, __pyx_k_rowptr_nn, sizeof(__pyx_k_rowptr_nn), 0, 0, 1, 1},
38260  {&__pyx_n_s_rowptr_wm, __pyx_k_rowptr_wm, sizeof(__pyx_k_rowptr_wm), 0, 0, 1, 1},
38261  {&__pyx_n_s_rowptr_ww, __pyx_k_rowptr_ww, sizeof(__pyx_k_rowptr_ww), 0, 0, 1, 1},
38262  {&__pyx_n_s_s_w, __pyx_k_s_w, sizeof(__pyx_k_s_w), 0, 0, 1, 1},
38263  {&__pyx_n_s_safetyFactor, __pyx_k_safetyFactor, sizeof(__pyx_k_safetyFactor), 0, 0, 1, 1},
38264  {&__pyx_n_s_sahpe, __pyx_k_sahpe, sizeof(__pyx_k_sahpe), 0, 0, 1, 1},
38265  {&__pyx_n_s_sape, __pyx_k_sape, sizeof(__pyx_k_sape), 0, 0, 1, 1},
38266  {&__pyx_n_s_scale_penalty, __pyx_k_scale_penalty, sizeof(__pyx_k_scale_penalty), 0, 0, 1, 1},
38267  {&__pyx_n_s_setInflowFlux, __pyx_k_setInflowFlux, sizeof(__pyx_k_setInflowFlux), 0, 0, 1, 1},
38268  {&__pyx_n_s_sigma, __pyx_k_sigma, sizeof(__pyx_k_sigma), 0, 0, 1, 1},
38269  {&__pyx_n_s_sonicFlux, __pyx_k_sonicFlux, sizeof(__pyx_k_sonicFlux), 0, 0, 1, 1},
38270  {&__pyx_n_s_sonicPoint, __pyx_k_sonicPoint, sizeof(__pyx_k_sonicPoint), 0, 0, 1, 1},
38271  {&__pyx_n_s_speedEvalFlag, __pyx_k_speedEvalFlag, sizeof(__pyx_k_speedEvalFlag), 0, 0, 1, 1},
38272  {&__pyx_n_s_stressFlux_u, __pyx_k_stressFlux_u, sizeof(__pyx_k_stressFlux_u), 0, 0, 1, 1},
38273  {&__pyx_n_s_stressFlux_v, __pyx_k_stressFlux_v, sizeof(__pyx_k_stressFlux_v), 0, 0, 1, 1},
38274  {&__pyx_n_s_stressFlux_w, __pyx_k_stressFlux_w, sizeof(__pyx_k_stressFlux_w), 0, 0, 1, 1},
38275  {&__pyx_n_s_sw, __pyx_k_sw, sizeof(__pyx_k_sw), 0, 0, 1, 1},
38276  {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1},
38277  {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
38278  {&__pyx_n_s_tol_u, __pyx_k_tol_u, sizeof(__pyx_k_tol_u), 0, 0, 1, 1},
38279  {&__pyx_n_s_u, __pyx_k_u, sizeof(__pyx_k_u), 0, 0, 1, 1},
38280  {&__pyx_n_s_u_m, __pyx_k_u_m, sizeof(__pyx_k_u_m), 0, 0, 1, 1},
38281  {&__pyx_n_s_u_w, __pyx_k_u_w, sizeof(__pyx_k_u_w), 0, 0, 1, 1},
38282  {&__pyx_n_s_updateExteriorNumericalAdvective, __pyx_k_updateExteriorNumericalAdvective, sizeof(__pyx_k_updateExteriorNumericalAdvective), 0, 0, 1, 1},
38283  {&__pyx_n_s_updateExteriorNumericalAdvective_2, __pyx_k_updateExteriorNumericalAdvective_2, sizeof(__pyx_k_updateExteriorNumericalAdvective_2), 0, 0, 1, 1},
38284  {&__pyx_n_s_updateExteriorNumericalDiffusive, __pyx_k_updateExteriorNumericalDiffusive, sizeof(__pyx_k_updateExteriorNumericalDiffusive), 0, 0, 1, 1},
38285  {&__pyx_n_s_updateExteriorNumericalDiffusive_2, __pyx_k_updateExteriorNumericalDiffusive_2, sizeof(__pyx_k_updateExteriorNumericalDiffusive_2), 0, 0, 1, 1},
38286  {&__pyx_n_s_updateExteriorNumericalDiffusive_3, __pyx_k_updateExteriorNumericalDiffusive_3, sizeof(__pyx_k_updateExteriorNumericalDiffusive_3), 0, 0, 1, 1},
38287  {&__pyx_n_s_updateExteriorNumericalDiffusive_4, __pyx_k_updateExteriorNumericalDiffusive_4, sizeof(__pyx_k_updateExteriorNumericalDiffusive_4), 0, 0, 1, 1},
38288  {&__pyx_n_s_updateExteriorNumericalDiffusive_5, __pyx_k_updateExteriorNumericalDiffusive_5, sizeof(__pyx_k_updateExteriorNumericalDiffusive_5), 0, 0, 1, 1},
38289  {&__pyx_n_s_updateExteriorNumericalDiffusive_6, __pyx_k_updateExteriorNumericalDiffusive_6, sizeof(__pyx_k_updateExteriorNumericalDiffusive_6), 0, 0, 1, 1},
38290  {&__pyx_n_s_updateExteriorNumericalDiffusive_7, __pyx_k_updateExteriorNumericalDiffusive_7, sizeof(__pyx_k_updateExteriorNumericalDiffusive_7), 0, 0, 1, 1},
38291  {&__pyx_n_s_updateExteriorNumericalStressFlu, __pyx_k_updateExteriorNumericalStressFlu, sizeof(__pyx_k_updateExteriorNumericalStressFlu), 0, 0, 1, 1},
38292  {&__pyx_n_s_updateGlobalExteriorNumericalAdv, __pyx_k_updateGlobalExteriorNumericalAdv, sizeof(__pyx_k_updateGlobalExteriorNumericalAdv), 0, 0, 1, 1},
38293  {&__pyx_n_s_updateGlobalExteriorNumericalAdv_2, __pyx_k_updateGlobalExteriorNumericalAdv_2, sizeof(__pyx_k_updateGlobalExteriorNumericalAdv_2), 0, 0, 1, 1},
38294  {&__pyx_n_s_updateGlobalExteriorNumericalDif, __pyx_k_updateGlobalExteriorNumericalDif, sizeof(__pyx_k_updateGlobalExteriorNumericalDif), 0, 0, 1, 1},
38295  {&__pyx_n_s_updateGlobalExteriorNumericalDif_2, __pyx_k_updateGlobalExteriorNumericalDif_2, sizeof(__pyx_k_updateGlobalExteriorNumericalDif_2), 0, 0, 1, 1},
38296  {&__pyx_n_s_updateGlobalExteriorNumericalDif_3, __pyx_k_updateGlobalExteriorNumericalDif_3, sizeof(__pyx_k_updateGlobalExteriorNumericalDif_3), 0, 0, 1, 1},
38297  {&__pyx_n_s_updateGlobalExteriorNumericalDif_4, __pyx_k_updateGlobalExteriorNumericalDif_4, sizeof(__pyx_k_updateGlobalExteriorNumericalDif_4), 0, 0, 1, 1},
38298  {&__pyx_n_s_updateGlobalExteriorNumericalDif_5, __pyx_k_updateGlobalExteriorNumericalDif_5, sizeof(__pyx_k_updateGlobalExteriorNumericalDif_5), 0, 0, 1, 1},
38299  {&__pyx_n_s_updateGlobalExteriorNumericalDif_6, __pyx_k_updateGlobalExteriorNumericalDif_6, sizeof(__pyx_k_updateGlobalExteriorNumericalDif_6), 0, 0, 1, 1},
38300  {&__pyx_n_s_updateGlobalExteriorNumericalDif_7, __pyx_k_updateGlobalExteriorNumericalDif_7, sizeof(__pyx_k_updateGlobalExteriorNumericalDif_7), 0, 0, 1, 1},
38301  {&__pyx_n_s_updateInteriorNumericalAdvective, __pyx_k_updateInteriorNumericalAdvective, sizeof(__pyx_k_updateInteriorNumericalAdvective), 0, 0, 1, 1},
38302  {&__pyx_n_s_updateInteriorNumericalDiffusive, __pyx_k_updateInteriorNumericalDiffusive, sizeof(__pyx_k_updateInteriorNumericalDiffusive), 0, 0, 1, 1},
38303  {&__pyx_n_s_updateInteriorNumericalDiffusive_2, __pyx_k_updateInteriorNumericalDiffusive_2, sizeof(__pyx_k_updateInteriorNumericalDiffusive_2), 0, 0, 1, 1},
38304  {&__pyx_n_s_updateInteriorNumericalDiffusive_3, __pyx_k_updateInteriorNumericalDiffusive_3, sizeof(__pyx_k_updateInteriorNumericalDiffusive_3), 0, 0, 1, 1},
38305  {&__pyx_n_s_updateInteriorNumericalDiffusive_4, __pyx_k_updateInteriorNumericalDiffusive_4, sizeof(__pyx_k_updateInteriorNumericalDiffusive_4), 0, 0, 1, 1},
38306  {&__pyx_n_s_updateInteriorTwoSidedNumericalF, __pyx_k_updateInteriorTwoSidedNumericalF, sizeof(__pyx_k_updateInteriorTwoSidedNumericalF), 0, 0, 1, 1},
38307  {&__pyx_n_s_v, __pyx_k_v, sizeof(__pyx_k_v), 0, 0, 1, 1},
38308  {&__pyx_n_s_velocity, __pyx_k_velocity, sizeof(__pyx_k_velocity), 0, 0, 1, 1},
38309  {&__pyx_n_s_w, __pyx_k_w, sizeof(__pyx_k_w), 0, 0, 1, 1},
38310  {0, 0, 0, 0, 0, 0, 0}
38311 };
38312 static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
38313  __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 945, __pyx_L1_error)
38314  return 0;
38315  __pyx_L1_error:;
38316  return -1;
38317 }
38318 
38319 static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
38320  __Pyx_RefNannyDeclarations
38321  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
38322 
38323  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":945
38324  * __pyx_import_array()
38325  * except Exception:
38326  * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<<
38327  *
38328  * cdef inline int import_umath() except -1:
38329  */
38330  __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple_)) __PYX_ERR(1, 945, __pyx_L1_error)
38331  __Pyx_GOTREF(__pyx_tuple_);
38332  __Pyx_GIVEREF(__pyx_tuple_);
38333 
38334  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":951
38335  * _import_umath()
38336  * except Exception:
38337  * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<<
38338  *
38339  * cdef inline int import_ufunc() except -1:
38340  */
38341  __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 951, __pyx_L1_error)
38342  __Pyx_GOTREF(__pyx_tuple__2);
38343  __Pyx_GIVEREF(__pyx_tuple__2);
38344 
38345  /* "cnumericalFlux.pyx":2147
38346  * double* fluxJacobian)
38347  * ##-----------------
38348  * def calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, # <<<<<<<<<<<<<<
38349  * np.ndarray interiorElementBoundaries,
38350  * np.ndarray elementBoundaryElements,
38351  */
38352  __pyx_tuple__3 = PyTuple_Pack(9, __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); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 2147, __pyx_L1_error)
38353  __Pyx_GOTREF(__pyx_tuple__3);
38354  __Pyx_GIVEREF(__pyx_tuple__3);
38355  __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(9, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__3, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateInteriorNumericalAdvect, 2147, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 2147, __pyx_L1_error)
38356 
38357  /* "cnumericalFlux.pyx":2170
38358  * <double*> lambda_bar_element.data,
38359  * <double*> flux.data)
38360  * def calculateInteriorLesaintRaviartNumericalFlux(int speedEvalFlag, # <<<<<<<<<<<<<<
38361  * np.ndarray interiorElementBoundaries,
38362  * np.ndarray elementBoundaryElements,
38363  */
38364  __pyx_tuple__5 = PyTuple_Pack(11, __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); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 2170, __pyx_L1_error)
38365  __Pyx_GOTREF(__pyx_tuple__5);
38366  __Pyx_GIVEREF(__pyx_tuple__5);
38367  __pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(11, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__5, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateInteriorLesaintRaviartN, 2170, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__6)) __PYX_ERR(0, 2170, __pyx_L1_error)
38368 
38369  /* "cnumericalFlux.pyx":2196
38370  * <double*> dflux_left.data,
38371  * <double*> dflux_right.data)
38372  * def calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint(double sonicPoint, # <<<<<<<<<<<<<<
38373  * double sonicFlux,
38374  * np.ndarray interiorElementBoundaries,
38375  */
38376  __pyx_tuple__7 = PyTuple_Pack(12, __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); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 2196, __pyx_L1_error)
38377  __Pyx_GOTREF(__pyx_tuple__7);
38378  __Pyx_GIVEREF(__pyx_tuple__7);
38379  __pyx_codeobj__8 = (PyObject*)__Pyx_PyCode_New(12, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__7, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateInteriorNumericalAdvect_2, 2196, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__8)) __PYX_ERR(0, 2196, __pyx_L1_error)
38380 
38381  /* "cnumericalFlux.pyx":2224
38382  * <double*> dflux_left.data,
38383  * <double*> dflux_right.data)
38384  * def calculateInteriorNumericalAdvectiveFluxRusanov(double safetyFactor, # <<<<<<<<<<<<<<
38385  * np.ndarray interiorElementBoundaries,
38386  * np.ndarray elementBoundaryElements,
38387  */
38388  __pyx_tuple__9 = PyTuple_Pack(12, __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); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 2224, __pyx_L1_error)
38389  __Pyx_GOTREF(__pyx_tuple__9);
38390  __Pyx_GIVEREF(__pyx_tuple__9);
38391  __pyx_codeobj__10 = (PyObject*)__Pyx_PyCode_New(12, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__9, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateInteriorNumericalAdvect_3, 2224, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__10)) __PYX_ERR(0, 2224, __pyx_L1_error)
38392 
38393  /* "cnumericalFlux.pyx":2254
38394  * <double*> dflux_right.data)
38395  *
38396  * def calculateInteriorNumericalDiffusiveFlux(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
38397  * np.ndarray elementBoundaryElements,
38398  * np.ndarray elementBoundaryLocalElementBoundaries,
38399  */
38400  __pyx_tuple__11 = PyTuple_Pack(11, __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); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 2254, __pyx_L1_error)
38401  __Pyx_GOTREF(__pyx_tuple__11);
38402  __Pyx_GIVEREF(__pyx_tuple__11);
38403  __pyx_codeobj__12 = (PyObject*)__Pyx_PyCode_New(11, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__11, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateInteriorNumericalDiffus, 2254, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__12)) __PYX_ERR(0, 2254, __pyx_L1_error)
38404 
38405  /* "cnumericalFlux.pyx":2280
38406  * <double*> penalty.data,
38407  * <double*> flux.data)
38408  * def updateInteriorNumericalDiffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
38409  * np.ndarray interiorElementBoundaries,
38410  * np.ndarray elementBoundaryElements,
38411  */
38412  __pyx_tuple__13 = PyTuple_Pack(15, __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); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 2280, __pyx_L1_error)
38413  __Pyx_GOTREF(__pyx_tuple__13);
38414  __Pyx_GIVEREF(__pyx_tuple__13);
38415  __pyx_codeobj__14 = (PyObject*)__Pyx_PyCode_New(15, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateInteriorNumericalDiffusive, 2280, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__14)) __PYX_ERR(0, 2280, __pyx_L1_error)
38416 
38417  /* "cnumericalFlux.pyx":2317
38418  * <double*> fluxJacobian.data)
38419  *
38420  * def calculateInteriorNumericalAdvectiveFlux( np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
38421  * np.ndarray elementBoundaryElements,
38422  * np.ndarray elementBoundaryLocalElementBoundaries,
38423  */
38424  __pyx_tuple__15 = PyTuple_Pack(10, __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); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 2317, __pyx_L1_error)
38425  __Pyx_GOTREF(__pyx_tuple__15);
38426  __Pyx_GIVEREF(__pyx_tuple__15);
38427  __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(10, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateInteriorNumericalAdvect_4, 2317, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(0, 2317, __pyx_L1_error)
38428 
38429  /* "cnumericalFlux.pyx":2342
38430  * <double*> dflux_left.data,
38431  * <double*> dflux_right.data)
38432  * def updateInteriorNumericalAdvectiveFluxJacobian( np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
38433  * np.ndarray elementBoundaryElements,
38434  * np.ndarray elementBoundaryLocalElementBoundaries,
38435  */
38436  __pyx_tuple__17 = PyTuple_Pack(7, __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); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 2342, __pyx_L1_error)
38437  __Pyx_GOTREF(__pyx_tuple__17);
38438  __Pyx_GIVEREF(__pyx_tuple__17);
38439  __pyx_codeobj__18 = (PyObject*)__Pyx_PyCode_New(7, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateInteriorNumericalAdvective, 2342, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__18)) __PYX_ERR(0, 2342, __pyx_L1_error)
38440 
38441  /* "cnumericalFlux.pyx":2361
38442  * <double*> v.data,
38443  * <double*> fluxJacobian.data)
38444  * def calculateInteriorNumericalAdvectiveFlux_average(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
38445  * np.ndarray elementBoundaryElements,
38446  * np.ndarray elementBoundaryLocalElementBoundaries,
38447  */
38448  __pyx_tuple__19 = PyTuple_Pack(10, __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); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 2361, __pyx_L1_error)
38449  __Pyx_GOTREF(__pyx_tuple__19);
38450  __Pyx_GIVEREF(__pyx_tuple__19);
38451  __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(10, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__19, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateInteriorNumericalAdvect_5, 2361, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(0, 2361, __pyx_L1_error)
38452 
38453  /* "cnumericalFlux.pyx":2386
38454  * <double*> dflux_left.data,
38455  * <double*> dflux_right.data)
38456  * def calculateExteriorNumericalAdvectiveFlux_NoBC(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
38457  * np.ndarray elementBoundaryElements,
38458  * np.ndarray elementBoundaryLocalElementBoundaries,
38459  */
38460  __pyx_tuple__21 = PyTuple_Pack(9, __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); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 2386, __pyx_L1_error)
38461  __Pyx_GOTREF(__pyx_tuple__21);
38462  __Pyx_GIVEREF(__pyx_tuple__21);
38463  __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(9, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalAdvect, 2386, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 2386, __pyx_L1_error)
38464 
38465  /* "cnumericalFlux.pyx":2424
38466  * <double*> dflux_left.data)
38467  *
38468  * def calculateExteriorNumericalAdvectiveFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
38469  * np.ndarray elementBoundaryElements,
38470  * np.ndarray elementBoundaryLocalElementBoundaries,
38471  */
38472  __pyx_tuple__23 = PyTuple_Pack(14, __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); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 2424, __pyx_L1_error)
38473  __Pyx_GOTREF(__pyx_tuple__23);
38474  __Pyx_GIVEREF(__pyx_tuple__23);
38475  __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(14, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalAdvect_2, 2424, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 2424, __pyx_L1_error)
38476 
38477  /* "cnumericalFlux.pyx":2477
38478  * <double*> dflux.data)
38479  *
38480  * def updateExteriorNumericalAdvectiveFluxJacobian( np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
38481  * np.ndarray elementBoundaryElements,
38482  * np.ndarray elementBoundaryLocalElementBoundaries,
38483  */
38484  __pyx_tuple__25 = PyTuple_Pack(7, __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); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 2477, __pyx_L1_error)
38485  __Pyx_GOTREF(__pyx_tuple__25);
38486  __Pyx_GIVEREF(__pyx_tuple__25);
38487  __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(7, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateExteriorNumericalAdvective, 2477, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 2477, __pyx_L1_error)
38488 
38489  /* "cnumericalFlux.pyx":2508
38490  * <double*> v.data,
38491  * <double*> fluxJacobian.data)
38492  * def calculateInteriorNumericalDiffusiveFlux_LDG_upwind(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
38493  * np.ndarray elementBoundaryElements,
38494  * np.ndarray elementBoundaryLocalElementBoundaries,
38495  */
38496  __pyx_tuple__27 = PyTuple_Pack(10, __pyx_n_s_interiorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_n, __pyx_n_s_u, __pyx_n_s_a, __pyx_n_s_phi, __pyx_n_s_V, __pyx_n_s_penalty, __pyx_n_s_flux); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 2508, __pyx_L1_error)
38497  __Pyx_GOTREF(__pyx_tuple__27);
38498  __Pyx_GIVEREF(__pyx_tuple__27);
38499  __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(10, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateInteriorNumericalDiffus_2, 2508, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 2508, __pyx_L1_error)
38500 
38501  /* "cnumericalFlux.pyx":2533
38502  * <double*> penalty.data,
38503  * <double*> flux.data)
38504  * def updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
38505  * np.ndarray elementBoundaryElements,
38506  * np.ndarray elementBoundaryLocalElementBoundaries,
38507  */
38508  __pyx_tuple__29 = PyTuple_Pack(14, __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_dphi, __pyx_n_s_V, __pyx_n_s_DV, __pyx_n_s_DV_eb, __pyx_n_s_v, __pyx_n_s_penalty, __pyx_n_s_fluxJacobian, __pyx_n_s_fluxJacobian_eb); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 2533, __pyx_L1_error)
38509  __Pyx_GOTREF(__pyx_tuple__29);
38510  __Pyx_GIVEREF(__pyx_tuple__29);
38511  __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(14, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateInteriorNumericalDiffusive_2, 2533, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 2533, __pyx_L1_error)
38512 
38513  /* "cnumericalFlux.pyx":2568
38514  * <double*> fluxJacobian_eb.data)
38515  *
38516  * def setInflowFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
38517  * np.ndarray inflowFlux,
38518  * np.ndarray flux):
38519  */
38520  __pyx_tuple__31 = PyTuple_Pack(3, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_inflowFlux, __pyx_n_s_flux); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 2568, __pyx_L1_error)
38521  __Pyx_GOTREF(__pyx_tuple__31);
38522  __Pyx_GIVEREF(__pyx_tuple__31);
38523  __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_setInflowFlux, 2568, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 2568, __pyx_L1_error)
38524 
38525  /* "cnumericalFlux.pyx":2576
38526  * <double*> inflowFlux.data,
38527  * <double*> flux.data)
38528  * def updateInteriorTwoSidedNumericalFluxJacobian(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
38529  * np.ndarray elementBoundaryElements,
38530  * np.ndarray elementBoundaryLocalElementBoundaries,
38531  */
38532  __pyx_tuple__33 = PyTuple_Pack(7, __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_2sided); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 2576, __pyx_L1_error)
38533  __Pyx_GOTREF(__pyx_tuple__33);
38534  __Pyx_GIVEREF(__pyx_tuple__33);
38535  __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(7, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateInteriorTwoSidedNumericalF, 2576, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 2576, __pyx_L1_error)
38536 
38537  /* "cnumericalFlux.pyx":2595
38538  * <double*> fluxJacobian_2sided.data)
38539  *
38540  * def calculateGlobalExteriorInflowNumericalAdvectiveFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
38541  * np.ndarray elementBoundaryElements,
38542  * np.ndarray elementBoundaryLocalElementBoundaries,
38543  */
38544  __pyx_tuple__35 = PyTuple_Pack(10, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_inflowFlag, __pyx_n_s_inflowFlux, __pyx_n_s_n, __pyx_n_s_f, __pyx_n_s_df, __pyx_n_s_flux, __pyx_n_s_dflux_left); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 2595, __pyx_L1_error)
38545  __Pyx_GOTREF(__pyx_tuple__35);
38546  __Pyx_GIVEREF(__pyx_tuple__35);
38547  __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(10, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__35, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorInflowNum, 2595, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 2595, __pyx_L1_error)
38548 
38549  /* "cnumericalFlux.pyx":2618
38550  * <double*> flux.data,
38551  * <double*> dflux_left.data)
38552  * def updateGlobalExteriorNumericalAdvectiveFluxJacobian(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
38553  * int nQuadraturePoints_elementBoundary,
38554  * int nDOF_trial_element,
38555  */
38556  __pyx_tuple__37 = PyTuple_Pack(10, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nDOF_trial_element, __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); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 2618, __pyx_L1_error)
38557  __Pyx_GOTREF(__pyx_tuple__37);
38558  __Pyx_GIVEREF(__pyx_tuple__37);
38559  __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(10, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateGlobalExteriorNumericalAdv, 2618, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(0, 2618, __pyx_L1_error)
38560 
38561  /* "cnumericalFlux.pyx":2638
38562  * <double*> v.data,
38563  * <double*> fluxJacobian.data)
38564  * def calculateInteriorChengShuNumericalFlux(int speedEvalFlag, # <<<<<<<<<<<<<<
38565  * np.ndarray interiorElementBoundaries,
38566  * np.ndarray elementBoundaryElements,
38567  */
38568  __pyx_tuple__39 = PyTuple_Pack(13, __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_H_element, __pyx_n_s_dH_element, __pyx_n_s_flux, __pyx_n_s_dflux_left, __pyx_n_s_dflux_right); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 2638, __pyx_L1_error)
38569  __Pyx_GOTREF(__pyx_tuple__39);
38570  __Pyx_GIVEREF(__pyx_tuple__39);
38571  __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(13, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateInteriorChengShuNumeric, 2638, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(0, 2638, __pyx_L1_error)
38572 
38573  /* "cnumericalFlux.pyx":2669
38574  * <double*> dflux_left.data,
38575  * <double*> dflux_right.data)
38576  * def calculateGlobalExteriorNumericalFluxDarcyFCFF(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
38577  * np.ndarray elementBoundaryElements,
38578  * np.ndarray elementBoundaryLocalElementBoundaries,
38579  */
38580  __pyx_tuple__41 = PyTuple_Pack(30, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_uw, __pyx_n_s_isDOFBoundary_um, __pyx_n_s_n, __pyx_n_s_bc_f_m, __pyx_n_s_bc_a_wm, __pyx_n_s_bc_a_mw, __pyx_n_s_bc_a_mm, __pyx_n_s_bc_grad_phi_w, __pyx_n_s_bc_grad_phi_m, __pyx_n_s_bc_u_w, __pyx_n_s_bc_u_m, __pyx_n_s_f_m, __pyx_n_s_df_m_dw, __pyx_n_s_a_wm, __pyx_n_s_a_mw, __pyx_n_s_a_mm, __pyx_n_s_grad_phi_w, __pyx_n_s_grad_phi_m, __pyx_n_s_u_w, __pyx_n_s_u_m, __pyx_n_s_penalty_w, __pyx_n_s_penalty_m, __pyx_n_s_advectiveFlux_m, __pyx_n_s_dadvectiveFlux_m_dw, __pyx_n_s_diffusiveFlux_wm, __pyx_n_s_diffusiveFlux_mw, __pyx_n_s_diffusiveFlux_mm); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 2669, __pyx_L1_error)
38581  __Pyx_GOTREF(__pyx_tuple__41);
38582  __Pyx_GIVEREF(__pyx_tuple__41);
38583  __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(30, 0, 30, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__41, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical, 2669, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 2669, __pyx_L1_error)
38584 
38585  /* "cnumericalFlux.pyx":2732
38586  * <double*> diffusiveFlux_mw.data,
38587  * <double*> diffusiveFlux_mm.data)
38588  * def calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
38589  * np.ndarray exteriorElementBoundaries,
38590  * np.ndarray elementBoundaryElements,
38591  */
38592  __pyx_tuple__43 = PyTuple_Pack(34, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_uw, __pyx_n_s_isDOFBoundary_um, __pyx_n_s_n, __pyx_n_s_f_m, __pyx_n_s_df_m_dw, __pyx_n_s_a_wm, __pyx_n_s_da_wm_dw, __pyx_n_s_da_wm_dm, __pyx_n_s_a_mw, __pyx_n_s_da_mw_dw, __pyx_n_s_da_mw_dm, __pyx_n_s_a_mm, __pyx_n_s_da_mm_dw, __pyx_n_s_da_mm_dm, __pyx_n_s_grad_phi_w, __pyx_n_s_grad_phi_m, __pyx_n_s_dphi_w_w, __pyx_n_s_dphi_w_m, __pyx_n_s_dphi_m_w, __pyx_n_s_dphi_m_m, __pyx_n_s_u_w, __pyx_n_s_u_m, __pyx_n_s_v, __pyx_n_s_grad_v, __pyx_n_s_penalty_w, __pyx_n_s_penalty_m, __pyx_n_s_fluxJacobian_ww, __pyx_n_s_fluxJacobian_wm, __pyx_n_s_fluxJacobian_mw, __pyx_n_s_fluxJacobian_mm); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(0, 2732, __pyx_L1_error)
38593  __Pyx_GOTREF(__pyx_tuple__43);
38594  __Pyx_GIVEREF(__pyx_tuple__43);
38595  __pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(34, 0, 34, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__43, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_2, 2732, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(0, 2732, __pyx_L1_error)
38596 
38597  /* "cnumericalFlux.pyx":2804
38598  * <double*> fluxJacobian_mw.data,
38599  * <double*> fluxJacobian_mm.data)
38600  * def updateExteriorNumericalStressFluxJacobian(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
38601  * np.ndarray elementBoundaryElements,
38602  * np.ndarray elementBoundaryLocalElementBoundaries,
38603  */
38604  __pyx_tuple__45 = PyTuple_Pack(31, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_isDOFBoundary_v, __pyx_n_s_isDOFBoundary_w, __pyx_n_s_isStressBoundary_u, __pyx_n_s_isStressBoundary_v, __pyx_n_s_isStressBoundary_w, __pyx_n_s_n, __pyx_n_s_dstress_u_u, __pyx_n_s_dstress_u_v, __pyx_n_s_dstress_u_w, __pyx_n_s_dstress_v_u, __pyx_n_s_dstress_v_v, __pyx_n_s_dstress_v_w, __pyx_n_s_dstress_w_u, __pyx_n_s_dstress_w_v, __pyx_n_s_dstress_w_w, __pyx_n_s_v, __pyx_n_s_grad_v, __pyx_n_s_penalty, __pyx_n_s_fluxJacobian_u_u, __pyx_n_s_fluxJacobian_u_v, __pyx_n_s_fluxJacobian_u_w, __pyx_n_s_fluxJacobian_v_u, __pyx_n_s_fluxJacobian_v_v, __pyx_n_s_fluxJacobian_v_w, __pyx_n_s_fluxJacobian_w_u, __pyx_n_s_fluxJacobian_w_v, __pyx_n_s_fluxJacobian_w_w); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 2804, __pyx_L1_error)
38605  __Pyx_GOTREF(__pyx_tuple__45);
38606  __Pyx_GIVEREF(__pyx_tuple__45);
38607  __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(31, 0, 31, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__45, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateExteriorNumericalStressFlu, 2804, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(0, 2804, __pyx_L1_error)
38608 
38609  /* "cnumericalFlux.pyx":2870
38610  * <double*> fluxJacobian_w_v.data,
38611  * <double*> fluxJacobian_w_w.data)
38612  * def calculateExteriorNumericalFluxRichards_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
38613  * np.ndarray colind,
38614  * np.ndarray isSeepageFace,
38615  */
38616  __pyx_tuple__47 = PyTuple_Pack(12, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_isSeepageFace, __pyx_n_s_isDOFBoundary, __pyx_n_s_n, __pyx_n_s_bc_u, __pyx_n_s_K, __pyx_n_s_grad_psi, __pyx_n_s_u, __pyx_n_s_K_rho_g, __pyx_n_s_penalty, __pyx_n_s_diffusiveFlux); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(0, 2870, __pyx_L1_error)
38617  __Pyx_GOTREF(__pyx_tuple__47);
38618  __Pyx_GIVEREF(__pyx_tuple__47);
38619  __pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(12, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__47, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalFluxRi, 2870, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(0, 2870, __pyx_L1_error)
38620 
38621  /* "cnumericalFlux.pyx":2897
38622  * <double*> penalty.data,
38623  * <double*> diffusiveFlux.data)
38624  * def calculateExteriorNumericalFluxJacobianRichards_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
38625  * np.ndarray colind,
38626  * np.ndarray isDOFBoundary,
38627  */
38628  __pyx_tuple__49 = PyTuple_Pack(14, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_isDOFBoundary, __pyx_n_s_n, __pyx_n_s_bc_u, __pyx_n_s_K, __pyx_n_s_dK, __pyx_n_s_grad_psi, __pyx_n_s_grad_v, __pyx_n_s_u, __pyx_n_s_dK_rho_g, __pyx_n_s_v, __pyx_n_s_penalty, __pyx_n_s_fluxJacobian); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(0, 2897, __pyx_L1_error)
38629  __Pyx_GOTREF(__pyx_tuple__49);
38630  __Pyx_GIVEREF(__pyx_tuple__49);
38631  __pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(14, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__49, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalFluxJa, 2897, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(0, 2897, __pyx_L1_error)
38632 
38633  /* "cnumericalFlux.pyx":2929
38634  * <double*> penalty.data,
38635  * <double*> fluxJacobian.data)
38636  * def calculateExteriorNumericalAdvectiveFluxStokes2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
38637  * np.ndarray elementBoundaryElements,
38638  * np.ndarray elementBoundaryLocalElementBoundaries,
38639  */
38640  __pyx_tuple__51 = PyTuple_Pack(21, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_p, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_isDOFBoundary_v, __pyx_n_s_n, __pyx_n_s_bc_p, __pyx_n_s_bc_f_mass, __pyx_n_s_p, __pyx_n_s_f_mass, __pyx_n_s_df_mass_du, __pyx_n_s_df_mass_dv, __pyx_n_s_flux_mass, __pyx_n_s_flux_umom, __pyx_n_s_flux_vmom, __pyx_n_s_dflux_mass_du, __pyx_n_s_dflux_mass_dv, __pyx_n_s_dflux_umom_dp, __pyx_n_s_dflux_vmom_dp, __pyx_n_s_velocity); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(0, 2929, __pyx_L1_error)
38641  __Pyx_GOTREF(__pyx_tuple__51);
38642  __Pyx_GIVEREF(__pyx_tuple__51);
38643  __pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(21, 0, 21, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__51, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalAdvect_3, 2929, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(0, 2929, __pyx_L1_error)
38644 
38645  /* "cnumericalFlux.pyx":2976
38646  * ####=========
38647  *
38648  * def calculateInteriorNumericalDiffusiveFlux_sd( np.ndarray rowptr, # <<<<<<<<<<<<<<
38649  * np.ndarray colind,
38650  * np.ndarray interiorElementBoundaries,
38651  */
38652  __pyx_tuple__53 = PyTuple_Pack(13, __pyx_n_s_rowptr, __pyx_n_s_colind, __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); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(0, 2976, __pyx_L1_error)
38653  __Pyx_GOTREF(__pyx_tuple__53);
38654  __Pyx_GIVEREF(__pyx_tuple__53);
38655  __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(13, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateInteriorNumericalDiffus_3, 2976, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(0, 2976, __pyx_L1_error)
38656 
38657  /* "cnumericalFlux.pyx":3007
38658  * <double*> flux.data)
38659  *
38660  * def updateInteriorNumericalDiffusiveFluxJacobian_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
38661  * np.ndarray colind,
38662  * np.ndarray l2g,
38663  */
38664  __pyx_tuple__55 = PyTuple_Pack(17, __pyx_n_s_rowptr, __pyx_n_s_colind, __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); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(0, 3007, __pyx_L1_error)
38665  __Pyx_GOTREF(__pyx_tuple__55);
38666  __Pyx_GIVEREF(__pyx_tuple__55);
38667  __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(17, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateInteriorNumericalDiffusive_3, 3007, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 3007, __pyx_L1_error)
38668 
38669  /* "cnumericalFlux.pyx":3046
38670  * <double*> penalty.data,
38671  * <double*> fluxJacobian.data)
38672  * def updateExteriorNumericalDiffusiveFluxJacobian_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
38673  * np.ndarray colind,
38674  * np.ndarray l2g,
38675  */
38676  __pyx_tuple__57 = PyTuple_Pack(18, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __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); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(0, 3046, __pyx_L1_error)
38677  __Pyx_GOTREF(__pyx_tuple__57);
38678  __Pyx_GIVEREF(__pyx_tuple__57);
38679  __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(18, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateExteriorNumericalDiffusive, 3046, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(0, 3046, __pyx_L1_error)
38680 
38681  /* "cnumericalFlux.pyx":3113
38682  * else:
38683  * exit(1)
38684  * def updateExteriorNumericalDiffusiveFluxJacobian_free_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
38685  * np.ndarray colind,
38686  * np.ndarray l2g,
38687  */
38688  __pyx_tuple__59 = PyTuple_Pack(16, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __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); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(0, 3113, __pyx_L1_error)
38689  __Pyx_GOTREF(__pyx_tuple__59);
38690  __Pyx_GIVEREF(__pyx_tuple__59);
38691  __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(16, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateExteriorNumericalDiffusive_2, 3113, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(0, 3113, __pyx_L1_error)
38692 
38693  /* "cnumericalFlux.pyx":3174
38694  * else:
38695  * exit(1)
38696  * def calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
38697  * np.ndarray colind,
38698  * np.ndarray interiorElementBoundaries,
38699  */
38700  __pyx_tuple__61 = PyTuple_Pack(12, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_interiorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_n, __pyx_n_s_u, __pyx_n_s_a, __pyx_n_s_phi, __pyx_n_s_V, __pyx_n_s_penalty, __pyx_n_s_flux); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(0, 3174, __pyx_L1_error)
38701  __Pyx_GOTREF(__pyx_tuple__61);
38702  __Pyx_GIVEREF(__pyx_tuple__61);
38703  __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(12, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateInteriorNumericalDiffus_4, 3174, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(0, 3174, __pyx_L1_error)
38704 
38705  /* "cnumericalFlux.pyx":3202
38706  * <double*> penalty.data,
38707  * <double*> flux.data)
38708  * def updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
38709  * np.ndarray colind,
38710  * np.ndarray interiorElementBoundaries,
38711  */
38712  __pyx_tuple__63 = PyTuple_Pack(16, __pyx_n_s_rowptr, __pyx_n_s_colind, __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_dphi, __pyx_n_s_V, __pyx_n_s_DV, __pyx_n_s_DV_eb, __pyx_n_s_v, __pyx_n_s_penalty, __pyx_n_s_fluxJacobian, __pyx_n_s_fluxJacobian_eb); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(0, 3202, __pyx_L1_error)
38713  __Pyx_GOTREF(__pyx_tuple__63);
38714  __Pyx_GIVEREF(__pyx_tuple__63);
38715  __pyx_codeobj__64 = (PyObject*)__Pyx_PyCode_New(16, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__63, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateInteriorNumericalDiffusive_4, 3202, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(0, 3202, __pyx_L1_error)
38716 
38717  /* "cnumericalFlux.pyx":3240
38718  * <double*> fluxJacobian_eb.data)
38719  *
38720  * def calculateDiffusionMatrixSplittings_LDG_sd(int aSplit, # <<<<<<<<<<<<<<
38721  * int nSpace,
38722  * np.ndarray rowptr,
38723  */
38724  __pyx_tuple__65 = PyTuple_Pack(10, __pyx_n_s_aSplit, __pyx_n_s_nSpace, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_ebq_a, __pyx_n_s_q_a, __pyx_n_s_eb_aHat, __pyx_n_s_eb_aTilde, __pyx_n_s_aHat, __pyx_n_s_aTilde); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(0, 3240, __pyx_L1_error)
38725  __Pyx_GOTREF(__pyx_tuple__65);
38726  __Pyx_GIVEREF(__pyx_tuple__65);
38727  __pyx_codeobj__66 = (PyObject*)__Pyx_PyCode_New(10, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__65, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateDiffusionMatrixSplittin, 3240, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__66)) __PYX_ERR(0, 3240, __pyx_L1_error)
38728 
38729  /* "cnumericalFlux.pyx":3264
38730  * <double*> aHat.data,
38731  * <double*> aTilde.data)
38732  * def calculateGlobalExteriorNumericalFluxDarcyFCFF_sd(np.ndarray rowptr_wm, # <<<<<<<<<<<<<<
38733  * np.ndarray colind_wm,
38734  * np.ndarray rowptr_mw,
38735  */
38736  __pyx_tuple__67 = PyTuple_Pack(36, __pyx_n_s_rowptr_wm, __pyx_n_s_colind_wm, __pyx_n_s_rowptr_mw, __pyx_n_s_colind_mw, __pyx_n_s_rowptr_mm, __pyx_n_s_colind_mm, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_uw, __pyx_n_s_isDOFBoundary_um, __pyx_n_s_n, __pyx_n_s_bc_f_m, __pyx_n_s_bc_a_wm, __pyx_n_s_bc_a_mw, __pyx_n_s_bc_a_mm, __pyx_n_s_bc_grad_phi_w, __pyx_n_s_bc_grad_phi_m, __pyx_n_s_bc_u_w, __pyx_n_s_bc_u_m, __pyx_n_s_f_m, __pyx_n_s_df_m_dw, __pyx_n_s_a_wm, __pyx_n_s_a_mw, __pyx_n_s_a_mm, __pyx_n_s_grad_phi_w, __pyx_n_s_grad_phi_m, __pyx_n_s_u_w, __pyx_n_s_u_m, __pyx_n_s_penalty_w, __pyx_n_s_penalty_m, __pyx_n_s_advectiveFlux_m, __pyx_n_s_dadvectiveFlux_m_dw, __pyx_n_s_diffusiveFlux_wm, __pyx_n_s_diffusiveFlux_mw, __pyx_n_s_diffusiveFlux_mm); if (unlikely(!__pyx_tuple__67)) __PYX_ERR(0, 3264, __pyx_L1_error)
38737  __Pyx_GOTREF(__pyx_tuple__67);
38738  __Pyx_GIVEREF(__pyx_tuple__67);
38739  __pyx_codeobj__68 = (PyObject*)__Pyx_PyCode_New(36, 0, 36, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__67, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_3, 3264, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__68)) __PYX_ERR(0, 3264, __pyx_L1_error)
38740 
38741  /* "cnumericalFlux.pyx":3339
38742  * <double*> diffusiveFlux_mw.data,
38743  * <double*> diffusiveFlux_mm.data)
38744  * def calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd(np.ndarray rowptr_wm, # <<<<<<<<<<<<<<
38745  * np.ndarray colind_wm,
38746  * np.ndarray rowptr_mw,
38747  */
38748  __pyx_tuple__69 = PyTuple_Pack(40, __pyx_n_s_rowptr_wm, __pyx_n_s_colind_wm, __pyx_n_s_rowptr_mw, __pyx_n_s_colind_mw, __pyx_n_s_rowptr_mm, __pyx_n_s_colind_mm, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_uw, __pyx_n_s_isDOFBoundary_um, __pyx_n_s_n, __pyx_n_s_f_m, __pyx_n_s_df_m_dw, __pyx_n_s_a_wm, __pyx_n_s_da_wm_dw, __pyx_n_s_da_wm_dm, __pyx_n_s_a_mw, __pyx_n_s_da_mw_dw, __pyx_n_s_da_mw_dm, __pyx_n_s_a_mm, __pyx_n_s_da_mm_dw, __pyx_n_s_da_mm_dm, __pyx_n_s_grad_phi_w, __pyx_n_s_grad_phi_m, __pyx_n_s_dphi_w_w, __pyx_n_s_dphi_w_m, __pyx_n_s_dphi_m_w, __pyx_n_s_dphi_m_m, __pyx_n_s_u_w, __pyx_n_s_u_m, __pyx_n_s_v, __pyx_n_s_grad_v, __pyx_n_s_penalty_w, __pyx_n_s_penalty_m, __pyx_n_s_fluxJacobian_ww, __pyx_n_s_fluxJacobian_wm, __pyx_n_s_fluxJacobian_mw, __pyx_n_s_fluxJacobian_mm); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(0, 3339, __pyx_L1_error)
38749  __Pyx_GOTREF(__pyx_tuple__69);
38750  __Pyx_GIVEREF(__pyx_tuple__69);
38751  __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(40, 0, 40, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_4, 3339, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(0, 3339, __pyx_L1_error)
38752 
38753  /* "cnumericalFlux.pyx":3423
38754  * <double*> fluxJacobian_mw.data,
38755  * <double*> fluxJacobian_mm.data)
38756  * def calculateGlobalExteriorNumericalFluxDarcyFC(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
38757  * np.ndarray elementBoundaryElements,
38758  * np.ndarray elementBoundaryLocalElementBoundaries,
38759  */
38760  __pyx_tuple__71 = PyTuple_Pack(26, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_uw, __pyx_n_s_isDOFBoundary_un, __pyx_n_s_fluxBoundaryFlag_uw, __pyx_n_s_fluxBoundaryFlag_un, __pyx_n_s_n, __pyx_n_s_bc_a_ww, __pyx_n_s_bc_a_nn, __pyx_n_s_bc_grad_phi_w, __pyx_n_s_bc_grad_phi_n, __pyx_n_s_bc_s_w, __pyx_n_s_bc_psi_w, __pyx_n_s_bc_psi_n, __pyx_n_s_a_ww, __pyx_n_s_a_nn, __pyx_n_s_grad_phi_w, __pyx_n_s_grad_phi_n, __pyx_n_s_s_w, __pyx_n_s_psi_w, __pyx_n_s_psi_n, __pyx_n_s_penalty_w, __pyx_n_s_penalty_n, __pyx_n_s_diffusiveFlux_ww, __pyx_n_s_diffusiveFlux_nn); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(0, 3423, __pyx_L1_error)
38761  __Pyx_GOTREF(__pyx_tuple__71);
38762  __Pyx_GIVEREF(__pyx_tuple__71);
38763  __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(26, 0, 26, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_5, 3423, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 3423, __pyx_L1_error)
38764 
38765  /* "cnumericalFlux.pyx":3478
38766  * <double*> diffusiveFlux_ww.data,
38767  * <double*> diffusiveFlux_nn.data)
38768  * def calculateGlobalExteriorNumericalFluxDarcyFC_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
38769  * np.ndarray colind_ww,
38770  * np.ndarray rowptr_nn,
38771  */
38772  __pyx_tuple__73 = PyTuple_Pack(30, __pyx_n_s_rowptr_ww, __pyx_n_s_colind_ww, __pyx_n_s_rowptr_nn, __pyx_n_s_colind_nn, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_uw, __pyx_n_s_isDOFBoundary_un, __pyx_n_s_fluxBoundaryFlag_uw, __pyx_n_s_fluxBoundaryFlag_un, __pyx_n_s_n, __pyx_n_s_bc_a_ww, __pyx_n_s_bc_a_nn, __pyx_n_s_bc_grad_phi_w, __pyx_n_s_bc_grad_phi_n, __pyx_n_s_bc_s_w, __pyx_n_s_bc_psi_w, __pyx_n_s_bc_psi_n, __pyx_n_s_a_ww, __pyx_n_s_a_nn, __pyx_n_s_grad_phi_w, __pyx_n_s_grad_phi_n, __pyx_n_s_s_w, __pyx_n_s_psi_w, __pyx_n_s_psi_n, __pyx_n_s_penalty_w, __pyx_n_s_penalty_n, __pyx_n_s_diffusiveFlux_ww, __pyx_n_s_diffusiveFlux_nn); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(0, 3478, __pyx_L1_error)
38773  __Pyx_GOTREF(__pyx_tuple__73);
38774  __Pyx_GIVEREF(__pyx_tuple__73);
38775  __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(30, 0, 30, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_6, 3478, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 3478, __pyx_L1_error)
38776 
38777  /* "cnumericalFlux.pyx":3541
38778  * <double*> diffusiveFlux_ww.data,
38779  * <double*> diffusiveFlux_nn.data)
38780  * def calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
38781  * np.ndarray exteriorElementBoundaries,
38782  * np.ndarray elementBoundaryElements,
38783  */
38784  __pyx_tuple__75 = PyTuple_Pack(34, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_uw, __pyx_n_s_isDOFBoundary_un, __pyx_n_s_fluxBoundaryFlag_uw, __pyx_n_s_fluxBoundaryFlag_un, __pyx_n_s_n, __pyx_n_s_a_ww, __pyx_n_s_da_ww_dw, __pyx_n_s_da_ww_dn, __pyx_n_s_a_nn, __pyx_n_s_da_nn_dw, __pyx_n_s_da_nn_dn, __pyx_n_s_grad_phi_w, __pyx_n_s_grad_phi_n, __pyx_n_s_dphi_w_w, __pyx_n_s_dphi_w_n, __pyx_n_s_dphi_n_w, __pyx_n_s_dphi_n_n, __pyx_n_s_s_w, __pyx_n_s_psi_w, __pyx_n_s_psi_n, __pyx_n_s_dpsi_n_dsw, __pyx_n_s_dpsi_n_dpsiw, __pyx_n_s_v, __pyx_n_s_grad_v, __pyx_n_s_penalty_w, __pyx_n_s_penalty_n, __pyx_n_s_fluxJacobian_ww, __pyx_n_s_fluxJacobian_wn, __pyx_n_s_fluxJacobian_nw, __pyx_n_s_fluxJacobian_nn); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(0, 3541, __pyx_L1_error)
38785  __Pyx_GOTREF(__pyx_tuple__75);
38786  __Pyx_GIVEREF(__pyx_tuple__75);
38787  __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(34, 0, 34, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__75, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_7, 3541, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(0, 3541, __pyx_L1_error)
38788 
38789  /* "cnumericalFlux.pyx":3613
38790  * <double*> fluxJacobian_nw.data,
38791  * <double*> fluxJacobian_nn.data)
38792  * def calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
38793  * np.ndarray colind_ww,
38794  * np.ndarray rowptr_nn,
38795  */
38796  __pyx_tuple__77 = PyTuple_Pack(38, __pyx_n_s_rowptr_ww, __pyx_n_s_colind_ww, __pyx_n_s_rowptr_nn, __pyx_n_s_colind_nn, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_uw, __pyx_n_s_isDOFBoundary_un, __pyx_n_s_fluxBoundaryFlag_uw, __pyx_n_s_fluxBoundaryFlag_un, __pyx_n_s_n, __pyx_n_s_a_ww, __pyx_n_s_da_ww_dw, __pyx_n_s_da_ww_dn, __pyx_n_s_a_nn, __pyx_n_s_da_nn_dw, __pyx_n_s_da_nn_dn, __pyx_n_s_grad_phi_w, __pyx_n_s_grad_phi_n, __pyx_n_s_dphi_w_w, __pyx_n_s_dphi_w_n, __pyx_n_s_dphi_n_w, __pyx_n_s_dphi_n_n, __pyx_n_s_s_w, __pyx_n_s_psi_w, __pyx_n_s_psi_n, __pyx_n_s_dpsi_n_dsw, __pyx_n_s_dpsi_n_dpsiw, __pyx_n_s_v, __pyx_n_s_grad_v, __pyx_n_s_penalty_w, __pyx_n_s_penalty_n, __pyx_n_s_fluxJacobian_ww, __pyx_n_s_fluxJacobian_wn, __pyx_n_s_fluxJacobian_nw, __pyx_n_s_fluxJacobian_nn); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(0, 3613, __pyx_L1_error)
38797  __Pyx_GOTREF(__pyx_tuple__77);
38798  __Pyx_GIVEREF(__pyx_tuple__77);
38799  __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(38, 0, 38, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_8, 3613, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(0, 3613, __pyx_L1_error)
38800 
38801  /* "cnumericalFlux.pyx":3693
38802  * <double*> fluxJacobian_nw.data,
38803  * <double*> fluxJacobian_nn.data)
38804  * def calculateGlobalExteriorNumericalFluxDarcyFCPP(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
38805  * np.ndarray elementBoundaryElements,
38806  * np.ndarray elementBoundaryLocalElementBoundaries,
38807  */
38808  __pyx_tuple__79 = PyTuple_Pack(26, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_uw, __pyx_n_s_isDOFBoundary_un, __pyx_n_s_fluxBoundaryFlag_uw, __pyx_n_s_fluxBoundaryFlag_un, __pyx_n_s_n, __pyx_n_s_bc_a_ww, __pyx_n_s_bc_a_nn, __pyx_n_s_bc_grad_phi_w, __pyx_n_s_bc_grad_phi_n, __pyx_n_s_bc_psi_w, __pyx_n_s_bc_psi_c, __pyx_n_s_bc_psi_n, __pyx_n_s_a_ww, __pyx_n_s_a_nn, __pyx_n_s_grad_phi_w, __pyx_n_s_grad_phi_n, __pyx_n_s_psi_w, __pyx_n_s_psi_c, __pyx_n_s_psi_n, __pyx_n_s_penalty_w, __pyx_n_s_penalty_n, __pyx_n_s_diffusiveFlux_ww, __pyx_n_s_diffusiveFlux_nn); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(0, 3693, __pyx_L1_error)
38809  __Pyx_GOTREF(__pyx_tuple__79);
38810  __Pyx_GIVEREF(__pyx_tuple__79);
38811  __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(26, 0, 26, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_9, 3693, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(0, 3693, __pyx_L1_error)
38812 
38813  /* "cnumericalFlux.pyx":3748
38814  * <double*> diffusiveFlux_ww.data,
38815  * <double*> diffusiveFlux_nn.data)
38816  * def calculateGlobalExteriorNumericalFluxDarcyFCPP_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
38817  * np.ndarray colind_ww,
38818  * np.ndarray rowptr_nn,
38819  */
38820  __pyx_tuple__81 = PyTuple_Pack(30, __pyx_n_s_rowptr_ww, __pyx_n_s_colind_ww, __pyx_n_s_rowptr_nn, __pyx_n_s_colind_nn, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_uw, __pyx_n_s_isDOFBoundary_un, __pyx_n_s_fluxBoundaryFlag_uw, __pyx_n_s_fluxBoundaryFlag_un, __pyx_n_s_n, __pyx_n_s_bc_a_ww, __pyx_n_s_bc_a_nn, __pyx_n_s_bc_grad_phi_w, __pyx_n_s_bc_grad_phi_n, __pyx_n_s_bc_psi_w, __pyx_n_s_bc_psi_c, __pyx_n_s_bc_psi_n, __pyx_n_s_a_ww, __pyx_n_s_a_nn, __pyx_n_s_grad_phi_w, __pyx_n_s_grad_phi_n, __pyx_n_s_psi_w, __pyx_n_s_psi_c, __pyx_n_s_psi_n, __pyx_n_s_penalty_w, __pyx_n_s_penalty_n, __pyx_n_s_diffusiveFlux_ww, __pyx_n_s_diffusiveFlux_nn); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(0, 3748, __pyx_L1_error)
38821  __Pyx_GOTREF(__pyx_tuple__81);
38822  __Pyx_GIVEREF(__pyx_tuple__81);
38823  __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(30, 0, 30, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_10, 3748, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(0, 3748, __pyx_L1_error)
38824 
38825  /* "cnumericalFlux.pyx":3811
38826  * <double*> diffusiveFlux_ww.data,
38827  * <double*> diffusiveFlux_nn.data)
38828  * def calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
38829  * np.ndarray exteriorElementBoundaries,
38830  * np.ndarray elementBoundaryElements,
38831  */
38832  __pyx_tuple__83 = PyTuple_Pack(34, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_uw, __pyx_n_s_isDOFBoundary_un, __pyx_n_s_fluxBoundaryFlag_uw, __pyx_n_s_fluxBoundaryFlag_un, __pyx_n_s_n, __pyx_n_s_a_ww, __pyx_n_s_da_ww_dw, __pyx_n_s_da_ww_dn, __pyx_n_s_a_nn, __pyx_n_s_da_nn_dw, __pyx_n_s_da_nn_dn, __pyx_n_s_grad_phi_w, __pyx_n_s_grad_phi_n, __pyx_n_s_dphi_w_w, __pyx_n_s_dphi_w_n, __pyx_n_s_dphi_n_w, __pyx_n_s_dphi_n_n, __pyx_n_s_psi_w, __pyx_n_s_psi_c, __pyx_n_s_psi_n, __pyx_n_s_dpsi_n_dpsiw, __pyx_n_s_dpsi_n_dpsic, __pyx_n_s_v, __pyx_n_s_grad_v, __pyx_n_s_penalty_w, __pyx_n_s_penalty_n, __pyx_n_s_fluxJacobian_ww, __pyx_n_s_fluxJacobian_wn, __pyx_n_s_fluxJacobian_nw, __pyx_n_s_fluxJacobian_nn); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(0, 3811, __pyx_L1_error)
38833  __Pyx_GOTREF(__pyx_tuple__83);
38834  __Pyx_GIVEREF(__pyx_tuple__83);
38835  __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(34, 0, 34, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_11, 3811, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(0, 3811, __pyx_L1_error)
38836 
38837  /* "cnumericalFlux.pyx":3883
38838  * <double*> fluxJacobian_nw.data,
38839  * <double*> fluxJacobian_nn.data)
38840  * def calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
38841  * np.ndarray colind_ww,
38842  * np.ndarray rowptr_nn,
38843  */
38844  __pyx_tuple__85 = PyTuple_Pack(38, __pyx_n_s_rowptr_ww, __pyx_n_s_colind_ww, __pyx_n_s_rowptr_nn, __pyx_n_s_colind_nn, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_uw, __pyx_n_s_isDOFBoundary_un, __pyx_n_s_fluxBoundaryFlag_uw, __pyx_n_s_fluxBoundaryFlag_un, __pyx_n_s_n, __pyx_n_s_a_ww, __pyx_n_s_da_ww_dw, __pyx_n_s_da_ww_dn, __pyx_n_s_a_nn, __pyx_n_s_da_nn_dw, __pyx_n_s_da_nn_dn, __pyx_n_s_grad_phi_w, __pyx_n_s_grad_phi_n, __pyx_n_s_dphi_w_w, __pyx_n_s_dphi_w_n, __pyx_n_s_dphi_n_w, __pyx_n_s_dphi_n_n, __pyx_n_s_psi_w, __pyx_n_s_psi_c, __pyx_n_s_psi_n, __pyx_n_s_dpsi_n_dpsiw, __pyx_n_s_dpsi_n_dpsic, __pyx_n_s_v, __pyx_n_s_grad_v, __pyx_n_s_penalty_w, __pyx_n_s_penalty_n, __pyx_n_s_fluxJacobian_ww, __pyx_n_s_fluxJacobian_wn, __pyx_n_s_fluxJacobian_nw, __pyx_n_s_fluxJacobian_nn); if (unlikely(!__pyx_tuple__85)) __PYX_ERR(0, 3883, __pyx_L1_error)
38845  __Pyx_GOTREF(__pyx_tuple__85);
38846  __Pyx_GIVEREF(__pyx_tuple__85);
38847  __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(38, 0, 38, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__85, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_12, 3883, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(0, 3883, __pyx_L1_error)
38848 
38849  /* "cnumericalFlux.pyx":3964
38850  * <double*> fluxJacobian_nn.data)
38851  *
38852  * def calculateInteriorNumericalFluxShallowWater_1D(double h_eps, # <<<<<<<<<<<<<<
38853  * double tol_u,
38854  * double g,
38855  */
38856  __pyx_tuple__87 = PyTuple_Pack(11, __pyx_n_s_h_eps, __pyx_n_s_tol_u, __pyx_n_s_g, __pyx_n_s_interiorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_n, __pyx_n_s_h, __pyx_n_s_hu, __pyx_n_s_flux_h, __pyx_n_s_flux_hu); if (unlikely(!__pyx_tuple__87)) __PYX_ERR(0, 3964, __pyx_L1_error)
38857  __Pyx_GOTREF(__pyx_tuple__87);
38858  __Pyx_GIVEREF(__pyx_tuple__87);
38859  __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(11, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__87, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateInteriorNumericalFluxSh, 3964, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(0, 3964, __pyx_L1_error)
38860 
38861  /* "cnumericalFlux.pyx":3989
38862  * <double*> flux_h.data,
38863  * <double*> flux_hu.data)
38864  * def calculateExteriorNumericalFluxShallowWater_1D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
38865  * double h_eps,
38866  * double tol_u,
38867  */
38868  __pyx_tuple__89 = PyTuple_Pack(11, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_h_eps, __pyx_n_s_tol_u, __pyx_n_s_g, __pyx_n_s_n, __pyx_n_s_h_lv, __pyx_n_s_hu_lv, __pyx_n_s_h_rv, __pyx_n_s_hu_rv, __pyx_n_s_flux_h, __pyx_n_s_flux_hu); if (unlikely(!__pyx_tuple__89)) __PYX_ERR(0, 3989, __pyx_L1_error)
38869  __Pyx_GOTREF(__pyx_tuple__89);
38870  __Pyx_GIVEREF(__pyx_tuple__89);
38871  __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(11, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__89, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalFluxSh, 3989, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(0, 3989, __pyx_L1_error)
38872 
38873  /* "cnumericalFlux.pyx":4012
38874  * <double*> flux_h.data,
38875  * <double*> flux_hu.data)
38876  * def calculateInteriorNumericalFluxShallowWater_2D(double h_eps, # <<<<<<<<<<<<<<
38877  * double tol_u,
38878  * double g,
38879  */
38880  __pyx_tuple__91 = PyTuple_Pack(13, __pyx_n_s_h_eps, __pyx_n_s_tol_u, __pyx_n_s_g, __pyx_n_s_interiorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_n, __pyx_n_s_h, __pyx_n_s_hu, __pyx_n_s_hv, __pyx_n_s_flux_h, __pyx_n_s_flux_hu, __pyx_n_s_flux_hv); if (unlikely(!__pyx_tuple__91)) __PYX_ERR(0, 4012, __pyx_L1_error)
38881  __Pyx_GOTREF(__pyx_tuple__91);
38882  __Pyx_GIVEREF(__pyx_tuple__91);
38883  __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(13, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__91, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateInteriorNumericalFluxSh_2, 4012, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(0, 4012, __pyx_L1_error)
38884 
38885  /* "cnumericalFlux.pyx":4041
38886  * <double*> flux_hu.data,
38887  * <double*> flux_hv.data)
38888  * def calculateExteriorNumericalFluxShallowWater_2D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
38889  * double h_eps,
38890  * double tol_u,
38891  */
38892  __pyx_tuple__93 = PyTuple_Pack(14, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_h_eps, __pyx_n_s_tol_u, __pyx_n_s_g, __pyx_n_s_n, __pyx_n_s_h_lq, __pyx_n_s_hu_lq, __pyx_n_s_hv_lq, __pyx_n_s_h_rq, __pyx_n_s_hu_rq, __pyx_n_s_hv_rq, __pyx_n_s_flux_h, __pyx_n_s_flux_hu, __pyx_n_s_flux_hv); if (unlikely(!__pyx_tuple__93)) __PYX_ERR(0, 4041, __pyx_L1_error)
38893  __Pyx_GOTREF(__pyx_tuple__93);
38894  __Pyx_GIVEREF(__pyx_tuple__93);
38895  __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(14, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalFluxSh_2, 4041, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(0, 4041, __pyx_L1_error)
38896 
38897  /* "cnumericalFlux.pyx":4070
38898  * <double*> flux_hu.data,
38899  * <double*> flux_hv.data)
38900  * def calculateInteriorNumericalFluxShallowWaterHLL_1D(double h_eps, # <<<<<<<<<<<<<<
38901  * double tol_u,
38902  * double g,
38903  */
38904  __pyx_tuple__95 = PyTuple_Pack(11, __pyx_n_s_h_eps, __pyx_n_s_tol_u, __pyx_n_s_g, __pyx_n_s_interiorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_n, __pyx_n_s_h, __pyx_n_s_hu, __pyx_n_s_flux_h, __pyx_n_s_flux_hu); if (unlikely(!__pyx_tuple__95)) __PYX_ERR(0, 4070, __pyx_L1_error)
38905  __Pyx_GOTREF(__pyx_tuple__95);
38906  __Pyx_GIVEREF(__pyx_tuple__95);
38907  __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(11, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateInteriorNumericalFluxSh_3, 4070, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(0, 4070, __pyx_L1_error)
38908 
38909  /* "cnumericalFlux.pyx":4095
38910  * <double*> flux_h.data,
38911  * <double*> flux_hu.data)
38912  * def calculateExteriorNumericalFluxShallowWaterHLL_1D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
38913  * double h_eps,
38914  * double tol_u,
38915  */
38916  __pyx_tuple__97 = PyTuple_Pack(11, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_h_eps, __pyx_n_s_tol_u, __pyx_n_s_g, __pyx_n_s_n, __pyx_n_s_h_lv, __pyx_n_s_hu_lv, __pyx_n_s_h_rv, __pyx_n_s_hu_rv, __pyx_n_s_flux_h, __pyx_n_s_flux_hu); if (unlikely(!__pyx_tuple__97)) __PYX_ERR(0, 4095, __pyx_L1_error)
38917  __Pyx_GOTREF(__pyx_tuple__97);
38918  __Pyx_GIVEREF(__pyx_tuple__97);
38919  __pyx_codeobj__98 = (PyObject*)__Pyx_PyCode_New(11, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__97, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalFluxSh_3, 4095, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__98)) __PYX_ERR(0, 4095, __pyx_L1_error)
38920 
38921  /* "cnumericalFlux.pyx":4118
38922  * <double*> flux_h.data,
38923  * <double*> flux_hu.data)
38924  * def calculateGlobalExteriorNumericalStressFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
38925  * np.ndarray elementBoundaryElements,
38926  * np.ndarray elementBoundaryLocalElementBoundaries,
38927  */
38928  __pyx_tuple__99 = PyTuple_Pack(18, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_isDOFBoundary_v, __pyx_n_s_isDOFBoundary_w, __pyx_n_s_n, __pyx_n_s_bc_u, __pyx_n_s_bc_v, __pyx_n_s_bc_w, __pyx_n_s_sigma, __pyx_n_s_u, __pyx_n_s_v, __pyx_n_s_w, __pyx_n_s_penalty, __pyx_n_s_stressFlux_u, __pyx_n_s_stressFlux_v, __pyx_n_s_stressFlux_w); if (unlikely(!__pyx_tuple__99)) __PYX_ERR(0, 4118, __pyx_L1_error)
38929  __Pyx_GOTREF(__pyx_tuple__99);
38930  __Pyx_GIVEREF(__pyx_tuple__99);
38931  __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(18, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__99, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_13, 4118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(0, 4118, __pyx_L1_error)
38932 
38933  /* "cnumericalFlux.pyx":4158
38934  * <double*> stressFlux_w.data)
38935  * #######333333
38936  * def calculateExteriorNumericalAdvectiveFluxStokes3D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
38937  * int nQuadraturePoints_elementBoundary,
38938  * int nSpace,
38939  */
38940  __pyx_tuple__101 = PyTuple_Pack(29, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_p, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_isDOFBoundary_v, __pyx_n_s_isDOFBoundary_w, __pyx_n_s_n, __pyx_n_s_bc_p, __pyx_n_s_bc_f_mass, __pyx_n_s_p, __pyx_n_s_f_mass, __pyx_n_s_df_mass_du, __pyx_n_s_df_mass_dv, __pyx_n_s_df_mass_dw, __pyx_n_s_flux_mass, __pyx_n_s_flux_umom, __pyx_n_s_flux_vmom, __pyx_n_s_flux_wmom, __pyx_n_s_dflux_mass_du, __pyx_n_s_dflux_mass_dv, __pyx_n_s_dflux_mass_dw, __pyx_n_s_dflux_umom_dp, __pyx_n_s_dflux_vmom_dp, __pyx_n_s_dflux_wmom_dp, __pyx_n_s_velocity); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(0, 4158, __pyx_L1_error)
38941  __Pyx_GOTREF(__pyx_tuple__101);
38942  __Pyx_GIVEREF(__pyx_tuple__101);
38943  __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(29, 0, 29, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__101, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalAdvect_4, 4158, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(0, 4158, __pyx_L1_error)
38944 
38945  /* "cnumericalFlux.pyx":4216
38946  * <double*> dflux_wmom_dp.data,
38947  * <double*> velocity.data)
38948  * def calculateExteriorNumericalAdvectiveFluxNavierStokes3D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
38949  * np.ndarray elementBoundaryElements,
38950  * np.ndarray elementBoundaryLocalElementBoundaries,
38951  */
38952  __pyx_tuple__103 = PyTuple_Pack(53, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_p, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_isDOFBoundary_v, __pyx_n_s_isDOFBoundary_w, __pyx_n_s_n, __pyx_n_s_bc_p, __pyx_n_s_bc_f_mass, __pyx_n_s_bc_f_umom, __pyx_n_s_bc_f_vmom, __pyx_n_s_bc_f_wmom, __pyx_n_s_p, __pyx_n_s_f_mass, __pyx_n_s_f_umom, __pyx_n_s_f_vmom, __pyx_n_s_f_wmom, __pyx_n_s_df_mass_du, __pyx_n_s_df_mass_dv, __pyx_n_s_df_mass_dw, __pyx_n_s_df_umom_dp, __pyx_n_s_df_umom_du, __pyx_n_s_df_umom_dv, __pyx_n_s_df_umom_dw, __pyx_n_s_df_vmom_dp, __pyx_n_s_df_vmom_du, __pyx_n_s_df_vmom_dv, __pyx_n_s_df_vmom_dw, __pyx_n_s_df_wmom_dp, __pyx_n_s_df_wmom_du, __pyx_n_s_df_wmom_dv, __pyx_n_s_df_wmom_dw, __pyx_n_s_flux_mass, __pyx_n_s_flux_umom, __pyx_n_s_flux_vmom, __pyx_n_s_flux_wmom, __pyx_n_s_dflux_mass_du, __pyx_n_s_dflux_mass_dv, __pyx_n_s_dflux_mass_dw, __pyx_n_s_dflux_umom_dp, __pyx_n_s_dflux_umom_du, __pyx_n_s_dflux_umom_dv, __pyx_n_s_dflux_umom_dw, __pyx_n_s_dflux_vmom_dp, __pyx_n_s_dflux_vmom_du, __pyx_n_s_dflux_vmom_dv, __pyx_n_s_dflux_vmom_dw, __pyx_n_s_dflux_wmom_dp, __pyx_n_s_dflux_wmom_du, __pyx_n_s_dflux_wmom_dv, __pyx_n_s_dflux_wmom_dw, __pyx_n_s_velocity); if (unlikely(!__pyx_tuple__103)) __PYX_ERR(0, 4216, __pyx_L1_error)
38953  __Pyx_GOTREF(__pyx_tuple__103);
38954  __Pyx_GIVEREF(__pyx_tuple__103);
38955  __pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(53, 0, 53, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__103, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalAdvect_5, 4216, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(0, 4216, __pyx_L1_error)
38956 
38957  /* "cnumericalFlux.pyx":4328
38958  * <double*> dflux_wmom_dw.data,
38959  * <double*> velocity.data)
38960  * def calculateExteriorNumericalAdvectiveFluxRusanov(double safetyFactor, # <<<<<<<<<<<<<<
38961  * np.ndarray exteriorElementBoundaries,
38962  * np.ndarray elementBoundaryElements,
38963  */
38964  __pyx_tuple__105 = PyTuple_Pack(16, __pyx_n_s_safetyFactor, __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_df_element, __pyx_n_s_flux, __pyx_n_s_dflux); if (unlikely(!__pyx_tuple__105)) __PYX_ERR(0, 4328, __pyx_L1_error)
38965  __Pyx_GOTREF(__pyx_tuple__105);
38966  __Pyx_GIVEREF(__pyx_tuple__105);
38967  __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(16, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__105, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalAdvect_6, 4328, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(0, 4328, __pyx_L1_error)
38968 
38969  /* "cnumericalFlux.pyx":4387
38970  * <double*> flux.data,
38971  * <double*> dflux.data)
38972  * def calculateGlobalExteriorNumericalAdvectiveFluxRusanov(double safetyFactor, # <<<<<<<<<<<<<<
38973  * int nExteriorElementBoundaries_global,
38974  * int nQuadraturePoints_elementBoundary,
38975  */
38976  __pyx_tuple__107 = PyTuple_Pack(20, __pyx_n_s_safetyFactor, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nQuadraturePoints_element, __pyx_n_s_nSpace, __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_df_element, __pyx_n_s_flux, __pyx_n_s_dflux); if (unlikely(!__pyx_tuple__107)) __PYX_ERR(0, 4387, __pyx_L1_error)
38977  __Pyx_GOTREF(__pyx_tuple__107);
38978  __Pyx_GIVEREF(__pyx_tuple__107);
38979  __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(20, 0, 20, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__107, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_14, 4387, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(0, 4387, __pyx_L1_error)
38980 
38981  /* "cnumericalFlux.pyx":4427
38982  * <double*> flux.data,
38983  * <double*> dflux.data)
38984  * def calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, # <<<<<<<<<<<<<<
38985  * int nExteriorElementBoundaries_global,
38986  * int nQuadraturePoints_elementBoundary,
38987  */
38988  __pyx_tuple__109 = PyTuple_Pack(17, __pyx_n_s_safetyFactor, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nQuadraturePoints_element, __pyx_n_s_nSpace, __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_u, __pyx_n_s_f, __pyx_n_s_lambda_bar, __pyx_n_s_flux); if (unlikely(!__pyx_tuple__109)) __PYX_ERR(0, 4427, __pyx_L1_error)
38989  __Pyx_GOTREF(__pyx_tuple__109);
38990  __Pyx_GIVEREF(__pyx_tuple__109);
38991  __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(17, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__109, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_15, 4427, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(0, 4427, __pyx_L1_error)
38992 
38993  /* "cnumericalFlux.pyx":4461
38994  * <double*> lambda_bar.data,
38995  * <double*> flux.data)
38996  * def calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, # <<<<<<<<<<<<<<
38997  * np.ndarray exteriorElementBoundaries,
38998  * np.ndarray elementBoundaryElements,
38999  */
39000  __pyx_tuple__111 = PyTuple_Pack(13, __pyx_n_s_safetyFactor, __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_u, __pyx_n_s_f, __pyx_n_s_lambda_bar_element, __pyx_n_s_flux); if (unlikely(!__pyx_tuple__111)) __PYX_ERR(0, 4461, __pyx_L1_error)
39001  __Pyx_GOTREF(__pyx_tuple__111);
39002  __Pyx_GIVEREF(__pyx_tuple__111);
39003  __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(13, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__111, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalAdvect_7, 4461, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(0, 4461, __pyx_L1_error)
39004 
39005  /* "cnumericalFlux.pyx":4511
39006  * <double*> lambda_bar_element.data,
39007  * <double*> flux.data)
39008  * def calculateExteriorNumericalDiffusiveFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39009  * np.ndarray elementBoundaryElements,
39010  * np.ndarray elementBoundaryLocalElementBoundaries,
39011  */
39012  __pyx_tuple__113 = PyTuple_Pack(15, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __pyx_n_s_n, __pyx_n_s_bc_a, __pyx_n_s_bc_grad_phi, __pyx_n_s_bc_u, __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); if (unlikely(!__pyx_tuple__113)) __PYX_ERR(0, 4511, __pyx_L1_error)
39013  __Pyx_GOTREF(__pyx_tuple__113);
39014  __Pyx_GIVEREF(__pyx_tuple__113);
39015  __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(15, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__113, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalDiffus, 4511, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(0, 4511, __pyx_L1_error)
39016 
39017  /* "cnumericalFlux.pyx":4567
39018  * else:
39019  * exit(1)
39020  * def calculateExteriorNumericalDiffusiveFlux_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
39021  * np.ndarray colind,
39022  * np.ndarray exteriorElementBoundaries,
39023  */
39024  __pyx_tuple__115 = PyTuple_Pack(17, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __pyx_n_s_n, __pyx_n_s_bc_a, __pyx_n_s_bc_grad_phi, __pyx_n_s_bc_u, __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); if (unlikely(!__pyx_tuple__115)) __PYX_ERR(0, 4567, __pyx_L1_error)
39025  __Pyx_GOTREF(__pyx_tuple__115);
39026  __Pyx_GIVEREF(__pyx_tuple__115);
39027  __pyx_codeobj__116 = (PyObject*)__Pyx_PyCode_New(17, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__115, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalDiffus_2, 4567, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) __PYX_ERR(0, 4567, __pyx_L1_error)
39028 
39029  /* "cnumericalFlux.pyx":4627
39030  * <double*> penalty.data,
39031  * <double*> flux.data)
39032  * def calculateGlobalExteriorNumericalDiffusiveFlux(int scale_penalty, # <<<<<<<<<<<<<<
39033  * double penalty_floor,
39034  * int nExteriorElementBoundaries_global,
39035  */
39036  __pyx_tuple__117 = PyTuple_Pack(18, __pyx_n_s_scale_penalty, __pyx_n_s_penalty_floor, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __pyx_n_s_n, __pyx_n_s_bc_a, __pyx_n_s_bc_grad_phi, __pyx_n_s_bc_u, __pyx_n_s_a, __pyx_n_s_grad_phi, __pyx_n_s_u, __pyx_n_s_penalty, __pyx_n_s_flux); if (unlikely(!__pyx_tuple__117)) __PYX_ERR(0, 4627, __pyx_L1_error)
39037  __Pyx_GOTREF(__pyx_tuple__117);
39038  __Pyx_GIVEREF(__pyx_tuple__117);
39039  __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(18, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__117, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_16, 4627, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(0, 4627, __pyx_L1_error)
39040 
39041  /* "cnumericalFlux.pyx":4664
39042  * <double*> flux.data)
39043  *
39044  * def calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
39045  * np.ndarray colind,
39046  * np.ndarray exteriorElementBoundaries,
39047  */
39048  __pyx_tuple__119 = PyTuple_Pack(17, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __pyx_n_s_n, __pyx_n_s_bc_a, __pyx_n_s_bc_grad_phi, __pyx_n_s_bc_u, __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); if (unlikely(!__pyx_tuple__119)) __PYX_ERR(0, 4664, __pyx_L1_error)
39049  __Pyx_GOTREF(__pyx_tuple__119);
39050  __Pyx_GIVEREF(__pyx_tuple__119);
39051  __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(17, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__119, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalDiffus_3, 4664, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(0, 4664, __pyx_L1_error)
39052 
39053  /* "cnumericalFlux.pyx":4705
39054  * exit(1)
39055  *
39056  * def calculateGlobalExteriorNumericalDiffusiveFlux_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
39057  * np.ndarray colind,
39058  * np.ndarray exteriorElementBoundaries,
39059  */
39060  __pyx_tuple__121 = PyTuple_Pack(17, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __pyx_n_s_n, __pyx_n_s_bc_a, __pyx_n_s_bc_grad_phi, __pyx_n_s_bc_u, __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); if (unlikely(!__pyx_tuple__121)) __PYX_ERR(0, 4705, __pyx_L1_error)
39061  __Pyx_GOTREF(__pyx_tuple__121);
39062  __Pyx_GIVEREF(__pyx_tuple__121);
39063  __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(17, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__121, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_17, 4705, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(0, 4705, __pyx_L1_error)
39064 
39065  /* "cnumericalFlux.pyx":4743
39066  * <double*> penalty.data,
39067  * <double*> flux.data)
39068  * def calculateExteriorNumericalDiffusiveFlux_free(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39069  * np.ndarray elementBoundaryElements,
39070  * np.ndarray elementBoundaryLocalElementBoundaries,
39071  */
39072  __pyx_tuple__123 = PyTuple_Pack(13, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __pyx_n_s_n, __pyx_n_s_bc_a, __pyx_n_s_bc_grad_phi, __pyx_n_s_bc_u, __pyx_n_s_a, __pyx_n_s_grad_phi, __pyx_n_s_u, __pyx_n_s_penalty, __pyx_n_s_flux); if (unlikely(!__pyx_tuple__123)) __PYX_ERR(0, 4743, __pyx_L1_error)
39073  __Pyx_GOTREF(__pyx_tuple__123);
39074  __Pyx_GIVEREF(__pyx_tuple__123);
39075  __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(13, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__123, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalDiffus_4, 4743, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(0, 4743, __pyx_L1_error)
39076 
39077  /* "cnumericalFlux.pyx":4793
39078  * else:
39079  * exit(1)
39080  * def calculateExteriorNumericalDiffusiveFlux_free_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
39081  * np.ndarray colind,
39082  * np.ndarray exteriorElementBoundaries,
39083  */
39084  __pyx_tuple__125 = PyTuple_Pack(15, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __pyx_n_s_n, __pyx_n_s_bc_a, __pyx_n_s_bc_grad_phi, __pyx_n_s_bc_u, __pyx_n_s_a, __pyx_n_s_grad_phi, __pyx_n_s_u, __pyx_n_s_penalty, __pyx_n_s_flux); if (unlikely(!__pyx_tuple__125)) __PYX_ERR(0, 4793, __pyx_L1_error)
39085  __Pyx_GOTREF(__pyx_tuple__125);
39086  __Pyx_GIVEREF(__pyx_tuple__125);
39087  __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(15, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__125, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalDiffus_5, 4793, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(0, 4793, __pyx_L1_error)
39088 
39089  /* "cnumericalFlux.pyx":4849
39090  * else:
39091  * exit(0)
39092  * def calculateGlobalExteriorNumericalDiffusiveFlux_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39093  * int nQuadraturePoints_elementBoundary,
39094  * int nSpace,
39095  */
39096  __pyx_tuple__127 = PyTuple_Pack(16, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __pyx_n_s_n, __pyx_n_s_bc_a, __pyx_n_s_bc_grad_phi, __pyx_n_s_bc_u, __pyx_n_s_a, __pyx_n_s_grad_phi, __pyx_n_s_u, __pyx_n_s_penalty, __pyx_n_s_flux); if (unlikely(!__pyx_tuple__127)) __PYX_ERR(0, 4849, __pyx_L1_error)
39097  __Pyx_GOTREF(__pyx_tuple__127);
39098  __Pyx_GIVEREF(__pyx_tuple__127);
39099  __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(16, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__127, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_18, 4849, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(0, 4849, __pyx_L1_error)
39100 
39101  /* "cnumericalFlux.pyx":4881
39102  * <double*> penalty.data,
39103  * <double*> flux.data)
39104  * def calculateGlobalExteriorNumericalDiffusiveFlux_free_sd(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39105  * int nQuadraturePoints_elementBoundary,
39106  * int nSpace,
39107  */
39108  __pyx_tuple__129 = PyTuple_Pack(18, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __pyx_n_s_n, __pyx_n_s_bc_a, __pyx_n_s_bc_grad_phi, __pyx_n_s_bc_u, __pyx_n_s_a, __pyx_n_s_grad_phi, __pyx_n_s_u, __pyx_n_s_penalty, __pyx_n_s_flux); if (unlikely(!__pyx_tuple__129)) __PYX_ERR(0, 4881, __pyx_L1_error)
39109  __Pyx_GOTREF(__pyx_tuple__129);
39110  __Pyx_GIVEREF(__pyx_tuple__129);
39111  __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(18, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__129, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_19, 4881, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(0, 4881, __pyx_L1_error)
39112 
39113  /* "cnumericalFlux.pyx":4917
39114  * <double*> penalty.data,
39115  * <double*> flux.data)
39116  * def updateExteriorNumericalDiffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
39117  * np.ndarray exteriorElementBoundaries,
39118  * np.ndarray elementBoundaryElements,
39119  */
39120  __pyx_tuple__131 = PyTuple_Pack(16, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __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); if (unlikely(!__pyx_tuple__131)) __PYX_ERR(0, 4917, __pyx_L1_error)
39121  __Pyx_GOTREF(__pyx_tuple__131);
39122  __Pyx_GIVEREF(__pyx_tuple__131);
39123  __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(16, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__131, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateExteriorNumericalDiffusive_3, 4917, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(0, 4917, __pyx_L1_error)
39124 
39125  /* "cnumericalFlux.pyx":4978
39126  * else:
39127  * exit(1)
39128  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian(int scale_penalty, # <<<<<<<<<<<<<<
39129  * double penalty_floor,
39130  * int nExteriorElementBoundaries_global,
39131  */
39132  __pyx_tuple__133 = PyTuple_Pack(20, __pyx_n_s_scale_penalty, __pyx_n_s_penalty_floor, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nDOF_trial_element, __pyx_n_s_nSpace, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __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); if (unlikely(!__pyx_tuple__133)) __PYX_ERR(0, 4978, __pyx_L1_error)
39133  __Pyx_GOTREF(__pyx_tuple__133);
39134  __Pyx_GIVEREF(__pyx_tuple__133);
39135  __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(20, 0, 20, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__133, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateGlobalExteriorNumericalDif, 4978, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(0, 4978, __pyx_L1_error)
39136 
39137  /* "cnumericalFlux.pyx":5018
39138  * <double*> penalty.data,
39139  * <double*> fluxJacobian.data)
39140  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd(int scale_penalty, # <<<<<<<<<<<<<<
39141  * double penalty_floor,
39142  * int nExteriorElementBoundaries_global,
39143  */
39144  __pyx_tuple__135 = PyTuple_Pack(22, __pyx_n_s_scale_penalty, __pyx_n_s_penalty_floor, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nDOF_trial_element, __pyx_n_s_nSpace, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __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); if (unlikely(!__pyx_tuple__135)) __PYX_ERR(0, 5018, __pyx_L1_error)
39145  __Pyx_GOTREF(__pyx_tuple__135);
39146  __Pyx_GIVEREF(__pyx_tuple__135);
39147  __pyx_codeobj__136 = (PyObject*)__Pyx_PyCode_New(22, 0, 22, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__135, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateGlobalExteriorNumericalDif_2, 5018, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__136)) __PYX_ERR(0, 5018, __pyx_L1_error)
39148 
39149  /* "cnumericalFlux.pyx":5062
39150  * <double*> penalty.data,
39151  * <double*> fluxJacobian.data)
39152  * def updateExteriorNumericalDiffusiveFluxJacobian_free(np.ndarray l2g, # <<<<<<<<<<<<<<
39153  * np.ndarray exteriorElementBoundaries,
39154  * np.ndarray elementBoundaryElements,
39155  */
39156  __pyx_tuple__137 = PyTuple_Pack(14, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __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); if (unlikely(!__pyx_tuple__137)) __PYX_ERR(0, 5062, __pyx_L1_error)
39157  __Pyx_GOTREF(__pyx_tuple__137);
39158  __Pyx_GIVEREF(__pyx_tuple__137);
39159  __pyx_codeobj__138 = (PyObject*)__Pyx_PyCode_New(14, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__137, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateExteriorNumericalDiffusive_4, 5062, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__138)) __PYX_ERR(0, 5062, __pyx_L1_error)
39160 
39161  /* "cnumericalFlux.pyx":5117
39162  * else:
39163  * exit(1)
39164  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39165  * int nQuadraturePoints_elementBoundary,
39166  * int nDOF_trial_element,
39167  */
39168  __pyx_tuple__139 = PyTuple_Pack(18, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nDOF_trial_element, __pyx_n_s_nSpace, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __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); if (unlikely(!__pyx_tuple__139)) __PYX_ERR(0, 5117, __pyx_L1_error)
39169  __Pyx_GOTREF(__pyx_tuple__139);
39170  __Pyx_GIVEREF(__pyx_tuple__139);
39171  __pyx_codeobj__140 = (PyObject*)__Pyx_PyCode_New(18, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__139, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateGlobalExteriorNumericalDif_3, 5117, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) __PYX_ERR(0, 5117, __pyx_L1_error)
39172 
39173  /* "cnumericalFlux.pyx":5153
39174  * <double*> penalty.data,
39175  * <double*> fluxJacobian.data)
39176  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39177  * int nQuadraturePoints_elementBoundary,
39178  * int nDOF_trial_element,
39179  */
39180  __pyx_tuple__141 = PyTuple_Pack(20, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nDOF_trial_element, __pyx_n_s_nSpace, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __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); if (unlikely(!__pyx_tuple__141)) __PYX_ERR(0, 5153, __pyx_L1_error)
39181  __Pyx_GOTREF(__pyx_tuple__141);
39182  __Pyx_GIVEREF(__pyx_tuple__141);
39183  __pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(20, 0, 20, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__141, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateGlobalExteriorNumericalDif_4, 5153, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(0, 5153, __pyx_L1_error)
39184 
39185  /* "cnumericalFlux.pyx":5193
39186  * <double*> penalty.data,
39187  * <double*> fluxJacobian.data)
39188  * def calculateGlobalExteriorNumericalAdvectiveFlux_NoBC(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39189  * int nQuadraturePoints_elementBoundary,
39190  * int nSpace,
39191  */
39192  __pyx_tuple__143 = PyTuple_Pack(12, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __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); if (unlikely(!__pyx_tuple__143)) __PYX_ERR(0, 5193, __pyx_L1_error)
39193  __Pyx_GOTREF(__pyx_tuple__143);
39194  __Pyx_GIVEREF(__pyx_tuple__143);
39195  __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(12, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__143, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_20, 5193, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(0, 5193, __pyx_L1_error)
39196 
39197  /* "cnumericalFlux.pyx":5217
39198  * <double*> flux.data,
39199  * <double*> dflux_left.data)
39200  * def calculateGlobalExteriorNumericalAdvectiveFlux(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39201  * int nQuadraturePoints_elementBoundary,
39202  * int nSpace,
39203  */
39204  __pyx_tuple__145 = PyTuple_Pack(17, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __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); if (unlikely(!__pyx_tuple__145)) __PYX_ERR(0, 5217, __pyx_L1_error)
39205  __Pyx_GOTREF(__pyx_tuple__145);
39206  __Pyx_GIVEREF(__pyx_tuple__145);
39207  __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(17, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__145, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_21, 5217, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(0, 5217, __pyx_L1_error)
39208 
39209  /* "cnumericalFlux.pyx":5251
39210  * <double*> flux.data,
39211  * <double*> dflux.data)
39212  * def calculateExteriorNumericalAdvectiveFlux_free(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39213  * np.ndarray elementBoundaryElements,
39214  * np.ndarray elementBoundaryLocalElementBoundaries,
39215  */
39216  __pyx_tuple__147 = PyTuple_Pack(14, __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); if (unlikely(!__pyx_tuple__147)) __PYX_ERR(0, 5251, __pyx_L1_error)
39217  __Pyx_GOTREF(__pyx_tuple__147);
39218  __Pyx_GIVEREF(__pyx_tuple__147);
39219  __pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(14, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__147, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalAdvect_8, 5251, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(0, 5251, __pyx_L1_error)
39220 
39221  /* "cnumericalFlux.pyx":5303
39222  * <double*> dflux.data)
39223  *
39224  * def calculateGlobalExteriorNumericalAdvectiveFlux_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39225  * int nQuadraturePoints_elementBoundary,
39226  * int nSpace,
39227  */
39228  __pyx_tuple__149 = PyTuple_Pack(17, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __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); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(0, 5303, __pyx_L1_error)
39229  __Pyx_GOTREF(__pyx_tuple__149);
39230  __Pyx_GIVEREF(__pyx_tuple__149);
39231  __pyx_codeobj__150 = (PyObject*)__Pyx_PyCode_New(17, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__149, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_22, 5303, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) __PYX_ERR(0, 5303, __pyx_L1_error)
39232 
39233  /* "cnumericalFlux.pyx":5337
39234  * <double*> flux.data,
39235  * <double*> dflux.data)
39236  * def calculateExteriorNumericalAdvectiveFluxStokesP2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39237  * np.ndarray elementBoundaryElements,
39238  * np.ndarray elementBoundaryLocalElementBoundaries,
39239  */
39240  __pyx_tuple__151 = PyTuple_Pack(24, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_p, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_isDOFBoundary_v, __pyx_n_s_n, __pyx_n_s_bc_f, __pyx_n_s_bc_fpu, __pyx_n_s_bc_fpv, __pyx_n_s_f, __pyx_n_s_fpu, __pyx_n_s_fpv, __pyx_n_s_df_du, __pyx_n_s_df_dv, __pyx_n_s_dfpu_dp, __pyx_n_s_dfpv_dp, __pyx_n_s_flux, __pyx_n_s_fluxpu, __pyx_n_s_fluxpv, __pyx_n_s_dflux_du, __pyx_n_s_dflux_dv, __pyx_n_s_dfluxpu_dp, __pyx_n_s_dfluxpv_dp); if (unlikely(!__pyx_tuple__151)) __PYX_ERR(0, 5337, __pyx_L1_error)
39241  __Pyx_GOTREF(__pyx_tuple__151);
39242  __Pyx_GIVEREF(__pyx_tuple__151);
39243  __pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(24, 0, 24, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__151, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalAdvect_9, 5337, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) __PYX_ERR(0, 5337, __pyx_L1_error)
39244 
39245  /* "cnumericalFlux.pyx":5418
39246  * <double*> dfluxpu_dp.data,
39247  * <double*> dfluxpv_dp.data)
39248  * def calculateExteriorNumericalAdvectiveFluxNavierStokes2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39249  * np.ndarray elementBoundaryElements,
39250  * np.ndarray elementBoundaryLocalElementBoundaries,
39251  */
39252  __pyx_tuple__153 = PyTuple_Pack(37, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_p, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_isDOFBoundary_v, __pyx_n_s_n, __pyx_n_s_bc_p, __pyx_n_s_bc_f_mass, __pyx_n_s_bc_f_umom, __pyx_n_s_bc_f_vmom, __pyx_n_s_p, __pyx_n_s_dm_umom, __pyx_n_s_f_mass, __pyx_n_s_f_umom, __pyx_n_s_f_vmom, __pyx_n_s_df_mass_du, __pyx_n_s_df_mass_dv, __pyx_n_s_df_umom_dp, __pyx_n_s_df_umom_du, __pyx_n_s_df_umom_dv, __pyx_n_s_df_vmom_dp, __pyx_n_s_df_vmom_du, __pyx_n_s_df_vmom_dv, __pyx_n_s_flux_mass, __pyx_n_s_flux_umom, __pyx_n_s_flux_vmom, __pyx_n_s_dflux_mass_dp, __pyx_n_s_dflux_mass_du, __pyx_n_s_dflux_mass_dv, __pyx_n_s_dflux_umom_dp, __pyx_n_s_dflux_umom_du, __pyx_n_s_dflux_umom_dv, __pyx_n_s_dflux_vmom_dp, __pyx_n_s_dflux_vmom_du, __pyx_n_s_dflux_vmom_dv, __pyx_n_s_velocity); if (unlikely(!__pyx_tuple__153)) __PYX_ERR(0, 5418, __pyx_L1_error)
39253  __Pyx_GOTREF(__pyx_tuple__153);
39254  __Pyx_GIVEREF(__pyx_tuple__153);
39255  __pyx_codeobj__154 = (PyObject*)__Pyx_PyCode_New(37, 0, 37, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__153, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalAdvect_10, 5418, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__154)) __PYX_ERR(0, 5418, __pyx_L1_error)
39256 
39257  /* "cnumericalFlux.pyx":5533
39258  * <double*> dflux_vmom_dv.data,
39259  * <double*> velocity.data)
39260  * def calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39261  * int nQuadraturePoints_elementBoundary,
39262  * int nSpace,
39263  */
39264  __pyx_tuple__155 = PyTuple_Pack(40, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_p, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_isDOFBoundary_v, __pyx_n_s_n, __pyx_n_s_bc_p, __pyx_n_s_bc_f_mass, __pyx_n_s_bc_f_umom, __pyx_n_s_bc_f_vmom, __pyx_n_s_p, __pyx_n_s_oneByRho, __pyx_n_s_f_mass, __pyx_n_s_f_umom, __pyx_n_s_f_vmom, __pyx_n_s_df_mass_du, __pyx_n_s_df_mass_dv, __pyx_n_s_df_umom_dp, __pyx_n_s_df_umom_du, __pyx_n_s_df_umom_dv, __pyx_n_s_df_vmom_dp, __pyx_n_s_df_vmom_du, __pyx_n_s_df_vmom_dv, __pyx_n_s_flux_mass, __pyx_n_s_flux_umom, __pyx_n_s_flux_vmom, __pyx_n_s_dflux_mass_dp, __pyx_n_s_dflux_mass_du, __pyx_n_s_dflux_mass_dv, __pyx_n_s_dflux_umom_dp, __pyx_n_s_dflux_umom_du, __pyx_n_s_dflux_umom_dv, __pyx_n_s_dflux_vmom_dp, __pyx_n_s_dflux_vmom_du, __pyx_n_s_dflux_vmom_dv, __pyx_n_s_velocity); if (unlikely(!__pyx_tuple__155)) __PYX_ERR(0, 5533, __pyx_L1_error)
39265  __Pyx_GOTREF(__pyx_tuple__155);
39266  __Pyx_GIVEREF(__pyx_tuple__155);
39267  __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(40, 0, 40, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__155, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_23, 5533, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(0, 5533, __pyx_L1_error)
39268 
39269  /* "cnumericalFlux.pyx":5613
39270  * <double*> dflux_vmom_dv.data,
39271  * <double*> velocity.data)
39272  * def calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39273  * int nQuadraturePoints_elementBoundary,
39274  * int nSpace,
39275  */
39276  __pyx_tuple__157 = PyTuple_Pack(56, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_p, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_isDOFBoundary_v, __pyx_n_s_isDOFBoundary_w, __pyx_n_s_n, __pyx_n_s_bc_p, __pyx_n_s_bc_f_mass, __pyx_n_s_bc_f_umom, __pyx_n_s_bc_f_vmom, __pyx_n_s_bc_f_wmom, __pyx_n_s_p, __pyx_n_s_f_mass, __pyx_n_s_f_umom, __pyx_n_s_f_vmom, __pyx_n_s_f_wmom, __pyx_n_s_df_mass_du, __pyx_n_s_df_mass_dv, __pyx_n_s_df_mass_dw, __pyx_n_s_df_umom_dp, __pyx_n_s_df_umom_du, __pyx_n_s_df_umom_dv, __pyx_n_s_df_umom_dw, __pyx_n_s_df_vmom_dp, __pyx_n_s_df_vmom_du, __pyx_n_s_df_vmom_dv, __pyx_n_s_df_vmom_dw, __pyx_n_s_df_wmom_dp, __pyx_n_s_df_wmom_du, __pyx_n_s_df_wmom_dv, __pyx_n_s_df_wmom_dw, __pyx_n_s_flux_mass, __pyx_n_s_flux_umom, __pyx_n_s_flux_vmom, __pyx_n_s_flux_wmom, __pyx_n_s_dflux_mass_du, __pyx_n_s_dflux_mass_dv, __pyx_n_s_dflux_mass_dw, __pyx_n_s_dflux_umom_dp, __pyx_n_s_dflux_umom_du, __pyx_n_s_dflux_umom_dv, __pyx_n_s_dflux_umom_dw, __pyx_n_s_dflux_vmom_dp, __pyx_n_s_dflux_vmom_du, __pyx_n_s_dflux_vmom_dv, __pyx_n_s_dflux_vmom_dw, __pyx_n_s_dflux_wmom_dp, __pyx_n_s_dflux_wmom_du, __pyx_n_s_dflux_wmom_dv, __pyx_n_s_dflux_wmom_dw, __pyx_n_s_velocity); if (unlikely(!__pyx_tuple__157)) __PYX_ERR(0, 5613, __pyx_L1_error)
39277  __Pyx_GOTREF(__pyx_tuple__157);
39278  __Pyx_GIVEREF(__pyx_tuple__157);
39279  __pyx_codeobj__158 = (PyObject*)__Pyx_PyCode_New(56, 0, 56, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__157, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_24, 5613, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__158)) __PYX_ERR(0, 5613, __pyx_L1_error)
39280 
39281  /* "cnumericalFlux.pyx":5725
39282  * <double*> dflux_wmom_dw.data,
39283  * <double*> velocity.data)
39284  * def calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39285  * int nQuadraturePoints_elementBoundary,
39286  * int nSpace,
39287  */
39288  __pyx_tuple__159 = PyTuple_Pack(27, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_p, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_isDOFBoundary_v, __pyx_n_s_n, __pyx_n_s_bc_f, __pyx_n_s_bc_fpu, __pyx_n_s_bc_fpv, __pyx_n_s_f, __pyx_n_s_fpu, __pyx_n_s_fpv, __pyx_n_s_df_du, __pyx_n_s_df_dv, __pyx_n_s_dfpu_dp, __pyx_n_s_dfpv_dp, __pyx_n_s_flux, __pyx_n_s_fluxpu, __pyx_n_s_fluxpv, __pyx_n_s_dflux_du, __pyx_n_s_dflux_dv, __pyx_n_s_dfluxpu_dp, __pyx_n_s_dfluxpv_dp); if (unlikely(!__pyx_tuple__159)) __PYX_ERR(0, 5725, __pyx_L1_error)
39289  __Pyx_GOTREF(__pyx_tuple__159);
39290  __Pyx_GIVEREF(__pyx_tuple__159);
39291  __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(27, 0, 27, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__159, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_25, 5725, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(0, 5725, __pyx_L1_error)
39292 
39293  /* "cnumericalFlux.pyx":5779
39294  * <double*> dfluxpu_dp.data,
39295  * <double*> dfluxpv_dp.data)
39296  * def calculateExteriorNumericalAdvectiveFluxStokesP3D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39297  * np.ndarray elementBoundaryElements,
39298  * np.ndarray elementBoundaryLocalElementBoundaries,
39299  */
39300  __pyx_tuple__161 = PyTuple_Pack(32, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_p, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_isDOFBoundary_v, __pyx_n_s_isDOFBoundary_w, __pyx_n_s_n, __pyx_n_s_bc_f, __pyx_n_s_bc_fpu, __pyx_n_s_bc_fpv, __pyx_n_s_bc_fpw, __pyx_n_s_f, __pyx_n_s_fpu, __pyx_n_s_fpv, __pyx_n_s_fpw, __pyx_n_s_df_du, __pyx_n_s_df_dv, __pyx_n_s_df_dw, __pyx_n_s_dfpu_dp, __pyx_n_s_dfpv_dp, __pyx_n_s_dfpw_dp, __pyx_n_s_flux, __pyx_n_s_fluxpu, __pyx_n_s_fluxpv, __pyx_n_s_fluxpw, __pyx_n_s_dflux_du, __pyx_n_s_dflux_dv, __pyx_n_s_dflux_dw, __pyx_n_s_dfluxpu_dp, __pyx_n_s_dfluxpv_dp, __pyx_n_s_dfluxpw_dp); if (unlikely(!__pyx_tuple__161)) __PYX_ERR(0, 5779, __pyx_L1_error)
39301  __Pyx_GOTREF(__pyx_tuple__161);
39302  __Pyx_GIVEREF(__pyx_tuple__161);
39303  __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(32, 0, 32, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__161, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalAdvect_11, 5779, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(0, 5779, __pyx_L1_error)
39304 
39305  /* "cnumericalFlux.pyx":5884
39306  * <double*> dfluxpv_dp.data,
39307  * <double*> dfluxpw_dp.data)
39308  * def calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39309  * int nQuadraturePoints_elementBoundary,
39310  * int nSpace,
39311  */
39312  __pyx_tuple__163 = PyTuple_Pack(35, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_p, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_isDOFBoundary_v, __pyx_n_s_isDOFBoundary_w, __pyx_n_s_n, __pyx_n_s_bc_f, __pyx_n_s_bc_fpu, __pyx_n_s_bc_fpv, __pyx_n_s_bc_fpw, __pyx_n_s_f, __pyx_n_s_fpu, __pyx_n_s_fpv, __pyx_n_s_fpw, __pyx_n_s_df_du, __pyx_n_s_df_dv, __pyx_n_s_df_dw, __pyx_n_s_dfpu_dp, __pyx_n_s_dfpv_dp, __pyx_n_s_dfpw_dp, __pyx_n_s_flux, __pyx_n_s_fluxpu, __pyx_n_s_fluxpv, __pyx_n_s_fluxpw, __pyx_n_s_dflux_du, __pyx_n_s_dflux_dv, __pyx_n_s_dflux_dw, __pyx_n_s_dfluxpu_dp, __pyx_n_s_dfluxpv_dp, __pyx_n_s_dfluxpw_dp); if (unlikely(!__pyx_tuple__163)) __PYX_ERR(0, 5884, __pyx_L1_error)
39313  __Pyx_GOTREF(__pyx_tuple__163);
39314  __Pyx_GIVEREF(__pyx_tuple__163);
39315  __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(35, 0, 35, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_26, 5884, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(0, 5884, __pyx_L1_error)
39316 
39317  /* "cnumericalFlux.pyx":5954
39318  * <double*> dfluxpv_dp.data,
39319  * <double*> dfluxpw_dp.data)
39320  * def calculateExteriorNumericalAdvectiveFlux_average(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39321  * np.ndarray elementBoundaryElements,
39322  * np.ndarray elementBoundaryLocalElementBoundaries,
39323  */
39324  __pyx_tuple__165 = PyTuple_Pack(14, __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); if (unlikely(!__pyx_tuple__165)) __PYX_ERR(0, 5954, __pyx_L1_error)
39325  __Pyx_GOTREF(__pyx_tuple__165);
39326  __Pyx_GIVEREF(__pyx_tuple__165);
39327  __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(14, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__165, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalAdvect_12, 5954, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(0, 5954, __pyx_L1_error)
39328 
39329  /* "cnumericalFlux.pyx":6005
39330  * <double*> flux.data,
39331  * <double*> dflux.data)
39332  * def calculateGlobalExteriorNumericalAdvectiveFlux_average(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39333  * int nQuadraturePoints_elementBoundary,
39334  * int nSpace,
39335  */
39336  __pyx_tuple__167 = PyTuple_Pack(17, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __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); if (unlikely(!__pyx_tuple__167)) __PYX_ERR(0, 6005, __pyx_L1_error)
39337  __Pyx_GOTREF(__pyx_tuple__167);
39338  __Pyx_GIVEREF(__pyx_tuple__167);
39339  __pyx_codeobj__168 = (PyObject*)__Pyx_PyCode_New(17, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__167, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_27, 6005, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__168)) __PYX_ERR(0, 6005, __pyx_L1_error)
39340 
39341  /* "cnumericalFlux.pyx":6039
39342  * <double*> flux.data,
39343  * <double*> dflux.data)
39344  * def updateExteriorNumericalAdvectiveFluxJacobian_free(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39345  * np.ndarray elementBoundaryElements,
39346  * np.ndarray elementBoundaryLocalElementBoundaries,
39347  */
39348  __pyx_tuple__169 = PyTuple_Pack(7, __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); if (unlikely(!__pyx_tuple__169)) __PYX_ERR(0, 6039, __pyx_L1_error)
39349  __Pyx_GOTREF(__pyx_tuple__169);
39350  __Pyx_GIVEREF(__pyx_tuple__169);
39351  __pyx_codeobj__170 = (PyObject*)__Pyx_PyCode_New(7, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__169, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateExteriorNumericalAdvective_2, 6039, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__170)) __PYX_ERR(0, 6039, __pyx_L1_error)
39352 
39353  /* "cnumericalFlux.pyx":6069
39354  * <double*> v.data,
39355  * <double*> fluxJacobian.data)
39356  * def updateGlobalExteriorNumericalAdvectiveFluxJacobian_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39357  * int nQuadraturePoints_elementBoundary,
39358  * int nDOF_trial_element,
39359  */
39360  __pyx_tuple__171 = PyTuple_Pack(10, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nDOF_trial_element, __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); if (unlikely(!__pyx_tuple__171)) __PYX_ERR(0, 6069, __pyx_L1_error)
39361  __Pyx_GOTREF(__pyx_tuple__171);
39362  __Pyx_GIVEREF(__pyx_tuple__171);
39363  __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(10, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateGlobalExteriorNumericalAdv_2, 6069, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(0, 6069, __pyx_L1_error)
39364 
39365  /* "cnumericalFlux.pyx":6089
39366  * <double*> v.data,
39367  * <double*> fluxJacobian.data)
39368  * def calculateExteriorNumericalDiffusiveFlux_LDG_upwind(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39369  * np.ndarray elementBoundaryElements,
39370  * np.ndarray elementBoundaryLocalElementBoundaries,
39371  */
39372  __pyx_tuple__173 = PyTuple_Pack(11, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_n, __pyx_n_s_u, __pyx_n_s_a, __pyx_n_s_phi_bc, __pyx_n_s_phi, __pyx_n_s_V, __pyx_n_s_penalty, __pyx_n_s_flux); if (unlikely(!__pyx_tuple__173)) __PYX_ERR(0, 6089, __pyx_L1_error)
39373  __Pyx_GOTREF(__pyx_tuple__173);
39374  __Pyx_GIVEREF(__pyx_tuple__173);
39375  __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(11, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__173, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalDiffus_6, 6089, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) __PYX_ERR(0, 6089, __pyx_L1_error)
39376 
39377  /* "cnumericalFlux.pyx":6132
39378  * <double*> penalty.data,
39379  * <double*> flux.data)
39380  * def calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
39381  * np.ndarray colind,
39382  * np.ndarray exteriorElementBoundaries,
39383  */
39384  __pyx_tuple__175 = PyTuple_Pack(13, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_n, __pyx_n_s_u, __pyx_n_s_a, __pyx_n_s_phi_bc, __pyx_n_s_phi, __pyx_n_s_V, __pyx_n_s_penalty, __pyx_n_s_flux); if (unlikely(!__pyx_tuple__175)) __PYX_ERR(0, 6132, __pyx_L1_error)
39385  __Pyx_GOTREF(__pyx_tuple__175);
39386  __Pyx_GIVEREF(__pyx_tuple__175);
39387  __pyx_codeobj__176 = (PyObject*)__Pyx_PyCode_New(13, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__175, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorNumericalDiffus_7, 6132, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__176)) __PYX_ERR(0, 6132, __pyx_L1_error)
39388 
39389  /* "cnumericalFlux.pyx":6181
39390  * <double*> penalty.data,
39391  * <double*> flux.data)
39392  * def calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39393  * int nElementBoundaries_element,
39394  * int nQuadraturePoints_elementBoundary,
39395  */
39396  __pyx_tuple__177 = PyTuple_Pack(15, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nElementBoundaries_element, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_n, __pyx_n_s_u, __pyx_n_s_a, __pyx_n_s_phi_bc, __pyx_n_s_phi, __pyx_n_s_V, __pyx_n_s_penalty, __pyx_n_s_flux); if (unlikely(!__pyx_tuple__177)) __PYX_ERR(0, 6181, __pyx_L1_error)
39397  __Pyx_GOTREF(__pyx_tuple__177);
39398  __Pyx_GIVEREF(__pyx_tuple__177);
39399  __pyx_codeobj__178 = (PyObject*)__Pyx_PyCode_New(15, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__177, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_28, 6181, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__178)) __PYX_ERR(0, 6181, __pyx_L1_error)
39400 
39401  /* "cnumericalFlux.pyx":6211
39402  * <double*> penalty.data,
39403  * <double*> flux.data)
39404  * def calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39405  * int nElementBoundaries_element,
39406  * int nQuadraturePoints_elementBoundary,
39407  */
39408  __pyx_tuple__179 = PyTuple_Pack(17, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nElementBoundaries_element, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_n, __pyx_n_s_u, __pyx_n_s_a, __pyx_n_s_phi_bc, __pyx_n_s_phi, __pyx_n_s_V, __pyx_n_s_penalty, __pyx_n_s_flux); if (unlikely(!__pyx_tuple__179)) __PYX_ERR(0, 6211, __pyx_L1_error)
39409  __Pyx_GOTREF(__pyx_tuple__179);
39410  __Pyx_GIVEREF(__pyx_tuple__179);
39411  __pyx_codeobj__180 = (PyObject*)__Pyx_PyCode_New(17, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__179, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_29, 6211, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__180)) __PYX_ERR(0, 6211, __pyx_L1_error)
39412 
39413  /* "cnumericalFlux.pyx":6245
39414  * <double*> penalty.data,
39415  * <double*> flux.data)
39416  * def updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
39417  * np.ndarray exteriorElementBoundaries,
39418  * np.ndarray elementBoundaryElements,
39419  */
39420  __pyx_tuple__181 = PyTuple_Pack(15, __pyx_n_s_isDiffusiveFluxBoundary, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_n, __pyx_n_s_a, __pyx_n_s_da, __pyx_n_s_dphi, __pyx_n_s_V, __pyx_n_s_DV, __pyx_n_s_DV_eb, __pyx_n_s_v, __pyx_n_s_penalty, __pyx_n_s_fluxJacobian, __pyx_n_s_fluxJacobian_eb); if (unlikely(!__pyx_tuple__181)) __PYX_ERR(0, 6245, __pyx_L1_error)
39421  __Pyx_GOTREF(__pyx_tuple__181);
39422  __Pyx_GIVEREF(__pyx_tuple__181);
39423  __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(15, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__181, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateExteriorNumericalDiffusive_5, 6245, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(0, 6245, __pyx_L1_error)
39424 
39425  /* "cnumericalFlux.pyx":6303
39426  * <double*> fluxJacobian_eb.data)
39427  *
39428  * def updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
39429  * np.ndarray rowptr,
39430  * np.ndarray colind,
39431  */
39432  __pyx_tuple__183 = PyTuple_Pack(17, __pyx_n_s_isDiffusiveFluxBoundary, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_n, __pyx_n_s_a, __pyx_n_s_da, __pyx_n_s_dphi, __pyx_n_s_V, __pyx_n_s_DV, __pyx_n_s_DV_eb, __pyx_n_s_v, __pyx_n_s_penalty, __pyx_n_s_fluxJacobian, __pyx_n_s_fluxJacobian_eb); if (unlikely(!__pyx_tuple__183)) __PYX_ERR(0, 6303, __pyx_L1_error)
39433  __Pyx_GOTREF(__pyx_tuple__183);
39434  __Pyx_GIVEREF(__pyx_tuple__183);
39435  __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(17, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__183, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateExteriorNumericalDiffusive_6, 6303, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(0, 6303, __pyx_L1_error)
39436 
39437  /* "cnumericalFlux.pyx":6366
39438  * <double*> fluxJacobian.data,
39439  * <double*> fluxJacobian_eb.data)
39440  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
39441  * int nExteriorElementBoundaries_global,
39442  * int nElementBoundaries_element,
39443  */
39444  __pyx_tuple__185 = PyTuple_Pack(20, __pyx_n_s_isDiffusiveFluxBoundary, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nElementBoundaries_element, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nDOF_trial_element, __pyx_n_s_nSpace, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_n, __pyx_n_s_a, __pyx_n_s_da, __pyx_n_s_dphi, __pyx_n_s_V, __pyx_n_s_DV, __pyx_n_s_DV_eb, __pyx_n_s_v, __pyx_n_s_penalty, __pyx_n_s_fluxJacobian_exterior, __pyx_n_s_fluxJacobian_eb); if (unlikely(!__pyx_tuple__185)) __PYX_ERR(0, 6366, __pyx_L1_error)
39445  __Pyx_GOTREF(__pyx_tuple__185);
39446  __Pyx_GIVEREF(__pyx_tuple__185);
39447  __pyx_codeobj__186 = (PyObject*)__Pyx_PyCode_New(20, 0, 20, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__185, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateGlobalExteriorNumericalDif_5, 6366, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__186)) __PYX_ERR(0, 6366, __pyx_L1_error)
39448 
39449  /* "cnumericalFlux.pyx":6406
39450  * <double*> fluxJacobian_exterior.data,
39451  * <double*> fluxJacobian_eb.data)
39452  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
39453  * int nExteriorElementBoundaries_global,
39454  * int nElementBoundaries_element,
39455  */
39456  __pyx_tuple__187 = PyTuple_Pack(22, __pyx_n_s_isDiffusiveFluxBoundary, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nElementBoundaries_element, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nDOF_trial_element, __pyx_n_s_nSpace, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_n, __pyx_n_s_a, __pyx_n_s_da, __pyx_n_s_dphi, __pyx_n_s_V, __pyx_n_s_DV, __pyx_n_s_DV_eb, __pyx_n_s_v, __pyx_n_s_penalty, __pyx_n_s_fluxJacobian_exterior, __pyx_n_s_fluxJacobian_eb); if (unlikely(!__pyx_tuple__187)) __PYX_ERR(0, 6406, __pyx_L1_error)
39457  __Pyx_GOTREF(__pyx_tuple__187);
39458  __Pyx_GIVEREF(__pyx_tuple__187);
39459  __pyx_codeobj__188 = (PyObject*)__Pyx_PyCode_New(22, 0, 22, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__187, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateGlobalExteriorNumericalDif_6, 6406, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__188)) __PYX_ERR(0, 6406, __pyx_L1_error)
39460 
39461  /* "cnumericalFlux.pyx":6450
39462  * <double*> fluxJacobian_exterior.data,
39463  * <double*> fluxJacobian_eb.data)
39464  * def calculateExteriorLesaintRaviartNumericalFlux(int speedEvalFlag, # <<<<<<<<<<<<<<
39465  * np.ndarray exteriorElementBoundaries,
39466  * np.ndarray elementBoundaryElements,
39467  */
39468  __pyx_tuple__189 = PyTuple_Pack(15, __pyx_n_s_speedEvalFlag, __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_H, __pyx_n_s_bc_dH, __pyx_n_s_u, __pyx_n_s_H, __pyx_n_s_dH, __pyx_n_s_flux, __pyx_n_s_dflux); if (unlikely(!__pyx_tuple__189)) __PYX_ERR(0, 6450, __pyx_L1_error)
39469  __Pyx_GOTREF(__pyx_tuple__189);
39470  __Pyx_GIVEREF(__pyx_tuple__189);
39471  __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(15, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__189, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateExteriorLesaintRaviartN, 6450, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(0, 6450, __pyx_L1_error)
39472 
39473  /* "cnumericalFlux.pyx":6504
39474  * <double*> flux.data,
39475  * <double*> dflux.data)
39476  * def calculateGlobalExteriorLesaintRaviartNumericalFlux(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
39477  * int nQuadraturePoints_elementBoundary,
39478  * int nSpace,
39479  */
39480  __pyx_tuple__191 = PyTuple_Pack(18, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nSpace, __pyx_n_s_speedEvalFlag, __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_H, __pyx_n_s_bc_dH, __pyx_n_s_u, __pyx_n_s_H, __pyx_n_s_dH, __pyx_n_s_flux, __pyx_n_s_dflux); if (unlikely(!__pyx_tuple__191)) __PYX_ERR(0, 6504, __pyx_L1_error)
39481  __Pyx_GOTREF(__pyx_tuple__191);
39482  __Pyx_GIVEREF(__pyx_tuple__191);
39483  __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(18, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__191, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorLesaintRa, 6504, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(0, 6504, __pyx_L1_error)
39484 
39485  /* "cnumericalFlux.pyx":6540
39486  * <double*> flux.data,
39487  * <double*> dflux.data)
39488  * def calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39489  * np.ndarray elementBoundaryElements,
39490  * np.ndarray elementBoundaryLocalElementBoundaries,
39491  */
39492  __pyx_tuple__193 = PyTuple_Pack(28, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_sw, __pyx_n_s_isDOFBoundary_psiw, __pyx_n_s_n, __pyx_n_s_bc_sw, __pyx_n_s_bc_psiw, __pyx_n_s_bc_fw, __pyx_n_s_bc_dfw_dsw, __pyx_n_s_bc_dfw_dpsiw, __pyx_n_s_bc_fn, __pyx_n_s_bc_dfn_dsw, __pyx_n_s_bc_dfn_dpsiw, __pyx_n_s_sw, __pyx_n_s_psiw, __pyx_n_s_fw, __pyx_n_s_dfw_dsw, __pyx_n_s_dfw_dpsiw, __pyx_n_s_fn, __pyx_n_s_dfn_dsw, __pyx_n_s_dfn_dpsiw, __pyx_n_s_fluxw, __pyx_n_s_dfluxw_dsw, __pyx_n_s_dfluxw_dpsiw, __pyx_n_s_fluxn, __pyx_n_s_dfluxn_dsw, __pyx_n_s_dfluxn_dpsiw); if (unlikely(!__pyx_tuple__193)) __PYX_ERR(0, 6540, __pyx_L1_error)
39493  __Pyx_GOTREF(__pyx_tuple__193);
39494  __Pyx_GIVEREF(__pyx_tuple__193);
39495  __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(28, 0, 28, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__193, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_30, 6540, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(0, 6540, __pyx_L1_error)
39496 
39497  /* "cnumericalFlux.pyx":6602
39498  * else:
39499  * exit(1)
39500  * def calculateGlobalExteriorNumericalFluxDarcySplitPressure(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39501  * np.ndarray elementBoundaryElements,
39502  * np.ndarray elementBoundaryLocalElementBoundaries,
39503  */
39504  __pyx_tuple__195 = PyTuple_Pack(15, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_n, __pyx_n_s_bc_a, __pyx_n_s_bc_grad_phi, __pyx_n_s_bc_psi_w, __pyx_n_s_bc_psi_n, __pyx_n_s_a, __pyx_n_s_grad_phi, __pyx_n_s_psi_w, __pyx_n_s_psi_n, __pyx_n_s_penalty, __pyx_n_s_diffusiveFlux); if (unlikely(!__pyx_tuple__195)) __PYX_ERR(0, 6602, __pyx_L1_error)
39505  __Pyx_GOTREF(__pyx_tuple__195);
39506  __Pyx_GIVEREF(__pyx_tuple__195);
39507  __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(15, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__195, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_31, 6602, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(0, 6602, __pyx_L1_error)
39508 
39509  /* "cnumericalFlux.pyx":6638
39510  * else:
39511  * exit(1)
39512  * def calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
39513  * np.ndarray colind,
39514  * np.ndarray exteriorElementBoundaries,
39515  */
39516  __pyx_tuple__197 = PyTuple_Pack(17, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_n, __pyx_n_s_bc_a, __pyx_n_s_bc_grad_phi, __pyx_n_s_bc_psi_w, __pyx_n_s_bc_psi_n, __pyx_n_s_a, __pyx_n_s_grad_phi, __pyx_n_s_psi_w, __pyx_n_s_psi_n, __pyx_n_s_penalty, __pyx_n_s_diffusiveFlux); if (unlikely(!__pyx_tuple__197)) __PYX_ERR(0, 6638, __pyx_L1_error)
39517  __Pyx_GOTREF(__pyx_tuple__197);
39518  __Pyx_GIVEREF(__pyx_tuple__197);
39519  __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(17, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__197, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_32, 6638, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(0, 6638, __pyx_L1_error)
39520 
39521  /* "cnumericalFlux.pyx":6678
39522  * else:
39523  * exit(1)
39524  * def updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
39525  * np.ndarray colind,
39526  * np.ndarray l2g,
39527  */
39528  __pyx_tuple__199 = PyTuple_Pack(19, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __pyx_n_s_fluxBoundaryFlag, __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); if (unlikely(!__pyx_tuple__199)) __PYX_ERR(0, 6678, __pyx_L1_error)
39529  __Pyx_GOTREF(__pyx_tuple__199);
39530  __Pyx_GIVEREF(__pyx_tuple__199);
39531  __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(19, 0, 19, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__199, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateExteriorNumericalDiffusive_7, 6678, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) __PYX_ERR(0, 6678, __pyx_L1_error)
39532 
39533  /* "cnumericalFlux.pyx":6723
39534  * else:
39535  * exit(1)
39536  * def updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(int scale_penalty, # <<<<<<<<<<<<<<
39537  * double penalty_floor,
39538  * int nExteriorElementBoundaries_global,
39539  */
39540  __pyx_tuple__201 = PyTuple_Pack(23, __pyx_n_s_scale_penalty, __pyx_n_s_penalty_floor, __pyx_n_s_nExteriorElementBoundaries_globa, __pyx_n_s_nQuadraturePoints_elementBoundar, __pyx_n_s_nDOF_trial_element, __pyx_n_s_nSpace, __pyx_n_s_rowptr, __pyx_n_s_colind, __pyx_n_s_l2g, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary, __pyx_n_s_fluxBoundaryFlag, __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); if (unlikely(!__pyx_tuple__201)) __PYX_ERR(0, 6723, __pyx_L1_error)
39541  __Pyx_GOTREF(__pyx_tuple__201);
39542  __Pyx_GIVEREF(__pyx_tuple__201);
39543  __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(23, 0, 23, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__201, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_updateGlobalExteriorNumericalDif_7, 6723, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(0, 6723, __pyx_L1_error)
39544 
39545  /* "cnumericalFlux.pyx":6769
39546  * <double*> penalty.data,
39547  * <double*> fluxJacobian.data)
39548  * def calculateGlobalExteriorNumericalAdvectiveFluxStokes2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39549  * np.ndarray elementBoundaryElements,
39550  * np.ndarray elementBoundaryLocalElementBoundaries,
39551  */
39552  __pyx_tuple__203 = PyTuple_Pack(21, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_p, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_isDOFBoundary_v, __pyx_n_s_n, __pyx_n_s_bc_p, __pyx_n_s_bc_f_mass, __pyx_n_s_p, __pyx_n_s_f_mass, __pyx_n_s_df_mass_du, __pyx_n_s_df_mass_dv, __pyx_n_s_flux_mass, __pyx_n_s_flux_umom, __pyx_n_s_flux_vmom, __pyx_n_s_dflux_mass_du, __pyx_n_s_dflux_mass_dv, __pyx_n_s_dflux_umom_dp, __pyx_n_s_dflux_vmom_dp, __pyx_n_s_velocity); if (unlikely(!__pyx_tuple__203)) __PYX_ERR(0, 6769, __pyx_L1_error)
39553  __Pyx_GOTREF(__pyx_tuple__203);
39554  __Pyx_GIVEREF(__pyx_tuple__203);
39555  __pyx_codeobj__204 = (PyObject*)__Pyx_PyCode_New(21, 0, 21, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__203, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_33, 6769, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__204)) __PYX_ERR(0, 6769, __pyx_L1_error)
39556 
39557  /* "cnumericalFlux.pyx":6814
39558  * <double*> dflux_vmom_dp.data,
39559  * <double*> velocity.data)
39560  * def calculateGlobalExteriorNumericalAdvectiveFluxStokes3D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39561  * np.ndarray elementBoundaryElements,
39562  * np.ndarray elementBoundaryLocalElementBoundaries,
39563  */
39564  __pyx_tuple__205 = PyTuple_Pack(26, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isDOFBoundary_p, __pyx_n_s_isDOFBoundary_u, __pyx_n_s_isDOFBoundary_v, __pyx_n_s_isDOFBoundary_w, __pyx_n_s_n, __pyx_n_s_bc_p, __pyx_n_s_bc_f_mass, __pyx_n_s_p, __pyx_n_s_f_mass, __pyx_n_s_df_mass_du, __pyx_n_s_df_mass_dv, __pyx_n_s_df_mass_dw, __pyx_n_s_flux_mass, __pyx_n_s_flux_umom, __pyx_n_s_flux_vmom, __pyx_n_s_flux_wmom, __pyx_n_s_dflux_mass_du, __pyx_n_s_dflux_mass_dv, __pyx_n_s_dflux_mass_dw, __pyx_n_s_dflux_umom_dp, __pyx_n_s_dflux_vmom_dp, __pyx_n_s_dflux_wmom_dp, __pyx_n_s_velocity); if (unlikely(!__pyx_tuple__205)) __PYX_ERR(0, 6814, __pyx_L1_error)
39565  __Pyx_GOTREF(__pyx_tuple__205);
39566  __Pyx_GIVEREF(__pyx_tuple__205);
39567  __pyx_codeobj__206 = (PyObject*)__Pyx_PyCode_New(26, 0, 26, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__205, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_calculateGlobalExteriorNumerical_34, 6814, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__206)) __PYX_ERR(0, 6814, __pyx_L1_error)
39568 
39569  /* "cnumericalFlux.pyx":6869
39570  * <double*> dflux_wmom_dp.data,
39571  * <double*> velocity.data)
39572  * def applySeepageFace(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39573  * np.ndarray elementBoundaryElements,
39574  * np.ndarray elementBoundaryLocalElementBoundaries,
39575  */
39576  __pyx_tuple__207 = PyTuple_Pack(13, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isSeepageFace, __pyx_n_s_isDOFBoundary, __pyx_n_s_epsFact, __pyx_n_s_elementDiameters, __pyx_n_s_g, __pyx_n_s_n, __pyx_n_s_grad_u, __pyx_n_s_u, __pyx_n_s_advectiveFlux, __pyx_n_s_diffusiveFlux); if (unlikely(!__pyx_tuple__207)) __PYX_ERR(0, 6869, __pyx_L1_error)
39577  __Pyx_GOTREF(__pyx_tuple__207);
39578  __Pyx_GIVEREF(__pyx_tuple__207);
39579  __pyx_codeobj__208 = (PyObject*)__Pyx_PyCode_New(13, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__207, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_applySeepageFace, 6869, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__208)) __PYX_ERR(0, 6869, __pyx_L1_error)
39580 
39581  /* "cnumericalFlux.pyx":6898
39582  * <double*> advectiveFlux.data,
39583  * <double*> diffusiveFlux.data)
39584  * def applySeepageFaceJacobian(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
39585  * np.ndarray elementBoundaryElements,
39586  * np.ndarray elementBoundaryLocalElementBoundaries,
39587  */
39588  __pyx_tuple__209 = PyTuple_Pack(14, __pyx_n_s_exteriorElementBoundaries, __pyx_n_s_elementBoundaryElements, __pyx_n_s_elementBoundaryLocalElementBound, __pyx_n_s_isSeepageFace, __pyx_n_s_epsFact, __pyx_n_s_elementDiameters, __pyx_n_s_g, __pyx_n_s_n, __pyx_n_s_grad_u, __pyx_n_s_u, __pyx_n_s_advectiveFlux, __pyx_n_s_diffusiveFlux, __pyx_n_s_v, __pyx_n_s_fluxJacobian); if (unlikely(!__pyx_tuple__209)) __PYX_ERR(0, 6898, __pyx_L1_error)
39589  __Pyx_GOTREF(__pyx_tuple__209);
39590  __Pyx_GIVEREF(__pyx_tuple__209);
39591  __pyx_codeobj__210 = (PyObject*)__Pyx_PyCode_New(14, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__209, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_cnumericalFlux_pyx, __pyx_n_s_applySeepageFaceJacobian, 6898, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__210)) __PYX_ERR(0, 6898, __pyx_L1_error)
39592  __Pyx_RefNannyFinishContext();
39593  return 0;
39594  __pyx_L1_error:;
39595  __Pyx_RefNannyFinishContext();
39596  return -1;
39597 }
39598 
39599 static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
39600  if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
39601  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
39602  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error)
39603  __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error)
39604  __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(0, 1, __pyx_L1_error)
39605  return 0;
39606  __pyx_L1_error:;
39607  return -1;
39608 }
39609 
39610 static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
39611 static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
39612 static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
39613 static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
39614 static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
39615 static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
39616 static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/
39617 
39618 static int __Pyx_modinit_global_init_code(void) {
39619  __Pyx_RefNannyDeclarations
39620  __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
39621  /*--- Global init code ---*/
39622  __Pyx_RefNannyFinishContext();
39623  return 0;
39624 }
39625 
39626 static int __Pyx_modinit_variable_export_code(void) {
39627  __Pyx_RefNannyDeclarations
39628  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
39629  /*--- Variable export code ---*/
39630  __Pyx_RefNannyFinishContext();
39631  return 0;
39632 }
39633 
39634 static int __Pyx_modinit_function_export_code(void) {
39635  __Pyx_RefNannyDeclarations
39636  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
39637  /*--- Function export code ---*/
39638  __Pyx_RefNannyFinishContext();
39639  return 0;
39640 }
39641 
39642 static int __Pyx_modinit_type_init_code(void) {
39643  __Pyx_RefNannyDeclarations
39644  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
39645  /*--- Type init code ---*/
39646  __Pyx_RefNannyFinishContext();
39647  return 0;
39648 }
39649 
39650 static int __Pyx_modinit_type_import_code(void) {
39651  __Pyx_RefNannyDeclarations
39652  PyObject *__pyx_t_1 = NULL;
39653  int __pyx_lineno = 0;
39654  const char *__pyx_filename = NULL;
39655  int __pyx_clineno = 0;
39656  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
39657  /*--- Type import code ---*/
39658  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 9, __pyx_L1_error)
39659  __Pyx_GOTREF(__pyx_t_1);
39660  __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type",
39661  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
39662  sizeof(PyTypeObject),
39663  #else
39664  sizeof(PyHeapTypeObject),
39665  #endif
39666  __Pyx_ImportType_CheckSize_Warn);
39667  if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(2, 9, __pyx_L1_error)
39668  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39669  __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 200, __pyx_L1_error)
39670  __Pyx_GOTREF(__pyx_t_1);
39671  __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore);
39672  if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(1, 200, __pyx_L1_error)
39673  __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore);
39674  if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(1, 223, __pyx_L1_error)
39675  __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore);
39676  if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(1, 227, __pyx_L1_error)
39677  __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore);
39678  if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(1, 239, __pyx_L1_error)
39679  __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
39680  if (!__pyx_ptype_5numpy_generic) __PYX_ERR(1, 771, __pyx_L1_error)
39681  __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
39682  if (!__pyx_ptype_5numpy_number) __PYX_ERR(1, 773, __pyx_L1_error)
39683  __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
39684  if (!__pyx_ptype_5numpy_integer) __PYX_ERR(1, 775, __pyx_L1_error)
39685  __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
39686  if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(1, 777, __pyx_L1_error)
39687  __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
39688  if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(1, 779, __pyx_L1_error)
39689  __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
39690  if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(1, 781, __pyx_L1_error)
39691  __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
39692  if (!__pyx_ptype_5numpy_floating) __PYX_ERR(1, 783, __pyx_L1_error)
39693  __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
39694  if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(1, 785, __pyx_L1_error)
39695  __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
39696  if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(1, 787, __pyx_L1_error)
39697  __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
39698  if (!__pyx_ptype_5numpy_character) __PYX_ERR(1, 789, __pyx_L1_error)
39699  __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore);
39700  if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(1, 827, __pyx_L1_error)
39701  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39702  __Pyx_RefNannyFinishContext();
39703  return 0;
39704  __pyx_L1_error:;
39705  __Pyx_XDECREF(__pyx_t_1);
39706  __Pyx_RefNannyFinishContext();
39707  return -1;
39708 }
39709 
39710 static int __Pyx_modinit_variable_import_code(void) {
39711  __Pyx_RefNannyDeclarations
39712  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
39713  /*--- Variable import code ---*/
39714  __Pyx_RefNannyFinishContext();
39715  return 0;
39716 }
39717 
39718 static int __Pyx_modinit_function_import_code(void) {
39719  __Pyx_RefNannyDeclarations
39720  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
39721  /*--- Function import code ---*/
39722  __Pyx_RefNannyFinishContext();
39723  return 0;
39724 }
39725 
39726 
39727 #ifndef CYTHON_NO_PYINIT_EXPORT
39728 #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
39729 #elif PY_MAJOR_VERSION < 3
39730 #ifdef __cplusplus
39731 #define __Pyx_PyMODINIT_FUNC extern "C" void
39732 #else
39733 #define __Pyx_PyMODINIT_FUNC void
39734 #endif
39735 #else
39736 #ifdef __cplusplus
39737 #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
39738 #else
39739 #define __Pyx_PyMODINIT_FUNC PyObject *
39740 #endif
39741 #endif
39742 
39743 
39744 #if PY_MAJOR_VERSION < 3
39745 __Pyx_PyMODINIT_FUNC initcnumericalFlux(void) CYTHON_SMALL_CODE; /*proto*/
39746 __Pyx_PyMODINIT_FUNC initcnumericalFlux(void)
39747 #else
39748 __Pyx_PyMODINIT_FUNC PyInit_cnumericalFlux(void) CYTHON_SMALL_CODE; /*proto*/
39749 __Pyx_PyMODINIT_FUNC PyInit_cnumericalFlux(void)
39750 #if CYTHON_PEP489_MULTI_PHASE_INIT
39751 {
39752  return PyModuleDef_Init(&__pyx_moduledef);
39753 }
39754 static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
39755  #if PY_VERSION_HEX >= 0x030700A1
39756  static PY_INT64_T main_interpreter_id = -1;
39757  PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
39758  if (main_interpreter_id == -1) {
39759  main_interpreter_id = current_id;
39760  return (unlikely(current_id == -1)) ? -1 : 0;
39761  } else if (unlikely(main_interpreter_id != current_id))
39762  #else
39763  static PyInterpreterState *main_interpreter = NULL;
39764  PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
39765  if (!main_interpreter) {
39766  main_interpreter = current_interpreter;
39767  } else if (unlikely(main_interpreter != current_interpreter))
39768  #endif
39769  {
39770  PyErr_SetString(
39771  PyExc_ImportError,
39772  "Interpreter change detected - this module can only be loaded into one interpreter per process.");
39773  return -1;
39774  }
39775  return 0;
39776 }
39777 static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) {
39778  PyObject *value = PyObject_GetAttrString(spec, from_name);
39779  int result = 0;
39780  if (likely(value)) {
39781  if (allow_none || value != Py_None) {
39782  result = PyDict_SetItemString(moddict, to_name, value);
39783  }
39784  Py_DECREF(value);
39785  } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
39786  PyErr_Clear();
39787  } else {
39788  result = -1;
39789  }
39790  return result;
39791 }
39792 static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) {
39793  PyObject *module = NULL, *moddict, *modname;
39794  if (__Pyx_check_single_interpreter())
39795  return NULL;
39796  if (__pyx_m)
39797  return __Pyx_NewRef(__pyx_m);
39798  modname = PyObject_GetAttrString(spec, "name");
39799  if (unlikely(!modname)) goto bad;
39800  module = PyModule_NewObject(modname);
39801  Py_DECREF(modname);
39802  if (unlikely(!module)) goto bad;
39803  moddict = PyModule_GetDict(module);
39804  if (unlikely(!moddict)) goto bad;
39805  if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
39806  if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
39807  if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
39808  if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
39809  return module;
39810 bad:
39811  Py_XDECREF(module);
39812  return NULL;
39813 }
39814 
39815 
39816 static CYTHON_SMALL_CODE int __pyx_pymod_exec_cnumericalFlux(PyObject *__pyx_pyinit_module)
39817 #endif
39818 #endif
39819 {
39820  PyObject *__pyx_t_1 = NULL;
39821  PyObject *__pyx_t_2 = NULL;
39822  int __pyx_lineno = 0;
39823  const char *__pyx_filename = NULL;
39824  int __pyx_clineno = 0;
39825  __Pyx_RefNannyDeclarations
39826  #if CYTHON_PEP489_MULTI_PHASE_INIT
39827  if (__pyx_m) {
39828  if (__pyx_m == __pyx_pyinit_module) return 0;
39829  PyErr_SetString(PyExc_RuntimeError, "Module 'cnumericalFlux' has already been imported. Re-initialisation is not supported.");
39830  return -1;
39831  }
39832  #elif PY_MAJOR_VERSION >= 3
39833  if (__pyx_m) return __Pyx_NewRef(__pyx_m);
39834  #endif
39835  #if CYTHON_REFNANNY
39836 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
39837 if (!__Pyx_RefNanny) {
39838  PyErr_Clear();
39839  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
39840  if (!__Pyx_RefNanny)
39841  Py_FatalError("failed to import 'refnanny' module");
39842 }
39843 #endif
39844  __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_cnumericalFlux(void)", 0);
39845  if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
39846  #ifdef __Pxy_PyFrame_Initialize_Offsets
39847  __Pxy_PyFrame_Initialize_Offsets();
39848  #endif
39849  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
39850  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
39851  __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
39852  #ifdef __Pyx_CyFunction_USED
39853  if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
39854  #endif
39855  #ifdef __Pyx_FusedFunction_USED
39856  if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
39857  #endif
39858  #ifdef __Pyx_Coroutine_USED
39859  if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
39860  #endif
39861  #ifdef __Pyx_Generator_USED
39862  if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
39863  #endif
39864  #ifdef __Pyx_AsyncGen_USED
39865  if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
39866  #endif
39867  #ifdef __Pyx_StopAsyncIteration_USED
39868  if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
39869  #endif
39870  /*--- Library function declarations ---*/
39871  /*--- Threads initialization code ---*/
39872  #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
39873  PyEval_InitThreads();
39874  #endif
39875  /*--- Module creation code ---*/
39876  #if CYTHON_PEP489_MULTI_PHASE_INIT
39877  __pyx_m = __pyx_pyinit_module;
39878  Py_INCREF(__pyx_m);
39879  #else
39880  #if PY_MAJOR_VERSION < 3
39881  __pyx_m = Py_InitModule4("cnumericalFlux", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
39882  #else
39883  __pyx_m = PyModule_Create(&__pyx_moduledef);
39884  #endif
39885  if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
39886  #endif
39887  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
39888  Py_INCREF(__pyx_d);
39889  __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
39890  Py_INCREF(__pyx_b);
39891  __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
39892  Py_INCREF(__pyx_cython_runtime);
39893  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
39894  /*--- Initialize various global constants etc. ---*/
39895  if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
39896  #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
39897  if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
39898  #endif
39899  if (__pyx_module_is_main_cnumericalFlux) {
39900  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
39901  }
39902  #if PY_MAJOR_VERSION >= 3
39903  {
39904  PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
39905  if (!PyDict_GetItemString(modules, "cnumericalFlux")) {
39906  if (unlikely(PyDict_SetItemString(modules, "cnumericalFlux", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
39907  }
39908  }
39909  #endif
39910  /*--- Builtin init code ---*/
39911  if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
39912  /*--- Constants init code ---*/
39913  if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
39914  /*--- Global type/function init code ---*/
39915  (void)__Pyx_modinit_global_init_code();
39916  (void)__Pyx_modinit_variable_export_code();
39917  (void)__Pyx_modinit_function_export_code();
39918  (void)__Pyx_modinit_type_init_code();
39919  if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
39920  (void)__Pyx_modinit_variable_import_code();
39921  (void)__Pyx_modinit_function_import_code();
39922  /*--- Execution code ---*/
39923  #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
39924  if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
39925  #endif
39926 
39927  /* "cnumericalFlux.pyx":2
39928  * # A type of -*- python -*- file
39929  * from sys import exit # <<<<<<<<<<<<<<
39930  * import numpy as np
39931  * cimport numpy as np
39932  */
39933  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error)
39934  __Pyx_GOTREF(__pyx_t_1);
39935  __Pyx_INCREF(__pyx_n_s_exit);
39936  __Pyx_GIVEREF(__pyx_n_s_exit);
39937  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_exit);
39938  __pyx_t_2 = __Pyx_Import(__pyx_n_s_sys, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2, __pyx_L1_error)
39939  __Pyx_GOTREF(__pyx_t_2);
39940  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39941  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error)
39942  __Pyx_GOTREF(__pyx_t_1);
39943  if (PyDict_SetItem(__pyx_d, __pyx_n_s_exit, __pyx_t_1) < 0) __PYX_ERR(0, 2, __pyx_L1_error)
39944  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
39945  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39946 
39947  /* "cnumericalFlux.pyx":3
39948  * # A type of -*- python -*- file
39949  * from sys import exit
39950  * import numpy as np # <<<<<<<<<<<<<<
39951  * cimport numpy as np
39952  * cdef extern from "numericalFlux.h":
39953  */
39954  __pyx_t_2 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3, __pyx_L1_error)
39955  __Pyx_GOTREF(__pyx_t_2);
39956  if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_2) < 0) __PYX_ERR(0, 3, __pyx_L1_error)
39957  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39958 
39959  /* "cnumericalFlux.pyx":2147
39960  * double* fluxJacobian)
39961  * ##-----------------
39962  * def calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, # <<<<<<<<<<<<<<
39963  * np.ndarray interiorElementBoundaries,
39964  * np.ndarray elementBoundaryElements,
39965  */
39966  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_1calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2147, __pyx_L1_error)
39967  __Pyx_GOTREF(__pyx_t_2);
39968  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateInteriorNumericalAdvect, __pyx_t_2) < 0) __PYX_ERR(0, 2147, __pyx_L1_error)
39969  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39970 
39971  /* "cnumericalFlux.pyx":2170
39972  * <double*> lambda_bar_element.data,
39973  * <double*> flux.data)
39974  * def calculateInteriorLesaintRaviartNumericalFlux(int speedEvalFlag, # <<<<<<<<<<<<<<
39975  * np.ndarray interiorElementBoundaries,
39976  * np.ndarray elementBoundaryElements,
39977  */
39978  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_3calculateInteriorLesaintRaviartNumericalFlux, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2170, __pyx_L1_error)
39979  __Pyx_GOTREF(__pyx_t_2);
39980  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateInteriorLesaintRaviartN, __pyx_t_2) < 0) __PYX_ERR(0, 2170, __pyx_L1_error)
39981  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39982 
39983  /* "cnumericalFlux.pyx":2196
39984  * <double*> dflux_left.data,
39985  * <double*> dflux_right.data)
39986  * def calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint(double sonicPoint, # <<<<<<<<<<<<<<
39987  * double sonicFlux,
39988  * np.ndarray interiorElementBoundaries,
39989  */
39990  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_5calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2196, __pyx_L1_error)
39991  __Pyx_GOTREF(__pyx_t_2);
39992  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateInteriorNumericalAdvect_2, __pyx_t_2) < 0) __PYX_ERR(0, 2196, __pyx_L1_error)
39993  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39994 
39995  /* "cnumericalFlux.pyx":2224
39996  * <double*> dflux_left.data,
39997  * <double*> dflux_right.data)
39998  * def calculateInteriorNumericalAdvectiveFluxRusanov(double safetyFactor, # <<<<<<<<<<<<<<
39999  * np.ndarray interiorElementBoundaries,
40000  * np.ndarray elementBoundaryElements,
40001  */
40002  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_7calculateInteriorNumericalAdvectiveFluxRusanov, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2224, __pyx_L1_error)
40003  __Pyx_GOTREF(__pyx_t_2);
40004  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateInteriorNumericalAdvect_3, __pyx_t_2) < 0) __PYX_ERR(0, 2224, __pyx_L1_error)
40005  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40006 
40007  /* "cnumericalFlux.pyx":2254
40008  * <double*> dflux_right.data)
40009  *
40010  * def calculateInteriorNumericalDiffusiveFlux(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
40011  * np.ndarray elementBoundaryElements,
40012  * np.ndarray elementBoundaryLocalElementBoundaries,
40013  */
40014  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_9calculateInteriorNumericalDiffusiveFlux, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2254, __pyx_L1_error)
40015  __Pyx_GOTREF(__pyx_t_2);
40016  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateInteriorNumericalDiffus, __pyx_t_2) < 0) __PYX_ERR(0, 2254, __pyx_L1_error)
40017  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40018 
40019  /* "cnumericalFlux.pyx":2280
40020  * <double*> penalty.data,
40021  * <double*> flux.data)
40022  * def updateInteriorNumericalDiffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
40023  * np.ndarray interiorElementBoundaries,
40024  * np.ndarray elementBoundaryElements,
40025  */
40026  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_11updateInteriorNumericalDiffusiveFluxJacobian, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2280, __pyx_L1_error)
40027  __Pyx_GOTREF(__pyx_t_2);
40028  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateInteriorNumericalDiffusive, __pyx_t_2) < 0) __PYX_ERR(0, 2280, __pyx_L1_error)
40029  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40030 
40031  /* "cnumericalFlux.pyx":2317
40032  * <double*> fluxJacobian.data)
40033  *
40034  * def calculateInteriorNumericalAdvectiveFlux( np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
40035  * np.ndarray elementBoundaryElements,
40036  * np.ndarray elementBoundaryLocalElementBoundaries,
40037  */
40038  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_13calculateInteriorNumericalAdvectiveFlux, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2317, __pyx_L1_error)
40039  __Pyx_GOTREF(__pyx_t_2);
40040  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateInteriorNumericalAdvect_4, __pyx_t_2) < 0) __PYX_ERR(0, 2317, __pyx_L1_error)
40041  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40042 
40043  /* "cnumericalFlux.pyx":2342
40044  * <double*> dflux_left.data,
40045  * <double*> dflux_right.data)
40046  * def updateInteriorNumericalAdvectiveFluxJacobian( np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
40047  * np.ndarray elementBoundaryElements,
40048  * np.ndarray elementBoundaryLocalElementBoundaries,
40049  */
40050  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_15updateInteriorNumericalAdvectiveFluxJacobian, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2342, __pyx_L1_error)
40051  __Pyx_GOTREF(__pyx_t_2);
40052  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateInteriorNumericalAdvective, __pyx_t_2) < 0) __PYX_ERR(0, 2342, __pyx_L1_error)
40053  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40054 
40055  /* "cnumericalFlux.pyx":2361
40056  * <double*> v.data,
40057  * <double*> fluxJacobian.data)
40058  * def calculateInteriorNumericalAdvectiveFlux_average(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
40059  * np.ndarray elementBoundaryElements,
40060  * np.ndarray elementBoundaryLocalElementBoundaries,
40061  */
40062  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_17calculateInteriorNumericalAdvectiveFlux_average, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2361, __pyx_L1_error)
40063  __Pyx_GOTREF(__pyx_t_2);
40064  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateInteriorNumericalAdvect_5, __pyx_t_2) < 0) __PYX_ERR(0, 2361, __pyx_L1_error)
40065  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40066 
40067  /* "cnumericalFlux.pyx":2386
40068  * <double*> dflux_left.data,
40069  * <double*> dflux_right.data)
40070  * def calculateExteriorNumericalAdvectiveFlux_NoBC(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40071  * np.ndarray elementBoundaryElements,
40072  * np.ndarray elementBoundaryLocalElementBoundaries,
40073  */
40074  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_19calculateExteriorNumericalAdvectiveFlux_NoBC, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2386, __pyx_L1_error)
40075  __Pyx_GOTREF(__pyx_t_2);
40076  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalAdvect, __pyx_t_2) < 0) __PYX_ERR(0, 2386, __pyx_L1_error)
40077  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40078 
40079  /* "cnumericalFlux.pyx":2424
40080  * <double*> dflux_left.data)
40081  *
40082  * def calculateExteriorNumericalAdvectiveFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40083  * np.ndarray elementBoundaryElements,
40084  * np.ndarray elementBoundaryLocalElementBoundaries,
40085  */
40086  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_21calculateExteriorNumericalAdvectiveFlux, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2424, __pyx_L1_error)
40087  __Pyx_GOTREF(__pyx_t_2);
40088  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalAdvect_2, __pyx_t_2) < 0) __PYX_ERR(0, 2424, __pyx_L1_error)
40089  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40090 
40091  /* "cnumericalFlux.pyx":2477
40092  * <double*> dflux.data)
40093  *
40094  * def updateExteriorNumericalAdvectiveFluxJacobian( np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40095  * np.ndarray elementBoundaryElements,
40096  * np.ndarray elementBoundaryLocalElementBoundaries,
40097  */
40098  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_23updateExteriorNumericalAdvectiveFluxJacobian, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2477, __pyx_L1_error)
40099  __Pyx_GOTREF(__pyx_t_2);
40100  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateExteriorNumericalAdvective, __pyx_t_2) < 0) __PYX_ERR(0, 2477, __pyx_L1_error)
40101  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40102 
40103  /* "cnumericalFlux.pyx":2508
40104  * <double*> v.data,
40105  * <double*> fluxJacobian.data)
40106  * def calculateInteriorNumericalDiffusiveFlux_LDG_upwind(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
40107  * np.ndarray elementBoundaryElements,
40108  * np.ndarray elementBoundaryLocalElementBoundaries,
40109  */
40110  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_25calculateInteriorNumericalDiffusiveFlux_LDG_upwind, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2508, __pyx_L1_error)
40111  __Pyx_GOTREF(__pyx_t_2);
40112  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateInteriorNumericalDiffus_2, __pyx_t_2) < 0) __PYX_ERR(0, 2508, __pyx_L1_error)
40113  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40114 
40115  /* "cnumericalFlux.pyx":2533
40116  * <double*> penalty.data,
40117  * <double*> flux.data)
40118  * def updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
40119  * np.ndarray elementBoundaryElements,
40120  * np.ndarray elementBoundaryLocalElementBoundaries,
40121  */
40122  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_27updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2533, __pyx_L1_error)
40123  __Pyx_GOTREF(__pyx_t_2);
40124  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateInteriorNumericalDiffusive_2, __pyx_t_2) < 0) __PYX_ERR(0, 2533, __pyx_L1_error)
40125  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40126 
40127  /* "cnumericalFlux.pyx":2568
40128  * <double*> fluxJacobian_eb.data)
40129  *
40130  * def setInflowFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40131  * np.ndarray inflowFlux,
40132  * np.ndarray flux):
40133  */
40134  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_29setInflowFlux, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2568, __pyx_L1_error)
40135  __Pyx_GOTREF(__pyx_t_2);
40136  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setInflowFlux, __pyx_t_2) < 0) __PYX_ERR(0, 2568, __pyx_L1_error)
40137  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40138 
40139  /* "cnumericalFlux.pyx":2576
40140  * <double*> inflowFlux.data,
40141  * <double*> flux.data)
40142  * def updateInteriorTwoSidedNumericalFluxJacobian(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
40143  * np.ndarray elementBoundaryElements,
40144  * np.ndarray elementBoundaryLocalElementBoundaries,
40145  */
40146  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_31updateInteriorTwoSidedNumericalFluxJacobian, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2576, __pyx_L1_error)
40147  __Pyx_GOTREF(__pyx_t_2);
40148  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateInteriorTwoSidedNumericalF, __pyx_t_2) < 0) __PYX_ERR(0, 2576, __pyx_L1_error)
40149  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40150 
40151  /* "cnumericalFlux.pyx":2595
40152  * <double*> fluxJacobian_2sided.data)
40153  *
40154  * def calculateGlobalExteriorInflowNumericalAdvectiveFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40155  * np.ndarray elementBoundaryElements,
40156  * np.ndarray elementBoundaryLocalElementBoundaries,
40157  */
40158  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_33calculateGlobalExteriorInflowNumericalAdvectiveFlux, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2595, __pyx_L1_error)
40159  __Pyx_GOTREF(__pyx_t_2);
40160  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorInflowNum, __pyx_t_2) < 0) __PYX_ERR(0, 2595, __pyx_L1_error)
40161  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40162 
40163  /* "cnumericalFlux.pyx":2618
40164  * <double*> flux.data,
40165  * <double*> dflux_left.data)
40166  * def updateGlobalExteriorNumericalAdvectiveFluxJacobian(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40167  * int nQuadraturePoints_elementBoundary,
40168  * int nDOF_trial_element,
40169  */
40170  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_35updateGlobalExteriorNumericalAdvectiveFluxJacobian, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2618, __pyx_L1_error)
40171  __Pyx_GOTREF(__pyx_t_2);
40172  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateGlobalExteriorNumericalAdv, __pyx_t_2) < 0) __PYX_ERR(0, 2618, __pyx_L1_error)
40173  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40174 
40175  /* "cnumericalFlux.pyx":2638
40176  * <double*> v.data,
40177  * <double*> fluxJacobian.data)
40178  * def calculateInteriorChengShuNumericalFlux(int speedEvalFlag, # <<<<<<<<<<<<<<
40179  * np.ndarray interiorElementBoundaries,
40180  * np.ndarray elementBoundaryElements,
40181  */
40182  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_37calculateInteriorChengShuNumericalFlux, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2638, __pyx_L1_error)
40183  __Pyx_GOTREF(__pyx_t_2);
40184  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateInteriorChengShuNumeric, __pyx_t_2) < 0) __PYX_ERR(0, 2638, __pyx_L1_error)
40185  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40186 
40187  /* "cnumericalFlux.pyx":2669
40188  * <double*> dflux_left.data,
40189  * <double*> dflux_right.data)
40190  * def calculateGlobalExteriorNumericalFluxDarcyFCFF(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40191  * np.ndarray elementBoundaryElements,
40192  * np.ndarray elementBoundaryLocalElementBoundaries,
40193  */
40194  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_39calculateGlobalExteriorNumericalFluxDarcyFCFF, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2669, __pyx_L1_error)
40195  __Pyx_GOTREF(__pyx_t_2);
40196  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical, __pyx_t_2) < 0) __PYX_ERR(0, 2669, __pyx_L1_error)
40197  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40198 
40199  /* "cnumericalFlux.pyx":2732
40200  * <double*> diffusiveFlux_mw.data,
40201  * <double*> diffusiveFlux_mm.data)
40202  * def calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
40203  * np.ndarray exteriorElementBoundaries,
40204  * np.ndarray elementBoundaryElements,
40205  */
40206  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_41calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2732, __pyx_L1_error)
40207  __Pyx_GOTREF(__pyx_t_2);
40208  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_2, __pyx_t_2) < 0) __PYX_ERR(0, 2732, __pyx_L1_error)
40209  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40210 
40211  /* "cnumericalFlux.pyx":2804
40212  * <double*> fluxJacobian_mw.data,
40213  * <double*> fluxJacobian_mm.data)
40214  * def updateExteriorNumericalStressFluxJacobian(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40215  * np.ndarray elementBoundaryElements,
40216  * np.ndarray elementBoundaryLocalElementBoundaries,
40217  */
40218  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_43updateExteriorNumericalStressFluxJacobian, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2804, __pyx_L1_error)
40219  __Pyx_GOTREF(__pyx_t_2);
40220  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateExteriorNumericalStressFlu, __pyx_t_2) < 0) __PYX_ERR(0, 2804, __pyx_L1_error)
40221  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40222 
40223  /* "cnumericalFlux.pyx":2870
40224  * <double*> fluxJacobian_w_v.data,
40225  * <double*> fluxJacobian_w_w.data)
40226  * def calculateExteriorNumericalFluxRichards_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
40227  * np.ndarray colind,
40228  * np.ndarray isSeepageFace,
40229  */
40230  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_45calculateExteriorNumericalFluxRichards_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2870, __pyx_L1_error)
40231  __Pyx_GOTREF(__pyx_t_2);
40232  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalFluxRi, __pyx_t_2) < 0) __PYX_ERR(0, 2870, __pyx_L1_error)
40233  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40234 
40235  /* "cnumericalFlux.pyx":2897
40236  * <double*> penalty.data,
40237  * <double*> diffusiveFlux.data)
40238  * def calculateExteriorNumericalFluxJacobianRichards_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
40239  * np.ndarray colind,
40240  * np.ndarray isDOFBoundary,
40241  */
40242  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_47calculateExteriorNumericalFluxJacobianRichards_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2897, __pyx_L1_error)
40243  __Pyx_GOTREF(__pyx_t_2);
40244  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalFluxJa, __pyx_t_2) < 0) __PYX_ERR(0, 2897, __pyx_L1_error)
40245  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40246 
40247  /* "cnumericalFlux.pyx":2929
40248  * <double*> penalty.data,
40249  * <double*> fluxJacobian.data)
40250  * def calculateExteriorNumericalAdvectiveFluxStokes2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40251  * np.ndarray elementBoundaryElements,
40252  * np.ndarray elementBoundaryLocalElementBoundaries,
40253  */
40254  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_49calculateExteriorNumericalAdvectiveFluxStokes2D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2929, __pyx_L1_error)
40255  __Pyx_GOTREF(__pyx_t_2);
40256  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalAdvect_3, __pyx_t_2) < 0) __PYX_ERR(0, 2929, __pyx_L1_error)
40257  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40258 
40259  /* "cnumericalFlux.pyx":2976
40260  * ####=========
40261  *
40262  * def calculateInteriorNumericalDiffusiveFlux_sd( np.ndarray rowptr, # <<<<<<<<<<<<<<
40263  * np.ndarray colind,
40264  * np.ndarray interiorElementBoundaries,
40265  */
40266  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_51calculateInteriorNumericalDiffusiveFlux_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2976, __pyx_L1_error)
40267  __Pyx_GOTREF(__pyx_t_2);
40268  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateInteriorNumericalDiffus_3, __pyx_t_2) < 0) __PYX_ERR(0, 2976, __pyx_L1_error)
40269  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40270 
40271  /* "cnumericalFlux.pyx":3007
40272  * <double*> flux.data)
40273  *
40274  * def updateInteriorNumericalDiffusiveFluxJacobian_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
40275  * np.ndarray colind,
40276  * np.ndarray l2g,
40277  */
40278  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_53updateInteriorNumericalDiffusiveFluxJacobian_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3007, __pyx_L1_error)
40279  __Pyx_GOTREF(__pyx_t_2);
40280  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateInteriorNumericalDiffusive_3, __pyx_t_2) < 0) __PYX_ERR(0, 3007, __pyx_L1_error)
40281  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40282 
40283  /* "cnumericalFlux.pyx":3046
40284  * <double*> penalty.data,
40285  * <double*> fluxJacobian.data)
40286  * def updateExteriorNumericalDiffusiveFluxJacobian_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
40287  * np.ndarray colind,
40288  * np.ndarray l2g,
40289  */
40290  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_55updateExteriorNumericalDiffusiveFluxJacobian_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3046, __pyx_L1_error)
40291  __Pyx_GOTREF(__pyx_t_2);
40292  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateExteriorNumericalDiffusive, __pyx_t_2) < 0) __PYX_ERR(0, 3046, __pyx_L1_error)
40293  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40294 
40295  /* "cnumericalFlux.pyx":3113
40296  * else:
40297  * exit(1)
40298  * def updateExteriorNumericalDiffusiveFluxJacobian_free_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
40299  * np.ndarray colind,
40300  * np.ndarray l2g,
40301  */
40302  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_57updateExteriorNumericalDiffusiveFluxJacobian_free_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3113, __pyx_L1_error)
40303  __Pyx_GOTREF(__pyx_t_2);
40304  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateExteriorNumericalDiffusive_2, __pyx_t_2) < 0) __PYX_ERR(0, 3113, __pyx_L1_error)
40305  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40306 
40307  /* "cnumericalFlux.pyx":3174
40308  * else:
40309  * exit(1)
40310  * def calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
40311  * np.ndarray colind,
40312  * np.ndarray interiorElementBoundaries,
40313  */
40314  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_59calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3174, __pyx_L1_error)
40315  __Pyx_GOTREF(__pyx_t_2);
40316  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateInteriorNumericalDiffus_4, __pyx_t_2) < 0) __PYX_ERR(0, 3174, __pyx_L1_error)
40317  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40318 
40319  /* "cnumericalFlux.pyx":3202
40320  * <double*> penalty.data,
40321  * <double*> flux.data)
40322  * def updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
40323  * np.ndarray colind,
40324  * np.ndarray interiorElementBoundaries,
40325  */
40326  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_61updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3202, __pyx_L1_error)
40327  __Pyx_GOTREF(__pyx_t_2);
40328  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateInteriorNumericalDiffusive_4, __pyx_t_2) < 0) __PYX_ERR(0, 3202, __pyx_L1_error)
40329  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40330 
40331  /* "cnumericalFlux.pyx":3240
40332  * <double*> fluxJacobian_eb.data)
40333  *
40334  * def calculateDiffusionMatrixSplittings_LDG_sd(int aSplit, # <<<<<<<<<<<<<<
40335  * int nSpace,
40336  * np.ndarray rowptr,
40337  */
40338  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_63calculateDiffusionMatrixSplittings_LDG_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3240, __pyx_L1_error)
40339  __Pyx_GOTREF(__pyx_t_2);
40340  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateDiffusionMatrixSplittin, __pyx_t_2) < 0) __PYX_ERR(0, 3240, __pyx_L1_error)
40341  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40342 
40343  /* "cnumericalFlux.pyx":3264
40344  * <double*> aHat.data,
40345  * <double*> aTilde.data)
40346  * def calculateGlobalExteriorNumericalFluxDarcyFCFF_sd(np.ndarray rowptr_wm, # <<<<<<<<<<<<<<
40347  * np.ndarray colind_wm,
40348  * np.ndarray rowptr_mw,
40349  */
40350  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_65calculateGlobalExteriorNumericalFluxDarcyFCFF_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3264, __pyx_L1_error)
40351  __Pyx_GOTREF(__pyx_t_2);
40352  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_3, __pyx_t_2) < 0) __PYX_ERR(0, 3264, __pyx_L1_error)
40353  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40354 
40355  /* "cnumericalFlux.pyx":3339
40356  * <double*> diffusiveFlux_mw.data,
40357  * <double*> diffusiveFlux_mm.data)
40358  * def calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd(np.ndarray rowptr_wm, # <<<<<<<<<<<<<<
40359  * np.ndarray colind_wm,
40360  * np.ndarray rowptr_mw,
40361  */
40362  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_67calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3339, __pyx_L1_error)
40363  __Pyx_GOTREF(__pyx_t_2);
40364  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_4, __pyx_t_2) < 0) __PYX_ERR(0, 3339, __pyx_L1_error)
40365  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40366 
40367  /* "cnumericalFlux.pyx":3423
40368  * <double*> fluxJacobian_mw.data,
40369  * <double*> fluxJacobian_mm.data)
40370  * def calculateGlobalExteriorNumericalFluxDarcyFC(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40371  * np.ndarray elementBoundaryElements,
40372  * np.ndarray elementBoundaryLocalElementBoundaries,
40373  */
40374  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_69calculateGlobalExteriorNumericalFluxDarcyFC, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3423, __pyx_L1_error)
40375  __Pyx_GOTREF(__pyx_t_2);
40376  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_5, __pyx_t_2) < 0) __PYX_ERR(0, 3423, __pyx_L1_error)
40377  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40378 
40379  /* "cnumericalFlux.pyx":3478
40380  * <double*> diffusiveFlux_ww.data,
40381  * <double*> diffusiveFlux_nn.data)
40382  * def calculateGlobalExteriorNumericalFluxDarcyFC_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
40383  * np.ndarray colind_ww,
40384  * np.ndarray rowptr_nn,
40385  */
40386  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_71calculateGlobalExteriorNumericalFluxDarcyFC_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3478, __pyx_L1_error)
40387  __Pyx_GOTREF(__pyx_t_2);
40388  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_6, __pyx_t_2) < 0) __PYX_ERR(0, 3478, __pyx_L1_error)
40389  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40390 
40391  /* "cnumericalFlux.pyx":3541
40392  * <double*> diffusiveFlux_ww.data,
40393  * <double*> diffusiveFlux_nn.data)
40394  * def calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
40395  * np.ndarray exteriorElementBoundaries,
40396  * np.ndarray elementBoundaryElements,
40397  */
40398  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_73calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3541, __pyx_L1_error)
40399  __Pyx_GOTREF(__pyx_t_2);
40400  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_7, __pyx_t_2) < 0) __PYX_ERR(0, 3541, __pyx_L1_error)
40401  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40402 
40403  /* "cnumericalFlux.pyx":3613
40404  * <double*> fluxJacobian_nw.data,
40405  * <double*> fluxJacobian_nn.data)
40406  * def calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
40407  * np.ndarray colind_ww,
40408  * np.ndarray rowptr_nn,
40409  */
40410  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_75calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3613, __pyx_L1_error)
40411  __Pyx_GOTREF(__pyx_t_2);
40412  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_8, __pyx_t_2) < 0) __PYX_ERR(0, 3613, __pyx_L1_error)
40413  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40414 
40415  /* "cnumericalFlux.pyx":3693
40416  * <double*> fluxJacobian_nw.data,
40417  * <double*> fluxJacobian_nn.data)
40418  * def calculateGlobalExteriorNumericalFluxDarcyFCPP(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40419  * np.ndarray elementBoundaryElements,
40420  * np.ndarray elementBoundaryLocalElementBoundaries,
40421  */
40422  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_77calculateGlobalExteriorNumericalFluxDarcyFCPP, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3693, __pyx_L1_error)
40423  __Pyx_GOTREF(__pyx_t_2);
40424  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_9, __pyx_t_2) < 0) __PYX_ERR(0, 3693, __pyx_L1_error)
40425  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40426 
40427  /* "cnumericalFlux.pyx":3748
40428  * <double*> diffusiveFlux_ww.data,
40429  * <double*> diffusiveFlux_nn.data)
40430  * def calculateGlobalExteriorNumericalFluxDarcyFCPP_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
40431  * np.ndarray colind_ww,
40432  * np.ndarray rowptr_nn,
40433  */
40434  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_79calculateGlobalExteriorNumericalFluxDarcyFCPP_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3748, __pyx_L1_error)
40435  __Pyx_GOTREF(__pyx_t_2);
40436  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_10, __pyx_t_2) < 0) __PYX_ERR(0, 3748, __pyx_L1_error)
40437  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40438 
40439  /* "cnumericalFlux.pyx":3811
40440  * <double*> diffusiveFlux_ww.data,
40441  * <double*> diffusiveFlux_nn.data)
40442  * def calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
40443  * np.ndarray exteriorElementBoundaries,
40444  * np.ndarray elementBoundaryElements,
40445  */
40446  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_81calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3811, __pyx_L1_error)
40447  __Pyx_GOTREF(__pyx_t_2);
40448  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_11, __pyx_t_2) < 0) __PYX_ERR(0, 3811, __pyx_L1_error)
40449  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40450 
40451  /* "cnumericalFlux.pyx":3883
40452  * <double*> fluxJacobian_nw.data,
40453  * <double*> fluxJacobian_nn.data)
40454  * def calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd(np.ndarray rowptr_ww, # <<<<<<<<<<<<<<
40455  * np.ndarray colind_ww,
40456  * np.ndarray rowptr_nn,
40457  */
40458  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_83calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3883, __pyx_L1_error)
40459  __Pyx_GOTREF(__pyx_t_2);
40460  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_12, __pyx_t_2) < 0) __PYX_ERR(0, 3883, __pyx_L1_error)
40461  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40462 
40463  /* "cnumericalFlux.pyx":3964
40464  * <double*> fluxJacobian_nn.data)
40465  *
40466  * def calculateInteriorNumericalFluxShallowWater_1D(double h_eps, # <<<<<<<<<<<<<<
40467  * double tol_u,
40468  * double g,
40469  */
40470  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_85calculateInteriorNumericalFluxShallowWater_1D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3964, __pyx_L1_error)
40471  __Pyx_GOTREF(__pyx_t_2);
40472  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateInteriorNumericalFluxSh, __pyx_t_2) < 0) __PYX_ERR(0, 3964, __pyx_L1_error)
40473  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40474 
40475  /* "cnumericalFlux.pyx":3989
40476  * <double*> flux_h.data,
40477  * <double*> flux_hu.data)
40478  * def calculateExteriorNumericalFluxShallowWater_1D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40479  * double h_eps,
40480  * double tol_u,
40481  */
40482  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_87calculateExteriorNumericalFluxShallowWater_1D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3989, __pyx_L1_error)
40483  __Pyx_GOTREF(__pyx_t_2);
40484  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalFluxSh, __pyx_t_2) < 0) __PYX_ERR(0, 3989, __pyx_L1_error)
40485  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40486 
40487  /* "cnumericalFlux.pyx":4012
40488  * <double*> flux_h.data,
40489  * <double*> flux_hu.data)
40490  * def calculateInteriorNumericalFluxShallowWater_2D(double h_eps, # <<<<<<<<<<<<<<
40491  * double tol_u,
40492  * double g,
40493  */
40494  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_89calculateInteriorNumericalFluxShallowWater_2D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4012, __pyx_L1_error)
40495  __Pyx_GOTREF(__pyx_t_2);
40496  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateInteriorNumericalFluxSh_2, __pyx_t_2) < 0) __PYX_ERR(0, 4012, __pyx_L1_error)
40497  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40498 
40499  /* "cnumericalFlux.pyx":4041
40500  * <double*> flux_hu.data,
40501  * <double*> flux_hv.data)
40502  * def calculateExteriorNumericalFluxShallowWater_2D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40503  * double h_eps,
40504  * double tol_u,
40505  */
40506  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_91calculateExteriorNumericalFluxShallowWater_2D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4041, __pyx_L1_error)
40507  __Pyx_GOTREF(__pyx_t_2);
40508  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalFluxSh_2, __pyx_t_2) < 0) __PYX_ERR(0, 4041, __pyx_L1_error)
40509  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40510 
40511  /* "cnumericalFlux.pyx":4070
40512  * <double*> flux_hu.data,
40513  * <double*> flux_hv.data)
40514  * def calculateInteriorNumericalFluxShallowWaterHLL_1D(double h_eps, # <<<<<<<<<<<<<<
40515  * double tol_u,
40516  * double g,
40517  */
40518  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_93calculateInteriorNumericalFluxShallowWaterHLL_1D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4070, __pyx_L1_error)
40519  __Pyx_GOTREF(__pyx_t_2);
40520  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateInteriorNumericalFluxSh_3, __pyx_t_2) < 0) __PYX_ERR(0, 4070, __pyx_L1_error)
40521  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40522 
40523  /* "cnumericalFlux.pyx":4095
40524  * <double*> flux_h.data,
40525  * <double*> flux_hu.data)
40526  * def calculateExteriorNumericalFluxShallowWaterHLL_1D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40527  * double h_eps,
40528  * double tol_u,
40529  */
40530  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_95calculateExteriorNumericalFluxShallowWaterHLL_1D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4095, __pyx_L1_error)
40531  __Pyx_GOTREF(__pyx_t_2);
40532  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalFluxSh_3, __pyx_t_2) < 0) __PYX_ERR(0, 4095, __pyx_L1_error)
40533  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40534 
40535  /* "cnumericalFlux.pyx":4118
40536  * <double*> flux_h.data,
40537  * <double*> flux_hu.data)
40538  * def calculateGlobalExteriorNumericalStressFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40539  * np.ndarray elementBoundaryElements,
40540  * np.ndarray elementBoundaryLocalElementBoundaries,
40541  */
40542  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_97calculateGlobalExteriorNumericalStressFlux, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4118, __pyx_L1_error)
40543  __Pyx_GOTREF(__pyx_t_2);
40544  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_13, __pyx_t_2) < 0) __PYX_ERR(0, 4118, __pyx_L1_error)
40545  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40546 
40547  /* "cnumericalFlux.pyx":4158
40548  * <double*> stressFlux_w.data)
40549  * #######333333
40550  * def calculateExteriorNumericalAdvectiveFluxStokes3D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40551  * int nQuadraturePoints_elementBoundary,
40552  * int nSpace,
40553  */
40554  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_99calculateExteriorNumericalAdvectiveFluxStokes3D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4158, __pyx_L1_error)
40555  __Pyx_GOTREF(__pyx_t_2);
40556  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalAdvect_4, __pyx_t_2) < 0) __PYX_ERR(0, 4158, __pyx_L1_error)
40557  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40558 
40559  /* "cnumericalFlux.pyx":4216
40560  * <double*> dflux_wmom_dp.data,
40561  * <double*> velocity.data)
40562  * def calculateExteriorNumericalAdvectiveFluxNavierStokes3D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40563  * np.ndarray elementBoundaryElements,
40564  * np.ndarray elementBoundaryLocalElementBoundaries,
40565  */
40566  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_101calculateExteriorNumericalAdvectiveFluxNavierStokes3D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4216, __pyx_L1_error)
40567  __Pyx_GOTREF(__pyx_t_2);
40568  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalAdvect_5, __pyx_t_2) < 0) __PYX_ERR(0, 4216, __pyx_L1_error)
40569  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40570 
40571  /* "cnumericalFlux.pyx":4328
40572  * <double*> dflux_wmom_dw.data,
40573  * <double*> velocity.data)
40574  * def calculateExteriorNumericalAdvectiveFluxRusanov(double safetyFactor, # <<<<<<<<<<<<<<
40575  * np.ndarray exteriorElementBoundaries,
40576  * np.ndarray elementBoundaryElements,
40577  */
40578  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_103calculateExteriorNumericalAdvectiveFluxRusanov, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4328, __pyx_L1_error)
40579  __Pyx_GOTREF(__pyx_t_2);
40580  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalAdvect_6, __pyx_t_2) < 0) __PYX_ERR(0, 4328, __pyx_L1_error)
40581  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40582 
40583  /* "cnumericalFlux.pyx":4387
40584  * <double*> flux.data,
40585  * <double*> dflux.data)
40586  * def calculateGlobalExteriorNumericalAdvectiveFluxRusanov(double safetyFactor, # <<<<<<<<<<<<<<
40587  * int nExteriorElementBoundaries_global,
40588  * int nQuadraturePoints_elementBoundary,
40589  */
40590  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_105calculateGlobalExteriorNumericalAdvectiveFluxRusanov, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4387, __pyx_L1_error)
40591  __Pyx_GOTREF(__pyx_t_2);
40592  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_14, __pyx_t_2) < 0) __PYX_ERR(0, 4387, __pyx_L1_error)
40593  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40594 
40595  /* "cnumericalFlux.pyx":4427
40596  * <double*> flux.data,
40597  * <double*> dflux.data)
40598  * def calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, # <<<<<<<<<<<<<<
40599  * int nExteriorElementBoundaries_global,
40600  * int nQuadraturePoints_elementBoundary,
40601  */
40602  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_107calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4427, __pyx_L1_error)
40603  __Pyx_GOTREF(__pyx_t_2);
40604  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_15, __pyx_t_2) < 0) __PYX_ERR(0, 4427, __pyx_L1_error)
40605  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40606 
40607  /* "cnumericalFlux.pyx":4461
40608  * <double*> lambda_bar.data,
40609  * <double*> flux.data)
40610  * def calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, # <<<<<<<<<<<<<<
40611  * np.ndarray exteriorElementBoundaries,
40612  * np.ndarray elementBoundaryElements,
40613  */
40614  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_109calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4461, __pyx_L1_error)
40615  __Pyx_GOTREF(__pyx_t_2);
40616  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalAdvect_7, __pyx_t_2) < 0) __PYX_ERR(0, 4461, __pyx_L1_error)
40617  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40618 
40619  /* "cnumericalFlux.pyx":4511
40620  * <double*> lambda_bar_element.data,
40621  * <double*> flux.data)
40622  * def calculateExteriorNumericalDiffusiveFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40623  * np.ndarray elementBoundaryElements,
40624  * np.ndarray elementBoundaryLocalElementBoundaries,
40625  */
40626  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_111calculateExteriorNumericalDiffusiveFlux, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4511, __pyx_L1_error)
40627  __Pyx_GOTREF(__pyx_t_2);
40628  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalDiffus, __pyx_t_2) < 0) __PYX_ERR(0, 4511, __pyx_L1_error)
40629  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40630 
40631  /* "cnumericalFlux.pyx":4567
40632  * else:
40633  * exit(1)
40634  * def calculateExteriorNumericalDiffusiveFlux_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
40635  * np.ndarray colind,
40636  * np.ndarray exteriorElementBoundaries,
40637  */
40638  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_113calculateExteriorNumericalDiffusiveFlux_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4567, __pyx_L1_error)
40639  __Pyx_GOTREF(__pyx_t_2);
40640  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalDiffus_2, __pyx_t_2) < 0) __PYX_ERR(0, 4567, __pyx_L1_error)
40641  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40642 
40643  /* "cnumericalFlux.pyx":4627
40644  * <double*> penalty.data,
40645  * <double*> flux.data)
40646  * def calculateGlobalExteriorNumericalDiffusiveFlux(int scale_penalty, # <<<<<<<<<<<<<<
40647  * double penalty_floor,
40648  * int nExteriorElementBoundaries_global,
40649  */
40650  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_115calculateGlobalExteriorNumericalDiffusiveFlux, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4627, __pyx_L1_error)
40651  __Pyx_GOTREF(__pyx_t_2);
40652  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_16, __pyx_t_2) < 0) __PYX_ERR(0, 4627, __pyx_L1_error)
40653  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40654 
40655  /* "cnumericalFlux.pyx":4664
40656  * <double*> flux.data)
40657  *
40658  * def calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
40659  * np.ndarray colind,
40660  * np.ndarray exteriorElementBoundaries,
40661  */
40662  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_117calculateExteriorNumericalDiffusiveFluxWithUpwinding_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4664, __pyx_L1_error)
40663  __Pyx_GOTREF(__pyx_t_2);
40664  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalDiffus_3, __pyx_t_2) < 0) __PYX_ERR(0, 4664, __pyx_L1_error)
40665  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40666 
40667  /* "cnumericalFlux.pyx":4705
40668  * exit(1)
40669  *
40670  * def calculateGlobalExteriorNumericalDiffusiveFlux_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
40671  * np.ndarray colind,
40672  * np.ndarray exteriorElementBoundaries,
40673  */
40674  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_119calculateGlobalExteriorNumericalDiffusiveFlux_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4705, __pyx_L1_error)
40675  __Pyx_GOTREF(__pyx_t_2);
40676  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_17, __pyx_t_2) < 0) __PYX_ERR(0, 4705, __pyx_L1_error)
40677  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40678 
40679  /* "cnumericalFlux.pyx":4743
40680  * <double*> penalty.data,
40681  * <double*> flux.data)
40682  * def calculateExteriorNumericalDiffusiveFlux_free(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40683  * np.ndarray elementBoundaryElements,
40684  * np.ndarray elementBoundaryLocalElementBoundaries,
40685  */
40686  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_121calculateExteriorNumericalDiffusiveFlux_free, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4743, __pyx_L1_error)
40687  __Pyx_GOTREF(__pyx_t_2);
40688  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalDiffus_4, __pyx_t_2) < 0) __PYX_ERR(0, 4743, __pyx_L1_error)
40689  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40690 
40691  /* "cnumericalFlux.pyx":4793
40692  * else:
40693  * exit(1)
40694  * def calculateExteriorNumericalDiffusiveFlux_free_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
40695  * np.ndarray colind,
40696  * np.ndarray exteriorElementBoundaries,
40697  */
40698  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_123calculateExteriorNumericalDiffusiveFlux_free_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4793, __pyx_L1_error)
40699  __Pyx_GOTREF(__pyx_t_2);
40700  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalDiffus_5, __pyx_t_2) < 0) __PYX_ERR(0, 4793, __pyx_L1_error)
40701  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40702 
40703  /* "cnumericalFlux.pyx":4849
40704  * else:
40705  * exit(0)
40706  * def calculateGlobalExteriorNumericalDiffusiveFlux_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40707  * int nQuadraturePoints_elementBoundary,
40708  * int nSpace,
40709  */
40710  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_125calculateGlobalExteriorNumericalDiffusiveFlux_free, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4849, __pyx_L1_error)
40711  __Pyx_GOTREF(__pyx_t_2);
40712  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_18, __pyx_t_2) < 0) __PYX_ERR(0, 4849, __pyx_L1_error)
40713  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40714 
40715  /* "cnumericalFlux.pyx":4881
40716  * <double*> penalty.data,
40717  * <double*> flux.data)
40718  * def calculateGlobalExteriorNumericalDiffusiveFlux_free_sd(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40719  * int nQuadraturePoints_elementBoundary,
40720  * int nSpace,
40721  */
40722  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_127calculateGlobalExteriorNumericalDiffusiveFlux_free_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4881, __pyx_L1_error)
40723  __Pyx_GOTREF(__pyx_t_2);
40724  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_19, __pyx_t_2) < 0) __PYX_ERR(0, 4881, __pyx_L1_error)
40725  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40726 
40727  /* "cnumericalFlux.pyx":4917
40728  * <double*> penalty.data,
40729  * <double*> flux.data)
40730  * def updateExteriorNumericalDiffusiveFluxJacobian(np.ndarray l2g, # <<<<<<<<<<<<<<
40731  * np.ndarray exteriorElementBoundaries,
40732  * np.ndarray elementBoundaryElements,
40733  */
40734  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_129updateExteriorNumericalDiffusiveFluxJacobian, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4917, __pyx_L1_error)
40735  __Pyx_GOTREF(__pyx_t_2);
40736  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateExteriorNumericalDiffusive_3, __pyx_t_2) < 0) __PYX_ERR(0, 4917, __pyx_L1_error)
40737  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40738 
40739  /* "cnumericalFlux.pyx":4978
40740  * else:
40741  * exit(1)
40742  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian(int scale_penalty, # <<<<<<<<<<<<<<
40743  * double penalty_floor,
40744  * int nExteriorElementBoundaries_global,
40745  */
40746  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_131updateGlobalExteriorNumericalDiffusiveFluxJacobian, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4978, __pyx_L1_error)
40747  __Pyx_GOTREF(__pyx_t_2);
40748  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateGlobalExteriorNumericalDif, __pyx_t_2) < 0) __PYX_ERR(0, 4978, __pyx_L1_error)
40749  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40750 
40751  /* "cnumericalFlux.pyx":5018
40752  * <double*> penalty.data,
40753  * <double*> fluxJacobian.data)
40754  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd(int scale_penalty, # <<<<<<<<<<<<<<
40755  * double penalty_floor,
40756  * int nExteriorElementBoundaries_global,
40757  */
40758  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_133updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5018, __pyx_L1_error)
40759  __Pyx_GOTREF(__pyx_t_2);
40760  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateGlobalExteriorNumericalDif_2, __pyx_t_2) < 0) __PYX_ERR(0, 5018, __pyx_L1_error)
40761  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40762 
40763  /* "cnumericalFlux.pyx":5062
40764  * <double*> penalty.data,
40765  * <double*> fluxJacobian.data)
40766  * def updateExteriorNumericalDiffusiveFluxJacobian_free(np.ndarray l2g, # <<<<<<<<<<<<<<
40767  * np.ndarray exteriorElementBoundaries,
40768  * np.ndarray elementBoundaryElements,
40769  */
40770  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_135updateExteriorNumericalDiffusiveFluxJacobian_free, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5062, __pyx_L1_error)
40771  __Pyx_GOTREF(__pyx_t_2);
40772  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateExteriorNumericalDiffusive_4, __pyx_t_2) < 0) __PYX_ERR(0, 5062, __pyx_L1_error)
40773  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40774 
40775  /* "cnumericalFlux.pyx":5117
40776  * else:
40777  * exit(1)
40778  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40779  * int nQuadraturePoints_elementBoundary,
40780  * int nDOF_trial_element,
40781  */
40782  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_137updateGlobalExteriorNumericalDiffusiveFluxJacobian_free, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5117, __pyx_L1_error)
40783  __Pyx_GOTREF(__pyx_t_2);
40784  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateGlobalExteriorNumericalDif_3, __pyx_t_2) < 0) __PYX_ERR(0, 5117, __pyx_L1_error)
40785  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40786 
40787  /* "cnumericalFlux.pyx":5153
40788  * <double*> penalty.data,
40789  * <double*> fluxJacobian.data)
40790  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40791  * int nQuadraturePoints_elementBoundary,
40792  * int nDOF_trial_element,
40793  */
40794  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_139updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5153, __pyx_L1_error)
40795  __Pyx_GOTREF(__pyx_t_2);
40796  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateGlobalExteriorNumericalDif_4, __pyx_t_2) < 0) __PYX_ERR(0, 5153, __pyx_L1_error)
40797  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40798 
40799  /* "cnumericalFlux.pyx":5193
40800  * <double*> penalty.data,
40801  * <double*> fluxJacobian.data)
40802  * def calculateGlobalExteriorNumericalAdvectiveFlux_NoBC(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40803  * int nQuadraturePoints_elementBoundary,
40804  * int nSpace,
40805  */
40806  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_141calculateGlobalExteriorNumericalAdvectiveFlux_NoBC, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5193, __pyx_L1_error)
40807  __Pyx_GOTREF(__pyx_t_2);
40808  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_20, __pyx_t_2) < 0) __PYX_ERR(0, 5193, __pyx_L1_error)
40809  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40810 
40811  /* "cnumericalFlux.pyx":5217
40812  * <double*> flux.data,
40813  * <double*> dflux_left.data)
40814  * def calculateGlobalExteriorNumericalAdvectiveFlux(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40815  * int nQuadraturePoints_elementBoundary,
40816  * int nSpace,
40817  */
40818  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_143calculateGlobalExteriorNumericalAdvectiveFlux, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5217, __pyx_L1_error)
40819  __Pyx_GOTREF(__pyx_t_2);
40820  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_21, __pyx_t_2) < 0) __PYX_ERR(0, 5217, __pyx_L1_error)
40821  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40822 
40823  /* "cnumericalFlux.pyx":5251
40824  * <double*> flux.data,
40825  * <double*> dflux.data)
40826  * def calculateExteriorNumericalAdvectiveFlux_free(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40827  * np.ndarray elementBoundaryElements,
40828  * np.ndarray elementBoundaryLocalElementBoundaries,
40829  */
40830  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_145calculateExteriorNumericalAdvectiveFlux_free, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5251, __pyx_L1_error)
40831  __Pyx_GOTREF(__pyx_t_2);
40832  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalAdvect_8, __pyx_t_2) < 0) __PYX_ERR(0, 5251, __pyx_L1_error)
40833  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40834 
40835  /* "cnumericalFlux.pyx":5303
40836  * <double*> dflux.data)
40837  *
40838  * def calculateGlobalExteriorNumericalAdvectiveFlux_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40839  * int nQuadraturePoints_elementBoundary,
40840  * int nSpace,
40841  */
40842  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_147calculateGlobalExteriorNumericalAdvectiveFlux_free, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5303, __pyx_L1_error)
40843  __Pyx_GOTREF(__pyx_t_2);
40844  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_22, __pyx_t_2) < 0) __PYX_ERR(0, 5303, __pyx_L1_error)
40845  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40846 
40847  /* "cnumericalFlux.pyx":5337
40848  * <double*> flux.data,
40849  * <double*> dflux.data)
40850  * def calculateExteriorNumericalAdvectiveFluxStokesP2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40851  * np.ndarray elementBoundaryElements,
40852  * np.ndarray elementBoundaryLocalElementBoundaries,
40853  */
40854  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_149calculateExteriorNumericalAdvectiveFluxStokesP2D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5337, __pyx_L1_error)
40855  __Pyx_GOTREF(__pyx_t_2);
40856  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalAdvect_9, __pyx_t_2) < 0) __PYX_ERR(0, 5337, __pyx_L1_error)
40857  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40858 
40859  /* "cnumericalFlux.pyx":5418
40860  * <double*> dfluxpu_dp.data,
40861  * <double*> dfluxpv_dp.data)
40862  * def calculateExteriorNumericalAdvectiveFluxNavierStokes2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40863  * np.ndarray elementBoundaryElements,
40864  * np.ndarray elementBoundaryLocalElementBoundaries,
40865  */
40866  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_151calculateExteriorNumericalAdvectiveFluxNavierStokes2D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5418, __pyx_L1_error)
40867  __Pyx_GOTREF(__pyx_t_2);
40868  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalAdvect_10, __pyx_t_2) < 0) __PYX_ERR(0, 5418, __pyx_L1_error)
40869  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40870 
40871  /* "cnumericalFlux.pyx":5533
40872  * <double*> dflux_vmom_dv.data,
40873  * <double*> velocity.data)
40874  * def calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40875  * int nQuadraturePoints_elementBoundary,
40876  * int nSpace,
40877  */
40878  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_153calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5533, __pyx_L1_error)
40879  __Pyx_GOTREF(__pyx_t_2);
40880  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_23, __pyx_t_2) < 0) __PYX_ERR(0, 5533, __pyx_L1_error)
40881  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40882 
40883  /* "cnumericalFlux.pyx":5613
40884  * <double*> dflux_vmom_dv.data,
40885  * <double*> velocity.data)
40886  * def calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40887  * int nQuadraturePoints_elementBoundary,
40888  * int nSpace,
40889  */
40890  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_155calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5613, __pyx_L1_error)
40891  __Pyx_GOTREF(__pyx_t_2);
40892  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_24, __pyx_t_2) < 0) __PYX_ERR(0, 5613, __pyx_L1_error)
40893  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40894 
40895  /* "cnumericalFlux.pyx":5725
40896  * <double*> dflux_wmom_dw.data,
40897  * <double*> velocity.data)
40898  * def calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40899  * int nQuadraturePoints_elementBoundary,
40900  * int nSpace,
40901  */
40902  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_157calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5725, __pyx_L1_error)
40903  __Pyx_GOTREF(__pyx_t_2);
40904  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_25, __pyx_t_2) < 0) __PYX_ERR(0, 5725, __pyx_L1_error)
40905  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40906 
40907  /* "cnumericalFlux.pyx":5779
40908  * <double*> dfluxpu_dp.data,
40909  * <double*> dfluxpv_dp.data)
40910  * def calculateExteriorNumericalAdvectiveFluxStokesP3D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40911  * np.ndarray elementBoundaryElements,
40912  * np.ndarray elementBoundaryLocalElementBoundaries,
40913  */
40914  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_159calculateExteriorNumericalAdvectiveFluxStokesP3D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5779, __pyx_L1_error)
40915  __Pyx_GOTREF(__pyx_t_2);
40916  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalAdvect_11, __pyx_t_2) < 0) __PYX_ERR(0, 5779, __pyx_L1_error)
40917  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40918 
40919  /* "cnumericalFlux.pyx":5884
40920  * <double*> dfluxpv_dp.data,
40921  * <double*> dfluxpw_dp.data)
40922  * def calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40923  * int nQuadraturePoints_elementBoundary,
40924  * int nSpace,
40925  */
40926  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_161calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5884, __pyx_L1_error)
40927  __Pyx_GOTREF(__pyx_t_2);
40928  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_26, __pyx_t_2) < 0) __PYX_ERR(0, 5884, __pyx_L1_error)
40929  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40930 
40931  /* "cnumericalFlux.pyx":5954
40932  * <double*> dfluxpv_dp.data,
40933  * <double*> dfluxpw_dp.data)
40934  * def calculateExteriorNumericalAdvectiveFlux_average(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40935  * np.ndarray elementBoundaryElements,
40936  * np.ndarray elementBoundaryLocalElementBoundaries,
40937  */
40938  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_163calculateExteriorNumericalAdvectiveFlux_average, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5954, __pyx_L1_error)
40939  __Pyx_GOTREF(__pyx_t_2);
40940  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalAdvect_12, __pyx_t_2) < 0) __PYX_ERR(0, 5954, __pyx_L1_error)
40941  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40942 
40943  /* "cnumericalFlux.pyx":6005
40944  * <double*> flux.data,
40945  * <double*> dflux.data)
40946  * def calculateGlobalExteriorNumericalAdvectiveFlux_average(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40947  * int nQuadraturePoints_elementBoundary,
40948  * int nSpace,
40949  */
40950  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_165calculateGlobalExteriorNumericalAdvectiveFlux_average, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6005, __pyx_L1_error)
40951  __Pyx_GOTREF(__pyx_t_2);
40952  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_27, __pyx_t_2) < 0) __PYX_ERR(0, 6005, __pyx_L1_error)
40953  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40954 
40955  /* "cnumericalFlux.pyx":6039
40956  * <double*> flux.data,
40957  * <double*> dflux.data)
40958  * def updateExteriorNumericalAdvectiveFluxJacobian_free(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40959  * np.ndarray elementBoundaryElements,
40960  * np.ndarray elementBoundaryLocalElementBoundaries,
40961  */
40962  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_167updateExteriorNumericalAdvectiveFluxJacobian_free, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6039, __pyx_L1_error)
40963  __Pyx_GOTREF(__pyx_t_2);
40964  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateExteriorNumericalAdvective_2, __pyx_t_2) < 0) __PYX_ERR(0, 6039, __pyx_L1_error)
40965  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40966 
40967  /* "cnumericalFlux.pyx":6069
40968  * <double*> v.data,
40969  * <double*> fluxJacobian.data)
40970  * def updateGlobalExteriorNumericalAdvectiveFluxJacobian_free(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
40971  * int nQuadraturePoints_elementBoundary,
40972  * int nDOF_trial_element,
40973  */
40974  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_169updateGlobalExteriorNumericalAdvectiveFluxJacobian_free, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6069, __pyx_L1_error)
40975  __Pyx_GOTREF(__pyx_t_2);
40976  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateGlobalExteriorNumericalAdv_2, __pyx_t_2) < 0) __PYX_ERR(0, 6069, __pyx_L1_error)
40977  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40978 
40979  /* "cnumericalFlux.pyx":6089
40980  * <double*> v.data,
40981  * <double*> fluxJacobian.data)
40982  * def calculateExteriorNumericalDiffusiveFlux_LDG_upwind(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
40983  * np.ndarray elementBoundaryElements,
40984  * np.ndarray elementBoundaryLocalElementBoundaries,
40985  */
40986  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_171calculateExteriorNumericalDiffusiveFlux_LDG_upwind, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6089, __pyx_L1_error)
40987  __Pyx_GOTREF(__pyx_t_2);
40988  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalDiffus_6, __pyx_t_2) < 0) __PYX_ERR(0, 6089, __pyx_L1_error)
40989  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
40990 
40991  /* "cnumericalFlux.pyx":6132
40992  * <double*> penalty.data,
40993  * <double*> flux.data)
40994  * def calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
40995  * np.ndarray colind,
40996  * np.ndarray exteriorElementBoundaries,
40997  */
40998  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_173calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6132, __pyx_L1_error)
40999  __Pyx_GOTREF(__pyx_t_2);
41000  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorNumericalDiffus_7, __pyx_t_2) < 0) __PYX_ERR(0, 6132, __pyx_L1_error)
41001  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41002 
41003  /* "cnumericalFlux.pyx":6181
41004  * <double*> penalty.data,
41005  * <double*> flux.data)
41006  * def calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
41007  * int nElementBoundaries_element,
41008  * int nQuadraturePoints_elementBoundary,
41009  */
41010  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_175calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6181, __pyx_L1_error)
41011  __Pyx_GOTREF(__pyx_t_2);
41012  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_28, __pyx_t_2) < 0) __PYX_ERR(0, 6181, __pyx_L1_error)
41013  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41014 
41015  /* "cnumericalFlux.pyx":6211
41016  * <double*> penalty.data,
41017  * <double*> flux.data)
41018  * def calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
41019  * int nElementBoundaries_element,
41020  * int nQuadraturePoints_elementBoundary,
41021  */
41022  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_177calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6211, __pyx_L1_error)
41023  __Pyx_GOTREF(__pyx_t_2);
41024  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_29, __pyx_t_2) < 0) __PYX_ERR(0, 6211, __pyx_L1_error)
41025  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41026 
41027  /* "cnumericalFlux.pyx":6245
41028  * <double*> penalty.data,
41029  * <double*> flux.data)
41030  * def updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
41031  * np.ndarray exteriorElementBoundaries,
41032  * np.ndarray elementBoundaryElements,
41033  */
41034  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_179updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6245, __pyx_L1_error)
41035  __Pyx_GOTREF(__pyx_t_2);
41036  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateExteriorNumericalDiffusive_5, __pyx_t_2) < 0) __PYX_ERR(0, 6245, __pyx_L1_error)
41037  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41038 
41039  /* "cnumericalFlux.pyx":6303
41040  * <double*> fluxJacobian_eb.data)
41041  *
41042  * def updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
41043  * np.ndarray rowptr,
41044  * np.ndarray colind,
41045  */
41046  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_181updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6303, __pyx_L1_error)
41047  __Pyx_GOTREF(__pyx_t_2);
41048  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateExteriorNumericalDiffusive_6, __pyx_t_2) < 0) __PYX_ERR(0, 6303, __pyx_L1_error)
41049  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41050 
41051  /* "cnumericalFlux.pyx":6366
41052  * <double*> fluxJacobian.data,
41053  * <double*> fluxJacobian_eb.data)
41054  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
41055  * int nExteriorElementBoundaries_global,
41056  * int nElementBoundaries_element,
41057  */
41058  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_183updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6366, __pyx_L1_error)
41059  __Pyx_GOTREF(__pyx_t_2);
41060  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateGlobalExteriorNumericalDif_5, __pyx_t_2) < 0) __PYX_ERR(0, 6366, __pyx_L1_error)
41061  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41062 
41063  /* "cnumericalFlux.pyx":6406
41064  * <double*> fluxJacobian_exterior.data,
41065  * <double*> fluxJacobian_eb.data)
41066  * def updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(np.ndarray isDiffusiveFluxBoundary, # <<<<<<<<<<<<<<
41067  * int nExteriorElementBoundaries_global,
41068  * int nElementBoundaries_element,
41069  */
41070  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_185updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6406, __pyx_L1_error)
41071  __Pyx_GOTREF(__pyx_t_2);
41072  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateGlobalExteriorNumericalDif_6, __pyx_t_2) < 0) __PYX_ERR(0, 6406, __pyx_L1_error)
41073  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41074 
41075  /* "cnumericalFlux.pyx":6450
41076  * <double*> fluxJacobian_exterior.data,
41077  * <double*> fluxJacobian_eb.data)
41078  * def calculateExteriorLesaintRaviartNumericalFlux(int speedEvalFlag, # <<<<<<<<<<<<<<
41079  * np.ndarray exteriorElementBoundaries,
41080  * np.ndarray elementBoundaryElements,
41081  */
41082  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_187calculateExteriorLesaintRaviartNumericalFlux, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6450, __pyx_L1_error)
41083  __Pyx_GOTREF(__pyx_t_2);
41084  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateExteriorLesaintRaviartN, __pyx_t_2) < 0) __PYX_ERR(0, 6450, __pyx_L1_error)
41085  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41086 
41087  /* "cnumericalFlux.pyx":6504
41088  * <double*> flux.data,
41089  * <double*> dflux.data)
41090  * def calculateGlobalExteriorLesaintRaviartNumericalFlux(int nExteriorElementBoundaries_global, # <<<<<<<<<<<<<<
41091  * int nQuadraturePoints_elementBoundary,
41092  * int nSpace,
41093  */
41094  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_189calculateGlobalExteriorLesaintRaviartNumericalFlux, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6504, __pyx_L1_error)
41095  __Pyx_GOTREF(__pyx_t_2);
41096  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorLesaintRa, __pyx_t_2) < 0) __PYX_ERR(0, 6504, __pyx_L1_error)
41097  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41098 
41099  /* "cnumericalFlux.pyx":6540
41100  * <double*> flux.data,
41101  * <double*> dflux.data)
41102  * def calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
41103  * np.ndarray elementBoundaryElements,
41104  * np.ndarray elementBoundaryLocalElementBoundaries,
41105  */
41106  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_191calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6540, __pyx_L1_error)
41107  __Pyx_GOTREF(__pyx_t_2);
41108  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_30, __pyx_t_2) < 0) __PYX_ERR(0, 6540, __pyx_L1_error)
41109  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41110 
41111  /* "cnumericalFlux.pyx":6602
41112  * else:
41113  * exit(1)
41114  * def calculateGlobalExteriorNumericalFluxDarcySplitPressure(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
41115  * np.ndarray elementBoundaryElements,
41116  * np.ndarray elementBoundaryLocalElementBoundaries,
41117  */
41118  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_193calculateGlobalExteriorNumericalFluxDarcySplitPressure, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6602, __pyx_L1_error)
41119  __Pyx_GOTREF(__pyx_t_2);
41120  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_31, __pyx_t_2) < 0) __PYX_ERR(0, 6602, __pyx_L1_error)
41121  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41122 
41123  /* "cnumericalFlux.pyx":6638
41124  * else:
41125  * exit(1)
41126  * def calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
41127  * np.ndarray colind,
41128  * np.ndarray exteriorElementBoundaries,
41129  */
41130  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_195calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6638, __pyx_L1_error)
41131  __Pyx_GOTREF(__pyx_t_2);
41132  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_32, __pyx_t_2) < 0) __PYX_ERR(0, 6638, __pyx_L1_error)
41133  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41134 
41135  /* "cnumericalFlux.pyx":6678
41136  * else:
41137  * exit(1)
41138  * def updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
41139  * np.ndarray colind,
41140  * np.ndarray l2g,
41141  */
41142  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_197updateExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6678, __pyx_L1_error)
41143  __Pyx_GOTREF(__pyx_t_2);
41144  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateExteriorNumericalDiffusive_7, __pyx_t_2) < 0) __PYX_ERR(0, 6678, __pyx_L1_error)
41145  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41146 
41147  /* "cnumericalFlux.pyx":6723
41148  * else:
41149  * exit(1)
41150  * def updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(int scale_penalty, # <<<<<<<<<<<<<<
41151  * double penalty_floor,
41152  * int nExteriorElementBoundaries_global,
41153  */
41154  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_199updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6723, __pyx_L1_error)
41155  __Pyx_GOTREF(__pyx_t_2);
41156  if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateGlobalExteriorNumericalDif_7, __pyx_t_2) < 0) __PYX_ERR(0, 6723, __pyx_L1_error)
41157  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41158 
41159  /* "cnumericalFlux.pyx":6769
41160  * <double*> penalty.data,
41161  * <double*> fluxJacobian.data)
41162  * def calculateGlobalExteriorNumericalAdvectiveFluxStokes2D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
41163  * np.ndarray elementBoundaryElements,
41164  * np.ndarray elementBoundaryLocalElementBoundaries,
41165  */
41166  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_201calculateGlobalExteriorNumericalAdvectiveFluxStokes2D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6769, __pyx_L1_error)
41167  __Pyx_GOTREF(__pyx_t_2);
41168  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_33, __pyx_t_2) < 0) __PYX_ERR(0, 6769, __pyx_L1_error)
41169  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41170 
41171  /* "cnumericalFlux.pyx":6814
41172  * <double*> dflux_vmom_dp.data,
41173  * <double*> velocity.data)
41174  * def calculateGlobalExteriorNumericalAdvectiveFluxStokes3D(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
41175  * np.ndarray elementBoundaryElements,
41176  * np.ndarray elementBoundaryLocalElementBoundaries,
41177  */
41178  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_203calculateGlobalExteriorNumericalAdvectiveFluxStokes3D, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6814, __pyx_L1_error)
41179  __Pyx_GOTREF(__pyx_t_2);
41180  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calculateGlobalExteriorNumerical_34, __pyx_t_2) < 0) __PYX_ERR(0, 6814, __pyx_L1_error)
41181  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41182 
41183  /* "cnumericalFlux.pyx":6869
41184  * <double*> dflux_wmom_dp.data,
41185  * <double*> velocity.data)
41186  * def applySeepageFace(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
41187  * np.ndarray elementBoundaryElements,
41188  * np.ndarray elementBoundaryLocalElementBoundaries,
41189  */
41190  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_205applySeepageFace, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6869, __pyx_L1_error)
41191  __Pyx_GOTREF(__pyx_t_2);
41192  if (PyDict_SetItem(__pyx_d, __pyx_n_s_applySeepageFace, __pyx_t_2) < 0) __PYX_ERR(0, 6869, __pyx_L1_error)
41193  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41194 
41195  /* "cnumericalFlux.pyx":6898
41196  * <double*> advectiveFlux.data,
41197  * <double*> diffusiveFlux.data)
41198  * def applySeepageFaceJacobian(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
41199  * np.ndarray elementBoundaryElements,
41200  * np.ndarray elementBoundaryLocalElementBoundaries,
41201  */
41202  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14cnumericalFlux_207applySeepageFaceJacobian, NULL, __pyx_n_s_cnumericalFlux); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6898, __pyx_L1_error)
41203  __Pyx_GOTREF(__pyx_t_2);
41204  if (PyDict_SetItem(__pyx_d, __pyx_n_s_applySeepageFaceJacobian, __pyx_t_2) < 0) __PYX_ERR(0, 6898, __pyx_L1_error)
41205  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41206 
41207  /* "cnumericalFlux.pyx":1
41208  * # A type of -*- python -*- file # <<<<<<<<<<<<<<
41209  * from sys import exit
41210  * import numpy as np
41211  */
41212  __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error)
41213  __Pyx_GOTREF(__pyx_t_2);
41214  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
41215  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
41216 
41217  /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":1014
41218  *
41219  *
41220  * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<<
41221  * """
41222  * returns the unit part of the dtype for a numpy datetime64 object.
41223  */
41224 
41225  /*--- Wrapped vars code ---*/
41226 
41227  goto __pyx_L0;
41228  __pyx_L1_error:;
41229  __Pyx_XDECREF(__pyx_t_1);
41230  __Pyx_XDECREF(__pyx_t_2);
41231  if (__pyx_m) {
41232  if (__pyx_d) {
41233  __Pyx_AddTraceback("init cnumericalFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
41234  }
41235  Py_CLEAR(__pyx_m);
41236  } else if (!PyErr_Occurred()) {
41237  PyErr_SetString(PyExc_ImportError, "init cnumericalFlux");
41238  }
41239  __pyx_L0:;
41240  __Pyx_RefNannyFinishContext();
41241  #if CYTHON_PEP489_MULTI_PHASE_INIT
41242  return (__pyx_m != NULL) ? 0 : -1;
41243  #elif PY_MAJOR_VERSION >= 3
41244  return __pyx_m;
41245  #else
41246  return;
41247  #endif
41248 }
41249 
41250 /* --- Runtime support code --- */
41251 /* Refnanny */
41252 #if CYTHON_REFNANNY
41253 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
41254  PyObject *m = NULL, *p = NULL;
41255  void *r = NULL;
41256  m = PyImport_ImportModule(modname);
41257  if (!m) goto end;
41258  p = PyObject_GetAttrString(m, "RefNannyAPI");
41259  if (!p) goto end;
41260  r = PyLong_AsVoidPtr(p);
41261 end:
41262  Py_XDECREF(p);
41263  Py_XDECREF(m);
41264  return (__Pyx_RefNannyAPIStruct *)r;
41265 }
41266 #endif
41267 
41268 /* RaiseArgTupleInvalid */
41269 static void __Pyx_RaiseArgtupleInvalid(
41270  const char* func_name,
41271  int exact,
41272  Py_ssize_t num_min,
41273  Py_ssize_t num_max,
41274  Py_ssize_t num_found)
41275 {
41276  Py_ssize_t num_expected;
41277  const char *more_or_less;
41278  if (num_found < num_min) {
41279  num_expected = num_min;
41280  more_or_less = "at least";
41281  } else {
41282  num_expected = num_max;
41283  more_or_less = "at most";
41284  }
41285  if (exact) {
41286  more_or_less = "exactly";
41287  }
41288  PyErr_Format(PyExc_TypeError,
41289  "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
41290  func_name, more_or_less, num_expected,
41291  (num_expected == 1) ? "" : "s", num_found);
41292 }
41293 
41294 /* RaiseDoubleKeywords */
41295 static void __Pyx_RaiseDoubleKeywordsError(
41296  const char* func_name,
41297  PyObject* kw_name)
41298 {
41299  PyErr_Format(PyExc_TypeError,
41300  #if PY_MAJOR_VERSION >= 3
41301  "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
41302  #else
41303  "%s() got multiple values for keyword argument '%s'", func_name,
41304  PyString_AsString(kw_name));
41305  #endif
41306 }
41307 
41308 /* ParseKeywords */
41309 static int __Pyx_ParseOptionalKeywords(
41310  PyObject *kwds,
41311  PyObject **argnames[],
41312  PyObject *kwds2,
41313  PyObject *values[],
41314  Py_ssize_t num_pos_args,
41315  const char* function_name)
41316 {
41317  PyObject *key = 0, *value = 0;
41318  Py_ssize_t pos = 0;
41319  PyObject*** name;
41320  PyObject*** first_kw_arg = argnames + num_pos_args;
41321  while (PyDict_Next(kwds, &pos, &key, &value)) {
41322  name = first_kw_arg;
41323  while (*name && (**name != key)) name++;
41324  if (*name) {
41325  values[name-argnames] = value;
41326  continue;
41327  }
41328  name = first_kw_arg;
41329  #if PY_MAJOR_VERSION < 3
41330  if (likely(PyString_Check(key))) {
41331  while (*name) {
41332  if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
41333  && _PyString_Eq(**name, key)) {
41334  values[name-argnames] = value;
41335  break;
41336  }
41337  name++;
41338  }
41339  if (*name) continue;
41340  else {
41341  PyObject*** argname = argnames;
41342  while (argname != first_kw_arg) {
41343  if ((**argname == key) || (
41344  (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
41345  && _PyString_Eq(**argname, key))) {
41346  goto arg_passed_twice;
41347  }
41348  argname++;
41349  }
41350  }
41351  } else
41352  #endif
41353  if (likely(PyUnicode_Check(key))) {
41354  while (*name) {
41355  int cmp = (**name == key) ? 0 :
41356  #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
41357  (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
41358  #endif
41359  PyUnicode_Compare(**name, key);
41360  if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
41361  if (cmp == 0) {
41362  values[name-argnames] = value;
41363  break;
41364  }
41365  name++;
41366  }
41367  if (*name) continue;
41368  else {
41369  PyObject*** argname = argnames;
41370  while (argname != first_kw_arg) {
41371  int cmp = (**argname == key) ? 0 :
41372  #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
41373  (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
41374  #endif
41375  PyUnicode_Compare(**argname, key);
41376  if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
41377  if (cmp == 0) goto arg_passed_twice;
41378  argname++;
41379  }
41380  }
41381  } else
41382  goto invalid_keyword_type;
41383  if (kwds2) {
41384  if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
41385  } else {
41386  goto invalid_keyword;
41387  }
41388  }
41389  return 0;
41390 arg_passed_twice:
41391  __Pyx_RaiseDoubleKeywordsError(function_name, key);
41392  goto bad;
41393 invalid_keyword_type:
41394  PyErr_Format(PyExc_TypeError,
41395  "%.200s() keywords must be strings", function_name);
41396  goto bad;
41397 invalid_keyword:
41398  PyErr_Format(PyExc_TypeError,
41399  #if PY_MAJOR_VERSION < 3
41400  "%.200s() got an unexpected keyword argument '%.200s'",
41401  function_name, PyString_AsString(key));
41402  #else
41403  "%s() got an unexpected keyword argument '%U'",
41404  function_name, key);
41405  #endif
41406 bad:
41407  return -1;
41408 }
41409 
41410 /* ArgTypeTest */
41411 static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
41412 {
41413  if (unlikely(!type)) {
41414  PyErr_SetString(PyExc_SystemError, "Missing type object");
41415  return 0;
41416  }
41417  else if (exact) {
41418  #if PY_MAJOR_VERSION == 2
41419  if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
41420  #endif
41421  }
41422  else {
41423  if (likely(__Pyx_TypeCheck(obj, type))) return 1;
41424  }
41425  PyErr_Format(PyExc_TypeError,
41426  "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)",
41427  name, type->tp_name, Py_TYPE(obj)->tp_name);
41428  return 0;
41429 }
41430 
41431 /* PyObjectGetAttrStr */
41432 #if CYTHON_USE_TYPE_SLOTS
41433 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
41434  PyTypeObject* tp = Py_TYPE(obj);
41435  if (likely(tp->tp_getattro))
41436  return tp->tp_getattro(obj, attr_name);
41437 #if PY_MAJOR_VERSION < 3
41438  if (likely(tp->tp_getattr))
41439  return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
41440 #endif
41441  return PyObject_GetAttr(obj, attr_name);
41442 }
41443 #endif
41444 
41445 /* GetItemInt */
41446 static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
41447  PyObject *r;
41448  if (!j) return NULL;
41449  r = PyObject_GetItem(o, j);
41450  Py_DECREF(j);
41451  return r;
41452 }
41453 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
41454  CYTHON_NCP_UNUSED int wraparound,
41455  CYTHON_NCP_UNUSED int boundscheck) {
41456 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
41457  Py_ssize_t wrapped_i = i;
41458  if (wraparound & unlikely(i < 0)) {
41459  wrapped_i += PyList_GET_SIZE(o);
41460  }
41461  if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
41462  PyObject *r = PyList_GET_ITEM(o, wrapped_i);
41463  Py_INCREF(r);
41464  return r;
41465  }
41466  return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
41467 #else
41468  return PySequence_GetItem(o, i);
41469 #endif
41470 }
41471 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
41472  CYTHON_NCP_UNUSED int wraparound,
41473  CYTHON_NCP_UNUSED int boundscheck) {
41474 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
41475  Py_ssize_t wrapped_i = i;
41476  if (wraparound & unlikely(i < 0)) {
41477  wrapped_i += PyTuple_GET_SIZE(o);
41478  }
41479  if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
41480  PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
41481  Py_INCREF(r);
41482  return r;
41483  }
41484  return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
41485 #else
41486  return PySequence_GetItem(o, i);
41487 #endif
41488 }
41489 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
41490  CYTHON_NCP_UNUSED int wraparound,
41491  CYTHON_NCP_UNUSED int boundscheck) {
41492 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
41493  if (is_list || PyList_CheckExact(o)) {
41494  Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
41495  if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
41496  PyObject *r = PyList_GET_ITEM(o, n);
41497  Py_INCREF(r);
41498  return r;
41499  }
41500  }
41501  else if (PyTuple_CheckExact(o)) {
41502  Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
41503  if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
41504  PyObject *r = PyTuple_GET_ITEM(o, n);
41505  Py_INCREF(r);
41506  return r;
41507  }
41508  } else {
41509  PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
41510  if (likely(m && m->sq_item)) {
41511  if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
41512  Py_ssize_t l = m->sq_length(o);
41513  if (likely(l >= 0)) {
41514  i += l;
41515  } else {
41516  if (!PyErr_ExceptionMatches(PyExc_OverflowError))
41517  return NULL;
41518  PyErr_Clear();
41519  }
41520  }
41521  return m->sq_item(o, i);
41522  }
41523  }
41524 #else
41525  if (is_list || PySequence_Check(o)) {
41526  return PySequence_GetItem(o, i);
41527  }
41528 #endif
41529  return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
41530 }
41531 
41532 /* GetBuiltinName */
41533 static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
41534  PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
41535  if (unlikely(!result)) {
41536  PyErr_Format(PyExc_NameError,
41537 #if PY_MAJOR_VERSION >= 3
41538  "name '%U' is not defined", name);
41539 #else
41540  "name '%.200s' is not defined", PyString_AS_STRING(name));
41541 #endif
41542  }
41543  return result;
41544 }
41545 
41546 /* PyDictVersioning */
41547 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
41548 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
41549  PyObject *dict = Py_TYPE(obj)->tp_dict;
41550  return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
41551 }
41552 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
41553  PyObject **dictptr = NULL;
41554  Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
41555  if (offset) {
41556 #if CYTHON_COMPILING_IN_CPYTHON
41557  dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
41558 #else
41559  dictptr = _PyObject_GetDictPtr(obj);
41560 #endif
41561  }
41562  return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
41563 }
41564 static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
41565  PyObject *dict = Py_TYPE(obj)->tp_dict;
41566  if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
41567  return 0;
41568  return obj_dict_version == __Pyx_get_object_dict_version(obj);
41569 }
41570 #endif
41571 
41572 /* GetModuleGlobalName */
41573 #if CYTHON_USE_DICT_VERSIONS
41574 static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
41575 #else
41576 static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
41577 #endif
41578 {
41579  PyObject *result;
41580 #if !CYTHON_AVOID_BORROWED_REFS
41581 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
41582  result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
41583  __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
41584  if (likely(result)) {
41585  return __Pyx_NewRef(result);
41586  } else if (unlikely(PyErr_Occurred())) {
41587  return NULL;
41588  }
41589 #else
41590  result = PyDict_GetItem(__pyx_d, name);
41591  __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
41592  if (likely(result)) {
41593  return __Pyx_NewRef(result);
41594  }
41595 #endif
41596 #else
41597  result = PyObject_GetItem(__pyx_d, name);
41598  __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
41599  if (likely(result)) {
41600  return __Pyx_NewRef(result);
41601  }
41602  PyErr_Clear();
41603 #endif
41604  return __Pyx_GetBuiltinName(name);
41605 }
41606 
41607 /* PyCFunctionFastCall */
41608 #if CYTHON_FAST_PYCCALL
41609 static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) {
41610  PyCFunctionObject *func = (PyCFunctionObject*)func_obj;
41611  PyCFunction meth = PyCFunction_GET_FUNCTION(func);
41612  PyObject *self = PyCFunction_GET_SELF(func);
41613  int flags = PyCFunction_GET_FLAGS(func);
41614  assert(PyCFunction_Check(func));
41615  assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)));
41616  assert(nargs >= 0);
41617  assert(nargs == 0 || args != NULL);
41618  /* _PyCFunction_FastCallDict() must not be called with an exception set,
41619  because it may clear it (directly or indirectly) and so the
41620  caller loses its exception */
41621  assert(!PyErr_Occurred());
41622  if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) {
41623  return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL);
41624  } else {
41625  return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs);
41626  }
41627 }
41628 #endif
41629 
41630 /* PyFunctionFastCall */
41631 #if CYTHON_FAST_PYCALL
41632 static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
41633  PyObject *globals) {
41634  PyFrameObject *f;
41635  PyThreadState *tstate = __Pyx_PyThreadState_Current;
41636  PyObject **fastlocals;
41637  Py_ssize_t i;
41638  PyObject *result;
41639  assert(globals != NULL);
41640  /* XXX Perhaps we should create a specialized
41641  PyFrame_New() that doesn't take locals, but does
41642  take builtins without sanity checking them.
41643  */
41644  assert(tstate != NULL);
41645  f = PyFrame_New(tstate, co, globals, NULL);
41646  if (f == NULL) {
41647  return NULL;
41648  }
41649  fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
41650  for (i = 0; i < na; i++) {
41651  Py_INCREF(*args);
41652  fastlocals[i] = *args++;
41653  }
41654  result = PyEval_EvalFrameEx(f,0);
41655  ++tstate->recursion_depth;
41656  Py_DECREF(f);
41657  --tstate->recursion_depth;
41658  return result;
41659 }
41660 #if 1 || PY_VERSION_HEX < 0x030600B1
41661 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
41662  PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
41663  PyObject *globals = PyFunction_GET_GLOBALS(func);
41664  PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
41665  PyObject *closure;
41666 #if PY_MAJOR_VERSION >= 3
41667  PyObject *kwdefs;
41668 #endif
41669  PyObject *kwtuple, **k;
41670  PyObject **d;
41671  Py_ssize_t nd;
41672  Py_ssize_t nk;
41673  PyObject *result;
41674  assert(kwargs == NULL || PyDict_Check(kwargs));
41675  nk = kwargs ? PyDict_Size(kwargs) : 0;
41676  if (Py_EnterRecursiveCall((char*)" while calling a Python object")) {
41677  return NULL;
41678  }
41679  if (
41680 #if PY_MAJOR_VERSION >= 3
41681  co->co_kwonlyargcount == 0 &&
41682 #endif
41683  likely(kwargs == NULL || nk == 0) &&
41684  co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
41685  if (argdefs == NULL && co->co_argcount == nargs) {
41686  result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
41687  goto done;
41688  }
41689  else if (nargs == 0 && argdefs != NULL
41690  && co->co_argcount == Py_SIZE(argdefs)) {
41691  /* function called with no arguments, but all parameters have
41692  a default value: use default values as arguments .*/
41693  args = &PyTuple_GET_ITEM(argdefs, 0);
41694  result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
41695  goto done;
41696  }
41697  }
41698  if (kwargs != NULL) {
41699  Py_ssize_t pos, i;
41700  kwtuple = PyTuple_New(2 * nk);
41701  if (kwtuple == NULL) {
41702  result = NULL;
41703  goto done;
41704  }
41705  k = &PyTuple_GET_ITEM(kwtuple, 0);
41706  pos = i = 0;
41707  while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
41708  Py_INCREF(k[i]);
41709  Py_INCREF(k[i+1]);
41710  i += 2;
41711  }
41712  nk = i / 2;
41713  }
41714  else {
41715  kwtuple = NULL;
41716  k = NULL;
41717  }
41718  closure = PyFunction_GET_CLOSURE(func);
41719 #if PY_MAJOR_VERSION >= 3
41720  kwdefs = PyFunction_GET_KW_DEFAULTS(func);
41721 #endif
41722  if (argdefs != NULL) {
41723  d = &PyTuple_GET_ITEM(argdefs, 0);
41724  nd = Py_SIZE(argdefs);
41725  }
41726  else {
41727  d = NULL;
41728  nd = 0;
41729  }
41730 #if PY_MAJOR_VERSION >= 3
41731  result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
41732  args, (int)nargs,
41733  k, (int)nk,
41734  d, (int)nd, kwdefs, closure);
41735 #else
41736  result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
41737  args, (int)nargs,
41738  k, (int)nk,
41739  d, (int)nd, closure);
41740 #endif
41741  Py_XDECREF(kwtuple);
41742 done:
41743  Py_LeaveRecursiveCall();
41744  return result;
41745 }
41746 #endif
41747 #endif
41748 
41749 /* PyObjectCall */
41750 #if CYTHON_COMPILING_IN_CPYTHON
41751 static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
41752  PyObject *result;
41753  ternaryfunc call = Py_TYPE(func)->tp_call;
41754  if (unlikely(!call))
41755  return PyObject_Call(func, arg, kw);
41756  if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
41757  return NULL;
41758  result = (*call)(func, arg, kw);
41759  Py_LeaveRecursiveCall();
41760  if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
41761  PyErr_SetString(
41762  PyExc_SystemError,
41763  "NULL result without error in PyObject_Call");
41764  }
41765  return result;
41766 }
41767 #endif
41768 
41769 /* PyObjectCall2Args */
41770 static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
41771  PyObject *args, *result = NULL;
41772  #if CYTHON_FAST_PYCALL
41773  if (PyFunction_Check(function)) {
41774  PyObject *args[2] = {arg1, arg2};
41775  return __Pyx_PyFunction_FastCall(function, args, 2);
41776  }
41777  #endif
41778  #if CYTHON_FAST_PYCCALL
41779  if (__Pyx_PyFastCFunction_Check(function)) {
41780  PyObject *args[2] = {arg1, arg2};
41781  return __Pyx_PyCFunction_FastCall(function, args, 2);
41782  }
41783  #endif
41784  args = PyTuple_New(2);
41785  if (unlikely(!args)) goto done;
41786  Py_INCREF(arg1);
41787  PyTuple_SET_ITEM(args, 0, arg1);
41788  Py_INCREF(arg2);
41789  PyTuple_SET_ITEM(args, 1, arg2);
41790  Py_INCREF(function);
41791  result = __Pyx_PyObject_Call(function, args, NULL);
41792  Py_DECREF(args);
41793  Py_DECREF(function);
41794 done:
41795  return result;
41796 }
41797 
41798 /* PyObjectCallMethO */
41799 #if CYTHON_COMPILING_IN_CPYTHON
41800 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
41801  PyObject *self, *result;
41802  PyCFunction cfunc;
41803  cfunc = PyCFunction_GET_FUNCTION(func);
41804  self = PyCFunction_GET_SELF(func);
41805  if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
41806  return NULL;
41807  result = cfunc(self, arg);
41808  Py_LeaveRecursiveCall();
41809  if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
41810  PyErr_SetString(
41811  PyExc_SystemError,
41812  "NULL result without error in PyObject_Call");
41813  }
41814  return result;
41815 }
41816 #endif
41817 
41818 /* PyObjectCallOneArg */
41819 #if CYTHON_COMPILING_IN_CPYTHON
41820 static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
41821  PyObject *result;
41822  PyObject *args = PyTuple_New(1);
41823  if (unlikely(!args)) return NULL;
41824  Py_INCREF(arg);
41825  PyTuple_SET_ITEM(args, 0, arg);
41826  result = __Pyx_PyObject_Call(func, args, NULL);
41827  Py_DECREF(args);
41828  return result;
41829 }
41830 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
41831 #if CYTHON_FAST_PYCALL
41832  if (PyFunction_Check(func)) {
41833  return __Pyx_PyFunction_FastCall(func, &arg, 1);
41834  }
41835 #endif
41836  if (likely(PyCFunction_Check(func))) {
41837  if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
41838  return __Pyx_PyObject_CallMethO(func, arg);
41839 #if CYTHON_FAST_PYCCALL
41840  } else if (__Pyx_PyFastCFunction_Check(func)) {
41841  return __Pyx_PyCFunction_FastCall(func, &arg, 1);
41842 #endif
41843  }
41844  }
41845  return __Pyx__PyObject_CallOneArg(func, arg);
41846 }
41847 #else
41848 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
41849  PyObject *result;
41850  PyObject *args = PyTuple_Pack(1, arg);
41851  if (unlikely(!args)) return NULL;
41852  result = __Pyx_PyObject_Call(func, args, NULL);
41853  Py_DECREF(args);
41854  return result;
41855 }
41856 #endif
41857 
41858 /* PyIntCompare */
41859 static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED long inplace) {
41860  if (op1 == op2) {
41861  Py_RETURN_TRUE;
41862  }
41863  #if PY_MAJOR_VERSION < 3
41864  if (likely(PyInt_CheckExact(op1))) {
41865  const long b = intval;
41866  long a = PyInt_AS_LONG(op1);
41867  if (a == b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
41868  }
41869  #endif
41870  #if CYTHON_USE_PYLONG_INTERNALS
41871  if (likely(PyLong_CheckExact(op1))) {
41872  int unequal;
41873  unsigned long uintval;
41874  Py_ssize_t size = Py_SIZE(op1);
41875  const digit* digits = ((PyLongObject*)op1)->ob_digit;
41876  if (intval == 0) {
41877  if (size == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
41878  } else if (intval < 0) {
41879  if (size >= 0)
41880  Py_RETURN_FALSE;
41881  intval = -intval;
41882  size = -size;
41883  } else {
41884  if (size <= 0)
41885  Py_RETURN_FALSE;
41886  }
41887  uintval = (unsigned long) intval;
41888 #if PyLong_SHIFT * 4 < SIZEOF_LONG*8
41889  if (uintval >> (PyLong_SHIFT * 4)) {
41890  unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
41891  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
41892  } else
41893 #endif
41894 #if PyLong_SHIFT * 3 < SIZEOF_LONG*8
41895  if (uintval >> (PyLong_SHIFT * 3)) {
41896  unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
41897  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
41898  } else
41899 #endif
41900 #if PyLong_SHIFT * 2 < SIZEOF_LONG*8
41901  if (uintval >> (PyLong_SHIFT * 2)) {
41902  unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
41903  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
41904  } else
41905 #endif
41906 #if PyLong_SHIFT * 1 < SIZEOF_LONG*8
41907  if (uintval >> (PyLong_SHIFT * 1)) {
41908  unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
41909  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
41910  } else
41911 #endif
41912  unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
41913  if (unequal == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
41914  }
41915  #endif
41916  if (PyFloat_CheckExact(op1)) {
41917  const long b = intval;
41918  double a = PyFloat_AS_DOUBLE(op1);
41919  if ((double)a == (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
41920  }
41921  return (
41922  PyObject_RichCompare(op1, op2, Py_EQ));
41923 }
41924 
41925 /* GetTopmostException */
41926 #if CYTHON_USE_EXC_INFO_STACK
41927 static _PyErr_StackItem *
41928 __Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
41929 {
41930  _PyErr_StackItem *exc_info = tstate->exc_info;
41931  while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) &&
41932  exc_info->previous_item != NULL)
41933  {
41934  exc_info = exc_info->previous_item;
41935  }
41936  return exc_info;
41937 }
41938 #endif
41939 
41940 /* SaveResetException */
41941 #if CYTHON_FAST_THREAD_STATE
41942 static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
41943  #if CYTHON_USE_EXC_INFO_STACK
41944  _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
41945  *type = exc_info->exc_type;
41946  *value = exc_info->exc_value;
41947  *tb = exc_info->exc_traceback;
41948  #else
41949  *type = tstate->exc_type;
41950  *value = tstate->exc_value;
41951  *tb = tstate->exc_traceback;
41952  #endif
41953  Py_XINCREF(*type);
41954  Py_XINCREF(*value);
41955  Py_XINCREF(*tb);
41956 }
41957 static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
41958  PyObject *tmp_type, *tmp_value, *tmp_tb;
41959  #if CYTHON_USE_EXC_INFO_STACK
41960  _PyErr_StackItem *exc_info = tstate->exc_info;
41961  tmp_type = exc_info->exc_type;
41962  tmp_value = exc_info->exc_value;
41963  tmp_tb = exc_info->exc_traceback;
41964  exc_info->exc_type = type;
41965  exc_info->exc_value = value;
41966  exc_info->exc_traceback = tb;
41967  #else
41968  tmp_type = tstate->exc_type;
41969  tmp_value = tstate->exc_value;
41970  tmp_tb = tstate->exc_traceback;
41971  tstate->exc_type = type;
41972  tstate->exc_value = value;
41973  tstate->exc_traceback = tb;
41974  #endif
41975  Py_XDECREF(tmp_type);
41976  Py_XDECREF(tmp_value);
41977  Py_XDECREF(tmp_tb);
41978 }
41979 #endif
41980 
41981 /* PyErrExceptionMatches */
41982 #if CYTHON_FAST_THREAD_STATE
41983 static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
41984  Py_ssize_t i, n;
41985  n = PyTuple_GET_SIZE(tuple);
41986 #if PY_MAJOR_VERSION >= 3
41987  for (i=0; i<n; i++) {
41988  if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
41989  }
41990 #endif
41991  for (i=0; i<n; i++) {
41992  if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
41993  }
41994  return 0;
41995 }
41996 static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
41997  PyObject *exc_type = tstate->curexc_type;
41998  if (exc_type == err) return 1;
41999  if (unlikely(!exc_type)) return 0;
42000  if (unlikely(PyTuple_Check(err)))
42001  return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
42002  return __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
42003 }
42004 #endif
42005 
42006 /* GetException */
42007 #if CYTHON_FAST_THREAD_STATE
42008 static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
42009 #else
42010 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
42011 #endif
42012 {
42013  PyObject *local_type, *local_value, *local_tb;
42014 #if CYTHON_FAST_THREAD_STATE
42015  PyObject *tmp_type, *tmp_value, *tmp_tb;
42016  local_type = tstate->curexc_type;
42017  local_value = tstate->curexc_value;
42018  local_tb = tstate->curexc_traceback;
42019  tstate->curexc_type = 0;
42020  tstate->curexc_value = 0;
42021  tstate->curexc_traceback = 0;
42022 #else
42023  PyErr_Fetch(&local_type, &local_value, &local_tb);
42024 #endif
42025  PyErr_NormalizeException(&local_type, &local_value, &local_tb);
42026 #if CYTHON_FAST_THREAD_STATE
42027  if (unlikely(tstate->curexc_type))
42028 #else
42029  if (unlikely(PyErr_Occurred()))
42030 #endif
42031  goto bad;
42032  #if PY_MAJOR_VERSION >= 3
42033  if (local_tb) {
42034  if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
42035  goto bad;
42036  }
42037  #endif
42038  Py_XINCREF(local_tb);
42039  Py_XINCREF(local_type);
42040  Py_XINCREF(local_value);
42041  *type = local_type;
42042  *value = local_value;
42043  *tb = local_tb;
42044 #if CYTHON_FAST_THREAD_STATE
42045  #if CYTHON_USE_EXC_INFO_STACK
42046  {
42047  _PyErr_StackItem *exc_info = tstate->exc_info;
42048  tmp_type = exc_info->exc_type;
42049  tmp_value = exc_info->exc_value;
42050  tmp_tb = exc_info->exc_traceback;
42051  exc_info->exc_type = local_type;
42052  exc_info->exc_value = local_value;
42053  exc_info->exc_traceback = local_tb;
42054  }
42055  #else
42056  tmp_type = tstate->exc_type;
42057  tmp_value = tstate->exc_value;
42058  tmp_tb = tstate->exc_traceback;
42059  tstate->exc_type = local_type;
42060  tstate->exc_value = local_value;
42061  tstate->exc_traceback = local_tb;
42062  #endif
42063  Py_XDECREF(tmp_type);
42064  Py_XDECREF(tmp_value);
42065  Py_XDECREF(tmp_tb);
42066 #else
42067  PyErr_SetExcInfo(local_type, local_value, local_tb);
42068 #endif
42069  return 0;
42070 bad:
42071  *type = 0;
42072  *value = 0;
42073  *tb = 0;
42074  Py_XDECREF(local_type);
42075  Py_XDECREF(local_value);
42076  Py_XDECREF(local_tb);
42077  return -1;
42078 }
42079 
42080 /* PyErrFetchRestore */
42081 #if CYTHON_FAST_THREAD_STATE
42082 static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
42083  PyObject *tmp_type, *tmp_value, *tmp_tb;
42084  tmp_type = tstate->curexc_type;
42085  tmp_value = tstate->curexc_value;
42086  tmp_tb = tstate->curexc_traceback;
42087  tstate->curexc_type = type;
42088  tstate->curexc_value = value;
42089  tstate->curexc_traceback = tb;
42090  Py_XDECREF(tmp_type);
42091  Py_XDECREF(tmp_value);
42092  Py_XDECREF(tmp_tb);
42093 }
42094 static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
42095  *type = tstate->curexc_type;
42096  *value = tstate->curexc_value;
42097  *tb = tstate->curexc_traceback;
42098  tstate->curexc_type = 0;
42099  tstate->curexc_value = 0;
42100  tstate->curexc_traceback = 0;
42101 }
42102 #endif
42103 
42104 /* RaiseException */
42105 #if PY_MAJOR_VERSION < 3
42106 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
42107  CYTHON_UNUSED PyObject *cause) {
42108  __Pyx_PyThreadState_declare
42109  Py_XINCREF(type);
42110  if (!value || value == Py_None)
42111  value = NULL;
42112  else
42113  Py_INCREF(value);
42114  if (!tb || tb == Py_None)
42115  tb = NULL;
42116  else {
42117  Py_INCREF(tb);
42118  if (!PyTraceBack_Check(tb)) {
42119  PyErr_SetString(PyExc_TypeError,
42120  "raise: arg 3 must be a traceback or None");
42121  goto raise_error;
42122  }
42123  }
42124  if (PyType_Check(type)) {
42125 #if CYTHON_COMPILING_IN_PYPY
42126  if (!value) {
42127  Py_INCREF(Py_None);
42128  value = Py_None;
42129  }
42130 #endif
42131  PyErr_NormalizeException(&type, &value, &tb);
42132  } else {
42133  if (value) {
42134  PyErr_SetString(PyExc_TypeError,
42135  "instance exception may not have a separate value");
42136  goto raise_error;
42137  }
42138  value = type;
42139  type = (PyObject*) Py_TYPE(type);
42140  Py_INCREF(type);
42141  if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
42142  PyErr_SetString(PyExc_TypeError,
42143  "raise: exception class must be a subclass of BaseException");
42144  goto raise_error;
42145  }
42146  }
42147  __Pyx_PyThreadState_assign
42148  __Pyx_ErrRestore(type, value, tb);
42149  return;
42150 raise_error:
42151  Py_XDECREF(value);
42152  Py_XDECREF(type);
42153  Py_XDECREF(tb);
42154  return;
42155 }
42156 #else
42157 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
42158  PyObject* owned_instance = NULL;
42159  if (tb == Py_None) {
42160  tb = 0;
42161  } else if (tb && !PyTraceBack_Check(tb)) {
42162  PyErr_SetString(PyExc_TypeError,
42163  "raise: arg 3 must be a traceback or None");
42164  goto bad;
42165  }
42166  if (value == Py_None)
42167  value = 0;
42168  if (PyExceptionInstance_Check(type)) {
42169  if (value) {
42170  PyErr_SetString(PyExc_TypeError,
42171  "instance exception may not have a separate value");
42172  goto bad;
42173  }
42174  value = type;
42175  type = (PyObject*) Py_TYPE(value);
42176  } else if (PyExceptionClass_Check(type)) {
42177  PyObject *instance_class = NULL;
42178  if (value && PyExceptionInstance_Check(value)) {
42179  instance_class = (PyObject*) Py_TYPE(value);
42180  if (instance_class != type) {
42181  int is_subclass = PyObject_IsSubclass(instance_class, type);
42182  if (!is_subclass) {
42183  instance_class = NULL;
42184  } else if (unlikely(is_subclass == -1)) {
42185  goto bad;
42186  } else {
42187  type = instance_class;
42188  }
42189  }
42190  }
42191  if (!instance_class) {
42192  PyObject *args;
42193  if (!value)
42194  args = PyTuple_New(0);
42195  else if (PyTuple_Check(value)) {
42196  Py_INCREF(value);
42197  args = value;
42198  } else
42199  args = PyTuple_Pack(1, value);
42200  if (!args)
42201  goto bad;
42202  owned_instance = PyObject_Call(type, args, NULL);
42203  Py_DECREF(args);
42204  if (!owned_instance)
42205  goto bad;
42206  value = owned_instance;
42207  if (!PyExceptionInstance_Check(value)) {
42208  PyErr_Format(PyExc_TypeError,
42209  "calling %R should have returned an instance of "
42210  "BaseException, not %R",
42211  type, Py_TYPE(value));
42212  goto bad;
42213  }
42214  }
42215  } else {
42216  PyErr_SetString(PyExc_TypeError,
42217  "raise: exception class must be a subclass of BaseException");
42218  goto bad;
42219  }
42220  if (cause) {
42221  PyObject *fixed_cause;
42222  if (cause == Py_None) {
42223  fixed_cause = NULL;
42224  } else if (PyExceptionClass_Check(cause)) {
42225  fixed_cause = PyObject_CallObject(cause, NULL);
42226  if (fixed_cause == NULL)
42227  goto bad;
42228  } else if (PyExceptionInstance_Check(cause)) {
42229  fixed_cause = cause;
42230  Py_INCREF(fixed_cause);
42231  } else {
42232  PyErr_SetString(PyExc_TypeError,
42233  "exception causes must derive from "
42234  "BaseException");
42235  goto bad;
42236  }
42237  PyException_SetCause(value, fixed_cause);
42238  }
42239  PyErr_SetObject(type, value);
42240  if (tb) {
42241 #if CYTHON_COMPILING_IN_PYPY
42242  PyObject *tmp_type, *tmp_value, *tmp_tb;
42243  PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
42244  Py_INCREF(tb);
42245  PyErr_Restore(tmp_type, tmp_value, tb);
42246  Py_XDECREF(tmp_tb);
42247 #else
42248  PyThreadState *tstate = __Pyx_PyThreadState_Current;
42249  PyObject* tmp_tb = tstate->curexc_traceback;
42250  if (tb != tmp_tb) {
42251  Py_INCREF(tb);
42252  tstate->curexc_traceback = tb;
42253  Py_XDECREF(tmp_tb);
42254  }
42255 #endif
42256  }
42257 bad:
42258  Py_XDECREF(owned_instance);
42259  return;
42260 }
42261 #endif
42262 
42263 /* TypeImport */
42264 #ifndef __PYX_HAVE_RT_ImportType
42265 #define __PYX_HAVE_RT_ImportType
42266 static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name,
42267  size_t size, enum __Pyx_ImportType_CheckSize check_size)
42268 {
42269  PyObject *result = 0;
42270  char warning[200];
42271  Py_ssize_t basicsize;
42272 #ifdef Py_LIMITED_API
42273  PyObject *py_basicsize;
42274 #endif
42275  result = PyObject_GetAttrString(module, class_name);
42276  if (!result)
42277  goto bad;
42278  if (!PyType_Check(result)) {
42279  PyErr_Format(PyExc_TypeError,
42280  "%.200s.%.200s is not a type object",
42281  module_name, class_name);
42282  goto bad;
42283  }
42284 #ifndef Py_LIMITED_API
42285  basicsize = ((PyTypeObject *)result)->tp_basicsize;
42286 #else
42287  py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
42288  if (!py_basicsize)
42289  goto bad;
42290  basicsize = PyLong_AsSsize_t(py_basicsize);
42291  Py_DECREF(py_basicsize);
42292  py_basicsize = 0;
42293  if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
42294  goto bad;
42295 #endif
42296  if ((size_t)basicsize < size) {
42297  PyErr_Format(PyExc_ValueError,
42298  "%.200s.%.200s size changed, may indicate binary incompatibility. "
42299  "Expected %zd from C header, got %zd from PyObject",
42300  module_name, class_name, size, basicsize);
42301  goto bad;
42302  }
42303  if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) {
42304  PyErr_Format(PyExc_ValueError,
42305  "%.200s.%.200s size changed, may indicate binary incompatibility. "
42306  "Expected %zd from C header, got %zd from PyObject",
42307  module_name, class_name, size, basicsize);
42308  goto bad;
42309  }
42310  else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) {
42311  PyOS_snprintf(warning, sizeof(warning),
42312  "%s.%s size changed, may indicate binary incompatibility. "
42313  "Expected %zd from C header, got %zd from PyObject",
42314  module_name, class_name, size, basicsize);
42315  if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
42316  }
42317  return (PyTypeObject *)result;
42318 bad:
42319  Py_XDECREF(result);
42320  return NULL;
42321 }
42322 #endif
42323 
42324 /* Import */
42325 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
42326  PyObject *empty_list = 0;
42327  PyObject *module = 0;
42328  PyObject *global_dict = 0;
42329  PyObject *empty_dict = 0;
42330  PyObject *list;
42331  #if PY_MAJOR_VERSION < 3
42332  PyObject *py_import;
42333  py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
42334  if (!py_import)
42335  goto bad;
42336  #endif
42337  if (from_list)
42338  list = from_list;
42339  else {
42340  empty_list = PyList_New(0);
42341  if (!empty_list)
42342  goto bad;
42343  list = empty_list;
42344  }
42345  global_dict = PyModule_GetDict(__pyx_m);
42346  if (!global_dict)
42347  goto bad;
42348  empty_dict = PyDict_New();
42349  if (!empty_dict)
42350  goto bad;
42351  {
42352  #if PY_MAJOR_VERSION >= 3
42353  if (level == -1) {
42354  if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
42355  module = PyImport_ImportModuleLevelObject(
42356  name, global_dict, empty_dict, list, 1);
42357  if (!module) {
42358  if (!PyErr_ExceptionMatches(PyExc_ImportError))
42359  goto bad;
42360  PyErr_Clear();
42361  }
42362  }
42363  level = 0;
42364  }
42365  #endif
42366  if (!module) {
42367  #if PY_MAJOR_VERSION < 3
42368  PyObject *py_level = PyInt_FromLong(level);
42369  if (!py_level)
42370  goto bad;
42371  module = PyObject_CallFunctionObjArgs(py_import,
42372  name, global_dict, empty_dict, list, py_level, (PyObject *)NULL);
42373  Py_DECREF(py_level);
42374  #else
42375  module = PyImport_ImportModuleLevelObject(
42376  name, global_dict, empty_dict, list, level);
42377  #endif
42378  }
42379  }
42380 bad:
42381  #if PY_MAJOR_VERSION < 3
42382  Py_XDECREF(py_import);
42383  #endif
42384  Py_XDECREF(empty_list);
42385  Py_XDECREF(empty_dict);
42386  return module;
42387 }
42388 
42389 /* ImportFrom */
42390 static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
42391  PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
42392  if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
42393  PyErr_Format(PyExc_ImportError,
42394  #if PY_MAJOR_VERSION < 3
42395  "cannot import name %.230s", PyString_AS_STRING(name));
42396  #else
42397  "cannot import name %S", name);
42398  #endif
42399  }
42400  return value;
42401 }
42402 
42403 /* CLineInTraceback */
42404 #ifndef CYTHON_CLINE_IN_TRACEBACK
42405 static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) {
42406  PyObject *use_cline;
42407  PyObject *ptype, *pvalue, *ptraceback;
42408 #if CYTHON_COMPILING_IN_CPYTHON
42409  PyObject **cython_runtime_dict;
42410 #endif
42411  if (unlikely(!__pyx_cython_runtime)) {
42412  return c_line;
42413  }
42414  __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
42415 #if CYTHON_COMPILING_IN_CPYTHON
42416  cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
42417  if (likely(cython_runtime_dict)) {
42418  __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
42419  use_cline, *cython_runtime_dict,
42420  __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
42421  } else
42422 #endif
42423  {
42424  PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
42425  if (use_cline_obj) {
42426  use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
42427  Py_DECREF(use_cline_obj);
42428  } else {
42429  PyErr_Clear();
42430  use_cline = NULL;
42431  }
42432  }
42433  if (!use_cline) {
42434  c_line = 0;
42435  (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
42436  }
42437  else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
42438  c_line = 0;
42439  }
42440  __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
42441  return c_line;
42442 }
42443 #endif
42444 
42445 /* CodeObjectCache */
42446 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
42447  int start = 0, mid = 0, end = count - 1;
42448  if (end >= 0 && code_line > entries[end].code_line) {
42449  return count;
42450  }
42451  while (start < end) {
42452  mid = start + (end - start) / 2;
42453  if (code_line < entries[mid].code_line) {
42454  end = mid;
42455  } else if (code_line > entries[mid].code_line) {
42456  start = mid + 1;
42457  } else {
42458  return mid;
42459  }
42460  }
42461  if (code_line <= entries[mid].code_line) {
42462  return mid;
42463  } else {
42464  return mid + 1;
42465  }
42466 }
42467 static PyCodeObject *__pyx_find_code_object(int code_line) {
42468  PyCodeObject* code_object;
42469  int pos;
42470  if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
42471  return NULL;
42472  }
42473  pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
42474  if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
42475  return NULL;
42476  }
42477  code_object = __pyx_code_cache.entries[pos].code_object;
42478  Py_INCREF(code_object);
42479  return code_object;
42480 }
42481 static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
42482  int pos, i;
42483  __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
42484  if (unlikely(!code_line)) {
42485  return;
42486  }
42487  if (unlikely(!entries)) {
42488  entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
42489  if (likely(entries)) {
42490  __pyx_code_cache.entries = entries;
42491  __pyx_code_cache.max_count = 64;
42492  __pyx_code_cache.count = 1;
42493  entries[0].code_line = code_line;
42494  entries[0].code_object = code_object;
42495  Py_INCREF(code_object);
42496  }
42497  return;
42498  }
42499  pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
42500  if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
42501  PyCodeObject* tmp = entries[pos].code_object;
42502  entries[pos].code_object = code_object;
42503  Py_DECREF(tmp);
42504  return;
42505  }
42506  if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
42507  int new_max = __pyx_code_cache.max_count + 64;
42508  entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
42509  __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
42510  if (unlikely(!entries)) {
42511  return;
42512  }
42513  __pyx_code_cache.entries = entries;
42514  __pyx_code_cache.max_count = new_max;
42515  }
42516  for (i=__pyx_code_cache.count; i>pos; i--) {
42517  entries[i] = entries[i-1];
42518  }
42519  entries[pos].code_line = code_line;
42520  entries[pos].code_object = code_object;
42521  __pyx_code_cache.count++;
42522  Py_INCREF(code_object);
42523 }
42524 
42525 /* AddTraceback */
42526 #include "compile.h"
42527 #include "frameobject.h"
42528 #include "traceback.h"
42529 #if PY_VERSION_HEX >= 0x030b00a6
42530  #ifndef Py_BUILD_CORE
42531  #define Py_BUILD_CORE 1
42532  #endif
42533  #include "internal/pycore_frame.h"
42534 #endif
42535 static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
42536  const char *funcname, int c_line,
42537  int py_line, const char *filename) {
42538  PyCodeObject *py_code = NULL;
42539  PyObject *py_funcname = NULL;
42540  #if PY_MAJOR_VERSION < 3
42541  PyObject *py_srcfile = NULL;
42542  py_srcfile = PyString_FromString(filename);
42543  if (!py_srcfile) goto bad;
42544  #endif
42545  if (c_line) {
42546  #if PY_MAJOR_VERSION < 3
42547  py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
42548  if (!py_funcname) goto bad;
42549  #else
42550  py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
42551  if (!py_funcname) goto bad;
42552  funcname = PyUnicode_AsUTF8(py_funcname);
42553  if (!funcname) goto bad;
42554  #endif
42555  }
42556  else {
42557  #if PY_MAJOR_VERSION < 3
42558  py_funcname = PyString_FromString(funcname);
42559  if (!py_funcname) goto bad;
42560  #endif
42561  }
42562  #if PY_MAJOR_VERSION < 3
42563  py_code = __Pyx_PyCode_New(
42564  0,
42565  0,
42566  0,
42567  0,
42568  0,
42569  __pyx_empty_bytes, /*PyObject *code,*/
42570  __pyx_empty_tuple, /*PyObject *consts,*/
42571  __pyx_empty_tuple, /*PyObject *names,*/
42572  __pyx_empty_tuple, /*PyObject *varnames,*/
42573  __pyx_empty_tuple, /*PyObject *freevars,*/
42574  __pyx_empty_tuple, /*PyObject *cellvars,*/
42575  py_srcfile, /*PyObject *filename,*/
42576  py_funcname, /*PyObject *name,*/
42577  py_line,
42578  __pyx_empty_bytes /*PyObject *lnotab*/
42579  );
42580  Py_DECREF(py_srcfile);
42581  #else
42582  py_code = PyCode_NewEmpty(filename, funcname, py_line);
42583  #endif
42584  Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline
42585  return py_code;
42586 bad:
42587  Py_XDECREF(py_funcname);
42588  #if PY_MAJOR_VERSION < 3
42589  Py_XDECREF(py_srcfile);
42590  #endif
42591  return NULL;
42592 }
42593 static void __Pyx_AddTraceback(const char *funcname, int c_line,
42594  int py_line, const char *filename) {
42595  PyCodeObject *py_code = 0;
42596  PyFrameObject *py_frame = 0;
42597  PyThreadState *tstate = __Pyx_PyThreadState_Current;
42598  PyObject *ptype, *pvalue, *ptraceback;
42599  if (c_line) {
42600  c_line = __Pyx_CLineForTraceback(tstate, c_line);
42601  }
42602  py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
42603  if (!py_code) {
42604  __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
42605  py_code = __Pyx_CreateCodeObjectForTraceback(
42606  funcname, c_line, py_line, filename);
42607  if (!py_code) {
42608  /* If the code object creation fails, then we should clear the
42609  fetched exception references and propagate the new exception */
42610  Py_XDECREF(ptype);
42611  Py_XDECREF(pvalue);
42612  Py_XDECREF(ptraceback);
42613  goto bad;
42614  }
42615  __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
42616  __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
42617  }
42618  py_frame = PyFrame_New(
42619  tstate, /*PyThreadState *tstate,*/
42620  py_code, /*PyCodeObject *code,*/
42621  __pyx_d, /*PyObject *globals,*/
42622  0 /*PyObject *locals*/
42623  );
42624  if (!py_frame) goto bad;
42625  __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
42626  PyTraceBack_Here(py_frame);
42627 bad:
42628  Py_XDECREF(py_code);
42629  Py_XDECREF(py_frame);
42630 }
42631 
42632 /* CIntFromPyVerify */
42633 #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
42634  __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
42635 #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
42636  __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
42637 #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
42638  {\
42639  func_type value = func_value;\
42640  if (sizeof(target_type) < sizeof(func_type)) {\
42641  if (unlikely(value != (func_type) (target_type) value)) {\
42642  func_type zero = 0;\
42643  if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
42644  return (target_type) -1;\
42645  if (is_unsigned && unlikely(value < zero))\
42646  goto raise_neg_overflow;\
42647  else\
42648  goto raise_overflow;\
42649  }\
42650  }\
42651  return (target_type) value;\
42652  }
42653 
42654 /* Declarations */
42655 #if CYTHON_CCOMPLEX
42656  #ifdef __cplusplus
42657  static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
42658  return ::std::complex< float >(x, y);
42659  }
42660  #else
42661  static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
42662  return x + y*(__pyx_t_float_complex)_Complex_I;
42663  }
42664  #endif
42665 #else
42666  static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
42667  __pyx_t_float_complex z;
42668  z.real = x;
42669  z.imag = y;
42670  return z;
42671  }
42672 #endif
42673 
42674 /* Arithmetic */
42675 #if CYTHON_CCOMPLEX
42676 #else
42677  static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
42678  return (a.real == b.real) && (a.imag == b.imag);
42679  }
42680  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
42681  __pyx_t_float_complex z;
42682  z.real = a.real + b.real;
42683  z.imag = a.imag + b.imag;
42684  return z;
42685  }
42686  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
42687  __pyx_t_float_complex z;
42688  z.real = a.real - b.real;
42689  z.imag = a.imag - b.imag;
42690  return z;
42691  }
42692  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
42693  __pyx_t_float_complex z;
42694  z.real = a.real * b.real - a.imag * b.imag;
42695  z.imag = a.real * b.imag + a.imag * b.real;
42696  return z;
42697  }
42698  #if 1
42699  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
42700  if (b.imag == 0) {
42701  return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
42702  } else if (fabsf(b.real) >= fabsf(b.imag)) {
42703  if (b.real == 0 && b.imag == 0) {
42704  return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag);
42705  } else {
42706  float r = b.imag / b.real;
42707  float s = (float)(1.0) / (b.real + b.imag * r);
42708  return __pyx_t_float_complex_from_parts(
42709  (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
42710  }
42711  } else {
42712  float r = b.real / b.imag;
42713  float s = (float)(1.0) / (b.imag + b.real * r);
42714  return __pyx_t_float_complex_from_parts(
42715  (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
42716  }
42717  }
42718  #else
42719  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
42720  if (b.imag == 0) {
42721  return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
42722  } else {
42723  float denom = b.real * b.real + b.imag * b.imag;
42724  return __pyx_t_float_complex_from_parts(
42725  (a.real * b.real + a.imag * b.imag) / denom,
42726  (a.imag * b.real - a.real * b.imag) / denom);
42727  }
42728  }
42729  #endif
42730  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) {
42731  __pyx_t_float_complex z;
42732  z.real = -a.real;
42733  z.imag = -a.imag;
42734  return z;
42735  }
42736  static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) {
42737  return (a.real == 0) && (a.imag == 0);
42738  }
42739  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) {
42740  __pyx_t_float_complex z;
42741  z.real = a.real;
42742  z.imag = -a.imag;
42743  return z;
42744  }
42745  #if 1
42746  static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) {
42747  #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
42748  return sqrtf(z.real*z.real + z.imag*z.imag);
42749  #else
42750  return hypotf(z.real, z.imag);
42751  #endif
42752  }
42753  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
42754  __pyx_t_float_complex z;
42755  float r, lnr, theta, z_r, z_theta;
42756  if (b.imag == 0 && b.real == (int)b.real) {
42757  if (b.real < 0) {
42758  float denom = a.real * a.real + a.imag * a.imag;
42759  a.real = a.real / denom;
42760  a.imag = -a.imag / denom;
42761  b.real = -b.real;
42762  }
42763  switch ((int)b.real) {
42764  case 0:
42765  z.real = 1;
42766  z.imag = 0;
42767  return z;
42768  case 1:
42769  return a;
42770  case 2:
42771  return __Pyx_c_prod_float(a, a);
42772  case 3:
42773  z = __Pyx_c_prod_float(a, a);
42774  return __Pyx_c_prod_float(z, a);
42775  case 4:
42776  z = __Pyx_c_prod_float(a, a);
42777  return __Pyx_c_prod_float(z, z);
42778  }
42779  }
42780  if (a.imag == 0) {
42781  if (a.real == 0) {
42782  return a;
42783  } else if (b.imag == 0) {
42784  z.real = powf(a.real, b.real);
42785  z.imag = 0;
42786  return z;
42787  } else if (a.real > 0) {
42788  r = a.real;
42789  theta = 0;
42790  } else {
42791  r = -a.real;
42792  theta = atan2f(0.0, -1.0);
42793  }
42794  } else {
42795  r = __Pyx_c_abs_float(a);
42796  theta = atan2f(a.imag, a.real);
42797  }
42798  lnr = logf(r);
42799  z_r = expf(lnr * b.real - theta * b.imag);
42800  z_theta = theta * b.real + lnr * b.imag;
42801  z.real = z_r * cosf(z_theta);
42802  z.imag = z_r * sinf(z_theta);
42803  return z;
42804  }
42805  #endif
42806 #endif
42807 
42808 /* Declarations */
42809 #if CYTHON_CCOMPLEX
42810  #ifdef __cplusplus
42811  static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
42812  return ::std::complex< double >(x, y);
42813  }
42814  #else
42815  static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
42816  return x + y*(__pyx_t_double_complex)_Complex_I;
42817  }
42818  #endif
42819 #else
42820  static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
42821  __pyx_t_double_complex z;
42822  z.real = x;
42823  z.imag = y;
42824  return z;
42825  }
42826 #endif
42827 
42828 /* Arithmetic */
42829 #if CYTHON_CCOMPLEX
42830 #else
42831  static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
42832  return (a.real == b.real) && (a.imag == b.imag);
42833  }
42834  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
42835  __pyx_t_double_complex z;
42836  z.real = a.real + b.real;
42837  z.imag = a.imag + b.imag;
42838  return z;
42839  }
42840  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
42841  __pyx_t_double_complex z;
42842  z.real = a.real - b.real;
42843  z.imag = a.imag - b.imag;
42844  return z;
42845  }
42846  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
42847  __pyx_t_double_complex z;
42848  z.real = a.real * b.real - a.imag * b.imag;
42849  z.imag = a.real * b.imag + a.imag * b.real;
42850  return z;
42851  }
42852  #if 1
42853  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
42854  if (b.imag == 0) {
42855  return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
42856  } else if (fabs(b.real) >= fabs(b.imag)) {
42857  if (b.real == 0 && b.imag == 0) {
42858  return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
42859  } else {
42860  double r = b.imag / b.real;
42861  double s = (double)(1.0) / (b.real + b.imag * r);
42862  return __pyx_t_double_complex_from_parts(
42863  (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
42864  }
42865  } else {
42866  double r = b.real / b.imag;
42867  double s = (double)(1.0) / (b.imag + b.real * r);
42868  return __pyx_t_double_complex_from_parts(
42869  (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
42870  }
42871  }
42872  #else
42873  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
42874  if (b.imag == 0) {
42875  return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
42876  } else {
42877  double denom = b.real * b.real + b.imag * b.imag;
42878  return __pyx_t_double_complex_from_parts(
42879  (a.real * b.real + a.imag * b.imag) / denom,
42880  (a.imag * b.real - a.real * b.imag) / denom);
42881  }
42882  }
42883  #endif
42884  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) {
42885  __pyx_t_double_complex z;
42886  z.real = -a.real;
42887  z.imag = -a.imag;
42888  return z;
42889  }
42890  static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) {
42891  return (a.real == 0) && (a.imag == 0);
42892  }
42893  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) {
42894  __pyx_t_double_complex z;
42895  z.real = a.real;
42896  z.imag = -a.imag;
42897  return z;
42898  }
42899  #if 1
42900  static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) {
42901  #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
42902  return sqrt(z.real*z.real + z.imag*z.imag);
42903  #else
42904  return hypot(z.real, z.imag);
42905  #endif
42906  }
42907  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
42908  __pyx_t_double_complex z;
42909  double r, lnr, theta, z_r, z_theta;
42910  if (b.imag == 0 && b.real == (int)b.real) {
42911  if (b.real < 0) {
42912  double denom = a.real * a.real + a.imag * a.imag;
42913  a.real = a.real / denom;
42914  a.imag = -a.imag / denom;
42915  b.real = -b.real;
42916  }
42917  switch ((int)b.real) {
42918  case 0:
42919  z.real = 1;
42920  z.imag = 0;
42921  return z;
42922  case 1:
42923  return a;
42924  case 2:
42925  return __Pyx_c_prod_double(a, a);
42926  case 3:
42927  z = __Pyx_c_prod_double(a, a);
42928  return __Pyx_c_prod_double(z, a);
42929  case 4:
42930  z = __Pyx_c_prod_double(a, a);
42931  return __Pyx_c_prod_double(z, z);
42932  }
42933  }
42934  if (a.imag == 0) {
42935  if (a.real == 0) {
42936  return a;
42937  } else if (b.imag == 0) {
42938  z.real = pow(a.real, b.real);
42939  z.imag = 0;
42940  return z;
42941  } else if (a.real > 0) {
42942  r = a.real;
42943  theta = 0;
42944  } else {
42945  r = -a.real;
42946  theta = atan2(0.0, -1.0);
42947  }
42948  } else {
42949  r = __Pyx_c_abs_double(a);
42950  theta = atan2(a.imag, a.real);
42951  }
42952  lnr = log(r);
42953  z_r = exp(lnr * b.real - theta * b.imag);
42954  z_theta = theta * b.real + lnr * b.imag;
42955  z.real = z_r * cos(z_theta);
42956  z.imag = z_r * sin(z_theta);
42957  return z;
42958  }
42959  #endif
42960 #endif
42961 
42962 /* CIntFromPy */
42963 static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
42964 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
42965 #pragma GCC diagnostic push
42966 #pragma GCC diagnostic ignored "-Wconversion"
42967 #endif
42968  const int neg_one = (int) -1, const_zero = (int) 0;
42969 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
42970 #pragma GCC diagnostic pop
42971 #endif
42972  const int is_unsigned = neg_one > const_zero;
42973 #if PY_MAJOR_VERSION < 3
42974  if (likely(PyInt_Check(x))) {
42975  if (sizeof(int) < sizeof(long)) {
42976  __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
42977  } else {
42978  long val = PyInt_AS_LONG(x);
42979  if (is_unsigned && unlikely(val < 0)) {
42980  goto raise_neg_overflow;
42981  }
42982  return (int) val;
42983  }
42984  } else
42985 #endif
42986  if (likely(PyLong_Check(x))) {
42987  if (is_unsigned) {
42988 #if CYTHON_USE_PYLONG_INTERNALS
42989  const digit* digits = ((PyLongObject*)x)->ob_digit;
42990  switch (Py_SIZE(x)) {
42991  case 0: return (int) 0;
42992  case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0])
42993  case 2:
42994  if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
42995  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
42996  __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
42997  } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) {
42998  return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
42999  }
43000  }
43001  break;
43002  case 3:
43003  if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
43004  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
43005  __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43006  } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) {
43007  return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
43008  }
43009  }
43010  break;
43011  case 4:
43012  if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
43013  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
43014  __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43015  } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) {
43016  return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
43017  }
43018  }
43019  break;
43020  }
43021 #endif
43022 #if CYTHON_COMPILING_IN_CPYTHON
43023  if (unlikely(Py_SIZE(x) < 0)) {
43024  goto raise_neg_overflow;
43025  }
43026 #else
43027  {
43028  int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
43029  if (unlikely(result < 0))
43030  return (int) -1;
43031  if (unlikely(result == 1))
43032  goto raise_neg_overflow;
43033  }
43034 #endif
43035  if (sizeof(int) <= sizeof(unsigned long)) {
43036  __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
43037 #ifdef HAVE_LONG_LONG
43038  } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
43039  __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
43040 #endif
43041  }
43042  } else {
43043 #if CYTHON_USE_PYLONG_INTERNALS
43044  const digit* digits = ((PyLongObject*)x)->ob_digit;
43045  switch (Py_SIZE(x)) {
43046  case 0: return (int) 0;
43047  case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0]))
43048  case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0])
43049  case -2:
43050  if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) {
43051  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
43052  __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43053  } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
43054  return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
43055  }
43056  }
43057  break;
43058  case 2:
43059  if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
43060  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
43061  __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43062  } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
43063  return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
43064  }
43065  }
43066  break;
43067  case -3:
43068  if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
43069  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
43070  __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43071  } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
43072  return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
43073  }
43074  }
43075  break;
43076  case 3:
43077  if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
43078  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
43079  __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43080  } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
43081  return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
43082  }
43083  }
43084  break;
43085  case -4:
43086  if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
43087  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
43088  __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43089  } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
43090  return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
43091  }
43092  }
43093  break;
43094  case 4:
43095  if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
43096  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
43097  __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43098  } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
43099  return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
43100  }
43101  }
43102  break;
43103  }
43104 #endif
43105  if (sizeof(int) <= sizeof(long)) {
43106  __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
43107 #ifdef HAVE_LONG_LONG
43108  } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
43109  __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
43110 #endif
43111  }
43112  }
43113  {
43114 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
43115  PyErr_SetString(PyExc_RuntimeError,
43116  "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
43117 #else
43118  int val;
43119  PyObject *v = __Pyx_PyNumber_IntOrLong(x);
43120  #if PY_MAJOR_VERSION < 3
43121  if (likely(v) && !PyLong_Check(v)) {
43122  PyObject *tmp = v;
43123  v = PyNumber_Long(tmp);
43124  Py_DECREF(tmp);
43125  }
43126  #endif
43127  if (likely(v)) {
43128  int one = 1; int is_little = (int)*(unsigned char *)&one;
43129  unsigned char *bytes = (unsigned char *)&val;
43130  int ret = _PyLong_AsByteArray((PyLongObject *)v,
43131  bytes, sizeof(val),
43132  is_little, !is_unsigned);
43133  Py_DECREF(v);
43134  if (likely(!ret))
43135  return val;
43136  }
43137 #endif
43138  return (int) -1;
43139  }
43140  } else {
43141  int val;
43142  PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
43143  if (!tmp) return (int) -1;
43144  val = __Pyx_PyInt_As_int(tmp);
43145  Py_DECREF(tmp);
43146  return val;
43147  }
43148 raise_overflow:
43149  PyErr_SetString(PyExc_OverflowError,
43150  "value too large to convert to int");
43151  return (int) -1;
43152 raise_neg_overflow:
43153  PyErr_SetString(PyExc_OverflowError,
43154  "can't convert negative value to int");
43155  return (int) -1;
43156 }
43157 
43158 /* CIntToPy */
43159 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
43160 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
43161 #pragma GCC diagnostic push
43162 #pragma GCC diagnostic ignored "-Wconversion"
43163 #endif
43164  const long neg_one = (long) -1, const_zero = (long) 0;
43165 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
43166 #pragma GCC diagnostic pop
43167 #endif
43168  const int is_unsigned = neg_one > const_zero;
43169  if (is_unsigned) {
43170  if (sizeof(long) < sizeof(long)) {
43171  return PyInt_FromLong((long) value);
43172  } else if (sizeof(long) <= sizeof(unsigned long)) {
43173  return PyLong_FromUnsignedLong((unsigned long) value);
43174 #ifdef HAVE_LONG_LONG
43175  } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
43176  return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
43177 #endif
43178  }
43179  } else {
43180  if (sizeof(long) <= sizeof(long)) {
43181  return PyInt_FromLong((long) value);
43182 #ifdef HAVE_LONG_LONG
43183  } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
43184  return PyLong_FromLongLong((PY_LONG_LONG) value);
43185 #endif
43186  }
43187  }
43188  {
43189  int one = 1; int little = (int)*(unsigned char *)&one;
43190  unsigned char *bytes = (unsigned char *)&value;
43191  return _PyLong_FromByteArray(bytes, sizeof(long),
43192  little, !is_unsigned);
43193  }
43194 }
43195 
43196 /* CIntFromPy */
43197 static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
43198 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
43199 #pragma GCC diagnostic push
43200 #pragma GCC diagnostic ignored "-Wconversion"
43201 #endif
43202  const long neg_one = (long) -1, const_zero = (long) 0;
43203 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
43204 #pragma GCC diagnostic pop
43205 #endif
43206  const int is_unsigned = neg_one > const_zero;
43207 #if PY_MAJOR_VERSION < 3
43208  if (likely(PyInt_Check(x))) {
43209  if (sizeof(long) < sizeof(long)) {
43210  __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
43211  } else {
43212  long val = PyInt_AS_LONG(x);
43213  if (is_unsigned && unlikely(val < 0)) {
43214  goto raise_neg_overflow;
43215  }
43216  return (long) val;
43217  }
43218  } else
43219 #endif
43220  if (likely(PyLong_Check(x))) {
43221  if (is_unsigned) {
43222 #if CYTHON_USE_PYLONG_INTERNALS
43223  const digit* digits = ((PyLongObject*)x)->ob_digit;
43224  switch (Py_SIZE(x)) {
43225  case 0: return (long) 0;
43226  case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0])
43227  case 2:
43228  if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
43229  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
43230  __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43231  } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) {
43232  return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
43233  }
43234  }
43235  break;
43236  case 3:
43237  if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
43238  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
43239  __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43240  } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) {
43241  return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
43242  }
43243  }
43244  break;
43245  case 4:
43246  if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
43247  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
43248  __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43249  } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) {
43250  return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
43251  }
43252  }
43253  break;
43254  }
43255 #endif
43256 #if CYTHON_COMPILING_IN_CPYTHON
43257  if (unlikely(Py_SIZE(x) < 0)) {
43258  goto raise_neg_overflow;
43259  }
43260 #else
43261  {
43262  int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
43263  if (unlikely(result < 0))
43264  return (long) -1;
43265  if (unlikely(result == 1))
43266  goto raise_neg_overflow;
43267  }
43268 #endif
43269  if (sizeof(long) <= sizeof(unsigned long)) {
43270  __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
43271 #ifdef HAVE_LONG_LONG
43272  } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
43273  __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
43274 #endif
43275  }
43276  } else {
43277 #if CYTHON_USE_PYLONG_INTERNALS
43278  const digit* digits = ((PyLongObject*)x)->ob_digit;
43279  switch (Py_SIZE(x)) {
43280  case 0: return (long) 0;
43281  case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0]))
43282  case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0])
43283  case -2:
43284  if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) {
43285  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
43286  __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43287  } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
43288  return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
43289  }
43290  }
43291  break;
43292  case 2:
43293  if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
43294  if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
43295  __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43296  } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
43297  return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
43298  }
43299  }
43300  break;
43301  case -3:
43302  if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
43303  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
43304  __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43305  } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
43306  return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
43307  }
43308  }
43309  break;
43310  case 3:
43311  if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
43312  if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
43313  __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43314  } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
43315  return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
43316  }
43317  }
43318  break;
43319  case -4:
43320  if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
43321  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
43322  __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43323  } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
43324  return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
43325  }
43326  }
43327  break;
43328  case 4:
43329  if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
43330  if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
43331  __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
43332  } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
43333  return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
43334  }
43335  }
43336  break;
43337  }
43338 #endif
43339  if (sizeof(long) <= sizeof(long)) {
43340  __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
43341 #ifdef HAVE_LONG_LONG
43342  } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
43343  __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
43344 #endif
43345  }
43346  }
43347  {
43348 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
43349  PyErr_SetString(PyExc_RuntimeError,
43350  "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
43351 #else
43352  long val;
43353  PyObject *v = __Pyx_PyNumber_IntOrLong(x);
43354  #if PY_MAJOR_VERSION < 3
43355  if (likely(v) && !PyLong_Check(v)) {
43356  PyObject *tmp = v;
43357  v = PyNumber_Long(tmp);
43358  Py_DECREF(tmp);
43359  }
43360  #endif
43361  if (likely(v)) {
43362  int one = 1; int is_little = (int)*(unsigned char *)&one;
43363  unsigned char *bytes = (unsigned char *)&val;
43364  int ret = _PyLong_AsByteArray((PyLongObject *)v,
43365  bytes, sizeof(val),
43366  is_little, !is_unsigned);
43367  Py_DECREF(v);
43368  if (likely(!ret))
43369  return val;
43370  }
43371 #endif
43372  return (long) -1;
43373  }
43374  } else {
43375  long val;
43376  PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
43377  if (!tmp) return (long) -1;
43378  val = __Pyx_PyInt_As_long(tmp);
43379  Py_DECREF(tmp);
43380  return val;
43381  }
43382 raise_overflow:
43383  PyErr_SetString(PyExc_OverflowError,
43384  "value too large to convert to long");
43385  return (long) -1;
43386 raise_neg_overflow:
43387  PyErr_SetString(PyExc_OverflowError,
43388  "can't convert negative value to long");
43389  return (long) -1;
43390 }
43391 
43392 /* FastTypeChecks */
43393 #if CYTHON_COMPILING_IN_CPYTHON
43394 static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
43395  while (a) {
43396  a = a->tp_base;
43397  if (a == b)
43398  return 1;
43399  }
43400  return b == &PyBaseObject_Type;
43401 }
43402 static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
43403  PyObject *mro;
43404  if (a == b) return 1;
43405  mro = a->tp_mro;
43406  if (likely(mro)) {
43407  Py_ssize_t i, n;
43408  n = PyTuple_GET_SIZE(mro);
43409  for (i = 0; i < n; i++) {
43410  if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
43411  return 1;
43412  }
43413  return 0;
43414  }
43415  return __Pyx_InBases(a, b);
43416 }
43417 #if PY_MAJOR_VERSION == 2
43418 static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
43419  PyObject *exception, *value, *tb;
43420  int res;
43421  __Pyx_PyThreadState_declare
43422  __Pyx_PyThreadState_assign
43423  __Pyx_ErrFetch(&exception, &value, &tb);
43424  res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
43425  if (unlikely(res == -1)) {
43426  PyErr_WriteUnraisable(err);
43427  res = 0;
43428  }
43429  if (!res) {
43430  res = PyObject_IsSubclass(err, exc_type2);
43431  if (unlikely(res == -1)) {
43432  PyErr_WriteUnraisable(err);
43433  res = 0;
43434  }
43435  }
43436  __Pyx_ErrRestore(exception, value, tb);
43437  return res;
43438 }
43439 #else
43440 static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
43441  int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0;
43442  if (!res) {
43443  res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
43444  }
43445  return res;
43446 }
43447 #endif
43448 static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
43449  Py_ssize_t i, n;
43450  assert(PyExceptionClass_Check(exc_type));
43451  n = PyTuple_GET_SIZE(tuple);
43452 #if PY_MAJOR_VERSION >= 3
43453  for (i=0; i<n; i++) {
43454  if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
43455  }
43456 #endif
43457  for (i=0; i<n; i++) {
43458  PyObject *t = PyTuple_GET_ITEM(tuple, i);
43459  #if PY_MAJOR_VERSION < 3
43460  if (likely(exc_type == t)) return 1;
43461  #endif
43462  if (likely(PyExceptionClass_Check(t))) {
43463  if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
43464  } else {
43465  }
43466  }
43467  return 0;
43468 }
43469 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
43470  if (likely(err == exc_type)) return 1;
43471  if (likely(PyExceptionClass_Check(err))) {
43472  if (likely(PyExceptionClass_Check(exc_type))) {
43473  return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
43474  } else if (likely(PyTuple_Check(exc_type))) {
43475  return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
43476  } else {
43477  }
43478  }
43479  return PyErr_GivenExceptionMatches(err, exc_type);
43480 }
43481 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
43482  assert(PyExceptionClass_Check(exc_type1));
43483  assert(PyExceptionClass_Check(exc_type2));
43484  if (likely(err == exc_type1 || err == exc_type2)) return 1;
43485  if (likely(PyExceptionClass_Check(err))) {
43486  return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
43487  }
43488  return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
43489 }
43490 #endif
43491 
43492 /* CheckBinaryVersion */
43493 static int __Pyx_check_binary_version(void) {
43494  char ctversion[5];
43495  int same=1, i, found_dot;
43496  const char* rt_from_call = Py_GetVersion();
43497  PyOS_snprintf(ctversion, 5, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
43498  found_dot = 0;
43499  for (i = 0; i < 4; i++) {
43500  if (!ctversion[i]) {
43501  same = (rt_from_call[i] < '0' || rt_from_call[i] > '9');
43502  break;
43503  }
43504  if (rt_from_call[i] != ctversion[i]) {
43505  same = 0;
43506  break;
43507  }
43508  }
43509  if (!same) {
43510  char rtversion[5] = {'\0'};
43511  char message[200];
43512  for (i=0; i<4; ++i) {
43513  if (rt_from_call[i] == '.') {
43514  if (found_dot) break;
43515  found_dot = 1;
43516  } else if (rt_from_call[i] < '0' || rt_from_call[i] > '9') {
43517  break;
43518  }
43519  rtversion[i] = rt_from_call[i];
43520  }
43521  PyOS_snprintf(message, sizeof(message),
43522  "compiletime version %s of module '%.100s' "
43523  "does not match runtime version %s",
43524  ctversion, __Pyx_MODULE_NAME, rtversion);
43525  return PyErr_WarnEx(NULL, message, 1);
43526  }
43527  return 0;
43528 }
43529 
43530 /* InitStrings */
43531 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
43532  while (t->p) {
43533  #if PY_MAJOR_VERSION < 3
43534  if (t->is_unicode) {
43535  *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
43536  } else if (t->intern) {
43537  *t->p = PyString_InternFromString(t->s);
43538  } else {
43539  *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
43540  }
43541  #else
43542  if (t->is_unicode | t->is_str) {
43543  if (t->intern) {
43544  *t->p = PyUnicode_InternFromString(t->s);
43545  } else if (t->encoding) {
43546  *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
43547  } else {
43548  *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
43549  }
43550  } else {
43551  *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
43552  }
43553  #endif
43554  if (!*t->p)
43555  return -1;
43556  if (PyObject_Hash(*t->p) == -1)
43557  return -1;
43558  ++t;
43559  }
43560  return 0;
43561 }
43562 
43563 static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
43564  return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str));
43565 }
43566 static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
43567  Py_ssize_t ignore;
43568  return __Pyx_PyObject_AsStringAndSize(o, &ignore);
43569 }
43570 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
43571 #if !CYTHON_PEP393_ENABLED
43572 static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
43573  char* defenc_c;
43574  PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
43575  if (!defenc) return NULL;
43576  defenc_c = PyBytes_AS_STRING(defenc);
43577 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
43578  {
43579  char* end = defenc_c + PyBytes_GET_SIZE(defenc);
43580  char* c;
43581  for (c = defenc_c; c < end; c++) {
43582  if ((unsigned char) (*c) >= 128) {
43583  PyUnicode_AsASCIIString(o);
43584  return NULL;
43585  }
43586  }
43587  }
43588 #endif
43589  *length = PyBytes_GET_SIZE(defenc);
43590  return defenc_c;
43591 }
43592 #else
43593 static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
43594  if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
43595 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
43596  if (likely(PyUnicode_IS_ASCII(o))) {
43597  *length = PyUnicode_GET_LENGTH(o);
43598  return PyUnicode_AsUTF8(o);
43599  } else {
43600  PyUnicode_AsASCIIString(o);
43601  return NULL;
43602  }
43603 #else
43604  return PyUnicode_AsUTF8AndSize(o, length);
43605 #endif
43606 }
43607 #endif
43608 #endif
43609 static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
43610 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
43611  if (
43612 #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
43613  __Pyx_sys_getdefaultencoding_not_ascii &&
43614 #endif
43615  PyUnicode_Check(o)) {
43616  return __Pyx_PyUnicode_AsStringAndSize(o, length);
43617  } else
43618 #endif
43619 #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
43620  if (PyByteArray_Check(o)) {
43621  *length = PyByteArray_GET_SIZE(o);
43622  return PyByteArray_AS_STRING(o);
43623  } else
43624 #endif
43625  {
43626  char* result;
43627  int r = PyBytes_AsStringAndSize(o, &result, length);
43628  if (unlikely(r < 0)) {
43629  return NULL;
43630  } else {
43631  return result;
43632  }
43633  }
43634 }
43635 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
43636  int is_true = x == Py_True;
43637  if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
43638  else return PyObject_IsTrue(x);
43639 }
43640 static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
43641  int retval;
43642  if (unlikely(!x)) return -1;
43643  retval = __Pyx_PyObject_IsTrue(x);
43644  Py_DECREF(x);
43645  return retval;
43646 }
43647 static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
43648 #if PY_MAJOR_VERSION >= 3
43649  if (PyLong_Check(result)) {
43650  if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
43651  "__int__ returned non-int (type %.200s). "
43652  "The ability to return an instance of a strict subclass of int "
43653  "is deprecated, and may be removed in a future version of Python.",
43654  Py_TYPE(result)->tp_name)) {
43655  Py_DECREF(result);
43656  return NULL;
43657  }
43658  return result;
43659  }
43660 #endif
43661  PyErr_Format(PyExc_TypeError,
43662  "__%.4s__ returned non-%.4s (type %.200s)",
43663  type_name, type_name, Py_TYPE(result)->tp_name);
43664  Py_DECREF(result);
43665  return NULL;
43666 }
43667 static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
43668 #if CYTHON_USE_TYPE_SLOTS
43669  PyNumberMethods *m;
43670 #endif
43671  const char *name = NULL;
43672  PyObject *res = NULL;
43673 #if PY_MAJOR_VERSION < 3
43674  if (likely(PyInt_Check(x) || PyLong_Check(x)))
43675 #else
43676  if (likely(PyLong_Check(x)))
43677 #endif
43678  return __Pyx_NewRef(x);
43679 #if CYTHON_USE_TYPE_SLOTS
43680  m = Py_TYPE(x)->tp_as_number;
43681  #if PY_MAJOR_VERSION < 3
43682  if (m && m->nb_int) {
43683  name = "int";
43684  res = m->nb_int(x);
43685  }
43686  else if (m && m->nb_long) {
43687  name = "long";
43688  res = m->nb_long(x);
43689  }
43690  #else
43691  if (likely(m && m->nb_int)) {
43692  name = "int";
43693  res = m->nb_int(x);
43694  }
43695  #endif
43696 #else
43697  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
43698  res = PyNumber_Int(x);
43699  }
43700 #endif
43701  if (likely(res)) {
43702 #if PY_MAJOR_VERSION < 3
43703  if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
43704 #else
43705  if (unlikely(!PyLong_CheckExact(res))) {
43706 #endif
43707  return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
43708  }
43709  }
43710  else if (!PyErr_Occurred()) {
43711  PyErr_SetString(PyExc_TypeError,
43712  "an integer is required");
43713  }
43714  return res;
43715 }
43716 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
43717  Py_ssize_t ival;
43718  PyObject *x;
43719 #if PY_MAJOR_VERSION < 3
43720  if (likely(PyInt_CheckExact(b))) {
43721  if (sizeof(Py_ssize_t) >= sizeof(long))
43722  return PyInt_AS_LONG(b);
43723  else
43724  return PyInt_AsSsize_t(b);
43725  }
43726 #endif
43727  if (likely(PyLong_CheckExact(b))) {
43728  #if CYTHON_USE_PYLONG_INTERNALS
43729  const digit* digits = ((PyLongObject*)b)->ob_digit;
43730  const Py_ssize_t size = Py_SIZE(b);
43731  if (likely(__Pyx_sst_abs(size) <= 1)) {
43732  ival = likely(size) ? digits[0] : 0;
43733  if (size == -1) ival = -ival;
43734  return ival;
43735  } else {
43736  switch (size) {
43737  case 2:
43738  if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
43739  return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
43740  }
43741  break;
43742  case -2:
43743  if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
43744  return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
43745  }
43746  break;
43747  case 3:
43748  if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
43749  return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
43750  }
43751  break;
43752  case -3:
43753  if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
43754  return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
43755  }
43756  break;
43757  case 4:
43758  if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
43759  return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
43760  }
43761  break;
43762  case -4:
43763  if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
43764  return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
43765  }
43766  break;
43767  }
43768  }
43769  #endif
43770  return PyLong_AsSsize_t(b);
43771  }
43772  x = PyNumber_Index(b);
43773  if (!x) return -1;
43774  ival = PyInt_AsSsize_t(x);
43775  Py_DECREF(x);
43776  return ival;
43777 }
43778 static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
43779  if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
43780  return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
43781 #if PY_MAJOR_VERSION < 3
43782  } else if (likely(PyInt_CheckExact(o))) {
43783  return PyInt_AS_LONG(o);
43784 #endif
43785  } else {
43786  Py_ssize_t ival;
43787  PyObject *x;
43788  x = PyNumber_Index(o);
43789  if (!x) return -1;
43790  ival = PyInt_AsLong(x);
43791  Py_DECREF(x);
43792  return ival;
43793  }
43794 }
43795 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
43796  return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
43797 }
43798 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
43799  return PyInt_FromSize_t(ival);
43800 }
43801 
43802 
43803 #endif /* Py_PYTHON_H */
updateExteriorNumericalDiffusiveFluxJacobian_free
void updateExteriorNumericalDiffusiveFluxJacobian_free(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:3593
calculateGlobalExteriorNumericalStressFlux
void calculateGlobalExteriorNumericalStressFlux(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_u, int *isDOFBoundary_v, int *isDOFBoundary_w, double *n, double *bc_u, double *bc_v, double *bc_w, double *sigma, double *u, double *v, double *w, double *penalty, double *stressFlux_u, double *stressFlux_v, double *stressFlux_w)
Definition: numericalFlux.c:14530
updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind
void updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *dphi, double *V, double *DV, double *DV_eb, double *v, double *penalty, double *fluxJacobian, double *fluxJacobian_eb)
Update the advective flux at at interior element boundaries.
Definition: numericalFlux.c:8169
calculateGlobalExteriorNumericalAdvectiveFlux_NoBC
void calculateGlobalExteriorNumericalAdvectiveFlux_NoBC(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *inflowFlag, double *n, double *f, double *df, double *flux, double *dflux_left)
Update the advective flux at exterior element boundaries.
Definition: numericalFlux.c:4379
calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound
void calculateExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *u, double *f, double *lambda_bar, double *flux)
Definition: numericalFlux.c:784
updateExteriorNumericalDiffusiveFluxJacobian
void updateExteriorNumericalDiffusiveFluxJacobian(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Update the diffusive flux Jacobian at exterior element boundary quadrature points.
Definition: numericalFlux.c:2743
calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D
void calculateGlobalExteriorNumericalAdvectiveFluxStokesP2D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, double *n, double *bc_f, double *bc_fpu, double *bc_fpv, double *f, double *fpu, double *fpv, double *df_du, double *df_dv, double *dfpu_dp, double *dfpv_dp, double *flux, double *fluxpu, double *fluxpv, double *dflux_du, double *dflux_dv, double *dfluxpu_dp, double *dfluxpv_dp)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:6472
updateGlobalExteriorNumericalDiffusiveFluxJacobian
void updateGlobalExteriorNumericalDiffusiveFluxJacobian(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Update the diffusive flux Jacobian at exterior element boundary quadrature points.
Definition: numericalFlux.c:2973
calculateExteriorNumericalAdvectiveFluxStokesP2D
void calculateExteriorNumericalAdvectiveFluxStokesP2D(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, double *n, double *bc_f, double *bc_fpu, double *bc_fpv, double *f, double *fpu, double *fpv, double *df_du, double *df_dv, double *dfpu_dp, double *dfpv_dp, double *flux, double *fluxpu, double *fluxpv, double *dflux_du, double *dflux_dv, double *dfluxpu_dp, double *dfluxpv_dp)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:4918
calculateGlobalExteriorNumericalFluxDarcyFCPP_sd
void calculateGlobalExteriorNumericalFluxDarcyFCPP_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr_ww, int *colind_ww, int *rowptr_nn, int *colind_nn, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *bc_a_ww, const double *bc_a_nn, const double *bc_grad_phi_w, const double *bc_grad_phi_n, const double *bc_psi_w, const double *bc_psi_c, const double *bc_psi_n, const double *a_ww, const double *a_nn, const double *grad_phi_w, const double *grad_phi_n, const double *psi_w, const double *psi_c, const double *psi_n, const double *penalty_w, const double *penalty_n, double *diffusiveFlux_ww, double *diffusiveFlux_nn)
Definition: numericalFlux.c:12150
calculateGlobalExteriorNumericalDiffusiveFlux
void calculateGlobalExteriorNumericalDiffusiveFlux(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Calculate the diffusive flux at exterior element boundary quadrature points.
Definition: numericalFlux.c:2093
calculateGlobalExteriorNumericalFluxDarcyFC_sd
void calculateGlobalExteriorNumericalFluxDarcyFC_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr_ww, int *colind_ww, int *rowptr_nn, int *colind_nn, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *bc_a_ww, const double *bc_a_nn, const double *bc_grad_phi_w, const double *bc_grad_phi_n, const double *bc_s_w, const double *bc_psi_w, const double *bc_psi_n, const double *a_ww, const double *a_nn, const double *grad_phi_w, const double *grad_phi_n, const double *s_w, const double *psi_w, const double *psi_n, const double *penalty_w, const double *penalty_n, double *diffusiveFlux_ww, double *diffusiveFlux_nn)
Definition: numericalFlux.c:10994
calculateGlobalExteriorNumericalFluxDarcySplitPressure
void calculateGlobalExteriorNumericalFluxDarcySplitPressure(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_u, const double *n, const double *bc_a, const double *bc_grad_phi, const double *bc_psi_w, const double *bc_psi_n, const double *a, const double *grad_phi, const double *psi_w, const double *psi_n, const double *penalty, double *diffusiveFlux)
Definition: numericalFlux.c:12997
calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd
void calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int nDOF_trial_element, int *rowptr_ww, int *colind_ww, int *rowptr_nn, int *colind_nn, const int *l2g, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *a_ww, const double *da_ww_dw, const double *da_ww_dn, const double *a_nn, const double *da_nn_dw, const double *da_nn_dn, const double *grad_phi_w, const double *grad_phi_n, const double *dphi_w_w, const double *dphi_w_n, const double *dphi_n_w, const double *dphi_n_n, const double *s_w, const double *psi_w, const double *psi_n, const double *dpsi_n_dsw, const double *dpsi_n_dpsiw, const double *v, const double *grad_v, const double *penalty_w, const double *penalty_n, double *fluxJacobian_ww, double *fluxJacobian_wn, double *fluxJacobian_nw, double *fluxJacobian_nn)
Definition: numericalFlux.c:11496
calculateExteriorNumericalDiffusiveFlux_free_sd
void calculateExteriorNumericalDiffusiveFlux_free_sd(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Definition: numericalFlux.c:2580
updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd
void updateGlobalExteriorNumericalDiffusiveFluxJacobian_sd(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:3077
updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd
void updateInteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *dphi, double *V, double *DV, double *DV_eb, double *v, double *penalty, double *fluxJacobian, double *fluxJacobian_eb)
Definition: numericalFlux.c:8347
f
Double f
Definition: Headers.h:64
calculateExteriorLesaintRaviartNumericalFlux
void calculateExteriorLesaintRaviartNumericalFlux(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int speedEvalFlag, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_H, double *bc_dH, double *u, double *H, double *dH, double *flux, double *dflux)
Definition: numericalFlux.c:9569
s
Double s
Definition: Headers.h:84
updateGlobalExteriorNumericalDiffusiveFluxJacobian_free
void updateGlobalExteriorNumericalDiffusiveFluxJacobian_free(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:3768
calculateGlobalExteriorNumericalAdvectiveFlux
void calculateGlobalExteriorNumericalAdvectiveFlux(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *flux, double *dflux)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:4632
calculateExteriorNumericalDiffusiveFlux_LDG_upwind
void calculateExteriorNumericalDiffusiveFlux_LDG_upwind(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *a, double *phi_bc, double *phi, double *V, double *penalty, double *flux)
Calculate the advective flux at at interior element boundaries.
Definition: numericalFlux.c:8525
calculateGlobalExteriorNumericalFluxDarcyFC
void calculateGlobalExteriorNumericalFluxDarcyFC(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *bc_a_ww, const double *bc_a_nn, const double *bc_grad_phi_w, const double *bc_grad_phi_n, const double *bc_s_w, const double *bc_psi_w, const double *bc_psi_n, const double *a_ww, const double *a_nn, const double *grad_phi_w, const double *grad_phi_n, const double *s_w, const double *psi_w, const double *psi_n, const double *penalty_w, const double *penalty_n, double *diffusiveFlux_ww, double *diffusiveFlux_nn)
Definition: numericalFlux.c:10839
setInflowFlux
void setInflowFlux(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int *exteriorElementBoundaries, double *inflowFlux, double *flux)
Set the advective flux boundary condition at exterior element boundaries from the current exterior fl...
Definition: numericalFlux.c:7973
calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd
void calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind_sd(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *a, double *phi_bc, double *phi, double *V, double *penalty, double *flux)
Definition: numericalFlux.c:8715
updateExteriorNumericalAdvectiveFluxJacobian_free
void updateExteriorNumericalAdvectiveFluxJacobian_free(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *inflowFlag, double *dflux_left, double *v, double *fluxJacobian)
Definition: numericalFlux.c:7885
calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint
void calculateInteriorNumericalAdvectiveFluxConvexOneSonicPoint(double sonicPoint, double sonicFlux, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *f, double *df, double *flux, double *dflux_left, double *dflux_right)
Calculate the advective flux at at interior element boundaries for simple scalar nonlinear hyperbolic...
Definition: numericalFlux.c:14
updateExteriorNumericalStressFluxJacobian
void updateExteriorNumericalStressFluxJacobian(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_u, int *isDOFBoundary_v, int *isDOFBoundary_w, int *isStressBoundary_u, int *isStressBoundary_v, int *isStressBoundary_w, double *n, double *dstress_u_u, double *dstress_u_v, double *dstress_u_w, double *dstress_v_u, double *dstress_v_v, double *dstress_v_w, double *dstress_w_u, double *dstress_w_v, double *dstress_w_w, double *v, double *grad_v, double *penalty, double *fluxJacobian_u_u, double *fluxJacobian_u_v, double *fluxJacobian_u_w, double *fluxJacobian_v_u, double *fluxJacobian_v_v, double *fluxJacobian_v_w, double *fluxJacobian_w_u, double *fluxJacobian_w_v, double *fluxJacobian_w_w)
Definition: numericalFlux.c:14592
n
Int n
Definition: Headers.h:28
updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind
void updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(int *isDiffusiveFluxBoundary, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *dphi, double *V, double *DV, double *DV_eb, double *v, double *penalty, double *fluxJacobian, double *fluxJacobian_eb)
update the flux Jacobian with the advective flux contribution at at exterior element boundaries
Definition: numericalFlux.c:8779
calculateInteriorNumericalFluxShallowWater_2D
void calculateInteriorNumericalFluxShallowWater_2D(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, double h_eps, double tol_u, double g, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *h, double *hu, double *hv, double *flux_h, double *flux_hu, double *flux_hv)
Definition: numericalFlux.c:13456
calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian
void calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int nDOF_trial_element, const int *l2g, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_um, const double *n, const double *f_m, const double *df_m_dw, const double *a_wm, const double *da_wm_dw, const double *da_wm_dm, const double *a_mw, const double *da_mw_dw, const double *da_mw_dm, const double *a_mm, const double *da_mm_dw, const double *da_mm_dm, const double *grad_phi_w, const double *grad_phi_m, const double *dphi_w_w, const double *dphi_w_m, const double *dphi_m_w, const double *dphi_m_m, const double *u_w, const double *u_m, const double *v, const double *grad_v, const double *penalty_w, const double *penalty_m, double *fluxJacobian_ww, double *fluxJacobian_wm, double *fluxJacobian_mw, double *fluxJacobian_mm)
Definition: numericalFlux.c:10135
calculateExteriorNumericalDiffusiveFlux_free
void calculateExteriorNumericalDiffusiveFlux_free(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Definition: numericalFlux.c:2523
calculateInteriorNumericalAdvectiveFluxRusanov
void calculateInteriorNumericalAdvectiveFluxRusanov(double safetyFactor, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *f, double *df, double *df_element, double *flux, double *dflux_left, double *dflux_right)
Definition: numericalFlux.c:179
updateInteriorTwoSidedNumericalFluxJacobian
void updateInteriorTwoSidedNumericalFluxJacobian(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *dflux_left, double *dflux_right, double *v, double *fluxJacobian_2sided)
Calculate the two-sided flux jacobian at at interior element boundaries.
Definition: numericalFlux.c:4145
calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC
void calculateGlobalExteriorNumericalAdvectiveFlux_DarcyFC(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_sw, int *isDOFBoundary_psiw, double *n, double *bc_sw, double *bc_psiw, double *bc_fw, double *bc_dfw_dsw, double *bc_dfw_dpsiw, double *bc_fn, double *bc_dfn_dsw, double *bc_dfn_dpsiw, double *sw, double *psiw, double *fw, double *dfw_dsw, double *dfw_dpsiw, double *fn, double *dfn_dsw, double *dfn_dpsiw, double *fluxw, double *dfluxw_dsw, double *dfluxw_dpsiw, double *fluxn, double *dfluxn_dsw, double *dfluxn_dpsiw)
Calculate the advective (gravity) flux at at exterior element boundaries for Darcy FC does not upwind...
Definition: numericalFlux.c:11842
calculateInteriorNumericalFluxShallowWaterHLL_1D
void calculateInteriorNumericalFluxShallowWaterHLL_1D(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, double h_eps, double tol_u, double g, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *h, double *hu, double *flux_h, double *flux_hu)
Definition: numericalFlux.c:13610
calculateGlobalExteriorInflowNumericalAdvectiveFlux
void calculateGlobalExteriorInflowNumericalAdvectiveFlux(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *inflowFlag, double *inflowFlux, double *n, double *f, double *df, double *flux, double *dflux_left)
Update the advective flux at exterior inflow element boundaries.
Definition: numericalFlux.c:7765
calculateGlobalExteriorNumericalAdvectiveFlux_free
void calculateGlobalExteriorNumericalAdvectiveFlux_free(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *flux, double *dflux)
Definition: numericalFlux.c:4856
calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd
void calculateGlobalExteriorNumericalFluxDarcyFCFF_diffusiveFluxJacobian_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int nDOF_trial_element, int *rowptr_wm, int *colind_wm, int *rowptr_mw, int *colind_mw, int *rowptr_mm, int *colind_mm, const int *l2g, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_um, const double *n, const double *f_m, const double *df_m_dw, const double *a_wm, const double *da_wm_dw, const double *da_wm_dm, const double *a_mw, const double *da_mw_dw, const double *da_mw_dm, const double *a_mm, const double *da_mm_dw, const double *da_mm_dm, const double *grad_phi_w, const double *grad_phi_m, const double *dphi_w_w, const double *dphi_w_m, const double *dphi_m_w, const double *dphi_m_m, const double *u_w, const double *u_m, const double *v, const double *grad_v, const double *penalty_w, const double *penalty_m, double *fluxJacobian_ww, double *fluxJacobian_wm, double *fluxJacobian_mw, double *fluxJacobian_mm)
Definition: numericalFlux.c:10490
calculateExteriorNumericalAdvectiveFlux_NoBC
void calculateExteriorNumericalAdvectiveFlux_NoBC(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *inflowFlag, double *n, double *f, double *df, double *flux, double *dflux_left)
Update the advective flux at exterior element boundaries.
Definition: numericalFlux.c:4315
calculateExteriorNumericalFluxRichards_sd
void calculateExteriorNumericalFluxRichards_sd(int *rowptr, int *colind, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *isSeepageFace, int *isDOFBoundary, double *n, double *bc_u, double *K, double *grad_psi, double *u, double *K_rho_g, double *penalty, double *diffusiveFlux)
Definition: numericalFlux.c:14274
calculateGlobalExteriorNumericalDiffusiveFlux_sd
void calculateGlobalExteriorNumericalDiffusiveFlux_sd(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Definition: numericalFlux.c:2165
updateGlobalExteriorNumericalAdvectiveFluxJacobian
void updateGlobalExteriorNumericalAdvectiveFluxJacobian(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *inflowFlag, double *dflux_left, double *v, double *fluxJacobian)
Calculate the advective flux at global exterior element boundaries.
Definition: numericalFlux.c:7844
calculateGlobalExteriorNumericalAdvectiveFluxStokes2D
void calculateGlobalExteriorNumericalAdvectiveFluxStokes2D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, double *n, double *bc_p, double *bc_f_mass, double *p, double *f_mass, double *df_mass_du, double *df_mass_dv, double *flux_mass, double *flux_umom, double *flux_vmom, double *dflux_mass_du, double *dflux_mass_dv, double *dflux_umom_dp, double *dflux_vmom_dp, double *velocity)
Apply basic pressure boundary penalty term for Stokes.
Definition: numericalFlux.c:7186
calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound
void calculateInteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *f, double *lambda_bar_element, double *flux)
Definition: numericalFlux.c:591
updateExteriorNumericalDiffusiveFluxJacobian_sd
void updateExteriorNumericalDiffusiveFluxJacobian_sd(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:2856
updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind
void updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind(int *isDiffusiveFluxBoundary, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *dphi, double *V, double *DV, double *DV_eb, double *v, double *penalty, double *fluxJacobian_exterior, double *fluxJacobian_eb)
update the flux Jacobian with the advective flux contribution at at exterior element boundaries
Definition: numericalFlux.c:9025
v
Double v
Definition: Headers.h:95
calculateInteriorNumericalAdvectiveFlux
void calculateInteriorNumericalAdvectiveFlux(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *f, double *df, double *flux, double *dflux_left, double *dflux_right)
Calculate the advective flux at at interior element boundaries.
Definition: numericalFlux.c:3927
updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd
void updateGlobalExteriorNumericalDiffusiveFluxJacobian_free_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:3846
updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd
void updateGlobalExteriorNumericalDiffusiveFluxWithUpwindingJacobian_sd(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *fluxBoundaryFlag, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:14945
calculateInteriorNumericalDiffusiveFlux_LDG_upwind
void calculateInteriorNumericalDiffusiveFlux_LDG_upwind(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *a, double *phi, double *V, double *penalty, double *flux)
Calculate the advective flux at at interior element boundaries.
Definition: numericalFlux.c:7996
numericalFlux.h
C implementations of numericalFlux calculations.
T
Double T
Definition: Headers.h:87
calculateInteriorNumericalDiffusiveFlux
void calculateInteriorNumericalDiffusiveFlux(int scale_penalty, double penalty_floor, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Calculate the diffusive flux at interior element boundary quadrature points.
Definition: numericalFlux.c:891
calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd
void calculateGlobalExteriorNumericalFluxDarcySplitPressure_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, const int *rowptr, const int *colind, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_u, const double *n, const double *bc_a, const double *bc_grad_phi, const double *bc_psi_w, const double *bc_psi_n, const double *a, const double *grad_phi, const double *psi_w, const double *psi_n, const double *penalty, double *diffusiveFlux)
Definition: numericalFlux.c:13079
calculateGlobalExteriorNumericalFluxDarcyFCPP
void calculateGlobalExteriorNumericalFluxDarcyFCPP(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *bc_a_ww, const double *bc_a_nn, const double *bc_grad_phi_w, const double *bc_grad_phi_n, const double *bc_psi_w, const double *bc_psi_c, const double *bc_psi_n, const double *a_ww, const double *a_nn, const double *grad_phi_w, const double *grad_phi_n, const double *psi_w, const double *psi_c, const double *psi_n, const double *penalty_w, const double *penalty_n, double *diffusiveFlux_ww, double *diffusiveFlux_nn)
Definition: numericalFlux.c:11992
calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound
void calculateGlobalExteriorNumericalAdvectiveFluxRusanovWithEigenvalueBound(double safetyFactor, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *u, double *f, double *lambda_bar, double *flux)
Definition: numericalFlux.c:692
z
Double * z
Definition: Headers.h:49
calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D
void calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes2D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, double *n, double *bc_p, double *bc_f_mass, double *bc_f_umom, double *bc_f_vmom, double *p, double *oneByRho, double *f_mass, double *f_umom, double *f_vmom, double *df_mass_du, double *df_mass_dv, double *df_umom_dp, double *df_umom_du, double *df_umom_dv, double *df_vmom_dp, double *df_vmom_du, double *df_vmom_dv, double *flux_mass, double *flux_umom, double *flux_vmom, double *dflux_mass_dp, double *dflux_mass_du, double *dflux_mass_dv, double *dflux_umom_dp, double *dflux_umom_du, double *dflux_umom_dv, double *dflux_vmom_dp, double *dflux_vmom_du, double *dflux_vmom_dv, double *velocity)
Definition: numericalFlux.c:5328
calculateGlobalExteriorNumericalDiffusiveFlux_free
void calculateGlobalExteriorNumericalDiffusiveFlux_free(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Definition: numericalFlux.c:2638
u
Double u
Definition: Headers.h:89
c
Double c
Definition: Headers.h:54
calculateExteriorNumericalAdvectiveFluxNavierStokes2D
void calculateExteriorNumericalAdvectiveFluxNavierStokes2D(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, double *n, double *bc_p, double *bc_f_mass, double *bc_f_umom, double *bc_f_vmom, double *p, double *f_mass, double *f_umom, double *f_vmom, double *df_mass_du, double *df_mass_dv, double *df_umom_du, double *df_umom_dv, double *df_vmom_du, double *df_vmom_dv, double *flux_mass, double *flux_umom, double *flux_vmom, double *dflux_mass_du, double *dflux_mass_dv, double *dflux_umom_dp, double *dflux_umom_du, double *dflux_umom_dv, double *dflux_vmom_dp, double *dflux_vmom_du, double *dflux_vmom_dv)
Definition: numericalFlux.c:5117
calculateGlobalExteriorNumericalAdvectiveFluxRusanov
void calculateGlobalExteriorNumericalAdvectiveFluxRusanov(double safetyFactor, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *df_element, double *flux, double *dflux)
Definition: numericalFlux.c:463
calculateGlobalExteriorNumericalFluxDarcyFCFF
void calculateGlobalExteriorNumericalFluxDarcyFCFF(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_um, const double *n, const double *bc_f_m, const double *bc_a_wm, const double *bc_a_mw, const double *bc_a_mm, const double *bc_grad_phi_w, const double *bc_grad_phi_m, const double *bc_u_w, const double *bc_u_m, const double *f_m, const double *df_m_dw, const double *a_wm, const double *a_mw, const double *a_mm, const double *grad_phi_w, const double *grad_phi_m, const double *u_w, const double *u_m, const double *penalty_w, const double *penalty_m, double *advectiveFlux_m, double *dadvectiveFlux_m_dw, double *diffusiveFlux_wm, double *diffusiveFlux_mw, double *diffusiveFlux_mm)
Definition: numericalFlux.c:9773
calculateInteriorNumericalAdvectiveFlux_average
void calculateInteriorNumericalAdvectiveFlux_average(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *f, double *df, double *flux, double *dflux_left, double *dflux_right)
Calculate the advective flux at at interior element boundaries.
Definition: numericalFlux.c:4233
updateInteriorNumericalDiffusiveFluxJacobian_sd
void updateInteriorNumericalDiffusiveFluxJacobian_sd(int scale_penalty, double penalty_floor, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *l2g, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:1431
calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D
void calculateGlobalExteriorNumericalAdvectiveFluxNavierStokes3D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, int *isDOFBoundary_w, double *n, double *bc_p, double *bc_f_mass, double *bc_f_umom, double *bc_f_vmom, double *bc_f_wmom, double *p, double *f_mass, double *f_umom, double *f_vmom, double *f_wmom, double *df_mass_du, double *df_mass_dv, double *df_mass_dw, double *df_umom_dp, double *df_umom_du, double *df_umom_dv, double *df_umom_dw, double *df_vmom_dp, double *df_vmom_du, double *df_vmom_dv, double *df_vmom_dw, double *df_wmom_dp, double *df_wmom_du, double *df_wmom_dv, double *df_wmom_dw, double *flux_mass, double *flux_umom, double *flux_vmom, double *flux_wmom, double *dflux_mass_du, double *dflux_mass_dv, double *dflux_mass_dw, double *dflux_umom_dp, double *dflux_umom_du, double *dflux_umom_dv, double *dflux_umom_dw, double *dflux_vmom_dp, double *dflux_vmom_du, double *dflux_vmom_dv, double *dflux_vmom_dw, double *dflux_wmom_dp, double *dflux_wmom_du, double *dflux_wmom_dv, double *dflux_wmom_dw, double *velocity)
Definition: numericalFlux.c:5735
calculateExteriorNumericalDiffusiveFlux
void calculateExteriorNumericalDiffusiveFlux(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Calculate the diffusive flux at exterior element boundary quadrature points.
Definition: numericalFlux.c:1930
updateExteriorNumericalDiffusiveFluxJacobian_free_sd
void updateExteriorNumericalDiffusiveFluxJacobian_free_sd(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *l2g, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:3680
updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd
void updateGlobalExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(int *isDiffusiveFluxBoundary, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *dphi, double *V, double *DV, double *DV_eb, double *v, double *penalty, double *fluxJacobian_exterior, double *fluxJacobian_eb)
Definition: numericalFlux.c:9138
calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian
void calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int nDOF_trial_element, const int *l2g, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *a_ww, const double *da_ww_dw, const double *da_ww_dn, const double *a_nn, const double *da_nn_dw, const double *da_nn_dn, const double *grad_phi_w, const double *grad_phi_n, const double *dphi_w_w, const double *dphi_w_n, const double *dphi_n_w, const double *dphi_n_n, const double *psi_w, const double *psi_c, const double *psi_n, const double *dpsi_n_dpsiw, const double *dpsi_n_dpsic, const double *v, const double *grad_v, const double *penalty_w, const double *penalty_n, double *fluxJacobian_ww, double *fluxJacobian_wn, double *fluxJacobian_nw, double *fluxJacobian_nn)
Definition: numericalFlux.c:12307
calculateGlobalExteriorLesaintRaviartNumericalFlux
void calculateGlobalExteriorLesaintRaviartNumericalFlux(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int speedEvalFlag, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_H, double *bc_dH, double *u, double *H, double *dH, double *flux, double *dflux)
Definition: numericalFlux.c:9675
calculateExteriorNumericalFluxShallowWater_1D
void calculateExteriorNumericalFluxShallowWater_1D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, double h_eps, double tol_u, double g, double *n, double *h_lv, double *hu_lv, double *h_rv, double *hu_rv, double *flux_h, double *flux_hu)
Definition: numericalFlux.c:13416
calculateInteriorLesaintRaviartNumericalFlux
void calculateInteriorLesaintRaviartNumericalFlux(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int speedEvalFlag, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *H, double *dH, double *flux, double *dflux_left, double *dflux_right)
Definition: numericalFlux.c:9435
calculateExteriorNumericalAdvectiveFluxStokesP3D
void calculateExteriorNumericalAdvectiveFluxStokesP3D(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, int *isDOFBoundary_w, double *n, double *bc_f, double *bc_fpu, double *bc_fpv, double *bc_fpw, double *f, double *fpu, double *fpv, double *fpw, double *df_du, double *df_dv, double *df_dw, double *dfpu_dp, double *dfpv_dp, double *dfpw_dp, double *flux, double *fluxpu, double *fluxpv, double *fluxpw, double *dflux_du, double *dflux_dv, double *dflux_dw, double *dfluxpu_dp, double *dfluxpv_dp, double *dfluxpw_dp)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:6650
updateInteriorNumericalDiffusiveFluxJacobian
void updateInteriorNumericalDiffusiveFluxJacobian(int scale_penalty, double penalty_floor, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *l2g, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *grad_phi, double *dphi, double *v, double *grad_v, double *penalty, double *fluxJacobian)
Calculate the diffusive flux Jacobian at interior element boundary quadrature points.
Definition: numericalFlux.c:1255
calculateExteriorNumericalAdvectiveFlux_free
void calculateExteriorNumericalAdvectiveFlux_free(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *flux, double *dflux)
Definition: numericalFlux.c:4789
calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian
void calculateGlobalExteriorNumericalFluxDarcyFC_diffusiveFluxJacobian(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int nDOF_trial_element, const int *l2g, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *a_ww, const double *da_ww_dw, const double *da_ww_dn, const double *a_nn, const double *da_nn_dw, const double *da_nn_dn, const double *grad_phi_w, const double *grad_phi_n, const double *dphi_w_w, const double *dphi_w_n, const double *dphi_n_w, const double *dphi_n_n, const double *s_w, const double *psi_w, const double *psi_n, const double *dpsi_n_dsw, const double *dpsi_n_dpsiw, const double *v, const double *grad_v, const double *penalty_w, const double *penalty_n, double *fluxJacobian_ww, double *fluxJacobian_wn, double *fluxJacobian_nw, double *fluxJacobian_nn)
Definition: numericalFlux.c:11151
calculateExteriorNumericalAdvectiveFlux_average
void calculateExteriorNumericalAdvectiveFlux_average(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *flux, double *dflux)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:7633
calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd
void calculateInteriorNumericalDiffusiveFlux_LDG_upwind_sd(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *a, double *phi, double *V, double *penalty, double *flux)
Definition: numericalFlux.c:8081
calculateInteriorNumericalDiffusiveFlux_sd
void calculateInteriorNumericalDiffusiveFlux_sd(int scale_penalty, double penalty_floor, int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Definition: numericalFlux.c:987
calculateInteriorNumericalFluxShallowWater_1D
void calculateInteriorNumericalFluxShallowWater_1D(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, double h_eps, double tol_u, double g, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *h, double *hu, double *flux_h, double *flux_hu)
Definition: numericalFlux.c:13365
calculateGlobalExteriorNumericalFluxDarcyFCFF_sd
void calculateGlobalExteriorNumericalFluxDarcyFCFF_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr_wm, int *colind_wm, int *rowptr_mw, int *colind_mw, int *rowptr_mm, int *colind_mm, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_um, const double *n, const double *bc_f_m, const double *bc_a_wm, const double *bc_a_mw, const double *bc_a_mm, const double *bc_grad_phi_w, const double *bc_grad_phi_m, const double *bc_u_w, const double *bc_u_m, const double *f_m, const double *df_m_dw, const double *a_wm, const double *a_mw, const double *a_mm, const double *grad_phi_w, const double *grad_phi_m, const double *u_w, const double *u_m, const double *penalty_w, const double *penalty_m, double *advectiveFlux_m, double *dadvectiveFlux_m_dw, double *diffusiveFlux_wm, double *diffusiveFlux_mw, double *diffusiveFlux_mm)
Definition: numericalFlux.c:9952
calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd
void calculateExteriorNumericalDiffusiveFlux_LDG_upwind_sd(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *a, double *phi_bc, double *phi, double *V, double *penalty, double *flux)
Definition: numericalFlux.c:8588
calculateExteriorNumericalAdvectiveFluxRusanov
void calculateExteriorNumericalAdvectiveFluxRusanov(double safetyFactor, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *df_element, double *flux, double *dflux)
Definition: numericalFlux.c:326
calculateDiffusionMatrixSplittings_LDG_sd
void calculateDiffusionMatrixSplittings_LDG_sd(int aSplit, int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_element, int nQuadraturePoints_elementBoundary, int nSpace, const int *rowptr, const int *colind, const double *ebq_a, const double *q_a, double *eb_aHat, double *eb_aTilde, double *aHat, double *aTilde)
Definition: numericalFlux.c:9255
calculateExteriorNumericalDiffusiveFlux_sd
void calculateExteriorNumericalDiffusiveFlux_sd(int scale_penalty, double penalty_floor, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Definition: numericalFlux.c:2010
r
Double r
Definition: Headers.h:83
updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd
void updateExteriorNumericalDiffusiveFluxJacobian_LDG_upwind_sd(int *isDiffusiveFluxBoundary, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *a, double *da, double *dphi, double *V, double *DV, double *DV_eb, double *v, double *penalty, double *fluxJacobian, double *fluxJacobian_eb)
Definition: numericalFlux.c:8901
calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind
void calculateGlobalExteriorNumericalDiffusiveFlux_LDG_upwind(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *a, double *phi_bc, double *phi, double *V, double *penalty, double *flux)
Calculate the advective flux at at global exterior element boundaries.
Definition: numericalFlux.c:8655
calculateGlobalExteriorNumericalDiffusiveFlux_free_sd
void calculateGlobalExteriorNumericalDiffusiveFlux_free_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, double *n, double *bc_a, double *bc_grad_phi, double *bc_u, double *a, double *grad_phi, double *u, double *penalty, double *flux)
Definition: numericalFlux.c:2688
calculateExteriorNumericalAdvectiveFlux
void calculateExteriorNumericalAdvectiveFlux(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *flux, double *dflux)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:4439
calculateGlobalExteriorNumericalAdvectiveFluxStokes3D
void calculateGlobalExteriorNumericalAdvectiveFluxStokes3D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, int *isDOFBoundary_w, double *n, double *bc_p, double *bc_f_mass, double *p, double *f_mass, double *df_mass_du, double *df_mass_dv, double *df_mass_dw, double *flux_mass, double *flux_umom, double *flux_vmom, double *flux_wmom, double *dflux_mass_du, double *dflux_mass_dv, double *dflux_mass_dw, double *dflux_umom_dp, double *dflux_vmom_dp, double *dflux_wmom_dp, double *velocity)
Definition: numericalFlux.c:7369
pos
double pos(double a)
Definition: testFMMandFSW.cpp:8
calculateInteriorChengShuNumericalFlux
void calculateInteriorChengShuNumericalFlux(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_element, int nSpace, int speedEvalFlag, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *n, double *u, double *H, double *dH, double *H_element, double *dH_element, double *flux, double *dflux_left, double *dflux_right)
Definition: numericalFlux.c:13937
calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd
void calculateGlobalExteriorNumericalFluxDarcyFCPP_diffusiveFluxJacobian_sd(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int nDOF_trial_element, int *rowptr_ww, int *colind_ww, int *rowptr_nn, int *colind_nn, const int *l2g, const int *exteriorElementBoundaries, const int *elementBoundaryElements, const int *elementBoundaryLocalElementBoundaries, const int *isDOFBoundary_uw, const int *isDOFBoundary_un, int fluxBoundaryFlag_uw, int fluxBoundaryFlag_un, const double *n, const double *a_ww, const double *da_ww_dw, const double *da_ww_dn, const double *a_nn, const double *da_nn_dw, const double *da_nn_dn, const double *grad_phi_w, const double *grad_phi_n, const double *dphi_w_w, const double *dphi_w_n, const double *dphi_n_w, const double *dphi_n_n, const double *psi_w, const double *psi_c, const double *psi_n, const double *dpsi_n_dpsiw, const double *dpsi_n_dpsic, const double *v, const double *grad_v, const double *penalty_w, const double *penalty_n, double *fluxJacobian_ww, double *fluxJacobian_wn, double *fluxJacobian_nw, double *fluxJacobian_nn)
Definition: numericalFlux.c:12652
calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D
void calculateGlobalExteriorNumericalAdvectiveFluxStokesP3D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary_p, int *isDOFBoundary_u, int *isDOFBoundary_v, int *isDOFBoundary_w, double *n, double *bc_f, double *bc_fpu, double *bc_fpv, double *bc_fpw, double *f, double *fpu, double *fpv, double *fpw, double *df_du, double *df_dv, double *df_dw, double *dfpu_dp, double *dfpv_dp, double *dfpw_dp, double *flux, double *fluxpu, double *fluxpv, double *fluxpw, double *dflux_du, double *dflux_dv, double *dflux_dw, double *dfluxpu_dp, double *dfluxpv_dp, double *dfluxpw_dp)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:6934
updateExteriorNumericalAdvectiveFluxJacobian
void updateExteriorNumericalAdvectiveFluxJacobian(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *inflowFlag, double *dflux_left, double *v, double *fluxJacobian)
Calculate the advective flux at exterior element boundaries.
Definition: numericalFlux.c:7797
applySeepageFace
void applySeepageFace(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isSeepageFace, int *isDOFBoundary, double epsFact, double *elementDiameters, double *g, double *n, double *grad_u, double *u, double *advectiveFlux, double *diffusiveFlux)
Definition: numericalFlux.c:14211
applySeepageFaceJacobian
void applySeepageFaceJacobian(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isSeepageFace, double epsFact, double *elementDiameters, double *g, double *n, double *grad_u, double *u, double *advectiveFlux, double *diffusiveFlux, double *v, double *fluxJacobian)
Definition: numericalFlux.c:14454
updateInteriorNumericalAdvectiveFluxJacobian
void updateInteriorNumericalAdvectiveFluxJacobian(int nInteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int *interiorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *dflux_left, double *dflux_right, double *v, double *fluxJacobian)
Calculate the advective flux at at interior element boundaries.
Definition: numericalFlux.c:4092
calculateExteriorNumericalFluxShallowWaterHLL_1D
void calculateExteriorNumericalFluxShallowWaterHLL_1D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, double h_eps, double tol_u, double g, double *n, double *h_lv, double *hu_lv, double *h_rv, double *hu_rv, double *flux_h, double *flux_hu)
Definition: numericalFlux.c:13804
calculateGlobalExteriorNumericalAdvectiveFlux_average
void calculateGlobalExteriorNumericalAdvectiveFlux_average(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *isDOFBoundary, int *inflowFlag, double *n, double *bc_u, double *bc_f, double *bc_df, double *u, double *f, double *df, double *flux, double *dflux)
Calculate the advective flux at at exterior element boundaries.
Definition: numericalFlux.c:7711
calculateExteriorNumericalFluxShallowWater_2D
void calculateExteriorNumericalFluxShallowWater_2D(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, double h_eps, double tol_u, double g, double *n, double *h_lq, double *hu_lq, double *hv_lq, double *h_rq, double *hu_rq, double *hv_rq, double *flux_h, double *flux_hu, double *flux_hv)
Definition: numericalFlux.c:13541
updateGlobalExteriorNumericalAdvectiveFluxJacobian_free
void updateGlobalExteriorNumericalAdvectiveFluxJacobian_free(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *inflowFlag, double *dflux_left, double *v, double *fluxJacobian)
Definition: numericalFlux.c:7923
calculateExteriorNumericalFluxJacobianRichards_sd
void calculateExteriorNumericalFluxJacobianRichards_sd(int *rowptr, int *colind, int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nDOF_trial_element, int nSpace, int *isDOFBoundary, double *n, double *bc_u, double *K, double *dK, double *grad_psi, double *grad_v, double *u, double *dK_rho_g, double *v, double *penalty, double *fluxJacobian)
Definition: numericalFlux.c:14365