proteus  1.8.1
C/C++/Fortran libraries
cpostprocessing.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__cpostprocessing
694 #define __PYX_HAVE_API__cpostprocessing
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 "postprocessing.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/cpostprocessing.pyx",
939  "stringsource",
940  "__init__.pxd",
941  "type.pxd",
942 };
943 /* BufferFormatStructs.proto */
944 #define IS_UNSIGNED(type) (((type) -1) > 0)
945 struct __Pyx_StructField_;
946 #define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0)
947 typedef struct {
948  const char* name;
949  struct __Pyx_StructField_* fields;
950  size_t size;
951  size_t arraysize[8];
952  int ndim;
953  char typegroup;
954  char is_unsigned;
955  int flags;
956 } __Pyx_TypeInfo;
957 typedef struct __Pyx_StructField_ {
958  __Pyx_TypeInfo* type;
959  const char* name;
960  size_t offset;
961 } __Pyx_StructField;
962 typedef struct {
963  __Pyx_StructField* field;
964  size_t parent_offset;
965 } __Pyx_BufFmt_StackElem;
966 typedef struct {
967  __Pyx_StructField root;
968  __Pyx_BufFmt_StackElem* head;
969  size_t fmt_offset;
970  size_t new_count, enc_count;
971  size_t struct_alignment;
972  int is_complex;
973  char enc_type;
974  char new_packmode;
975  char enc_packmode;
976  char is_valid_array;
977 } __Pyx_BufFmt_Context;
978 
979 
980 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":690
981  * # in Cython to enable them only on the right systems.
982  *
983  * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<<
984  * ctypedef npy_int16 int16_t
985  * ctypedef npy_int32 int32_t
986  */
987 typedef npy_int8 __pyx_t_5numpy_int8_t;
988 
989 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":691
990  *
991  * ctypedef npy_int8 int8_t
992  * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<<
993  * ctypedef npy_int32 int32_t
994  * ctypedef npy_int64 int64_t
995  */
996 typedef npy_int16 __pyx_t_5numpy_int16_t;
997 
998 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":692
999  * ctypedef npy_int8 int8_t
1000  * ctypedef npy_int16 int16_t
1001  * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<<
1002  * ctypedef npy_int64 int64_t
1003  * #ctypedef npy_int96 int96_t
1004  */
1005 typedef npy_int32 __pyx_t_5numpy_int32_t;
1006 
1007 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":693
1008  * ctypedef npy_int16 int16_t
1009  * ctypedef npy_int32 int32_t
1010  * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<<
1011  * #ctypedef npy_int96 int96_t
1012  * #ctypedef npy_int128 int128_t
1013  */
1014 typedef npy_int64 __pyx_t_5numpy_int64_t;
1015 
1016 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":697
1017  * #ctypedef npy_int128 int128_t
1018  *
1019  * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<<
1020  * ctypedef npy_uint16 uint16_t
1021  * ctypedef npy_uint32 uint32_t
1022  */
1023 typedef npy_uint8 __pyx_t_5numpy_uint8_t;
1024 
1025 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":698
1026  *
1027  * ctypedef npy_uint8 uint8_t
1028  * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<<
1029  * ctypedef npy_uint32 uint32_t
1030  * ctypedef npy_uint64 uint64_t
1031  */
1032 typedef npy_uint16 __pyx_t_5numpy_uint16_t;
1033 
1034 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":699
1035  * ctypedef npy_uint8 uint8_t
1036  * ctypedef npy_uint16 uint16_t
1037  * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<<
1038  * ctypedef npy_uint64 uint64_t
1039  * #ctypedef npy_uint96 uint96_t
1040  */
1041 typedef npy_uint32 __pyx_t_5numpy_uint32_t;
1042 
1043 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":700
1044  * ctypedef npy_uint16 uint16_t
1045  * ctypedef npy_uint32 uint32_t
1046  * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<<
1047  * #ctypedef npy_uint96 uint96_t
1048  * #ctypedef npy_uint128 uint128_t
1049  */
1050 typedef npy_uint64 __pyx_t_5numpy_uint64_t;
1051 
1052 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":704
1053  * #ctypedef npy_uint128 uint128_t
1054  *
1055  * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<<
1056  * ctypedef npy_float64 float64_t
1057  * #ctypedef npy_float80 float80_t
1058  */
1059 typedef npy_float32 __pyx_t_5numpy_float32_t;
1060 
1061 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":705
1062  *
1063  * ctypedef npy_float32 float32_t
1064  * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<<
1065  * #ctypedef npy_float80 float80_t
1066  * #ctypedef npy_float128 float128_t
1067  */
1068 typedef npy_float64 __pyx_t_5numpy_float64_t;
1069 
1070 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":714
1071  * # The int types are mapped a bit surprising --
1072  * # numpy.int corresponds to 'l' and numpy.long to 'q'
1073  * ctypedef npy_long int_t # <<<<<<<<<<<<<<
1074  * ctypedef npy_longlong long_t
1075  * ctypedef npy_longlong longlong_t
1076  */
1077 typedef npy_long __pyx_t_5numpy_int_t;
1078 
1079 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":715
1080  * # numpy.int corresponds to 'l' and numpy.long to 'q'
1081  * ctypedef npy_long int_t
1082  * ctypedef npy_longlong long_t # <<<<<<<<<<<<<<
1083  * ctypedef npy_longlong longlong_t
1084  *
1085  */
1086 typedef npy_longlong __pyx_t_5numpy_long_t;
1087 
1088 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":716
1089  * ctypedef npy_long int_t
1090  * ctypedef npy_longlong long_t
1091  * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<<
1092  *
1093  * ctypedef npy_ulong uint_t
1094  */
1095 typedef npy_longlong __pyx_t_5numpy_longlong_t;
1096 
1097 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":718
1098  * ctypedef npy_longlong longlong_t
1099  *
1100  * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<<
1101  * ctypedef npy_ulonglong ulong_t
1102  * ctypedef npy_ulonglong ulonglong_t
1103  */
1104 typedef npy_ulong __pyx_t_5numpy_uint_t;
1105 
1106 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":719
1107  *
1108  * ctypedef npy_ulong uint_t
1109  * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<<
1110  * ctypedef npy_ulonglong ulonglong_t
1111  *
1112  */
1113 typedef npy_ulonglong __pyx_t_5numpy_ulong_t;
1114 
1115 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":720
1116  * ctypedef npy_ulong uint_t
1117  * ctypedef npy_ulonglong ulong_t
1118  * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<<
1119  *
1120  * ctypedef npy_intp intp_t
1121  */
1122 typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
1123 
1124 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":722
1125  * ctypedef npy_ulonglong ulonglong_t
1126  *
1127  * ctypedef npy_intp intp_t # <<<<<<<<<<<<<<
1128  * ctypedef npy_uintp uintp_t
1129  *
1130  */
1131 typedef npy_intp __pyx_t_5numpy_intp_t;
1132 
1133 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":723
1134  *
1135  * ctypedef npy_intp intp_t
1136  * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<<
1137  *
1138  * ctypedef npy_double float_t
1139  */
1140 typedef npy_uintp __pyx_t_5numpy_uintp_t;
1141 
1142 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":725
1143  * ctypedef npy_uintp uintp_t
1144  *
1145  * ctypedef npy_double float_t # <<<<<<<<<<<<<<
1146  * ctypedef npy_double double_t
1147  * ctypedef npy_longdouble longdouble_t
1148  */
1149 typedef npy_double __pyx_t_5numpy_float_t;
1150 
1151 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":726
1152  *
1153  * ctypedef npy_double float_t
1154  * ctypedef npy_double double_t # <<<<<<<<<<<<<<
1155  * ctypedef npy_longdouble longdouble_t
1156  *
1157  */
1158 typedef npy_double __pyx_t_5numpy_double_t;
1159 
1160 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":727
1161  * ctypedef npy_double float_t
1162  * ctypedef npy_double double_t
1163  * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<<
1164  *
1165  * ctypedef npy_cfloat cfloat_t
1166  */
1167 typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
1168 /* Declarations.proto */
1169 #if CYTHON_CCOMPLEX
1170  #ifdef __cplusplus
1171  typedef ::std::complex< float > __pyx_t_float_complex;
1172  #else
1173  typedef float _Complex __pyx_t_float_complex;
1174  #endif
1175 #else
1176  typedef struct { float real, imag; } __pyx_t_float_complex;
1177 #endif
1178 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);
1179 
1180 /* Declarations.proto */
1181 #if CYTHON_CCOMPLEX
1182  #ifdef __cplusplus
1183  typedef ::std::complex< double > __pyx_t_double_complex;
1184  #else
1185  typedef double _Complex __pyx_t_double_complex;
1186  #endif
1187 #else
1188  typedef struct { double real, imag; } __pyx_t_double_complex;
1189 #endif
1190 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);
1191 
1192 
1193 /*--- Type declarations ---*/
1194 struct __pyx_obj_15cpostprocessing_NodeStarFactor;
1195 
1196 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":729
1197  * ctypedef npy_longdouble longdouble_t
1198  *
1199  * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<<
1200  * ctypedef npy_cdouble cdouble_t
1201  * ctypedef npy_clongdouble clongdouble_t
1202  */
1203 typedef npy_cfloat __pyx_t_5numpy_cfloat_t;
1204 
1205 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":730
1206  *
1207  * ctypedef npy_cfloat cfloat_t
1208  * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<<
1209  * ctypedef npy_clongdouble clongdouble_t
1210  *
1211  */
1212 typedef npy_cdouble __pyx_t_5numpy_cdouble_t;
1213 
1214 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":731
1215  * ctypedef npy_cfloat cfloat_t
1216  * ctypedef npy_cdouble cdouble_t
1217  * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<<
1218  *
1219  * ctypedef npy_cdouble complex_t
1220  */
1221 typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t;
1222 
1223 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":733
1224  * ctypedef npy_clongdouble clongdouble_t
1225  *
1226  * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<<
1227  *
1228  * cdef inline object PyArray_MultiIterNew1(a):
1229  */
1230 typedef npy_cdouble __pyx_t_5numpy_complex_t;
1231 
1232 /* "cpostprocessing.pyx":762
1233  *
1234  * # put in data structure for node star solves now
1235  * cdef class NodeStarFactor: # <<<<<<<<<<<<<<
1236  * cdef pp.NodeStarFactorStruct nsf
1237  * def __cinit__(self,
1238  */
1239 struct __pyx_obj_15cpostprocessing_NodeStarFactor {
1240  PyObject_HEAD
1242 };
1243 
1244 
1245 /* --- Runtime support code (head) --- */
1246 /* Refnanny.proto */
1247 #ifndef CYTHON_REFNANNY
1248  #define CYTHON_REFNANNY 0
1249 #endif
1250 #if CYTHON_REFNANNY
1251  typedef struct {
1252  void (*INCREF)(void*, PyObject*, int);
1253  void (*DECREF)(void*, PyObject*, int);
1254  void (*GOTREF)(void*, PyObject*, int);
1255  void (*GIVEREF)(void*, PyObject*, int);
1256  void* (*SetupContext)(const char*, int, const char*);
1257  void (*FinishContext)(void**);
1258  } __Pyx_RefNannyAPIStruct;
1259  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
1260  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
1261  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
1262 #ifdef WITH_THREAD
1263  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
1264  if (acquire_gil) {\
1265  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
1266  __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
1267  PyGILState_Release(__pyx_gilstate_save);\
1268  } else {\
1269  __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
1270  }
1271 #else
1272  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
1273  __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
1274 #endif
1275  #define __Pyx_RefNannyFinishContext()\
1276  __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
1277  #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1278  #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1279  #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1280  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1281  #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
1282  #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
1283  #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
1284  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
1285 #else
1286  #define __Pyx_RefNannyDeclarations
1287  #define __Pyx_RefNannySetupContext(name, acquire_gil)
1288  #define __Pyx_RefNannyFinishContext()
1289  #define __Pyx_INCREF(r) Py_INCREF(r)
1290  #define __Pyx_DECREF(r) Py_DECREF(r)
1291  #define __Pyx_GOTREF(r)
1292  #define __Pyx_GIVEREF(r)
1293  #define __Pyx_XINCREF(r) Py_XINCREF(r)
1294  #define __Pyx_XDECREF(r) Py_XDECREF(r)
1295  #define __Pyx_XGOTREF(r)
1296  #define __Pyx_XGIVEREF(r)
1297 #endif
1298 #define __Pyx_XDECREF_SET(r, v) do {\
1299  PyObject *tmp = (PyObject *) r;\
1300  r = v; __Pyx_XDECREF(tmp);\
1301  } while (0)
1302 #define __Pyx_DECREF_SET(r, v) do {\
1303  PyObject *tmp = (PyObject *) r;\
1304  r = v; __Pyx_DECREF(tmp);\
1305  } while (0)
1306 #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
1307 #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
1308 
1309 /* PyObjectGetAttrStr.proto */
1310 #if CYTHON_USE_TYPE_SLOTS
1311 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
1312 #else
1313 #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
1314 #endif
1315 
1316 /* GetBuiltinName.proto */
1317 static PyObject *__Pyx_GetBuiltinName(PyObject *name);
1318 
1319 /* RaiseArgTupleInvalid.proto */
1320 static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
1321  Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
1322 
1323 /* RaiseDoubleKeywords.proto */
1324 static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
1325 
1326 /* ParseKeywords.proto */
1327 static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
1328  PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
1329  const char* function_name);
1330 
1331 /* ArgTypeTest.proto */
1332 #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
1333  ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\
1334  __Pyx__ArgTypeTest(obj, type, name, exact))
1335 static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);
1336 
1337 /* PyObjectCall.proto */
1338 #if CYTHON_COMPILING_IN_CPYTHON
1339 static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
1340 #else
1341 #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
1342 #endif
1343 
1344 /* PyThreadStateGet.proto */
1345 #if CYTHON_FAST_THREAD_STATE
1346 #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate;
1347 #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current;
1348 #define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type
1349 #else
1350 #define __Pyx_PyThreadState_declare
1351 #define __Pyx_PyThreadState_assign
1352 #define __Pyx_PyErr_Occurred() PyErr_Occurred()
1353 #endif
1354 
1355 /* PyErrFetchRestore.proto */
1356 #if CYTHON_FAST_THREAD_STATE
1357 #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
1358 #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
1359 #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
1360 #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
1361 #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
1362 static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
1363 static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1364 #if CYTHON_COMPILING_IN_CPYTHON
1365 #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
1366 #else
1367 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
1368 #endif
1369 #else
1370 #define __Pyx_PyErr_Clear() PyErr_Clear()
1371 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
1372 #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb)
1373 #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb)
1374 #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb)
1375 #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb)
1376 #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb)
1377 #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb)
1378 #endif
1379 
1380 /* RaiseException.proto */
1381 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
1382 
1383 /* IsLittleEndian.proto */
1384 static CYTHON_INLINE int __Pyx_Is_Little_Endian(void);
1385 
1386 /* BufferFormatCheck.proto */
1387 static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts);
1388 static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
1389  __Pyx_BufFmt_StackElem* stack,
1390  __Pyx_TypeInfo* type);
1391 
1392 /* BufferGetAndValidate.proto */
1393 #define __Pyx_GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)\
1394  ((obj == Py_None || obj == NULL) ?\
1395  (__Pyx_ZeroBuffer(buf), 0) :\
1396  __Pyx__GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack))
1397 static int __Pyx__GetBufferAndValidate(Py_buffer* buf, PyObject* obj,
1398  __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack);
1399 static void __Pyx_ZeroBuffer(Py_buffer* buf);
1400 static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info);
1401 static Py_ssize_t __Pyx_minusones[] = { -1, -1, -1, -1, -1, -1, -1, -1 };
1402 static Py_ssize_t __Pyx_zeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
1403 
1404 /* GetItemInt.proto */
1405 #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
1406  (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
1407  __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
1408  (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
1409  __Pyx_GetItemInt_Generic(o, to_py_func(i))))
1410 #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
1411  (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
1412  __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
1413  (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
1414 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
1415  int wraparound, int boundscheck);
1416 #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
1417  (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
1418  __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
1419  (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
1420 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
1421  int wraparound, int boundscheck);
1422 static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
1423 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
1424  int is_list, int wraparound, int boundscheck);
1425 
1426 /* ObjectGetItem.proto */
1427 #if CYTHON_USE_TYPE_SLOTS
1428 static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key);
1429 #else
1430 #define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key)
1431 #endif
1432 
1433 /* BufferIndexError.proto */
1434 static void __Pyx_RaiseBufferIndexError(int axis);
1435 
1436 #define __Pyx_BufPtrStrided2d(type, buf, i0, s0, i1, s1) (type)((char*)buf + i0 * s0 + i1 * s1)
1437 /* GetTopmostException.proto */
1438 #if CYTHON_USE_EXC_INFO_STACK
1439 static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
1440 #endif
1441 
1442 /* SaveResetException.proto */
1443 #if CYTHON_FAST_THREAD_STATE
1444 #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
1445 static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1446 #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
1447 static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
1448 #else
1449 #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb)
1450 #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb)
1451 #endif
1452 
1453 /* PyErrExceptionMatches.proto */
1454 #if CYTHON_FAST_THREAD_STATE
1455 #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
1456 static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
1457 #else
1458 #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err)
1459 #endif
1460 
1461 /* GetException.proto */
1462 #if CYTHON_FAST_THREAD_STATE
1463 #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb)
1464 static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1465 #else
1466 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
1467 #endif
1468 
1469 /* PyObject_GenericGetAttrNoDict.proto */
1470 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
1471 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
1472 #else
1473 #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr
1474 #endif
1475 
1476 /* PyObject_GenericGetAttr.proto */
1477 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
1478 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
1479 #else
1480 #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
1481 #endif
1482 
1483 /* PyObjectGetAttrStrNoError.proto */
1484 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);
1485 
1486 /* SetupReduce.proto */
1487 static int __Pyx_setup_reduce(PyObject* type_obj);
1488 
1489 /* TypeImport.proto */
1490 #ifndef __PYX_HAVE_RT_ImportType_proto
1491 #define __PYX_HAVE_RT_ImportType_proto
1492 enum __Pyx_ImportType_CheckSize {
1493  __Pyx_ImportType_CheckSize_Error = 0,
1494  __Pyx_ImportType_CheckSize_Warn = 1,
1495  __Pyx_ImportType_CheckSize_Ignore = 2
1496 };
1497 static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size);
1498 #endif
1499 
1500 /* Import.proto */
1501 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);
1502 
1503 /* PyDictVersioning.proto */
1504 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
1505 #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
1506 #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
1507 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
1508  (version_var) = __PYX_GET_DICT_VERSION(dict);\
1509  (cache_var) = (value);
1510 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
1511  static PY_UINT64_T __pyx_dict_version = 0;\
1512  static PyObject *__pyx_dict_cached_value = NULL;\
1513  if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
1514  (VAR) = __pyx_dict_cached_value;\
1515  } else {\
1516  (VAR) = __pyx_dict_cached_value = (LOOKUP);\
1517  __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
1518  }\
1519 }
1520 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
1521 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
1522 static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
1523 #else
1524 #define __PYX_GET_DICT_VERSION(dict) (0)
1525 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
1526 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP);
1527 #endif
1528 
1529 /* CLineInTraceback.proto */
1530 #ifdef CYTHON_CLINE_IN_TRACEBACK
1531 #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
1532 #else
1533 static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
1534 #endif
1535 
1536 /* CodeObjectCache.proto */
1537 typedef struct {
1538  PyCodeObject* code_object;
1539  int code_line;
1540 } __Pyx_CodeObjectCacheEntry;
1541 struct __Pyx_CodeObjectCache {
1542  int count;
1543  int max_count;
1544  __Pyx_CodeObjectCacheEntry* entries;
1545 };
1546 static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
1547 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
1548 static PyCodeObject *__pyx_find_code_object(int code_line);
1549 static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
1550 
1551 /* AddTraceback.proto */
1552 static void __Pyx_AddTraceback(const char *funcname, int c_line,
1553  int py_line, const char *filename);
1554 
1555 /* BufferStructDeclare.proto */
1556 typedef struct {
1557  Py_ssize_t shape, strides, suboffsets;
1558 } __Pyx_Buf_DimInfo;
1559 typedef struct {
1560  size_t refcount;
1561  Py_buffer pybuffer;
1562 } __Pyx_Buffer;
1563 typedef struct {
1564  __Pyx_Buffer *rcbuffer;
1565  char *data;
1566  __Pyx_Buf_DimInfo diminfo[8];
1567 } __Pyx_LocalBuf_ND;
1568 
1569 #if PY_MAJOR_VERSION < 3
1570  static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags);
1571  static void __Pyx_ReleaseBuffer(Py_buffer *view);
1572 #else
1573  #define __Pyx_GetBuffer PyObject_GetBuffer
1574  #define __Pyx_ReleaseBuffer PyBuffer_Release
1575 #endif
1576 
1577 
1578 /* GCCDiagnostics.proto */
1579 #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
1580 #define __Pyx_HAS_GCC_DIAGNOSTIC
1581 #endif
1582 
1583 /* RealImag.proto */
1584 #if CYTHON_CCOMPLEX
1585  #ifdef __cplusplus
1586  #define __Pyx_CREAL(z) ((z).real())
1587  #define __Pyx_CIMAG(z) ((z).imag())
1588  #else
1589  #define __Pyx_CREAL(z) (__real__(z))
1590  #define __Pyx_CIMAG(z) (__imag__(z))
1591  #endif
1592 #else
1593  #define __Pyx_CREAL(z) ((z).real)
1594  #define __Pyx_CIMAG(z) ((z).imag)
1595 #endif
1596 #if defined(__cplusplus) && CYTHON_CCOMPLEX\
1597  && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)
1598  #define __Pyx_SET_CREAL(z,x) ((z).real(x))
1599  #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
1600 #else
1601  #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
1602  #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
1603 #endif
1604 
1605 /* Arithmetic.proto */
1606 #if CYTHON_CCOMPLEX
1607  #define __Pyx_c_eq_float(a, b) ((a)==(b))
1608  #define __Pyx_c_sum_float(a, b) ((a)+(b))
1609  #define __Pyx_c_diff_float(a, b) ((a)-(b))
1610  #define __Pyx_c_prod_float(a, b) ((a)*(b))
1611  #define __Pyx_c_quot_float(a, b) ((a)/(b))
1612  #define __Pyx_c_neg_float(a) (-(a))
1613  #ifdef __cplusplus
1614  #define __Pyx_c_is_zero_float(z) ((z)==(float)0)
1615  #define __Pyx_c_conj_float(z) (::std::conj(z))
1616  #if 1
1617  #define __Pyx_c_abs_float(z) (::std::abs(z))
1618  #define __Pyx_c_pow_float(a, b) (::std::pow(a, b))
1619  #endif
1620  #else
1621  #define __Pyx_c_is_zero_float(z) ((z)==0)
1622  #define __Pyx_c_conj_float(z) (conjf(z))
1623  #if 1
1624  #define __Pyx_c_abs_float(z) (cabsf(z))
1625  #define __Pyx_c_pow_float(a, b) (cpowf(a, b))
1626  #endif
1627  #endif
1628 #else
1629  static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
1630  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
1631  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
1632  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
1633  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
1634  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
1635  static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);
1636  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
1637  #if 1
1638  static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);
1639  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
1640  #endif
1641 #endif
1642 
1643 /* Arithmetic.proto */
1644 #if CYTHON_CCOMPLEX
1645  #define __Pyx_c_eq_double(a, b) ((a)==(b))
1646  #define __Pyx_c_sum_double(a, b) ((a)+(b))
1647  #define __Pyx_c_diff_double(a, b) ((a)-(b))
1648  #define __Pyx_c_prod_double(a, b) ((a)*(b))
1649  #define __Pyx_c_quot_double(a, b) ((a)/(b))
1650  #define __Pyx_c_neg_double(a) (-(a))
1651  #ifdef __cplusplus
1652  #define __Pyx_c_is_zero_double(z) ((z)==(double)0)
1653  #define __Pyx_c_conj_double(z) (::std::conj(z))
1654  #if 1
1655  #define __Pyx_c_abs_double(z) (::std::abs(z))
1656  #define __Pyx_c_pow_double(a, b) (::std::pow(a, b))
1657  #endif
1658  #else
1659  #define __Pyx_c_is_zero_double(z) ((z)==0)
1660  #define __Pyx_c_conj_double(z) (conj(z))
1661  #if 1
1662  #define __Pyx_c_abs_double(z) (cabs(z))
1663  #define __Pyx_c_pow_double(a, b) (cpow(a, b))
1664  #endif
1665  #endif
1666 #else
1667  static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
1668  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
1669  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
1670  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
1671  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
1672  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
1673  static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);
1674  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
1675  #if 1
1676  static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);
1677  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
1678  #endif
1679 #endif
1680 
1681 /* CIntFromPy.proto */
1682 static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
1683 
1684 /* CIntToPy.proto */
1685 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_Py_intptr_t(Py_intptr_t value);
1686 
1687 /* CIntToPy.proto */
1688 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
1689 
1690 /* CIntToPy.proto */
1691 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
1692 
1693 /* CIntFromPy.proto */
1694 static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
1695 
1696 /* FastTypeChecks.proto */
1697 #if CYTHON_COMPILING_IN_CPYTHON
1698 #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
1699 static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
1700 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
1701 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
1702 #else
1703 #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
1704 #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
1705 #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
1706 #endif
1707 #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
1708 
1709 /* CheckBinaryVersion.proto */
1710 static int __Pyx_check_binary_version(void);
1711 
1712 /* InitStrings.proto */
1713 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
1714 
1715 
1716 /* Module declarations from 'cpython.buffer' */
1717 
1718 /* Module declarations from 'libc.string' */
1719 
1720 /* Module declarations from 'libc.stdio' */
1721 
1722 /* Module declarations from '__builtin__' */
1723 
1724 /* Module declarations from 'cpython.type' */
1725 static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;
1726 
1727 /* Module declarations from 'cpython' */
1728 
1729 /* Module declarations from 'cpython.object' */
1730 
1731 /* Module declarations from 'cpython.ref' */
1732 
1733 /* Module declarations from 'cpython.mem' */
1734 
1735 /* Module declarations from 'numpy' */
1736 
1737 /* Module declarations from 'numpy' */
1738 static PyTypeObject *__pyx_ptype_5numpy_dtype = 0;
1739 static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0;
1740 static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0;
1741 static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0;
1742 static PyTypeObject *__pyx_ptype_5numpy_generic = 0;
1743 static PyTypeObject *__pyx_ptype_5numpy_number = 0;
1744 static PyTypeObject *__pyx_ptype_5numpy_integer = 0;
1745 static PyTypeObject *__pyx_ptype_5numpy_signedinteger = 0;
1746 static PyTypeObject *__pyx_ptype_5numpy_unsignedinteger = 0;
1747 static PyTypeObject *__pyx_ptype_5numpy_inexact = 0;
1748 static PyTypeObject *__pyx_ptype_5numpy_floating = 0;
1749 static PyTypeObject *__pyx_ptype_5numpy_complexfloating = 0;
1750 static PyTypeObject *__pyx_ptype_5numpy_flexible = 0;
1751 static PyTypeObject *__pyx_ptype_5numpy_character = 0;
1752 static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0;
1753 
1754 /* Module declarations from 'postprocessing' */
1755 
1756 /* Module declarations from 'cpostprocessing' */
1757 static PyTypeObject *__pyx_ptype_15cpostprocessing_NodeStarFactor = 0;
1758 static __Pyx_TypeInfo __Pyx_TypeInfo_int = { "int", NULL, sizeof(int), { 0 }, 0, IS_UNSIGNED(int) ? 'U' : 'I', IS_UNSIGNED(int), 0 };
1759 #define __Pyx_MODULE_NAME "cpostprocessing"
1760 extern int __pyx_module_is_main_cpostprocessing;
1761 int __pyx_module_is_main_cpostprocessing = 0;
1762 
1763 /* Implementation of 'cpostprocessing' */
1764 static PyObject *__pyx_builtin_range;
1765 static PyObject *__pyx_builtin_TypeError;
1766 static PyObject *__pyx_builtin_ImportError;
1767 static const char __pyx_k_I[] = "I";
1768 static const char __pyx_k_a[] = "a";
1769 static const char __pyx_k_f[] = "f";
1770 static const char __pyx_k_k[] = "k";
1771 static const char __pyx_k_n[] = "n";
1772 static const char __pyx_k_r[] = "r";
1773 static const char __pyx_k_u[] = "u";
1774 static const char __pyx_k_w[] = "w";
1775 static const char __pyx_k_x[] = "x";
1776 static const char __pyx_k_dS[] = "dS";
1777 static const char __pyx_k_dx[] = "dx";
1778 static const char __pyx_k_mt[] = "mt";
1779 static const char __pyx_k_np[] = "np";
1780 static const char __pyx_k_ebN[] = "ebN";
1781 static const char __pyx_k_phi[] = "phi";
1782 static const char __pyx_k_q_v[] = "q_v";
1783 static const char __pyx_k_detJ[] = "detJ";
1784 static const char __pyx_k_flux[] = "flux";
1785 static const char __pyx_k_main[] = "__main__";
1786 static const char __pyx_k_name[] = "__name__";
1787 static const char __pyx_k_pwcV[] = "pwcV";
1788 static const char __pyx_k_pwcW[] = "pwcW";
1789 static const char __pyx_k_size[] = "size";
1790 static const char __pyx_k_test[] = "__test__";
1791 static const char __pyx_k_alpha[] = "alpha";
1792 static const char __pyx_k_ebq_n[] = "ebq_n";
1793 static const char __pyx_k_ebq_v[] = "ebq_v";
1794 static const char __pyx_k_gradu[] = "gradu";
1795 static const char __pyx_k_numpy[] = "numpy";
1796 static const char __pyx_k_range[] = "range";
1797 static const char __pyx_k_vdofs[] = "vdofs";
1798 static const char __pyx_k_colind[] = "colind";
1799 static const char __pyx_k_degree[] = "degree";
1800 static const char __pyx_k_ebqe_v[] = "ebqe_v";
1801 static const char __pyx_k_import[] = "__import__";
1802 static const char __pyx_k_nSpace[] = "nSpace";
1803 static const char __pyx_k_quad_a[] = "quad_a";
1804 static const char __pyx_k_quad_f[] = "quad_f";
1805 static const char __pyx_k_reduce[] = "__reduce__";
1806 static const char __pyx_k_rowptr[] = "rowptr";
1807 static const char __pyx_k_v_ebqe[] = "v_ebqe";
1808 static const char __pyx_k_w_dS_f[] = "w_dS_f";
1809 static const char __pyx_k_w_dV_m[] = "w_dV_m";
1810 static const char __pyx_k_w_dV_r[] = "w_dV_r";
1811 static const char __pyx_k_x_ebqe[] = "x_ebqe";
1812 static const char __pyx_k_gradphi[] = "gradphi";
1813 static const char __pyx_k_nPoints[] = "nPoints";
1814 static const char __pyx_k_q_vdofs[] = "q_vdofs";
1815 static const char __pyx_k_getstate[] = "__getstate__";
1816 static const char __pyx_k_grad_phi[] = "grad_phi";
1817 static const char __pyx_k_p1_vdofs[] = "p1_vdofs";
1818 static const char __pyx_k_residual[] = "residual";
1819 static const char __pyx_k_rt0vdofs[] = "rt0vdofs";
1820 static const char __pyx_k_setstate[] = "__setstate__";
1821 static const char __pyx_k_vAverage[] = "vAverage";
1822 static const char __pyx_k_velocity[] = "velocity";
1823 static const char __pyx_k_TypeError[] = "TypeError";
1824 static const char __pyx_k_abs_det_J[] = "abs_det_J";
1825 static const char __pyx_k_dofMapl2g[] = "dofMapl2g";
1826 static const char __pyx_k_edgeFlags[] = "edgeFlags";
1827 static const char __pyx_k_nodeArray[] = "nodeArray";
1828 static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
1829 static const char __pyx_k_v_element[] = "v_element";
1830 static const char __pyx_k_x_element[] = "x_element";
1831 static const char __pyx_k_q_velocity[] = "q_velocity";
1832 static const char __pyx_k_sqrt_det_g[] = "sqrt_det_g";
1833 static const char __pyx_k_updateCoef[] = "updateCoef";
1834 static const char __pyx_k_ImportError[] = "ImportError";
1835 static const char __pyx_k_alphaFactor[] = "alphaFactor";
1836 static const char __pyx_k_subdomain_U[] = "subdomain_U";
1837 static const char __pyx_k_buildBDM2rhs[] = "buildBDM2rhs";
1838 static const char __pyx_k_ebq_velocity[] = "ebq_velocity";
1839 static const char __pyx_k_elementNodes[] = "elementNodes";
1840 static const char __pyx_k_max_nN_owned[] = "max_nN_owned";
1841 static const char __pyx_k_nNodes_owned[] = "nNodes_owned";
1842 static const char __pyx_k_permutations[] = "permutations";
1843 static const char __pyx_k_q_basis_vals[] = "q_basis_vals";
1844 static const char __pyx_k_rt0potential[] = "rt0potential";
1845 static const char __pyx_k_ebqe_velocity[] = "ebqe_velocity";
1846 static const char __pyx_k_internalNodes[] = "internalNodes";
1847 static const char __pyx_k_nElements_dof[] = "nElements_dof";
1848 static const char __pyx_k_nVDOF_element[] = "nVDOF_element";
1849 static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
1850 static const char __pyx_k_vConservative[] = "vConservative";
1851 static const char __pyx_k_BDMmat_element[] = "BDMmat_element";
1852 static const char __pyx_k_NodeStarFactor[] = "NodeStarFactor";
1853 static const char __pyx_k_fluxCorrection[] = "fluxCorrection";
1854 static const char __pyx_k_nElements_node[] = "nElements_node";
1855 static const char __pyx_k_nVDOFs_element[] = "nVDOFs_element";
1856 static const char __pyx_k_nodeStarFactor[] = "nodeStarFactor";
1857 static const char __pyx_k_w_int_div_free[] = "w_int_div_free";
1858 static const char __pyx_k_cpostprocessing[] = "cpostprocessing";
1859 static const char __pyx_k_diffusionTensor[] = "diffusionTensor";
1860 static const char __pyx_k_dofStarElements[] = "dofStarElements";
1861 static const char __pyx_k_ebq_global_flux[] = "ebq_global_flux";
1862 static const char __pyx_k_ebq_v_par_local[] = "ebq_v_par_local";
1863 static const char __pyx_k_elementResidual[] = "elementResidual";
1864 static const char __pyx_k_piola_trial_fun[] = "piola_trial_fun";
1865 static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
1866 static const char __pyx_k_nFreeDOF_element[] = "nFreeDOF_element";
1867 static const char __pyx_k_nodeStarElements[] = "nodeStarElements";
1868 static const char __pyx_k_rt0vdofs_element[] = "rt0vdofs_element";
1869 static const char __pyx_k_velocity_element[] = "velocity_element";
1870 static const char __pyx_k_w_int_test_grads[] = "w_int_test_grads";
1871 static const char __pyx_k_advectiveVelocity[] = "advectiveVelocity";
1872 static const char __pyx_k_elementNodesArray[] = "elementNodesArray";
1873 static const char __pyx_k_element_locations[] = "element_locations";
1874 static const char __pyx_k_fluxBoundaryNodes[] = "fluxBoundaryNodes";
1875 static const char __pyx_k_freeLocal_element[] = "freeLocal_element";
1876 static const char __pyx_k_nQuadraturePoints[] = "nQuadraturePoints";
1877 static const char __pyx_k_sunWheelerGSsweep[] = "sunWheelerGSsweep";
1878 static const char __pyx_k_u_elementBoundary[] = "u_elementBoundary";
1879 static const char __pyx_k_v_elementBoundary[] = "v_elementBoundary";
1880 static const char __pyx_k_x_elementBoundary[] = "x_elementBoundary";
1881 static const char __pyx_k_addAverageToParVec[] = "addAverageToParVec";
1882 static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
1883 static const char __pyx_k_elementBarycenters[] = "elementBarycenters";
1884 static const char __pyx_k_elementResidualPWL[] = "elementResidualPWL";
1885 static const char __pyx_k_nDOF_trial_element[] = "nDOF_trial_element";
1886 static const char __pyx_k_nElementBoundaries[] = "nElementBoundaries";
1887 static const char __pyx_k_w_interior_divfree[] = "w_interior_divfree";
1888 static const char __pyx_k_aElementQuadWeights[] = "aElementQuadWeights";
1889 static const char __pyx_k_ebq_global_velocity[] = "ebq_global_velocity";
1890 static const char __pyx_k_ebq_velocityAverage[] = "ebq_velocityAverage";
1891 static const char __pyx_k_BDMmatPivots_element[] = "BDMmatPivots_element";
1892 static const char __pyx_k_conservationResidual[] = "conservationResidual";
1893 static const char __pyx_k_flux_elementBoundary[] = "flux_elementBoundary";
1894 static const char __pyx_k_w_interior_gradients[] = "w_interior_gradients";
1895 static const char __pyx_k_fluxElementBoundaries[] = "fluxElementBoundaries";
1896 static const char __pyx_k_nodeStarElementsArray[] = "nodeStarElementsArray";
1897 static const char __pyx_k_vConservative_element[] = "vConservative_element";
1898 static const char __pyx_k_elementBoundariesArray[] = "elementBoundariesArray";
1899 static const char __pyx_k_dofStarElementNeighbors[] = "dofStarElementNeighbors";
1900 static const char __pyx_k_elementBoundaryElements[] = "elementBoundaryElements";
1901 static const char __pyx_k_computeFluxCorrectionPWC[] = "computeFluxCorrectionPWC";
1902 static const char __pyx_k_nodeStarElementNeighbors[] = "nodeStarElementNeighbors";
1903 static const char __pyx_k_solveLocalBDM1projection[] = "solveLocalBDM1projection";
1904 static const char __pyx_k_solveLocalBDM2projection[] = "solveLocalBDM2projection";
1905 static const char __pyx_k_v_elementBoundary_global[] = "v_elementBoundary_global";
1906 static const char __pyx_k_x_elementBoundary_global[] = "x_elementBoundary_global";
1907 static const char __pyx_k_exteriorElementBoundaries[] = "exteriorElementBoundaries";
1908 static const char __pyx_k_interiorElementBoundaries[] = "interiorElementBoundaries";
1909 static const char __pyx_k_skipflag_elementBoundaries[] = "skipflag_elementBoundaries";
1910 static const char __pyx_k_uQuadratureWeights_element[] = "uQuadratureWeights_element";
1911 static const char __pyx_k_calculateElementResidualPWL[] = "calculateElementResidualPWL";
1912 static const char __pyx_k_getElementRT0velocityValues[] = "getElementRT0velocityValues";
1913 static const char __pyx_k_proteus_cpostprocessing_pyx[] = "proteus/cpostprocessing.pyx";
1914 static const char __pyx_k_calculateConservationFluxPWL[] = "calculateConservationFluxPWL";
1915 static const char __pyx_k_elementBoundaryElementsArray[] = "elementBoundaryElementsArray";
1916 static const char __pyx_k_fluxCorrectionVelocityUpdate[] = "fluxCorrectionVelocityUpdate";
1917 static const char __pyx_k_subdomain_U_copy_global2local[] = "_subdomain_U_copy_global2local";
1918 static const char __pyx_k_subdomain_U_copy_local2global[] = "_subdomain_U_copy_local2global";
1919 static const char __pyx_k_exteriorElementBoundariesArray[] = "exteriorElementBoundariesArray";
1920 static const char __pyx_k_nodeStarElementsNeighborsArray[] = "nodeStarElementsNeighborsArray";
1921 static const char __pyx_k_postProcessRT0velocityFromP1nc[] = "postProcessRT0velocityFromP1nc";
1922 static const char __pyx_k_exteriorElementBoundariesToSkip[] = "exteriorElementBoundariesToSkip";
1923 static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import";
1924 static const char __pyx_k_postProcessRT0potentialFromP1nc[] = "postProcessRT0potentialFromP1nc";
1925 static const char __pyx_k_buildLocalBDM1projectionMatrices[] = "buildLocalBDM1projectionMatrices";
1926 static const char __pyx_k_buildLocalBDM2projectionMatrices[] = "buildLocalBDM2projectionMatrices";
1927 static const char __pyx_k_calculateConservationFluxPWL_noN[] = "calculateConservationFluxPWL_noNeumannFix";
1928 static const char __pyx_k_calculateConservationFluxPWL_opt[] = "calculateConservationFluxPWL_opt";
1929 static const char __pyx_k_calculateConservationJacobianPWL[] = "calculateConservationJacobianPWL";
1930 static const char __pyx_k_calculateConservationResidualGlo[] = "calculateConservationResidualGlobalBoundaries";
1931 static const char __pyx_k_calculateConservationResidualPWL[] = "calculateConservationResidualPWL";
1932 static const char __pyx_k_copyElementBoundaryVelocityToPar[] = "copyElementBoundaryVelocityToParVec";
1933 static const char __pyx_k_copyParVecToElementBoundaryVeloc[] = "copyParVecToElementBoundaryVelocity";
1934 static const char __pyx_k_elementBoundaryLocalElementBound[] = "elementBoundaryLocalElementBoundaries";
1935 static const char __pyx_k_elementBoundaryQuadratureWeights[] = "elementBoundaryQuadratureWeights";
1936 static const char __pyx_k_factorLocalBDM1projectionMatrice[] = "factorLocalBDM1projectionMatrices";
1937 static const char __pyx_k_factorLocalBDM2projectionMatrice[] = "factorLocalBDM2projectionMatrices";
1938 static const char __pyx_k_getElementBDM1velocityValuesLagr[] = "getElementBDM1velocityValuesLagrangeRep";
1939 static const char __pyx_k_getElementBDM2velocityValuesLagr[] = "getElementBDM2velocityValuesLagrangeRep";
1940 static const char __pyx_k_getElementBoundaryBDM1velocityVa[] = "getElementBoundaryBDM1velocityValuesLagrangeRep";
1941 static const char __pyx_k_getElementBoundaryRT0velocityVal[] = "getElementBoundaryRT0velocityValues";
1942 static const char __pyx_k_getElementLDGvelocityValuesLagra[] = "getElementLDGvelocityValuesLagrangeRep";
1943 static const char __pyx_k_getElementRT0velocityValuesFluxR[] = "getElementRT0velocityValuesFluxRep";
1944 static const char __pyx_k_getGlobalElementBoundaryBDM1velo[] = "getGlobalElementBoundaryBDM1velocityValuesLagrangeRep";
1945 static const char __pyx_k_getGlobalElementBoundaryRT0veloc[] = "getGlobalElementBoundaryRT0velocityValues";
1946 static const char __pyx_k_getGlobalExteriorElementBoundary[] = "getGlobalExteriorElementBoundaryRT0velocityValues";
1947 static const char __pyx_k_getRT0velocityValuesFluxRep_arbi[] = "getRT0velocityValuesFluxRep_arbitraryElementMembership";
1948 static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
1949 static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import";
1950 static const char __pyx_k_postProcessRT0velocityFromP1nc_s[] = "postProcessRT0velocityFromP1nc_sd";
1951 static const char __pyx_k_projectElementBoundaryFluxToRT0f[] = "projectElementBoundaryFluxToRT0fluxRep";
1952 static const char __pyx_k_projectElementBoundaryVelocityTo[] = "projectElementBoundaryVelocityToRT0fluxRep";
1953 static const char __pyx_k_solveLocalBDM1projectionFromFlux[] = "solveLocalBDM1projectionFromFlux";
1954 static const char __pyx_k_uQuadratureWeights_elementBounda[] = "uQuadratureWeights_elementBoundary";
1955 static const char __pyx_k_updateAdvectiveVelocityPointEval[] = "updateAdvectiveVelocityPointEval";
1956 static const char __pyx_k_updateDiffusiveVelocityPointEval[] = "updateDiffusiveVelocityPointEval";
1957 static const char __pyx_k_updateRT0velocityWithAveragedPot[] = "updateRT0velocityWithAveragedPotentialP1nc";
1958 static const char __pyx_k_updateSelectedExteriorElementBou[] = "updateSelectedExteriorElementBoundaryFlux";
1959 static const char __pyx_k_postProcessRT0potentialFromP1nc_2[] = "postProcessRT0potentialFromP1nc_sd";
1960 static const char __pyx_k_calculateConservationJacobianPWL_2[] = "calculateConservationJacobianPWL_opt";
1961 static const char __pyx_k_calculateConservationJacobianPWL_3[] = "calculateConservationJacobianPWL_interiorBoundaries";
1962 static const char __pyx_k_calculateConservationResidualPWL_2[] = "calculateConservationResidualPWL_opt";
1963 static const char __pyx_k_calculateConservationResidualPWL_3[] = "calculateConservationResidualPWL_primative";
1964 static const char __pyx_k_calculateConservationResidualPWL_4[] = "calculateConservationResidualPWL_interiorBoundaries";
1965 static const char __pyx_k_getElementBoundaryRT0velocityVal_2[] = "getElementBoundaryRT0velocityValuesFluxRep";
1966 static const char __pyx_k_getGlobalElementBoundaryRT0veloc_2[] = "getGlobalElementBoundaryRT0velocityValuesFluxRep";
1967 static const char __pyx_k_getGlobalExteriorElementBoundary_2[] = "getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep";
1968 static const char __pyx_k_getGlobalExteriorElementBoundary_3[] = "getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep";
1969 static const char __pyx_k_updateDiffusiveVelocityPointEval_2[] = "updateDiffusiveVelocityPointEval_sd";
1970 static const char __pyx_k_updateRT0velocityWithAveragedPot_2[] = "updateRT0velocityWithAveragedPotentialP1nc_sd";
1971 static PyObject *__pyx_n_s_BDMmatPivots_element;
1972 static PyObject *__pyx_n_s_BDMmat_element;
1973 static PyObject *__pyx_n_s_I;
1974 static PyObject *__pyx_n_s_ImportError;
1975 static PyObject *__pyx_n_s_NodeStarFactor;
1976 static PyObject *__pyx_n_s_TypeError;
1977 static PyObject *__pyx_n_s_a;
1978 static PyObject *__pyx_n_s_aElementQuadWeights;
1979 static PyObject *__pyx_n_s_abs_det_J;
1980 static PyObject *__pyx_n_s_addAverageToParVec;
1981 static PyObject *__pyx_n_s_advectiveVelocity;
1982 static PyObject *__pyx_n_s_alpha;
1983 static PyObject *__pyx_n_s_alphaFactor;
1984 static PyObject *__pyx_n_s_buildBDM2rhs;
1985 static PyObject *__pyx_n_s_buildLocalBDM1projectionMatrices;
1986 static PyObject *__pyx_n_s_buildLocalBDM2projectionMatrices;
1987 static PyObject *__pyx_n_s_calculateConservationFluxPWL;
1988 static PyObject *__pyx_n_s_calculateConservationFluxPWL_noN;
1989 static PyObject *__pyx_n_s_calculateConservationFluxPWL_opt;
1990 static PyObject *__pyx_n_s_calculateConservationJacobianPWL;
1991 static PyObject *__pyx_n_s_calculateConservationJacobianPWL_2;
1992 static PyObject *__pyx_n_s_calculateConservationJacobianPWL_3;
1993 static PyObject *__pyx_n_s_calculateConservationResidualGlo;
1994 static PyObject *__pyx_n_s_calculateConservationResidualPWL;
1995 static PyObject *__pyx_n_s_calculateConservationResidualPWL_2;
1996 static PyObject *__pyx_n_s_calculateConservationResidualPWL_3;
1997 static PyObject *__pyx_n_s_calculateConservationResidualPWL_4;
1998 static PyObject *__pyx_n_s_calculateElementResidualPWL;
1999 static PyObject *__pyx_n_s_cline_in_traceback;
2000 static PyObject *__pyx_n_s_colind;
2001 static PyObject *__pyx_n_s_computeFluxCorrectionPWC;
2002 static PyObject *__pyx_n_s_conservationResidual;
2003 static PyObject *__pyx_n_s_copyElementBoundaryVelocityToPar;
2004 static PyObject *__pyx_n_s_copyParVecToElementBoundaryVeloc;
2005 static PyObject *__pyx_n_s_cpostprocessing;
2006 static PyObject *__pyx_n_s_dS;
2007 static PyObject *__pyx_n_s_degree;
2008 static PyObject *__pyx_n_s_detJ;
2009 static PyObject *__pyx_n_s_diffusionTensor;
2010 static PyObject *__pyx_n_s_dofMapl2g;
2011 static PyObject *__pyx_n_s_dofStarElementNeighbors;
2012 static PyObject *__pyx_n_s_dofStarElements;
2013 static PyObject *__pyx_n_s_dx;
2014 static PyObject *__pyx_n_s_ebN;
2015 static PyObject *__pyx_n_s_ebq_global_flux;
2016 static PyObject *__pyx_n_s_ebq_global_velocity;
2017 static PyObject *__pyx_n_s_ebq_n;
2018 static PyObject *__pyx_n_s_ebq_v;
2019 static PyObject *__pyx_n_s_ebq_v_par_local;
2020 static PyObject *__pyx_n_s_ebq_velocity;
2021 static PyObject *__pyx_n_s_ebq_velocityAverage;
2022 static PyObject *__pyx_n_s_ebqe_v;
2023 static PyObject *__pyx_n_s_ebqe_velocity;
2024 static PyObject *__pyx_n_s_edgeFlags;
2025 static PyObject *__pyx_n_s_elementBarycenters;
2026 static PyObject *__pyx_n_s_elementBoundariesArray;
2027 static PyObject *__pyx_n_s_elementBoundaryElements;
2028 static PyObject *__pyx_n_s_elementBoundaryElementsArray;
2029 static PyObject *__pyx_n_s_elementBoundaryLocalElementBound;
2030 static PyObject *__pyx_n_s_elementBoundaryQuadratureWeights;
2031 static PyObject *__pyx_n_s_elementNodes;
2032 static PyObject *__pyx_n_s_elementNodesArray;
2033 static PyObject *__pyx_n_s_elementResidual;
2034 static PyObject *__pyx_n_s_elementResidualPWL;
2035 static PyObject *__pyx_n_s_element_locations;
2036 static PyObject *__pyx_n_s_exteriorElementBoundaries;
2037 static PyObject *__pyx_n_s_exteriorElementBoundariesArray;
2038 static PyObject *__pyx_n_s_exteriorElementBoundariesToSkip;
2039 static PyObject *__pyx_n_s_f;
2040 static PyObject *__pyx_n_s_factorLocalBDM1projectionMatrice;
2041 static PyObject *__pyx_n_s_factorLocalBDM2projectionMatrice;
2042 static PyObject *__pyx_n_s_flux;
2043 static PyObject *__pyx_n_s_fluxBoundaryNodes;
2044 static PyObject *__pyx_n_s_fluxCorrection;
2045 static PyObject *__pyx_n_s_fluxCorrectionVelocityUpdate;
2046 static PyObject *__pyx_n_s_fluxElementBoundaries;
2047 static PyObject *__pyx_n_s_flux_elementBoundary;
2048 static PyObject *__pyx_n_s_freeLocal_element;
2049 static PyObject *__pyx_n_s_getElementBDM1velocityValuesLagr;
2050 static PyObject *__pyx_n_s_getElementBDM2velocityValuesLagr;
2051 static PyObject *__pyx_n_s_getElementBoundaryBDM1velocityVa;
2052 static PyObject *__pyx_n_s_getElementBoundaryRT0velocityVal;
2053 static PyObject *__pyx_n_s_getElementBoundaryRT0velocityVal_2;
2054 static PyObject *__pyx_n_s_getElementLDGvelocityValuesLagra;
2055 static PyObject *__pyx_n_s_getElementRT0velocityValues;
2056 static PyObject *__pyx_n_s_getElementRT0velocityValuesFluxR;
2057 static PyObject *__pyx_n_s_getGlobalElementBoundaryBDM1velo;
2058 static PyObject *__pyx_n_s_getGlobalElementBoundaryRT0veloc;
2059 static PyObject *__pyx_n_s_getGlobalElementBoundaryRT0veloc_2;
2060 static PyObject *__pyx_n_s_getGlobalExteriorElementBoundary;
2061 static PyObject *__pyx_n_s_getGlobalExteriorElementBoundary_2;
2062 static PyObject *__pyx_n_s_getGlobalExteriorElementBoundary_3;
2063 static PyObject *__pyx_n_s_getRT0velocityValuesFluxRep_arbi;
2064 static PyObject *__pyx_n_s_getstate;
2065 static PyObject *__pyx_n_s_grad_phi;
2066 static PyObject *__pyx_n_s_gradphi;
2067 static PyObject *__pyx_n_s_gradu;
2068 static PyObject *__pyx_n_s_import;
2069 static PyObject *__pyx_n_s_interiorElementBoundaries;
2070 static PyObject *__pyx_n_s_internalNodes;
2071 static PyObject *__pyx_n_s_k;
2072 static PyObject *__pyx_n_s_main;
2073 static PyObject *__pyx_n_s_max_nN_owned;
2074 static PyObject *__pyx_n_s_mt;
2075 static PyObject *__pyx_n_s_n;
2076 static PyObject *__pyx_n_s_nDOF_trial_element;
2077 static PyObject *__pyx_n_s_nElementBoundaries;
2078 static PyObject *__pyx_n_s_nElements_dof;
2079 static PyObject *__pyx_n_s_nElements_node;
2080 static PyObject *__pyx_n_s_nFreeDOF_element;
2081 static PyObject *__pyx_n_s_nNodes_owned;
2082 static PyObject *__pyx_n_s_nPoints;
2083 static PyObject *__pyx_n_s_nQuadraturePoints;
2084 static PyObject *__pyx_n_s_nSpace;
2085 static PyObject *__pyx_n_s_nVDOF_element;
2086 static PyObject *__pyx_n_s_nVDOFs_element;
2087 static PyObject *__pyx_n_s_name;
2088 static PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
2089 static PyObject *__pyx_n_s_nodeArray;
2090 static PyObject *__pyx_n_s_nodeStarElementNeighbors;
2091 static PyObject *__pyx_n_s_nodeStarElements;
2092 static PyObject *__pyx_n_s_nodeStarElementsArray;
2093 static PyObject *__pyx_n_s_nodeStarElementsNeighborsArray;
2094 static PyObject *__pyx_n_s_nodeStarFactor;
2095 static PyObject *__pyx_n_s_np;
2096 static PyObject *__pyx_n_s_numpy;
2097 static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to;
2098 static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor;
2099 static PyObject *__pyx_n_s_p1_vdofs;
2100 static PyObject *__pyx_n_s_permutations;
2101 static PyObject *__pyx_n_s_phi;
2102 static PyObject *__pyx_n_s_piola_trial_fun;
2103 static PyObject *__pyx_n_s_postProcessRT0potentialFromP1nc;
2104 static PyObject *__pyx_n_s_postProcessRT0potentialFromP1nc_2;
2105 static PyObject *__pyx_n_s_postProcessRT0velocityFromP1nc;
2106 static PyObject *__pyx_n_s_postProcessRT0velocityFromP1nc_s;
2107 static PyObject *__pyx_n_s_projectElementBoundaryFluxToRT0f;
2108 static PyObject *__pyx_n_s_projectElementBoundaryVelocityTo;
2109 static PyObject *__pyx_kp_s_proteus_cpostprocessing_pyx;
2110 static PyObject *__pyx_n_s_pwcV;
2111 static PyObject *__pyx_n_s_pwcW;
2112 static PyObject *__pyx_n_s_q_basis_vals;
2113 static PyObject *__pyx_n_s_q_v;
2114 static PyObject *__pyx_n_s_q_vdofs;
2115 static PyObject *__pyx_n_s_q_velocity;
2116 static PyObject *__pyx_n_s_quad_a;
2117 static PyObject *__pyx_n_s_quad_f;
2118 static PyObject *__pyx_n_s_r;
2119 static PyObject *__pyx_n_s_range;
2120 static PyObject *__pyx_n_s_reduce;
2121 static PyObject *__pyx_n_s_reduce_cython;
2122 static PyObject *__pyx_n_s_reduce_ex;
2123 static PyObject *__pyx_n_s_residual;
2124 static PyObject *__pyx_n_s_rowptr;
2125 static PyObject *__pyx_n_s_rt0potential;
2126 static PyObject *__pyx_n_s_rt0vdofs;
2127 static PyObject *__pyx_n_s_rt0vdofs_element;
2128 static PyObject *__pyx_n_s_setstate;
2129 static PyObject *__pyx_n_s_setstate_cython;
2130 static PyObject *__pyx_n_s_size;
2131 static PyObject *__pyx_n_s_skipflag_elementBoundaries;
2132 static PyObject *__pyx_n_s_solveLocalBDM1projection;
2133 static PyObject *__pyx_n_s_solveLocalBDM1projectionFromFlux;
2134 static PyObject *__pyx_n_s_solveLocalBDM2projection;
2135 static PyObject *__pyx_n_s_sqrt_det_g;
2136 static PyObject *__pyx_n_s_subdomain_U;
2137 static PyObject *__pyx_n_s_subdomain_U_copy_global2local;
2138 static PyObject *__pyx_n_s_subdomain_U_copy_local2global;
2139 static PyObject *__pyx_n_s_sunWheelerGSsweep;
2140 static PyObject *__pyx_n_s_test;
2141 static PyObject *__pyx_n_s_u;
2142 static PyObject *__pyx_n_s_uQuadratureWeights_element;
2143 static PyObject *__pyx_n_s_uQuadratureWeights_elementBounda;
2144 static PyObject *__pyx_n_s_u_elementBoundary;
2145 static PyObject *__pyx_n_s_updateAdvectiveVelocityPointEval;
2146 static PyObject *__pyx_n_s_updateCoef;
2147 static PyObject *__pyx_n_s_updateDiffusiveVelocityPointEval;
2148 static PyObject *__pyx_n_s_updateDiffusiveVelocityPointEval_2;
2149 static PyObject *__pyx_n_s_updateRT0velocityWithAveragedPot;
2150 static PyObject *__pyx_n_s_updateRT0velocityWithAveragedPot_2;
2151 static PyObject *__pyx_n_s_updateSelectedExteriorElementBou;
2152 static PyObject *__pyx_n_s_vAverage;
2153 static PyObject *__pyx_n_s_vConservative;
2154 static PyObject *__pyx_n_s_vConservative_element;
2155 static PyObject *__pyx_n_s_v_ebqe;
2156 static PyObject *__pyx_n_s_v_element;
2157 static PyObject *__pyx_n_s_v_elementBoundary;
2158 static PyObject *__pyx_n_s_v_elementBoundary_global;
2159 static PyObject *__pyx_n_s_vdofs;
2160 static PyObject *__pyx_n_s_velocity;
2161 static PyObject *__pyx_n_s_velocity_element;
2162 static PyObject *__pyx_n_s_w;
2163 static PyObject *__pyx_n_s_w_dS_f;
2164 static PyObject *__pyx_n_s_w_dV_m;
2165 static PyObject *__pyx_n_s_w_dV_r;
2166 static PyObject *__pyx_n_s_w_int_div_free;
2167 static PyObject *__pyx_n_s_w_int_test_grads;
2168 static PyObject *__pyx_n_s_w_interior_divfree;
2169 static PyObject *__pyx_n_s_w_interior_gradients;
2170 static PyObject *__pyx_n_s_x;
2171 static PyObject *__pyx_n_s_x_ebqe;
2172 static PyObject *__pyx_n_s_x_element;
2173 static PyObject *__pyx_n_s_x_elementBoundary;
2174 static PyObject *__pyx_n_s_x_elementBoundary_global;
2175 static PyObject *__pyx_pf_15cpostprocessing_postProcessRT0velocityFromP1nc(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nFreeDOF_element, PyArrayObject *__pyx_v_freeLocal_element, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_quad_f, PyArrayObject *__pyx_v_w_dV_r, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_w_dV_m, PyArrayObject *__pyx_v_mt); /* proto */
2176 static PyObject *__pyx_pf_15cpostprocessing_2postProcessRT0velocityFromP1nc_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_nFreeDOF_element, PyArrayObject *__pyx_v_freeLocal_element, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_quad_f, PyArrayObject *__pyx_v_w_dV_r, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_w_dV_m, PyArrayObject *__pyx_v_mt); /* proto */
2177 static PyObject *__pyx_pf_15cpostprocessing_4updateRT0velocityWithAveragedPotentialP1nc(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_gradphi, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_rt0vdofs_element); /* proto */
2178 static PyObject *__pyx_pf_15cpostprocessing_6updateRT0velocityWithAveragedPotentialP1nc_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_gradphi, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_rt0vdofs_element); /* proto */
2179 static PyObject *__pyx_pf_15cpostprocessing_8getElementRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_x_element, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_element); /* proto */
2180 static PyObject *__pyx_pf_15cpostprocessing_10getElementBoundaryRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary); /* proto */
2181 static PyObject *__pyx_pf_15cpostprocessing_12getGlobalElementBoundaryRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_x_elementBoundary_global, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary_global); /* proto */
2182 static PyObject *__pyx_pf_15cpostprocessing_14getGlobalExteriorElementBoundaryRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_x_elementBoundary_global, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary_global); /* proto */
2183 static PyObject *__pyx_pf_15cpostprocessing_16postProcessRT0potentialFromP1nc(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_uQuadratureWeights_element, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_aElementQuadWeights, PyArrayObject *__pyx_v_detJ, CYTHON_UNUSED PyArrayObject *__pyx_v_uQuadratureWeights_elementBoundary, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_u_elementBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_rt0potential); /* proto */
2184 static PyObject *__pyx_pf_15cpostprocessing_18postProcessRT0potentialFromP1nc_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_uQuadratureWeights_element, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_aElementQuadWeights, PyArrayObject *__pyx_v_detJ, CYTHON_UNUSED PyArrayObject *__pyx_v_uQuadratureWeights_elementBoundary, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_u_elementBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_rt0potential); /* proto */
2185 static PyObject *__pyx_pf_15cpostprocessing_20buildLocalBDM1projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_ebq_v, PyArrayObject *__pyx_v_BDMmat_element); /* proto */
2186 static PyObject *__pyx_pf_15cpostprocessing_22buildLocalBDM2projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_degree, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_ebq_v, PyArrayObject *__pyx_v_q_basis_vals, PyArrayObject *__pyx_v_w_int_test_grads, PyArrayObject *__pyx_v_w_int_div_free, PyArrayObject *__pyx_v_piola_trial_fun, PyArrayObject *__pyx_v_edgeFlags, PyArrayObject *__pyx_v_BDMmat_element); /* proto */
2187 static PyObject *__pyx_pf_15cpostprocessing_24factorLocalBDM1projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element); /* proto */
2188 static PyObject *__pyx_pf_15cpostprocessing_26factorLocalBDM2projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element); /* proto */
2189 static PyObject *__pyx_pf_15cpostprocessing_28solveLocalBDM1projection(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_q_vdofs); /* proto */
2190 static PyObject *__pyx_pf_15cpostprocessing_30solveLocalBDM2projection(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_w_interior_gradients, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_q_velocity, PyArrayObject *__pyx_v_q_vdofs); /* proto */
2191 static PyObject *__pyx_pf_15cpostprocessing_32buildBDM2rhs(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_w_interior_gradients, PyArrayObject *__pyx_v_w_interior_divfree, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_q_velocity, PyArrayObject *__pyx_v_q_vdofs, PyArrayObject *__pyx_v_edgeFlags); /* proto */
2192 static PyObject *__pyx_pf_15cpostprocessing_34solveLocalBDM1projectionFromFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundariesArray, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_global_flux, PyArrayObject *__pyx_v_q_vdofs); /* proto */
2193 static PyObject *__pyx_pf_15cpostprocessing_36getElementBDM1velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_q_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_q_velocity); /* proto */
2194 static PyObject *__pyx_pf_15cpostprocessing_38getElementBDM2velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_q_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_q_velocity); /* proto */
2195 static PyObject *__pyx_pf_15cpostprocessing_40getElementLDGvelocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_q_v, PyArrayObject *__pyx_v_vdofs, PyArrayObject *__pyx_v_q_velocity); /* proto */
2196 static PyObject *__pyx_pf_15cpostprocessing_42getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_ebqe_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_ebqe_velocity); /* proto */
2197 static PyObject *__pyx_pf_15cpostprocessing_44getGlobalElementBoundaryBDM1velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_ebqe_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_ebq_global_velocity); /* proto */
2198 static PyObject *__pyx_pf_15cpostprocessing_46getElementBoundaryBDM1velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_ebq_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_ebq_velocity); /* proto */
2199 static PyObject *__pyx_pf_15cpostprocessing_48projectElementBoundaryVelocityToRT0fluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryQuadratureWeights, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_v_elementBoundary, PyArrayObject *__pyx_v_rt0vdofs_element); /* proto */
2200 static PyObject *__pyx_pf_15cpostprocessing_50projectElementBoundaryFluxToRT0fluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryQuadratureWeights, PyArrayObject *__pyx_v_flux_elementBoundary, PyArrayObject *__pyx_v_rt0vdofs_element); /* proto */
2201 static PyObject *__pyx_pf_15cpostprocessing_52getElementRT0velocityValuesFluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x_element, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_element); /* proto */
2202 static PyObject *__pyx_pf_15cpostprocessing_54getElementBoundaryRT0velocityValuesFluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary); /* proto */
2203 static PyObject *__pyx_pf_15cpostprocessing_56getGlobalElementBoundaryRT0velocityValuesFluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x_elementBoundary_global, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary_global); /* proto */
2204 static PyObject *__pyx_pf_15cpostprocessing_58getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x_ebqe, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_ebqe); /* proto */
2205 static PyObject *__pyx_pf_15cpostprocessing_60getRT0velocityValuesFluxRep_arbitraryElementMembership(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_element_locations, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_element); /* proto */
2206 static PyObject *__pyx_pf_15cpostprocessing_62fluxCorrectionVelocityUpdate(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_fluxCorrection, PyArrayObject *__pyx_v_velocity, PyArrayObject *__pyx_v_velocity_element); /* proto */
2207 static PyObject *__pyx_pf_15cpostprocessing_64computeFluxCorrectionPWC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_pwcW, PyArrayObject *__pyx_v_pwcV, PyArrayObject *__pyx_v_fluxCorrection); /* proto */
2208 static PyObject *__pyx_pf_15cpostprocessing_66sunWheelerGSsweep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_alphaFactor, PyArrayObject *__pyx_v_fluxCorrection, PyArrayObject *__pyx_v_conservationResidual); /* proto */
2209 static int __pyx_pf_15cpostprocessing_14NodeStarFactor___cinit__(struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_nodeStarElementsArray, PyArrayObject *__pyx_v_nodeStarElementsNeighborsArray); /* proto */
2210 static void __pyx_pf_15cpostprocessing_14NodeStarFactor_2__dealloc__(struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self); /* proto */
2211 static PyObject *__pyx_pf_15cpostprocessing_14NodeStarFactor_4setU(struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self, double __pyx_v_val); /* proto */
2212 static PyObject *__pyx_pf_15cpostprocessing_14NodeStarFactor_6copyData(struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_other); /* proto */
2213 static PyObject *__pyx_pf_15cpostprocessing_14NodeStarFactor_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self); /* proto */
2214 static PyObject *__pyx_pf_15cpostprocessing_14NodeStarFactor_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
2215 static PyObject *__pyx_pf_15cpostprocessing_68calculateConservationResidualPWL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_dofMapl2g, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_vAverage, PyArrayObject *__pyx_v_dx, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_conservationResidual, PyArrayObject *__pyx_v_vConservative, PyArrayObject *__pyx_v_vConservative_element); /* proto */
2216 static PyObject *__pyx_pf_15cpostprocessing_70calculateConservationJacobianPWL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_dofMapl2g, PyArrayObject *__pyx_v_dofStarElements, PyArrayObject *__pyx_v_dofStarElementNeighbors, PyArrayObject *__pyx_v_nElements_dof, PyArrayObject *__pyx_v_internalNodes, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_fluxBoundaryNodes, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor); /* proto */
2217 static PyObject *__pyx_pf_15cpostprocessing_72calculateConservationFluxPWL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_internalNodes, PyArrayObject *__pyx_v_fluxBoundaryNodes, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor); /* proto */
2218 static PyObject *__pyx_pf_15cpostprocessing_74calculateConservationFluxPWL_noNeumannFix(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nElements_node, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor); /* proto */
2219 static PyObject *__pyx_pf_15cpostprocessing_76calculateConservationResidualPWL_opt(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nNodes_owned, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_vAverage, PyArrayObject *__pyx_v_dx, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_conservationResidual, PyArrayObject *__pyx_v_vConservative, PyArrayObject *__pyx_v_vConservative_element); /* proto */
2220 static PyObject *__pyx_pf_15cpostprocessing_78calculateConservationResidualPWL_primative(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_skipflag_elementBoundaries, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_dx, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_conservationResidual, PyArrayObject *__pyx_v_vConservative); /* proto */
2221 static PyObject *__pyx_pf_15cpostprocessing_80calculateConservationJacobianPWL_opt(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nNodes_owned, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_internalNodes, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_fluxBoundaryNodes, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor); /* proto */
2222 static PyObject *__pyx_pf_15cpostprocessing_82calculateConservationFluxPWL_opt(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nNodes_owned, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_internalNodes, PyArrayObject *__pyx_v_fluxBoundaryNodes, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor); /* proto */
2223 static PyObject *__pyx_pf_15cpostprocessing_84calculateConservationResidualPWL_interiorBoundaries(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_vAverage, PyArrayObject *__pyx_v_dx, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_conservationResidual, PyArrayObject *__pyx_v_vConservative, PyArrayObject *__pyx_v_vConservative_element); /* proto */
2224 static PyObject *__pyx_pf_15cpostprocessing_86calculateConservationJacobianPWL_interiorBoundaries(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor); /* proto */
2225 static PyObject *__pyx_pf_15cpostprocessing_88_subdomain_U_copy_global2local(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_max_nN_owned, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_subdomain_U); /* proto */
2226 static PyObject *__pyx_pf_15cpostprocessing_90_subdomain_U_copy_local2global(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_max_nN_owned, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_subdomain_U); /* proto */
2227 static PyObject *__pyx_pf_15cpostprocessing_92calculateConservationResidualGlobalBoundaries(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundariesToSkip, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_velocity, PyArrayObject *__pyx_v_conservationResidual); /* proto */
2228 static PyObject *__pyx_pf_15cpostprocessing_94updateSelectedExteriorElementBoundaryFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_skipflag_elementBoundaries, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_residual); /* proto */
2229 static PyObject *__pyx_pf_15cpostprocessing_96updateAdvectiveVelocityPointEval(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_updateCoef, PyArrayObject *__pyx_v_advectiveVelocity, PyArrayObject *__pyx_v_velocity); /* proto */
2230 static PyObject *__pyx_pf_15cpostprocessing_98updateDiffusiveVelocityPointEval(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_updateCoef, PyArrayObject *__pyx_v_diffusionTensor, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_velocity); /* proto */
2231 static PyObject *__pyx_pf_15cpostprocessing_100updateDiffusiveVelocityPointEval_sd(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_updateCoef, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_diffusionTensor, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_velocity); /* proto */
2232 static PyObject *__pyx_pf_15cpostprocessing_102calculateElementResidualPWL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_alpha, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_elementResidualPWL); /* proto */
2233 static PyObject *__pyx_pf_15cpostprocessing_104copyElementBoundaryVelocityToParVec(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_permutations, PyArrayObject *__pyx_v_ebq_v_par_local); /* proto */
2234 static PyObject *__pyx_pf_15cpostprocessing_106addAverageToParVec(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_ebq_velocityAverage, PyArrayObject *__pyx_v_permutations, PyArrayObject *__pyx_v_ebq_v_par_local); /* proto */
2235 static PyObject *__pyx_pf_15cpostprocessing_108copyParVecToElementBoundaryVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_permutations, PyArrayObject *__pyx_v_ebq_v_par_local); /* proto */
2236 static PyObject *__pyx_tp_new_15cpostprocessing_NodeStarFactor(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2237 static PyObject *__pyx_tuple_;
2238 static PyObject *__pyx_tuple__2;
2239 static PyObject *__pyx_tuple__3;
2240 static PyObject *__pyx_tuple__4;
2241 static PyObject *__pyx_tuple__5;
2242 static PyObject *__pyx_tuple__7;
2243 static PyObject *__pyx_tuple__9;
2244 static PyObject *__pyx_tuple__11;
2245 static PyObject *__pyx_tuple__13;
2246 static PyObject *__pyx_tuple__15;
2247 static PyObject *__pyx_tuple__17;
2248 static PyObject *__pyx_tuple__19;
2249 static PyObject *__pyx_tuple__21;
2250 static PyObject *__pyx_tuple__23;
2251 static PyObject *__pyx_tuple__25;
2252 static PyObject *__pyx_tuple__27;
2253 static PyObject *__pyx_tuple__29;
2254 static PyObject *__pyx_tuple__31;
2255 static PyObject *__pyx_tuple__33;
2256 static PyObject *__pyx_tuple__35;
2257 static PyObject *__pyx_tuple__37;
2258 static PyObject *__pyx_tuple__39;
2259 static PyObject *__pyx_tuple__41;
2260 static PyObject *__pyx_tuple__43;
2261 static PyObject *__pyx_tuple__45;
2262 static PyObject *__pyx_tuple__47;
2263 static PyObject *__pyx_tuple__49;
2264 static PyObject *__pyx_tuple__51;
2265 static PyObject *__pyx_tuple__53;
2266 static PyObject *__pyx_tuple__55;
2267 static PyObject *__pyx_tuple__57;
2268 static PyObject *__pyx_tuple__59;
2269 static PyObject *__pyx_tuple__61;
2270 static PyObject *__pyx_tuple__63;
2271 static PyObject *__pyx_tuple__65;
2272 static PyObject *__pyx_tuple__67;
2273 static PyObject *__pyx_tuple__69;
2274 static PyObject *__pyx_tuple__71;
2275 static PyObject *__pyx_tuple__73;
2276 static PyObject *__pyx_tuple__75;
2277 static PyObject *__pyx_tuple__77;
2278 static PyObject *__pyx_tuple__79;
2279 static PyObject *__pyx_tuple__81;
2280 static PyObject *__pyx_tuple__83;
2281 static PyObject *__pyx_tuple__85;
2282 static PyObject *__pyx_tuple__87;
2283 static PyObject *__pyx_tuple__89;
2284 static PyObject *__pyx_tuple__91;
2285 static PyObject *__pyx_tuple__93;
2286 static PyObject *__pyx_tuple__95;
2287 static PyObject *__pyx_tuple__97;
2288 static PyObject *__pyx_tuple__99;
2289 static PyObject *__pyx_codeobj__6;
2290 static PyObject *__pyx_codeobj__8;
2291 static PyObject *__pyx_tuple__101;
2292 static PyObject *__pyx_tuple__103;
2293 static PyObject *__pyx_tuple__105;
2294 static PyObject *__pyx_tuple__107;
2295 static PyObject *__pyx_tuple__109;
2296 static PyObject *__pyx_tuple__111;
2297 static PyObject *__pyx_tuple__113;
2298 static PyObject *__pyx_codeobj__10;
2299 static PyObject *__pyx_codeobj__12;
2300 static PyObject *__pyx_codeobj__14;
2301 static PyObject *__pyx_codeobj__16;
2302 static PyObject *__pyx_codeobj__18;
2303 static PyObject *__pyx_codeobj__20;
2304 static PyObject *__pyx_codeobj__22;
2305 static PyObject *__pyx_codeobj__24;
2306 static PyObject *__pyx_codeobj__26;
2307 static PyObject *__pyx_codeobj__28;
2308 static PyObject *__pyx_codeobj__30;
2309 static PyObject *__pyx_codeobj__32;
2310 static PyObject *__pyx_codeobj__34;
2311 static PyObject *__pyx_codeobj__36;
2312 static PyObject *__pyx_codeobj__38;
2313 static PyObject *__pyx_codeobj__40;
2314 static PyObject *__pyx_codeobj__42;
2315 static PyObject *__pyx_codeobj__44;
2316 static PyObject *__pyx_codeobj__46;
2317 static PyObject *__pyx_codeobj__48;
2318 static PyObject *__pyx_codeobj__50;
2319 static PyObject *__pyx_codeobj__52;
2320 static PyObject *__pyx_codeobj__54;
2321 static PyObject *__pyx_codeobj__56;
2322 static PyObject *__pyx_codeobj__58;
2323 static PyObject *__pyx_codeobj__60;
2324 static PyObject *__pyx_codeobj__62;
2325 static PyObject *__pyx_codeobj__64;
2326 static PyObject *__pyx_codeobj__66;
2327 static PyObject *__pyx_codeobj__68;
2328 static PyObject *__pyx_codeobj__70;
2329 static PyObject *__pyx_codeobj__72;
2330 static PyObject *__pyx_codeobj__74;
2331 static PyObject *__pyx_codeobj__76;
2332 static PyObject *__pyx_codeobj__78;
2333 static PyObject *__pyx_codeobj__80;
2334 static PyObject *__pyx_codeobj__82;
2335 static PyObject *__pyx_codeobj__84;
2336 static PyObject *__pyx_codeobj__86;
2337 static PyObject *__pyx_codeobj__88;
2338 static PyObject *__pyx_codeobj__90;
2339 static PyObject *__pyx_codeobj__92;
2340 static PyObject *__pyx_codeobj__94;
2341 static PyObject *__pyx_codeobj__96;
2342 static PyObject *__pyx_codeobj__98;
2343 static PyObject *__pyx_codeobj__100;
2344 static PyObject *__pyx_codeobj__102;
2345 static PyObject *__pyx_codeobj__104;
2346 static PyObject *__pyx_codeobj__106;
2347 static PyObject *__pyx_codeobj__108;
2348 static PyObject *__pyx_codeobj__110;
2349 static PyObject *__pyx_codeobj__112;
2350 static PyObject *__pyx_codeobj__114;
2351 /* Late includes */
2352 
2353 /* "cpostprocessing.pyx":6
2354  * cimport postprocessing as pp
2355  *
2356  * def postProcessRT0velocityFromP1nc(np.ndarray nFreeDOF_element, # <<<<<<<<<<<<<<
2357  * np.ndarray freeLocal_element,
2358  * np.ndarray detJ,
2359  */
2360 
2361 /* Python wrapper */
2362 static PyObject *__pyx_pw_15cpostprocessing_1postProcessRT0velocityFromP1nc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
2363 static PyMethodDef __pyx_mdef_15cpostprocessing_1postProcessRT0velocityFromP1nc = {"postProcessRT0velocityFromP1nc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_1postProcessRT0velocityFromP1nc, METH_VARARGS|METH_KEYWORDS, 0};
2364 static PyObject *__pyx_pw_15cpostprocessing_1postProcessRT0velocityFromP1nc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
2365  PyArrayObject *__pyx_v_nFreeDOF_element = 0;
2366  PyArrayObject *__pyx_v_freeLocal_element = 0;
2367  PyArrayObject *__pyx_v_detJ = 0;
2368  PyArrayObject *__pyx_v_sqrt_det_g = 0;
2369  PyArrayObject *__pyx_v_n = 0;
2370  PyArrayObject *__pyx_v_elementBarycenters = 0;
2371  PyArrayObject *__pyx_v_quad_a = 0;
2372  PyArrayObject *__pyx_v_quad_f = 0;
2373  PyArrayObject *__pyx_v_w_dV_r = 0;
2374  PyArrayObject *__pyx_v_u = 0;
2375  PyArrayObject *__pyx_v_gradu = 0;
2376  PyArrayObject *__pyx_v_a = 0;
2377  PyArrayObject *__pyx_v_f = 0;
2378  PyArrayObject *__pyx_v_r = 0;
2379  PyArrayObject *__pyx_v_rt0vdofs = 0;
2380  PyArrayObject *__pyx_v_w_dV_m = 0;
2381  PyArrayObject *__pyx_v_mt = 0;
2382  int __pyx_lineno = 0;
2383  const char *__pyx_filename = NULL;
2384  int __pyx_clineno = 0;
2385  PyObject *__pyx_r = 0;
2386  __Pyx_RefNannyDeclarations
2387  __Pyx_RefNannySetupContext("postProcessRT0velocityFromP1nc (wrapper)", 0);
2388  {
2389  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nFreeDOF_element,&__pyx_n_s_freeLocal_element,&__pyx_n_s_detJ,&__pyx_n_s_sqrt_det_g,&__pyx_n_s_n,&__pyx_n_s_elementBarycenters,&__pyx_n_s_quad_a,&__pyx_n_s_quad_f,&__pyx_n_s_w_dV_r,&__pyx_n_s_u,&__pyx_n_s_gradu,&__pyx_n_s_a,&__pyx_n_s_f,&__pyx_n_s_r,&__pyx_n_s_rt0vdofs,&__pyx_n_s_w_dV_m,&__pyx_n_s_mt,0};
2390  PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
2391 
2392  /* "cpostprocessing.pyx":21
2393  * np.ndarray r,
2394  * np.ndarray rt0vdofs,
2395  * np.ndarray w_dV_m=None, # <<<<<<<<<<<<<<
2396  * np.ndarray mt=None):
2397  * if mt is not None and w_dV_m is not None:
2398  */
2399  values[15] = (PyObject *)((PyArrayObject *)Py_None);
2400 
2401  /* "cpostprocessing.pyx":22
2402  * np.ndarray rt0vdofs,
2403  * np.ndarray w_dV_m=None,
2404  * np.ndarray mt=None): # <<<<<<<<<<<<<<
2405  * if mt is not None and w_dV_m is not None:
2406  * pp.postProcessRT0velocityFromP1nc(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/
2407  */
2408  values[16] = (PyObject *)((PyArrayObject *)Py_None);
2409  if (unlikely(__pyx_kwds)) {
2410  Py_ssize_t kw_args;
2411  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
2412  switch (pos_args) {
2413  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
2414  CYTHON_FALLTHROUGH;
2415  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
2416  CYTHON_FALLTHROUGH;
2417  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
2418  CYTHON_FALLTHROUGH;
2419  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
2420  CYTHON_FALLTHROUGH;
2421  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
2422  CYTHON_FALLTHROUGH;
2423  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
2424  CYTHON_FALLTHROUGH;
2425  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
2426  CYTHON_FALLTHROUGH;
2427  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
2428  CYTHON_FALLTHROUGH;
2429  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
2430  CYTHON_FALLTHROUGH;
2431  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
2432  CYTHON_FALLTHROUGH;
2433  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
2434  CYTHON_FALLTHROUGH;
2435  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
2436  CYTHON_FALLTHROUGH;
2437  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
2438  CYTHON_FALLTHROUGH;
2439  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
2440  CYTHON_FALLTHROUGH;
2441  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
2442  CYTHON_FALLTHROUGH;
2443  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
2444  CYTHON_FALLTHROUGH;
2445  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
2446  CYTHON_FALLTHROUGH;
2447  case 0: break;
2448  default: goto __pyx_L5_argtuple_error;
2449  }
2450  kw_args = PyDict_Size(__pyx_kwds);
2451  switch (pos_args) {
2452  case 0:
2453  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nFreeDOF_element)) != 0)) kw_args--;
2454  else goto __pyx_L5_argtuple_error;
2455  CYTHON_FALLTHROUGH;
2456  case 1:
2457  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_freeLocal_element)) != 0)) kw_args--;
2458  else {
2459  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, 1); __PYX_ERR(0, 6, __pyx_L3_error)
2460  }
2461  CYTHON_FALLTHROUGH;
2462  case 2:
2463  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_detJ)) != 0)) kw_args--;
2464  else {
2465  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, 2); __PYX_ERR(0, 6, __pyx_L3_error)
2466  }
2467  CYTHON_FALLTHROUGH;
2468  case 3:
2469  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sqrt_det_g)) != 0)) kw_args--;
2470  else {
2471  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, 3); __PYX_ERR(0, 6, __pyx_L3_error)
2472  }
2473  CYTHON_FALLTHROUGH;
2474  case 4:
2475  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
2476  else {
2477  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, 4); __PYX_ERR(0, 6, __pyx_L3_error)
2478  }
2479  CYTHON_FALLTHROUGH;
2480  case 5:
2481  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBarycenters)) != 0)) kw_args--;
2482  else {
2483  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, 5); __PYX_ERR(0, 6, __pyx_L3_error)
2484  }
2485  CYTHON_FALLTHROUGH;
2486  case 6:
2487  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_quad_a)) != 0)) kw_args--;
2488  else {
2489  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, 6); __PYX_ERR(0, 6, __pyx_L3_error)
2490  }
2491  CYTHON_FALLTHROUGH;
2492  case 7:
2493  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_quad_f)) != 0)) kw_args--;
2494  else {
2495  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, 7); __PYX_ERR(0, 6, __pyx_L3_error)
2496  }
2497  CYTHON_FALLTHROUGH;
2498  case 8:
2499  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_dV_r)) != 0)) kw_args--;
2500  else {
2501  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, 8); __PYX_ERR(0, 6, __pyx_L3_error)
2502  }
2503  CYTHON_FALLTHROUGH;
2504  case 9:
2505  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
2506  else {
2507  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, 9); __PYX_ERR(0, 6, __pyx_L3_error)
2508  }
2509  CYTHON_FALLTHROUGH;
2510  case 10:
2511  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gradu)) != 0)) kw_args--;
2512  else {
2513  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, 10); __PYX_ERR(0, 6, __pyx_L3_error)
2514  }
2515  CYTHON_FALLTHROUGH;
2516  case 11:
2517  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
2518  else {
2519  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, 11); __PYX_ERR(0, 6, __pyx_L3_error)
2520  }
2521  CYTHON_FALLTHROUGH;
2522  case 12:
2523  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
2524  else {
2525  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, 12); __PYX_ERR(0, 6, __pyx_L3_error)
2526  }
2527  CYTHON_FALLTHROUGH;
2528  case 13:
2529  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_r)) != 0)) kw_args--;
2530  else {
2531  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, 13); __PYX_ERR(0, 6, __pyx_L3_error)
2532  }
2533  CYTHON_FALLTHROUGH;
2534  case 14:
2535  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rt0vdofs)) != 0)) kw_args--;
2536  else {
2537  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, 14); __PYX_ERR(0, 6, __pyx_L3_error)
2538  }
2539  CYTHON_FALLTHROUGH;
2540  case 15:
2541  if (kw_args > 0) {
2542  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_dV_m);
2543  if (value) { values[15] = value; kw_args--; }
2544  }
2545  CYTHON_FALLTHROUGH;
2546  case 16:
2547  if (kw_args > 0) {
2548  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mt);
2549  if (value) { values[16] = value; kw_args--; }
2550  }
2551  }
2552  if (unlikely(kw_args > 0)) {
2553  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "postProcessRT0velocityFromP1nc") < 0)) __PYX_ERR(0, 6, __pyx_L3_error)
2554  }
2555  } else {
2556  switch (PyTuple_GET_SIZE(__pyx_args)) {
2557  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
2558  CYTHON_FALLTHROUGH;
2559  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
2560  CYTHON_FALLTHROUGH;
2561  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
2562  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
2563  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
2564  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
2565  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
2566  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
2567  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
2568  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
2569  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
2570  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
2571  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
2572  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
2573  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
2574  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
2575  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
2576  break;
2577  default: goto __pyx_L5_argtuple_error;
2578  }
2579  }
2580  __pyx_v_nFreeDOF_element = ((PyArrayObject *)values[0]);
2581  __pyx_v_freeLocal_element = ((PyArrayObject *)values[1]);
2582  __pyx_v_detJ = ((PyArrayObject *)values[2]);
2583  __pyx_v_sqrt_det_g = ((PyArrayObject *)values[3]);
2584  __pyx_v_n = ((PyArrayObject *)values[4]);
2585  __pyx_v_elementBarycenters = ((PyArrayObject *)values[5]);
2586  __pyx_v_quad_a = ((PyArrayObject *)values[6]);
2587  __pyx_v_quad_f = ((PyArrayObject *)values[7]);
2588  __pyx_v_w_dV_r = ((PyArrayObject *)values[8]);
2589  __pyx_v_u = ((PyArrayObject *)values[9]);
2590  __pyx_v_gradu = ((PyArrayObject *)values[10]);
2591  __pyx_v_a = ((PyArrayObject *)values[11]);
2592  __pyx_v_f = ((PyArrayObject *)values[12]);
2593  __pyx_v_r = ((PyArrayObject *)values[13]);
2594  __pyx_v_rt0vdofs = ((PyArrayObject *)values[14]);
2595  __pyx_v_w_dV_m = ((PyArrayObject *)values[15]);
2596  __pyx_v_mt = ((PyArrayObject *)values[16]);
2597  }
2598  goto __pyx_L4_argument_unpacking_done;
2599  __pyx_L5_argtuple_error:;
2600  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6, __pyx_L3_error)
2601  __pyx_L3_error:;
2602  __Pyx_AddTraceback("cpostprocessing.postProcessRT0velocityFromP1nc", __pyx_clineno, __pyx_lineno, __pyx_filename);
2603  __Pyx_RefNannyFinishContext();
2604  return NULL;
2605  __pyx_L4_argument_unpacking_done:;
2606  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nFreeDOF_element), __pyx_ptype_5numpy_ndarray, 1, "nFreeDOF_element", 0))) __PYX_ERR(0, 6, __pyx_L1_error)
2607  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_freeLocal_element), __pyx_ptype_5numpy_ndarray, 1, "freeLocal_element", 0))) __PYX_ERR(0, 7, __pyx_L1_error)
2608  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_detJ), __pyx_ptype_5numpy_ndarray, 1, "detJ", 0))) __PYX_ERR(0, 8, __pyx_L1_error)
2609  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sqrt_det_g), __pyx_ptype_5numpy_ndarray, 1, "sqrt_det_g", 0))) __PYX_ERR(0, 9, __pyx_L1_error)
2610  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 10, __pyx_L1_error)
2611  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBarycenters), __pyx_ptype_5numpy_ndarray, 1, "elementBarycenters", 0))) __PYX_ERR(0, 11, __pyx_L1_error)
2612  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad_a), __pyx_ptype_5numpy_ndarray, 1, "quad_a", 0))) __PYX_ERR(0, 12, __pyx_L1_error)
2613  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad_f), __pyx_ptype_5numpy_ndarray, 1, "quad_f", 0))) __PYX_ERR(0, 13, __pyx_L1_error)
2614  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dV_r), __pyx_ptype_5numpy_ndarray, 1, "w_dV_r", 0))) __PYX_ERR(0, 14, __pyx_L1_error)
2615  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 15, __pyx_L1_error)
2616  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gradu), __pyx_ptype_5numpy_ndarray, 1, "gradu", 0))) __PYX_ERR(0, 16, __pyx_L1_error)
2617  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 17, __pyx_L1_error)
2618  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 18, __pyx_L1_error)
2619  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_r), __pyx_ptype_5numpy_ndarray, 1, "r", 0))) __PYX_ERR(0, 19, __pyx_L1_error)
2620  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs), __pyx_ptype_5numpy_ndarray, 1, "rt0vdofs", 0))) __PYX_ERR(0, 20, __pyx_L1_error)
2621  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dV_m), __pyx_ptype_5numpy_ndarray, 1, "w_dV_m", 0))) __PYX_ERR(0, 21, __pyx_L1_error)
2622  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mt), __pyx_ptype_5numpy_ndarray, 1, "mt", 0))) __PYX_ERR(0, 22, __pyx_L1_error)
2623  __pyx_r = __pyx_pf_15cpostprocessing_postProcessRT0velocityFromP1nc(__pyx_self, __pyx_v_nFreeDOF_element, __pyx_v_freeLocal_element, __pyx_v_detJ, __pyx_v_sqrt_det_g, __pyx_v_n, __pyx_v_elementBarycenters, __pyx_v_quad_a, __pyx_v_quad_f, __pyx_v_w_dV_r, __pyx_v_u, __pyx_v_gradu, __pyx_v_a, __pyx_v_f, __pyx_v_r, __pyx_v_rt0vdofs, __pyx_v_w_dV_m, __pyx_v_mt);
2624 
2625  /* "cpostprocessing.pyx":6
2626  * cimport postprocessing as pp
2627  *
2628  * def postProcessRT0velocityFromP1nc(np.ndarray nFreeDOF_element, # <<<<<<<<<<<<<<
2629  * np.ndarray freeLocal_element,
2630  * np.ndarray detJ,
2631  */
2632 
2633  /* function exit code */
2634  goto __pyx_L0;
2635  __pyx_L1_error:;
2636  __pyx_r = NULL;
2637  __pyx_L0:;
2638  __Pyx_RefNannyFinishContext();
2639  return __pyx_r;
2640 }
2641 
2642 static PyObject *__pyx_pf_15cpostprocessing_postProcessRT0velocityFromP1nc(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nFreeDOF_element, PyArrayObject *__pyx_v_freeLocal_element, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_quad_f, PyArrayObject *__pyx_v_w_dV_r, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_w_dV_m, PyArrayObject *__pyx_v_mt) {
2643  PyObject *__pyx_r = NULL;
2644  __Pyx_RefNannyDeclarations
2645  int __pyx_t_1;
2646  int __pyx_t_2;
2647  int __pyx_t_3;
2648  __Pyx_RefNannySetupContext("postProcessRT0velocityFromP1nc", 0);
2649 
2650  /* "cpostprocessing.pyx":23
2651  * np.ndarray w_dV_m=None,
2652  * np.ndarray mt=None):
2653  * if mt is not None and w_dV_m is not None: # <<<<<<<<<<<<<<
2654  * pp.postProcessRT0velocityFromP1nc(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/
2655  * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
2656  */
2657  __pyx_t_2 = (((PyObject *)__pyx_v_mt) != Py_None);
2658  __pyx_t_3 = (__pyx_t_2 != 0);
2659  if (__pyx_t_3) {
2660  } else {
2661  __pyx_t_1 = __pyx_t_3;
2662  goto __pyx_L4_bool_binop_done;
2663  }
2664  __pyx_t_3 = (((PyObject *)__pyx_v_w_dV_m) != Py_None);
2665  __pyx_t_2 = (__pyx_t_3 != 0);
2666  __pyx_t_1 = __pyx_t_2;
2667  __pyx_L4_bool_binop_done:;
2668  if (__pyx_t_1) {
2669 
2670  /* "cpostprocessing.pyx":24
2671  * np.ndarray mt=None):
2672  * if mt is not None and w_dV_m is not None:
2673  * pp.postProcessRT0velocityFromP1nc(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/ # <<<<<<<<<<<<<<
2674  * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
2675  * w_dV_r.shape[2],#/[inserted by cython to avoid comment start]*nDOF_test_element*[inserted by cython to avoid comment closer]/
2676  */
2677  postProcessRT0velocityFromP1nc((__pyx_v_gradu->dimensions[0]), (__pyx_v_gradu->dimensions[1]), (__pyx_v_w_dV_r->dimensions[2]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_gradu->dimensions[2]), ((int *)__pyx_v_nFreeDOF_element->data), ((int *)__pyx_v_freeLocal_element->data), ((double *)__pyx_v_detJ->data), ((double *)__pyx_v_sqrt_det_g->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_elementBarycenters->data), ((double *)__pyx_v_quad_a->data), ((double *)__pyx_v_quad_f->data), ((double *)__pyx_v_w_dV_r->data), ((double *)__pyx_v_w_dV_m->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_gradu->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_r->data), ((double *)__pyx_v_mt->data), ((double *)__pyx_v_rt0vdofs->data));
2678 
2679  /* "cpostprocessing.pyx":23
2680  * np.ndarray w_dV_m=None,
2681  * np.ndarray mt=None):
2682  * if mt is not None and w_dV_m is not None: # <<<<<<<<<<<<<<
2683  * pp.postProcessRT0velocityFromP1nc(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/
2684  * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
2685  */
2686  goto __pyx_L3;
2687  }
2688 
2689  /* "cpostprocessing.pyx":48
2690  * <double*>(rt0vdofs.data))
2691  * else:
2692  * pp.postProcessRT0velocityFromP1ncNoMass(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/ # <<<<<<<<<<<<<<
2693  * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
2694  * w_dV_r.shape[2],#/[inserted by cython to avoid comment start]*nDOF_test_element*[inserted by cython to avoid comment closer]/
2695  */
2696  /*else*/ {
2697 
2698  /* "cpostprocessing.pyx":68
2699  * <double*>(f.data),
2700  * <double*>(r.data),
2701  * <double*>(rt0vdofs.data)) # <<<<<<<<<<<<<<
2702  *
2703  * def postProcessRT0velocityFromP1nc_sd(np.ndarray rowptr,
2704  */
2705  postProcessRT0velocityFromP1ncNoMass((__pyx_v_gradu->dimensions[0]), (__pyx_v_gradu->dimensions[1]), (__pyx_v_w_dV_r->dimensions[2]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_gradu->dimensions[2]), ((int *)__pyx_v_nFreeDOF_element->data), ((int *)__pyx_v_freeLocal_element->data), ((double *)__pyx_v_detJ->data), ((double *)__pyx_v_sqrt_det_g->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_elementBarycenters->data), ((double *)__pyx_v_quad_a->data), ((double *)__pyx_v_quad_f->data), ((double *)__pyx_v_w_dV_r->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_gradu->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_r->data), ((double *)__pyx_v_rt0vdofs->data));
2706  }
2707  __pyx_L3:;
2708 
2709  /* "cpostprocessing.pyx":6
2710  * cimport postprocessing as pp
2711  *
2712  * def postProcessRT0velocityFromP1nc(np.ndarray nFreeDOF_element, # <<<<<<<<<<<<<<
2713  * np.ndarray freeLocal_element,
2714  * np.ndarray detJ,
2715  */
2716 
2717  /* function exit code */
2718  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
2719  __Pyx_XGIVEREF(__pyx_r);
2720  __Pyx_RefNannyFinishContext();
2721  return __pyx_r;
2722 }
2723 
2724 /* "cpostprocessing.pyx":70
2725  * <double*>(rt0vdofs.data))
2726  *
2727  * def postProcessRT0velocityFromP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
2728  * np.ndarray colind,
2729  * np.ndarray nFreeDOF_element,
2730  */
2731 
2732 /* Python wrapper */
2733 static PyObject *__pyx_pw_15cpostprocessing_3postProcessRT0velocityFromP1nc_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
2734 static PyMethodDef __pyx_mdef_15cpostprocessing_3postProcessRT0velocityFromP1nc_sd = {"postProcessRT0velocityFromP1nc_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_3postProcessRT0velocityFromP1nc_sd, METH_VARARGS|METH_KEYWORDS, 0};
2735 static PyObject *__pyx_pw_15cpostprocessing_3postProcessRT0velocityFromP1nc_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
2736  PyArrayObject *__pyx_v_rowptr = 0;
2737  PyArrayObject *__pyx_v_colind = 0;
2738  PyArrayObject *__pyx_v_nFreeDOF_element = 0;
2739  PyArrayObject *__pyx_v_freeLocal_element = 0;
2740  PyArrayObject *__pyx_v_detJ = 0;
2741  PyArrayObject *__pyx_v_sqrt_det_g = 0;
2742  PyArrayObject *__pyx_v_n = 0;
2743  PyArrayObject *__pyx_v_elementBarycenters = 0;
2744  PyArrayObject *__pyx_v_quad_a = 0;
2745  PyArrayObject *__pyx_v_quad_f = 0;
2746  PyArrayObject *__pyx_v_w_dV_r = 0;
2747  PyArrayObject *__pyx_v_u = 0;
2748  PyArrayObject *__pyx_v_gradu = 0;
2749  PyArrayObject *__pyx_v_a = 0;
2750  PyArrayObject *__pyx_v_f = 0;
2751  PyArrayObject *__pyx_v_r = 0;
2752  PyArrayObject *__pyx_v_rt0vdofs = 0;
2753  PyArrayObject *__pyx_v_w_dV_m = 0;
2754  PyArrayObject *__pyx_v_mt = 0;
2755  int __pyx_lineno = 0;
2756  const char *__pyx_filename = NULL;
2757  int __pyx_clineno = 0;
2758  PyObject *__pyx_r = 0;
2759  __Pyx_RefNannyDeclarations
2760  __Pyx_RefNannySetupContext("postProcessRT0velocityFromP1nc_sd (wrapper)", 0);
2761  {
2762  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_nFreeDOF_element,&__pyx_n_s_freeLocal_element,&__pyx_n_s_detJ,&__pyx_n_s_sqrt_det_g,&__pyx_n_s_n,&__pyx_n_s_elementBarycenters,&__pyx_n_s_quad_a,&__pyx_n_s_quad_f,&__pyx_n_s_w_dV_r,&__pyx_n_s_u,&__pyx_n_s_gradu,&__pyx_n_s_a,&__pyx_n_s_f,&__pyx_n_s_r,&__pyx_n_s_rt0vdofs,&__pyx_n_s_w_dV_m,&__pyx_n_s_mt,0};
2763  PyObject* values[19] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
2764 
2765  /* "cpostprocessing.pyx":87
2766  * np.ndarray r,
2767  * np.ndarray rt0vdofs,
2768  * np.ndarray w_dV_m=None, # <<<<<<<<<<<<<<
2769  * np.ndarray mt=None):
2770  * if mt is None and w_dV_m is not None:
2771  */
2772  values[17] = (PyObject *)((PyArrayObject *)Py_None);
2773 
2774  /* "cpostprocessing.pyx":88
2775  * np.ndarray rt0vdofs,
2776  * np.ndarray w_dV_m=None,
2777  * np.ndarray mt=None): # <<<<<<<<<<<<<<
2778  * if mt is None and w_dV_m is not None:
2779  * pp.postProcessRT0velocityFromP1nc_sd(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/
2780  */
2781  values[18] = (PyObject *)((PyArrayObject *)Py_None);
2782  if (unlikely(__pyx_kwds)) {
2783  Py_ssize_t kw_args;
2784  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
2785  switch (pos_args) {
2786  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
2787  CYTHON_FALLTHROUGH;
2788  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
2789  CYTHON_FALLTHROUGH;
2790  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
2791  CYTHON_FALLTHROUGH;
2792  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
2793  CYTHON_FALLTHROUGH;
2794  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
2795  CYTHON_FALLTHROUGH;
2796  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
2797  CYTHON_FALLTHROUGH;
2798  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
2799  CYTHON_FALLTHROUGH;
2800  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
2801  CYTHON_FALLTHROUGH;
2802  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
2803  CYTHON_FALLTHROUGH;
2804  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
2805  CYTHON_FALLTHROUGH;
2806  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
2807  CYTHON_FALLTHROUGH;
2808  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
2809  CYTHON_FALLTHROUGH;
2810  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
2811  CYTHON_FALLTHROUGH;
2812  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
2813  CYTHON_FALLTHROUGH;
2814  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
2815  CYTHON_FALLTHROUGH;
2816  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
2817  CYTHON_FALLTHROUGH;
2818  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
2819  CYTHON_FALLTHROUGH;
2820  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
2821  CYTHON_FALLTHROUGH;
2822  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
2823  CYTHON_FALLTHROUGH;
2824  case 0: break;
2825  default: goto __pyx_L5_argtuple_error;
2826  }
2827  kw_args = PyDict_Size(__pyx_kwds);
2828  switch (pos_args) {
2829  case 0:
2830  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
2831  else goto __pyx_L5_argtuple_error;
2832  CYTHON_FALLTHROUGH;
2833  case 1:
2834  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
2835  else {
2836  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 1); __PYX_ERR(0, 70, __pyx_L3_error)
2837  }
2838  CYTHON_FALLTHROUGH;
2839  case 2:
2840  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nFreeDOF_element)) != 0)) kw_args--;
2841  else {
2842  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 2); __PYX_ERR(0, 70, __pyx_L3_error)
2843  }
2844  CYTHON_FALLTHROUGH;
2845  case 3:
2846  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_freeLocal_element)) != 0)) kw_args--;
2847  else {
2848  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 3); __PYX_ERR(0, 70, __pyx_L3_error)
2849  }
2850  CYTHON_FALLTHROUGH;
2851  case 4:
2852  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_detJ)) != 0)) kw_args--;
2853  else {
2854  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 4); __PYX_ERR(0, 70, __pyx_L3_error)
2855  }
2856  CYTHON_FALLTHROUGH;
2857  case 5:
2858  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sqrt_det_g)) != 0)) kw_args--;
2859  else {
2860  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 5); __PYX_ERR(0, 70, __pyx_L3_error)
2861  }
2862  CYTHON_FALLTHROUGH;
2863  case 6:
2864  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
2865  else {
2866  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 6); __PYX_ERR(0, 70, __pyx_L3_error)
2867  }
2868  CYTHON_FALLTHROUGH;
2869  case 7:
2870  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBarycenters)) != 0)) kw_args--;
2871  else {
2872  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 7); __PYX_ERR(0, 70, __pyx_L3_error)
2873  }
2874  CYTHON_FALLTHROUGH;
2875  case 8:
2876  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_quad_a)) != 0)) kw_args--;
2877  else {
2878  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 8); __PYX_ERR(0, 70, __pyx_L3_error)
2879  }
2880  CYTHON_FALLTHROUGH;
2881  case 9:
2882  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_quad_f)) != 0)) kw_args--;
2883  else {
2884  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 9); __PYX_ERR(0, 70, __pyx_L3_error)
2885  }
2886  CYTHON_FALLTHROUGH;
2887  case 10:
2888  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_dV_r)) != 0)) kw_args--;
2889  else {
2890  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 10); __PYX_ERR(0, 70, __pyx_L3_error)
2891  }
2892  CYTHON_FALLTHROUGH;
2893  case 11:
2894  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
2895  else {
2896  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 11); __PYX_ERR(0, 70, __pyx_L3_error)
2897  }
2898  CYTHON_FALLTHROUGH;
2899  case 12:
2900  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gradu)) != 0)) kw_args--;
2901  else {
2902  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 12); __PYX_ERR(0, 70, __pyx_L3_error)
2903  }
2904  CYTHON_FALLTHROUGH;
2905  case 13:
2906  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
2907  else {
2908  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 13); __PYX_ERR(0, 70, __pyx_L3_error)
2909  }
2910  CYTHON_FALLTHROUGH;
2911  case 14:
2912  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
2913  else {
2914  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 14); __PYX_ERR(0, 70, __pyx_L3_error)
2915  }
2916  CYTHON_FALLTHROUGH;
2917  case 15:
2918  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_r)) != 0)) kw_args--;
2919  else {
2920  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 15); __PYX_ERR(0, 70, __pyx_L3_error)
2921  }
2922  CYTHON_FALLTHROUGH;
2923  case 16:
2924  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rt0vdofs)) != 0)) kw_args--;
2925  else {
2926  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, 16); __PYX_ERR(0, 70, __pyx_L3_error)
2927  }
2928  CYTHON_FALLTHROUGH;
2929  case 17:
2930  if (kw_args > 0) {
2931  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_dV_m);
2932  if (value) { values[17] = value; kw_args--; }
2933  }
2934  CYTHON_FALLTHROUGH;
2935  case 18:
2936  if (kw_args > 0) {
2937  PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mt);
2938  if (value) { values[18] = value; kw_args--; }
2939  }
2940  }
2941  if (unlikely(kw_args > 0)) {
2942  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "postProcessRT0velocityFromP1nc_sd") < 0)) __PYX_ERR(0, 70, __pyx_L3_error)
2943  }
2944  } else {
2945  switch (PyTuple_GET_SIZE(__pyx_args)) {
2946  case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
2947  CYTHON_FALLTHROUGH;
2948  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
2949  CYTHON_FALLTHROUGH;
2950  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
2951  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
2952  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
2953  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
2954  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
2955  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
2956  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
2957  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
2958  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
2959  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
2960  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
2961  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
2962  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
2963  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
2964  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
2965  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
2966  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
2967  break;
2968  default: goto __pyx_L5_argtuple_error;
2969  }
2970  }
2971  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
2972  __pyx_v_colind = ((PyArrayObject *)values[1]);
2973  __pyx_v_nFreeDOF_element = ((PyArrayObject *)values[2]);
2974  __pyx_v_freeLocal_element = ((PyArrayObject *)values[3]);
2975  __pyx_v_detJ = ((PyArrayObject *)values[4]);
2976  __pyx_v_sqrt_det_g = ((PyArrayObject *)values[5]);
2977  __pyx_v_n = ((PyArrayObject *)values[6]);
2978  __pyx_v_elementBarycenters = ((PyArrayObject *)values[7]);
2979  __pyx_v_quad_a = ((PyArrayObject *)values[8]);
2980  __pyx_v_quad_f = ((PyArrayObject *)values[9]);
2981  __pyx_v_w_dV_r = ((PyArrayObject *)values[10]);
2982  __pyx_v_u = ((PyArrayObject *)values[11]);
2983  __pyx_v_gradu = ((PyArrayObject *)values[12]);
2984  __pyx_v_a = ((PyArrayObject *)values[13]);
2985  __pyx_v_f = ((PyArrayObject *)values[14]);
2986  __pyx_v_r = ((PyArrayObject *)values[15]);
2987  __pyx_v_rt0vdofs = ((PyArrayObject *)values[16]);
2988  __pyx_v_w_dV_m = ((PyArrayObject *)values[17]);
2989  __pyx_v_mt = ((PyArrayObject *)values[18]);
2990  }
2991  goto __pyx_L4_argument_unpacking_done;
2992  __pyx_L5_argtuple_error:;
2993  __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 70, __pyx_L3_error)
2994  __pyx_L3_error:;
2995  __Pyx_AddTraceback("cpostprocessing.postProcessRT0velocityFromP1nc_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
2996  __Pyx_RefNannyFinishContext();
2997  return NULL;
2998  __pyx_L4_argument_unpacking_done:;
2999  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 70, __pyx_L1_error)
3000  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 71, __pyx_L1_error)
3001  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nFreeDOF_element), __pyx_ptype_5numpy_ndarray, 1, "nFreeDOF_element", 0))) __PYX_ERR(0, 72, __pyx_L1_error)
3002  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_freeLocal_element), __pyx_ptype_5numpy_ndarray, 1, "freeLocal_element", 0))) __PYX_ERR(0, 73, __pyx_L1_error)
3003  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_detJ), __pyx_ptype_5numpy_ndarray, 1, "detJ", 0))) __PYX_ERR(0, 74, __pyx_L1_error)
3004  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sqrt_det_g), __pyx_ptype_5numpy_ndarray, 1, "sqrt_det_g", 0))) __PYX_ERR(0, 75, __pyx_L1_error)
3005  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 76, __pyx_L1_error)
3006  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBarycenters), __pyx_ptype_5numpy_ndarray, 1, "elementBarycenters", 0))) __PYX_ERR(0, 77, __pyx_L1_error)
3007  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad_a), __pyx_ptype_5numpy_ndarray, 1, "quad_a", 0))) __PYX_ERR(0, 78, __pyx_L1_error)
3008  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad_f), __pyx_ptype_5numpy_ndarray, 1, "quad_f", 0))) __PYX_ERR(0, 79, __pyx_L1_error)
3009  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dV_r), __pyx_ptype_5numpy_ndarray, 1, "w_dV_r", 0))) __PYX_ERR(0, 80, __pyx_L1_error)
3010  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 81, __pyx_L1_error)
3011  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gradu), __pyx_ptype_5numpy_ndarray, 1, "gradu", 0))) __PYX_ERR(0, 82, __pyx_L1_error)
3012  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 83, __pyx_L1_error)
3013  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 84, __pyx_L1_error)
3014  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_r), __pyx_ptype_5numpy_ndarray, 1, "r", 0))) __PYX_ERR(0, 85, __pyx_L1_error)
3015  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs), __pyx_ptype_5numpy_ndarray, 1, "rt0vdofs", 0))) __PYX_ERR(0, 86, __pyx_L1_error)
3016  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dV_m), __pyx_ptype_5numpy_ndarray, 1, "w_dV_m", 0))) __PYX_ERR(0, 87, __pyx_L1_error)
3017  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mt), __pyx_ptype_5numpy_ndarray, 1, "mt", 0))) __PYX_ERR(0, 88, __pyx_L1_error)
3018  __pyx_r = __pyx_pf_15cpostprocessing_2postProcessRT0velocityFromP1nc_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_nFreeDOF_element, __pyx_v_freeLocal_element, __pyx_v_detJ, __pyx_v_sqrt_det_g, __pyx_v_n, __pyx_v_elementBarycenters, __pyx_v_quad_a, __pyx_v_quad_f, __pyx_v_w_dV_r, __pyx_v_u, __pyx_v_gradu, __pyx_v_a, __pyx_v_f, __pyx_v_r, __pyx_v_rt0vdofs, __pyx_v_w_dV_m, __pyx_v_mt);
3019 
3020  /* "cpostprocessing.pyx":70
3021  * <double*>(rt0vdofs.data))
3022  *
3023  * def postProcessRT0velocityFromP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
3024  * np.ndarray colind,
3025  * np.ndarray nFreeDOF_element,
3026  */
3027 
3028  /* function exit code */
3029  goto __pyx_L0;
3030  __pyx_L1_error:;
3031  __pyx_r = NULL;
3032  __pyx_L0:;
3033  __Pyx_RefNannyFinishContext();
3034  return __pyx_r;
3035 }
3036 
3037 static PyObject *__pyx_pf_15cpostprocessing_2postProcessRT0velocityFromP1nc_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_nFreeDOF_element, PyArrayObject *__pyx_v_freeLocal_element, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_quad_f, PyArrayObject *__pyx_v_w_dV_r, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_w_dV_m, PyArrayObject *__pyx_v_mt) {
3038  PyObject *__pyx_r = NULL;
3039  __Pyx_RefNannyDeclarations
3040  int __pyx_t_1;
3041  int __pyx_t_2;
3042  int __pyx_t_3;
3043  __Pyx_RefNannySetupContext("postProcessRT0velocityFromP1nc_sd", 0);
3044 
3045  /* "cpostprocessing.pyx":89
3046  * np.ndarray w_dV_m=None,
3047  * np.ndarray mt=None):
3048  * if mt is None and w_dV_m is not None: # <<<<<<<<<<<<<<
3049  * pp.postProcessRT0velocityFromP1nc_sd(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/
3050  * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
3051  */
3052  __pyx_t_2 = (((PyObject *)__pyx_v_mt) == Py_None);
3053  __pyx_t_3 = (__pyx_t_2 != 0);
3054  if (__pyx_t_3) {
3055  } else {
3056  __pyx_t_1 = __pyx_t_3;
3057  goto __pyx_L4_bool_binop_done;
3058  }
3059  __pyx_t_3 = (((PyObject *)__pyx_v_w_dV_m) != Py_None);
3060  __pyx_t_2 = (__pyx_t_3 != 0);
3061  __pyx_t_1 = __pyx_t_2;
3062  __pyx_L4_bool_binop_done:;
3063  if (__pyx_t_1) {
3064 
3065  /* "cpostprocessing.pyx":90
3066  * np.ndarray mt=None):
3067  * if mt is None and w_dV_m is not None:
3068  * pp.postProcessRT0velocityFromP1nc_sd(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/ # <<<<<<<<<<<<<<
3069  * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
3070  * w_dV_r.shape[2],#/[inserted by cython to avoid comment start]*nDOF_test_element*[inserted by cython to avoid comment closer]/
3071  */
3072  postProcessRT0velocityFromP1nc_sd((__pyx_v_gradu->dimensions[0]), (__pyx_v_gradu->dimensions[1]), (__pyx_v_w_dV_r->dimensions[2]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_gradu->dimensions[2]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_nFreeDOF_element->data), ((int *)__pyx_v_freeLocal_element->data), ((double *)__pyx_v_detJ->data), ((double *)__pyx_v_sqrt_det_g->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_elementBarycenters->data), ((double *)__pyx_v_quad_a->data), ((double *)__pyx_v_quad_f->data), ((double *)__pyx_v_w_dV_r->data), ((double *)__pyx_v_w_dV_m->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_gradu->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_r->data), ((double *)__pyx_v_mt->data), ((double *)__pyx_v_rt0vdofs->data));
3073 
3074  /* "cpostprocessing.pyx":89
3075  * np.ndarray w_dV_m=None,
3076  * np.ndarray mt=None):
3077  * if mt is None and w_dV_m is not None: # <<<<<<<<<<<<<<
3078  * pp.postProcessRT0velocityFromP1nc_sd(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/
3079  * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
3080  */
3081  goto __pyx_L3;
3082  }
3083 
3084  /* "cpostprocessing.pyx":116
3085  * <double*>(rt0vdofs.data))
3086  * else:
3087  * pp.postProcessRT0velocityFromP1ncNoMass_sd(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/ # <<<<<<<<<<<<<<
3088  * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
3089  * w_dV_r.shape[2],#/[inserted by cython to avoid comment start]*nDOF_test_element*[inserted by cython to avoid comment closer]/
3090  */
3091  /*else*/ {
3092 
3093  /* "cpostprocessing.pyx":138
3094  * <double*>(f.data),
3095  * <double*>(r.data),
3096  * <double*>(rt0vdofs.data)) # <<<<<<<<<<<<<<
3097  *
3098  * def updateRT0velocityWithAveragedPotentialP1nc(np.ndarray detJ,
3099  */
3100  postProcessRT0velocityFromP1ncNoMass_sd((__pyx_v_gradu->dimensions[0]), (__pyx_v_gradu->dimensions[1]), (__pyx_v_w_dV_r->dimensions[2]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_gradu->dimensions[2]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_nFreeDOF_element->data), ((int *)__pyx_v_freeLocal_element->data), ((double *)__pyx_v_detJ->data), ((double *)__pyx_v_sqrt_det_g->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_elementBarycenters->data), ((double *)__pyx_v_quad_a->data), ((double *)__pyx_v_quad_f->data), ((double *)__pyx_v_w_dV_r->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_gradu->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_r->data), ((double *)__pyx_v_rt0vdofs->data));
3101  }
3102  __pyx_L3:;
3103 
3104  /* "cpostprocessing.pyx":70
3105  * <double*>(rt0vdofs.data))
3106  *
3107  * def postProcessRT0velocityFromP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
3108  * np.ndarray colind,
3109  * np.ndarray nFreeDOF_element,
3110  */
3111 
3112  /* function exit code */
3113  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3114  __Pyx_XGIVEREF(__pyx_r);
3115  __Pyx_RefNannyFinishContext();
3116  return __pyx_r;
3117 }
3118 
3119 /* "cpostprocessing.pyx":140
3120  * <double*>(rt0vdofs.data))
3121  *
3122  * def updateRT0velocityWithAveragedPotentialP1nc(np.ndarray detJ, # <<<<<<<<<<<<<<
3123  * np.ndarray quad_a,
3124  * np.ndarray phi,
3125  */
3126 
3127 /* Python wrapper */
3128 static PyObject *__pyx_pw_15cpostprocessing_5updateRT0velocityWithAveragedPotentialP1nc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3129 static PyMethodDef __pyx_mdef_15cpostprocessing_5updateRT0velocityWithAveragedPotentialP1nc = {"updateRT0velocityWithAveragedPotentialP1nc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_5updateRT0velocityWithAveragedPotentialP1nc, METH_VARARGS|METH_KEYWORDS, 0};
3130 static PyObject *__pyx_pw_15cpostprocessing_5updateRT0velocityWithAveragedPotentialP1nc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3131  PyArrayObject *__pyx_v_detJ = 0;
3132  PyArrayObject *__pyx_v_quad_a = 0;
3133  PyArrayObject *__pyx_v_phi = 0;
3134  PyArrayObject *__pyx_v_gradphi = 0;
3135  PyArrayObject *__pyx_v_a = 0;
3136  PyArrayObject *__pyx_v_rt0vdofs_element = 0;
3137  int __pyx_lineno = 0;
3138  const char *__pyx_filename = NULL;
3139  int __pyx_clineno = 0;
3140  PyObject *__pyx_r = 0;
3141  __Pyx_RefNannyDeclarations
3142  __Pyx_RefNannySetupContext("updateRT0velocityWithAveragedPotentialP1nc (wrapper)", 0);
3143  {
3144  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_detJ,&__pyx_n_s_quad_a,&__pyx_n_s_phi,&__pyx_n_s_gradphi,&__pyx_n_s_a,&__pyx_n_s_rt0vdofs_element,0};
3145  PyObject* values[6] = {0,0,0,0,0,0};
3146  if (unlikely(__pyx_kwds)) {
3147  Py_ssize_t kw_args;
3148  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3149  switch (pos_args) {
3150  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3151  CYTHON_FALLTHROUGH;
3152  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3153  CYTHON_FALLTHROUGH;
3154  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3155  CYTHON_FALLTHROUGH;
3156  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3157  CYTHON_FALLTHROUGH;
3158  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3159  CYTHON_FALLTHROUGH;
3160  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3161  CYTHON_FALLTHROUGH;
3162  case 0: break;
3163  default: goto __pyx_L5_argtuple_error;
3164  }
3165  kw_args = PyDict_Size(__pyx_kwds);
3166  switch (pos_args) {
3167  case 0:
3168  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_detJ)) != 0)) kw_args--;
3169  else goto __pyx_L5_argtuple_error;
3170  CYTHON_FALLTHROUGH;
3171  case 1:
3172  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_quad_a)) != 0)) kw_args--;
3173  else {
3174  __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc", 1, 6, 6, 1); __PYX_ERR(0, 140, __pyx_L3_error)
3175  }
3176  CYTHON_FALLTHROUGH;
3177  case 2:
3178  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_phi)) != 0)) kw_args--;
3179  else {
3180  __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc", 1, 6, 6, 2); __PYX_ERR(0, 140, __pyx_L3_error)
3181  }
3182  CYTHON_FALLTHROUGH;
3183  case 3:
3184  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gradphi)) != 0)) kw_args--;
3185  else {
3186  __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc", 1, 6, 6, 3); __PYX_ERR(0, 140, __pyx_L3_error)
3187  }
3188  CYTHON_FALLTHROUGH;
3189  case 4:
3190  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
3191  else {
3192  __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc", 1, 6, 6, 4); __PYX_ERR(0, 140, __pyx_L3_error)
3193  }
3194  CYTHON_FALLTHROUGH;
3195  case 5:
3196  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rt0vdofs_element)) != 0)) kw_args--;
3197  else {
3198  __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc", 1, 6, 6, 5); __PYX_ERR(0, 140, __pyx_L3_error)
3199  }
3200  }
3201  if (unlikely(kw_args > 0)) {
3202  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateRT0velocityWithAveragedPotentialP1nc") < 0)) __PYX_ERR(0, 140, __pyx_L3_error)
3203  }
3204  } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
3205  goto __pyx_L5_argtuple_error;
3206  } else {
3207  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3208  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3209  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3210  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3211  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3212  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3213  }
3214  __pyx_v_detJ = ((PyArrayObject *)values[0]);
3215  __pyx_v_quad_a = ((PyArrayObject *)values[1]);
3216  __pyx_v_phi = ((PyArrayObject *)values[2]);
3217  __pyx_v_gradphi = ((PyArrayObject *)values[3]);
3218  __pyx_v_a = ((PyArrayObject *)values[4]);
3219  __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[5]);
3220  }
3221  goto __pyx_L4_argument_unpacking_done;
3222  __pyx_L5_argtuple_error:;
3223  __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 140, __pyx_L3_error)
3224  __pyx_L3_error:;
3225  __Pyx_AddTraceback("cpostprocessing.updateRT0velocityWithAveragedPotentialP1nc", __pyx_clineno, __pyx_lineno, __pyx_filename);
3226  __Pyx_RefNannyFinishContext();
3227  return NULL;
3228  __pyx_L4_argument_unpacking_done:;
3229  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_detJ), __pyx_ptype_5numpy_ndarray, 1, "detJ", 0))) __PYX_ERR(0, 140, __pyx_L1_error)
3230  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad_a), __pyx_ptype_5numpy_ndarray, 1, "quad_a", 0))) __PYX_ERR(0, 141, __pyx_L1_error)
3231  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phi), __pyx_ptype_5numpy_ndarray, 1, "phi", 0))) __PYX_ERR(0, 142, __pyx_L1_error)
3232  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gradphi), __pyx_ptype_5numpy_ndarray, 1, "gradphi", 0))) __PYX_ERR(0, 143, __pyx_L1_error)
3233  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 144, __pyx_L1_error)
3234  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 145, __pyx_L1_error)
3235  __pyx_r = __pyx_pf_15cpostprocessing_4updateRT0velocityWithAveragedPotentialP1nc(__pyx_self, __pyx_v_detJ, __pyx_v_quad_a, __pyx_v_phi, __pyx_v_gradphi, __pyx_v_a, __pyx_v_rt0vdofs_element);
3236 
3237  /* function exit code */
3238  goto __pyx_L0;
3239  __pyx_L1_error:;
3240  __pyx_r = NULL;
3241  __pyx_L0:;
3242  __Pyx_RefNannyFinishContext();
3243  return __pyx_r;
3244 }
3245 
3246 static PyObject *__pyx_pf_15cpostprocessing_4updateRT0velocityWithAveragedPotentialP1nc(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_gradphi, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_rt0vdofs_element) {
3247  PyObject *__pyx_r = NULL;
3248  __Pyx_RefNannyDeclarations
3249  __Pyx_RefNannySetupContext("updateRT0velocityWithAveragedPotentialP1nc", 0);
3250 
3251  /* "cpostprocessing.pyx":146
3252  * np.ndarray a,
3253  * np.ndarray rt0vdofs_element):
3254  * pp.updateRT0velocityWithAveragedPotentialP1nc(a.shape[0], # <<<<<<<<<<<<<<
3255  * a.shape[1],
3256  * gradphi.shape[gradphi.ndim-1],
3257  */
3258  updateRT0velocityWithAveragedPotentialP1nc((__pyx_v_a->dimensions[0]), (__pyx_v_a->dimensions[1]), (__pyx_v_gradphi->dimensions[(__pyx_v_gradphi->nd - 1)]), ((double *)__pyx_v_detJ->data), ((double *)__pyx_v_quad_a->data), ((double *)__pyx_v_phi->data), ((double *)__pyx_v_gradphi->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_rt0vdofs_element->data));
3259 
3260  /* "cpostprocessing.pyx":140
3261  * <double*>(rt0vdofs.data))
3262  *
3263  * def updateRT0velocityWithAveragedPotentialP1nc(np.ndarray detJ, # <<<<<<<<<<<<<<
3264  * np.ndarray quad_a,
3265  * np.ndarray phi,
3266  */
3267 
3268  /* function exit code */
3269  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3270  __Pyx_XGIVEREF(__pyx_r);
3271  __Pyx_RefNannyFinishContext();
3272  return __pyx_r;
3273 }
3274 
3275 /* "cpostprocessing.pyx":156
3276  * <double*>(rt0vdofs_element.data))
3277  *
3278  * def updateRT0velocityWithAveragedPotentialP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
3279  * np.ndarray colind,
3280  * np.ndarray detJ,
3281  */
3282 
3283 /* Python wrapper */
3284 static PyObject *__pyx_pw_15cpostprocessing_7updateRT0velocityWithAveragedPotentialP1nc_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3285 static PyMethodDef __pyx_mdef_15cpostprocessing_7updateRT0velocityWithAveragedPotentialP1nc_sd = {"updateRT0velocityWithAveragedPotentialP1nc_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_7updateRT0velocityWithAveragedPotentialP1nc_sd, METH_VARARGS|METH_KEYWORDS, 0};
3286 static PyObject *__pyx_pw_15cpostprocessing_7updateRT0velocityWithAveragedPotentialP1nc_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3287  PyArrayObject *__pyx_v_rowptr = 0;
3288  PyArrayObject *__pyx_v_colind = 0;
3289  PyArrayObject *__pyx_v_detJ = 0;
3290  PyArrayObject *__pyx_v_quad_a = 0;
3291  PyArrayObject *__pyx_v_phi = 0;
3292  PyArrayObject *__pyx_v_gradphi = 0;
3293  PyArrayObject *__pyx_v_a = 0;
3294  PyArrayObject *__pyx_v_rt0vdofs_element = 0;
3295  int __pyx_lineno = 0;
3296  const char *__pyx_filename = NULL;
3297  int __pyx_clineno = 0;
3298  PyObject *__pyx_r = 0;
3299  __Pyx_RefNannyDeclarations
3300  __Pyx_RefNannySetupContext("updateRT0velocityWithAveragedPotentialP1nc_sd (wrapper)", 0);
3301  {
3302  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_detJ,&__pyx_n_s_quad_a,&__pyx_n_s_phi,&__pyx_n_s_gradphi,&__pyx_n_s_a,&__pyx_n_s_rt0vdofs_element,0};
3303  PyObject* values[8] = {0,0,0,0,0,0,0,0};
3304  if (unlikely(__pyx_kwds)) {
3305  Py_ssize_t kw_args;
3306  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3307  switch (pos_args) {
3308  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3309  CYTHON_FALLTHROUGH;
3310  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3311  CYTHON_FALLTHROUGH;
3312  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3313  CYTHON_FALLTHROUGH;
3314  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3315  CYTHON_FALLTHROUGH;
3316  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3317  CYTHON_FALLTHROUGH;
3318  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3319  CYTHON_FALLTHROUGH;
3320  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3321  CYTHON_FALLTHROUGH;
3322  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3323  CYTHON_FALLTHROUGH;
3324  case 0: break;
3325  default: goto __pyx_L5_argtuple_error;
3326  }
3327  kw_args = PyDict_Size(__pyx_kwds);
3328  switch (pos_args) {
3329  case 0:
3330  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
3331  else goto __pyx_L5_argtuple_error;
3332  CYTHON_FALLTHROUGH;
3333  case 1:
3334  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
3335  else {
3336  __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc_sd", 1, 8, 8, 1); __PYX_ERR(0, 156, __pyx_L3_error)
3337  }
3338  CYTHON_FALLTHROUGH;
3339  case 2:
3340  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_detJ)) != 0)) kw_args--;
3341  else {
3342  __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc_sd", 1, 8, 8, 2); __PYX_ERR(0, 156, __pyx_L3_error)
3343  }
3344  CYTHON_FALLTHROUGH;
3345  case 3:
3346  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_quad_a)) != 0)) kw_args--;
3347  else {
3348  __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc_sd", 1, 8, 8, 3); __PYX_ERR(0, 156, __pyx_L3_error)
3349  }
3350  CYTHON_FALLTHROUGH;
3351  case 4:
3352  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_phi)) != 0)) kw_args--;
3353  else {
3354  __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc_sd", 1, 8, 8, 4); __PYX_ERR(0, 156, __pyx_L3_error)
3355  }
3356  CYTHON_FALLTHROUGH;
3357  case 5:
3358  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gradphi)) != 0)) kw_args--;
3359  else {
3360  __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc_sd", 1, 8, 8, 5); __PYX_ERR(0, 156, __pyx_L3_error)
3361  }
3362  CYTHON_FALLTHROUGH;
3363  case 6:
3364  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
3365  else {
3366  __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc_sd", 1, 8, 8, 6); __PYX_ERR(0, 156, __pyx_L3_error)
3367  }
3368  CYTHON_FALLTHROUGH;
3369  case 7:
3370  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rt0vdofs_element)) != 0)) kw_args--;
3371  else {
3372  __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc_sd", 1, 8, 8, 7); __PYX_ERR(0, 156, __pyx_L3_error)
3373  }
3374  }
3375  if (unlikely(kw_args > 0)) {
3376  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateRT0velocityWithAveragedPotentialP1nc_sd") < 0)) __PYX_ERR(0, 156, __pyx_L3_error)
3377  }
3378  } else if (PyTuple_GET_SIZE(__pyx_args) != 8) {
3379  goto __pyx_L5_argtuple_error;
3380  } else {
3381  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3382  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3383  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3384  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3385  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3386  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3387  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3388  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3389  }
3390  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
3391  __pyx_v_colind = ((PyArrayObject *)values[1]);
3392  __pyx_v_detJ = ((PyArrayObject *)values[2]);
3393  __pyx_v_quad_a = ((PyArrayObject *)values[3]);
3394  __pyx_v_phi = ((PyArrayObject *)values[4]);
3395  __pyx_v_gradphi = ((PyArrayObject *)values[5]);
3396  __pyx_v_a = ((PyArrayObject *)values[6]);
3397  __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[7]);
3398  }
3399  goto __pyx_L4_argument_unpacking_done;
3400  __pyx_L5_argtuple_error:;
3401  __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc_sd", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 156, __pyx_L3_error)
3402  __pyx_L3_error:;
3403  __Pyx_AddTraceback("cpostprocessing.updateRT0velocityWithAveragedPotentialP1nc_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
3404  __Pyx_RefNannyFinishContext();
3405  return NULL;
3406  __pyx_L4_argument_unpacking_done:;
3407  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 156, __pyx_L1_error)
3408  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 157, __pyx_L1_error)
3409  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_detJ), __pyx_ptype_5numpy_ndarray, 1, "detJ", 0))) __PYX_ERR(0, 158, __pyx_L1_error)
3410  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad_a), __pyx_ptype_5numpy_ndarray, 1, "quad_a", 0))) __PYX_ERR(0, 159, __pyx_L1_error)
3411  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phi), __pyx_ptype_5numpy_ndarray, 1, "phi", 0))) __PYX_ERR(0, 160, __pyx_L1_error)
3412  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gradphi), __pyx_ptype_5numpy_ndarray, 1, "gradphi", 0))) __PYX_ERR(0, 161, __pyx_L1_error)
3413  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 162, __pyx_L1_error)
3414  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 163, __pyx_L1_error)
3415  __pyx_r = __pyx_pf_15cpostprocessing_6updateRT0velocityWithAveragedPotentialP1nc_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_detJ, __pyx_v_quad_a, __pyx_v_phi, __pyx_v_gradphi, __pyx_v_a, __pyx_v_rt0vdofs_element);
3416 
3417  /* function exit code */
3418  goto __pyx_L0;
3419  __pyx_L1_error:;
3420  __pyx_r = NULL;
3421  __pyx_L0:;
3422  __Pyx_RefNannyFinishContext();
3423  return __pyx_r;
3424 }
3425 
3426 static PyObject *__pyx_pf_15cpostprocessing_6updateRT0velocityWithAveragedPotentialP1nc_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_gradphi, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_rt0vdofs_element) {
3427  PyObject *__pyx_r = NULL;
3428  __Pyx_RefNannyDeclarations
3429  __Pyx_RefNannySetupContext("updateRT0velocityWithAveragedPotentialP1nc_sd", 0);
3430 
3431  /* "cpostprocessing.pyx":164
3432  * np.ndarray a,
3433  * np.ndarray rt0vdofs_element):
3434  * pp.updateRT0velocityWithAveragedPotentialP1nc_sd(a.shape[0], # <<<<<<<<<<<<<<
3435  * a.shape[1],
3436  * gradphi.shape[gradphi.ndim-1],
3437  */
3438  updateRT0velocityWithAveragedPotentialP1nc_sd((__pyx_v_a->dimensions[0]), (__pyx_v_a->dimensions[1]), (__pyx_v_gradphi->dimensions[(__pyx_v_gradphi->nd - 1)]), ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((double *)__pyx_v_detJ->data), ((double *)__pyx_v_quad_a->data), ((double *)__pyx_v_phi->data), ((double *)__pyx_v_gradphi->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_rt0vdofs_element->data));
3439 
3440  /* "cpostprocessing.pyx":156
3441  * <double*>(rt0vdofs_element.data))
3442  *
3443  * def updateRT0velocityWithAveragedPotentialP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
3444  * np.ndarray colind,
3445  * np.ndarray detJ,
3446  */
3447 
3448  /* function exit code */
3449  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3450  __Pyx_XGIVEREF(__pyx_r);
3451  __Pyx_RefNannyFinishContext();
3452  return __pyx_r;
3453 }
3454 
3455 /* "cpostprocessing.pyx":176
3456  * <double*>(rt0vdofs_element.data))
3457  *
3458  * def getElementRT0velocityValues(np.ndarray x_element, # <<<<<<<<<<<<<<
3459  * np.ndarray rt0vdofs_element,
3460  * np.ndarray v_element):
3461  */
3462 
3463 /* Python wrapper */
3464 static PyObject *__pyx_pw_15cpostprocessing_9getElementRT0velocityValues(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3465 static PyMethodDef __pyx_mdef_15cpostprocessing_9getElementRT0velocityValues = {"getElementRT0velocityValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_9getElementRT0velocityValues, METH_VARARGS|METH_KEYWORDS, 0};
3466 static PyObject *__pyx_pw_15cpostprocessing_9getElementRT0velocityValues(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3467  PyArrayObject *__pyx_v_x_element = 0;
3468  PyArrayObject *__pyx_v_rt0vdofs_element = 0;
3469  PyArrayObject *__pyx_v_v_element = 0;
3470  int __pyx_lineno = 0;
3471  const char *__pyx_filename = NULL;
3472  int __pyx_clineno = 0;
3473  PyObject *__pyx_r = 0;
3474  __Pyx_RefNannyDeclarations
3475  __Pyx_RefNannySetupContext("getElementRT0velocityValues (wrapper)", 0);
3476  {
3477  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x_element,&__pyx_n_s_rt0vdofs_element,&__pyx_n_s_v_element,0};
3478  PyObject* values[3] = {0,0,0};
3479  if (unlikely(__pyx_kwds)) {
3480  Py_ssize_t kw_args;
3481  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3482  switch (pos_args) {
3483  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3484  CYTHON_FALLTHROUGH;
3485  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3486  CYTHON_FALLTHROUGH;
3487  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3488  CYTHON_FALLTHROUGH;
3489  case 0: break;
3490  default: goto __pyx_L5_argtuple_error;
3491  }
3492  kw_args = PyDict_Size(__pyx_kwds);
3493  switch (pos_args) {
3494  case 0:
3495  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x_element)) != 0)) kw_args--;
3496  else goto __pyx_L5_argtuple_error;
3497  CYTHON_FALLTHROUGH;
3498  case 1:
3499  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rt0vdofs_element)) != 0)) kw_args--;
3500  else {
3501  __Pyx_RaiseArgtupleInvalid("getElementRT0velocityValues", 1, 3, 3, 1); __PYX_ERR(0, 176, __pyx_L3_error)
3502  }
3503  CYTHON_FALLTHROUGH;
3504  case 2:
3505  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v_element)) != 0)) kw_args--;
3506  else {
3507  __Pyx_RaiseArgtupleInvalid("getElementRT0velocityValues", 1, 3, 3, 2); __PYX_ERR(0, 176, __pyx_L3_error)
3508  }
3509  }
3510  if (unlikely(kw_args > 0)) {
3511  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getElementRT0velocityValues") < 0)) __PYX_ERR(0, 176, __pyx_L3_error)
3512  }
3513  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
3514  goto __pyx_L5_argtuple_error;
3515  } else {
3516  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3517  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3518  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3519  }
3520  __pyx_v_x_element = ((PyArrayObject *)values[0]);
3521  __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[1]);
3522  __pyx_v_v_element = ((PyArrayObject *)values[2]);
3523  }
3524  goto __pyx_L4_argument_unpacking_done;
3525  __pyx_L5_argtuple_error:;
3526  __Pyx_RaiseArgtupleInvalid("getElementRT0velocityValues", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 176, __pyx_L3_error)
3527  __pyx_L3_error:;
3528  __Pyx_AddTraceback("cpostprocessing.getElementRT0velocityValues", __pyx_clineno, __pyx_lineno, __pyx_filename);
3529  __Pyx_RefNannyFinishContext();
3530  return NULL;
3531  __pyx_L4_argument_unpacking_done:;
3532  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_element), __pyx_ptype_5numpy_ndarray, 1, "x_element", 0))) __PYX_ERR(0, 176, __pyx_L1_error)
3533  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 177, __pyx_L1_error)
3534  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v_element), __pyx_ptype_5numpy_ndarray, 1, "v_element", 0))) __PYX_ERR(0, 178, __pyx_L1_error)
3535  __pyx_r = __pyx_pf_15cpostprocessing_8getElementRT0velocityValues(__pyx_self, __pyx_v_x_element, __pyx_v_rt0vdofs_element, __pyx_v_v_element);
3536 
3537  /* function exit code */
3538  goto __pyx_L0;
3539  __pyx_L1_error:;
3540  __pyx_r = NULL;
3541  __pyx_L0:;
3542  __Pyx_RefNannyFinishContext();
3543  return __pyx_r;
3544 }
3545 
3546 static PyObject *__pyx_pf_15cpostprocessing_8getElementRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_x_element, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_element) {
3547  PyObject *__pyx_r = NULL;
3548  __Pyx_RefNannyDeclarations
3549  __Pyx_RefNannySetupContext("getElementRT0velocityValues", 0);
3550 
3551  /* "cpostprocessing.pyx":179
3552  * np.ndarray rt0vdofs_element,
3553  * np.ndarray v_element):
3554  * pp.getElementRT0velocityValues(v_element.shape[0], # <<<<<<<<<<<<<<
3555  * v_element.shape[1],
3556  * v_element.shape[2],
3557  */
3558  getElementRT0velocityValues((__pyx_v_v_element->dimensions[0]), (__pyx_v_v_element->dimensions[1]), (__pyx_v_v_element->dimensions[2]), ((double *)__pyx_v_x_element->data), ((double *)__pyx_v_rt0vdofs_element->data), ((double *)__pyx_v_v_element->data));
3559 
3560  /* "cpostprocessing.pyx":176
3561  * <double*>(rt0vdofs_element.data))
3562  *
3563  * def getElementRT0velocityValues(np.ndarray x_element, # <<<<<<<<<<<<<<
3564  * np.ndarray rt0vdofs_element,
3565  * np.ndarray v_element):
3566  */
3567 
3568  /* function exit code */
3569  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3570  __Pyx_XGIVEREF(__pyx_r);
3571  __Pyx_RefNannyFinishContext();
3572  return __pyx_r;
3573 }
3574 
3575 /* "cpostprocessing.pyx":186
3576  * <double*>(v_element.data))
3577  *
3578  * def getElementBoundaryRT0velocityValues(np.ndarray x_elementBoundary, # <<<<<<<<<<<<<<
3579  * np.ndarray rt0vdofs_element,
3580  * np.ndarray v_elementBoundary):
3581  */
3582 
3583 /* Python wrapper */
3584 static PyObject *__pyx_pw_15cpostprocessing_11getElementBoundaryRT0velocityValues(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3585 static PyMethodDef __pyx_mdef_15cpostprocessing_11getElementBoundaryRT0velocityValues = {"getElementBoundaryRT0velocityValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_11getElementBoundaryRT0velocityValues, METH_VARARGS|METH_KEYWORDS, 0};
3586 static PyObject *__pyx_pw_15cpostprocessing_11getElementBoundaryRT0velocityValues(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3587  PyArrayObject *__pyx_v_x_elementBoundary = 0;
3588  PyArrayObject *__pyx_v_rt0vdofs_element = 0;
3589  PyArrayObject *__pyx_v_v_elementBoundary = 0;
3590  int __pyx_lineno = 0;
3591  const char *__pyx_filename = NULL;
3592  int __pyx_clineno = 0;
3593  PyObject *__pyx_r = 0;
3594  __Pyx_RefNannyDeclarations
3595  __Pyx_RefNannySetupContext("getElementBoundaryRT0velocityValues (wrapper)", 0);
3596  {
3597  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x_elementBoundary,&__pyx_n_s_rt0vdofs_element,&__pyx_n_s_v_elementBoundary,0};
3598  PyObject* values[3] = {0,0,0};
3599  if (unlikely(__pyx_kwds)) {
3600  Py_ssize_t kw_args;
3601  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3602  switch (pos_args) {
3603  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3604  CYTHON_FALLTHROUGH;
3605  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3606  CYTHON_FALLTHROUGH;
3607  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3608  CYTHON_FALLTHROUGH;
3609  case 0: break;
3610  default: goto __pyx_L5_argtuple_error;
3611  }
3612  kw_args = PyDict_Size(__pyx_kwds);
3613  switch (pos_args) {
3614  case 0:
3615  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x_elementBoundary)) != 0)) kw_args--;
3616  else goto __pyx_L5_argtuple_error;
3617  CYTHON_FALLTHROUGH;
3618  case 1:
3619  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rt0vdofs_element)) != 0)) kw_args--;
3620  else {
3621  __Pyx_RaiseArgtupleInvalid("getElementBoundaryRT0velocityValues", 1, 3, 3, 1); __PYX_ERR(0, 186, __pyx_L3_error)
3622  }
3623  CYTHON_FALLTHROUGH;
3624  case 2:
3625  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v_elementBoundary)) != 0)) kw_args--;
3626  else {
3627  __Pyx_RaiseArgtupleInvalid("getElementBoundaryRT0velocityValues", 1, 3, 3, 2); __PYX_ERR(0, 186, __pyx_L3_error)
3628  }
3629  }
3630  if (unlikely(kw_args > 0)) {
3631  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getElementBoundaryRT0velocityValues") < 0)) __PYX_ERR(0, 186, __pyx_L3_error)
3632  }
3633  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
3634  goto __pyx_L5_argtuple_error;
3635  } else {
3636  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3637  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3638  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3639  }
3640  __pyx_v_x_elementBoundary = ((PyArrayObject *)values[0]);
3641  __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[1]);
3642  __pyx_v_v_elementBoundary = ((PyArrayObject *)values[2]);
3643  }
3644  goto __pyx_L4_argument_unpacking_done;
3645  __pyx_L5_argtuple_error:;
3646  __Pyx_RaiseArgtupleInvalid("getElementBoundaryRT0velocityValues", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 186, __pyx_L3_error)
3647  __pyx_L3_error:;
3648  __Pyx_AddTraceback("cpostprocessing.getElementBoundaryRT0velocityValues", __pyx_clineno, __pyx_lineno, __pyx_filename);
3649  __Pyx_RefNannyFinishContext();
3650  return NULL;
3651  __pyx_L4_argument_unpacking_done:;
3652  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_elementBoundary), __pyx_ptype_5numpy_ndarray, 1, "x_elementBoundary", 0))) __PYX_ERR(0, 186, __pyx_L1_error)
3653  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 187, __pyx_L1_error)
3654  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v_elementBoundary), __pyx_ptype_5numpy_ndarray, 1, "v_elementBoundary", 0))) __PYX_ERR(0, 188, __pyx_L1_error)
3655  __pyx_r = __pyx_pf_15cpostprocessing_10getElementBoundaryRT0velocityValues(__pyx_self, __pyx_v_x_elementBoundary, __pyx_v_rt0vdofs_element, __pyx_v_v_elementBoundary);
3656 
3657  /* function exit code */
3658  goto __pyx_L0;
3659  __pyx_L1_error:;
3660  __pyx_r = NULL;
3661  __pyx_L0:;
3662  __Pyx_RefNannyFinishContext();
3663  return __pyx_r;
3664 }
3665 
3666 static PyObject *__pyx_pf_15cpostprocessing_10getElementBoundaryRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary) {
3667  PyObject *__pyx_r = NULL;
3668  __Pyx_RefNannyDeclarations
3669  __Pyx_RefNannySetupContext("getElementBoundaryRT0velocityValues", 0);
3670 
3671  /* "cpostprocessing.pyx":189
3672  * np.ndarray rt0vdofs_element,
3673  * np.ndarray v_elementBoundary):
3674  * pp.getElementBoundaryRT0velocityValues(v_elementBoundary.shape[0], # <<<<<<<<<<<<<<
3675  * v_elementBoundary.shape[1],
3676  * v_elementBoundary.shape[2],
3677  */
3678  getElementBoundaryRT0velocityValues((__pyx_v_v_elementBoundary->dimensions[0]), (__pyx_v_v_elementBoundary->dimensions[1]), (__pyx_v_v_elementBoundary->dimensions[2]), (__pyx_v_v_elementBoundary->dimensions[3]), ((double *)__pyx_v_x_elementBoundary->data), ((double *)__pyx_v_rt0vdofs_element->data), ((double *)__pyx_v_v_elementBoundary->data));
3679 
3680  /* "cpostprocessing.pyx":186
3681  * <double*>(v_element.data))
3682  *
3683  * def getElementBoundaryRT0velocityValues(np.ndarray x_elementBoundary, # <<<<<<<<<<<<<<
3684  * np.ndarray rt0vdofs_element,
3685  * np.ndarray v_elementBoundary):
3686  */
3687 
3688  /* function exit code */
3689  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3690  __Pyx_XGIVEREF(__pyx_r);
3691  __Pyx_RefNannyFinishContext();
3692  return __pyx_r;
3693 }
3694 
3695 /* "cpostprocessing.pyx":197
3696  * <double*>(v_elementBoundary.data))
3697  *
3698  * def getGlobalElementBoundaryRT0velocityValues(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
3699  * np.ndarray x_elementBoundary_global,
3700  * np.ndarray rt0vdofs_element,
3701  */
3702 
3703 /* Python wrapper */
3704 static PyObject *__pyx_pw_15cpostprocessing_13getGlobalElementBoundaryRT0velocityValues(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3705 static PyMethodDef __pyx_mdef_15cpostprocessing_13getGlobalElementBoundaryRT0velocityValues = {"getGlobalElementBoundaryRT0velocityValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_13getGlobalElementBoundaryRT0velocityValues, METH_VARARGS|METH_KEYWORDS, 0};
3706 static PyObject *__pyx_pw_15cpostprocessing_13getGlobalElementBoundaryRT0velocityValues(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3707  PyArrayObject *__pyx_v_elementBoundaryElementsArray = 0;
3708  PyArrayObject *__pyx_v_x_elementBoundary_global = 0;
3709  PyArrayObject *__pyx_v_rt0vdofs_element = 0;
3710  PyArrayObject *__pyx_v_v_elementBoundary_global = 0;
3711  int __pyx_lineno = 0;
3712  const char *__pyx_filename = NULL;
3713  int __pyx_clineno = 0;
3714  PyObject *__pyx_r = 0;
3715  __Pyx_RefNannyDeclarations
3716  __Pyx_RefNannySetupContext("getGlobalElementBoundaryRT0velocityValues (wrapper)", 0);
3717  {
3718  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_elementBoundaryElementsArray,&__pyx_n_s_x_elementBoundary_global,&__pyx_n_s_rt0vdofs_element,&__pyx_n_s_v_elementBoundary_global,0};
3719  PyObject* values[4] = {0,0,0,0};
3720  if (unlikely(__pyx_kwds)) {
3721  Py_ssize_t kw_args;
3722  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3723  switch (pos_args) {
3724  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3725  CYTHON_FALLTHROUGH;
3726  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3727  CYTHON_FALLTHROUGH;
3728  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3729  CYTHON_FALLTHROUGH;
3730  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3731  CYTHON_FALLTHROUGH;
3732  case 0: break;
3733  default: goto __pyx_L5_argtuple_error;
3734  }
3735  kw_args = PyDict_Size(__pyx_kwds);
3736  switch (pos_args) {
3737  case 0:
3738  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElementsArray)) != 0)) kw_args--;
3739  else goto __pyx_L5_argtuple_error;
3740  CYTHON_FALLTHROUGH;
3741  case 1:
3742  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x_elementBoundary_global)) != 0)) kw_args--;
3743  else {
3744  __Pyx_RaiseArgtupleInvalid("getGlobalElementBoundaryRT0velocityValues", 1, 4, 4, 1); __PYX_ERR(0, 197, __pyx_L3_error)
3745  }
3746  CYTHON_FALLTHROUGH;
3747  case 2:
3748  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rt0vdofs_element)) != 0)) kw_args--;
3749  else {
3750  __Pyx_RaiseArgtupleInvalid("getGlobalElementBoundaryRT0velocityValues", 1, 4, 4, 2); __PYX_ERR(0, 197, __pyx_L3_error)
3751  }
3752  CYTHON_FALLTHROUGH;
3753  case 3:
3754  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v_elementBoundary_global)) != 0)) kw_args--;
3755  else {
3756  __Pyx_RaiseArgtupleInvalid("getGlobalElementBoundaryRT0velocityValues", 1, 4, 4, 3); __PYX_ERR(0, 197, __pyx_L3_error)
3757  }
3758  }
3759  if (unlikely(kw_args > 0)) {
3760  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getGlobalElementBoundaryRT0velocityValues") < 0)) __PYX_ERR(0, 197, __pyx_L3_error)
3761  }
3762  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
3763  goto __pyx_L5_argtuple_error;
3764  } else {
3765  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3766  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3767  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3768  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3769  }
3770  __pyx_v_elementBoundaryElementsArray = ((PyArrayObject *)values[0]);
3771  __pyx_v_x_elementBoundary_global = ((PyArrayObject *)values[1]);
3772  __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[2]);
3773  __pyx_v_v_elementBoundary_global = ((PyArrayObject *)values[3]);
3774  }
3775  goto __pyx_L4_argument_unpacking_done;
3776  __pyx_L5_argtuple_error:;
3777  __Pyx_RaiseArgtupleInvalid("getGlobalElementBoundaryRT0velocityValues", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 197, __pyx_L3_error)
3778  __pyx_L3_error:;
3779  __Pyx_AddTraceback("cpostprocessing.getGlobalElementBoundaryRT0velocityValues", __pyx_clineno, __pyx_lineno, __pyx_filename);
3780  __Pyx_RefNannyFinishContext();
3781  return NULL;
3782  __pyx_L4_argument_unpacking_done:;
3783  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElementsArray), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElementsArray", 0))) __PYX_ERR(0, 197, __pyx_L1_error)
3784  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_elementBoundary_global), __pyx_ptype_5numpy_ndarray, 1, "x_elementBoundary_global", 0))) __PYX_ERR(0, 198, __pyx_L1_error)
3785  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 199, __pyx_L1_error)
3786  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v_elementBoundary_global), __pyx_ptype_5numpy_ndarray, 1, "v_elementBoundary_global", 0))) __PYX_ERR(0, 200, __pyx_L1_error)
3787  __pyx_r = __pyx_pf_15cpostprocessing_12getGlobalElementBoundaryRT0velocityValues(__pyx_self, __pyx_v_elementBoundaryElementsArray, __pyx_v_x_elementBoundary_global, __pyx_v_rt0vdofs_element, __pyx_v_v_elementBoundary_global);
3788 
3789  /* function exit code */
3790  goto __pyx_L0;
3791  __pyx_L1_error:;
3792  __pyx_r = NULL;
3793  __pyx_L0:;
3794  __Pyx_RefNannyFinishContext();
3795  return __pyx_r;
3796 }
3797 
3798 static PyObject *__pyx_pf_15cpostprocessing_12getGlobalElementBoundaryRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_x_elementBoundary_global, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary_global) {
3799  PyObject *__pyx_r = NULL;
3800  __Pyx_RefNannyDeclarations
3801  __Pyx_RefNannySetupContext("getGlobalElementBoundaryRT0velocityValues", 0);
3802 
3803  /* "cpostprocessing.pyx":201
3804  * np.ndarray rt0vdofs_element,
3805  * np.ndarray v_elementBoundary_global):
3806  * pp.getGlobalElementBoundaryRT0velocityValues(v_elementBoundary_global.shape[0], # <<<<<<<<<<<<<<
3807  * v_elementBoundary_global.shape[1],
3808  * v_elementBoundary_global.shape[2],
3809  */
3810  getGlobalElementBoundaryRT0velocityValues((__pyx_v_v_elementBoundary_global->dimensions[0]), (__pyx_v_v_elementBoundary_global->dimensions[1]), (__pyx_v_v_elementBoundary_global->dimensions[2]), ((int *)__pyx_v_elementBoundaryElementsArray->data), ((double *)__pyx_v_x_elementBoundary_global->data), ((double *)__pyx_v_rt0vdofs_element->data), ((double *)__pyx_v_v_elementBoundary_global->data));
3811 
3812  /* "cpostprocessing.pyx":197
3813  * <double*>(v_elementBoundary.data))
3814  *
3815  * def getGlobalElementBoundaryRT0velocityValues(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
3816  * np.ndarray x_elementBoundary_global,
3817  * np.ndarray rt0vdofs_element,
3818  */
3819 
3820  /* function exit code */
3821  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3822  __Pyx_XGIVEREF(__pyx_r);
3823  __Pyx_RefNannyFinishContext();
3824  return __pyx_r;
3825 }
3826 
3827 /* "cpostprocessing.pyx":209
3828  * <double*>(v_elementBoundary_global.data))
3829  *
3830  * def getGlobalExteriorElementBoundaryRT0velocityValues(np.ndarray exteriorElementBoundariesArray, # <<<<<<<<<<<<<<
3831  * np.ndarray elementBoundaryElementsArray,
3832  * np.ndarray x_elementBoundary_global,
3833  */
3834 
3835 /* Python wrapper */
3836 static PyObject *__pyx_pw_15cpostprocessing_15getGlobalExteriorElementBoundaryRT0velocityValues(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3837 static PyMethodDef __pyx_mdef_15cpostprocessing_15getGlobalExteriorElementBoundaryRT0velocityValues = {"getGlobalExteriorElementBoundaryRT0velocityValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_15getGlobalExteriorElementBoundaryRT0velocityValues, METH_VARARGS|METH_KEYWORDS, 0};
3838 static PyObject *__pyx_pw_15cpostprocessing_15getGlobalExteriorElementBoundaryRT0velocityValues(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3839  PyArrayObject *__pyx_v_exteriorElementBoundariesArray = 0;
3840  PyArrayObject *__pyx_v_elementBoundaryElementsArray = 0;
3841  PyArrayObject *__pyx_v_x_elementBoundary_global = 0;
3842  PyArrayObject *__pyx_v_rt0vdofs_element = 0;
3843  PyArrayObject *__pyx_v_v_elementBoundary_global = 0;
3844  int __pyx_lineno = 0;
3845  const char *__pyx_filename = NULL;
3846  int __pyx_clineno = 0;
3847  PyObject *__pyx_r = 0;
3848  __Pyx_RefNannyDeclarations
3849  __Pyx_RefNannySetupContext("getGlobalExteriorElementBoundaryRT0velocityValues (wrapper)", 0);
3850  {
3851  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exteriorElementBoundariesArray,&__pyx_n_s_elementBoundaryElementsArray,&__pyx_n_s_x_elementBoundary_global,&__pyx_n_s_rt0vdofs_element,&__pyx_n_s_v_elementBoundary_global,0};
3852  PyObject* values[5] = {0,0,0,0,0};
3853  if (unlikely(__pyx_kwds)) {
3854  Py_ssize_t kw_args;
3855  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3856  switch (pos_args) {
3857  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3858  CYTHON_FALLTHROUGH;
3859  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3860  CYTHON_FALLTHROUGH;
3861  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3862  CYTHON_FALLTHROUGH;
3863  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3864  CYTHON_FALLTHROUGH;
3865  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3866  CYTHON_FALLTHROUGH;
3867  case 0: break;
3868  default: goto __pyx_L5_argtuple_error;
3869  }
3870  kw_args = PyDict_Size(__pyx_kwds);
3871  switch (pos_args) {
3872  case 0:
3873  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundariesArray)) != 0)) kw_args--;
3874  else goto __pyx_L5_argtuple_error;
3875  CYTHON_FALLTHROUGH;
3876  case 1:
3877  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElementsArray)) != 0)) kw_args--;
3878  else {
3879  __Pyx_RaiseArgtupleInvalid("getGlobalExteriorElementBoundaryRT0velocityValues", 1, 5, 5, 1); __PYX_ERR(0, 209, __pyx_L3_error)
3880  }
3881  CYTHON_FALLTHROUGH;
3882  case 2:
3883  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x_elementBoundary_global)) != 0)) kw_args--;
3884  else {
3885  __Pyx_RaiseArgtupleInvalid("getGlobalExteriorElementBoundaryRT0velocityValues", 1, 5, 5, 2); __PYX_ERR(0, 209, __pyx_L3_error)
3886  }
3887  CYTHON_FALLTHROUGH;
3888  case 3:
3889  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rt0vdofs_element)) != 0)) kw_args--;
3890  else {
3891  __Pyx_RaiseArgtupleInvalid("getGlobalExteriorElementBoundaryRT0velocityValues", 1, 5, 5, 3); __PYX_ERR(0, 209, __pyx_L3_error)
3892  }
3893  CYTHON_FALLTHROUGH;
3894  case 4:
3895  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v_elementBoundary_global)) != 0)) kw_args--;
3896  else {
3897  __Pyx_RaiseArgtupleInvalid("getGlobalExteriorElementBoundaryRT0velocityValues", 1, 5, 5, 4); __PYX_ERR(0, 209, __pyx_L3_error)
3898  }
3899  }
3900  if (unlikely(kw_args > 0)) {
3901  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getGlobalExteriorElementBoundaryRT0velocityValues") < 0)) __PYX_ERR(0, 209, __pyx_L3_error)
3902  }
3903  } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
3904  goto __pyx_L5_argtuple_error;
3905  } else {
3906  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3907  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3908  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3909  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3910  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3911  }
3912  __pyx_v_exteriorElementBoundariesArray = ((PyArrayObject *)values[0]);
3913  __pyx_v_elementBoundaryElementsArray = ((PyArrayObject *)values[1]);
3914  __pyx_v_x_elementBoundary_global = ((PyArrayObject *)values[2]);
3915  __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[3]);
3916  __pyx_v_v_elementBoundary_global = ((PyArrayObject *)values[4]);
3917  }
3918  goto __pyx_L4_argument_unpacking_done;
3919  __pyx_L5_argtuple_error:;
3920  __Pyx_RaiseArgtupleInvalid("getGlobalExteriorElementBoundaryRT0velocityValues", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 209, __pyx_L3_error)
3921  __pyx_L3_error:;
3922  __Pyx_AddTraceback("cpostprocessing.getGlobalExteriorElementBoundaryRT0velocityValues", __pyx_clineno, __pyx_lineno, __pyx_filename);
3923  __Pyx_RefNannyFinishContext();
3924  return NULL;
3925  __pyx_L4_argument_unpacking_done:;
3926  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundariesArray), __pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundariesArray", 0))) __PYX_ERR(0, 209, __pyx_L1_error)
3927  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElementsArray), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElementsArray", 0))) __PYX_ERR(0, 210, __pyx_L1_error)
3928  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_elementBoundary_global), __pyx_ptype_5numpy_ndarray, 1, "x_elementBoundary_global", 0))) __PYX_ERR(0, 211, __pyx_L1_error)
3929  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 212, __pyx_L1_error)
3930  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v_elementBoundary_global), __pyx_ptype_5numpy_ndarray, 1, "v_elementBoundary_global", 0))) __PYX_ERR(0, 213, __pyx_L1_error)
3931  __pyx_r = __pyx_pf_15cpostprocessing_14getGlobalExteriorElementBoundaryRT0velocityValues(__pyx_self, __pyx_v_exteriorElementBoundariesArray, __pyx_v_elementBoundaryElementsArray, __pyx_v_x_elementBoundary_global, __pyx_v_rt0vdofs_element, __pyx_v_v_elementBoundary_global);
3932 
3933  /* function exit code */
3934  goto __pyx_L0;
3935  __pyx_L1_error:;
3936  __pyx_r = NULL;
3937  __pyx_L0:;
3938  __Pyx_RefNannyFinishContext();
3939  return __pyx_r;
3940 }
3941 
3942 static PyObject *__pyx_pf_15cpostprocessing_14getGlobalExteriorElementBoundaryRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_x_elementBoundary_global, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary_global) {
3943  PyObject *__pyx_r = NULL;
3944  __Pyx_RefNannyDeclarations
3945  __Pyx_RefNannySetupContext("getGlobalExteriorElementBoundaryRT0velocityValues", 0);
3946 
3947  /* "cpostprocessing.pyx":214
3948  * np.ndarray rt0vdofs_element,
3949  * np.ndarray v_elementBoundary_global):
3950  * pp.getGlobalExteriorElementBoundaryRT0velocityValues(exteriorElementBoundariesArray.shape[0], # <<<<<<<<<<<<<<
3951  * v_elementBoundary_global.shape[1],
3952  * v_elementBoundary_global.shape[2],
3953  */
3954  getGlobalExteriorElementBoundaryRT0velocityValues((__pyx_v_exteriorElementBoundariesArray->dimensions[0]), (__pyx_v_v_elementBoundary_global->dimensions[1]), (__pyx_v_v_elementBoundary_global->dimensions[2]), ((int *)__pyx_v_elementBoundaryElementsArray->data), ((int *)__pyx_v_exteriorElementBoundariesArray->data), ((double *)__pyx_v_x_elementBoundary_global->data), ((double *)__pyx_v_rt0vdofs_element->data), ((double *)__pyx_v_v_elementBoundary_global->data));
3955 
3956  /* "cpostprocessing.pyx":209
3957  * <double*>(v_elementBoundary_global.data))
3958  *
3959  * def getGlobalExteriorElementBoundaryRT0velocityValues(np.ndarray exteriorElementBoundariesArray, # <<<<<<<<<<<<<<
3960  * np.ndarray elementBoundaryElementsArray,
3961  * np.ndarray x_elementBoundary_global,
3962  */
3963 
3964  /* function exit code */
3965  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3966  __Pyx_XGIVEREF(__pyx_r);
3967  __Pyx_RefNannyFinishContext();
3968  return __pyx_r;
3969 }
3970 
3971 /* "cpostprocessing.pyx":223
3972  * <double*>(v_elementBoundary_global.data))
3973  *
3974  * def postProcessRT0potentialFromP1nc(np.ndarray uQuadratureWeights_element, # <<<<<<<<<<<<<<
3975  * np.ndarray elementBarycenters,
3976  * np.ndarray aElementQuadWeights,
3977  */
3978 
3979 /* Python wrapper */
3980 static PyObject *__pyx_pw_15cpostprocessing_17postProcessRT0potentialFromP1nc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3981 static PyMethodDef __pyx_mdef_15cpostprocessing_17postProcessRT0potentialFromP1nc = {"postProcessRT0potentialFromP1nc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_17postProcessRT0potentialFromP1nc, METH_VARARGS|METH_KEYWORDS, 0};
3982 static PyObject *__pyx_pw_15cpostprocessing_17postProcessRT0potentialFromP1nc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3983  PyArrayObject *__pyx_v_uQuadratureWeights_element = 0;
3984  PyArrayObject *__pyx_v_elementBarycenters = 0;
3985  PyArrayObject *__pyx_v_aElementQuadWeights = 0;
3986  PyArrayObject *__pyx_v_detJ = 0;
3987  CYTHON_UNUSED PyArrayObject *__pyx_v_uQuadratureWeights_elementBoundary = 0;
3988  PyArrayObject *__pyx_v_x = 0;
3989  PyArrayObject *__pyx_v_u = 0;
3990  PyArrayObject *__pyx_v_gradu = 0;
3991  PyArrayObject *__pyx_v_x_elementBoundary = 0;
3992  PyArrayObject *__pyx_v_u_elementBoundary = 0;
3993  PyArrayObject *__pyx_v_n = 0;
3994  PyArrayObject *__pyx_v_a = 0;
3995  PyArrayObject *__pyx_v_f = 0;
3996  PyArrayObject *__pyx_v_r = 0;
3997  PyArrayObject *__pyx_v_rt0vdofs = 0;
3998  PyArrayObject *__pyx_v_rt0potential = 0;
3999  int __pyx_lineno = 0;
4000  const char *__pyx_filename = NULL;
4001  int __pyx_clineno = 0;
4002  PyObject *__pyx_r = 0;
4003  __Pyx_RefNannyDeclarations
4004  __Pyx_RefNannySetupContext("postProcessRT0potentialFromP1nc (wrapper)", 0);
4005  {
4006  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_uQuadratureWeights_element,&__pyx_n_s_elementBarycenters,&__pyx_n_s_aElementQuadWeights,&__pyx_n_s_detJ,&__pyx_n_s_uQuadratureWeights_elementBounda,&__pyx_n_s_x,&__pyx_n_s_u,&__pyx_n_s_gradu,&__pyx_n_s_x_elementBoundary,&__pyx_n_s_u_elementBoundary,&__pyx_n_s_n,&__pyx_n_s_a,&__pyx_n_s_f,&__pyx_n_s_r,&__pyx_n_s_rt0vdofs,&__pyx_n_s_rt0potential,0};
4007  PyObject* values[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
4008  if (unlikely(__pyx_kwds)) {
4009  Py_ssize_t kw_args;
4010  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4011  switch (pos_args) {
4012  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
4013  CYTHON_FALLTHROUGH;
4014  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
4015  CYTHON_FALLTHROUGH;
4016  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
4017  CYTHON_FALLTHROUGH;
4018  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
4019  CYTHON_FALLTHROUGH;
4020  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
4021  CYTHON_FALLTHROUGH;
4022  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
4023  CYTHON_FALLTHROUGH;
4024  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
4025  CYTHON_FALLTHROUGH;
4026  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4027  CYTHON_FALLTHROUGH;
4028  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4029  CYTHON_FALLTHROUGH;
4030  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4031  CYTHON_FALLTHROUGH;
4032  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4033  CYTHON_FALLTHROUGH;
4034  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4035  CYTHON_FALLTHROUGH;
4036  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4037  CYTHON_FALLTHROUGH;
4038  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4039  CYTHON_FALLTHROUGH;
4040  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4041  CYTHON_FALLTHROUGH;
4042  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4043  CYTHON_FALLTHROUGH;
4044  case 0: break;
4045  default: goto __pyx_L5_argtuple_error;
4046  }
4047  kw_args = PyDict_Size(__pyx_kwds);
4048  switch (pos_args) {
4049  case 0:
4050  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uQuadratureWeights_element)) != 0)) kw_args--;
4051  else goto __pyx_L5_argtuple_error;
4052  CYTHON_FALLTHROUGH;
4053  case 1:
4054  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBarycenters)) != 0)) kw_args--;
4055  else {
4056  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 1); __PYX_ERR(0, 223, __pyx_L3_error)
4057  }
4058  CYTHON_FALLTHROUGH;
4059  case 2:
4060  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_aElementQuadWeights)) != 0)) kw_args--;
4061  else {
4062  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 2); __PYX_ERR(0, 223, __pyx_L3_error)
4063  }
4064  CYTHON_FALLTHROUGH;
4065  case 3:
4066  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_detJ)) != 0)) kw_args--;
4067  else {
4068  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 3); __PYX_ERR(0, 223, __pyx_L3_error)
4069  }
4070  CYTHON_FALLTHROUGH;
4071  case 4:
4072  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uQuadratureWeights_elementBounda)) != 0)) kw_args--;
4073  else {
4074  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 4); __PYX_ERR(0, 223, __pyx_L3_error)
4075  }
4076  CYTHON_FALLTHROUGH;
4077  case 5:
4078  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
4079  else {
4080  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 5); __PYX_ERR(0, 223, __pyx_L3_error)
4081  }
4082  CYTHON_FALLTHROUGH;
4083  case 6:
4084  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
4085  else {
4086  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 6); __PYX_ERR(0, 223, __pyx_L3_error)
4087  }
4088  CYTHON_FALLTHROUGH;
4089  case 7:
4090  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gradu)) != 0)) kw_args--;
4091  else {
4092  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 7); __PYX_ERR(0, 223, __pyx_L3_error)
4093  }
4094  CYTHON_FALLTHROUGH;
4095  case 8:
4096  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x_elementBoundary)) != 0)) kw_args--;
4097  else {
4098  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 8); __PYX_ERR(0, 223, __pyx_L3_error)
4099  }
4100  CYTHON_FALLTHROUGH;
4101  case 9:
4102  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u_elementBoundary)) != 0)) kw_args--;
4103  else {
4104  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 9); __PYX_ERR(0, 223, __pyx_L3_error)
4105  }
4106  CYTHON_FALLTHROUGH;
4107  case 10:
4108  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
4109  else {
4110  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 10); __PYX_ERR(0, 223, __pyx_L3_error)
4111  }
4112  CYTHON_FALLTHROUGH;
4113  case 11:
4114  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
4115  else {
4116  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 11); __PYX_ERR(0, 223, __pyx_L3_error)
4117  }
4118  CYTHON_FALLTHROUGH;
4119  case 12:
4120  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
4121  else {
4122  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 12); __PYX_ERR(0, 223, __pyx_L3_error)
4123  }
4124  CYTHON_FALLTHROUGH;
4125  case 13:
4126  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_r)) != 0)) kw_args--;
4127  else {
4128  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 13); __PYX_ERR(0, 223, __pyx_L3_error)
4129  }
4130  CYTHON_FALLTHROUGH;
4131  case 14:
4132  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rt0vdofs)) != 0)) kw_args--;
4133  else {
4134  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 14); __PYX_ERR(0, 223, __pyx_L3_error)
4135  }
4136  CYTHON_FALLTHROUGH;
4137  case 15:
4138  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rt0potential)) != 0)) kw_args--;
4139  else {
4140  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, 15); __PYX_ERR(0, 223, __pyx_L3_error)
4141  }
4142  }
4143  if (unlikely(kw_args > 0)) {
4144  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "postProcessRT0potentialFromP1nc") < 0)) __PYX_ERR(0, 223, __pyx_L3_error)
4145  }
4146  } else if (PyTuple_GET_SIZE(__pyx_args) != 16) {
4147  goto __pyx_L5_argtuple_error;
4148  } else {
4149  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4150  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4151  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4152  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4153  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4154  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4155  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4156  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4157  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4158  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
4159  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
4160  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
4161  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
4162  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
4163  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
4164  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
4165  }
4166  __pyx_v_uQuadratureWeights_element = ((PyArrayObject *)values[0]);
4167  __pyx_v_elementBarycenters = ((PyArrayObject *)values[1]);
4168  __pyx_v_aElementQuadWeights = ((PyArrayObject *)values[2]);
4169  __pyx_v_detJ = ((PyArrayObject *)values[3]);
4170  __pyx_v_uQuadratureWeights_elementBoundary = ((PyArrayObject *)values[4]);
4171  __pyx_v_x = ((PyArrayObject *)values[5]);
4172  __pyx_v_u = ((PyArrayObject *)values[6]);
4173  __pyx_v_gradu = ((PyArrayObject *)values[7]);
4174  __pyx_v_x_elementBoundary = ((PyArrayObject *)values[8]);
4175  __pyx_v_u_elementBoundary = ((PyArrayObject *)values[9]);
4176  __pyx_v_n = ((PyArrayObject *)values[10]);
4177  __pyx_v_a = ((PyArrayObject *)values[11]);
4178  __pyx_v_f = ((PyArrayObject *)values[12]);
4179  __pyx_v_r = ((PyArrayObject *)values[13]);
4180  __pyx_v_rt0vdofs = ((PyArrayObject *)values[14]);
4181  __pyx_v_rt0potential = ((PyArrayObject *)values[15]);
4182  }
4183  goto __pyx_L4_argument_unpacking_done;
4184  __pyx_L5_argtuple_error:;
4185  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 223, __pyx_L3_error)
4186  __pyx_L3_error:;
4187  __Pyx_AddTraceback("cpostprocessing.postProcessRT0potentialFromP1nc", __pyx_clineno, __pyx_lineno, __pyx_filename);
4188  __Pyx_RefNannyFinishContext();
4189  return NULL;
4190  __pyx_L4_argument_unpacking_done:;
4191  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_uQuadratureWeights_element), __pyx_ptype_5numpy_ndarray, 1, "uQuadratureWeights_element", 0))) __PYX_ERR(0, 223, __pyx_L1_error)
4192  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBarycenters), __pyx_ptype_5numpy_ndarray, 1, "elementBarycenters", 0))) __PYX_ERR(0, 224, __pyx_L1_error)
4193  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_aElementQuadWeights), __pyx_ptype_5numpy_ndarray, 1, "aElementQuadWeights", 0))) __PYX_ERR(0, 225, __pyx_L1_error)
4194  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_detJ), __pyx_ptype_5numpy_ndarray, 1, "detJ", 0))) __PYX_ERR(0, 226, __pyx_L1_error)
4195  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_uQuadratureWeights_elementBoundary), __pyx_ptype_5numpy_ndarray, 1, "uQuadratureWeights_elementBoundary", 0))) __PYX_ERR(0, 227, __pyx_L1_error)
4196  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_5numpy_ndarray, 1, "x", 0))) __PYX_ERR(0, 228, __pyx_L1_error)
4197  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 229, __pyx_L1_error)
4198  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gradu), __pyx_ptype_5numpy_ndarray, 1, "gradu", 0))) __PYX_ERR(0, 230, __pyx_L1_error)
4199  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_elementBoundary), __pyx_ptype_5numpy_ndarray, 1, "x_elementBoundary", 0))) __PYX_ERR(0, 231, __pyx_L1_error)
4200  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u_elementBoundary), __pyx_ptype_5numpy_ndarray, 1, "u_elementBoundary", 0))) __PYX_ERR(0, 232, __pyx_L1_error)
4201  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 233, __pyx_L1_error)
4202  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 234, __pyx_L1_error)
4203  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 235, __pyx_L1_error)
4204  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_r), __pyx_ptype_5numpy_ndarray, 1, "r", 0))) __PYX_ERR(0, 236, __pyx_L1_error)
4205  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs), __pyx_ptype_5numpy_ndarray, 1, "rt0vdofs", 0))) __PYX_ERR(0, 237, __pyx_L1_error)
4206  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0potential), __pyx_ptype_5numpy_ndarray, 1, "rt0potential", 0))) __PYX_ERR(0, 238, __pyx_L1_error)
4207  __pyx_r = __pyx_pf_15cpostprocessing_16postProcessRT0potentialFromP1nc(__pyx_self, __pyx_v_uQuadratureWeights_element, __pyx_v_elementBarycenters, __pyx_v_aElementQuadWeights, __pyx_v_detJ, __pyx_v_uQuadratureWeights_elementBoundary, __pyx_v_x, __pyx_v_u, __pyx_v_gradu, __pyx_v_x_elementBoundary, __pyx_v_u_elementBoundary, __pyx_v_n, __pyx_v_a, __pyx_v_f, __pyx_v_r, __pyx_v_rt0vdofs, __pyx_v_rt0potential);
4208 
4209  /* function exit code */
4210  goto __pyx_L0;
4211  __pyx_L1_error:;
4212  __pyx_r = NULL;
4213  __pyx_L0:;
4214  __Pyx_RefNannyFinishContext();
4215  return __pyx_r;
4216 }
4217 
4218 static PyObject *__pyx_pf_15cpostprocessing_16postProcessRT0potentialFromP1nc(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_uQuadratureWeights_element, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_aElementQuadWeights, PyArrayObject *__pyx_v_detJ, CYTHON_UNUSED PyArrayObject *__pyx_v_uQuadratureWeights_elementBoundary, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_u_elementBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_rt0potential) {
4219  PyObject *__pyx_r = NULL;
4220  __Pyx_RefNannyDeclarations
4221  __Pyx_RefNannySetupContext("postProcessRT0potentialFromP1nc", 0);
4222 
4223  /* "cpostprocessing.pyx":239
4224  * np.ndarray rt0vdofs,
4225  * np.ndarray rt0potential):
4226  * pp.postProcessRT0potentialFromP1nc(u.shape[0], # <<<<<<<<<<<<<<
4227  * u.shape[1],
4228  * n.shape[1],
4229  */
4230  postProcessRT0potentialFromP1nc((__pyx_v_u->dimensions[0]), (__pyx_v_u->dimensions[1]), (__pyx_v_n->dimensions[1]), (__pyx_v_n->dimensions[2]), (__pyx_v_n->dimensions[3]), ((double *)__pyx_v_uQuadratureWeights_element->data), ((double *)__pyx_v_elementBarycenters->data), ((double *)__pyx_v_aElementQuadWeights->data), ((double *)__pyx_v_detJ->data), ((double *)__pyx_v_uQuadratureWeights_element->data), ((double *)__pyx_v_x->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_gradu->data), ((double *)__pyx_v_x_elementBoundary->data), ((double *)__pyx_v_u_elementBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_r->data), ((double *)__pyx_v_rt0vdofs->data), ((double *)__pyx_v_rt0potential->data));
4231 
4232  /* "cpostprocessing.pyx":223
4233  * <double*>(v_elementBoundary_global.data))
4234  *
4235  * def postProcessRT0potentialFromP1nc(np.ndarray uQuadratureWeights_element, # <<<<<<<<<<<<<<
4236  * np.ndarray elementBarycenters,
4237  * np.ndarray aElementQuadWeights,
4238  */
4239 
4240  /* function exit code */
4241  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4242  __Pyx_XGIVEREF(__pyx_r);
4243  __Pyx_RefNannyFinishContext();
4244  return __pyx_r;
4245 }
4246 
4247 /* "cpostprocessing.pyx":261
4248  * <double*>(rt0potential.data))
4249  *
4250  * def postProcessRT0potentialFromP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
4251  * np.ndarray colind,
4252  * np.ndarray uQuadratureWeights_element,
4253  */
4254 
4255 /* Python wrapper */
4256 static PyObject *__pyx_pw_15cpostprocessing_19postProcessRT0potentialFromP1nc_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4257 static PyMethodDef __pyx_mdef_15cpostprocessing_19postProcessRT0potentialFromP1nc_sd = {"postProcessRT0potentialFromP1nc_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_19postProcessRT0potentialFromP1nc_sd, METH_VARARGS|METH_KEYWORDS, 0};
4258 static PyObject *__pyx_pw_15cpostprocessing_19postProcessRT0potentialFromP1nc_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4259  PyArrayObject *__pyx_v_rowptr = 0;
4260  PyArrayObject *__pyx_v_colind = 0;
4261  PyArrayObject *__pyx_v_uQuadratureWeights_element = 0;
4262  PyArrayObject *__pyx_v_elementBarycenters = 0;
4263  PyArrayObject *__pyx_v_aElementQuadWeights = 0;
4264  PyArrayObject *__pyx_v_detJ = 0;
4265  CYTHON_UNUSED PyArrayObject *__pyx_v_uQuadratureWeights_elementBoundary = 0;
4266  PyArrayObject *__pyx_v_x = 0;
4267  PyArrayObject *__pyx_v_u = 0;
4268  PyArrayObject *__pyx_v_gradu = 0;
4269  PyArrayObject *__pyx_v_x_elementBoundary = 0;
4270  PyArrayObject *__pyx_v_u_elementBoundary = 0;
4271  PyArrayObject *__pyx_v_n = 0;
4272  PyArrayObject *__pyx_v_a = 0;
4273  PyArrayObject *__pyx_v_f = 0;
4274  PyArrayObject *__pyx_v_r = 0;
4275  PyArrayObject *__pyx_v_rt0vdofs = 0;
4276  PyArrayObject *__pyx_v_rt0potential = 0;
4277  int __pyx_lineno = 0;
4278  const char *__pyx_filename = NULL;
4279  int __pyx_clineno = 0;
4280  PyObject *__pyx_r = 0;
4281  __Pyx_RefNannyDeclarations
4282  __Pyx_RefNannySetupContext("postProcessRT0potentialFromP1nc_sd (wrapper)", 0);
4283  {
4284  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_uQuadratureWeights_element,&__pyx_n_s_elementBarycenters,&__pyx_n_s_aElementQuadWeights,&__pyx_n_s_detJ,&__pyx_n_s_uQuadratureWeights_elementBounda,&__pyx_n_s_x,&__pyx_n_s_u,&__pyx_n_s_gradu,&__pyx_n_s_x_elementBoundary,&__pyx_n_s_u_elementBoundary,&__pyx_n_s_n,&__pyx_n_s_a,&__pyx_n_s_f,&__pyx_n_s_r,&__pyx_n_s_rt0vdofs,&__pyx_n_s_rt0potential,0};
4285  PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
4286  if (unlikely(__pyx_kwds)) {
4287  Py_ssize_t kw_args;
4288  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4289  switch (pos_args) {
4290  case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
4291  CYTHON_FALLTHROUGH;
4292  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
4293  CYTHON_FALLTHROUGH;
4294  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
4295  CYTHON_FALLTHROUGH;
4296  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
4297  CYTHON_FALLTHROUGH;
4298  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
4299  CYTHON_FALLTHROUGH;
4300  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
4301  CYTHON_FALLTHROUGH;
4302  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
4303  CYTHON_FALLTHROUGH;
4304  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
4305  CYTHON_FALLTHROUGH;
4306  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
4307  CYTHON_FALLTHROUGH;
4308  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4309  CYTHON_FALLTHROUGH;
4310  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4311  CYTHON_FALLTHROUGH;
4312  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4313  CYTHON_FALLTHROUGH;
4314  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4315  CYTHON_FALLTHROUGH;
4316  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4317  CYTHON_FALLTHROUGH;
4318  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4319  CYTHON_FALLTHROUGH;
4320  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4321  CYTHON_FALLTHROUGH;
4322  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4323  CYTHON_FALLTHROUGH;
4324  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4325  CYTHON_FALLTHROUGH;
4326  case 0: break;
4327  default: goto __pyx_L5_argtuple_error;
4328  }
4329  kw_args = PyDict_Size(__pyx_kwds);
4330  switch (pos_args) {
4331  case 0:
4332  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
4333  else goto __pyx_L5_argtuple_error;
4334  CYTHON_FALLTHROUGH;
4335  case 1:
4336  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
4337  else {
4338  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 1); __PYX_ERR(0, 261, __pyx_L3_error)
4339  }
4340  CYTHON_FALLTHROUGH;
4341  case 2:
4342  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uQuadratureWeights_element)) != 0)) kw_args--;
4343  else {
4344  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 2); __PYX_ERR(0, 261, __pyx_L3_error)
4345  }
4346  CYTHON_FALLTHROUGH;
4347  case 3:
4348  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBarycenters)) != 0)) kw_args--;
4349  else {
4350  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 3); __PYX_ERR(0, 261, __pyx_L3_error)
4351  }
4352  CYTHON_FALLTHROUGH;
4353  case 4:
4354  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_aElementQuadWeights)) != 0)) kw_args--;
4355  else {
4356  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 4); __PYX_ERR(0, 261, __pyx_L3_error)
4357  }
4358  CYTHON_FALLTHROUGH;
4359  case 5:
4360  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_detJ)) != 0)) kw_args--;
4361  else {
4362  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 5); __PYX_ERR(0, 261, __pyx_L3_error)
4363  }
4364  CYTHON_FALLTHROUGH;
4365  case 6:
4366  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uQuadratureWeights_elementBounda)) != 0)) kw_args--;
4367  else {
4368  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 6); __PYX_ERR(0, 261, __pyx_L3_error)
4369  }
4370  CYTHON_FALLTHROUGH;
4371  case 7:
4372  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--;
4373  else {
4374  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 7); __PYX_ERR(0, 261, __pyx_L3_error)
4375  }
4376  CYTHON_FALLTHROUGH;
4377  case 8:
4378  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
4379  else {
4380  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 8); __PYX_ERR(0, 261, __pyx_L3_error)
4381  }
4382  CYTHON_FALLTHROUGH;
4383  case 9:
4384  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gradu)) != 0)) kw_args--;
4385  else {
4386  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 9); __PYX_ERR(0, 261, __pyx_L3_error)
4387  }
4388  CYTHON_FALLTHROUGH;
4389  case 10:
4390  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x_elementBoundary)) != 0)) kw_args--;
4391  else {
4392  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 10); __PYX_ERR(0, 261, __pyx_L3_error)
4393  }
4394  CYTHON_FALLTHROUGH;
4395  case 11:
4396  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u_elementBoundary)) != 0)) kw_args--;
4397  else {
4398  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 11); __PYX_ERR(0, 261, __pyx_L3_error)
4399  }
4400  CYTHON_FALLTHROUGH;
4401  case 12:
4402  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
4403  else {
4404  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 12); __PYX_ERR(0, 261, __pyx_L3_error)
4405  }
4406  CYTHON_FALLTHROUGH;
4407  case 13:
4408  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
4409  else {
4410  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 13); __PYX_ERR(0, 261, __pyx_L3_error)
4411  }
4412  CYTHON_FALLTHROUGH;
4413  case 14:
4414  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
4415  else {
4416  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 14); __PYX_ERR(0, 261, __pyx_L3_error)
4417  }
4418  CYTHON_FALLTHROUGH;
4419  case 15:
4420  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_r)) != 0)) kw_args--;
4421  else {
4422  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 15); __PYX_ERR(0, 261, __pyx_L3_error)
4423  }
4424  CYTHON_FALLTHROUGH;
4425  case 16:
4426  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rt0vdofs)) != 0)) kw_args--;
4427  else {
4428  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 16); __PYX_ERR(0, 261, __pyx_L3_error)
4429  }
4430  CYTHON_FALLTHROUGH;
4431  case 17:
4432  if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rt0potential)) != 0)) kw_args--;
4433  else {
4434  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, 17); __PYX_ERR(0, 261, __pyx_L3_error)
4435  }
4436  }
4437  if (unlikely(kw_args > 0)) {
4438  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "postProcessRT0potentialFromP1nc_sd") < 0)) __PYX_ERR(0, 261, __pyx_L3_error)
4439  }
4440  } else if (PyTuple_GET_SIZE(__pyx_args) != 18) {
4441  goto __pyx_L5_argtuple_error;
4442  } else {
4443  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4444  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4445  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4446  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4447  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4448  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4449  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4450  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4451  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4452  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
4453  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
4454  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
4455  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
4456  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
4457  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
4458  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
4459  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
4460  values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
4461  }
4462  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
4463  __pyx_v_colind = ((PyArrayObject *)values[1]);
4464  __pyx_v_uQuadratureWeights_element = ((PyArrayObject *)values[2]);
4465  __pyx_v_elementBarycenters = ((PyArrayObject *)values[3]);
4466  __pyx_v_aElementQuadWeights = ((PyArrayObject *)values[4]);
4467  __pyx_v_detJ = ((PyArrayObject *)values[5]);
4468  __pyx_v_uQuadratureWeights_elementBoundary = ((PyArrayObject *)values[6]);
4469  __pyx_v_x = ((PyArrayObject *)values[7]);
4470  __pyx_v_u = ((PyArrayObject *)values[8]);
4471  __pyx_v_gradu = ((PyArrayObject *)values[9]);
4472  __pyx_v_x_elementBoundary = ((PyArrayObject *)values[10]);
4473  __pyx_v_u_elementBoundary = ((PyArrayObject *)values[11]);
4474  __pyx_v_n = ((PyArrayObject *)values[12]);
4475  __pyx_v_a = ((PyArrayObject *)values[13]);
4476  __pyx_v_f = ((PyArrayObject *)values[14]);
4477  __pyx_v_r = ((PyArrayObject *)values[15]);
4478  __pyx_v_rt0vdofs = ((PyArrayObject *)values[16]);
4479  __pyx_v_rt0potential = ((PyArrayObject *)values[17]);
4480  }
4481  goto __pyx_L4_argument_unpacking_done;
4482  __pyx_L5_argtuple_error:;
4483  __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 261, __pyx_L3_error)
4484  __pyx_L3_error:;
4485  __Pyx_AddTraceback("cpostprocessing.postProcessRT0potentialFromP1nc_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
4486  __Pyx_RefNannyFinishContext();
4487  return NULL;
4488  __pyx_L4_argument_unpacking_done:;
4489  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 261, __pyx_L1_error)
4490  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 262, __pyx_L1_error)
4491  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_uQuadratureWeights_element), __pyx_ptype_5numpy_ndarray, 1, "uQuadratureWeights_element", 0))) __PYX_ERR(0, 263, __pyx_L1_error)
4492  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBarycenters), __pyx_ptype_5numpy_ndarray, 1, "elementBarycenters", 0))) __PYX_ERR(0, 264, __pyx_L1_error)
4493  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_aElementQuadWeights), __pyx_ptype_5numpy_ndarray, 1, "aElementQuadWeights", 0))) __PYX_ERR(0, 265, __pyx_L1_error)
4494  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_detJ), __pyx_ptype_5numpy_ndarray, 1, "detJ", 0))) __PYX_ERR(0, 266, __pyx_L1_error)
4495  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_uQuadratureWeights_elementBoundary), __pyx_ptype_5numpy_ndarray, 1, "uQuadratureWeights_elementBoundary", 0))) __PYX_ERR(0, 267, __pyx_L1_error)
4496  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_5numpy_ndarray, 1, "x", 0))) __PYX_ERR(0, 268, __pyx_L1_error)
4497  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 269, __pyx_L1_error)
4498  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gradu), __pyx_ptype_5numpy_ndarray, 1, "gradu", 0))) __PYX_ERR(0, 270, __pyx_L1_error)
4499  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_elementBoundary), __pyx_ptype_5numpy_ndarray, 1, "x_elementBoundary", 0))) __PYX_ERR(0, 271, __pyx_L1_error)
4500  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u_elementBoundary), __pyx_ptype_5numpy_ndarray, 1, "u_elementBoundary", 0))) __PYX_ERR(0, 272, __pyx_L1_error)
4501  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 273, __pyx_L1_error)
4502  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 274, __pyx_L1_error)
4503  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 275, __pyx_L1_error)
4504  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_r), __pyx_ptype_5numpy_ndarray, 1, "r", 0))) __PYX_ERR(0, 276, __pyx_L1_error)
4505  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs), __pyx_ptype_5numpy_ndarray, 1, "rt0vdofs", 0))) __PYX_ERR(0, 277, __pyx_L1_error)
4506  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0potential), __pyx_ptype_5numpy_ndarray, 1, "rt0potential", 0))) __PYX_ERR(0, 278, __pyx_L1_error)
4507  __pyx_r = __pyx_pf_15cpostprocessing_18postProcessRT0potentialFromP1nc_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_uQuadratureWeights_element, __pyx_v_elementBarycenters, __pyx_v_aElementQuadWeights, __pyx_v_detJ, __pyx_v_uQuadratureWeights_elementBoundary, __pyx_v_x, __pyx_v_u, __pyx_v_gradu, __pyx_v_x_elementBoundary, __pyx_v_u_elementBoundary, __pyx_v_n, __pyx_v_a, __pyx_v_f, __pyx_v_r, __pyx_v_rt0vdofs, __pyx_v_rt0potential);
4508 
4509  /* function exit code */
4510  goto __pyx_L0;
4511  __pyx_L1_error:;
4512  __pyx_r = NULL;
4513  __pyx_L0:;
4514  __Pyx_RefNannyFinishContext();
4515  return __pyx_r;
4516 }
4517 
4518 static PyObject *__pyx_pf_15cpostprocessing_18postProcessRT0potentialFromP1nc_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_uQuadratureWeights_element, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_aElementQuadWeights, PyArrayObject *__pyx_v_detJ, CYTHON_UNUSED PyArrayObject *__pyx_v_uQuadratureWeights_elementBoundary, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_u_elementBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_rt0potential) {
4519  PyObject *__pyx_r = NULL;
4520  __Pyx_RefNannyDeclarations
4521  __Pyx_RefNannySetupContext("postProcessRT0potentialFromP1nc_sd", 0);
4522 
4523  /* "cpostprocessing.pyx":279
4524  * np.ndarray rt0vdofs,
4525  * np.ndarray rt0potential):
4526  * pp.postProcessRT0potentialFromP1nc_sd(u.shape[0], # <<<<<<<<<<<<<<
4527  * u.shape[1],
4528  * n.shape[1],
4529  */
4530  postProcessRT0potentialFromP1nc_sd((__pyx_v_u->dimensions[0]), (__pyx_v_u->dimensions[1]), (__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), ((double *)__pyx_v_uQuadratureWeights_element->data), ((double *)__pyx_v_elementBarycenters->data), ((double *)__pyx_v_aElementQuadWeights->data), ((double *)__pyx_v_detJ->data), ((double *)__pyx_v_uQuadratureWeights_element->data), ((double *)__pyx_v_x->data), ((double *)__pyx_v_u->data), ((double *)__pyx_v_gradu->data), ((double *)__pyx_v_x_elementBoundary->data), ((double *)__pyx_v_u_elementBoundary->data), ((double *)__pyx_v_n->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_f->data), ((double *)__pyx_v_r->data), ((double *)__pyx_v_rt0vdofs->data), ((double *)__pyx_v_rt0potential->data));
4531 
4532  /* "cpostprocessing.pyx":261
4533  * <double*>(rt0potential.data))
4534  *
4535  * def postProcessRT0potentialFromP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
4536  * np.ndarray colind,
4537  * np.ndarray uQuadratureWeights_element,
4538  */
4539 
4540  /* function exit code */
4541  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4542  __Pyx_XGIVEREF(__pyx_r);
4543  __Pyx_RefNannyFinishContext();
4544  return __pyx_r;
4545 }
4546 
4547 /* "cpostprocessing.pyx":303
4548  * <double*>(rt0potential.data))
4549  *
4550  * def buildLocalBDM1projectionMatrices(np.ndarray w_dS_f, # <<<<<<<<<<<<<<
4551  * np.ndarray ebq_n,
4552  * np.ndarray ebq_v,
4553  */
4554 
4555 /* Python wrapper */
4556 static PyObject *__pyx_pw_15cpostprocessing_21buildLocalBDM1projectionMatrices(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4557 static PyMethodDef __pyx_mdef_15cpostprocessing_21buildLocalBDM1projectionMatrices = {"buildLocalBDM1projectionMatrices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_21buildLocalBDM1projectionMatrices, METH_VARARGS|METH_KEYWORDS, 0};
4558 static PyObject *__pyx_pw_15cpostprocessing_21buildLocalBDM1projectionMatrices(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4559  PyArrayObject *__pyx_v_w_dS_f = 0;
4560  PyArrayObject *__pyx_v_ebq_n = 0;
4561  PyArrayObject *__pyx_v_ebq_v = 0;
4562  PyArrayObject *__pyx_v_BDMmat_element = 0;
4563  int __pyx_lineno = 0;
4564  const char *__pyx_filename = NULL;
4565  int __pyx_clineno = 0;
4566  PyObject *__pyx_r = 0;
4567  __Pyx_RefNannyDeclarations
4568  __Pyx_RefNannySetupContext("buildLocalBDM1projectionMatrices (wrapper)", 0);
4569  {
4570  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_w_dS_f,&__pyx_n_s_ebq_n,&__pyx_n_s_ebq_v,&__pyx_n_s_BDMmat_element,0};
4571  PyObject* values[4] = {0,0,0,0};
4572  if (unlikely(__pyx_kwds)) {
4573  Py_ssize_t kw_args;
4574  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4575  switch (pos_args) {
4576  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4577  CYTHON_FALLTHROUGH;
4578  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4579  CYTHON_FALLTHROUGH;
4580  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4581  CYTHON_FALLTHROUGH;
4582  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4583  CYTHON_FALLTHROUGH;
4584  case 0: break;
4585  default: goto __pyx_L5_argtuple_error;
4586  }
4587  kw_args = PyDict_Size(__pyx_kwds);
4588  switch (pos_args) {
4589  case 0:
4590  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_dS_f)) != 0)) kw_args--;
4591  else goto __pyx_L5_argtuple_error;
4592  CYTHON_FALLTHROUGH;
4593  case 1:
4594  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ebq_n)) != 0)) kw_args--;
4595  else {
4596  __Pyx_RaiseArgtupleInvalid("buildLocalBDM1projectionMatrices", 1, 4, 4, 1); __PYX_ERR(0, 303, __pyx_L3_error)
4597  }
4598  CYTHON_FALLTHROUGH;
4599  case 2:
4600  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ebq_v)) != 0)) kw_args--;
4601  else {
4602  __Pyx_RaiseArgtupleInvalid("buildLocalBDM1projectionMatrices", 1, 4, 4, 2); __PYX_ERR(0, 303, __pyx_L3_error)
4603  }
4604  CYTHON_FALLTHROUGH;
4605  case 3:
4606  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_BDMmat_element)) != 0)) kw_args--;
4607  else {
4608  __Pyx_RaiseArgtupleInvalid("buildLocalBDM1projectionMatrices", 1, 4, 4, 3); __PYX_ERR(0, 303, __pyx_L3_error)
4609  }
4610  }
4611  if (unlikely(kw_args > 0)) {
4612  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "buildLocalBDM1projectionMatrices") < 0)) __PYX_ERR(0, 303, __pyx_L3_error)
4613  }
4614  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
4615  goto __pyx_L5_argtuple_error;
4616  } else {
4617  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4618  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4619  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4620  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4621  }
4622  __pyx_v_w_dS_f = ((PyArrayObject *)values[0]);
4623  __pyx_v_ebq_n = ((PyArrayObject *)values[1]);
4624  __pyx_v_ebq_v = ((PyArrayObject *)values[2]);
4625  __pyx_v_BDMmat_element = ((PyArrayObject *)values[3]);
4626  }
4627  goto __pyx_L4_argument_unpacking_done;
4628  __pyx_L5_argtuple_error:;
4629  __Pyx_RaiseArgtupleInvalid("buildLocalBDM1projectionMatrices", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 303, __pyx_L3_error)
4630  __pyx_L3_error:;
4631  __Pyx_AddTraceback("cpostprocessing.buildLocalBDM1projectionMatrices", __pyx_clineno, __pyx_lineno, __pyx_filename);
4632  __Pyx_RefNannyFinishContext();
4633  return NULL;
4634  __pyx_L4_argument_unpacking_done:;
4635  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dS_f), __pyx_ptype_5numpy_ndarray, 1, "w_dS_f", 0))) __PYX_ERR(0, 303, __pyx_L1_error)
4636  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_n), __pyx_ptype_5numpy_ndarray, 1, "ebq_n", 0))) __PYX_ERR(0, 304, __pyx_L1_error)
4637  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_v), __pyx_ptype_5numpy_ndarray, 1, "ebq_v", 0))) __PYX_ERR(0, 305, __pyx_L1_error)
4638  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 306, __pyx_L1_error)
4639  __pyx_r = __pyx_pf_15cpostprocessing_20buildLocalBDM1projectionMatrices(__pyx_self, __pyx_v_w_dS_f, __pyx_v_ebq_n, __pyx_v_ebq_v, __pyx_v_BDMmat_element);
4640 
4641  /* function exit code */
4642  goto __pyx_L0;
4643  __pyx_L1_error:;
4644  __pyx_r = NULL;
4645  __pyx_L0:;
4646  __Pyx_RefNannyFinishContext();
4647  return __pyx_r;
4648 }
4649 
4650 static PyObject *__pyx_pf_15cpostprocessing_20buildLocalBDM1projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_ebq_v, PyArrayObject *__pyx_v_BDMmat_element) {
4651  PyObject *__pyx_r = NULL;
4652  __Pyx_RefNannyDeclarations
4653  __Pyx_RefNannySetupContext("buildLocalBDM1projectionMatrices", 0);
4654 
4655  /* "cpostprocessing.pyx":307
4656  * np.ndarray ebq_v,
4657  * np.ndarray BDMmat_element):
4658  * pp.buildLocalBDM1projectionMatrices(ebq_n.shape[0], # <<<<<<<<<<<<<<
4659  * ebq_n.shape[1],
4660  * ebq_n.shape[2],
4661  */
4662  buildLocalBDM1projectionMatrices((__pyx_v_ebq_n->dimensions[0]), (__pyx_v_ebq_n->dimensions[1]), (__pyx_v_ebq_n->dimensions[2]), (__pyx_v_ebq_n->dimensions[3]), (__pyx_v_w_dS_f->dimensions[3]), (__pyx_v_ebq_v->dimensions[3]), (__pyx_v_BDMmat_element->dimensions[1]), ((double *)__pyx_v_w_dS_f->data), ((double *)__pyx_v_ebq_n->data), ((double *)__pyx_v_ebq_v->data), ((double *)__pyx_v_BDMmat_element->data));
4663 
4664  /* "cpostprocessing.pyx":303
4665  * <double*>(rt0potential.data))
4666  *
4667  * def buildLocalBDM1projectionMatrices(np.ndarray w_dS_f, # <<<<<<<<<<<<<<
4668  * np.ndarray ebq_n,
4669  * np.ndarray ebq_v,
4670  */
4671 
4672  /* function exit code */
4673  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4674  __Pyx_XGIVEREF(__pyx_r);
4675  __Pyx_RefNannyFinishContext();
4676  return __pyx_r;
4677 }
4678 
4679 /* "cpostprocessing.pyx":319
4680  * <double*>(BDMmat_element.data))
4681  *
4682  * def buildLocalBDM2projectionMatrices(int degree, # <<<<<<<<<<<<<<
4683  * np.ndarray w_dS_f,
4684  * np.ndarray ebq_n,
4685  */
4686 
4687 /* Python wrapper */
4688 static PyObject *__pyx_pw_15cpostprocessing_23buildLocalBDM2projectionMatrices(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4689 static PyMethodDef __pyx_mdef_15cpostprocessing_23buildLocalBDM2projectionMatrices = {"buildLocalBDM2projectionMatrices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_23buildLocalBDM2projectionMatrices, METH_VARARGS|METH_KEYWORDS, 0};
4690 static PyObject *__pyx_pw_15cpostprocessing_23buildLocalBDM2projectionMatrices(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4691  int __pyx_v_degree;
4692  PyArrayObject *__pyx_v_w_dS_f = 0;
4693  PyArrayObject *__pyx_v_ebq_n = 0;
4694  PyArrayObject *__pyx_v_ebq_v = 0;
4695  PyArrayObject *__pyx_v_q_basis_vals = 0;
4696  PyArrayObject *__pyx_v_w_int_test_grads = 0;
4697  PyArrayObject *__pyx_v_w_int_div_free = 0;
4698  PyArrayObject *__pyx_v_piola_trial_fun = 0;
4699  PyArrayObject *__pyx_v_edgeFlags = 0;
4700  PyArrayObject *__pyx_v_BDMmat_element = 0;
4701  int __pyx_lineno = 0;
4702  const char *__pyx_filename = NULL;
4703  int __pyx_clineno = 0;
4704  PyObject *__pyx_r = 0;
4705  __Pyx_RefNannyDeclarations
4706  __Pyx_RefNannySetupContext("buildLocalBDM2projectionMatrices (wrapper)", 0);
4707  {
4708  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_degree,&__pyx_n_s_w_dS_f,&__pyx_n_s_ebq_n,&__pyx_n_s_ebq_v,&__pyx_n_s_q_basis_vals,&__pyx_n_s_w_int_test_grads,&__pyx_n_s_w_int_div_free,&__pyx_n_s_piola_trial_fun,&__pyx_n_s_edgeFlags,&__pyx_n_s_BDMmat_element,0};
4709  PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
4710  if (unlikely(__pyx_kwds)) {
4711  Py_ssize_t kw_args;
4712  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4713  switch (pos_args) {
4714  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
4715  CYTHON_FALLTHROUGH;
4716  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4717  CYTHON_FALLTHROUGH;
4718  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4719  CYTHON_FALLTHROUGH;
4720  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4721  CYTHON_FALLTHROUGH;
4722  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4723  CYTHON_FALLTHROUGH;
4724  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4725  CYTHON_FALLTHROUGH;
4726  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4727  CYTHON_FALLTHROUGH;
4728  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4729  CYTHON_FALLTHROUGH;
4730  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4731  CYTHON_FALLTHROUGH;
4732  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4733  CYTHON_FALLTHROUGH;
4734  case 0: break;
4735  default: goto __pyx_L5_argtuple_error;
4736  }
4737  kw_args = PyDict_Size(__pyx_kwds);
4738  switch (pos_args) {
4739  case 0:
4740  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_degree)) != 0)) kw_args--;
4741  else goto __pyx_L5_argtuple_error;
4742  CYTHON_FALLTHROUGH;
4743  case 1:
4744  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_dS_f)) != 0)) kw_args--;
4745  else {
4746  __Pyx_RaiseArgtupleInvalid("buildLocalBDM2projectionMatrices", 1, 10, 10, 1); __PYX_ERR(0, 319, __pyx_L3_error)
4747  }
4748  CYTHON_FALLTHROUGH;
4749  case 2:
4750  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ebq_n)) != 0)) kw_args--;
4751  else {
4752  __Pyx_RaiseArgtupleInvalid("buildLocalBDM2projectionMatrices", 1, 10, 10, 2); __PYX_ERR(0, 319, __pyx_L3_error)
4753  }
4754  CYTHON_FALLTHROUGH;
4755  case 3:
4756  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ebq_v)) != 0)) kw_args--;
4757  else {
4758  __Pyx_RaiseArgtupleInvalid("buildLocalBDM2projectionMatrices", 1, 10, 10, 3); __PYX_ERR(0, 319, __pyx_L3_error)
4759  }
4760  CYTHON_FALLTHROUGH;
4761  case 4:
4762  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_q_basis_vals)) != 0)) kw_args--;
4763  else {
4764  __Pyx_RaiseArgtupleInvalid("buildLocalBDM2projectionMatrices", 1, 10, 10, 4); __PYX_ERR(0, 319, __pyx_L3_error)
4765  }
4766  CYTHON_FALLTHROUGH;
4767  case 5:
4768  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_int_test_grads)) != 0)) kw_args--;
4769  else {
4770  __Pyx_RaiseArgtupleInvalid("buildLocalBDM2projectionMatrices", 1, 10, 10, 5); __PYX_ERR(0, 319, __pyx_L3_error)
4771  }
4772  CYTHON_FALLTHROUGH;
4773  case 6:
4774  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_int_div_free)) != 0)) kw_args--;
4775  else {
4776  __Pyx_RaiseArgtupleInvalid("buildLocalBDM2projectionMatrices", 1, 10, 10, 6); __PYX_ERR(0, 319, __pyx_L3_error)
4777  }
4778  CYTHON_FALLTHROUGH;
4779  case 7:
4780  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_piola_trial_fun)) != 0)) kw_args--;
4781  else {
4782  __Pyx_RaiseArgtupleInvalid("buildLocalBDM2projectionMatrices", 1, 10, 10, 7); __PYX_ERR(0, 319, __pyx_L3_error)
4783  }
4784  CYTHON_FALLTHROUGH;
4785  case 8:
4786  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_edgeFlags)) != 0)) kw_args--;
4787  else {
4788  __Pyx_RaiseArgtupleInvalid("buildLocalBDM2projectionMatrices", 1, 10, 10, 8); __PYX_ERR(0, 319, __pyx_L3_error)
4789  }
4790  CYTHON_FALLTHROUGH;
4791  case 9:
4792  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_BDMmat_element)) != 0)) kw_args--;
4793  else {
4794  __Pyx_RaiseArgtupleInvalid("buildLocalBDM2projectionMatrices", 1, 10, 10, 9); __PYX_ERR(0, 319, __pyx_L3_error)
4795  }
4796  }
4797  if (unlikely(kw_args > 0)) {
4798  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "buildLocalBDM2projectionMatrices") < 0)) __PYX_ERR(0, 319, __pyx_L3_error)
4799  }
4800  } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
4801  goto __pyx_L5_argtuple_error;
4802  } else {
4803  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4804  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4805  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4806  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4807  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4808  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4809  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4810  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4811  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4812  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
4813  }
4814  __pyx_v_degree = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_degree == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 319, __pyx_L3_error)
4815  __pyx_v_w_dS_f = ((PyArrayObject *)values[1]);
4816  __pyx_v_ebq_n = ((PyArrayObject *)values[2]);
4817  __pyx_v_ebq_v = ((PyArrayObject *)values[3]);
4818  __pyx_v_q_basis_vals = ((PyArrayObject *)values[4]);
4819  __pyx_v_w_int_test_grads = ((PyArrayObject *)values[5]);
4820  __pyx_v_w_int_div_free = ((PyArrayObject *)values[6]);
4821  __pyx_v_piola_trial_fun = ((PyArrayObject *)values[7]);
4822  __pyx_v_edgeFlags = ((PyArrayObject *)values[8]);
4823  __pyx_v_BDMmat_element = ((PyArrayObject *)values[9]);
4824  }
4825  goto __pyx_L4_argument_unpacking_done;
4826  __pyx_L5_argtuple_error:;
4827  __Pyx_RaiseArgtupleInvalid("buildLocalBDM2projectionMatrices", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 319, __pyx_L3_error)
4828  __pyx_L3_error:;
4829  __Pyx_AddTraceback("cpostprocessing.buildLocalBDM2projectionMatrices", __pyx_clineno, __pyx_lineno, __pyx_filename);
4830  __Pyx_RefNannyFinishContext();
4831  return NULL;
4832  __pyx_L4_argument_unpacking_done:;
4833  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dS_f), __pyx_ptype_5numpy_ndarray, 1, "w_dS_f", 0))) __PYX_ERR(0, 320, __pyx_L1_error)
4834  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_n), __pyx_ptype_5numpy_ndarray, 1, "ebq_n", 0))) __PYX_ERR(0, 321, __pyx_L1_error)
4835  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_v), __pyx_ptype_5numpy_ndarray, 1, "ebq_v", 0))) __PYX_ERR(0, 322, __pyx_L1_error)
4836  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_basis_vals), __pyx_ptype_5numpy_ndarray, 1, "q_basis_vals", 0))) __PYX_ERR(0, 323, __pyx_L1_error)
4837  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_int_test_grads), __pyx_ptype_5numpy_ndarray, 1, "w_int_test_grads", 0))) __PYX_ERR(0, 324, __pyx_L1_error)
4838  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_int_div_free), __pyx_ptype_5numpy_ndarray, 1, "w_int_div_free", 0))) __PYX_ERR(0, 325, __pyx_L1_error)
4839  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_piola_trial_fun), __pyx_ptype_5numpy_ndarray, 1, "piola_trial_fun", 0))) __PYX_ERR(0, 326, __pyx_L1_error)
4840  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_edgeFlags), __pyx_ptype_5numpy_ndarray, 1, "edgeFlags", 0))) __PYX_ERR(0, 327, __pyx_L1_error)
4841  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 328, __pyx_L1_error)
4842  __pyx_r = __pyx_pf_15cpostprocessing_22buildLocalBDM2projectionMatrices(__pyx_self, __pyx_v_degree, __pyx_v_w_dS_f, __pyx_v_ebq_n, __pyx_v_ebq_v, __pyx_v_q_basis_vals, __pyx_v_w_int_test_grads, __pyx_v_w_int_div_free, __pyx_v_piola_trial_fun, __pyx_v_edgeFlags, __pyx_v_BDMmat_element);
4843 
4844  /* function exit code */
4845  goto __pyx_L0;
4846  __pyx_L1_error:;
4847  __pyx_r = NULL;
4848  __pyx_L0:;
4849  __Pyx_RefNannyFinishContext();
4850  return __pyx_r;
4851 }
4852 
4853 static PyObject *__pyx_pf_15cpostprocessing_22buildLocalBDM2projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_degree, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_ebq_v, PyArrayObject *__pyx_v_q_basis_vals, PyArrayObject *__pyx_v_w_int_test_grads, PyArrayObject *__pyx_v_w_int_div_free, PyArrayObject *__pyx_v_piola_trial_fun, PyArrayObject *__pyx_v_edgeFlags, PyArrayObject *__pyx_v_BDMmat_element) {
4854  PyObject *__pyx_r = NULL;
4855  __Pyx_RefNannyDeclarations
4856  __Pyx_RefNannySetupContext("buildLocalBDM2projectionMatrices", 0);
4857 
4858  /* "cpostprocessing.pyx":329
4859  * np.ndarray edgeFlags,
4860  * np.ndarray BDMmat_element):
4861  * pp.buildLocalBDM2projectionMatrices(degree, # <<<<<<<<<<<<<<
4862  * ebq_n.shape[0],
4863  * ebq_n.shape[1],
4864  */
4865  buildLocalBDM2projectionMatrices(__pyx_v_degree, (__pyx_v_ebq_n->dimensions[0]), (__pyx_v_ebq_n->dimensions[1]), (__pyx_v_ebq_n->dimensions[2]), (__pyx_v_q_basis_vals->dimensions[1]), (__pyx_v_ebq_n->dimensions[3]), (__pyx_v_w_dS_f->dimensions[3]), (__pyx_v_ebq_v->dimensions[3]), (__pyx_v_w_int_test_grads->dimensions[2]), (__pyx_v_BDMmat_element->dimensions[1]), ((int *)__pyx_v_edgeFlags->data), ((double *)__pyx_v_w_dS_f->data), ((double *)__pyx_v_ebq_n->data), ((double *)__pyx_v_ebq_v->data), ((double *)__pyx_v_BDMmat_element->data), ((double *)__pyx_v_q_basis_vals->data), ((double *)__pyx_v_w_int_test_grads->data), ((double *)__pyx_v_w_int_div_free->data), ((double *)__pyx_v_piola_trial_fun->data));
4866 
4867  /* "cpostprocessing.pyx":319
4868  * <double*>(BDMmat_element.data))
4869  *
4870  * def buildLocalBDM2projectionMatrices(int degree, # <<<<<<<<<<<<<<
4871  * np.ndarray w_dS_f,
4872  * np.ndarray ebq_n,
4873  */
4874 
4875  /* function exit code */
4876  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4877  __Pyx_XGIVEREF(__pyx_r);
4878  __Pyx_RefNannyFinishContext();
4879  return __pyx_r;
4880 }
4881 
4882 /* "cpostprocessing.pyx":349
4883  * <double*>(piola_trial_fun.data))
4884  *
4885  * def factorLocalBDM1projectionMatrices(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
4886  * np.ndarray BDMmatPivots_element):
4887  * pp.factorLocalBDM1projectionMatrices(BDMmat_element.shape[0],
4888  */
4889 
4890 /* Python wrapper */
4891 static PyObject *__pyx_pw_15cpostprocessing_25factorLocalBDM1projectionMatrices(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4892 static PyMethodDef __pyx_mdef_15cpostprocessing_25factorLocalBDM1projectionMatrices = {"factorLocalBDM1projectionMatrices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_25factorLocalBDM1projectionMatrices, METH_VARARGS|METH_KEYWORDS, 0};
4893 static PyObject *__pyx_pw_15cpostprocessing_25factorLocalBDM1projectionMatrices(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4894  PyArrayObject *__pyx_v_BDMmat_element = 0;
4895  PyArrayObject *__pyx_v_BDMmatPivots_element = 0;
4896  int __pyx_lineno = 0;
4897  const char *__pyx_filename = NULL;
4898  int __pyx_clineno = 0;
4899  PyObject *__pyx_r = 0;
4900  __Pyx_RefNannyDeclarations
4901  __Pyx_RefNannySetupContext("factorLocalBDM1projectionMatrices (wrapper)", 0);
4902  {
4903  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_BDMmat_element,&__pyx_n_s_BDMmatPivots_element,0};
4904  PyObject* values[2] = {0,0};
4905  if (unlikely(__pyx_kwds)) {
4906  Py_ssize_t kw_args;
4907  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4908  switch (pos_args) {
4909  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4910  CYTHON_FALLTHROUGH;
4911  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4912  CYTHON_FALLTHROUGH;
4913  case 0: break;
4914  default: goto __pyx_L5_argtuple_error;
4915  }
4916  kw_args = PyDict_Size(__pyx_kwds);
4917  switch (pos_args) {
4918  case 0:
4919  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_BDMmat_element)) != 0)) kw_args--;
4920  else goto __pyx_L5_argtuple_error;
4921  CYTHON_FALLTHROUGH;
4922  case 1:
4923  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_BDMmatPivots_element)) != 0)) kw_args--;
4924  else {
4925  __Pyx_RaiseArgtupleInvalid("factorLocalBDM1projectionMatrices", 1, 2, 2, 1); __PYX_ERR(0, 349, __pyx_L3_error)
4926  }
4927  }
4928  if (unlikely(kw_args > 0)) {
4929  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "factorLocalBDM1projectionMatrices") < 0)) __PYX_ERR(0, 349, __pyx_L3_error)
4930  }
4931  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
4932  goto __pyx_L5_argtuple_error;
4933  } else {
4934  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4935  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4936  }
4937  __pyx_v_BDMmat_element = ((PyArrayObject *)values[0]);
4938  __pyx_v_BDMmatPivots_element = ((PyArrayObject *)values[1]);
4939  }
4940  goto __pyx_L4_argument_unpacking_done;
4941  __pyx_L5_argtuple_error:;
4942  __Pyx_RaiseArgtupleInvalid("factorLocalBDM1projectionMatrices", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 349, __pyx_L3_error)
4943  __pyx_L3_error:;
4944  __Pyx_AddTraceback("cpostprocessing.factorLocalBDM1projectionMatrices", __pyx_clineno, __pyx_lineno, __pyx_filename);
4945  __Pyx_RefNannyFinishContext();
4946  return NULL;
4947  __pyx_L4_argument_unpacking_done:;
4948  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 349, __pyx_L1_error)
4949  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmatPivots_element), __pyx_ptype_5numpy_ndarray, 1, "BDMmatPivots_element", 0))) __PYX_ERR(0, 350, __pyx_L1_error)
4950  __pyx_r = __pyx_pf_15cpostprocessing_24factorLocalBDM1projectionMatrices(__pyx_self, __pyx_v_BDMmat_element, __pyx_v_BDMmatPivots_element);
4951 
4952  /* function exit code */
4953  goto __pyx_L0;
4954  __pyx_L1_error:;
4955  __pyx_r = NULL;
4956  __pyx_L0:;
4957  __Pyx_RefNannyFinishContext();
4958  return __pyx_r;
4959 }
4960 
4961 static PyObject *__pyx_pf_15cpostprocessing_24factorLocalBDM1projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element) {
4962  PyObject *__pyx_r = NULL;
4963  __Pyx_RefNannyDeclarations
4964  __Pyx_RefNannySetupContext("factorLocalBDM1projectionMatrices", 0);
4965 
4966  /* "cpostprocessing.pyx":351
4967  * def factorLocalBDM1projectionMatrices(np.ndarray BDMmat_element,
4968  * np.ndarray BDMmatPivots_element):
4969  * pp.factorLocalBDM1projectionMatrices(BDMmat_element.shape[0], # <<<<<<<<<<<<<<
4970  * BDMmat_element.shape[1],
4971  * <double*>(BDMmat_element.data),
4972  */
4973  factorLocalBDM1projectionMatrices((__pyx_v_BDMmat_element->dimensions[0]), (__pyx_v_BDMmat_element->dimensions[1]), ((double *)__pyx_v_BDMmat_element->data), ((int *)__pyx_v_BDMmatPivots_element->data));
4974 
4975  /* "cpostprocessing.pyx":349
4976  * <double*>(piola_trial_fun.data))
4977  *
4978  * def factorLocalBDM1projectionMatrices(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
4979  * np.ndarray BDMmatPivots_element):
4980  * pp.factorLocalBDM1projectionMatrices(BDMmat_element.shape[0],
4981  */
4982 
4983  /* function exit code */
4984  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4985  __Pyx_XGIVEREF(__pyx_r);
4986  __Pyx_RefNannyFinishContext();
4987  return __pyx_r;
4988 }
4989 
4990 /* "cpostprocessing.pyx":356
4991  * <int*>(BDMmatPivots_element.data))
4992  *
4993  * def factorLocalBDM2projectionMatrices(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
4994  * np.ndarray BDMmatPivots_element):
4995  * pp.factorLocalBDM2projectionMatrices(BDMmat_element.shape[0],
4996  */
4997 
4998 /* Python wrapper */
4999 static PyObject *__pyx_pw_15cpostprocessing_27factorLocalBDM2projectionMatrices(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5000 static PyMethodDef __pyx_mdef_15cpostprocessing_27factorLocalBDM2projectionMatrices = {"factorLocalBDM2projectionMatrices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_27factorLocalBDM2projectionMatrices, METH_VARARGS|METH_KEYWORDS, 0};
5001 static PyObject *__pyx_pw_15cpostprocessing_27factorLocalBDM2projectionMatrices(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5002  PyArrayObject *__pyx_v_BDMmat_element = 0;
5003  PyArrayObject *__pyx_v_BDMmatPivots_element = 0;
5004  int __pyx_lineno = 0;
5005  const char *__pyx_filename = NULL;
5006  int __pyx_clineno = 0;
5007  PyObject *__pyx_r = 0;
5008  __Pyx_RefNannyDeclarations
5009  __Pyx_RefNannySetupContext("factorLocalBDM2projectionMatrices (wrapper)", 0);
5010  {
5011  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_BDMmat_element,&__pyx_n_s_BDMmatPivots_element,0};
5012  PyObject* values[2] = {0,0};
5013  if (unlikely(__pyx_kwds)) {
5014  Py_ssize_t kw_args;
5015  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5016  switch (pos_args) {
5017  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5018  CYTHON_FALLTHROUGH;
5019  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5020  CYTHON_FALLTHROUGH;
5021  case 0: break;
5022  default: goto __pyx_L5_argtuple_error;
5023  }
5024  kw_args = PyDict_Size(__pyx_kwds);
5025  switch (pos_args) {
5026  case 0:
5027  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_BDMmat_element)) != 0)) kw_args--;
5028  else goto __pyx_L5_argtuple_error;
5029  CYTHON_FALLTHROUGH;
5030  case 1:
5031  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_BDMmatPivots_element)) != 0)) kw_args--;
5032  else {
5033  __Pyx_RaiseArgtupleInvalid("factorLocalBDM2projectionMatrices", 1, 2, 2, 1); __PYX_ERR(0, 356, __pyx_L3_error)
5034  }
5035  }
5036  if (unlikely(kw_args > 0)) {
5037  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "factorLocalBDM2projectionMatrices") < 0)) __PYX_ERR(0, 356, __pyx_L3_error)
5038  }
5039  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
5040  goto __pyx_L5_argtuple_error;
5041  } else {
5042  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5043  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5044  }
5045  __pyx_v_BDMmat_element = ((PyArrayObject *)values[0]);
5046  __pyx_v_BDMmatPivots_element = ((PyArrayObject *)values[1]);
5047  }
5048  goto __pyx_L4_argument_unpacking_done;
5049  __pyx_L5_argtuple_error:;
5050  __Pyx_RaiseArgtupleInvalid("factorLocalBDM2projectionMatrices", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 356, __pyx_L3_error)
5051  __pyx_L3_error:;
5052  __Pyx_AddTraceback("cpostprocessing.factorLocalBDM2projectionMatrices", __pyx_clineno, __pyx_lineno, __pyx_filename);
5053  __Pyx_RefNannyFinishContext();
5054  return NULL;
5055  __pyx_L4_argument_unpacking_done:;
5056  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 356, __pyx_L1_error)
5057  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmatPivots_element), __pyx_ptype_5numpy_ndarray, 1, "BDMmatPivots_element", 0))) __PYX_ERR(0, 357, __pyx_L1_error)
5058  __pyx_r = __pyx_pf_15cpostprocessing_26factorLocalBDM2projectionMatrices(__pyx_self, __pyx_v_BDMmat_element, __pyx_v_BDMmatPivots_element);
5059 
5060  /* function exit code */
5061  goto __pyx_L0;
5062  __pyx_L1_error:;
5063  __pyx_r = NULL;
5064  __pyx_L0:;
5065  __Pyx_RefNannyFinishContext();
5066  return __pyx_r;
5067 }
5068 
5069 static PyObject *__pyx_pf_15cpostprocessing_26factorLocalBDM2projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element) {
5070  PyObject *__pyx_r = NULL;
5071  __Pyx_RefNannyDeclarations
5072  __Pyx_RefNannySetupContext("factorLocalBDM2projectionMatrices", 0);
5073 
5074  /* "cpostprocessing.pyx":358
5075  * def factorLocalBDM2projectionMatrices(np.ndarray BDMmat_element,
5076  * np.ndarray BDMmatPivots_element):
5077  * pp.factorLocalBDM2projectionMatrices(BDMmat_element.shape[0], # <<<<<<<<<<<<<<
5078  * BDMmat_element.shape[1],
5079  * <double*>(BDMmat_element.data),
5080  */
5081  factorLocalBDM2projectionMatrices((__pyx_v_BDMmat_element->dimensions[0]), (__pyx_v_BDMmat_element->dimensions[1]), ((double *)__pyx_v_BDMmat_element->data), ((int *)__pyx_v_BDMmatPivots_element->data));
5082 
5083  /* "cpostprocessing.pyx":356
5084  * <int*>(BDMmatPivots_element.data))
5085  *
5086  * def factorLocalBDM2projectionMatrices(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
5087  * np.ndarray BDMmatPivots_element):
5088  * pp.factorLocalBDM2projectionMatrices(BDMmat_element.shape[0],
5089  */
5090 
5091  /* function exit code */
5092  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5093  __Pyx_XGIVEREF(__pyx_r);
5094  __Pyx_RefNannyFinishContext();
5095  return __pyx_r;
5096 }
5097 
5098 /* "cpostprocessing.pyx":363
5099  * <int*>(BDMmatPivots_element.data))
5100  *
5101  * def solveLocalBDM1projection(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
5102  * np.ndarray BDMmatPivots_element,
5103  * np.ndarray w_dS_f,
5104  */
5105 
5106 /* Python wrapper */
5107 static PyObject *__pyx_pw_15cpostprocessing_29solveLocalBDM1projection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5108 static PyMethodDef __pyx_mdef_15cpostprocessing_29solveLocalBDM1projection = {"solveLocalBDM1projection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_29solveLocalBDM1projection, METH_VARARGS|METH_KEYWORDS, 0};
5109 static PyObject *__pyx_pw_15cpostprocessing_29solveLocalBDM1projection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5110  PyArrayObject *__pyx_v_BDMmat_element = 0;
5111  PyArrayObject *__pyx_v_BDMmatPivots_element = 0;
5112  PyArrayObject *__pyx_v_w_dS_f = 0;
5113  PyArrayObject *__pyx_v_ebq_n = 0;
5114  PyArrayObject *__pyx_v_ebq_velocity = 0;
5115  PyArrayObject *__pyx_v_q_vdofs = 0;
5116  int __pyx_lineno = 0;
5117  const char *__pyx_filename = NULL;
5118  int __pyx_clineno = 0;
5119  PyObject *__pyx_r = 0;
5120  __Pyx_RefNannyDeclarations
5121  __Pyx_RefNannySetupContext("solveLocalBDM1projection (wrapper)", 0);
5122  {
5123  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_BDMmat_element,&__pyx_n_s_BDMmatPivots_element,&__pyx_n_s_w_dS_f,&__pyx_n_s_ebq_n,&__pyx_n_s_ebq_velocity,&__pyx_n_s_q_vdofs,0};
5124  PyObject* values[6] = {0,0,0,0,0,0};
5125  if (unlikely(__pyx_kwds)) {
5126  Py_ssize_t kw_args;
5127  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5128  switch (pos_args) {
5129  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5130  CYTHON_FALLTHROUGH;
5131  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5132  CYTHON_FALLTHROUGH;
5133  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5134  CYTHON_FALLTHROUGH;
5135  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5136  CYTHON_FALLTHROUGH;
5137  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5138  CYTHON_FALLTHROUGH;
5139  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5140  CYTHON_FALLTHROUGH;
5141  case 0: break;
5142  default: goto __pyx_L5_argtuple_error;
5143  }
5144  kw_args = PyDict_Size(__pyx_kwds);
5145  switch (pos_args) {
5146  case 0:
5147  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_BDMmat_element)) != 0)) kw_args--;
5148  else goto __pyx_L5_argtuple_error;
5149  CYTHON_FALLTHROUGH;
5150  case 1:
5151  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_BDMmatPivots_element)) != 0)) kw_args--;
5152  else {
5153  __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projection", 1, 6, 6, 1); __PYX_ERR(0, 363, __pyx_L3_error)
5154  }
5155  CYTHON_FALLTHROUGH;
5156  case 2:
5157  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_dS_f)) != 0)) kw_args--;
5158  else {
5159  __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projection", 1, 6, 6, 2); __PYX_ERR(0, 363, __pyx_L3_error)
5160  }
5161  CYTHON_FALLTHROUGH;
5162  case 3:
5163  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ebq_n)) != 0)) kw_args--;
5164  else {
5165  __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projection", 1, 6, 6, 3); __PYX_ERR(0, 363, __pyx_L3_error)
5166  }
5167  CYTHON_FALLTHROUGH;
5168  case 4:
5169  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ebq_velocity)) != 0)) kw_args--;
5170  else {
5171  __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projection", 1, 6, 6, 4); __PYX_ERR(0, 363, __pyx_L3_error)
5172  }
5173  CYTHON_FALLTHROUGH;
5174  case 5:
5175  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_q_vdofs)) != 0)) kw_args--;
5176  else {
5177  __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projection", 1, 6, 6, 5); __PYX_ERR(0, 363, __pyx_L3_error)
5178  }
5179  }
5180  if (unlikely(kw_args > 0)) {
5181  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "solveLocalBDM1projection") < 0)) __PYX_ERR(0, 363, __pyx_L3_error)
5182  }
5183  } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
5184  goto __pyx_L5_argtuple_error;
5185  } else {
5186  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5187  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5188  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5189  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5190  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5191  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5192  }
5193  __pyx_v_BDMmat_element = ((PyArrayObject *)values[0]);
5194  __pyx_v_BDMmatPivots_element = ((PyArrayObject *)values[1]);
5195  __pyx_v_w_dS_f = ((PyArrayObject *)values[2]);
5196  __pyx_v_ebq_n = ((PyArrayObject *)values[3]);
5197  __pyx_v_ebq_velocity = ((PyArrayObject *)values[4]);
5198  __pyx_v_q_vdofs = ((PyArrayObject *)values[5]);
5199  }
5200  goto __pyx_L4_argument_unpacking_done;
5201  __pyx_L5_argtuple_error:;
5202  __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projection", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 363, __pyx_L3_error)
5203  __pyx_L3_error:;
5204  __Pyx_AddTraceback("cpostprocessing.solveLocalBDM1projection", __pyx_clineno, __pyx_lineno, __pyx_filename);
5205  __Pyx_RefNannyFinishContext();
5206  return NULL;
5207  __pyx_L4_argument_unpacking_done:;
5208  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 363, __pyx_L1_error)
5209  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmatPivots_element), __pyx_ptype_5numpy_ndarray, 1, "BDMmatPivots_element", 0))) __PYX_ERR(0, 364, __pyx_L1_error)
5210  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dS_f), __pyx_ptype_5numpy_ndarray, 1, "w_dS_f", 0))) __PYX_ERR(0, 365, __pyx_L1_error)
5211  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_n), __pyx_ptype_5numpy_ndarray, 1, "ebq_n", 0))) __PYX_ERR(0, 366, __pyx_L1_error)
5212  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_velocity), __pyx_ptype_5numpy_ndarray, 1, "ebq_velocity", 0))) __PYX_ERR(0, 367, __pyx_L1_error)
5213  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_vdofs), __pyx_ptype_5numpy_ndarray, 1, "q_vdofs", 0))) __PYX_ERR(0, 368, __pyx_L1_error)
5214  __pyx_r = __pyx_pf_15cpostprocessing_28solveLocalBDM1projection(__pyx_self, __pyx_v_BDMmat_element, __pyx_v_BDMmatPivots_element, __pyx_v_w_dS_f, __pyx_v_ebq_n, __pyx_v_ebq_velocity, __pyx_v_q_vdofs);
5215 
5216  /* function exit code */
5217  goto __pyx_L0;
5218  __pyx_L1_error:;
5219  __pyx_r = NULL;
5220  __pyx_L0:;
5221  __Pyx_RefNannyFinishContext();
5222  return __pyx_r;
5223 }
5224 
5225 static PyObject *__pyx_pf_15cpostprocessing_28solveLocalBDM1projection(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_q_vdofs) {
5226  PyObject *__pyx_r = NULL;
5227  __Pyx_RefNannyDeclarations
5228  __Pyx_RefNannySetupContext("solveLocalBDM1projection", 0);
5229 
5230  /* "cpostprocessing.pyx":369
5231  * np.ndarray ebq_velocity,
5232  * np.ndarray q_vdofs):
5233  * pp.solveLocalBDM1projection(ebq_n.shape[0], # <<<<<<<<<<<<<<
5234  * ebq_n.shape[1],
5235  * ebq_n.shape[2],
5236  */
5237  solveLocalBDM1projection((__pyx_v_ebq_n->dimensions[0]), (__pyx_v_ebq_n->dimensions[1]), (__pyx_v_ebq_n->dimensions[2]), (__pyx_v_ebq_n->dimensions[3]), (__pyx_v_w_dS_f->dimensions[3]), (__pyx_v_BDMmat_element->dimensions[1]), ((double *)__pyx_v_BDMmat_element->data), ((int *)__pyx_v_BDMmatPivots_element->data), ((double *)__pyx_v_w_dS_f->data), ((double *)__pyx_v_ebq_n->data), ((double *)__pyx_v_ebq_velocity->data), ((double *)__pyx_v_q_vdofs->data));
5238 
5239  /* "cpostprocessing.pyx":363
5240  * <int*>(BDMmatPivots_element.data))
5241  *
5242  * def solveLocalBDM1projection(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
5243  * np.ndarray BDMmatPivots_element,
5244  * np.ndarray w_dS_f,
5245  */
5246 
5247  /* function exit code */
5248  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5249  __Pyx_XGIVEREF(__pyx_r);
5250  __Pyx_RefNannyFinishContext();
5251  return __pyx_r;
5252 }
5253 
5254 /* "cpostprocessing.pyx":382
5255  * <double*>(q_vdofs.data))
5256  *
5257  * def solveLocalBDM2projection(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
5258  * np.ndarray BDMmatPivots_element,
5259  * np.ndarray w_dS_f,
5260  */
5261 
5262 /* Python wrapper */
5263 static PyObject *__pyx_pw_15cpostprocessing_31solveLocalBDM2projection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5264 static PyMethodDef __pyx_mdef_15cpostprocessing_31solveLocalBDM2projection = {"solveLocalBDM2projection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_31solveLocalBDM2projection, METH_VARARGS|METH_KEYWORDS, 0};
5265 static PyObject *__pyx_pw_15cpostprocessing_31solveLocalBDM2projection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5266  PyArrayObject *__pyx_v_BDMmat_element = 0;
5267  PyArrayObject *__pyx_v_BDMmatPivots_element = 0;
5268  PyArrayObject *__pyx_v_w_dS_f = 0;
5269  PyArrayObject *__pyx_v_ebq_n = 0;
5270  PyArrayObject *__pyx_v_w_interior_gradients = 0;
5271  PyArrayObject *__pyx_v_ebq_velocity = 0;
5272  PyArrayObject *__pyx_v_q_velocity = 0;
5273  PyArrayObject *__pyx_v_q_vdofs = 0;
5274  int __pyx_lineno = 0;
5275  const char *__pyx_filename = NULL;
5276  int __pyx_clineno = 0;
5277  PyObject *__pyx_r = 0;
5278  __Pyx_RefNannyDeclarations
5279  __Pyx_RefNannySetupContext("solveLocalBDM2projection (wrapper)", 0);
5280  {
5281  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_BDMmat_element,&__pyx_n_s_BDMmatPivots_element,&__pyx_n_s_w_dS_f,&__pyx_n_s_ebq_n,&__pyx_n_s_w_interior_gradients,&__pyx_n_s_ebq_velocity,&__pyx_n_s_q_velocity,&__pyx_n_s_q_vdofs,0};
5282  PyObject* values[8] = {0,0,0,0,0,0,0,0};
5283  if (unlikely(__pyx_kwds)) {
5284  Py_ssize_t kw_args;
5285  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5286  switch (pos_args) {
5287  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5288  CYTHON_FALLTHROUGH;
5289  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5290  CYTHON_FALLTHROUGH;
5291  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5292  CYTHON_FALLTHROUGH;
5293  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5294  CYTHON_FALLTHROUGH;
5295  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5296  CYTHON_FALLTHROUGH;
5297  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5298  CYTHON_FALLTHROUGH;
5299  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5300  CYTHON_FALLTHROUGH;
5301  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5302  CYTHON_FALLTHROUGH;
5303  case 0: break;
5304  default: goto __pyx_L5_argtuple_error;
5305  }
5306  kw_args = PyDict_Size(__pyx_kwds);
5307  switch (pos_args) {
5308  case 0:
5309  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_BDMmat_element)) != 0)) kw_args--;
5310  else goto __pyx_L5_argtuple_error;
5311  CYTHON_FALLTHROUGH;
5312  case 1:
5313  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_BDMmatPivots_element)) != 0)) kw_args--;
5314  else {
5315  __Pyx_RaiseArgtupleInvalid("solveLocalBDM2projection", 1, 8, 8, 1); __PYX_ERR(0, 382, __pyx_L3_error)
5316  }
5317  CYTHON_FALLTHROUGH;
5318  case 2:
5319  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_dS_f)) != 0)) kw_args--;
5320  else {
5321  __Pyx_RaiseArgtupleInvalid("solveLocalBDM2projection", 1, 8, 8, 2); __PYX_ERR(0, 382, __pyx_L3_error)
5322  }
5323  CYTHON_FALLTHROUGH;
5324  case 3:
5325  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ebq_n)) != 0)) kw_args--;
5326  else {
5327  __Pyx_RaiseArgtupleInvalid("solveLocalBDM2projection", 1, 8, 8, 3); __PYX_ERR(0, 382, __pyx_L3_error)
5328  }
5329  CYTHON_FALLTHROUGH;
5330  case 4:
5331  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_interior_gradients)) != 0)) kw_args--;
5332  else {
5333  __Pyx_RaiseArgtupleInvalid("solveLocalBDM2projection", 1, 8, 8, 4); __PYX_ERR(0, 382, __pyx_L3_error)
5334  }
5335  CYTHON_FALLTHROUGH;
5336  case 5:
5337  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ebq_velocity)) != 0)) kw_args--;
5338  else {
5339  __Pyx_RaiseArgtupleInvalid("solveLocalBDM2projection", 1, 8, 8, 5); __PYX_ERR(0, 382, __pyx_L3_error)
5340  }
5341  CYTHON_FALLTHROUGH;
5342  case 6:
5343  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_q_velocity)) != 0)) kw_args--;
5344  else {
5345  __Pyx_RaiseArgtupleInvalid("solveLocalBDM2projection", 1, 8, 8, 6); __PYX_ERR(0, 382, __pyx_L3_error)
5346  }
5347  CYTHON_FALLTHROUGH;
5348  case 7:
5349  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_q_vdofs)) != 0)) kw_args--;
5350  else {
5351  __Pyx_RaiseArgtupleInvalid("solveLocalBDM2projection", 1, 8, 8, 7); __PYX_ERR(0, 382, __pyx_L3_error)
5352  }
5353  }
5354  if (unlikely(kw_args > 0)) {
5355  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "solveLocalBDM2projection") < 0)) __PYX_ERR(0, 382, __pyx_L3_error)
5356  }
5357  } else if (PyTuple_GET_SIZE(__pyx_args) != 8) {
5358  goto __pyx_L5_argtuple_error;
5359  } else {
5360  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5361  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5362  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5363  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5364  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5365  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5366  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5367  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5368  }
5369  __pyx_v_BDMmat_element = ((PyArrayObject *)values[0]);
5370  __pyx_v_BDMmatPivots_element = ((PyArrayObject *)values[1]);
5371  __pyx_v_w_dS_f = ((PyArrayObject *)values[2]);
5372  __pyx_v_ebq_n = ((PyArrayObject *)values[3]);
5373  __pyx_v_w_interior_gradients = ((PyArrayObject *)values[4]);
5374  __pyx_v_ebq_velocity = ((PyArrayObject *)values[5]);
5375  __pyx_v_q_velocity = ((PyArrayObject *)values[6]);
5376  __pyx_v_q_vdofs = ((PyArrayObject *)values[7]);
5377  }
5378  goto __pyx_L4_argument_unpacking_done;
5379  __pyx_L5_argtuple_error:;
5380  __Pyx_RaiseArgtupleInvalid("solveLocalBDM2projection", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 382, __pyx_L3_error)
5381  __pyx_L3_error:;
5382  __Pyx_AddTraceback("cpostprocessing.solveLocalBDM2projection", __pyx_clineno, __pyx_lineno, __pyx_filename);
5383  __Pyx_RefNannyFinishContext();
5384  return NULL;
5385  __pyx_L4_argument_unpacking_done:;
5386  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 382, __pyx_L1_error)
5387  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmatPivots_element), __pyx_ptype_5numpy_ndarray, 1, "BDMmatPivots_element", 0))) __PYX_ERR(0, 383, __pyx_L1_error)
5388  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dS_f), __pyx_ptype_5numpy_ndarray, 1, "w_dS_f", 0))) __PYX_ERR(0, 384, __pyx_L1_error)
5389  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_n), __pyx_ptype_5numpy_ndarray, 1, "ebq_n", 0))) __PYX_ERR(0, 385, __pyx_L1_error)
5390  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_interior_gradients), __pyx_ptype_5numpy_ndarray, 1, "w_interior_gradients", 0))) __PYX_ERR(0, 386, __pyx_L1_error)
5391  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_velocity), __pyx_ptype_5numpy_ndarray, 1, "ebq_velocity", 0))) __PYX_ERR(0, 387, __pyx_L1_error)
5392  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_velocity), __pyx_ptype_5numpy_ndarray, 1, "q_velocity", 0))) __PYX_ERR(0, 388, __pyx_L1_error)
5393  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_vdofs), __pyx_ptype_5numpy_ndarray, 1, "q_vdofs", 0))) __PYX_ERR(0, 389, __pyx_L1_error)
5394  __pyx_r = __pyx_pf_15cpostprocessing_30solveLocalBDM2projection(__pyx_self, __pyx_v_BDMmat_element, __pyx_v_BDMmatPivots_element, __pyx_v_w_dS_f, __pyx_v_ebq_n, __pyx_v_w_interior_gradients, __pyx_v_ebq_velocity, __pyx_v_q_velocity, __pyx_v_q_vdofs);
5395 
5396  /* function exit code */
5397  goto __pyx_L0;
5398  __pyx_L1_error:;
5399  __pyx_r = NULL;
5400  __pyx_L0:;
5401  __Pyx_RefNannyFinishContext();
5402  return __pyx_r;
5403 }
5404 
5405 static PyObject *__pyx_pf_15cpostprocessing_30solveLocalBDM2projection(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_w_interior_gradients, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_q_velocity, PyArrayObject *__pyx_v_q_vdofs) {
5406  PyObject *__pyx_r = NULL;
5407  __Pyx_RefNannyDeclarations
5408  __Pyx_RefNannySetupContext("solveLocalBDM2projection", 0);
5409 
5410  /* "cpostprocessing.pyx":390
5411  * np.ndarray q_velocity,
5412  * np.ndarray q_vdofs):
5413  * pp.solveLocalBDM2projection(ebq_n.shape[0], # <<<<<<<<<<<<<<
5414  * ebq_n.shape[1],
5415  * ebq_n.shape[2],
5416  */
5417  solveLocalBDM2projection((__pyx_v_ebq_n->dimensions[0]), (__pyx_v_ebq_n->dimensions[1]), (__pyx_v_ebq_n->dimensions[2]), (__pyx_v_ebq_n->dimensions[3]), (__pyx_v_w_dS_f->dimensions[3]), (__pyx_v_BDMmat_element->dimensions[1]), ((double *)__pyx_v_BDMmat_element->data), ((int *)__pyx_v_BDMmatPivots_element->data), ((double *)__pyx_v_w_dS_f->data), ((double *)__pyx_v_ebq_n->data), ((double *)__pyx_v_w_interior_gradients->data), ((double *)__pyx_v_q_velocity->data), ((double *)__pyx_v_ebq_velocity->data), ((double *)__pyx_v_q_vdofs->data));
5418 
5419  /* "cpostprocessing.pyx":382
5420  * <double*>(q_vdofs.data))
5421  *
5422  * def solveLocalBDM2projection(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
5423  * np.ndarray BDMmatPivots_element,
5424  * np.ndarray w_dS_f,
5425  */
5426 
5427  /* function exit code */
5428  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5429  __Pyx_XGIVEREF(__pyx_r);
5430  __Pyx_RefNannyFinishContext();
5431  return __pyx_r;
5432 }
5433 
5434 /* "cpostprocessing.pyx":405
5435  * <double*>(q_vdofs.data))
5436  *
5437  * def buildBDM2rhs(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
5438  * np.ndarray BDMmatPivots_element,
5439  * np.ndarray w_dS_f,
5440  */
5441 
5442 /* Python wrapper */
5443 static PyObject *__pyx_pw_15cpostprocessing_33buildBDM2rhs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5444 static PyMethodDef __pyx_mdef_15cpostprocessing_33buildBDM2rhs = {"buildBDM2rhs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_33buildBDM2rhs, METH_VARARGS|METH_KEYWORDS, 0};
5445 static PyObject *__pyx_pw_15cpostprocessing_33buildBDM2rhs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5446  PyArrayObject *__pyx_v_BDMmat_element = 0;
5447  PyArrayObject *__pyx_v_BDMmatPivots_element = 0;
5448  PyArrayObject *__pyx_v_w_dS_f = 0;
5449  PyArrayObject *__pyx_v_ebq_n = 0;
5450  PyArrayObject *__pyx_v_w_interior_gradients = 0;
5451  PyArrayObject *__pyx_v_w_interior_divfree = 0;
5452  PyArrayObject *__pyx_v_ebq_velocity = 0;
5453  PyArrayObject *__pyx_v_q_velocity = 0;
5454  PyArrayObject *__pyx_v_q_vdofs = 0;
5455  PyArrayObject *__pyx_v_edgeFlags = 0;
5456  int __pyx_lineno = 0;
5457  const char *__pyx_filename = NULL;
5458  int __pyx_clineno = 0;
5459  PyObject *__pyx_r = 0;
5460  __Pyx_RefNannyDeclarations
5461  __Pyx_RefNannySetupContext("buildBDM2rhs (wrapper)", 0);
5462  {
5463  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_BDMmat_element,&__pyx_n_s_BDMmatPivots_element,&__pyx_n_s_w_dS_f,&__pyx_n_s_ebq_n,&__pyx_n_s_w_interior_gradients,&__pyx_n_s_w_interior_divfree,&__pyx_n_s_ebq_velocity,&__pyx_n_s_q_velocity,&__pyx_n_s_q_vdofs,&__pyx_n_s_edgeFlags,0};
5464  PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
5465  if (unlikely(__pyx_kwds)) {
5466  Py_ssize_t kw_args;
5467  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5468  switch (pos_args) {
5469  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
5470  CYTHON_FALLTHROUGH;
5471  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5472  CYTHON_FALLTHROUGH;
5473  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5474  CYTHON_FALLTHROUGH;
5475  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5476  CYTHON_FALLTHROUGH;
5477  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5478  CYTHON_FALLTHROUGH;
5479  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5480  CYTHON_FALLTHROUGH;
5481  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5482  CYTHON_FALLTHROUGH;
5483  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5484  CYTHON_FALLTHROUGH;
5485  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5486  CYTHON_FALLTHROUGH;
5487  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5488  CYTHON_FALLTHROUGH;
5489  case 0: break;
5490  default: goto __pyx_L5_argtuple_error;
5491  }
5492  kw_args = PyDict_Size(__pyx_kwds);
5493  switch (pos_args) {
5494  case 0:
5495  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_BDMmat_element)) != 0)) kw_args--;
5496  else goto __pyx_L5_argtuple_error;
5497  CYTHON_FALLTHROUGH;
5498  case 1:
5499  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_BDMmatPivots_element)) != 0)) kw_args--;
5500  else {
5501  __Pyx_RaiseArgtupleInvalid("buildBDM2rhs", 1, 10, 10, 1); __PYX_ERR(0, 405, __pyx_L3_error)
5502  }
5503  CYTHON_FALLTHROUGH;
5504  case 2:
5505  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_dS_f)) != 0)) kw_args--;
5506  else {
5507  __Pyx_RaiseArgtupleInvalid("buildBDM2rhs", 1, 10, 10, 2); __PYX_ERR(0, 405, __pyx_L3_error)
5508  }
5509  CYTHON_FALLTHROUGH;
5510  case 3:
5511  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ebq_n)) != 0)) kw_args--;
5512  else {
5513  __Pyx_RaiseArgtupleInvalid("buildBDM2rhs", 1, 10, 10, 3); __PYX_ERR(0, 405, __pyx_L3_error)
5514  }
5515  CYTHON_FALLTHROUGH;
5516  case 4:
5517  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_interior_gradients)) != 0)) kw_args--;
5518  else {
5519  __Pyx_RaiseArgtupleInvalid("buildBDM2rhs", 1, 10, 10, 4); __PYX_ERR(0, 405, __pyx_L3_error)
5520  }
5521  CYTHON_FALLTHROUGH;
5522  case 5:
5523  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_interior_divfree)) != 0)) kw_args--;
5524  else {
5525  __Pyx_RaiseArgtupleInvalid("buildBDM2rhs", 1, 10, 10, 5); __PYX_ERR(0, 405, __pyx_L3_error)
5526  }
5527  CYTHON_FALLTHROUGH;
5528  case 6:
5529  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ebq_velocity)) != 0)) kw_args--;
5530  else {
5531  __Pyx_RaiseArgtupleInvalid("buildBDM2rhs", 1, 10, 10, 6); __PYX_ERR(0, 405, __pyx_L3_error)
5532  }
5533  CYTHON_FALLTHROUGH;
5534  case 7:
5535  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_q_velocity)) != 0)) kw_args--;
5536  else {
5537  __Pyx_RaiseArgtupleInvalid("buildBDM2rhs", 1, 10, 10, 7); __PYX_ERR(0, 405, __pyx_L3_error)
5538  }
5539  CYTHON_FALLTHROUGH;
5540  case 8:
5541  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_q_vdofs)) != 0)) kw_args--;
5542  else {
5543  __Pyx_RaiseArgtupleInvalid("buildBDM2rhs", 1, 10, 10, 8); __PYX_ERR(0, 405, __pyx_L3_error)
5544  }
5545  CYTHON_FALLTHROUGH;
5546  case 9:
5547  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_edgeFlags)) != 0)) kw_args--;
5548  else {
5549  __Pyx_RaiseArgtupleInvalid("buildBDM2rhs", 1, 10, 10, 9); __PYX_ERR(0, 405, __pyx_L3_error)
5550  }
5551  }
5552  if (unlikely(kw_args > 0)) {
5553  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "buildBDM2rhs") < 0)) __PYX_ERR(0, 405, __pyx_L3_error)
5554  }
5555  } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
5556  goto __pyx_L5_argtuple_error;
5557  } else {
5558  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5559  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5560  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5561  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5562  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5563  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5564  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5565  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5566  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5567  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
5568  }
5569  __pyx_v_BDMmat_element = ((PyArrayObject *)values[0]);
5570  __pyx_v_BDMmatPivots_element = ((PyArrayObject *)values[1]);
5571  __pyx_v_w_dS_f = ((PyArrayObject *)values[2]);
5572  __pyx_v_ebq_n = ((PyArrayObject *)values[3]);
5573  __pyx_v_w_interior_gradients = ((PyArrayObject *)values[4]);
5574  __pyx_v_w_interior_divfree = ((PyArrayObject *)values[5]);
5575  __pyx_v_ebq_velocity = ((PyArrayObject *)values[6]);
5576  __pyx_v_q_velocity = ((PyArrayObject *)values[7]);
5577  __pyx_v_q_vdofs = ((PyArrayObject *)values[8]);
5578  __pyx_v_edgeFlags = ((PyArrayObject *)values[9]);
5579  }
5580  goto __pyx_L4_argument_unpacking_done;
5581  __pyx_L5_argtuple_error:;
5582  __Pyx_RaiseArgtupleInvalid("buildBDM2rhs", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 405, __pyx_L3_error)
5583  __pyx_L3_error:;
5584  __Pyx_AddTraceback("cpostprocessing.buildBDM2rhs", __pyx_clineno, __pyx_lineno, __pyx_filename);
5585  __Pyx_RefNannyFinishContext();
5586  return NULL;
5587  __pyx_L4_argument_unpacking_done:;
5588  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 405, __pyx_L1_error)
5589  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmatPivots_element), __pyx_ptype_5numpy_ndarray, 1, "BDMmatPivots_element", 0))) __PYX_ERR(0, 406, __pyx_L1_error)
5590  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dS_f), __pyx_ptype_5numpy_ndarray, 1, "w_dS_f", 0))) __PYX_ERR(0, 407, __pyx_L1_error)
5591  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_n), __pyx_ptype_5numpy_ndarray, 1, "ebq_n", 0))) __PYX_ERR(0, 408, __pyx_L1_error)
5592  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_interior_gradients), __pyx_ptype_5numpy_ndarray, 1, "w_interior_gradients", 0))) __PYX_ERR(0, 409, __pyx_L1_error)
5593  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_interior_divfree), __pyx_ptype_5numpy_ndarray, 1, "w_interior_divfree", 0))) __PYX_ERR(0, 410, __pyx_L1_error)
5594  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_velocity), __pyx_ptype_5numpy_ndarray, 1, "ebq_velocity", 0))) __PYX_ERR(0, 411, __pyx_L1_error)
5595  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_velocity), __pyx_ptype_5numpy_ndarray, 1, "q_velocity", 0))) __PYX_ERR(0, 412, __pyx_L1_error)
5596  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_vdofs), __pyx_ptype_5numpy_ndarray, 1, "q_vdofs", 0))) __PYX_ERR(0, 413, __pyx_L1_error)
5597  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_edgeFlags), __pyx_ptype_5numpy_ndarray, 1, "edgeFlags", 0))) __PYX_ERR(0, 414, __pyx_L1_error)
5598  __pyx_r = __pyx_pf_15cpostprocessing_32buildBDM2rhs(__pyx_self, __pyx_v_BDMmat_element, __pyx_v_BDMmatPivots_element, __pyx_v_w_dS_f, __pyx_v_ebq_n, __pyx_v_w_interior_gradients, __pyx_v_w_interior_divfree, __pyx_v_ebq_velocity, __pyx_v_q_velocity, __pyx_v_q_vdofs, __pyx_v_edgeFlags);
5599 
5600  /* function exit code */
5601  goto __pyx_L0;
5602  __pyx_L1_error:;
5603  __pyx_r = NULL;
5604  __pyx_L0:;
5605  __Pyx_RefNannyFinishContext();
5606  return __pyx_r;
5607 }
5608 
5609 static PyObject *__pyx_pf_15cpostprocessing_32buildBDM2rhs(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_w_interior_gradients, PyArrayObject *__pyx_v_w_interior_divfree, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_q_velocity, PyArrayObject *__pyx_v_q_vdofs, PyArrayObject *__pyx_v_edgeFlags) {
5610  PyObject *__pyx_r = NULL;
5611  __Pyx_RefNannyDeclarations
5612  __Pyx_RefNannySetupContext("buildBDM2rhs", 0);
5613 
5614  /* "cpostprocessing.pyx":415
5615  * np.ndarray q_vdofs,
5616  * np.ndarray edgeFlags):
5617  * pp.buildBDM2rhs(ebq_n.shape[0], # <<<<<<<<<<<<<<
5618  * ebq_n.shape[1],
5619  * ebq_n.shape[2],
5620  */
5621  buildBDM2rhs((__pyx_v_ebq_n->dimensions[0]), (__pyx_v_ebq_n->dimensions[1]), (__pyx_v_ebq_n->dimensions[2]), (__pyx_v_q_velocity->dimensions[1]), (__pyx_v_ebq_n->dimensions[3]), (__pyx_v_w_dS_f->dimensions[3]), (__pyx_v_BDMmat_element->dimensions[1]), (__pyx_v_w_interior_gradients->dimensions[2]), ((double *)__pyx_v_BDMmat_element->data), ((int *)__pyx_v_BDMmatPivots_element->data), ((int *)__pyx_v_edgeFlags->data), ((double *)__pyx_v_w_dS_f->data), ((double *)__pyx_v_ebq_n->data), ((double *)__pyx_v_w_interior_gradients->data), ((double *)__pyx_v_w_interior_divfree->data), ((double *)__pyx_v_ebq_velocity->data), ((double *)__pyx_v_q_velocity->data), ((double *)__pyx_v_q_vdofs->data));
5622 
5623  /* "cpostprocessing.pyx":405
5624  * <double*>(q_vdofs.data))
5625  *
5626  * def buildBDM2rhs(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
5627  * np.ndarray BDMmatPivots_element,
5628  * np.ndarray w_dS_f,
5629  */
5630 
5631  /* function exit code */
5632  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5633  __Pyx_XGIVEREF(__pyx_r);
5634  __Pyx_RefNannyFinishContext();
5635  return __pyx_r;
5636 }
5637 
5638 /* "cpostprocessing.pyx":434
5639  * <double*>(q_vdofs.data))
5640  *
5641  * def solveLocalBDM1projectionFromFlux(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
5642  * np.ndarray BDMmatPivots_element,
5643  * np.ndarray elementBoundaryElementsArray,
5644  */
5645 
5646 /* Python wrapper */
5647 static PyObject *__pyx_pw_15cpostprocessing_35solveLocalBDM1projectionFromFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5648 static PyMethodDef __pyx_mdef_15cpostprocessing_35solveLocalBDM1projectionFromFlux = {"solveLocalBDM1projectionFromFlux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_35solveLocalBDM1projectionFromFlux, METH_VARARGS|METH_KEYWORDS, 0};
5649 static PyObject *__pyx_pw_15cpostprocessing_35solveLocalBDM1projectionFromFlux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5650  PyArrayObject *__pyx_v_BDMmat_element = 0;
5651  PyArrayObject *__pyx_v_BDMmatPivots_element = 0;
5652  PyArrayObject *__pyx_v_elementBoundaryElementsArray = 0;
5653  PyArrayObject *__pyx_v_elementBoundariesArray = 0;
5654  PyArrayObject *__pyx_v_w_dS_f = 0;
5655  PyArrayObject *__pyx_v_ebq_global_flux = 0;
5656  PyArrayObject *__pyx_v_q_vdofs = 0;
5657  int __pyx_lineno = 0;
5658  const char *__pyx_filename = NULL;
5659  int __pyx_clineno = 0;
5660  PyObject *__pyx_r = 0;
5661  __Pyx_RefNannyDeclarations
5662  __Pyx_RefNannySetupContext("solveLocalBDM1projectionFromFlux (wrapper)", 0);
5663  {
5664  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_BDMmat_element,&__pyx_n_s_BDMmatPivots_element,&__pyx_n_s_elementBoundaryElementsArray,&__pyx_n_s_elementBoundariesArray,&__pyx_n_s_w_dS_f,&__pyx_n_s_ebq_global_flux,&__pyx_n_s_q_vdofs,0};
5665  PyObject* values[7] = {0,0,0,0,0,0,0};
5666  if (unlikely(__pyx_kwds)) {
5667  Py_ssize_t kw_args;
5668  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5669  switch (pos_args) {
5670  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5671  CYTHON_FALLTHROUGH;
5672  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5673  CYTHON_FALLTHROUGH;
5674  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5675  CYTHON_FALLTHROUGH;
5676  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5677  CYTHON_FALLTHROUGH;
5678  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5679  CYTHON_FALLTHROUGH;
5680  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5681  CYTHON_FALLTHROUGH;
5682  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5683  CYTHON_FALLTHROUGH;
5684  case 0: break;
5685  default: goto __pyx_L5_argtuple_error;
5686  }
5687  kw_args = PyDict_Size(__pyx_kwds);
5688  switch (pos_args) {
5689  case 0:
5690  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_BDMmat_element)) != 0)) kw_args--;
5691  else goto __pyx_L5_argtuple_error;
5692  CYTHON_FALLTHROUGH;
5693  case 1:
5694  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_BDMmatPivots_element)) != 0)) kw_args--;
5695  else {
5696  __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projectionFromFlux", 1, 7, 7, 1); __PYX_ERR(0, 434, __pyx_L3_error)
5697  }
5698  CYTHON_FALLTHROUGH;
5699  case 2:
5700  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElementsArray)) != 0)) kw_args--;
5701  else {
5702  __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projectionFromFlux", 1, 7, 7, 2); __PYX_ERR(0, 434, __pyx_L3_error)
5703  }
5704  CYTHON_FALLTHROUGH;
5705  case 3:
5706  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundariesArray)) != 0)) kw_args--;
5707  else {
5708  __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projectionFromFlux", 1, 7, 7, 3); __PYX_ERR(0, 434, __pyx_L3_error)
5709  }
5710  CYTHON_FALLTHROUGH;
5711  case 4:
5712  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_dS_f)) != 0)) kw_args--;
5713  else {
5714  __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projectionFromFlux", 1, 7, 7, 4); __PYX_ERR(0, 434, __pyx_L3_error)
5715  }
5716  CYTHON_FALLTHROUGH;
5717  case 5:
5718  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ebq_global_flux)) != 0)) kw_args--;
5719  else {
5720  __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projectionFromFlux", 1, 7, 7, 5); __PYX_ERR(0, 434, __pyx_L3_error)
5721  }
5722  CYTHON_FALLTHROUGH;
5723  case 6:
5724  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_q_vdofs)) != 0)) kw_args--;
5725  else {
5726  __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projectionFromFlux", 1, 7, 7, 6); __PYX_ERR(0, 434, __pyx_L3_error)
5727  }
5728  }
5729  if (unlikely(kw_args > 0)) {
5730  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "solveLocalBDM1projectionFromFlux") < 0)) __PYX_ERR(0, 434, __pyx_L3_error)
5731  }
5732  } else if (PyTuple_GET_SIZE(__pyx_args) != 7) {
5733  goto __pyx_L5_argtuple_error;
5734  } else {
5735  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5736  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5737  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5738  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5739  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5740  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5741  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5742  }
5743  __pyx_v_BDMmat_element = ((PyArrayObject *)values[0]);
5744  __pyx_v_BDMmatPivots_element = ((PyArrayObject *)values[1]);
5745  __pyx_v_elementBoundaryElementsArray = ((PyArrayObject *)values[2]);
5746  __pyx_v_elementBoundariesArray = ((PyArrayObject *)values[3]);
5747  __pyx_v_w_dS_f = ((PyArrayObject *)values[4]);
5748  __pyx_v_ebq_global_flux = ((PyArrayObject *)values[5]);
5749  __pyx_v_q_vdofs = ((PyArrayObject *)values[6]);
5750  }
5751  goto __pyx_L4_argument_unpacking_done;
5752  __pyx_L5_argtuple_error:;
5753  __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projectionFromFlux", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 434, __pyx_L3_error)
5754  __pyx_L3_error:;
5755  __Pyx_AddTraceback("cpostprocessing.solveLocalBDM1projectionFromFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
5756  __Pyx_RefNannyFinishContext();
5757  return NULL;
5758  __pyx_L4_argument_unpacking_done:;
5759  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 434, __pyx_L1_error)
5760  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmatPivots_element), __pyx_ptype_5numpy_ndarray, 1, "BDMmatPivots_element", 0))) __PYX_ERR(0, 435, __pyx_L1_error)
5761  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElementsArray), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElementsArray", 0))) __PYX_ERR(0, 436, __pyx_L1_error)
5762  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundariesArray), __pyx_ptype_5numpy_ndarray, 1, "elementBoundariesArray", 0))) __PYX_ERR(0, 437, __pyx_L1_error)
5763  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dS_f), __pyx_ptype_5numpy_ndarray, 1, "w_dS_f", 0))) __PYX_ERR(0, 438, __pyx_L1_error)
5764  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_global_flux), __pyx_ptype_5numpy_ndarray, 1, "ebq_global_flux", 0))) __PYX_ERR(0, 439, __pyx_L1_error)
5765  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_vdofs), __pyx_ptype_5numpy_ndarray, 1, "q_vdofs", 0))) __PYX_ERR(0, 440, __pyx_L1_error)
5766  __pyx_r = __pyx_pf_15cpostprocessing_34solveLocalBDM1projectionFromFlux(__pyx_self, __pyx_v_BDMmat_element, __pyx_v_BDMmatPivots_element, __pyx_v_elementBoundaryElementsArray, __pyx_v_elementBoundariesArray, __pyx_v_w_dS_f, __pyx_v_ebq_global_flux, __pyx_v_q_vdofs);
5767 
5768  /* function exit code */
5769  goto __pyx_L0;
5770  __pyx_L1_error:;
5771  __pyx_r = NULL;
5772  __pyx_L0:;
5773  __Pyx_RefNannyFinishContext();
5774  return __pyx_r;
5775 }
5776 
5777 static PyObject *__pyx_pf_15cpostprocessing_34solveLocalBDM1projectionFromFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundariesArray, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_global_flux, PyArrayObject *__pyx_v_q_vdofs) {
5778  PyObject *__pyx_r = NULL;
5779  __Pyx_RefNannyDeclarations
5780  __Pyx_RefNannySetupContext("solveLocalBDM1projectionFromFlux", 0);
5781 
5782  /* "cpostprocessing.pyx":441
5783  * np.ndarray ebq_global_flux,
5784  * np.ndarray q_vdofs):
5785  * pp.solveLocalBDM1projectionFromFlux(w_dS_f.shape[0], # <<<<<<<<<<<<<<
5786  * w_dS_f.shape[1],
5787  * w_dS_f.shape[2],
5788  */
5789  solveLocalBDM1projectionFromFlux((__pyx_v_w_dS_f->dimensions[0]), (__pyx_v_w_dS_f->dimensions[1]), (__pyx_v_w_dS_f->dimensions[2]), (__pyx_v_w_dS_f->dimensions[3]), (__pyx_v_BDMmat_element->dimensions[1]), ((double *)__pyx_v_BDMmat_element->data), ((int *)__pyx_v_BDMmatPivots_element->data), ((int *)__pyx_v_elementBoundaryElementsArray->data), ((int *)__pyx_v_elementBoundariesArray->data), ((double *)__pyx_v_w_dS_f->data), ((double *)__pyx_v_ebq_global_flux->data), ((double *)__pyx_v_q_vdofs->data));
5790 
5791  /* "cpostprocessing.pyx":434
5792  * <double*>(q_vdofs.data))
5793  *
5794  * def solveLocalBDM1projectionFromFlux(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
5795  * np.ndarray BDMmatPivots_element,
5796  * np.ndarray elementBoundaryElementsArray,
5797  */
5798 
5799  /* function exit code */
5800  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5801  __Pyx_XGIVEREF(__pyx_r);
5802  __Pyx_RefNannyFinishContext();
5803  return __pyx_r;
5804 }
5805 
5806 /* "cpostprocessing.pyx":454
5807  * <double*>(q_vdofs.data))
5808  *
5809  * def getElementBDM1velocityValuesLagrangeRep(np.ndarray q_v, # <<<<<<<<<<<<<<
5810  * np.ndarray p1_vdofs,
5811  * np.ndarray q_velocity):
5812  */
5813 
5814 /* Python wrapper */
5815 static PyObject *__pyx_pw_15cpostprocessing_37getElementBDM1velocityValuesLagrangeRep(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5816 static PyMethodDef __pyx_mdef_15cpostprocessing_37getElementBDM1velocityValuesLagrangeRep = {"getElementBDM1velocityValuesLagrangeRep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_37getElementBDM1velocityValuesLagrangeRep, METH_VARARGS|METH_KEYWORDS, 0};
5817 static PyObject *__pyx_pw_15cpostprocessing_37getElementBDM1velocityValuesLagrangeRep(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5818  PyArrayObject *__pyx_v_q_v = 0;
5819  PyArrayObject *__pyx_v_p1_vdofs = 0;
5820  PyArrayObject *__pyx_v_q_velocity = 0;
5821  int __pyx_lineno = 0;
5822  const char *__pyx_filename = NULL;
5823  int __pyx_clineno = 0;
5824  PyObject *__pyx_r = 0;
5825  __Pyx_RefNannyDeclarations
5826  __Pyx_RefNannySetupContext("getElementBDM1velocityValuesLagrangeRep (wrapper)", 0);
5827  {
5828  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_q_v,&__pyx_n_s_p1_vdofs,&__pyx_n_s_q_velocity,0};
5829  PyObject* values[3] = {0,0,0};
5830  if (unlikely(__pyx_kwds)) {
5831  Py_ssize_t kw_args;
5832  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5833  switch (pos_args) {
5834  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5835  CYTHON_FALLTHROUGH;
5836  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5837  CYTHON_FALLTHROUGH;
5838  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5839  CYTHON_FALLTHROUGH;
5840  case 0: break;
5841  default: goto __pyx_L5_argtuple_error;
5842  }
5843  kw_args = PyDict_Size(__pyx_kwds);
5844  switch (pos_args) {
5845  case 0:
5846  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_q_v)) != 0)) kw_args--;
5847  else goto __pyx_L5_argtuple_error;
5848  CYTHON_FALLTHROUGH;
5849  case 1:
5850  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p1_vdofs)) != 0)) kw_args--;
5851  else {
5852  __Pyx_RaiseArgtupleInvalid("getElementBDM1velocityValuesLagrangeRep", 1, 3, 3, 1); __PYX_ERR(0, 454, __pyx_L3_error)
5853  }
5854  CYTHON_FALLTHROUGH;
5855  case 2:
5856  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_q_velocity)) != 0)) kw_args--;
5857  else {
5858  __Pyx_RaiseArgtupleInvalid("getElementBDM1velocityValuesLagrangeRep", 1, 3, 3, 2); __PYX_ERR(0, 454, __pyx_L3_error)
5859  }
5860  }
5861  if (unlikely(kw_args > 0)) {
5862  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getElementBDM1velocityValuesLagrangeRep") < 0)) __PYX_ERR(0, 454, __pyx_L3_error)
5863  }
5864  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
5865  goto __pyx_L5_argtuple_error;
5866  } else {
5867  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5868  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5869  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5870  }
5871  __pyx_v_q_v = ((PyArrayObject *)values[0]);
5872  __pyx_v_p1_vdofs = ((PyArrayObject *)values[1]);
5873  __pyx_v_q_velocity = ((PyArrayObject *)values[2]);
5874  }
5875  goto __pyx_L4_argument_unpacking_done;
5876  __pyx_L5_argtuple_error:;
5877  __Pyx_RaiseArgtupleInvalid("getElementBDM1velocityValuesLagrangeRep", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 454, __pyx_L3_error)
5878  __pyx_L3_error:;
5879  __Pyx_AddTraceback("cpostprocessing.getElementBDM1velocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
5880  __Pyx_RefNannyFinishContext();
5881  return NULL;
5882  __pyx_L4_argument_unpacking_done:;
5883  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_v), __pyx_ptype_5numpy_ndarray, 1, "q_v", 0))) __PYX_ERR(0, 454, __pyx_L1_error)
5884  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p1_vdofs), __pyx_ptype_5numpy_ndarray, 1, "p1_vdofs", 0))) __PYX_ERR(0, 455, __pyx_L1_error)
5885  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_velocity), __pyx_ptype_5numpy_ndarray, 1, "q_velocity", 0))) __PYX_ERR(0, 456, __pyx_L1_error)
5886  __pyx_r = __pyx_pf_15cpostprocessing_36getElementBDM1velocityValuesLagrangeRep(__pyx_self, __pyx_v_q_v, __pyx_v_p1_vdofs, __pyx_v_q_velocity);
5887 
5888  /* function exit code */
5889  goto __pyx_L0;
5890  __pyx_L1_error:;
5891  __pyx_r = NULL;
5892  __pyx_L0:;
5893  __Pyx_RefNannyFinishContext();
5894  return __pyx_r;
5895 }
5896 
5897 static PyObject *__pyx_pf_15cpostprocessing_36getElementBDM1velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_q_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_q_velocity) {
5898  int __pyx_v_nVDOFs_element;
5899  PyObject *__pyx_r = NULL;
5900  __Pyx_RefNannyDeclarations
5901  int __pyx_t_1;
5902  int __pyx_lineno = 0;
5903  const char *__pyx_filename = NULL;
5904  int __pyx_clineno = 0;
5905  __Pyx_RefNannySetupContext("getElementBDM1velocityValuesLagrangeRep", 0);
5906 
5907  /* "cpostprocessing.pyx":457
5908  * np.ndarray p1_vdofs,
5909  * np.ndarray q_velocity):
5910  * cdef int nVDOFs_element = q_velocity.shape[2]*(q_velocity.shape[2]+1) # <<<<<<<<<<<<<<
5911  *
5912  * if p1_vdofs.ndim > 1:
5913  */
5914  __pyx_v_nVDOFs_element = ((__pyx_v_q_velocity->dimensions[2]) * ((__pyx_v_q_velocity->dimensions[2]) + 1));
5915 
5916  /* "cpostprocessing.pyx":459
5917  * cdef int nVDOFs_element = q_velocity.shape[2]*(q_velocity.shape[2]+1)
5918  *
5919  * if p1_vdofs.ndim > 1: # <<<<<<<<<<<<<<
5920  * assert nVDOFs_element == p1_vdofs.shape[1]
5921  * pp.getElementBDM1velocityValuesLagrangeRep(q_velocity.shape[0],
5922  */
5923  __pyx_t_1 = ((__pyx_v_p1_vdofs->nd > 1) != 0);
5924  if (__pyx_t_1) {
5925 
5926  /* "cpostprocessing.pyx":460
5927  *
5928  * if p1_vdofs.ndim > 1:
5929  * assert nVDOFs_element == p1_vdofs.shape[1] # <<<<<<<<<<<<<<
5930  * pp.getElementBDM1velocityValuesLagrangeRep(q_velocity.shape[0],
5931  * q_velocity.shape[1],
5932  */
5933  #ifndef CYTHON_WITHOUT_ASSERTIONS
5934  if (unlikely(!Py_OptimizeFlag)) {
5935  if (unlikely(!((__pyx_v_nVDOFs_element == (__pyx_v_p1_vdofs->dimensions[1])) != 0))) {
5936  PyErr_SetNone(PyExc_AssertionError);
5937  __PYX_ERR(0, 460, __pyx_L1_error)
5938  }
5939  }
5940  #endif
5941 
5942  /* "cpostprocessing.pyx":459
5943  * cdef int nVDOFs_element = q_velocity.shape[2]*(q_velocity.shape[2]+1)
5944  *
5945  * if p1_vdofs.ndim > 1: # <<<<<<<<<<<<<<
5946  * assert nVDOFs_element == p1_vdofs.shape[1]
5947  * pp.getElementBDM1velocityValuesLagrangeRep(q_velocity.shape[0],
5948  */
5949  }
5950 
5951  /* "cpostprocessing.pyx":461
5952  * if p1_vdofs.ndim > 1:
5953  * assert nVDOFs_element == p1_vdofs.shape[1]
5954  * pp.getElementBDM1velocityValuesLagrangeRep(q_velocity.shape[0], # <<<<<<<<<<<<<<
5955  * q_velocity.shape[1],
5956  * q_velocity.shape[2],
5957  */
5958  getElementBDM1velocityValuesLagrangeRep((__pyx_v_q_velocity->dimensions[0]), (__pyx_v_q_velocity->dimensions[1]), (__pyx_v_q_velocity->dimensions[2]), (__pyx_v_q_v->dimensions[2]), __pyx_v_nVDOFs_element, ((double *)__pyx_v_q_v->data), ((double *)__pyx_v_p1_vdofs->data), ((double *)__pyx_v_q_velocity->data));
5959 
5960  /* "cpostprocessing.pyx":454
5961  * <double*>(q_vdofs.data))
5962  *
5963  * def getElementBDM1velocityValuesLagrangeRep(np.ndarray q_v, # <<<<<<<<<<<<<<
5964  * np.ndarray p1_vdofs,
5965  * np.ndarray q_velocity):
5966  */
5967 
5968  /* function exit code */
5969  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5970  goto __pyx_L0;
5971  __pyx_L1_error:;
5972  __Pyx_AddTraceback("cpostprocessing.getElementBDM1velocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
5973  __pyx_r = NULL;
5974  __pyx_L0:;
5975  __Pyx_XGIVEREF(__pyx_r);
5976  __Pyx_RefNannyFinishContext();
5977  return __pyx_r;
5978 }
5979 
5980 /* "cpostprocessing.pyx":470
5981  * <double*>(q_velocity.data))
5982  *
5983  * def getElementBDM2velocityValuesLagrangeRep(np.ndarray q_v, # <<<<<<<<<<<<<<
5984  * np.ndarray p1_vdofs,
5985  * np.ndarray q_velocity):
5986  */
5987 
5988 /* Python wrapper */
5989 static PyObject *__pyx_pw_15cpostprocessing_39getElementBDM2velocityValuesLagrangeRep(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5990 static PyMethodDef __pyx_mdef_15cpostprocessing_39getElementBDM2velocityValuesLagrangeRep = {"getElementBDM2velocityValuesLagrangeRep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15cpostprocessing_39getElementBDM2velocityValuesLagrangeRep, METH_VARARGS|METH_KEYWORDS, 0};
5991 static PyObject *__pyx_pw_15cpostprocessing_39getElementBDM2velocityValuesLagrangeRep(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5992  PyArrayObject *__pyx_v_q_v = 0;
5993  PyArrayObject *__pyx_v_p1_vdofs = 0;
5994  PyArrayObject *__pyx_v_q_velocity = 0;
5995  int __pyx_lineno = 0;
5996  const char *__pyx_filename = NULL;
5997  int __pyx_clineno = 0;
5998  PyObject *__pyx_r = 0;
5999  __Pyx_RefNannyDeclarations
6000  __Pyx_RefNannySetupContext("getElementBDM2velocityValuesLagrangeRep (wrapper)", 0);
6001  {
6002  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_q_v,&__pyx_n_s_p1_vdofs,&__pyx_n_s_q_velocity,0};
6003  PyObject* values[3] = {0,0,0};
6004  if (unlikely(__pyx_kwds)) {
6005  Py_ssize_t kw_args;
6006  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
6007  switch (pos_args) {
6008  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6009  CYTHON_FALLTHROUGH;
6010  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6011  CYTHON_FALLTHROUGH;
6012  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6013  CYTHON_FALLTHROUGH;
6014  case 0: break;
6015  default: goto __pyx_L5_argtuple_error;
6016  }
6017  kw_args = PyDict_Size(__pyx_kwds);
6018  switch (pos_args) {
6019  case 0:
6020  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_q_v)) != 0)) kw_args--;
6021  else goto __pyx_L5_argtuple_error;
6022  CYTHON_FALLTHROUGH;
6023  case 1:
6024  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p1_vdofs)) != 0)) kw_args--;
6025  else {
6026  __Pyx_RaiseArgtupleInvalid("getElementBDM2velocityValuesLagrangeRep", 1, 3, 3, 1); __PYX_ERR(0, 470, __pyx_L3_error)
6027  }
6028  CYTHON_FALLTHROUGH;
6029  case 2:
6030  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_q_velocity)) != 0)) kw_args--;
6031  else {
6032  __Pyx_RaiseArgtupleInvalid("getElementBDM2velocityValuesLagrangeRep", 1, 3, 3, 2); __PYX_ERR(0, 470, __pyx_L3_error)
6033  }
6034  }
6035  if (unlikely(kw_args > 0)) {
6036  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getElementBDM2velocityValuesLagrangeRep") < 0)) __PYX_ERR(0, 470, __pyx_L3_error)
6037  }
6038  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
6039  goto __pyx_L5_argtuple_error;
6040  } else {
6041  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6042  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6043  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6044  }
6045  __pyx_v_q_v = ((PyArrayObject *)values[0]);
6046  __pyx_v_p1_vdofs = ((PyArrayObject *)values[1]);
6047  __pyx_v_q_velocity = ((PyArrayObject *)values[2]);
6048  }
6049  goto __pyx_L4_argument_unpacking_done;
6050  __pyx_L5_argtuple_error:;
6051  __Pyx_RaiseArgtupleInvalid("getElementBDM2velocityValuesLagrangeRep", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 470, __pyx_L3_error)
6052  __pyx_L3_error:;
6053  __Pyx_AddTraceback("cpostprocessing.getElementBDM2velocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
6054  __Pyx_RefNannyFinishContext();
6055  return NULL;
6056  __pyx_L4_argument_unpacking_done:;
6057  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_v), __pyx_ptype_5numpy_ndarray, 1, "q_v", 0))) __PYX_ERR(0, 470, __pyx_L1_error)
6058  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p1_vdofs), __pyx_ptype_5numpy_ndarray, 1, "p1_vdofs", 0))) __PYX_ERR(0, 471, __pyx_L1_error)
6059  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_velocity), __pyx_ptype_5numpy_ndarray, 1, "q_velocity", 0))) __PYX_ERR(0, 472, __pyx_L1_error)
6060  __pyx_r = __pyx_pf_15cpostprocessing_38getElementBDM2velocityValuesLagrangeRep(__pyx_self, __pyx_v_q_v, __pyx_v_p1_vdofs, __pyx_v_q_velocity);
6061 
6062  /* function exit code */
6063  goto __pyx_L0;
6064  __pyx_L1_error:;
6065  __pyx_r = NULL;
6066  __pyx_L0:;
6067  __Pyx_RefNannyFinishContext();
6068  return __pyx_r;
6069 }
6070 
6071 static PyObject *__pyx_pf_15cpostprocessing_38getElementBDM2velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_q_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_q_velocity) {
6072  long __pyx_v_nVDOFs_element;
6073  PyObject *__pyx_r = NULL;
6074  __Pyx_RefNannyDeclarations
6075  int __pyx_t_1;
6076  int __pyx_lineno = 0;
6077  const char *__pyx_filename = NULL;
6078  int __pyx_clineno = 0;
6079  __Pyx_RefNannySetupContext("getElementBDM2velocityValuesLagrangeRep", 0);
6080 
6081  /