proteus  1.8.1
C/C++/Fortran libraries
cfemIntegrals.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__cfemIntegrals
694 #define __PYX_HAVE_API__cfemIntegrals
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 "femIntegrals.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/cfemIntegrals.pyx",
939  "__init__.pxd",
940  "type.pxd",
941 };
942 
943 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":690
944  * # in Cython to enable them only on the right systems.
945  *
946  * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<<
947  * ctypedef npy_int16 int16_t
948  * ctypedef npy_int32 int32_t
949  */
950 typedef npy_int8 __pyx_t_5numpy_int8_t;
951 
952 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":691
953  *
954  * ctypedef npy_int8 int8_t
955  * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<<
956  * ctypedef npy_int32 int32_t
957  * ctypedef npy_int64 int64_t
958  */
959 typedef npy_int16 __pyx_t_5numpy_int16_t;
960 
961 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":692
962  * ctypedef npy_int8 int8_t
963  * ctypedef npy_int16 int16_t
964  * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<<
965  * ctypedef npy_int64 int64_t
966  * #ctypedef npy_int96 int96_t
967  */
968 typedef npy_int32 __pyx_t_5numpy_int32_t;
969 
970 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":693
971  * ctypedef npy_int16 int16_t
972  * ctypedef npy_int32 int32_t
973  * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<<
974  * #ctypedef npy_int96 int96_t
975  * #ctypedef npy_int128 int128_t
976  */
977 typedef npy_int64 __pyx_t_5numpy_int64_t;
978 
979 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":697
980  * #ctypedef npy_int128 int128_t
981  *
982  * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<<
983  * ctypedef npy_uint16 uint16_t
984  * ctypedef npy_uint32 uint32_t
985  */
986 typedef npy_uint8 __pyx_t_5numpy_uint8_t;
987 
988 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":698
989  *
990  * ctypedef npy_uint8 uint8_t
991  * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<<
992  * ctypedef npy_uint32 uint32_t
993  * ctypedef npy_uint64 uint64_t
994  */
995 typedef npy_uint16 __pyx_t_5numpy_uint16_t;
996 
997 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":699
998  * ctypedef npy_uint8 uint8_t
999  * ctypedef npy_uint16 uint16_t
1000  * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<<
1001  * ctypedef npy_uint64 uint64_t
1002  * #ctypedef npy_uint96 uint96_t
1003  */
1004 typedef npy_uint32 __pyx_t_5numpy_uint32_t;
1005 
1006 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":700
1007  * ctypedef npy_uint16 uint16_t
1008  * ctypedef npy_uint32 uint32_t
1009  * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<<
1010  * #ctypedef npy_uint96 uint96_t
1011  * #ctypedef npy_uint128 uint128_t
1012  */
1013 typedef npy_uint64 __pyx_t_5numpy_uint64_t;
1014 
1015 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":704
1016  * #ctypedef npy_uint128 uint128_t
1017  *
1018  * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<<
1019  * ctypedef npy_float64 float64_t
1020  * #ctypedef npy_float80 float80_t
1021  */
1022 typedef npy_float32 __pyx_t_5numpy_float32_t;
1023 
1024 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":705
1025  *
1026  * ctypedef npy_float32 float32_t
1027  * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<<
1028  * #ctypedef npy_float80 float80_t
1029  * #ctypedef npy_float128 float128_t
1030  */
1031 typedef npy_float64 __pyx_t_5numpy_float64_t;
1032 
1033 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":714
1034  * # The int types are mapped a bit surprising --
1035  * # numpy.int corresponds to 'l' and numpy.long to 'q'
1036  * ctypedef npy_long int_t # <<<<<<<<<<<<<<
1037  * ctypedef npy_longlong long_t
1038  * ctypedef npy_longlong longlong_t
1039  */
1040 typedef npy_long __pyx_t_5numpy_int_t;
1041 
1042 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":715
1043  * # numpy.int corresponds to 'l' and numpy.long to 'q'
1044  * ctypedef npy_long int_t
1045  * ctypedef npy_longlong long_t # <<<<<<<<<<<<<<
1046  * ctypedef npy_longlong longlong_t
1047  *
1048  */
1049 typedef npy_longlong __pyx_t_5numpy_long_t;
1050 
1051 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":716
1052  * ctypedef npy_long int_t
1053  * ctypedef npy_longlong long_t
1054  * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<<
1055  *
1056  * ctypedef npy_ulong uint_t
1057  */
1058 typedef npy_longlong __pyx_t_5numpy_longlong_t;
1059 
1060 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":718
1061  * ctypedef npy_longlong longlong_t
1062  *
1063  * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<<
1064  * ctypedef npy_ulonglong ulong_t
1065  * ctypedef npy_ulonglong ulonglong_t
1066  */
1067 typedef npy_ulong __pyx_t_5numpy_uint_t;
1068 
1069 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":719
1070  *
1071  * ctypedef npy_ulong uint_t
1072  * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<<
1073  * ctypedef npy_ulonglong ulonglong_t
1074  *
1075  */
1076 typedef npy_ulonglong __pyx_t_5numpy_ulong_t;
1077 
1078 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":720
1079  * ctypedef npy_ulong uint_t
1080  * ctypedef npy_ulonglong ulong_t
1081  * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<<
1082  *
1083  * ctypedef npy_intp intp_t
1084  */
1085 typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
1086 
1087 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":722
1088  * ctypedef npy_ulonglong ulonglong_t
1089  *
1090  * ctypedef npy_intp intp_t # <<<<<<<<<<<<<<
1091  * ctypedef npy_uintp uintp_t
1092  *
1093  */
1094 typedef npy_intp __pyx_t_5numpy_intp_t;
1095 
1096 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":723
1097  *
1098  * ctypedef npy_intp intp_t
1099  * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<<
1100  *
1101  * ctypedef npy_double float_t
1102  */
1103 typedef npy_uintp __pyx_t_5numpy_uintp_t;
1104 
1105 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":725
1106  * ctypedef npy_uintp uintp_t
1107  *
1108  * ctypedef npy_double float_t # <<<<<<<<<<<<<<
1109  * ctypedef npy_double double_t
1110  * ctypedef npy_longdouble longdouble_t
1111  */
1112 typedef npy_double __pyx_t_5numpy_float_t;
1113 
1114 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":726
1115  *
1116  * ctypedef npy_double float_t
1117  * ctypedef npy_double double_t # <<<<<<<<<<<<<<
1118  * ctypedef npy_longdouble longdouble_t
1119  *
1120  */
1121 typedef npy_double __pyx_t_5numpy_double_t;
1122 
1123 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":727
1124  * ctypedef npy_double float_t
1125  * ctypedef npy_double double_t
1126  * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<<
1127  *
1128  * ctypedef npy_cfloat cfloat_t
1129  */
1130 typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
1131 /* Declarations.proto */
1132 #if CYTHON_CCOMPLEX
1133  #ifdef __cplusplus
1134  typedef ::std::complex< float > __pyx_t_float_complex;
1135  #else
1136  typedef float _Complex __pyx_t_float_complex;
1137  #endif
1138 #else
1139  typedef struct { float real, imag; } __pyx_t_float_complex;
1140 #endif
1141 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);
1142 
1143 /* Declarations.proto */
1144 #if CYTHON_CCOMPLEX
1145  #ifdef __cplusplus
1146  typedef ::std::complex< double > __pyx_t_double_complex;
1147  #else
1148  typedef double _Complex __pyx_t_double_complex;
1149  #endif
1150 #else
1151  typedef struct { double real, imag; } __pyx_t_double_complex;
1152 #endif
1153 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);
1154 
1155 
1156 /*--- Type declarations ---*/
1157 
1158 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":729
1159  * ctypedef npy_longdouble longdouble_t
1160  *
1161  * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<<
1162  * ctypedef npy_cdouble cdouble_t
1163  * ctypedef npy_clongdouble clongdouble_t
1164  */
1165 typedef npy_cfloat __pyx_t_5numpy_cfloat_t;
1166 
1167 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":730
1168  *
1169  * ctypedef npy_cfloat cfloat_t
1170  * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<<
1171  * ctypedef npy_clongdouble clongdouble_t
1172  *
1173  */
1174 typedef npy_cdouble __pyx_t_5numpy_cdouble_t;
1175 
1176 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":731
1177  * ctypedef npy_cfloat cfloat_t
1178  * ctypedef npy_cdouble cdouble_t
1179  * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<<
1180  *
1181  * ctypedef npy_cdouble complex_t
1182  */
1183 typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t;
1184 
1185 /* "../miniconda3/envs/proteus-dev-up/lib/python3.10/site-packages/numpy/__init__.pxd":733
1186  * ctypedef npy_clongdouble clongdouble_t
1187  *
1188  * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<<
1189  *
1190  * cdef inline object PyArray_MultiIterNew1(a):
1191  */
1192 typedef npy_cdouble __pyx_t_5numpy_complex_t;
1193 
1194 /* --- Runtime support code (head) --- */
1195 /* Refnanny.proto */
1196 #ifndef CYTHON_REFNANNY
1197  #define CYTHON_REFNANNY 0
1198 #endif
1199 #if CYTHON_REFNANNY
1200  typedef struct {
1201  void (*INCREF)(void*, PyObject*, int);
1202  void (*DECREF)(void*, PyObject*, int);
1203  void (*GOTREF)(void*, PyObject*, int);
1204  void (*GIVEREF)(void*, PyObject*, int);
1205  void* (*SetupContext)(const char*, int, const char*);
1206  void (*FinishContext)(void**);
1207  } __Pyx_RefNannyAPIStruct;
1208  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
1209  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
1210  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
1211 #ifdef WITH_THREAD
1212  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
1213  if (acquire_gil) {\
1214  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
1215  __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
1216  PyGILState_Release(__pyx_gilstate_save);\
1217  } else {\
1218  __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
1219  }
1220 #else
1221  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
1222  __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
1223 #endif
1224  #define __Pyx_RefNannyFinishContext()\
1225  __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
1226  #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1227  #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1228  #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1229  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1230  #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
1231  #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
1232  #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
1233  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
1234 #else
1235  #define __Pyx_RefNannyDeclarations
1236  #define __Pyx_RefNannySetupContext(name, acquire_gil)
1237  #define __Pyx_RefNannyFinishContext()
1238  #define __Pyx_INCREF(r) Py_INCREF(r)
1239  #define __Pyx_DECREF(r) Py_DECREF(r)
1240  #define __Pyx_GOTREF(r)
1241  #define __Pyx_GIVEREF(r)
1242  #define __Pyx_XINCREF(r) Py_XINCREF(r)
1243  #define __Pyx_XDECREF(r) Py_XDECREF(r)
1244  #define __Pyx_XGOTREF(r)
1245  #define __Pyx_XGIVEREF(r)
1246 #endif
1247 #define __Pyx_XDECREF_SET(r, v) do {\
1248  PyObject *tmp = (PyObject *) r;\
1249  r = v; __Pyx_XDECREF(tmp);\
1250  } while (0)
1251 #define __Pyx_DECREF_SET(r, v) do {\
1252  PyObject *tmp = (PyObject *) r;\
1253  r = v; __Pyx_DECREF(tmp);\
1254  } while (0)
1255 #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
1256 #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
1257 
1258 /* PyObjectGetAttrStr.proto */
1259 #if CYTHON_USE_TYPE_SLOTS
1260 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
1261 #else
1262 #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
1263 #endif
1264 
1265 /* GetBuiltinName.proto */
1266 static PyObject *__Pyx_GetBuiltinName(PyObject *name);
1267 
1268 /* RaiseArgTupleInvalid.proto */
1269 static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
1270  Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
1271 
1272 /* RaiseDoubleKeywords.proto */
1273 static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
1274 
1275 /* ParseKeywords.proto */
1276 static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
1277  PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
1278  const char* function_name);
1279 
1280 /* ArgTypeTest.proto */
1281 #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
1282  ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\
1283  __Pyx__ArgTypeTest(obj, type, name, exact))
1284 static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);
1285 
1286 /* PyFunctionFastCall.proto */
1287 #if CYTHON_FAST_PYCALL
1288 #define __Pyx_PyFunction_FastCall(func, args, nargs)\
1289  __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
1290 #if 1 || PY_VERSION_HEX < 0x030600B1
1291 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
1292 #else
1293 #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs)
1294 #endif
1295 #define __Pyx_BUILD_ASSERT_EXPR(cond)\
1296  (sizeof(char [1 - 2*!(cond)]) - 1)
1297 #ifndef Py_MEMBER_SIZE
1298 #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
1299 #endif
1300 #if CYTHON_FAST_PYCALL
1301  static size_t __pyx_pyframe_localsplus_offset = 0;
1302  #include "frameobject.h"
1303 #if PY_VERSION_HEX >= 0x030b00a6
1304  #ifndef Py_BUILD_CORE
1305  #define Py_BUILD_CORE 1
1306  #endif
1307  #include "internal/pycore_frame.h"
1308 #endif
1309  #define __Pxy_PyFrame_Initialize_Offsets()\
1310  ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
1311  (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
1312  #define __Pyx_PyFrame_GetLocalsplus(frame)\
1313  (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
1314 #endif // CYTHON_FAST_PYCALL
1315 #endif
1316 
1317 /* PyObjectCall.proto */
1318 #if CYTHON_COMPILING_IN_CPYTHON
1319 static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
1320 #else
1321 #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
1322 #endif
1323 
1324 /* PyObjectCallMethO.proto */
1325 #if CYTHON_COMPILING_IN_CPYTHON
1326 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
1327 #endif
1328 
1329 /* PyObjectCallNoArg.proto */
1330 #if CYTHON_COMPILING_IN_CPYTHON
1331 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
1332 #else
1333 #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
1334 #endif
1335 
1336 /* PyCFunctionFastCall.proto */
1337 #if CYTHON_FAST_PYCCALL
1338 static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs);
1339 #else
1340 #define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL)
1341 #endif
1342 
1343 /* PyObjectCallOneArg.proto */
1344 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
1345 
1346 /* RaiseTooManyValuesToUnpack.proto */
1347 static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
1348 
1349 /* RaiseNeedMoreValuesToUnpack.proto */
1350 static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
1351 
1352 /* IterFinish.proto */
1353 static CYTHON_INLINE int __Pyx_IterFinish(void);
1354 
1355 /* UnpackItemEndCheck.proto */
1356 static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);
1357 
1358 /* ExtTypeTest.proto */
1359 static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);
1360 
1361 /* GetTopmostException.proto */
1362 #if CYTHON_USE_EXC_INFO_STACK
1363 static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
1364 #endif
1365 
1366 /* PyThreadStateGet.proto */
1367 #if CYTHON_FAST_THREAD_STATE
1368 #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate;
1369 #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current;
1370 #define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type
1371 #else
1372 #define __Pyx_PyThreadState_declare
1373 #define __Pyx_PyThreadState_assign
1374 #define __Pyx_PyErr_Occurred() PyErr_Occurred()
1375 #endif
1376 
1377 /* SaveResetException.proto */
1378 #if CYTHON_FAST_THREAD_STATE
1379 #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
1380 static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1381 #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
1382 static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
1383 #else
1384 #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb)
1385 #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb)
1386 #endif
1387 
1388 /* PyErrExceptionMatches.proto */
1389 #if CYTHON_FAST_THREAD_STATE
1390 #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
1391 static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
1392 #else
1393 #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err)
1394 #endif
1395 
1396 /* GetException.proto */
1397 #if CYTHON_FAST_THREAD_STATE
1398 #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb)
1399 static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1400 #else
1401 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
1402 #endif
1403 
1404 /* PyErrFetchRestore.proto */
1405 #if CYTHON_FAST_THREAD_STATE
1406 #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
1407 #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
1408 #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
1409 #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
1410 #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
1411 static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
1412 static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1413 #if CYTHON_COMPILING_IN_CPYTHON
1414 #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
1415 #else
1416 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
1417 #endif
1418 #else
1419 #define __Pyx_PyErr_Clear() PyErr_Clear()
1420 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
1421 #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb)
1422 #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb)
1423 #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb)
1424 #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb)
1425 #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb)
1426 #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb)
1427 #endif
1428 
1429 /* RaiseException.proto */
1430 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
1431 
1432 /* TypeImport.proto */
1433 #ifndef __PYX_HAVE_RT_ImportType_proto
1434 #define __PYX_HAVE_RT_ImportType_proto
1435 enum __Pyx_ImportType_CheckSize {
1436  __Pyx_ImportType_CheckSize_Error = 0,
1437  __Pyx_ImportType_CheckSize_Warn = 1,
1438  __Pyx_ImportType_CheckSize_Ignore = 2
1439 };
1440 static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size);
1441 #endif
1442 
1443 /* Import.proto */
1444 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);
1445 
1446 /* PyDictVersioning.proto */
1447 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
1448 #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
1449 #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
1450 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
1451  (version_var) = __PYX_GET_DICT_VERSION(dict);\
1452  (cache_var) = (value);
1453 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
1454  static PY_UINT64_T __pyx_dict_version = 0;\
1455  static PyObject *__pyx_dict_cached_value = NULL;\
1456  if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
1457  (VAR) = __pyx_dict_cached_value;\
1458  } else {\
1459  (VAR) = __pyx_dict_cached_value = (LOOKUP);\
1460  __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
1461  }\
1462 }
1463 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
1464 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
1465 static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
1466 #else
1467 #define __PYX_GET_DICT_VERSION(dict) (0)
1468 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
1469 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP);
1470 #endif
1471 
1472 /* CLineInTraceback.proto */
1473 #ifdef CYTHON_CLINE_IN_TRACEBACK
1474 #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
1475 #else
1476 static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
1477 #endif
1478 
1479 /* CodeObjectCache.proto */
1480 typedef struct {
1481  PyCodeObject* code_object;
1482  int code_line;
1483 } __Pyx_CodeObjectCacheEntry;
1484 struct __Pyx_CodeObjectCache {
1485  int count;
1486  int max_count;
1487  __Pyx_CodeObjectCacheEntry* entries;
1488 };
1489 static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
1490 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
1491 static PyCodeObject *__pyx_find_code_object(int code_line);
1492 static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
1493 
1494 /* AddTraceback.proto */
1495 static void __Pyx_AddTraceback(const char *funcname, int c_line,
1496  int py_line, const char *filename);
1497 
1498 /* GCCDiagnostics.proto */
1499 #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
1500 #define __Pyx_HAS_GCC_DIAGNOSTIC
1501 #endif
1502 
1503 /* Print.proto */
1504 static int __Pyx_Print(PyObject*, PyObject *, int);
1505 #if CYTHON_COMPILING_IN_PYPY || PY_MAJOR_VERSION >= 3
1506 static PyObject* __pyx_print = 0;
1507 static PyObject* __pyx_print_kwargs = 0;
1508 #endif
1509 
1510 /* RealImag.proto */
1511 #if CYTHON_CCOMPLEX
1512  #ifdef __cplusplus
1513  #define __Pyx_CREAL(z) ((z).real())
1514  #define __Pyx_CIMAG(z) ((z).imag())
1515  #else
1516  #define __Pyx_CREAL(z) (__real__(z))
1517  #define __Pyx_CIMAG(z) (__imag__(z))
1518  #endif
1519 #else
1520  #define __Pyx_CREAL(z) ((z).real)
1521  #define __Pyx_CIMAG(z) ((z).imag)
1522 #endif
1523 #if defined(__cplusplus) && CYTHON_CCOMPLEX\
1524  && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)
1525  #define __Pyx_SET_CREAL(z,x) ((z).real(x))
1526  #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
1527 #else
1528  #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
1529  #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
1530 #endif
1531 
1532 /* Arithmetic.proto */
1533 #if CYTHON_CCOMPLEX
1534  #define __Pyx_c_eq_float(a, b) ((a)==(b))
1535  #define __Pyx_c_sum_float(a, b) ((a)+(b))
1536  #define __Pyx_c_diff_float(a, b) ((a)-(b))
1537  #define __Pyx_c_prod_float(a, b) ((a)*(b))
1538  #define __Pyx_c_quot_float(a, b) ((a)/(b))
1539  #define __Pyx_c_neg_float(a) (-(a))
1540  #ifdef __cplusplus
1541  #define __Pyx_c_is_zero_float(z) ((z)==(float)0)
1542  #define __Pyx_c_conj_float(z) (::std::conj(z))
1543  #if 1
1544  #define __Pyx_c_abs_float(z) (::std::abs(z))
1545  #define __Pyx_c_pow_float(a, b) (::std::pow(a, b))
1546  #endif
1547  #else
1548  #define __Pyx_c_is_zero_float(z) ((z)==0)
1549  #define __Pyx_c_conj_float(z) (conjf(z))
1550  #if 1
1551  #define __Pyx_c_abs_float(z) (cabsf(z))
1552  #define __Pyx_c_pow_float(a, b) (cpowf(a, b))
1553  #endif
1554  #endif
1555 #else
1556  static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
1557  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
1558  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
1559  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
1560  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
1561  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
1562  static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);
1563  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
1564  #if 1
1565  static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);
1566  static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
1567  #endif
1568 #endif
1569 
1570 /* Arithmetic.proto */
1571 #if CYTHON_CCOMPLEX
1572  #define __Pyx_c_eq_double(a, b) ((a)==(b))
1573  #define __Pyx_c_sum_double(a, b) ((a)+(b))
1574  #define __Pyx_c_diff_double(a, b) ((a)-(b))
1575  #define __Pyx_c_prod_double(a, b) ((a)*(b))
1576  #define __Pyx_c_quot_double(a, b) ((a)/(b))
1577  #define __Pyx_c_neg_double(a) (-(a))
1578  #ifdef __cplusplus
1579  #define __Pyx_c_is_zero_double(z) ((z)==(double)0)
1580  #define __Pyx_c_conj_double(z) (::std::conj(z))
1581  #if 1
1582  #define __Pyx_c_abs_double(z) (::std::abs(z))
1583  #define __Pyx_c_pow_double(a, b) (::std::pow(a, b))
1584  #endif
1585  #else
1586  #define __Pyx_c_is_zero_double(z) ((z)==0)
1587  #define __Pyx_c_conj_double(z) (conj(z))
1588  #if 1
1589  #define __Pyx_c_abs_double(z) (cabs(z))
1590  #define __Pyx_c_pow_double(a, b) (cpow(a, b))
1591  #endif
1592  #endif
1593 #else
1594  static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
1595  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
1596  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
1597  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
1598  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
1599  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
1600  static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);
1601  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
1602  #if 1
1603  static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);
1604  static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
1605  #endif
1606 #endif
1607 
1608 /* CIntFromPy.proto */
1609 static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
1610 
1611 /* CIntToPy.proto */
1612 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
1613 
1614 /* CIntFromPy.proto */
1615 static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
1616 
1617 /* PrintOne.proto */
1618 static int __Pyx_PrintOne(PyObject* stream, PyObject *o);
1619 
1620 /* CIntToPy.proto */
1621 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
1622 
1623 /* FastTypeChecks.proto */
1624 #if CYTHON_COMPILING_IN_CPYTHON
1625 #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
1626 static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
1627 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
1628 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
1629 #else
1630 #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
1631 #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
1632 #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
1633 #endif
1634 #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
1635 
1636 /* CheckBinaryVersion.proto */
1637 static int __Pyx_check_binary_version(void);
1638 
1639 /* InitStrings.proto */
1640 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
1641 
1642 
1643 /* Module declarations from 'cpython.buffer' */
1644 
1645 /* Module declarations from 'libc.string' */
1646 
1647 /* Module declarations from 'libc.stdio' */
1648 
1649 /* Module declarations from '__builtin__' */
1650 
1651 /* Module declarations from 'cpython.type' */
1652 static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;
1653 
1654 /* Module declarations from 'cpython' */
1655 
1656 /* Module declarations from 'cpython.object' */
1657 
1658 /* Module declarations from 'cpython.ref' */
1659 
1660 /* Module declarations from 'cpython.mem' */
1661 
1662 /* Module declarations from 'numpy' */
1663 
1664 /* Module declarations from 'numpy' */
1665 static PyTypeObject *__pyx_ptype_5numpy_dtype = 0;
1666 static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0;
1667 static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0;
1668 static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0;
1669 static PyTypeObject *__pyx_ptype_5numpy_generic = 0;
1670 static PyTypeObject *__pyx_ptype_5numpy_number = 0;
1671 static PyTypeObject *__pyx_ptype_5numpy_integer = 0;
1672 static PyTypeObject *__pyx_ptype_5numpy_signedinteger = 0;
1673 static PyTypeObject *__pyx_ptype_5numpy_unsignedinteger = 0;
1674 static PyTypeObject *__pyx_ptype_5numpy_inexact = 0;
1675 static PyTypeObject *__pyx_ptype_5numpy_floating = 0;
1676 static PyTypeObject *__pyx_ptype_5numpy_complexfloating = 0;
1677 static PyTypeObject *__pyx_ptype_5numpy_flexible = 0;
1678 static PyTypeObject *__pyx_ptype_5numpy_character = 0;
1679 static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0;
1680 
1681 /* Module declarations from 'cfemIntegrals' */
1682 #define __Pyx_MODULE_NAME "cfemIntegrals"
1683 extern int __pyx_module_is_main_cfemIntegrals;
1684 int __pyx_module_is_main_cfemIntegrals = 0;
1685 
1686 /* Implementation of 'cfemIntegrals' */
1687 static PyObject *__pyx_builtin_range;
1688 static PyObject *__pyx_builtin_ImportError;
1689 static const char __pyx_k_F[] = "F";
1690 static const char __pyx_k_H[] = "H";
1691 static const char __pyx_k_V[] = "V";
1692 static const char __pyx_k_a[] = "a";
1693 static const char __pyx_k_b[] = "b";
1694 static const char __pyx_k_f[] = "f";
1695 static const char __pyx_k_i[] = "i";
1696 static const char __pyx_k_m[] = "m";
1697 static const char __pyx_k_n[] = "n";
1698 static const char __pyx_k_p[] = "p";
1699 static const char __pyx_k_r[] = "r";
1700 static const char __pyx_k_s[] = "s";
1701 static const char __pyx_k_t[] = "t";
1702 static const char __pyx_k_u[] = "u";
1703 static const char __pyx_k_v[] = "v";
1704 static const char __pyx_k_w[] = "w";
1705 static const char __pyx_k_x[] = "x";
1706 static const char __pyx_k_DV[] = "DV";
1707 static const char __pyx_k_dH[] = "dH";
1708 static const char __pyx_k_dS[] = "dS";
1709 static const char __pyx_k_dV[] = "dV";
1710 static const char __pyx_k_dX[] = "dX";
1711 static const char __pyx_k_da[] = "da";
1712 static const char __pyx_k_db[] = "db";
1713 static const char __pyx_k_df[] = "df";
1714 static const char __pyx_k_dm[] = "dm";
1715 static const char __pyx_k_dr[] = "dr";
1716 static const char __pyx_k_mt[] = "mt";
1717 static const char __pyx_k_nd[] = "nd";
1718 static const char __pyx_k_ng[] = "ng";
1719 static const char __pyx_k_np[] = "np";
1720 static const char __pyx_k_pe[] = "pe";
1721 static const char __pyx_k_qV[] = "qV";
1722 static const char __pyx_k_qa[] = "qa";
1723 static const char __pyx_k_qv[] = "qv";
1724 static const char __pyx_k_s1[] = "s1";
1725 static const char __pyx_k_s2[] = "s2";
1726 static const char __pyx_k_ub[] = "ub";
1727 static const char __pyx_k_xg[] = "xg";
1728 static const char __pyx_k_xt[] = "xt";
1729 static const char __pyx_k_cfl[] = "cfl";
1730 static const char __pyx_k_dSR[] = "dSR";
1731 static const char __pyx_k_dVR[] = "dVR";
1732 static const char __pyx_k_df1[] = "df1";
1733 static const char __pyx_k_df2[] = "df2";
1734 static const char __pyx_k_dmt[] = "dmt";
1735 static const char __pyx_k_dof[] = "dof";
1736 static const char __pyx_k_end[] = "end";
1737 static const char __pyx_k_jac[] = "jac";
1738 static const char __pyx_k_l2g[] = "l2g";
1739 static const char __pyx_k_phi[] = "phi";
1740 static const char __pyx_k_psi[] = "psi";
1741 static const char __pyx_k_qDV[] = "qDV";
1742 static const char __pyx_k_val[] = "val";
1743 static const char __pyx_k_dS_u[] = "dS_u";
1744 static const char __pyx_k_dofs[] = "dofs";
1745 static const char __pyx_k_dphi[] = "dphi";
1746 static const char __pyx_k_file[] = "file";
1747 static const char __pyx_k_flag[] = "flag";
1748 static const char __pyx_k_flux[] = "flux";
1749 static const char __pyx_k_main[] = "__main__";
1750 static const char __pyx_k_name[] = "__name__";
1751 static const char __pyx_k_test[] = "__test__";
1752 static const char __pyx_k_w_dS[] = "w_dS";
1753 static const char __pyx_k_w_dV[] = "w_dV";
1754 static const char __pyx_k_A_inv[] = "A_inv";
1755 static const char __pyx_k_DV_eb[] = "DV_eb";
1756 static const char __pyx_k_db_eb[] = "db_eb";
1757 static const char __pyx_k_error[] = "error";
1758 static const char __pyx_k_mJump[] = "mJump";
1759 static const char __pyx_k_numpy[] = "numpy";
1760 static const char __pyx_k_print[] = "print";
1761 static const char __pyx_k_qw_dV[] = "qw_dV";
1762 static const char __pyx_k_range[] = "range";
1763 static const char __pyx_k_sigma[] = "sigma";
1764 static const char __pyx_k_starJ[] = "starJ";
1765 static const char __pyx_k_starR[] = "starR";
1766 static const char __pyx_k_starU[] = "starU";
1767 static const char __pyx_k_vJump[] = "vJump";
1768 static const char __pyx_k_v_out[] = "v_out";
1769 static const char __pyx_k_vn_in[] = "vn_in";
1770 static const char __pyx_k_Hess_v[] = "Hess_v";
1771 static const char __pyx_k_Hess_w[] = "Hess_w";
1772 static const char __pyx_k_colind[] = "colind";
1773 static const char __pyx_k_derror[] = "derror";
1774 static const char __pyx_k_free_u[] = "free_u";
1775 static const char __pyx_k_grad_u[] = "grad_u";
1776 static const char __pyx_k_grad_v[] = "grad_v";
1777 static const char __pyx_k_grad_w[] = "grad_w";
1778 static const char __pyx_k_import[] = "__import__";
1779 static const char __pyx_k_nSpace[] = "nSpace";
1780 static const char __pyx_k_normal[] = "normal";
1781 static const char __pyx_k_offset[] = "offset";
1782 static const char __pyx_k_output[] = "output";
1783 static const char __pyx_k_phi_bc[] = "phi_bc";
1784 static const char __pyx_k_qDV_eb[] = "qDV_eb";
1785 static const char __pyx_k_rowptr[] = "rowptr";
1786 static const char __pyx_k_stride[] = "stride";
1787 static const char __pyx_k_vArray[] = "vArray";
1788 static const char __pyx_k_vXw_dV[] = "vXw_dV";
1789 static const char __pyx_k_xArray[] = "xArray";
1790 static const char __pyx_k_dim_dof[] = "dim_dof";
1791 static const char __pyx_k_ebq_val[] = "ebq_val";
1792 static const char __pyx_k_epsFact[] = "epsFact";
1793 static const char __pyx_k_numDiff[] = "numDiff";
1794 static const char __pyx_k_sResult[] = "sResult";
1795 static const char __pyx_k_tResult[] = "tResult";
1796 static const char __pyx_k_vResult[] = "vResult";
1797 static const char __pyx_k_weights[] = "weights";
1798 static const char __pyx_k_xiArray[] = "xiArray";
1799 static const char __pyx_k_xtArray[] = "xtArray";
1800 static const char __pyx_k_Hess_phi[] = "Hess_phi";
1801 static const char __pyx_k_ebqe_val[] = "ebqe_val";
1802 static const char __pyx_k_grad_phi[] = "grad_phi";
1803 static const char __pyx_k_grad_psi[] = "grad_psi";
1804 static const char __pyx_k_jacIndex[] = "jacIndex";
1805 static const char __pyx_k_jacobian[] = "jacobian";
1806 static const char __pyx_k_mAverage[] = "mAverage";
1807 static const char __pyx_k_nDOF2set[] = "nDOF2set";
1808 static const char __pyx_k_offset_r[] = "offset_r";
1809 static const char __pyx_k_offset_u[] = "offset_u";
1810 static const char __pyx_k_residual[] = "residual";
1811 static const char __pyx_k_stride_r[] = "stride_r";
1812 static const char __pyx_k_stride_u[] = "stride_u";
1813 static const char __pyx_k_vAverage[] = "vAverage";
1814 static const char __pyx_k_v_X_w_dS[] = "v_X_w_dS";
1815 static const char __pyx_k_v_X_w_dV[] = "v_X_w_dV";
1816 static const char __pyx_k_velocity[] = "velocity";
1817 static const char __pyx_k_Hess_w_dV[] = "Hess_w_dV";
1818 static const char __pyx_k_Hessian_u[] = "Hessian_u";
1819 static const char __pyx_k_Hessian_v[] = "Hessian_v";
1820 static const char __pyx_k_abs_det_J[] = "abs_det_J";
1821 static const char __pyx_k_dsigma_xx[] = "dsigma_xx";
1822 static const char __pyx_k_dsigma_xy[] = "dsigma_xy";
1823 static const char __pyx_k_dsigma_xz[] = "dsigma_xz";
1824 static const char __pyx_k_dsigma_yx[] = "dsigma_yx";
1825 static const char __pyx_k_dsigma_yy[] = "dsigma_yy";
1826 static const char __pyx_k_dsigma_yz[] = "dsigma_yz";
1827 static const char __pyx_k_dsigma_zx[] = "dsigma_zx";
1828 static const char __pyx_k_dsigma_zy[] = "dsigma_zy";
1829 static const char __pyx_k_dsigma_zz[] = "dsigma_zz";
1830 static const char __pyx_k_grad_w_dV[] = "grad_w_dV";
1831 static const char __pyx_k_jac_array[] = "jac_array";
1832 static const char __pyx_k_nNonzeros[] = "nNonzeros";
1833 static const char __pyx_k_nodeArray[] = "nodeArray";
1834 static const char __pyx_k_phi_trace[] = "phi_trace";
1835 static const char __pyx_k_rho_split[] = "rho_split";
1836 static const char __pyx_k_tolerance[] = "tolerance";
1837 static const char __pyx_k_xArrayNew[] = "xArrayNew";
1838 static const char __pyx_k_Lstar_w_dV[] = "Lstar_w_dV";
1839 static const char __pyx_k_freeDOFids[] = "freeDOFids";
1840 static const char __pyx_k_sqrt_det_g[] = "sqrt_det_g";
1841 static const char __pyx_k_updateCoef[] = "updateCoef";
1842 static const char __pyx_k_Hessian_psi[] = "Hessian_psi";
1843 static const char __pyx_k_ImportError[] = "ImportError";
1844 static const char __pyx_k_abs_det_jac[] = "abs_det_jac";
1845 static const char __pyx_k_estimate_mt[] = "estimate_mt";
1846 static const char __pyx_k_freeLocal_r[] = "freeLocal_r";
1847 static const char __pyx_k_freeLocal_u[] = "freeLocal_u";
1848 static const char __pyx_k_grad_vArray[] = "grad_vArray";
1849 static const char __pyx_k_jacobian_eb[] = "jacobian_eb";
1850 static const char __pyx_k_nComponents[] = "nComponents";
1851 static const char __pyx_k_nValueArray[] = "nValueArray";
1852 static const char __pyx_k_colind_dummy[] = "colind_dummy";
1853 static const char __pyx_k_elementNodes[] = "elementNodes";
1854 static const char __pyx_k_freeGlobal_r[] = "freeGlobal_r";
1855 static const char __pyx_k_freeGlobal_u[] = "freeGlobal_u";
1856 static const char __pyx_k_globalDOFids[] = "globalDOFids";
1857 static const char __pyx_k_nDOF_element[] = "nDOF_element";
1858 static const char __pyx_k_nodalAverage[] = "nodalAverage";
1859 static const char __pyx_k_permutations[] = "permutations";
1860 static const char __pyx_k_rowptr_dummy[] = "rowptr_dummy";
1861 static const char __pyx_k_starJacobian[] = "starJacobian";
1862 static const char __pyx_k_cfemIntegrals[] = "cfemIntegrals";
1863 static const char __pyx_k_firstBadIndex[] = "firstBadIndex";
1864 static const char __pyx_k_grad_v_X_w_dS[] = "grad_v_X_w_dS";
1865 static const char __pyx_k_grad_v_X_w_dV[] = "grad_v_X_w_dV";
1866 static const char __pyx_k_internalNodes[] = "internalNodes";
1867 static const char __pyx_k_isDOFBoundary[] = "isDOFBoundary";
1868 static const char __pyx_k_jacobianArray[] = "jacobianArray";
1869 static const char __pyx_k_nNodes_global[] = "nNodes_global";
1870 static const char __pyx_k_nSpace_global[] = "nSpace_global";
1871 static const char __pyx_k_vConservative[] = "vConservative";
1872 static const char __pyx_k_v_X_grad_w_dV[] = "v_X_grad_w_dV";
1873 static const char __pyx_k_weak_residual[] = "weak_residual";
1874 static const char __pyx_k_Hessian_vArray[] = "Hessian_vArray";
1875 static const char __pyx_k_ebq_global_val[] = "ebq_global_val";
1876 static const char __pyx_k_globalJacobian[] = "globalJacobian";
1877 static const char __pyx_k_globalResidual[] = "globalResidual";
1878 static const char __pyx_k_mom_flux_vec_u[] = "mom_flux_vec_u";
1879 static const char __pyx_k_mom_flux_vec_v[] = "mom_flux_vec_v";
1880 static const char __pyx_k_mom_flux_vec_w[] = "mom_flux_vec_w";
1881 static const char __pyx_k_nElements_node[] = "nElements_node";
1882 static const char __pyx_k_nNodes_element[] = "nNodes_element";
1883 static const char __pyx_k_boundaryNormals[] = "boundaryNormals";
1884 static const char __pyx_k_calculateCFLADR[] = "calculateCFLADR";
1885 static const char __pyx_k_dphi_trace_left[] = "dphi_trace_left";
1886 static const char __pyx_k_elementDiameter[] = "elementDiameter";
1887 static const char __pyx_k_elementJacobian[] = "elementJacobian";
1888 static const char __pyx_k_elementResidual[] = "elementResidual";
1889 static const char __pyx_k_inverseJacobian[] = "inverseJacobian";
1890 static const char __pyx_k_nNodes_internal[] = "nNodes_internal";
1891 static const char __pyx_k_nodeStarOffsets[] = "nodeStarOffsets";
1892 static const char __pyx_k_strong_residual[] = "strong_residual";
1893 static const char __pyx_k_unitNormalArray[] = "unitNormalArray";
1894 static const char __pyx_k_updateMass_weak[] = "updateMass_weak";
1895 static const char __pyx_k_weak_residual_x[] = "weak_residual_x";
1896 static const char __pyx_k_weak_residual_y[] = "weak_residual_y";
1897 static const char __pyx_k_weak_residual_z[] = "weak_residual_z";
1898 static const char __pyx_k_csrRowIndeces_ru[] = "csrRowIndeces_ru";
1899 static const char __pyx_k_dphi_trace_right[] = "dphi_trace_right";
1900 static const char __pyx_k_dstrong_residual[] = "dstrong_residual";
1901 static const char __pyx_k_elementNeighbors[] = "elementNeighbors";
1902 static const char __pyx_k_nElements_global[] = "nElements_global";
1903 static const char __pyx_k_nFreeVDOF_global[] = "nFreeVDOF_global";
1904 static const char __pyx_k_nodeStarElements[] = "nodeStarElements";
1905 static const char __pyx_k_referenceWeights[] = "referenceWeights";
1906 static const char __pyx_k_updateFluxValues[] = "updateFluxValues";
1907 static const char __pyx_k_zeroJacobian_CSR[] = "zeroJacobian_CSR";
1908 static const char __pyx_k_boundaryJacobians[] = "boundaryJacobians";
1909 static const char __pyx_k_elementNodesArray[] = "elementNodesArray";
1910 static const char __pyx_k_metricTensorArray[] = "metricTensorArray";
1911 static const char __pyx_k_nDOF_test_element[] = "nDOF_test_element";
1912 static const char __pyx_k_nodeElementsArray[] = "nodeElementsArray";
1913 static const char __pyx_k_updateMass_strong[] = "updateMass_strong";
1914 static const char __pyx_k_updateStress_weak[] = "updateStress_weak";
1915 static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
1916 static const char __pyx_k_elementJacobian_eb[] = "elementJacobian_eb";
1917 static const char __pyx_k_estimate_mt_lowmem[] = "estimate_mt_lowmem";
1918 static const char __pyx_k_grad_u_X_grad_w_dV[] = "grad_u_X_grad_w_dV";
1919 static const char __pyx_k_grad_v_X_grad_w_dV[] = "grad_v_X_grad_w_dV";
1920 static const char __pyx_k_nDOF_trial_element[] = "nDOF_trial_element";
1921 static const char __pyx_k_nFreeDOF_element_r[] = "nFreeDOF_element_r";
1922 static const char __pyx_k_nFreeDOF_element_u[] = "nFreeDOF_element_u";
1923 static const char __pyx_k_nodeElementOffsets[] = "nodeElementOffsets";
1924 static const char __pyx_k_updateMass_adjoint[] = "updateMass_adjoint";
1925 static const char __pyx_k_updateSubgridError[] = "updateSubgridError";
1926 static const char __pyx_k_csrColumnOffsets_ru[] = "csrColumnOffsets_ru";
1927 static const char __pyx_k_interpolationValues[] = "interpolationValues";
1928 static const char __pyx_k_updateReaction_weak[] = "updateReaction_weak";
1929 static const char __pyx_k_conservationResidual[] = "conservationResidual";
1930 static const char __pyx_k_getCSRrepresentation[] = "getCSRrepresentation";
1931 static const char __pyx_k_globalJacobian_array[] = "globalJacobian_array";
1932 static const char __pyx_k_grad_phi_X_grad_w_dV[] = "grad_phi_X_grad_w_dV";
1933 static const char __pyx_k_inverseJacobianArray[] = "inverseJacobianArray";
1934 static const char __pyx_k_jacobianInverseArray[] = "jacobianInverseArray";
1935 static const char __pyx_k_scalarDomainIntegral[] = "scalarDomainIntegral";
1936 static const char __pyx_k_updateAdvection_weak[] = "updateAdvection_weak";
1937 static const char __pyx_k_updateDiffusion_weak[] = "updateDiffusion_weak";
1938 static const char __pyx_k_calculateFlowVelocity[] = "calculateFlowVelocity";
1939 static const char __pyx_k_fluxElementBoundaries[] = "fluxElementBoundaries";
1940 static const char __pyx_k_getPermutationsGlobal[] = "getPermutationsGlobal";
1941 static const char __pyx_k_updateAddJacobian_CSR[] = "updateAddJacobian_CSR";
1942 static const char __pyx_k_updateReaction_strong[] = "updateReaction_strong";
1943 static const char __pyx_k_update_f_movingDomain[] = "update_f_movingDomain";
1944 static const char __pyx_k_vConservative_element[] = "vConservative_element";
1945 static const char __pyx_k_calculateCFLADR2speeds[] = "calculateCFLADR2speeds";
1946 static const char __pyx_k_calculateWeightedShape[] = "calculateWeightedShape";
1947 static const char __pyx_k_csrColumnOffsets_eb_ru[] = "csrColumnOffsets_eb_ru";
1948 static const char __pyx_k_elementSpatialResidual[] = "elementSpatialResidual";
1949 static const char __pyx_k_functional_map_element[] = "functional_map_element";
1950 static const char __pyx_k_jacobian_weak_residual[] = "jacobian_weak_residual";
1951 static const char __pyx_k_updateAdvection_strong[] = "updateAdvection_strong";
1952 static const char __pyx_k_updateDiffusion_strong[] = "updateDiffusion_strong";
1953 static const char __pyx_k_updateHamiltonian_weak[] = "updateHamiltonian_weak";
1954 static const char __pyx_k_updateReaction_adjoint[] = "updateReaction_adjoint";
1955 static const char __pyx_k_elementBoundaryElements[] = "elementBoundaryElements";
1956 static const char __pyx_k_nodeStarJacobianOffsets[] = "nodeStarJacobianOffsets";
1957 static const char __pyx_k_not_recognized_quitting[] = " not recognized quitting\n";
1958 static const char __pyx_k_updateAdvection_adjoint[] = "updateAdvection_adjoint";
1959 static const char __pyx_k_updateDiffusion2_strong[] = "updateDiffusion2_strong";
1960 static const char __pyx_k_updateDiffusion_adjoint[] = "updateDiffusion_adjoint";
1961 static const char __pyx_k_updateDiffusion_weak_sd[] = "updateDiffusion_weak_sd";
1962 static const char __pyx_k_updateMassJacobian_weak[] = "updateMassJacobian_weak";
1963 static const char __pyx_k_velocityBoundary_global[] = "velocityBoundary_global";
1964 static const char __pyx_k_jacobianDeterminantArray[] = "jacobianDeterminantArray";
1965 static const char __pyx_k_nElementBoundaries_owned[] = "nElementBoundaries_owned";
1966 static const char __pyx_k_nodeStarElementNeighbors[] = "nodeStarElementNeighbors";
1967 static const char __pyx_k_parametricMaps_getValues[] = "parametricMaps_getValues";
1968 static const char __pyx_k_updateDiffusion2_adjoint[] = "updateDiffusion2_adjoint";
1969 static const char __pyx_k_updateHamiltonian_strong[] = "updateHamiltonian_strong";
1970 static const char __pyx_k_updateNumericalDiffusion[] = "updateNumericalDiffusion";
1971 static const char __pyx_k_velocityBoundary_element[] = "velocityBoundary_element";
1972 static const char __pyx_k_exteriorElementBoundaries[] = "exteriorElementBoundaries";
1973 static const char __pyx_k_interiorElementBoundaries[] = "interiorElementBoundaries";
1974 static const char __pyx_k_jacobian_weak_residual_eb[] = "jacobian_weak_residual_eb";
1975 static const char __pyx_k_jacobian_weak_residual_xx[] = "jacobian_weak_residual_xx";
1976 static const char __pyx_k_jacobian_weak_residual_xy[] = "jacobian_weak_residual_xy";
1977 static const char __pyx_k_jacobian_weak_residual_xz[] = "jacobian_weak_residual_xz";
1978 static const char __pyx_k_jacobian_weak_residual_yx[] = "jacobian_weak_residual_yx";
1979 static const char __pyx_k_jacobian_weak_residual_yy[] = "jacobian_weak_residual_yy";
1980 static const char __pyx_k_jacobian_weak_residual_yz[] = "jacobian_weak_residual_yz";
1981 static const char __pyx_k_jacobian_weak_residual_zx[] = "jacobian_weak_residual_zx";
1982 static const char __pyx_k_jacobian_weak_residual_zy[] = "jacobian_weak_residual_zy";
1983 static const char __pyx_k_jacobian_weak_residual_zz[] = "jacobian_weak_residual_zz";
1984 static const char __pyx_k_nElementBoundaries_global[] = "nElementBoundaries_global";
1985 static const char __pyx_k_nQuadraturePoints_element[] = "nQuadraturePoints_element";
1986 static const char __pyx_k_nValuesPerQuadraturePoint[] = "nValuesPerQuadraturePoint";
1987 static const char __pyx_k_proteus_cfemIntegrals_pyx[] = "proteus/cfemIntegrals.pyx";
1988 static const char __pyx_k_updateDiffusion_strong_sd[] = "updateDiffusion_strong_sd";
1989 static const char __pyx_k_updateHamiltonian_adjoint[] = "updateHamiltonian_adjoint";
1990 static const char __pyx_k_updateMassJacobian_strong[] = "updateMassJacobian_strong";
1991 static const char __pyx_k_updateStressJacobian_weak[] = "updateStressJacobian_weak";
1992 static const char __pyx_k_computeC0P1InterpolantDGP0[] = "computeC0P1InterpolantDGP0";
1993 static const char __pyx_k_computeC0P1InterpolantNCP1[] = "computeC0P1InterpolantNCP1";
1994 static const char __pyx_k_error_copyFromFreeToGlobal[] = "error copyFromFreeToGlobal = ";
1995 static const char __pyx_k_fluxDomainBoundaryIntegral[] = "fluxDomainBoundaryIntegral";
1996 static const char __pyx_k_nElementBoundaries_element[] = "nElementBoundaries_element";
1997 static const char __pyx_k_nExteriorElementBoundaries[] = "nExteriorElementBoundaries";
1998 static const char __pyx_k_updateDiffusion2_strong_sd[] = "updateDiffusion2_strong_sd";
1999 static const char __pyx_k_updateDiffusion_adjoint_sd[] = "updateDiffusion_adjoint_sd";
2000 static const char __pyx_k_updateSubgridErrorJacobian[] = "updateSubgridErrorJacobian";
2001 static const char __pyx_k_calculateIntegrationWeights[] = "calculateIntegrationWeights";
2002 static const char __pyx_k_calculateWeightedShapeTrace[] = "calculateWeightedShapeTrace";
2003 static const char __pyx_k_computeC0P1InterpolantDGP12[] = "computeC0P1InterpolantDGP12";
2004 static const char __pyx_k_copyLeftElementBoundaryInfo[] = "copyLeftElementBoundaryInfo";
2005 static const char __pyx_k_elementBoundaryFluxJacobian[] = "elementBoundaryFluxJacobian";
2006 static const char __pyx_k_updateDiffusion2_adjoint_sd[] = "updateDiffusion2_adjoint_sd";
2007 static const char __pyx_k_updateDiffusion_weak_lowmem[] = "updateDiffusion_weak_lowmem";
2008 static const char __pyx_k_updateReactionJacobian_weak[] = "updateReactionJacobian_weak";
2009 static const char __pyx_k_calculateConservationFluxPWL[] = "calculateConservationFluxPWL";
2010 static const char __pyx_k_calculateScalarScalarProduct[] = "calculateScalarScalarProduct";
2011 static const char __pyx_k_calculateTensorScalarProduct[] = "calculateTensorScalarProduct";
2012 static const char __pyx_k_calculateVectorScalarProduct[] = "calculateVectorScalarProduct";
2013 static const char __pyx_k_csrColumnOffsets_eb_eNebN_ru[] = "csrColumnOffsets_eb_eNebN_ru";
2014 static const char __pyx_k_elementBoundaryElementsArray[] = "elementBoundaryElementsArray";
2015 static const char __pyx_k_elementBoundaryMaterialTypes[] = "elementBoundaryMaterialTypes";
2016 static const char __pyx_k_updateAdvectionJacobian_weak[] = "updateAdvectionJacobian_weak";
2017 static const char __pyx_k_updateDiffusionJacobian_weak[] = "updateDiffusionJacobian_weak";
2018 static const char __pyx_k_calculateConservationResidual[] = "calculateConservationResidual";
2019 static const char __pyx_k_computeDiffusiveTimeStepLimit[] = "computeDiffusiveTimeStepLimit";
2020 static const char __pyx_k_parametricMaps_getValuesTrace[] = "parametricMaps_getValuesTrace";
2021 static const char __pyx_k_scalarHeavisideDomainIntegral[] = "scalarHeavisideDomainIntegral";
2022 static const char __pyx_k_updateReactionJacobian_strong[] = "updateReactionJacobian_strong";
2023 static const char __pyx_k_calculateShape_X_weightedShape[] = "calculateShape_X_weightedShape";
2024 static const char __pyx_k_calculateWeightedShapeHessians[] = "calculateWeightedShapeHessians";
2025 static const char __pyx_k_elementBoundaryFluxJacobian_eb[] = "elementBoundaryFluxJacobian_eb";
2026 static const char __pyx_k_exteriorElementBoundariesArray[] = "exteriorElementBoundariesArray";
2027 static const char __pyx_k_interiorElementBoundariesArray[] = "interiorElementBoundariesArray";
2028 static const char __pyx_k_parametricMaps_getPermutations[] = "parametricMaps_getPermutations";
2029 static const char __pyx_k_updateAdvectionJacobian_strong[] = "updateAdvectionJacobian_strong";
2030 static const char __pyx_k_updateDiffusionJacobian_strong[] = "updateDiffusionJacobian_strong";
2031 static const char __pyx_k_updateDiffusion_MixedForm_weak[] = "updateDiffusion_MixedForm_weak";
2032 static const char __pyx_k_updateHamiltonianJacobian_weak[] = "updateHamiltonianJacobian_weak";
2033 static const char __pyx_k_updateMassJacobian_weak_lowmem[] = "updateMassJacobian_weak_lowmem";
2034 static const char __pyx_k_updatePotential_MixedForm_weak[] = "updatePotential_MixedForm_weak";
2035 static const char __pyx_k_calculateConservationResidualDG[] = "calculateConservationResidualDG";
2036 static const char __pyx_k_calculateExteriorNumericalTrace[] = "calculateExteriorNumericalTrace_Potential";
2037 static const char __pyx_k_calculateInteriorNumericalTrace[] = "calculateInteriorNumericalTrace_Potential";
2038 static const char __pyx_k_calculateWeightedShapeGradients[] = "calculateWeightedShapeGradients";
2039 static const char __pyx_k_error_in_getJacobianValuesTrace[] = "error in getJacobianValuesTrace...jacobianInverse not sized properly";
2040 static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import";
2041 static const char __pyx_k_parametricMaps_getInverseValues[] = "parametricMaps_getInverseValues";
2042 static const char __pyx_k_updateDiffusionJacobian2_strong[] = "updateDiffusionJacobian2_strong";
2043 static const char __pyx_k_updateDiffusionJacobian_weak_sd[] = "updateDiffusionJacobian_weak_sd";
2044 static const char __pyx_k_updateNumericalDiffusion_lowmem[] = "updateNumericalDiffusion_lowmem";
2045 static const char __pyx_k_calculateConservationJacobianPWL[] = "calculateConservationJacobianPWL";
2046 static const char __pyx_k_calculateConservationResidualGlo[] = "calculateConservationResidualGlobalBoundaries";
2047 static const char __pyx_k_calculateConservationResidualPWL[] = "calculateConservationResidualPWL";
2048 static const char __pyx_k_calculateDimensionlessNumbersADR[] = "calculateDimensionlessNumbersADR";
2049 static const char __pyx_k_calculateElementBoundaryIntegrat[] = "calculateElementBoundaryIntegrationWeights";
2050 static const char __pyx_k_calculateExteriorElementBoundary[] = "calculateExteriorElementBoundaryStress3D";
2051 static const char __pyx_k_calculateFiniteElementFunctionGr[] = "calculateFiniteElementFunctionGradientValues";
2052 static const char __pyx_k_calculateFiniteElementFunctionHe[] = "calculateFiniteElementFunctionHessianValues";
2053 static const char __pyx_k_calculateFiniteElementFunctionVa[] = "calculateFiniteElementFunctionValues";
2054 static const char __pyx_k_calculateGlobalExteriorElementBo[] = "calculateGlobalExteriorElementBoundaryIntegrationWeights";
2055 static const char __pyx_k_calculateGradShape_X_weightedGra[] = "calculateGradShape_X_weightedGradShape";
2056 static const char __pyx_k_calculateGradShape_X_weightedSha[] = "calculateGradShape_X_weightedShape";
2057 static const char __pyx_k_calculateInteriorElementBoundary[] = "calculateInteriorElementBoundaryVelocities";
2058 static const char __pyx_k_calculateShape_X_weightedGradSha[] = "calculateShape_X_weightedGradShape";
2059 static const char __pyx_k_calculateShape_X_weightedShapeGl[] = "calculateShape_X_weightedShapeGlobalExteriorTrace";
2060 static const char __pyx_k_calculateShape_X_weightedShapeTr[] = "calculateShape_X_weightedShapeTrace";
2061 static const char __pyx_k_calculateVelocityProjectionMatri[] = "calculateVelocityProjectionMatrixLDG";
2062 static const char __pyx_k_calculateVelocityQuadrature_Mixe[] = "calculateVelocityQuadrature_MixedForm";
2063 static const char __pyx_k_calculateWeightedShapeGlobalExte[] = "calculateWeightedShapeGlobalExteriorTrace";
2064 static const char __pyx_k_checkElementBoundaryAndExteriorE[] = "checkElementBoundaryAndExteriorElementBoundaryArraysSame";
2065 static const char __pyx_k_checkGlobalElementBoundaryAndExt[] = "checkGlobalElementBoundaryAndExteriorElementBoundaryArraysSame";
2066 static const char __pyx_k_copyBetweenFreeUnknownsAndGlobal[] = "copyBetweenFreeUnknownsAndGlobalUnknowns";
2067 static const char __pyx_k_copyExteriorElementBoundaryValue[] = "copyExteriorElementBoundaryValuesFromElementBoundaryValues";
2068 static const char __pyx_k_copyGlobalElementBoundaryVelocit[] = "copyGlobalElementBoundaryVelocityToElementBoundary";
2069 static const char __pyx_k_elementBoundaryFluxJacobian_2sid[] = "elementBoundaryFluxJacobian_2sided";
2070 static const char __pyx_k_elementBoundaryLocalElementBound[] = "elementBoundaryLocalElementBoundaries";
2071 static const char __pyx_k_error_in_getJacobianValues_jacob[] = "error in getJacobianValues...jacobian not sized properly";
2072 static const char __pyx_k_fluxDomainBoundaryIntegralFromVe[] = "fluxDomainBoundaryIntegralFromVector";
2073 static const char __pyx_k_loadBoundaryFluxIntoGlobalElemen[] = "loadBoundaryFluxIntoGlobalElementBoundaryVelocity";
2074 static const char __pyx_k_metricTensorDeterminantSqrtArray[] = "metricTensorDeterminantSqrtArray";
2075 static const char __pyx_k_nElementBoundaryQuadraturePoints[] = "nElementBoundaryQuadraturePoints_elementBoundary";
2076 static const char __pyx_k_nExteriorElementBoundaries_globa[] = "nExteriorElementBoundaries_global";
2077 static const char __pyx_k_nInteriorElementBoundaries_globa[] = "nInteriorElementBoundaries_global";
2078 static const char __pyx_k_nQuadraturePoints_elementBoundar[] = "nQuadraturePoints_elementBoundary";
2079 static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import";
2080 static const char __pyx_k_parametricFiniteElementSpace_get[] = "parametricFiniteElementSpace_getHessianValues";
2081 static const char __pyx_k_parametricMaps_getInverseValuesG[] = "parametricMaps_getInverseValuesGlobalExteriorTrace";
2082 static const char __pyx_k_parametricMaps_getInverseValuesT[] = "parametricMaps_getInverseValuesTrace";
2083 static const char __pyx_k_parametricMaps_getJacobianValues[] = "parametricMaps_getJacobianValues";
2084 static const char __pyx_k_parametricMaps_getPermutationsGl[] = "parametricMaps_getPermutationsGlobalExterior";
2085 static const char __pyx_k_parametricMaps_getValuesGlobalEx[] = "parametricMaps_getValuesGlobalExteriorTrace";
2086 static const char __pyx_k_projectFromNodalInterpolationCon[] = "projectFromNodalInterpolationConditions";
2087 static const char __pyx_k_scalarSmoothedHeavisideDomainInt[] = "scalarSmoothedHeavisideDomainIntegral";
2088 static const char __pyx_k_setExteriorGlobalElementBoundary[] = "setExteriorGlobalElementBoundaryVelocityValues";
2089 static const char __pyx_k_updateAdvectionJacobian_weak_low[] = "updateAdvectionJacobian_weak_lowmem";
2090 static const char __pyx_k_updateDiffusionJacobian_MixedFor[] = "updateDiffusionJacobian_MixedForm_weak";
2091 static const char __pyx_k_updateDiffusionJacobian_strong_s[] = "updateDiffusionJacobian_strong_sd";
2092 static const char __pyx_k_updateDiffusionJacobian_weak_low[] = "updateDiffusionJacobian_weak_lowmem";
2093 static const char __pyx_k_updateDiffusion_MixedForm_weak_s[] = "updateDiffusion_MixedForm_weak_sd";
2094 static const char __pyx_k_updateExteriorElementBoundaryAdv[] = "updateExteriorElementBoundaryAdvectiveVelocity";
2095 static const char __pyx_k_updateExteriorElementBoundaryDif[] = "updateExteriorElementBoundaryDiffusiveVelocity";
2096 static const char __pyx_k_updateExteriorElementBoundaryFlu[] = "updateExteriorElementBoundaryFlux";
2097 static const char __pyx_k_updateExteriorElementBoundarySho[] = "updateExteriorElementBoundaryShockCapturingVelocity";
2098 static const char __pyx_k_updateExteriorElementBoundary_Mi[] = "updateExteriorElementBoundary_MixedForm_weak";
2099 static const char __pyx_k_updateGlobalJacobianFromElementJ[] = "updateGlobalJacobianFromElementJacobian_dense";
2100 static const char __pyx_k_updateGlobalJacobianFromExterior[] = "updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_dense";
2101 static const char __pyx_k_updateGlobalJacobianFromInterior[] = "updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR";
2102 static const char __pyx_k_updateGlobalResidualFromElementR[] = "updateGlobalResidualFromElementResidual";
2103 static const char __pyx_k_updateHamiltonianJacobian_strong[] = "updateHamiltonianJacobian_strong";
2104 static const char __pyx_k_updateHamiltonianJacobian_weak_l[] = "updateHamiltonianJacobian_weak_lowmem";
2105 static const char __pyx_k_updateInteriorElementBoundaryAdv[] = "updateInteriorElementBoundaryAdvectiveVelocity";
2106 static const char __pyx_k_updateInteriorElementBoundaryDif[] = "updateInteriorElementBoundaryDiffusiveVelocity";
2107 static const char __pyx_k_updateInteriorElementBoundaryFlu[] = "updateInteriorElementBoundaryFlux";
2108 static const char __pyx_k_updateInteriorElementBoundarySho[] = "updateInteriorElementBoundaryShockCapturingVelocity";
2109 static const char __pyx_k_updateInteriorElementBoundary_Mi[] = "updateInteriorElementBoundary_MixedForm_weak";
2110 static const char __pyx_k_updateInteriorTwoSidedElementBou[] = "updateInteriorTwoSidedElementBoundaryFlux";
2111 static const char __pyx_k_updateNumericalDiffusionJacobian[] = "updateNumericalDiffusionJacobian";
2112 static const char __pyx_k_updatePotential_MixedForm_weakJa[] = "updatePotential_MixedForm_weakJacobian";
2113 static const char __pyx_k_updateReactionJacobian_weak_lowm[] = "updateReactionJacobian_weak_lowmem";
2114 static const char __pyx_k_update_f_movingDomain_constantMa[] = "update_f_movingDomain_constantMass";
2115 static const char __pyx_k_updateDiffusionJacobian2_strong_2[] = "updateDiffusionJacobian2_strong_sd";
2116 static const char __pyx_k_calculateDimensionlessNumbersADR_2[] = "calculateDimensionlessNumbersADR_sd";
2117 static const char __pyx_k_calculateExteriorElementBoundary_2[] = "calculateExteriorElementBoundaryStress2D";
2118 static const char __pyx_k_calculateExteriorElementBoundary_3[] = "calculateExteriorElementBoundaryVelocities";
2119 static const char __pyx_k_calculateExteriorElementBoundary_4[] = "calculateExteriorElementBoundaryAverageVelocity";
2120 static const char __pyx_k_calculateFiniteElementFunctionGr_2[] = "calculateFiniteElementFunctionGradientTensorValues";
2121 static const char __pyx_k_calculateFiniteElementFunctionGr_3[] = "calculateFiniteElementFunctionGradientValuesTrace";
2122 static const char __pyx_k_calculateFiniteElementFunctionGr_4[] = "calculateFiniteElementFunctionGradientValuesGlobalExteriorTrace";
2123 static const char __pyx_k_calculateFiniteElementFunctionVa_2[] = "calculateFiniteElementFunctionValuesTrace";
2124 static const char __pyx_k_calculateFiniteElementFunctionVa_3[] = "calculateFiniteElementFunctionValuesGlobalExteriorTrace";
2125 static const char __pyx_k_calculateGradShape_X_weightedSha_2[] = "calculateGradShape_X_weightedShapeTrace";
2126 static const char __pyx_k_calculateGradShape_X_weightedSha_3[] = "calculateGradShape_X_weightedShapeGlobalExteriorTrace";
2127 static const char __pyx_k_calculateInteriorElementBoundary_2[] = "calculateInteriorElementBoundaryAverageVelocity";
2128 static const char __pyx_k_calculateVelocityQuadrature_Mixe_2[] = "calculateVelocityQuadrature_MixedForm_Jacobian";
2129 static const char __pyx_k_calculateVelocityQuadrature_Mixe_3[] = "calculateVelocityQuadrature_MixedForm2_sd";
2130 static const char __pyx_k_calculateVelocityQuadrature_Mixe_4[] = "calculateVelocityQuadrature_MixedForm2_Jacobian_sd";
2131 static const char __pyx_k_copyExteriorElementBoundaryValue_2[] = "copyExteriorElementBoundaryValuesToElementBoundaryValues";
2132 static const char __pyx_k_copyExteriorElementBoundaryValue_3[] = "copyExteriorElementBoundaryValuesToGlobalElementBoundaryValues";
2133 static const char __pyx_k_copyExteriorElementBoundaryValue_4[] = "copyExteriorElementBoundaryValuesFromGlobalElementBoundaryValues";
2134 static const char __pyx_k_elementBoundaryLocalElementBound_2[] = "elementBoundaryLocalElementBoundariesArray";
2135 static const char __pyx_k_parametricFiniteElementSpace_get_2[] = "parametricFiniteElementSpace_getValues";
2136 static const char __pyx_k_parametricFiniteElementSpace_get_3[] = "parametricFiniteElementSpace_getValuesTrace";
2137 static const char __pyx_k_parametricFiniteElementSpace_get_4[] = "parametricFiniteElementSpace_getGradientValues";
2138 static const char __pyx_k_parametricFiniteElementSpace_get_5[] = "parametricFiniteElementSpace_getGradientValuesTrace";
2139 static const char __pyx_k_parametricFiniteElementSpace_get_6[] = "parametricFiniteElementSpace_getValuesGlobalExteriorTrace";
2140 static const char __pyx_k_parametricFiniteElementSpace_get_7[] = "parametricFiniteElementSpace_getGradientValuesGlobalExteriorTrace";
2141 static const char __pyx_k_parametricMaps_getJacobianValues_2[] = "parametricMaps_getJacobianValuesTrace";
2142 static const char __pyx_k_parametricMaps_getJacobianValues_3[] = "parametricMaps_getJacobianValuesGlobalExteriorTrace";
2143 static const char __pyx_k_parametricMaps_getJacobianValues_4[] = "parametricMaps_getJacobianValuesGlobalExteriorTrace_movingDomain";
2144 static const char __pyx_k_updateDiffusionJacobian_MixedFor_2[] = "updateDiffusionJacobian_MixedForm_weak_sd";
2145 static const char __pyx_k_updateExteriorElementBoundaryDif_2[] = "updateExteriorElementBoundaryDiffusiveVelocity_sd";
2146 static const char __pyx_k_updateExteriorElementBoundaryDif_3[] = "updateExteriorElementBoundaryDiffusionAdjoint";
2147 static const char __pyx_k_updateExteriorElementBoundaryDif_4[] = "updateExteriorElementBoundaryDiffusionAdjoint_sd";
2148 static const char __pyx_k_updateExteriorElementBoundary_Mi_2[] = "updateExteriorElementBoundary_MixedForm_weakJacobian";
2149 static const char __pyx_k_updateGlobalJacobianFromElementJ_2[] = "updateGlobalJacobianFromElementJacobian_eb_dense";
2150 static const char __pyx_k_updateGlobalJacobianFromElementJ_3[] = "updateGlobalJacobianFromElementJacobian_CSR";
2151 static const char __pyx_k_updateGlobalJacobianFromElementJ_4[] = "updateGlobalJacobianFromElementJacobian_eb_CSR";
2152 static const char __pyx_k_updateGlobalJacobianFromExterior_2[] = "updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_eb_dense";
2153 static const char __pyx_k_updateGlobalJacobianFromExterior_3[] = "updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_CSR";
2154 static const char __pyx_k_updateGlobalJacobianFromExterior_4[] = "updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_eb_CSR";
2155 static const char __pyx_k_updateGlobalJacobianFromExterior_5[] = "updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense";
2156 static const char __pyx_k_updateGlobalJacobianFromExterior_6[] = "updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense_sd";
2157 static const char __pyx_k_updateGlobalJacobianFromExterior_7[] = "updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_CSR_sd";
2158 static const char __pyx_k_updateGlobalJacobianFromInterior_2[] = "updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense";
2159 static const char __pyx_k_updateGlobalJacobianFromInterior_3[] = "updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_dense";
2160 static const char __pyx_k_updateGlobalJacobianFromInterior_4[] = "updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_eb_dense";
2161 static const char __pyx_k_updateGlobalJacobianFromInterior_5[] = "updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_CSR";
2162 static const char __pyx_k_updateGlobalJacobianFromInterior_6[] = "updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_eb_CSR";
2163 static const char __pyx_k_updateGlobalJacobianFromInterior_7[] = "updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense";
2164 static const char __pyx_k_updateGlobalJacobianFromInterior_8[] = "updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense_sd";
2165 static const char __pyx_k_updateGlobalJacobianFromInterior_9[] = "updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_CSR_sd";
2166 static const char __pyx_k_updateInteriorElementBoundaryDif_2[] = "updateInteriorElementBoundaryDiffusiveVelocity_sd";
2167 static const char __pyx_k_updateInteriorElementBoundaryDif_3[] = "updateInteriorElementBoundaryDiffusionAdjoint";
2168 static const char __pyx_k_updateInteriorElementBoundaryDif_4[] = "updateInteriorElementBoundaryDiffusionAdjoint_sd";
2169 static const char __pyx_k_updateInteriorElementBoundary_Mi_2[] = "updateInteriorElementBoundary_MixedForm_weakJacobian";
2170 static const char __pyx_k_updateNumericalDiffusionJacobian_2[] = "updateNumericalDiffusionJacobian_lowmem";
2171 static PyObject *__pyx_n_s_A_inv;
2172 static PyObject *__pyx_n_s_DV;
2173 static PyObject *__pyx_n_s_DV_eb;
2174 static PyObject *__pyx_n_s_F;
2175 static PyObject *__pyx_n_s_H;
2176 static PyObject *__pyx_n_s_Hess_phi;
2177 static PyObject *__pyx_n_s_Hess_v;
2178 static PyObject *__pyx_n_s_Hess_w;
2179 static PyObject *__pyx_n_s_Hess_w_dV;
2180 static PyObject *__pyx_n_s_Hessian_psi;
2181 static PyObject *__pyx_n_s_Hessian_u;
2182 static PyObject *__pyx_n_s_Hessian_v;
2183 static PyObject *__pyx_n_s_Hessian_vArray;
2184 static PyObject *__pyx_n_s_ImportError;
2185 static PyObject *__pyx_n_s_Lstar_w_dV;
2186 static PyObject *__pyx_n_s_V;
2187 static PyObject *__pyx_n_s_a;
2188 static PyObject *__pyx_n_s_abs_det_J;
2189 static PyObject *__pyx_n_s_abs_det_jac;
2190 static PyObject *__pyx_n_s_b;
2191 static PyObject *__pyx_n_s_boundaryJacobians;
2192 static PyObject *__pyx_n_s_boundaryNormals;
2193 static PyObject *__pyx_n_s_calculateCFLADR;
2194 static PyObject *__pyx_n_s_calculateCFLADR2speeds;
2195 static PyObject *__pyx_n_s_calculateConservationFluxPWL;
2196 static PyObject *__pyx_n_s_calculateConservationJacobianPWL;
2197 static PyObject *__pyx_n_s_calculateConservationResidual;
2198 static PyObject *__pyx_n_s_calculateConservationResidualDG;
2199 static PyObject *__pyx_n_s_calculateConservationResidualGlo;
2200 static PyObject *__pyx_n_s_calculateConservationResidualPWL;
2201 static PyObject *__pyx_n_s_calculateDimensionlessNumbersADR;
2202 static PyObject *__pyx_n_s_calculateDimensionlessNumbersADR_2;
2203 static PyObject *__pyx_n_s_calculateElementBoundaryIntegrat;
2204 static PyObject *__pyx_n_s_calculateExteriorElementBoundary;
2205 static PyObject *__pyx_n_s_calculateExteriorElementBoundary_2;
2206 static PyObject *__pyx_n_s_calculateExteriorElementBoundary_3;
2207 static PyObject *__pyx_n_s_calculateExteriorElementBoundary_4;
2208 static PyObject *__pyx_n_s_calculateExteriorNumericalTrace;
2209 static PyObject *__pyx_n_s_calculateFiniteElementFunctionGr;
2210 static PyObject *__pyx_n_s_calculateFiniteElementFunctionGr_2;
2211 static PyObject *__pyx_n_s_calculateFiniteElementFunctionGr_3;
2212 static PyObject *__pyx_n_s_calculateFiniteElementFunctionGr_4;
2213 static PyObject *__pyx_n_s_calculateFiniteElementFunctionHe;
2214 static PyObject *__pyx_n_s_calculateFiniteElementFunctionVa;
2215 static PyObject *__pyx_n_s_calculateFiniteElementFunctionVa_2;
2216 static PyObject *__pyx_n_s_calculateFiniteElementFunctionVa_3;
2217 static PyObject *__pyx_n_s_calculateFlowVelocity;
2218 static PyObject *__pyx_n_s_calculateGlobalExteriorElementBo;
2219 static PyObject *__pyx_n_s_calculateGradShape_X_weightedGra;
2220 static PyObject *__pyx_n_s_calculateGradShape_X_weightedSha;
2221 static PyObject *__pyx_n_s_calculateGradShape_X_weightedSha_2;
2222 static PyObject *__pyx_n_s_calculateGradShape_X_weightedSha_3;
2223 static PyObject *__pyx_n_s_calculateIntegrationWeights;
2224 static PyObject *__pyx_n_s_calculateInteriorElementBoundary;
2225 static PyObject *__pyx_n_s_calculateInteriorElementBoundary_2;
2226 static PyObject *__pyx_n_s_calculateInteriorNumericalTrace;
2227 static PyObject *__pyx_n_s_calculateScalarScalarProduct;
2228 static PyObject *__pyx_n_s_calculateShape_X_weightedGradSha;
2229 static PyObject *__pyx_n_s_calculateShape_X_weightedShape;
2230 static PyObject *__pyx_n_s_calculateShape_X_weightedShapeGl;
2231 static PyObject *__pyx_n_s_calculateShape_X_weightedShapeTr;
2232 static PyObject *__pyx_n_s_calculateTensorScalarProduct;
2233 static PyObject *__pyx_n_s_calculateVectorScalarProduct;
2234 static PyObject *__pyx_n_s_calculateVelocityProjectionMatri;
2235 static PyObject *__pyx_n_s_calculateVelocityQuadrature_Mixe;
2236 static PyObject *__pyx_n_s_calculateVelocityQuadrature_Mixe_2;
2237 static PyObject *__pyx_n_s_calculateVelocityQuadrature_Mixe_3;
2238 static PyObject *__pyx_n_s_calculateVelocityQuadrature_Mixe_4;
2239 static PyObject *__pyx_n_s_calculateWeightedShape;
2240 static PyObject *__pyx_n_s_calculateWeightedShapeGlobalExte;
2241 static PyObject *__pyx_n_s_calculateWeightedShapeGradients;
2242 static PyObject *__pyx_n_s_calculateWeightedShapeHessians;
2243 static PyObject *__pyx_n_s_calculateWeightedShapeTrace;
2244 static PyObject *__pyx_n_s_cfemIntegrals;
2245 static PyObject *__pyx_n_s_cfl;
2246 static PyObject *__pyx_n_s_checkElementBoundaryAndExteriorE;
2247 static PyObject *__pyx_n_s_checkGlobalElementBoundaryAndExt;
2248 static PyObject *__pyx_n_s_cline_in_traceback;
2249 static PyObject *__pyx_n_s_colind;
2250 static PyObject *__pyx_n_s_colind_dummy;
2251 static PyObject *__pyx_n_s_computeC0P1InterpolantDGP0;
2252 static PyObject *__pyx_n_s_computeC0P1InterpolantDGP12;
2253 static PyObject *__pyx_n_s_computeC0P1InterpolantNCP1;
2254 static PyObject *__pyx_n_s_computeDiffusiveTimeStepLimit;
2255 static PyObject *__pyx_n_s_conservationResidual;
2256 static PyObject *__pyx_n_s_copyBetweenFreeUnknownsAndGlobal;
2257 static PyObject *__pyx_n_s_copyExteriorElementBoundaryValue;
2258 static PyObject *__pyx_n_s_copyExteriorElementBoundaryValue_2;
2259 static PyObject *__pyx_n_s_copyExteriorElementBoundaryValue_3;
2260 static PyObject *__pyx_n_s_copyExteriorElementBoundaryValue_4;
2261 static PyObject *__pyx_n_s_copyGlobalElementBoundaryVelocit;
2262 static PyObject *__pyx_n_s_copyLeftElementBoundaryInfo;
2263 static PyObject *__pyx_n_s_csrColumnOffsets_eb_eNebN_ru;
2264 static PyObject *__pyx_n_s_csrColumnOffsets_eb_ru;
2265 static PyObject *__pyx_n_s_csrColumnOffsets_ru;
2266 static PyObject *__pyx_n_s_csrRowIndeces_ru;
2267 static PyObject *__pyx_n_s_dH;
2268 static PyObject *__pyx_n_s_dS;
2269 static PyObject *__pyx_n_s_dSR;
2270 static PyObject *__pyx_n_s_dS_u;
2271 static PyObject *__pyx_n_s_dV;
2272 static PyObject *__pyx_n_s_dVR;
2273 static PyObject *__pyx_n_s_dX;
2274 static PyObject *__pyx_n_s_da;
2275 static PyObject *__pyx_n_s_db;
2276 static PyObject *__pyx_n_s_db_eb;
2277 static PyObject *__pyx_n_s_derror;
2278 static PyObject *__pyx_n_s_df;
2279 static PyObject *__pyx_n_s_df1;
2280 static PyObject *__pyx_n_s_df2;
2281 static PyObject *__pyx_n_s_dim_dof;
2282 static PyObject *__pyx_n_s_dm;
2283 static PyObject *__pyx_n_s_dmt;
2284 static PyObject *__pyx_n_s_dof;
2285 static PyObject *__pyx_n_s_dofs;
2286 static PyObject *__pyx_n_s_dphi;
2287 static PyObject *__pyx_n_s_dphi_trace_left;
2288 static PyObject *__pyx_n_s_dphi_trace_right;
2289 static PyObject *__pyx_n_s_dr;
2290 static PyObject *__pyx_n_s_dsigma_xx;
2291 static PyObject *__pyx_n_s_dsigma_xy;
2292 static PyObject *__pyx_n_s_dsigma_xz;
2293 static PyObject *__pyx_n_s_dsigma_yx;
2294 static PyObject *__pyx_n_s_dsigma_yy;
2295 static PyObject *__pyx_n_s_dsigma_yz;
2296 static PyObject *__pyx_n_s_dsigma_zx;
2297 static PyObject *__pyx_n_s_dsigma_zy;
2298 static PyObject *__pyx_n_s_dsigma_zz;
2299 static PyObject *__pyx_n_s_dstrong_residual;
2300 static PyObject *__pyx_n_s_ebq_global_val;
2301 static PyObject *__pyx_n_s_ebq_val;
2302 static PyObject *__pyx_n_s_ebqe_val;
2303 static PyObject *__pyx_n_s_elementBoundaryElements;
2304 static PyObject *__pyx_n_s_elementBoundaryElementsArray;
2305 static PyObject *__pyx_n_s_elementBoundaryFluxJacobian;
2306 static PyObject *__pyx_n_s_elementBoundaryFluxJacobian_2sid;
2307 static PyObject *__pyx_n_s_elementBoundaryFluxJacobian_eb;
2308 static PyObject *__pyx_n_s_elementBoundaryLocalElementBound;
2309 static PyObject *__pyx_n_s_elementBoundaryLocalElementBound_2;
2310 static PyObject *__pyx_n_s_elementBoundaryMaterialTypes;
2311 static PyObject *__pyx_n_s_elementDiameter;
2312 static PyObject *__pyx_n_s_elementJacobian;
2313 static PyObject *__pyx_n_s_elementJacobian_eb;
2314 static PyObject *__pyx_n_s_elementNeighbors;
2315 static PyObject *__pyx_n_s_elementNodes;
2316 static PyObject *__pyx_n_s_elementNodesArray;
2317 static PyObject *__pyx_n_s_elementResidual;
2318 static PyObject *__pyx_n_s_elementSpatialResidual;
2319 static PyObject *__pyx_n_s_end;
2320 static PyObject *__pyx_n_s_epsFact;
2321 static PyObject *__pyx_n_s_error;
2322 static PyObject *__pyx_kp_s_error_copyFromFreeToGlobal;
2323 static PyObject *__pyx_kp_s_error_in_getJacobianValuesTrace;
2324 static PyObject *__pyx_kp_s_error_in_getJacobianValues_jacob;
2325 static PyObject *__pyx_n_s_estimate_mt;
2326 static PyObject *__pyx_n_s_estimate_mt_lowmem;
2327 static PyObject *__pyx_n_s_exteriorElementBoundaries;
2328 static PyObject *__pyx_n_s_exteriorElementBoundariesArray;
2329 static PyObject *__pyx_n_s_f;
2330 static PyObject *__pyx_n_s_file;
2331 static PyObject *__pyx_n_s_firstBadIndex;
2332 static PyObject *__pyx_n_s_flag;
2333 static PyObject *__pyx_n_s_flux;
2334 static PyObject *__pyx_n_s_fluxDomainBoundaryIntegral;
2335 static PyObject *__pyx_n_s_fluxDomainBoundaryIntegralFromVe;
2336 static PyObject *__pyx_n_s_fluxElementBoundaries;
2337 static PyObject *__pyx_n_s_freeDOFids;
2338 static PyObject *__pyx_n_s_freeGlobal_r;
2339 static PyObject *__pyx_n_s_freeGlobal_u;
2340 static PyObject *__pyx_n_s_freeLocal_r;
2341 static PyObject *__pyx_n_s_freeLocal_u;
2342 static PyObject *__pyx_n_s_free_u;
2343 static PyObject *__pyx_n_s_functional_map_element;
2344 static PyObject *__pyx_n_s_getCSRrepresentation;
2345 static PyObject *__pyx_n_s_getPermutationsGlobal;
2346 static PyObject *__pyx_n_s_globalDOFids;
2347 static PyObject *__pyx_n_s_globalJacobian;
2348 static PyObject *__pyx_n_s_globalJacobian_array;
2349 static PyObject *__pyx_n_s_globalResidual;
2350 static PyObject *__pyx_n_s_grad_phi;
2351 static PyObject *__pyx_n_s_grad_phi_X_grad_w_dV;
2352 static PyObject *__pyx_n_s_grad_psi;
2353 static PyObject *__pyx_n_s_grad_u;
2354 static PyObject *__pyx_n_s_grad_u_X_grad_w_dV;
2355 static PyObject *__pyx_n_s_grad_v;
2356 static PyObject *__pyx_n_s_grad_vArray;
2357 static PyObject *__pyx_n_s_grad_v_X_grad_w_dV;
2358 static PyObject *__pyx_n_s_grad_v_X_w_dS;
2359 static PyObject *__pyx_n_s_grad_v_X_w_dV;
2360 static PyObject *__pyx_n_s_grad_w;
2361 static PyObject *__pyx_n_s_grad_w_dV;
2362 static PyObject *__pyx_n_s_i;
2363 static PyObject *__pyx_n_s_import;
2364 static PyObject *__pyx_n_s_interiorElementBoundaries;
2365 static PyObject *__pyx_n_s_interiorElementBoundariesArray;
2366 static PyObject *__pyx_n_s_internalNodes;
2367 static PyObject *__pyx_n_s_interpolationValues;
2368 static PyObject *__pyx_n_s_inverseJacobian;
2369 static PyObject *__pyx_n_s_inverseJacobianArray;
2370 static PyObject *__pyx_n_s_isDOFBoundary;
2371 static PyObject *__pyx_n_s_jac;
2372 static PyObject *__pyx_n_s_jacIndex;
2373 static PyObject *__pyx_n_s_jac_array;
2374 static PyObject *__pyx_n_s_jacobian;
2375 static PyObject *__pyx_n_s_jacobianArray;
2376 static PyObject *__pyx_n_s_jacobianDeterminantArray;
2377 static PyObject *__pyx_n_s_jacobianInverseArray;
2378 static PyObject *__pyx_n_s_jacobian_eb;
2379 static PyObject *__pyx_n_s_jacobian_weak_residual;
2380 static PyObject *__pyx_n_s_jacobian_weak_residual_eb;
2381 static PyObject *__pyx_n_s_jacobian_weak_residual_xx;
2382 static PyObject *__pyx_n_s_jacobian_weak_residual_xy;
2383 static PyObject *__pyx_n_s_jacobian_weak_residual_xz;
2384 static PyObject *__pyx_n_s_jacobian_weak_residual_yx;
2385 static PyObject *__pyx_n_s_jacobian_weak_residual_yy;
2386 static PyObject *__pyx_n_s_jacobian_weak_residual_yz;
2387 static PyObject *__pyx_n_s_jacobian_weak_residual_zx;
2388 static PyObject *__pyx_n_s_jacobian_weak_residual_zy;
2389 static PyObject *__pyx_n_s_jacobian_weak_residual_zz;
2390 static PyObject *__pyx_n_s_l2g;
2391 static PyObject *__pyx_n_s_loadBoundaryFluxIntoGlobalElemen;
2392 static PyObject *__pyx_n_s_m;
2393 static PyObject *__pyx_n_s_mAverage;
2394 static PyObject *__pyx_n_s_mJump;
2395 static PyObject *__pyx_n_s_main;
2396 static PyObject *__pyx_n_s_metricTensorArray;
2397 static PyObject *__pyx_n_s_metricTensorDeterminantSqrtArray;
2398 static PyObject *__pyx_n_s_mom_flux_vec_u;
2399 static PyObject *__pyx_n_s_mom_flux_vec_v;
2400 static PyObject *__pyx_n_s_mom_flux_vec_w;
2401 static PyObject *__pyx_n_s_mt;
2402 static PyObject *__pyx_n_s_n;
2403 static PyObject *__pyx_n_s_nComponents;
2404 static PyObject *__pyx_n_s_nDOF2set;
2405 static PyObject *__pyx_n_s_nDOF_element;
2406 static PyObject *__pyx_n_s_nDOF_test_element;
2407 static PyObject *__pyx_n_s_nDOF_trial_element;
2408 static PyObject *__pyx_n_s_nElementBoundaries_element;
2409 static PyObject *__pyx_n_s_nElementBoundaries_global;
2410 static PyObject *__pyx_n_s_nElementBoundaries_owned;
2411 static PyObject *__pyx_n_s_nElementBoundaryQuadraturePoints;
2412 static PyObject *__pyx_n_s_nElements_global;
2413 static PyObject *__pyx_n_s_nElements_node;
2414 static PyObject *__pyx_n_s_nExteriorElementBoundaries;
2415 static PyObject *__pyx_n_s_nExteriorElementBoundaries_globa;
2416 static PyObject *__pyx_n_s_nFreeDOF_element_r;
2417 static PyObject *__pyx_n_s_nFreeDOF_element_u;
2418 static PyObject *__pyx_n_s_nFreeVDOF_global;
2419 static PyObject *__pyx_n_s_nInteriorElementBoundaries_globa;
2420 static PyObject *__pyx_n_s_nNodes_element;
2421 static PyObject *__pyx_n_s_nNodes_global;
2422 static PyObject *__pyx_n_s_nNodes_internal;
2423 static PyObject *__pyx_n_s_nNonzeros;
2424 static PyObject *__pyx_n_s_nQuadraturePoints_element;
2425 static PyObject *__pyx_n_s_nQuadraturePoints_elementBoundar;
2426 static PyObject *__pyx_n_s_nSpace;
2427 static PyObject *__pyx_n_s_nSpace_global;
2428 static PyObject *__pyx_n_s_nValueArray;
2429 static PyObject *__pyx_n_s_nValuesPerQuadraturePoint;
2430 static PyObject *__pyx_n_s_name;
2431 static PyObject *__pyx_n_s_nd;
2432 static PyObject *__pyx_n_s_ng;
2433 static PyObject *__pyx_n_s_nodalAverage;
2434 static PyObject *__pyx_n_s_nodeArray;
2435 static PyObject *__pyx_n_s_nodeElementOffsets;
2436 static PyObject *__pyx_n_s_nodeElementsArray;
2437 static PyObject *__pyx_n_s_nodeStarElementNeighbors;
2438 static PyObject *__pyx_n_s_nodeStarElements;
2439 static PyObject *__pyx_n_s_nodeStarJacobianOffsets;
2440 static PyObject *__pyx_n_s_nodeStarOffsets;
2441 static PyObject *__pyx_n_s_normal;
2442 static PyObject *__pyx_kp_s_not_recognized_quitting;
2443 static PyObject *__pyx_n_s_np;
2444 static PyObject *__pyx_n_s_numDiff;
2445 static PyObject *__pyx_n_s_numpy;
2446 static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to;
2447 static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor;
2448 static PyObject *__pyx_n_s_offset;
2449 static PyObject *__pyx_n_s_offset_r;
2450 static PyObject *__pyx_n_s_offset_u;
2451 static PyObject *__pyx_n_s_output;
2452 static PyObject *__pyx_n_s_p;
2453 static PyObject *__pyx_n_s_parametricFiniteElementSpace_get;
2454 static PyObject *__pyx_n_s_parametricFiniteElementSpace_get_2;
2455 static PyObject *__pyx_n_s_parametricFiniteElementSpace_get_3;
2456 static PyObject *__pyx_n_s_parametricFiniteElementSpace_get_4;
2457 static PyObject *__pyx_n_s_parametricFiniteElementSpace_get_5;
2458 static PyObject *__pyx_n_s_parametricFiniteElementSpace_get_6;
2459 static PyObject *__pyx_n_s_parametricFiniteElementSpace_get_7;
2460 static PyObject *__pyx_n_s_parametricMaps_getInverseValues;
2461 static PyObject *__pyx_n_s_parametricMaps_getInverseValuesG;
2462 static PyObject *__pyx_n_s_parametricMaps_getInverseValuesT;
2463 static PyObject *__pyx_n_s_parametricMaps_getJacobianValues;
2464 static PyObject *__pyx_n_s_parametricMaps_getJacobianValues_2;
2465 static PyObject *__pyx_n_s_parametricMaps_getJacobianValues_3;
2466 static PyObject *__pyx_n_s_parametricMaps_getJacobianValues_4;
2467 static PyObject *__pyx_n_s_parametricMaps_getPermutations;
2468 static PyObject *__pyx_n_s_parametricMaps_getPermutationsGl;
2469 static PyObject *__pyx_n_s_parametricMaps_getValues;
2470 static PyObject *__pyx_n_s_parametricMaps_getValuesGlobalEx;
2471 static PyObject *__pyx_n_s_parametricMaps_getValuesTrace;
2472 static PyObject *__pyx_n_s_pe;
2473 static PyObject *__pyx_n_s_permutations;
2474 static PyObject *__pyx_n_s_phi;
2475 static PyObject *__pyx_n_s_phi_bc;
2476 static PyObject *__pyx_n_s_phi_trace;
2477 static PyObject *__pyx_n_s_print;
2478 static PyObject *__pyx_n_s_projectFromNodalInterpolationCon;
2479 static PyObject *__pyx_kp_s_proteus_cfemIntegrals_pyx;
2480 static PyObject *__pyx_n_s_psi;
2481 static PyObject *__pyx_n_s_qDV;
2482 static PyObject *__pyx_n_s_qDV_eb;
2483 static PyObject *__pyx_n_s_qV;
2484 static PyObject *__pyx_n_s_qa;
2485 static PyObject *__pyx_n_s_qv;
2486 static PyObject *__pyx_n_s_qw_dV;
2487 static PyObject *__pyx_n_s_r;
2488 static PyObject *__pyx_n_s_range;
2489 static PyObject *__pyx_n_s_referenceWeights;
2490 static PyObject *__pyx_n_s_residual;
2491 static PyObject *__pyx_n_s_rho_split;
2492 static PyObject *__pyx_n_s_rowptr;
2493 static PyObject *__pyx_n_s_rowptr_dummy;
2494 static PyObject *__pyx_n_s_s;
2495 static PyObject *__pyx_n_s_s1;
2496 static PyObject *__pyx_n_s_s2;
2497 static PyObject *__pyx_n_s_sResult;
2498 static PyObject *__pyx_n_s_scalarDomainIntegral;
2499 static PyObject *__pyx_n_s_scalarHeavisideDomainIntegral;
2500 static PyObject *__pyx_n_s_scalarSmoothedHeavisideDomainInt;
2501 static PyObject *__pyx_n_s_setExteriorGlobalElementBoundary;
2502 static PyObject *__pyx_n_s_sigma;
2503 static PyObject *__pyx_n_s_sqrt_det_g;
2504 static PyObject *__pyx_n_s_starJ;
2505 static PyObject *__pyx_n_s_starJacobian;
2506 static PyObject *__pyx_n_s_starR;
2507 static PyObject *__pyx_n_s_starU;
2508 static PyObject *__pyx_n_s_stride;
2509 static PyObject *__pyx_n_s_stride_r;
2510 static PyObject *__pyx_n_s_stride_u;
2511 static PyObject *__pyx_n_s_strong_residual;
2512 static PyObject *__pyx_n_s_t;
2513 static PyObject *__pyx_n_s_tResult;
2514 static PyObject *__pyx_n_s_test;
2515 static PyObject *__pyx_n_s_tolerance;
2516 static PyObject *__pyx_n_s_u;
2517 static PyObject *__pyx_n_s_ub;
2518 static PyObject *__pyx_n_s_unitNormalArray;
2519 static PyObject *__pyx_n_s_updateAddJacobian_CSR;
2520 static PyObject *__pyx_n_s_updateAdvectionJacobian_strong;
2521 static PyObject *__pyx_n_s_updateAdvectionJacobian_weak;
2522 static PyObject *__pyx_n_s_updateAdvectionJacobian_weak_low;
2523 static PyObject *__pyx_n_s_updateAdvection_adjoint;
2524 static PyObject *__pyx_n_s_updateAdvection_strong;
2525 static PyObject *__pyx_n_s_updateAdvection_weak;
2526 static PyObject *__pyx_n_s_updateCoef;
2527 static PyObject *__pyx_n_s_updateDiffusion2_adjoint;
2528 static PyObject *__pyx_n_s_updateDiffusion2_adjoint_sd;
2529 static PyObject *__pyx_n_s_updateDiffusion2_strong;
2530 static PyObject *__pyx_n_s_updateDiffusion2_strong_sd;
2531 static PyObject *__pyx_n_s_updateDiffusionJacobian2_strong;
2532 static PyObject *__pyx_n_s_updateDiffusionJacobian2_strong_2;
2533 static PyObject *__pyx_n_s_updateDiffusionJacobian_MixedFor;
2534 static PyObject *__pyx_n_s_updateDiffusionJacobian_MixedFor_2;
2535 static PyObject *__pyx_n_s_updateDiffusionJacobian_strong;
2536 static PyObject *__pyx_n_s_updateDiffusionJacobian_strong_s;
2537 static PyObject *__pyx_n_s_updateDiffusionJacobian_weak;
2538 static PyObject *__pyx_n_s_updateDiffusionJacobian_weak_low;
2539 static PyObject *__pyx_n_s_updateDiffusionJacobian_weak_sd;
2540 static PyObject *__pyx_n_s_updateDiffusion_MixedForm_weak;
2541 static PyObject *__pyx_n_s_updateDiffusion_MixedForm_weak_s;
2542 static PyObject *__pyx_n_s_updateDiffusion_adjoint;
2543 static PyObject *__pyx_n_s_updateDiffusion_adjoint_sd;
2544 static PyObject *__pyx_n_s_updateDiffusion_strong;
2545 static PyObject *__pyx_n_s_updateDiffusion_strong_sd;
2546 static PyObject *__pyx_n_s_updateDiffusion_weak;
2547 static PyObject *__pyx_n_s_updateDiffusion_weak_lowmem;
2548 static PyObject *__pyx_n_s_updateDiffusion_weak_sd;
2549 static PyObject *__pyx_n_s_updateExteriorElementBoundaryAdv;
2550 static PyObject *__pyx_n_s_updateExteriorElementBoundaryDif;
2551 static PyObject *__pyx_n_s_updateExteriorElementBoundaryDif_2;
2552 static PyObject *__pyx_n_s_updateExteriorElementBoundaryDif_3;
2553 static PyObject *__pyx_n_s_updateExteriorElementBoundaryDif_4;
2554 static PyObject *__pyx_n_s_updateExteriorElementBoundaryFlu;
2555 static PyObject *__pyx_n_s_updateExteriorElementBoundarySho;
2556 static PyObject *__pyx_n_s_updateExteriorElementBoundary_Mi;
2557 static PyObject *__pyx_n_s_updateExteriorElementBoundary_Mi_2;
2558 static PyObject *__pyx_n_s_updateFluxValues;
2559 static PyObject *__pyx_n_s_updateGlobalJacobianFromElementJ;
2560 static PyObject *__pyx_n_s_updateGlobalJacobianFromElementJ_2;
2561 static PyObject *__pyx_n_s_updateGlobalJacobianFromElementJ_3;
2562 static PyObject *__pyx_n_s_updateGlobalJacobianFromElementJ_4;
2563 static PyObject *__pyx_n_s_updateGlobalJacobianFromExterior;
2564 static PyObject *__pyx_n_s_updateGlobalJacobianFromExterior_2;
2565 static PyObject *__pyx_n_s_updateGlobalJacobianFromExterior_3;
2566 static PyObject *__pyx_n_s_updateGlobalJacobianFromExterior_4;
2567 static PyObject *__pyx_n_s_updateGlobalJacobianFromExterior_5;
2568 static PyObject *__pyx_n_s_updateGlobalJacobianFromExterior_6;
2569 static PyObject *__pyx_n_s_updateGlobalJacobianFromExterior_7;
2570 static PyObject *__pyx_n_s_updateGlobalJacobianFromInterior;
2571 static PyObject *__pyx_n_s_updateGlobalJacobianFromInterior_2;
2572 static PyObject *__pyx_n_s_updateGlobalJacobianFromInterior_3;
2573 static PyObject *__pyx_n_s_updateGlobalJacobianFromInterior_4;
2574 static PyObject *__pyx_n_s_updateGlobalJacobianFromInterior_5;
2575 static PyObject *__pyx_n_s_updateGlobalJacobianFromInterior_6;
2576 static PyObject *__pyx_n_s_updateGlobalJacobianFromInterior_7;
2577 static PyObject *__pyx_n_s_updateGlobalJacobianFromInterior_8;
2578 static PyObject *__pyx_n_s_updateGlobalJacobianFromInterior_9;
2579 static PyObject *__pyx_n_s_updateGlobalResidualFromElementR;
2580 static PyObject *__pyx_n_s_updateHamiltonianJacobian_strong;
2581 static PyObject *__pyx_n_s_updateHamiltonianJacobian_weak;
2582 static PyObject *__pyx_n_s_updateHamiltonianJacobian_weak_l;
2583 static PyObject *__pyx_n_s_updateHamiltonian_adjoint;
2584 static PyObject *__pyx_n_s_updateHamiltonian_strong;
2585 static PyObject *__pyx_n_s_updateHamiltonian_weak;
2586 static PyObject *__pyx_n_s_updateInteriorElementBoundaryAdv;
2587 static PyObject *__pyx_n_s_updateInteriorElementBoundaryDif;
2588 static PyObject *__pyx_n_s_updateInteriorElementBoundaryDif_2;
2589 static PyObject *__pyx_n_s_updateInteriorElementBoundaryDif_3;
2590 static PyObject *__pyx_n_s_updateInteriorElementBoundaryDif_4;
2591 static PyObject *__pyx_n_s_updateInteriorElementBoundaryFlu;
2592 static PyObject *__pyx_n_s_updateInteriorElementBoundarySho;
2593 static PyObject *__pyx_n_s_updateInteriorElementBoundary_Mi;
2594 static PyObject *__pyx_n_s_updateInteriorElementBoundary_Mi_2;
2595 static PyObject *__pyx_n_s_updateInteriorTwoSidedElementBou;
2596 static PyObject *__pyx_n_s_updateMassJacobian_strong;
2597 static PyObject *__pyx_n_s_updateMassJacobian_weak;
2598 static PyObject *__pyx_n_s_updateMassJacobian_weak_lowmem;
2599 static PyObject *__pyx_n_s_updateMass_adjoint;
2600 static PyObject *__pyx_n_s_updateMass_strong;
2601 static PyObject *__pyx_n_s_updateMass_weak;
2602 static PyObject *__pyx_n_s_updateNumericalDiffusion;
2603 static PyObject *__pyx_n_s_updateNumericalDiffusionJacobian;
2604 static PyObject *__pyx_n_s_updateNumericalDiffusionJacobian_2;
2605 static PyObject *__pyx_n_s_updateNumericalDiffusion_lowmem;
2606 static PyObject *__pyx_n_s_updatePotential_MixedForm_weak;
2607 static PyObject *__pyx_n_s_updatePotential_MixedForm_weakJa;
2608 static PyObject *__pyx_n_s_updateReactionJacobian_strong;
2609 static PyObject *__pyx_n_s_updateReactionJacobian_weak;
2610 static PyObject *__pyx_n_s_updateReactionJacobian_weak_lowm;
2611 static PyObject *__pyx_n_s_updateReaction_adjoint;
2612 static PyObject *__pyx_n_s_updateReaction_strong;
2613 static PyObject *__pyx_n_s_updateReaction_weak;
2614 static PyObject *__pyx_n_s_updateStressJacobian_weak;
2615 static PyObject *__pyx_n_s_updateStress_weak;
2616 static PyObject *__pyx_n_s_updateSubgridError;
2617 static PyObject *__pyx_n_s_updateSubgridErrorJacobian;
2618 static PyObject *__pyx_n_s_update_f_movingDomain;
2619 static PyObject *__pyx_n_s_update_f_movingDomain_constantMa;
2620 static PyObject *__pyx_n_s_v;
2621 static PyObject *__pyx_n_s_vArray;
2622 static PyObject *__pyx_n_s_vAverage;
2623 static PyObject *__pyx_n_s_vConservative;
2624 static PyObject *__pyx_n_s_vConservative_element;
2625 static PyObject *__pyx_n_s_vJump;
2626 static PyObject *__pyx_n_s_vResult;
2627 static PyObject *__pyx_n_s_vXw_dV;
2628 static PyObject *__pyx_n_s_v_X_grad_w_dV;
2629 static PyObject *__pyx_n_s_v_X_w_dS;
2630 static PyObject *__pyx_n_s_v_X_w_dV;
2631 static PyObject *__pyx_n_s_v_out;
2632 static PyObject *__pyx_n_s_val;
2633 static PyObject *__pyx_n_s_velocity;
2634 static PyObject *__pyx_n_s_velocityBoundary_element;
2635 static PyObject *__pyx_n_s_velocityBoundary_global;
2636 static PyObject *__pyx_n_s_vn_in;
2637 static PyObject *__pyx_n_s_w;
2638 static PyObject *__pyx_n_s_w_dS;
2639 static PyObject *__pyx_n_s_w_dV;
2640 static PyObject *__pyx_n_s_weak_residual;
2641 static PyObject *__pyx_n_s_weak_residual_x;
2642 static PyObject *__pyx_n_s_weak_residual_y;
2643 static PyObject *__pyx_n_s_weak_residual_z;
2644 static PyObject *__pyx_n_s_weights;
2645 static PyObject *__pyx_n_s_x;
2646 static PyObject *__pyx_n_s_xArray;
2647 static PyObject *__pyx_n_s_xArrayNew;
2648 static PyObject *__pyx_n_s_xg;
2649 static PyObject *__pyx_n_s_xiArray;
2650 static PyObject *__pyx_n_s_xt;
2651 static PyObject *__pyx_n_s_xtArray;
2652 static PyObject *__pyx_n_s_zeroJacobian_CSR;
2653 static PyObject *__pyx_pf_13cfemIntegrals_parametricFiniteElementSpace_getHessianValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_Hessian_psi, PyArrayObject *__pyx_v_inverseJacobianArray, PyArrayObject *__pyx_v_Hessian_vArray); /* proto */
2654 static PyObject *__pyx_pf_13cfemIntegrals_2updateDiffusion2_strong(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_Hess_phi, PyArrayObject *__pyx_v_strong_residual); /* proto */
2655 static PyObject *__pyx_pf_13cfemIntegrals_4updateDiffusion2_strong_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_Hess_phi, PyArrayObject *__pyx_v_strong_residual); /* proto */
2656 static PyObject *__pyx_pf_13cfemIntegrals_6updateDiffusionJacobian2_strong(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_Hess_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_Hess_v, PyArrayObject *__pyx_v_dstrong_residual); /* proto */
2657 static PyObject *__pyx_pf_13cfemIntegrals_8updateDiffusionJacobian2_strong_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_Hess_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_Hess_v, PyArrayObject *__pyx_v_dstrong_residual); /* proto */
2658 static PyObject *__pyx_pf_13cfemIntegrals_10updateDiffusion2_adjoint(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_Hess_w_dV, PyArrayObject *__pyx_v_Lstar_w_dV); /* proto */
2659 static PyObject *__pyx_pf_13cfemIntegrals_12updateDiffusion2_adjoint_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_Hess_w_dV, PyArrayObject *__pyx_v_Lstar_w_dV); /* proto */
2660 static PyObject *__pyx_pf_13cfemIntegrals_14calculateWeightedShapeHessians(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dVR, PyArrayObject *__pyx_v_abs_det_jac, PyArrayObject *__pyx_v_Hess_w, PyArrayObject *__pyx_v_Hess_w_dV); /* proto */
2661 static PyObject *__pyx_pf_13cfemIntegrals_16calculateFiniteElementFunctionHessianValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_dof, PyArrayObject *__pyx_v_Hessian_v, PyArrayObject *__pyx_v_Hessian_u); /* proto */
2662 static PyObject *__pyx_pf_13cfemIntegrals_18updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_csrRowIndeces_ru, PyArrayObject *__pyx_v_csrColumnOffsets_eb_ru, PyArrayObject *__pyx_v_elementBoundaryFluxJacobian_2sided, PyArrayObject *__pyx_v_w_dS, PyObject *__pyx_v_jac); /* proto */
2663 static PyObject *__pyx_pf_13cfemIntegrals_20updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_offset_r, int __pyx_v_stride_r, int __pyx_v_offset_u, int __pyx_v_stride_u, int __pyx_v_nFreeVDOF_global, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_freeGlobal_u, PyArrayObject *__pyx_v_elementBoundaryFluxJacobian_2sided, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_jac); /* proto */
2664 static PyObject *__pyx_pf_13cfemIntegrals_22updateInteriorTwoSidedElementBoundaryFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_residual); /* proto */
2665 static PyObject *__pyx_pf_13cfemIntegrals_24calculateCFLADR2speeds(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_df1, PyArrayObject *__pyx_v_df2, PyArrayObject *__pyx_v_cfl); /* proto */
2666 static PyObject *__pyx_pf_13cfemIntegrals_26checkElementBoundaryAndExteriorElementBoundaryArraysSame(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_tolerance, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_ebq_val, PyArrayObject *__pyx_v_ebqe_val, PyArrayObject *__pyx_v_firstBadIndex); /* proto */
2667 static PyObject *__pyx_pf_13cfemIntegrals_28checkGlobalElementBoundaryAndExteriorElementBoundaryArraysSame(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_tolerance, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_ebq_global_val, PyArrayObject *__pyx_v_ebqe_val, PyArrayObject *__pyx_v_firstBadIndex); /* proto */
2668 static PyObject *__pyx_pf_13cfemIntegrals_30calculateExteriorElementBoundaryStress3D(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryMaterialTypes, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_p, PyArrayObject *__pyx_v_mom_flux_vec_u, PyArrayObject *__pyx_v_mom_flux_vec_v, PyArrayObject *__pyx_v_mom_flux_vec_w, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_F); /* proto */
2669 static PyObject *__pyx_pf_13cfemIntegrals_32calculateExteriorElementBoundaryStress2D(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryMaterialTypes, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_p, PyArrayObject *__pyx_v_mom_flux_vec_u, PyArrayObject *__pyx_v_mom_flux_vec_v, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_F); /* proto */
2670 static PyObject *__pyx_pf_13cfemIntegrals_34copyLeftElementBoundaryInfo(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_interiorElementBoundariesArray, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_xg, PyArrayObject *__pyx_v_ng); /* proto */
2671 static PyObject *__pyx_pf_13cfemIntegrals_36parametricFiniteElementSpace_getValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_psi, PyArrayObject *__pyx_v_vArray); /* proto */
2672 static PyObject *__pyx_pf_13cfemIntegrals_38parametricFiniteElementSpace_getValuesTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_psi, PyArrayObject *__pyx_v_permutations, PyArrayObject *__pyx_v_vArray); /* proto */
2673 static PyObject *__pyx_pf_13cfemIntegrals_40parametricFiniteElementSpace_getGradientValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_grad_psi, PyArrayObject *__pyx_v_inverseJacobianArray, PyArrayObject *__pyx_v_grad_vArray); /* proto */
2674 static PyObject *__pyx_pf_13cfemIntegrals_42parametricFiniteElementSpace_getGradientValuesTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_grad_psi, PyArrayObject *__pyx_v_permutations, PyArrayObject *__pyx_v_inverseJacobianArray, PyArrayObject *__pyx_v_grad_vArray); /* proto */
2675 static PyObject *__pyx_pf_13cfemIntegrals_44parametricMaps_getPermutations(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_xiArray, PyArrayObject *__pyx_v_permutations); /* proto */
2676 static PyObject *__pyx_pf_13cfemIntegrals_46parametricMaps_getPermutationsGlobalExterior(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_xiArray, PyArrayObject *__pyx_v_permutations); /* proto */
2677 static PyObject *__pyx_pf_13cfemIntegrals_48getPermutationsGlobal(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_xArray, PyArrayObject *__pyx_v_xArrayNew, PyArrayObject *__pyx_v_permutations); /* proto */
2678 static PyObject *__pyx_pf_13cfemIntegrals_50parametricMaps_getValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_psi, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_xArray); /* proto */
2679 static PyObject *__pyx_pf_13cfemIntegrals_52parametricMaps_getValuesTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_psi, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_xArray); /* proto */
2680 static PyObject *__pyx_pf_13cfemIntegrals_54parametricMaps_getInverseValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_inverseJacobian, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_xArray, PyArrayObject *__pyx_v_xiArray); /* proto */
2681 static PyObject *__pyx_pf_13cfemIntegrals_56parametricMaps_getInverseValuesTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_inverseJacobian, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_xArray, PyArrayObject *__pyx_v_xiArray); /* proto */
2682 static PyObject *__pyx_pf_13cfemIntegrals_58parametricMaps_getJacobianValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_grad_psi, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_jacobianArray, PyArrayObject *__pyx_v_jacobianDeterminantArray, PyArrayObject *__pyx_v_jacobianInverseArray); /* proto */
2683 static PyObject *__pyx_pf_13cfemIntegrals_60parametricMaps_getJacobianValuesTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_grad_psi, PyArrayObject *__pyx_v_boundaryNormals, PyArrayObject *__pyx_v_boundaryJacobians, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_jacobianInverseArray, PyArrayObject *__pyx_v_metricTensorArray, PyArrayObject *__pyx_v_metricTensorDeterminantSqrtArray, PyArrayObject *__pyx_v_unitNormalArray); /* proto */
2684 static PyObject *__pyx_pf_13cfemIntegrals_62updateMass_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_mt, PyArrayObject *__pyx_v_w_dV, PyArrayObject *__pyx_v_weak_residual); /* proto */
2685 static PyObject *__pyx_pf_13cfemIntegrals_64updateMassJacobian_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_v_X_w_dV, PyArrayObject *__pyx_v_jacobian_weak_residual); /* proto */
2686 static PyObject *__pyx_pf_13cfemIntegrals_66updateMassJacobian_weak_lowmem(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_w_dV, PyArrayObject *__pyx_v_jacobian_weak_residual); /* proto */
2687 static PyObject *__pyx_pf_13cfemIntegrals_68updateMass_strong(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_mt, PyArrayObject *__pyx_v_strong_residual); /* proto */
2688 static PyObject *__pyx_pf_13cfemIntegrals_70updateMassJacobian_strong(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_dstrong_residual); /* proto */
2689 static PyObject *__pyx_pf_13cfemIntegrals_72updateMass_adjoint(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_w_dV, PyArrayObject *__pyx_v_Lstar_w_dV); /* proto */
2690 static PyObject *__pyx_pf_13cfemIntegrals_74updateAdvection_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_weak_residual); /* proto */
2691 static PyObject *__pyx_pf_13cfemIntegrals_76updateAdvectionJacobian_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_v_X_grad_w_dV, PyArrayObject *__pyx_v_jacobian_weak_residual); /* proto */
2692 static PyObject *__pyx_pf_13cfemIntegrals_78updateAdvectionJacobian_weak_lowmem(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_jacobian_weak_residual); /* proto */
2693 static PyObject *__pyx_pf_13cfemIntegrals_80updateAdvection_strong(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_grad_u, PyArrayObject *__pyx_v_strong_residual); /* proto */
2694 static PyObject *__pyx_pf_13cfemIntegrals_82updateAdvectionJacobian_strong(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_dstrong_residual); /* proto */
2695 static PyObject *__pyx_pf_13cfemIntegrals_84updateAdvection_adjoint(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_Lstar_w_dV); /* proto */
2696 static PyObject *__pyx_pf_13cfemIntegrals_86updateHamiltonian_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_H, PyArrayObject *__pyx_v_w_dV, PyArrayObject *__pyx_v_weak_residual); /* proto */
2697 static PyObject *__pyx_pf_13cfemIntegrals_88updateHamiltonianJacobian_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_grad_v_X_w_dV, PyArrayObject *__pyx_v_jacobian_weak_residual); /* proto */
2698 static PyObject *__pyx_pf_13cfemIntegrals_90updateHamiltonianJacobian_weak_lowmem(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_w_dV, PyArrayObject *__pyx_v_jacobian_weak_residual); /* proto */
2699 static PyObject *__pyx_pf_13cfemIntegrals_92updateHamiltonian_strong(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_grad_u, PyArrayObject *__pyx_v_strong_residual); /* proto */
2700 static PyObject *__pyx_pf_13cfemIntegrals_94updateHamiltonianJacobian_strong(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_dstrong_residual); /* proto */
2701 static PyObject *__pyx_pf_13cfemIntegrals_96updateHamiltonian_adjoint(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_Lstar_w_dV); /* proto */
2702 static PyObject *__pyx_pf_13cfemIntegrals_98updateDiffusion_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi_X_grad_w_dV, PyArrayObject *__pyx_v_weak_residual); /* proto */
2703 static PyObject *__pyx_pf_13cfemIntegrals_100updateDiffusion_weak_lowmem(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_weak_residual); /* proto */
2704 static PyObject *__pyx_pf_13cfemIntegrals_102updateDiffusion_weak_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_weak_residual); /* proto */
2705 static PyObject *__pyx_pf_13cfemIntegrals_104updateDiffusionJacobian_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi_X_grad_w_dV, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v_X_grad_w_dV, PyArrayObject *__pyx_v_jacobian_weak_residual); /* proto */
2706 static PyObject *__pyx_pf_13cfemIntegrals_106updateDiffusionJacobian_weak_lowmem(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_jacobian_weak_residual); /* proto */
2707 static PyObject *__pyx_pf_13cfemIntegrals_108updateDiffusionJacobian_weak_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_jacobian_weak_residual); /* proto */
2708 static PyObject *__pyx_pf_13cfemIntegrals_110updateDiffusion_strong(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_grad_u, PyArrayObject *__pyx_v_strong_residual); /* proto */
2709 static PyObject *__pyx_pf_13cfemIntegrals_112updateDiffusion_strong_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_grad_u, PyArrayObject *__pyx_v_strong_residual); /* proto */
2710 static PyObject *__pyx_pf_13cfemIntegrals_114updateDiffusionJacobian_strong(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_grad_u, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_dstrong_residual); /* proto */
2711 static PyObject *__pyx_pf_13cfemIntegrals_116updateDiffusionJacobian_strong_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_grad_u, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_dstrong_residual); /* proto */
2712 static PyObject *__pyx_pf_13cfemIntegrals_118updateDiffusion_adjoint(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_Lstar_w_dV); /* proto */
2713 static PyObject *__pyx_pf_13cfemIntegrals_120updateDiffusion_adjoint_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_Lstar_w_dV); /* proto */
2714 static PyObject *__pyx_pf_13cfemIntegrals_122updateReaction_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_w_dV, PyArrayObject *__pyx_v_weak_residual); /* proto */
2715 static PyObject *__pyx_pf_13cfemIntegrals_124updateReactionJacobian_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_v_X_w_dV, PyArrayObject *__pyx_v_jacobian_weak_residual); /* proto */
2716 static PyObject *__pyx_pf_13cfemIntegrals_126updateReactionJacobian_weak_lowmem(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_w_dV, PyArrayObject *__pyx_v_jacobian_weak_residual); /* proto */
2717 static PyObject *__pyx_pf_13cfemIntegrals_128updateReaction_strong(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_strong_residual); /* proto */
2718 static PyObject *__pyx_pf_13cfemIntegrals_130updateReactionJacobian_strong(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_dstrong_residual); /* proto */
2719 static PyObject *__pyx_pf_13cfemIntegrals_132updateReaction_adjoint(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_w_dV, PyArrayObject *__pyx_v_Lstar_w_dV); /* proto */
2720 static PyObject *__pyx_pf_13cfemIntegrals_134updateSubgridError(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_error, PyArrayObject *__pyx_v_Lstar_w_dV, PyArrayObject *__pyx_v_weak_residual); /* proto */
2721 static PyObject *__pyx_pf_13cfemIntegrals_136updateSubgridErrorJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_derror, PyArrayObject *__pyx_v_Lstar_w_dV, PyArrayObject *__pyx_v_jacobian_weak_residual); /* proto */
2722 static PyObject *__pyx_pf_13cfemIntegrals_138updateNumericalDiffusion(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_numDiff, PyArrayObject *__pyx_v_grad_u_X_grad_w_dV, PyArrayObject *__pyx_v_weak_residual); /* proto */
2723 static PyObject *__pyx_pf_13cfemIntegrals_140updateNumericalDiffusion_lowmem(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_numDiff, PyArrayObject *__pyx_v_grad_u, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_weak_residual); /* proto */
2724 static PyObject *__pyx_pf_13cfemIntegrals_142updateNumericalDiffusionJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_numDiff, PyArrayObject *__pyx_v_grad_v_X_grad_w_dV, PyArrayObject *__pyx_v_jacobian_weak_residual); /* proto */
2725 static PyObject *__pyx_pf_13cfemIntegrals_144updateNumericalDiffusionJacobian_lowmem(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_numDiff, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_jacobian_weak_residual); /* proto */
2726 static PyObject *__pyx_pf_13cfemIntegrals_146calculateScalarScalarProduct(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_s1, PyArrayObject *__pyx_v_s2, PyArrayObject *__pyx_v_sResult); /* proto */
2727 static PyObject *__pyx_pf_13cfemIntegrals_148calculateVectorScalarProduct(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_s, PyArrayObject *__pyx_v_vResult); /* proto */
2728 static PyObject *__pyx_pf_13cfemIntegrals_150calculateTensorScalarProduct(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_t, PyArrayObject *__pyx_v_s, PyArrayObject *__pyx_v_tResult); /* proto */
2729 static PyObject *__pyx_pf_13cfemIntegrals_152updateInteriorElementBoundaryFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_residual); /* proto */
2730 static PyObject *__pyx_pf_13cfemIntegrals_154updateExteriorElementBoundaryFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_residual); /* proto */
2731 static PyObject *__pyx_pf_13cfemIntegrals_156updateGlobalResidualFromElementResidual(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_offset_r, int __pyx_v_stride_r, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_globalResidual); /* proto */
2732 static PyObject *__pyx_pf_13cfemIntegrals_158updateGlobalJacobianFromElementJacobian_dense(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_offset_r, int __pyx_v_stride_r, int __pyx_v_offset_u, int __pyx_v_stride_u, int __pyx_v_nFreeVDOF_global, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_freeGlobal_u, PyArrayObject *__pyx_v_elementJacobian, PyArrayObject *__pyx_v_globalJacobian); /* proto */
2733 static PyObject *__pyx_pf_13cfemIntegrals_160updateGlobalJacobianFromElementJacobian_eb_dense(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementNeighbors, int __pyx_v_offset_r, int __pyx_v_stride_r, int __pyx_v_offset_u, int __pyx_v_stride_u, int __pyx_v_nFreeVDOF_global, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_freeGlobal_u, PyArrayObject *__pyx_v_elementJacobian_eb, PyArrayObject *__pyx_v_globalJacobian); /* proto */
2734 static PyObject *__pyx_pf_13cfemIntegrals_162updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_dense(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_offset_r, int __pyx_v_stride_r, int __pyx_v_offset_u, int __pyx_v_stride_u, int __pyx_v_nFreeVDOF_global, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_freeGlobal_u, PyArrayObject *__pyx_v_elementBoundaryFluxJacobian, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_jac); /* proto */
2735 static PyObject *__pyx_pf_13cfemIntegrals_164updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_eb_dense(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementNeighbors, int __pyx_v_nElements_global, int __pyx_v_offset_r, int __pyx_v_stride_r, int __pyx_v_offset_u, int __pyx_v_stride_u, int __pyx_v_nFreeVDOF_global, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_freeGlobal_u, PyArrayObject *__pyx_v_elementBoundaryFluxJacobian_eb, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_jac); /* proto */
2736 static PyObject *__pyx_pf_13cfemIntegrals_166updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_dense(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_offset_r, int __pyx_v_stride_r, int __pyx_v_offset_u, int __pyx_v_stride_u, int __pyx_v_nFreeVDOF_global, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_freeGlobal_u, PyArrayObject *__pyx_v_elementBoundaryFluxJacobian, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_jac); /* proto */
2737 static PyObject *__pyx_pf_13cfemIntegrals_168updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_eb_dense(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementNeighbors, int __pyx_v_nElements_global, CYTHON_UNUSED int __pyx_v_nExteriorElementBoundaries_global, CYTHON_UNUSED int __pyx_v_nElementBoundaries_element, CYTHON_UNUSED int __pyx_v_nQuadraturePoints_elementBoundary, CYTHON_UNUSED int __pyx_v_nDOF_test_element, CYTHON_UNUSED int __pyx_v_nDOF_trial_element, int __pyx_v_offset_r, int __pyx_v_stride_r, int __pyx_v_offset_u, int __pyx_v_stride_u, int __pyx_v_nFreeVDOF_global, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_freeGlobal_u, PyArrayObject *__pyx_v_elementBoundaryFluxJacobian_eb, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_jac); /* proto */
2738 static PyObject *__pyx_pf_13cfemIntegrals_170updateGlobalJacobianFromElementJacobian_CSR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_csrRowIndeces_ru, PyArrayObject *__pyx_v_csrColumnOffsets_ru, PyArrayObject *__pyx_v_elementJacobian, PyObject *__pyx_v_globalJacobian); /* proto */
2739 static PyObject *__pyx_pf_13cfemIntegrals_172updateGlobalJacobianFromElementJacobian_eb_CSR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementNeighbors, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_csrRowIndeces_ru, PyArrayObject *__pyx_v_csrColumnOffsets_eb_ru, PyArrayObject *__pyx_v_elementJacobian_eb, PyObject *__pyx_v_globalJacobian); /* proto */
2740 static PyObject *__pyx_pf_13cfemIntegrals_174updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_CSR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_csrRowIndeces_ru, PyArrayObject *__pyx_v_csrColumnOffsets_eb_ru, PyArrayObject *__pyx_v_elementBoundaryFluxJacobian, PyArrayObject *__pyx_v_w_dS, PyObject *__pyx_v_jac); /* proto */
2741 static PyObject *__pyx_pf_13cfemIntegrals_176updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_CSR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_csrRowIndeces_ru, PyArrayObject *__pyx_v_csrColumnOffsets_eb_ru, PyArrayObject *__pyx_v_elementBoundaryFluxJacobian, PyArrayObject *__pyx_v_w_dS, PyObject *__pyx_v_jac); /* proto */
2742 static PyObject *__pyx_pf_13cfemIntegrals_178updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_eb_CSR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementNeighbors, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_csrRowIndeces_ru, PyArrayObject *__pyx_v_csrColumnOffsets_eb_eNebN_ru, PyArrayObject *__pyx_v_elementBoundaryFluxJacobian_eb, PyArrayObject *__pyx_v_w_dS, PyObject *__pyx_v_jac); /* proto */
2743 static PyObject *__pyx_pf_13cfemIntegrals_180updateGlobalJacobianFromExteriorElementBoundaryFluxJacobian_eb_CSR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementNeighbors, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_csrRowIndeces_ru, PyArrayObject *__pyx_v_csrColumnOffsets_eb_eNebN_ru, PyArrayObject *__pyx_v_elementBoundaryFluxJacobian_eb, PyArrayObject *__pyx_v_w_dS, PyObject *__pyx_v_jac); /* proto */
2744 static PyObject *__pyx_pf_13cfemIntegrals_182calculateWeightedShape(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dVR, PyArrayObject *__pyx_v_abs_det_jac, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_w_dV); /* proto */
2745 static PyObject *__pyx_pf_13cfemIntegrals_184calculateWeightedShapeGradients(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dVR, PyArrayObject *__pyx_v_abs_det_jac, PyArrayObject *__pyx_v_grad_w, PyArrayObject *__pyx_v_grad_w_dV); /* proto */
2746 static PyObject *__pyx_pf_13cfemIntegrals_186calculateShape_X_weightedShape(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_w_dV, PyArrayObject *__pyx_v_v_X_w_dV); /* proto */
2747 static PyObject *__pyx_pf_13cfemIntegrals_188calculateShape_X_weightedGradShape(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_v_X_grad_w_dV); /* proto */
2748 static PyObject *__pyx_pf_13cfemIntegrals_190calculateGradShape_X_weightedShape(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_w_dV, PyArrayObject *__pyx_v_grad_v_X_w_dV); /* proto */
2749 static PyObject *__pyx_pf_13cfemIntegrals_192calculateGradShape_X_weightedGradShape(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_grad_v_X_grad_w_dV); /* proto */
2750 static PyObject *__pyx_pf_13cfemIntegrals_194calculateWeightedShapeTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dSR, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_w_dS); /* proto */
2751 static PyObject *__pyx_pf_13cfemIntegrals_196calculateShape_X_weightedShapeTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_v_X_w_dS); /* proto */
2752 static PyObject *__pyx_pf_13cfemIntegrals_198calculateGradShape_X_weightedShapeTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_grad_v_X_w_dS); /* proto */
2753 static PyObject *__pyx_pf_13cfemIntegrals_200calculateIntegrationWeights(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_referenceWeights, PyArrayObject *__pyx_v_weights); /* proto */
2754 static PyObject *__pyx_pf_13cfemIntegrals_202calculateElementBoundaryIntegrationWeights(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_referenceWeights, PyArrayObject *__pyx_v_weights); /* proto */
2755 static PyObject *__pyx_pf_13cfemIntegrals_204calculateFiniteElementFunctionValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_dof, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_u); /* proto */
2756 static PyObject *__pyx_pf_13cfemIntegrals_206calculateFiniteElementFunctionGradientValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_dof, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_grad_u); /* proto */
2757 static PyObject *__pyx_pf_13cfemIntegrals_208calculateFiniteElementFunctionGradientTensorValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_dof, PyArrayObject *__pyx_v_grad_v_X_grad_w_dV, PyArrayObject *__pyx_v_grad_u_X_grad_w_dV); /* proto */
2758 static PyObject *__pyx_pf_13cfemIntegrals_210calculateFiniteElementFunctionValuesTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_dof, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_u); /* proto */
2759 static PyObject *__pyx_pf_13cfemIntegrals_212calculateFiniteElementFunctionGradientValuesTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_dof, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_grad_u); /* proto */
2760 static PyObject *__pyx_pf_13cfemIntegrals_214calculateFlowVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_v); /* proto */
2761 static PyObject *__pyx_pf_13cfemIntegrals_216updateAddJacobian_CSR(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_jacIndex, double __pyx_v_val, PyObject *__pyx_v_jac); /* proto */
2762 static PyObject *__pyx_pf_13cfemIntegrals_218zeroJacobian_CSR(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nNonzeros, PyObject *__pyx_v_jac); /* proto */
2763 static PyObject *__pyx_pf_13cfemIntegrals_220calculateInteriorElementBoundaryVelocities(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nInteriorElementBoundaries_global, int __pyx_v_nElementBoundaries_element, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_m, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_vAverage, PyArrayObject *__pyx_v_vJump, PyArrayObject *__pyx_v_mAverage, PyArrayObject *__pyx_v_mJump); /* proto */
2764 static PyObject *__pyx_pf_13cfemIntegrals_222calculateExteriorElementBoundaryVelocities(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nElementBoundaries_element, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_m, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_vAverage, PyArrayObject *__pyx_v_vJump, PyArrayObject *__pyx_v_mAverage, PyArrayObject *__pyx_v_mJump); /* proto */
2765 static PyObject *__pyx_pf_13cfemIntegrals_224calculateConservationResidualPWL(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nElements_global, int __pyx_v_nInteriorElementBoundaries_global, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nElementBoundaries_element, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nNodes_element, int __pyx_v_nSpace, 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_nodeStarOffsets, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_vAverage, PyArrayObject *__pyx_v_starU, PyArrayObject *__pyx_v_dX, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_normal, PyArrayObject *__pyx_v_conservationResidual, PyArrayObject *__pyx_v_starR, PyArrayObject *__pyx_v_vConservative, PyArrayObject *__pyx_v_vConservative_element); /* proto */
2766 static PyObject *__pyx_pf_13cfemIntegrals_226calculateConservationJacobianPWL(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nNodes_global, int __pyx_v_nNodes_internal, int __pyx_v_nElements_global, int __pyx_v_nInteriorElementBoundaries_global, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nElementBoundaries_element, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nNodes_element, int __pyx_v_nSpace, 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_nodeStarOffsets, PyArrayObject *__pyx_v_nodeStarJacobianOffsets, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_internalNodes, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_normal, PyArrayObject *__pyx_v_starJacobian); /* proto */
2767 static PyObject *__pyx_pf_13cfemIntegrals_228calculateConservationFluxPWL(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nNodes_global, int __pyx_v_nNodes_internal, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_nodeStarOffsets, PyArrayObject *__pyx_v_nodeStarJacobianOffsets, PyArrayObject *__pyx_v_internalNodes, PyArrayObject *__pyx_v_starR, PyArrayObject *__pyx_v_starJ, PyArrayObject *__pyx_v_starU); /* proto */
2768 static PyObject *__pyx_pf_13cfemIntegrals_230setExteriorGlobalElementBoundaryVelocityValues(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_updateFluxValues, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nSpace, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_vn_in, PyArrayObject *__pyx_v_v_out); /* proto */
2769 static PyObject *__pyx_pf_13cfemIntegrals_232calculateDimensionlessNumbersADR(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nElements_global, int __pyx_v_nQuadraturePoints_element, int __pyx_v_nSpace, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_pe, PyArrayObject *__pyx_v_cfl); /* proto */
2770 static PyObject *__pyx_pf_13cfemIntegrals_234calculateDimensionlessNumbersADR_sd(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nElements_global, int __pyx_v_nQuadraturePoints_element, int __pyx_v_nSpace, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_pe, PyArrayObject *__pyx_v_cfl); /* proto */
2771 static PyObject *__pyx_pf_13cfemIntegrals_236calculateCFLADR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_cfl); /* proto */
2772 static PyObject *__pyx_pf_13cfemIntegrals_238updateInteriorElementBoundaryDiffusiveVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_velocity); /* proto */
2773 static PyObject *__pyx_pf_13cfemIntegrals_240updateInteriorElementBoundaryDiffusiveVelocity_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_velocity); /* proto */
2774 static PyObject *__pyx_pf_13cfemIntegrals_242updateExteriorElementBoundaryDiffusiveVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_velocity); /* proto */
2775 static PyObject *__pyx_pf_13cfemIntegrals_244updateExteriorElementBoundaryDiffusiveVelocity_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_velocity); /* proto */
2776 static PyObject *__pyx_pf_13cfemIntegrals_246updateInteriorElementBoundaryAdvectiveVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_velocity); /* proto */
2777 static PyObject *__pyx_pf_13cfemIntegrals_248updateExteriorElementBoundaryAdvectiveVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_velocity); /* proto */
2778 static PyObject *__pyx_pf_13cfemIntegrals_250updateInteriorElementBoundaryShockCapturingVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_numDiff, PyArrayObject *__pyx_v_grad_u, PyArrayObject *__pyx_v_velocity); /* proto */
2779 static PyObject *__pyx_pf_13cfemIntegrals_252updateExteriorElementBoundaryShockCapturingVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_numDiff, PyArrayObject *__pyx_v_grad_u, PyArrayObject *__pyx_v_velocity); /* proto */
2780 static PyObject *__pyx_pf_13cfemIntegrals_254calculateInteriorElementBoundaryAverageVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_vAverage); /* proto */
2781 static PyObject *__pyx_pf_13cfemIntegrals_256calculateExteriorElementBoundaryAverageVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_vAverage); /* proto */
2782 static PyObject *__pyx_pf_13cfemIntegrals_258calculateConservationResidualDG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_conservationResidual); /* proto */
2783 static PyObject *__pyx_pf_13cfemIntegrals_260calculateConservationResidual(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_dS_u, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_velocity, PyArrayObject *__pyx_v_conservationResidual); /* proto */
2784 static PyObject *__pyx_pf_13cfemIntegrals_262calculateConservationResidualGlobalBoundaries(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nElements_global, int __pyx_v_nInteriorElementBoundaries_global, int __pyx_v_nExteriorElementBoundaries_global, int __pyx_v_nElementBoundaries_element, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nNodes_element, int __pyx_v_nSpace, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_normal, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_velocity, PyArrayObject *__pyx_v_conservationResidual); /* proto */
2785 static PyObject *__pyx_pf_13cfemIntegrals_264copyGlobalElementBoundaryVelocityToElementBoundary(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_velocityBoundary_global, PyArrayObject *__pyx_v_velocityBoundary_element); /* proto */
2786 static PyObject *__pyx_pf_13cfemIntegrals_266loadBoundaryFluxIntoGlobalElementBoundaryVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_normal, PyArrayObject *__pyx_v_flux, double __pyx_v_updateCoef, PyArrayObject *__pyx_v_velocity); /* proto */
2787 static PyObject *__pyx_pf_13cfemIntegrals_268calculateInteriorNumericalTrace_Potential(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_phi_trace, PyArrayObject *__pyx_v_dphi_trace_left, PyArrayObject *__pyx_v_dphi_trace_right); /* proto */
2788 static PyObject *__pyx_pf_13cfemIntegrals_270calculateExteriorNumericalTrace_Potential(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_phi_bc, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_phi_trace, PyArrayObject *__pyx_v_dphi_trace_left); /* proto */
2789 static PyObject *__pyx_pf_13cfemIntegrals_272updateInteriorElementBoundary_MixedForm_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_phi_trace, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_b); /* proto */
2790 static PyObject *__pyx_pf_13cfemIntegrals_274updateInteriorElementBoundary_MixedForm_weakJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_dphi_trace_left, PyArrayObject *__pyx_v_dphi_trace_right, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_db, PyArrayObject *__pyx_v_db_eb); /* proto */
2791 static PyObject *__pyx_pf_13cfemIntegrals_276updateExteriorElementBoundary_MixedForm_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_phi_trace, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_b); /* proto */
2792 static PyObject *__pyx_pf_13cfemIntegrals_278updateExteriorElementBoundary_MixedForm_weakJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_dphi_trace_left, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_db, PyArrayObject *__pyx_v_db_eb); /* proto */
2793 static PyObject *__pyx_pf_13cfemIntegrals_280updatePotential_MixedForm_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_b); /* proto */
2794 static PyObject *__pyx_pf_13cfemIntegrals_282updatePotential_MixedForm_weakJacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_db); /* proto */
2795 static PyObject *__pyx_pf_13cfemIntegrals_284calculateVelocityQuadrature_MixedForm(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_A_inv, PyArrayObject *__pyx_v_b, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_V, PyArrayObject *__pyx_v_qv, PyArrayObject *__pyx_v_qV); /* proto */
2796 static PyObject *__pyx_pf_13cfemIntegrals_286calculateVelocityQuadrature_MixedForm_Jacobian(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_A_inv, PyArrayObject *__pyx_v_db, PyArrayObject *__pyx_v_db_eb, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_DV, PyArrayObject *__pyx_v_DV_eb, PyArrayObject *__pyx_v_qv, PyArrayObject *__pyx_v_qDV, PyArrayObject *__pyx_v_qDV_eb); /* proto */
2797 static PyObject *__pyx_pf_13cfemIntegrals_288calculateVelocityProjectionMatrixLDG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_vXw_dV, PyArrayObject *__pyx_v_A_inv); /* proto */
2798 static PyObject *__pyx_pf_13cfemIntegrals_290updateDiffusion_MixedForm_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_qV, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_weak_residual); /* proto */
2799 static PyObject *__pyx_pf_13cfemIntegrals_292updateDiffusionJacobian_MixedForm_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_qV, PyArrayObject *__pyx_v_qDV, PyArrayObject *__pyx_v_qDV_eb, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_jacobian_weak_residual, PyArrayObject *__pyx_v_jacobian_weak_residual_eb); /* proto */
2800 static PyObject *__pyx_pf_13cfemIntegrals_294estimate_mt(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_vXw_dV, PyArrayObject *__pyx_v_elementSpatialResidual, PyArrayObject *__pyx_v_mt); /* proto */
2801 static PyObject *__pyx_pf_13cfemIntegrals_296estimate_mt_lowmem(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_w_dV, PyArrayObject *__pyx_v_elementSpatialResidual, PyArrayObject *__pyx_v_mt); /* proto */
2802 static PyObject *__pyx_pf_13cfemIntegrals_298scalarDomainIntegral(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dV, PyArrayObject *__pyx_v_nValueArray, int __pyx_v_nElements_global); /* proto */
2803 static PyObject *__pyx_pf_13cfemIntegrals_300scalarHeavisideDomainIntegral(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nElements_global, int __pyx_v_nQuadraturePoints_element, PyArrayObject *__pyx_v_dV, PyArrayObject *__pyx_v_nValueArray); /* proto */
2804 static PyObject *__pyx_pf_13cfemIntegrals_302scalarSmoothedHeavisideDomainIntegral(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_epsFact, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dV, PyArrayObject *__pyx_v_nValueArray, int __pyx_v_nElements_global); /* proto */
2805 static PyObject *__pyx_pf_13cfemIntegrals_304fluxDomainBoundaryIntegral(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nElementBoundaries_owned, PyArrayObject *__pyx_v_flag, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_nValueArray); /* proto */
2806 static PyObject *__pyx_pf_13cfemIntegrals_306fluxDomainBoundaryIntegralFromVector(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nElementBoundaries_owned, PyArrayObject *__pyx_v_flag, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_nValueArray, PyArrayObject *__pyx_v_normal); /* proto */
2807 static PyObject *__pyx_pf_13cfemIntegrals_308copyExteriorElementBoundaryValuesFromElementBoundaryValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_ebq_val, PyArrayObject *__pyx_v_ebqe_val); /* proto */
2808 static PyObject *__pyx_pf_13cfemIntegrals_310copyExteriorElementBoundaryValuesToElementBoundaryValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_ebqe_val, PyArrayObject *__pyx_v_ebq_val); /* proto */
2809 static PyObject *__pyx_pf_13cfemIntegrals_312copyExteriorElementBoundaryValuesToGlobalElementBoundaryValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_ebqe_val, PyArrayObject *__pyx_v_ebq_global_val); /* proto */
2810 static PyObject *__pyx_pf_13cfemIntegrals_314copyExteriorElementBoundaryValuesFromGlobalElementBoundaryValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_ebq_global_val, PyArrayObject *__pyx_v_ebqe_val); /* proto */
2811 static PyObject *__pyx_pf_13cfemIntegrals_316computeC0P1InterpolantDGP0(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_nodeElementOffsets, PyArrayObject *__pyx_v_nodeElementsArray, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_dof, PyArrayObject *__pyx_v_nodalAverage, PyObject *__pyx_v_dim_dof); /* proto */
2812 static PyObject *__pyx_pf_13cfemIntegrals_318computeC0P1InterpolantNCP1(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_dim_dof, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_nodeElementOffsets, PyArrayObject *__pyx_v_nodeElementsArray, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_dof, PyArrayObject *__pyx_v_nodalAverage); /* proto */
2813 static PyObject *__pyx_pf_13cfemIntegrals_320computeC0P1InterpolantDGP12(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_dim_dof, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_nodeElementOffsets, PyArrayObject *__pyx_v_nodeElementsArray, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_dof, PyArrayObject *__pyx_v_nodalAverage); /* proto */
2814 static PyObject *__pyx_pf_13cfemIntegrals_322parametricFiniteElementSpace_getValuesGlobalExteriorTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_psi, PyArrayObject *__pyx_v_vArray); /* proto */
2815 static PyObject *__pyx_pf_13cfemIntegrals_324parametricFiniteElementSpace_getGradientValuesGlobalExteriorTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_grad_psi, PyArrayObject *__pyx_v_inverseJacobianArray, PyArrayObject *__pyx_v_grad_vArray); /* proto */
2816 static PyObject *__pyx_pf_13cfemIntegrals_326parametricMaps_getValuesGlobalExteriorTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_psi, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_xArray); /* proto */
2817 static PyObject *__pyx_pf_13cfemIntegrals_328parametricMaps_getInverseValuesGlobalExteriorTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_inverseJacobian, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_xArray, PyArrayObject *__pyx_v_xiArray); /* proto */
2818 static PyObject *__pyx_pf_13cfemIntegrals_330parametricMaps_getJacobianValuesGlobalExteriorTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_grad_psi, PyArrayObject *__pyx_v_boundaryNormals, PyArrayObject *__pyx_v_boundaryJacobians, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_jacobianInverseArray, PyArrayObject *__pyx_v_metricTensorArray, PyArrayObject *__pyx_v_metricTensorDeterminantSqrtArray, PyArrayObject *__pyx_v_unitNormalArray); /* proto */
2819 static PyObject *__pyx_pf_13cfemIntegrals_332parametricMaps_getJacobianValuesGlobalExteriorTrace_movingDomain(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_xtArray, PyArrayObject *__pyx_v_grad_psi, PyArrayObject *__pyx_v_boundaryNormals, PyArrayObject *__pyx_v_boundaryJacobians, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_jacobianInverseArray, PyArrayObject *__pyx_v_metricTensorArray, PyArrayObject *__pyx_v_metricTensorDeterminantSqrtArray, PyArrayObject *__pyx_v_unitNormalArray); /* proto */
2820 static PyObject *__pyx_pf_13cfemIntegrals_334calculateWeightedShapeGlobalExteriorTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_dSR, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_w_dS); /* proto */
2821 static PyObject *__pyx_pf_13cfemIntegrals_336calculateShape_X_weightedShapeGlobalExteriorTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_v_X_w_dS); /* proto */
2822 static PyObject *__pyx_pf_13cfemIntegrals_338calculateGradShape_X_weightedShapeGlobalExteriorTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_grad_v_X_w_dS); /* proto */
2823 static PyObject *__pyx_pf_13cfemIntegrals_340calculateGlobalExteriorElementBoundaryIntegrationWeights(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nQuadraturePoints_elementBoundary, int __pyx_v_nExteriorElementBoundaries_global, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_referenceWeights, PyArrayObject *__pyx_v_weights); /* proto */
2824 static PyObject *__pyx_pf_13cfemIntegrals_342calculateFiniteElementFunctionValuesGlobalExteriorTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_dof, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_u); /* proto */
2825 static PyObject *__pyx_pf_13cfemIntegrals_344calculateFiniteElementFunctionGradientValuesGlobalExteriorTrace(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundariesArray, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_dof, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_grad_u); /* proto */
2826 static PyObject *__pyx_pf_13cfemIntegrals_346copyBetweenFreeUnknownsAndGlobalUnknowns(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nDOF2set, int __pyx_v_offset, int __pyx_v_stride, PyArrayObject *__pyx_v_globalDOFids, PyArrayObject *__pyx_v_freeDOFids, PyArrayObject *__pyx_v_free_u, PyArrayObject *__pyx_v_u); /* proto */
2827 static PyObject *__pyx_pf_13cfemIntegrals_348updateInteriorElementBoundaryDiffusionAdjoint(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, double __pyx_v_sigma, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_w, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_residual); /* proto */
2828 static PyObject *__pyx_pf_13cfemIntegrals_350updateExteriorElementBoundaryDiffusionAdjoint(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, double __pyx_v_sigma, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_ub, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_w, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_residual); /* proto */
2829 static PyObject *__pyx_pf_13cfemIntegrals_352updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_offset_r, int __pyx_v_stride_r, int __pyx_v_offset_u, int __pyx_v_stride_u, int __pyx_v_nFreeVDOF_global, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_freeGlobal_u, double __pyx_v_sigma, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_w, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_jac); /* proto */
2830 static PyObject *__pyx_pf_13cfemIntegrals_354updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_offset_r, int __pyx_v_stride_r, int __pyx_v_offset_u, int __pyx_v_stride_u, int __pyx_v_nFreeVDOF_global, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_freeGlobal_u, PyArrayObject *__pyx_v_isDOFBoundary, double __pyx_v_sigma, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_w, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_jac); /* proto */
2831 static PyObject *__pyx_pf_13cfemIntegrals_356updateInteriorElementBoundaryDiffusionAdjoint_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, double __pyx_v_sigma, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_w, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_residual); /* proto */
2832 static PyObject *__pyx_pf_13cfemIntegrals_358updateExteriorElementBoundaryDiffusionAdjoint_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_isDOFBoundary, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, double __pyx_v_sigma, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_ub, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_w, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_residual); /* proto */
2833 static PyObject *__pyx_pf_13cfemIntegrals_360updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_dense_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, int __pyx_v_offset_r, int __pyx_v_stride_r, int __pyx_v_offset_u, int __pyx_v_stride_u, int __pyx_v_nFreeVDOF_global, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_freeGlobal_u, double __pyx_v_sigma, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_w, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_jac); /* proto */
2834 static PyObject *__pyx_pf_13cfemIntegrals_362updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_dense_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, int __pyx_v_offset_r, int __pyx_v_stride_r, int __pyx_v_offset_u, int __pyx_v_stride_u, int __pyx_v_nFreeVDOF_global, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_freeGlobal_u, PyArrayObject *__pyx_v_isDOFBoundary, double __pyx_v_sigma, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_w, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_jac); /* proto */
2835 static PyObject *__pyx_pf_13cfemIntegrals_364updateGlobalJacobianFromInteriorElementBoundaryDiffusionAdjoint_CSR_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, int __pyx_v_offset_r, int __pyx_v_stride_r, int __pyx_v_offset_u, int __pyx_v_stride_u, int __pyx_v_nFreeVDOF_global, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_freeGlobal_u, PyArrayObject *__pyx_v_csrRowIndeces_ru, PyArrayObject *__pyx_v_csrColumnOffsets_eb_ru, double __pyx_v_sigma, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_w, PyArrayObject *__pyx_v_dS, PyObject *__pyx_v_jac); /* proto */
2836 static PyObject *__pyx_pf_13cfemIntegrals_366updateGlobalJacobianFromExteriorElementBoundaryDiffusionAdjoint_CSR_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, int __pyx_v_offset_r, int __pyx_v_stride_r, int __pyx_v_offset_u, int __pyx_v_stride_u, int __pyx_v_nFreeVDOF_global, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_freeGlobal_u, PyArrayObject *__pyx_v_csrRowIndeces_ru, PyArrayObject *__pyx_v_csrColumnOffsets_eb_ru, PyArrayObject *__pyx_v_isDOFBoundary, double __pyx_v_sigma, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_grad_w, PyArrayObject *__pyx_v_dS, PyObject *__pyx_v_jac); /* proto */
2837 static PyObject *__pyx_pf_13cfemIntegrals_368update_f_movingDomain(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_xt, PyArrayObject *__pyx_v_m, PyArrayObject *__pyx_v_f); /* proto */
2838 static PyObject *__pyx_pf_13cfemIntegrals_370update_f_movingDomain_constantMass(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_xt, PyArrayObject *__pyx_v_f); /* proto */
2839 static PyObject *__pyx_pf_13cfemIntegrals_372updateStress_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_sigma, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_weak_residual_x, PyArrayObject *__pyx_v_weak_residual_y, PyArrayObject *__pyx_v_weak_residual_z); /* proto */
2840 static PyObject *__pyx_pf_13cfemIntegrals_374updateStressJacobian_weak(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dsigma_xx, PyArrayObject *__pyx_v_dsigma_xy, PyArrayObject *__pyx_v_dsigma_xz, PyArrayObject *__pyx_v_dsigma_yx, PyArrayObject *__pyx_v_dsigma_yy, PyArrayObject *__pyx_v_dsigma_yz, PyArrayObject *__pyx_v_dsigma_zx, PyArrayObject *__pyx_v_dsigma_zy, PyArrayObject *__pyx_v_dsigma_zz, PyArrayObject *__pyx_v_grad_v, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_jacobian_weak_residual_xx, PyArrayObject *__pyx_v_jacobian_weak_residual_xy, PyArrayObject *__pyx_v_jacobian_weak_residual_xz, PyArrayObject *__pyx_v_jacobian_weak_residual_yx, PyArrayObject *__pyx_v_jacobian_weak_residual_yy, PyArrayObject *__pyx_v_jacobian_weak_residual_yz, PyArrayObject *__pyx_v_jacobian_weak_residual_zx, PyArrayObject *__pyx_v_jacobian_weak_residual_zy, PyArrayObject *__pyx_v_jacobian_weak_residual_zz); /* proto */
2841 static PyObject *__pyx_pf_13cfemIntegrals_376projectFromNodalInterpolationConditions(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_dim_dof, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_functional_map_element, PyArrayObject *__pyx_v_interpolationValues, PyArrayObject *__pyx_v_dofs); /* proto */
2842 static PyObject *__pyx_pf_13cfemIntegrals_378calculateVelocityQuadrature_MixedForm2_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_qa, PyArrayObject *__pyx_v_qw_dV, PyArrayObject *__pyx_v_b, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_V, PyArrayObject *__pyx_v_qv, PyArrayObject *__pyx_v_qV); /* proto */
2843 static PyObject *__pyx_pf_13cfemIntegrals_380updateDiffusion_MixedForm_weak_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_qV, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_velocity, PyArrayObject *__pyx_v_residual, int __pyx_v_rho_split); /* proto */
2844 static PyObject *__pyx_pf_13cfemIntegrals_382calculateVelocityQuadrature_MixedForm2_Jacobian_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_qa, PyArrayObject *__pyx_v_qw_dV, PyArrayObject *__pyx_v_db, PyArrayObject *__pyx_v_db_eb, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_DV, PyArrayObject *__pyx_v_DV_eb, PyArrayObject *__pyx_v_qv, PyArrayObject *__pyx_v_qDV, PyArrayObject *__pyx_v_qDV_eb); /* proto */
2845 static PyObject *__pyx_pf_13cfemIntegrals_384updateDiffusionJacobian_MixedForm_weak_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_qV, PyArrayObject *__pyx_v_qDV, PyArrayObject *__pyx_v_qDV_eb, PyArrayObject *__pyx_v_grad_w_dV, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_jacobian, PyArrayObject *__pyx_v_jacobian_eb); /* proto */
2846 static PyObject *__pyx_tuple_;
2847 static PyObject *__pyx_tuple__2;
2848 static PyObject *__pyx_tuple__3;
2849 static PyObject *__pyx_tuple__5;
2850 static PyObject *__pyx_tuple__7;
2851 static PyObject *__pyx_tuple__9;
2852 static PyObject *__pyx_tuple__11;
2853 static PyObject *__pyx_tuple__13;
2854 static PyObject *__pyx_tuple__15;
2855 static PyObject *__pyx_tuple__17;
2856 static PyObject *__pyx_tuple__19;
2857 static PyObject *__pyx_tuple__21;
2858 static PyObject *__pyx_tuple__23;
2859 static PyObject *__pyx_tuple__25;
2860 static PyObject *__pyx_tuple__27;
2861 static PyObject *__pyx_tuple__29;
2862 static PyObject *__pyx_tuple__31;
2863 static PyObject *__pyx_tuple__33;
2864 static PyObject *__pyx_tuple__35;
2865 static PyObject *__pyx_tuple__37;
2866 static PyObject *__pyx_tuple__39;
2867 static PyObject *__pyx_tuple__41;
2868 static PyObject *__pyx_tuple__43;
2869 static PyObject *__pyx_tuple__45;
2870 static PyObject *__pyx_tuple__47;
2871 static PyObject *__pyx_tuple__49;
2872 static PyObject *__pyx_tuple__51;
2873 static PyObject *__pyx_tuple__53;
2874 static PyObject *__pyx_tuple__55;
2875 static PyObject *__pyx_tuple__57;
2876 static PyObject *__pyx_tuple__59;
2877 static PyObject *__pyx_tuple__61;
2878 static PyObject *__pyx_tuple__63;
2879 static PyObject *__pyx_tuple__65;
2880 static PyObject *__pyx_tuple__67;
2881 static PyObject *__pyx_tuple__69;
2882 static PyObject *__pyx_tuple__71;
2883 static PyObject *__pyx_tuple__73;
2884 static PyObject *__pyx_tuple__75;
2885 static PyObject *__pyx_tuple__77;
2886 static PyObject *__pyx_tuple__79;
2887 static PyObject *__pyx_tuple__81;
2888 static PyObject *__pyx_tuple__83;
2889 static PyObject *__pyx_tuple__85;
2890 static PyObject *__pyx_tuple__87;
2891 static PyObject *__pyx_tuple__89;
2892 static PyObject *__pyx_tuple__91;
2893 static PyObject *__pyx_tuple__93;
2894 static PyObject *__pyx_tuple__95;
2895 static PyObject *__pyx_tuple__97;
2896 static PyObject *__pyx_tuple__99;
2897 static PyObject *__pyx_codeobj__4;
2898 static PyObject *__pyx_codeobj__6;
2899 static PyObject *__pyx_codeobj__8;
2900 static PyObject *__pyx_tuple__101;
2901 static PyObject *__pyx_tuple__103;
2902 static PyObject *__pyx_tuple__105;
2903 static PyObject *__pyx_tuple__107;
2904 static PyObject *__pyx_tuple__109;
2905 static PyObject *__pyx_tuple__111;
2906 static PyObject *__pyx_tuple__113;
2907 static PyObject *__pyx_tuple__115;
2908 static PyObject *__pyx_tuple__117;
2909 static PyObject *__pyx_tuple__119;
2910 static PyObject *__pyx_tuple__121;
2911 static PyObject *__pyx_tuple__123;
2912 static PyObject *__pyx_tuple__125;
2913 static PyObject *__pyx_tuple__127;
2914 static PyObject *__pyx_tuple__129;
2915 static PyObject *__pyx_tuple__131;
2916 static PyObject *__pyx_tuple__133;
2917 static PyObject *__pyx_tuple__135;
2918 static PyObject *__pyx_tuple__137;
2919 static PyObject *__pyx_tuple__139;
2920 static PyObject *__pyx_tuple__141;
2921 static PyObject *__pyx_tuple__143;
2922 static PyObject *__pyx_tuple__145;
2923 static PyObject *__pyx_tuple__147;
2924 static PyObject *__pyx_tuple__149;
2925 static PyObject *__pyx_tuple__151;
2926 static PyObject *__pyx_tuple__153;
2927 static PyObject *__pyx_tuple__155;
2928 static PyObject *__pyx_tuple__157;
2929 static PyObject *__pyx_tuple__159;
2930 static PyObject *__pyx_tuple__161;
2931 static PyObject *__pyx_tuple__163;
2932 static PyObject *__pyx_tuple__165;
2933 static PyObject *__pyx_tuple__167;
2934 static PyObject *__pyx_tuple__169;
2935 static PyObject *__pyx_tuple__171;
2936 static PyObject *__pyx_tuple__173;
2937 static PyObject *__pyx_tuple__175;
2938 static PyObject *__pyx_tuple__177;
2939 static PyObject *__pyx_tuple__179;
2940 static PyObject *__pyx_tuple__181;
2941 static PyObject *__pyx_tuple__183;
2942 static PyObject *__pyx_tuple__185;
2943 static PyObject *__pyx_tuple__187;
2944 static PyObject *__pyx_tuple__189;
2945 static PyObject *__pyx_tuple__191;
2946 static PyObject *__pyx_tuple__193;
2947 static PyObject *__pyx_tuple__195;
2948 static PyObject *__pyx_tuple__197;
2949 static PyObject *__pyx_tuple__199;
2950 static PyObject *__pyx_tuple__201;
2951 static PyObject *__pyx_tuple__203;
2952 static PyObject *__pyx_tuple__205;
2953 static PyObject *__pyx_tuple__207;
2954 static PyObject *__pyx_tuple__209;
2955 static PyObject *__pyx_tuple__211;
2956 static PyObject *__pyx_tuple__213;
2957 static PyObject *__pyx_tuple__215;
2958 static PyObject *__pyx_tuple__217;
2959 static PyObject *__pyx_tuple__219;
2960 static PyObject *__pyx_tuple__221;
2961 static PyObject *__pyx_tuple__223;
2962 static PyObject *__pyx_tuple__225;
2963 static PyObject *__pyx_tuple__227;
2964 static PyObject *__pyx_tuple__229;
2965 static PyObject *__pyx_tuple__231;
2966 static PyObject *__pyx_tuple__233;
2967 static PyObject *__pyx_tuple__235;
2968 static PyObject *__pyx_tuple__237;
2969 static PyObject *__pyx_tuple__239;
2970 static PyObject *__pyx_tuple__241;
2971 static PyObject *__pyx_tuple__243;
2972 static PyObject *__pyx_tuple__245;
2973 static PyObject *__pyx_tuple__247;
2974 static PyObject *__pyx_tuple__249;
2975 static PyObject *__pyx_tuple__251;
2976 static PyObject *__pyx_tuple__253;
2977 static PyObject *__pyx_tuple__255;
2978 static PyObject *__pyx_tuple__257;
2979 static PyObject *__pyx_tuple__259;
2980 static PyObject *__pyx_tuple__261;
2981 static PyObject *__pyx_tuple__263;
2982 static PyObject *__pyx_tuple__265;
2983 static PyObject *__pyx_tuple__267;
2984 static PyObject *__pyx_tuple__269;
2985 static PyObject *__pyx_tuple__271;
2986 static PyObject *__pyx_tuple__273;
2987 static PyObject *__pyx_tuple__275;
2988 static PyObject *__pyx_tuple__277;
2989 static PyObject *__pyx_tuple__279;
2990 static PyObject *__pyx_tuple__281;
2991 static PyObject *__pyx_tuple__283;
2992 static PyObject *__pyx_tuple__285;
2993 static PyObject *__pyx_tuple__287;
2994 static PyObject *__pyx_tuple__289;
2995 static PyObject *__pyx_tuple__291;
2996 static PyObject *__pyx_tuple__293;
2997 static PyObject *__pyx_tuple__295;
2998 static PyObject *__pyx_tuple__297;
2999 static PyObject *__pyx_tuple__299;
3000 static PyObject *__pyx_tuple__301;
3001 static PyObject *__pyx_tuple__303;
3002 static PyObject *__pyx_tuple__305;
3003 static PyObject *__pyx_tuple__307;
3004 static PyObject *__pyx_tuple__309;
3005 static PyObject *__pyx_tuple__311;
3006 static PyObject *__pyx_tuple__313;
3007 static PyObject *__pyx_tuple__315;
3008 static PyObject *__pyx_tuple__317;
3009 static PyObject *__pyx_tuple__319;
3010 static PyObject *__pyx_tuple__321;
3011 static PyObject *__pyx_tuple__323;
3012 static PyObject *__pyx_tuple__325;
3013 static PyObject *__pyx_tuple__327;
3014 static PyObject *__pyx_tuple__329;
3015 static PyObject *__pyx_tuple__331;
3016 static PyObject *__pyx_tuple__333;
3017 static PyObject *__pyx_tuple__335;
3018 static PyObject *__pyx_tuple__337;
3019 static PyObject *__pyx_tuple__339;
3020 static PyObject *__pyx_tuple__341;
3021 static PyObject *__pyx_tuple__343;
3022 static PyObject *__pyx_tuple__345;
3023 static PyObject *__pyx_tuple__347;
3024 static PyObject *__pyx_tuple__349;
3025 static PyObject *__pyx_tuple__351;
3026 static PyObject *__pyx_tuple__353;
3027 static PyObject *__pyx_tuple__355;
3028 static PyObject *__pyx_tuple__357;
3029 static PyObject *__pyx_tuple__359;
3030 static PyObject *__pyx_tuple__361;
3031 static PyObject *__pyx_tuple__363;
3032 static PyObject *__pyx_tuple__365;
3033 static PyObject *__pyx_tuple__367;
3034 static PyObject *__pyx_tuple__369;
3035 static PyObject *__pyx_tuple__371;
3036 static PyObject *__pyx_tuple__373;
3037 static PyObject *__pyx_tuple__375;
3038 static PyObject *__pyx_tuple__377;
3039 static PyObject *__pyx_tuple__379;
3040 static PyObject *__pyx_tuple__381;
3041 static PyObject *__pyx_tuple__383;
3042 static PyObject *__pyx_tuple__385;
3043 static PyObject *__pyx_tuple__387;
3044 static PyObject *__pyx_codeobj__10;
3045 static PyObject *__pyx_codeobj__12;
3046 static PyObject *__pyx_codeobj__14;
3047 static PyObject *__pyx_codeobj__16;
3048 static PyObject *__pyx_codeobj__18;
3049 static PyObject *__pyx_codeobj__20;
3050 static PyObject *__pyx_codeobj__22;
3051 static PyObject *__pyx_codeobj__24;
3052 static PyObject *__pyx_codeobj__26;
3053 static PyObject *__pyx_codeobj__28;
3054 static PyObject *__pyx_codeobj__30;
3055 static PyObject *__pyx_codeobj__32;
3056 static PyObject *__pyx_codeobj__34;
3057 static PyObject *__pyx_codeobj__36;
3058 static PyObject *__pyx_codeobj__38;
3059 static PyObject *__pyx_codeobj__40;
3060 static PyObject *__pyx_codeobj__42;
3061 static PyObject *__pyx_codeobj__44;
3062 static PyObject *__pyx_codeobj__46;
3063 static PyObject *__pyx_codeobj__48;
3064 static PyObject *__pyx_codeobj__50;
3065 static PyObject *__pyx_codeobj__52;
3066 static PyObject *__pyx_codeobj__54;
3067 static PyObject *__pyx_codeobj__56;
3068 static PyObject *__pyx_codeobj__58;
3069 static PyObject *__pyx_codeobj__60;
3070 static PyObject *__pyx_codeobj__62;
3071 static PyObject *__pyx_codeobj__64;
3072 static PyObject *__pyx_codeobj__66;
3073 static PyObject *__pyx_codeobj__68;
3074 static PyObject *__pyx_codeobj__70;
3075 static PyObject *__pyx_codeobj__72;
3076 static PyObject *__pyx_codeobj__74;
3077 static PyObject *__pyx_codeobj__76;
3078 static PyObject *__pyx_codeobj__78;
3079 static PyObject *__pyx_codeobj__80;
3080 static PyObject *__pyx_codeobj__82;
3081 static PyObject *__pyx_codeobj__84;
3082 static PyObject *__pyx_codeobj__86;
3083 static PyObject *__pyx_codeobj__88;
3084 static PyObject *__pyx_codeobj__90;
3085 static PyObject *__pyx_codeobj__92;
3086 static PyObject *__pyx_codeobj__94;
3087 static PyObject *__pyx_codeobj__96;
3088 static PyObject *__pyx_codeobj__98;
3089 static PyObject *__pyx_codeobj__100;
3090 static PyObject *__pyx_codeobj__102;
3091 static PyObject *__pyx_codeobj__104;
3092 static PyObject *__pyx_codeobj__106;
3093 static PyObject *__pyx_codeobj__108;
3094 static PyObject *__pyx_codeobj__110;
3095 static PyObject *__pyx_codeobj__112;
3096 static PyObject *__pyx_codeobj__114;
3097 static PyObject *__pyx_codeobj__116;
3098 static PyObject *__pyx_codeobj__118;
3099 static PyObject *__pyx_codeobj__120;
3100 static PyObject *__pyx_codeobj__122;
3101 static PyObject *__pyx_codeobj__124;
3102 static PyObject *__pyx_codeobj__126;
3103 static PyObject *__pyx_codeobj__128;
3104 static PyObject *__pyx_codeobj__130;
3105 static PyObject *__pyx_codeobj__132;
3106 static PyObject *__pyx_codeobj__134;
3107 static PyObject *__pyx_codeobj__136;
3108 static PyObject *__pyx_codeobj__138;
3109 static PyObject *__pyx_codeobj__140;
3110 static PyObject *__pyx_codeobj__142;
3111 static PyObject *__pyx_codeobj__144;
3112 static PyObject *__pyx_codeobj__146;
3113 static PyObject *__pyx_codeobj__148;
3114 static PyObject *__pyx_codeobj__150;
3115 static PyObject *__pyx_codeobj__152;
3116 static PyObject *__pyx_codeobj__154;
3117 static PyObject *__pyx_codeobj__156;
3118 static PyObject *__pyx_codeobj__158;
3119 static PyObject *__pyx_codeobj__160;
3120 static PyObject *__pyx_codeobj__162;
3121 static PyObject *__pyx_codeobj__164;
3122 static PyObject *__pyx_codeobj__166;
3123 static PyObject *__pyx_codeobj__168;
3124 static PyObject *__pyx_codeobj__170;
3125 static PyObject *__pyx_codeobj__172;
3126 static PyObject *__pyx_codeobj__174;
3127 static PyObject *__pyx_codeobj__176;
3128 static PyObject *__pyx_codeobj__178;
3129 static PyObject *__pyx_codeobj__180;
3130 static PyObject *__pyx_codeobj__182;
3131 static PyObject *__pyx_codeobj__184;
3132 static PyObject *__pyx_codeobj__186;
3133 static PyObject *__pyx_codeobj__188;
3134 static PyObject *__pyx_codeobj__190;
3135 static PyObject *__pyx_codeobj__192;
3136 static PyObject *__pyx_codeobj__194;
3137 static PyObject *__pyx_codeobj__196;
3138 static PyObject *__pyx_codeobj__198;
3139 static PyObject *__pyx_codeobj__200;
3140 static PyObject *__pyx_codeobj__202;
3141 static PyObject *__pyx_codeobj__204;
3142 static PyObject *__pyx_codeobj__206;
3143 static PyObject *__pyx_codeobj__208;
3144 static PyObject *__pyx_codeobj__210;
3145 static PyObject *__pyx_codeobj__212;
3146 static PyObject *__pyx_codeobj__214;
3147 static PyObject *__pyx_codeobj__216;
3148 static PyObject *__pyx_codeobj__218;
3149 static PyObject *__pyx_codeobj__220;
3150 static PyObject *__pyx_codeobj__222;
3151 static PyObject *__pyx_codeobj__224;
3152 static PyObject *__pyx_codeobj__226;
3153 static PyObject *__pyx_codeobj__228;
3154 static PyObject *__pyx_codeobj__230;
3155 static PyObject *__pyx_codeobj__232;
3156 static PyObject *__pyx_codeobj__234;
3157 static PyObject *__pyx_codeobj__236;
3158 static PyObject *__pyx_codeobj__238;
3159 static PyObject *__pyx_codeobj__240;
3160 static PyObject *__pyx_codeobj__242;
3161 static PyObject *__pyx_codeobj__244;
3162 static PyObject *__pyx_codeobj__246;
3163 static PyObject *__pyx_codeobj__248;
3164 static PyObject *__pyx_codeobj__250;
3165 static PyObject *__pyx_codeobj__252;
3166 static PyObject *__pyx_codeobj__254;
3167 static PyObject *__pyx_codeobj__256;
3168 static PyObject *__pyx_codeobj__258;
3169 static PyObject *__pyx_codeobj__260;
3170 static PyObject *__pyx_codeobj__262;
3171 static PyObject *__pyx_codeobj__264;
3172 static PyObject *__pyx_codeobj__266;
3173 static PyObject *__pyx_codeobj__268;
3174 static PyObject *__pyx_codeobj__270;
3175 static PyObject *__pyx_codeobj__272;
3176 static PyObject *__pyx_codeobj__274;
3177 static PyObject *__pyx_codeobj__276;
3178 static PyObject *__pyx_codeobj__278;
3179 static PyObject *__pyx_codeobj__280;
3180 static PyObject *__pyx_codeobj__282;
3181 static PyObject *__pyx_codeobj__284;
3182 static PyObject *__pyx_codeobj__286;
3183 static PyObject *__pyx_codeobj__288;
3184 static PyObject *__pyx_codeobj__290;
3185 static PyObject *__pyx_codeobj__292;
3186 static PyObject *__pyx_codeobj__294;
3187 static PyObject *__pyx_codeobj__296;
3188 static PyObject *__pyx_codeobj__298;
3189 static PyObject *__pyx_codeobj__300;
3190 static PyObject *__pyx_codeobj__302;
3191 static PyObject *__pyx_codeobj__304;
3192 static PyObject *__pyx_codeobj__306;
3193 static PyObject *__pyx_codeobj__308;
3194 static PyObject *__pyx_codeobj__310;
3195 static PyObject *__pyx_codeobj__312;
3196 static PyObject *__pyx_codeobj__314;
3197 static PyObject *__pyx_codeobj__316;
3198 static PyObject *__pyx_codeobj__318;
3199 static PyObject *__pyx_codeobj__320;
3200 static PyObject *__pyx_codeobj__322;
3201 static PyObject *__pyx_codeobj__324;
3202 static PyObject *__pyx_codeobj__326;
3203 static PyObject *__pyx_codeobj__328;
3204 static PyObject *__pyx_codeobj__330;
3205 static PyObject *__pyx_codeobj__332;
3206 static PyObject *__pyx_codeobj__334;
3207 static PyObject *__pyx_codeobj__336;
3208 static PyObject *__pyx_codeobj__338;
3209 static PyObject *__pyx_codeobj__340;
3210 static PyObject *__pyx_codeobj__342;
3211 static PyObject *__pyx_codeobj__344;
3212 static PyObject *__pyx_codeobj__346;
3213 static PyObject *__pyx_codeobj__348;
3214 static PyObject *__pyx_codeobj__350;
3215 static PyObject *__pyx_codeobj__352;
3216 static PyObject *__pyx_codeobj__354;
3217 static PyObject *__pyx_codeobj__356;
3218 static PyObject *__pyx_codeobj__358;
3219 static PyObject *__pyx_codeobj__360;
3220 static PyObject *__pyx_codeobj__362;
3221 static PyObject *__pyx_codeobj__364;
3222 static PyObject *__pyx_codeobj__366;
3223 static PyObject *__pyx_codeobj__368;
3224 static PyObject *__pyx_codeobj__370;
3225 static PyObject *__pyx_codeobj__372;
3226 static PyObject *__pyx_codeobj__374;
3227 static PyObject *__pyx_codeobj__376;
3228 static PyObject *__pyx_codeobj__378;
3229 static PyObject *__pyx_codeobj__380;
3230 static PyObject *__pyx_codeobj__382;
3231 static PyObject *__pyx_codeobj__384;
3232 static PyObject *__pyx_codeobj__386;
3233 static PyObject *__pyx_codeobj__388;
3234 /* Late includes */
3235 
3236 /* "cfemIntegrals.pyx":2296
3237  * double* jacobian_weak_residual,
3238  * double* jacobian_weak_residual_eb)
3239  * def parametricFiniteElementSpace_getHessianValues(np.ndarray Hessian_psi, # <<<<<<<<<<<<<<
3240  * np.ndarray inverseJacobianArray,
3241  * np.ndarray Hessian_vArray):
3242  */
3243 
3244 /* Python wrapper */
3245 static PyObject *__pyx_pw_13cfemIntegrals_1parametricFiniteElementSpace_getHessianValues(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3246 static PyMethodDef __pyx_mdef_13cfemIntegrals_1parametricFiniteElementSpace_getHessianValues = {"parametricFiniteElementSpace_getHessianValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_13cfemIntegrals_1parametricFiniteElementSpace_getHessianValues, METH_VARARGS|METH_KEYWORDS, 0};
3247 static PyObject *__pyx_pw_13cfemIntegrals_1parametricFiniteElementSpace_getHessianValues(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3248  PyArrayObject *__pyx_v_Hessian_psi = 0;
3249  PyArrayObject *__pyx_v_inverseJacobianArray = 0;
3250  PyArrayObject *__pyx_v_Hessian_vArray = 0;
3251  int __pyx_lineno = 0;
3252  const char *__pyx_filename = NULL;
3253  int __pyx_clineno = 0;
3254  PyObject *__pyx_r = 0;
3255  __Pyx_RefNannyDeclarations
3256  __Pyx_RefNannySetupContext("parametricFiniteElementSpace_getHessianValues (wrapper)", 0);
3257  {
3258  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_Hessian_psi,&__pyx_n_s_inverseJacobianArray,&__pyx_n_s_Hessian_vArray,0};
3259  PyObject* values[3] = {0,0,0};
3260  if (unlikely(__pyx_kwds)) {
3261  Py_ssize_t kw_args;
3262  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3263  switch (pos_args) {
3264  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3265  CYTHON_FALLTHROUGH;
3266  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3267  CYTHON_FALLTHROUGH;
3268  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3269  CYTHON_FALLTHROUGH;
3270  case 0: break;
3271  default: goto __pyx_L5_argtuple_error;
3272  }
3273  kw_args = PyDict_Size(__pyx_kwds);
3274  switch (pos_args) {
3275  case 0:
3276  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Hessian_psi)) != 0)) kw_args--;
3277  else goto __pyx_L5_argtuple_error;
3278  CYTHON_FALLTHROUGH;
3279  case 1:
3280  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inverseJacobianArray)) != 0)) kw_args--;
3281  else {
3282  __Pyx_RaiseArgtupleInvalid("parametricFiniteElementSpace_getHessianValues", 1, 3, 3, 1); __PYX_ERR(0, 2296, __pyx_L3_error)
3283  }
3284  CYTHON_FALLTHROUGH;
3285  case 2:
3286  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Hessian_vArray)) != 0)) kw_args--;
3287  else {
3288  __Pyx_RaiseArgtupleInvalid("parametricFiniteElementSpace_getHessianValues", 1, 3, 3, 2); __PYX_ERR(0, 2296, __pyx_L3_error)
3289  }
3290  }
3291  if (unlikely(kw_args > 0)) {
3292  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parametricFiniteElementSpace_getHessianValues") < 0)) __PYX_ERR(0, 2296, __pyx_L3_error)
3293  }
3294  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
3295  goto __pyx_L5_argtuple_error;
3296  } else {
3297  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3298  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3299  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3300  }
3301  __pyx_v_Hessian_psi = ((PyArrayObject *)values[0]);
3302  __pyx_v_inverseJacobianArray = ((PyArrayObject *)values[1]);
3303  __pyx_v_Hessian_vArray = ((PyArrayObject *)values[2]);
3304  }
3305  goto __pyx_L4_argument_unpacking_done;
3306  __pyx_L5_argtuple_error:;
3307  __Pyx_RaiseArgtupleInvalid("parametricFiniteElementSpace_getHessianValues", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2296, __pyx_L3_error)
3308  __pyx_L3_error:;
3309  __Pyx_AddTraceback("cfemIntegrals.parametricFiniteElementSpace_getHessianValues", __pyx_clineno, __pyx_lineno, __pyx_filename);
3310  __Pyx_RefNannyFinishContext();
3311  return NULL;
3312  __pyx_L4_argument_unpacking_done:;
3313  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Hessian_psi), __pyx_ptype_5numpy_ndarray, 1, "Hessian_psi", 0))) __PYX_ERR(0, 2296, __pyx_L1_error)
3314  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inverseJacobianArray), __pyx_ptype_5numpy_ndarray, 1, "inverseJacobianArray", 0))) __PYX_ERR(0, 2297, __pyx_L1_error)
3315  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Hessian_vArray), __pyx_ptype_5numpy_ndarray, 1, "Hessian_vArray", 0))) __PYX_ERR(0, 2298, __pyx_L1_error)
3316  __pyx_r = __pyx_pf_13cfemIntegrals_parametricFiniteElementSpace_getHessianValues(__pyx_self, __pyx_v_Hessian_psi, __pyx_v_inverseJacobianArray, __pyx_v_Hessian_vArray);
3317 
3318  /* function exit code */
3319  goto __pyx_L0;
3320  __pyx_L1_error:;
3321  __pyx_r = NULL;
3322  __pyx_L0:;
3323  __Pyx_RefNannyFinishContext();
3324  return __pyx_r;
3325 }
3326 
3327 static PyObject *__pyx_pf_13cfemIntegrals_parametricFiniteElementSpace_getHessianValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_Hessian_psi, PyArrayObject *__pyx_v_inverseJacobianArray, PyArrayObject *__pyx_v_Hessian_vArray) {
3328  int __pyx_v_nElements_global;
3329  int __pyx_v_nQuadraturePoints_element;
3330  int __pyx_v_nDOF_element;
3331  int __pyx_v_nSpace_global;
3332  PyObject *__pyx_r = NULL;
3333  __Pyx_RefNannyDeclarations
3334  __Pyx_RefNannySetupContext("parametricFiniteElementSpace_getHessianValues", 0);
3335 
3336  /* "cfemIntegrals.pyx":2299
3337  * np.ndarray inverseJacobianArray,
3338  * np.ndarray Hessian_vArray):
3339  * cdef int nElements_global = Hessian_vArray.shape[0] # <<<<<<<<<<<<<<
3340  * cdef int nQuadraturePoints_element = Hessian_vArray.shape[1]
3341  * cdef int nDOF_element = Hessian_vArray.shape[2]
3342  */
3343  __pyx_v_nElements_global = (__pyx_v_Hessian_vArray->dimensions[0]);
3344 
3345  /* "cfemIntegrals.pyx":2300
3346  * np.ndarray Hessian_vArray):
3347  * cdef int nElements_global = Hessian_vArray.shape[0]
3348  * cdef int nQuadraturePoints_element = Hessian_vArray.shape[1] # <<<<<<<<<<<<<<
3349  * cdef int nDOF_element = Hessian_vArray.shape[2]
3350  * cdef int nSpace_global = Hessian_vArray.shape[3]
3351  */
3352  __pyx_v_nQuadraturePoints_element = (__pyx_v_Hessian_vArray->dimensions[1]);
3353 
3354  /* "cfemIntegrals.pyx":2301
3355  * cdef int nElements_global = Hessian_vArray.shape[0]
3356  * cdef int nQuadraturePoints_element = Hessian_vArray.shape[1]
3357  * cdef int nDOF_element = Hessian_vArray.shape[2] # <<<<<<<<<<<<<<
3358  * cdef int nSpace_global = Hessian_vArray.shape[3]
3359  * cparametricFiniteElementSpace_getHessianValues(nElements_global,
3360  */
3361  __pyx_v_nDOF_element = (__pyx_v_Hessian_vArray->dimensions[2]);
3362 
3363  /* "cfemIntegrals.pyx":2302
3364  * cdef int nQuadraturePoints_element = Hessian_vArray.shape[1]
3365  * cdef int nDOF_element = Hessian_vArray.shape[2]
3366  * cdef int nSpace_global = Hessian_vArray.shape[3] # <<<<<<<<<<<<<<
3367  * cparametricFiniteElementSpace_getHessianValues(nElements_global,
3368  * nQuadraturePoints_element,
3369  */
3370  __pyx_v_nSpace_global = (__pyx_v_Hessian_vArray->dimensions[3]);
3371 
3372  /* "cfemIntegrals.pyx":2303
3373  * cdef int nDOF_element = Hessian_vArray.shape[2]
3374  * cdef int nSpace_global = Hessian_vArray.shape[3]
3375  * cparametricFiniteElementSpace_getHessianValues(nElements_global, # <<<<<<<<<<<<<<
3376  * nQuadraturePoints_element,
3377  * nDOF_element,
3378  */
3379  parametricFiniteElementSpace_getHessianValues(__pyx_v_nElements_global, __pyx_v_nQuadraturePoints_element, __pyx_v_nDOF_element, __pyx_v_nSpace_global, ((double *)__pyx_v_Hessian_psi->data), ((double *)__pyx_v_inverseJacobianArray->data), ((double *)__pyx_v_Hessian_vArray->data));
3380 
3381  /* "cfemIntegrals.pyx":2296
3382  * double* jacobian_weak_residual,
3383  * double* jacobian_weak_residual_eb)
3384  * def parametricFiniteElementSpace_getHessianValues(np.ndarray Hessian_psi, # <<<<<<<<<<<<<<
3385  * np.ndarray inverseJacobianArray,
3386  * np.ndarray Hessian_vArray):
3387  */
3388 
3389  /* function exit code */
3390  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3391  __Pyx_XGIVEREF(__pyx_r);
3392  __Pyx_RefNannyFinishContext();
3393  return __pyx_r;
3394 }
3395 
3396 /* "cfemIntegrals.pyx":2310
3397  * <double*> inverseJacobianArray.data,
3398  * <double*> Hessian_vArray.data)
3399  * def updateDiffusion2_strong(np.ndarray a, # <<<<<<<<<<<<<<
3400  * np.ndarray Hess_phi,
3401  * np.ndarray strong_residual):
3402  */
3403 
3404 /* Python wrapper */
3405 static PyObject *__pyx_pw_13cfemIntegrals_3updateDiffusion2_strong(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3406 static PyMethodDef __pyx_mdef_13cfemIntegrals_3updateDiffusion2_strong = {"updateDiffusion2_strong", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_13cfemIntegrals_3updateDiffusion2_strong, METH_VARARGS|METH_KEYWORDS, 0};
3407 static PyObject *__pyx_pw_13cfemIntegrals_3updateDiffusion2_strong(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3408  PyArrayObject *__pyx_v_a = 0;
3409  PyArrayObject *__pyx_v_Hess_phi = 0;
3410  PyArrayObject *__pyx_v_strong_residual = 0;
3411  int __pyx_lineno = 0;
3412  const char *__pyx_filename = NULL;
3413  int __pyx_clineno = 0;
3414  PyObject *__pyx_r = 0;
3415  __Pyx_RefNannyDeclarations
3416  __Pyx_RefNannySetupContext("updateDiffusion2_strong (wrapper)", 0);
3417  {
3418  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_a,&__pyx_n_s_Hess_phi,&__pyx_n_s_strong_residual,0};
3419  PyObject* values[3] = {0,0,0};
3420  if (unlikely(__pyx_kwds)) {
3421  Py_ssize_t kw_args;
3422  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3423  switch (pos_args) {
3424  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3425  CYTHON_FALLTHROUGH;
3426  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3427  CYTHON_FALLTHROUGH;
3428  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3429  CYTHON_FALLTHROUGH;
3430  case 0: break;
3431  default: goto __pyx_L5_argtuple_error;
3432  }
3433  kw_args = PyDict_Size(__pyx_kwds);
3434  switch (pos_args) {
3435  case 0:
3436  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
3437  else goto __pyx_L5_argtuple_error;
3438  CYTHON_FALLTHROUGH;
3439  case 1:
3440  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Hess_phi)) != 0)) kw_args--;
3441  else {
3442  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_strong", 1, 3, 3, 1); __PYX_ERR(0, 2310, __pyx_L3_error)
3443  }
3444  CYTHON_FALLTHROUGH;
3445  case 2:
3446  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_strong_residual)) != 0)) kw_args--;
3447  else {
3448  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_strong", 1, 3, 3, 2); __PYX_ERR(0, 2310, __pyx_L3_error)
3449  }
3450  }
3451  if (unlikely(kw_args > 0)) {
3452  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateDiffusion2_strong") < 0)) __PYX_ERR(0, 2310, __pyx_L3_error)
3453  }
3454  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
3455  goto __pyx_L5_argtuple_error;
3456  } else {
3457  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3458  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3459  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3460  }
3461  __pyx_v_a = ((PyArrayObject *)values[0]);
3462  __pyx_v_Hess_phi = ((PyArrayObject *)values[1]);
3463  __pyx_v_strong_residual = ((PyArrayObject *)values[2]);
3464  }
3465  goto __pyx_L4_argument_unpacking_done;
3466  __pyx_L5_argtuple_error:;
3467  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_strong", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2310, __pyx_L3_error)
3468  __pyx_L3_error:;
3469  __Pyx_AddTraceback("cfemIntegrals.updateDiffusion2_strong", __pyx_clineno, __pyx_lineno, __pyx_filename);
3470  __Pyx_RefNannyFinishContext();
3471  return NULL;
3472  __pyx_L4_argument_unpacking_done:;
3473  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 2310, __pyx_L1_error)
3474  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Hess_phi), __pyx_ptype_5numpy_ndarray, 1, "Hess_phi", 0))) __PYX_ERR(0, 2311, __pyx_L1_error)
3475  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_strong_residual), __pyx_ptype_5numpy_ndarray, 1, "strong_residual", 0))) __PYX_ERR(0, 2312, __pyx_L1_error)
3476  __pyx_r = __pyx_pf_13cfemIntegrals_2updateDiffusion2_strong(__pyx_self, __pyx_v_a, __pyx_v_Hess_phi, __pyx_v_strong_residual);
3477 
3478  /* function exit code */
3479  goto __pyx_L0;
3480  __pyx_L1_error:;
3481  __pyx_r = NULL;
3482  __pyx_L0:;
3483  __Pyx_RefNannyFinishContext();
3484  return __pyx_r;
3485 }
3486 
3487 static PyObject *__pyx_pf_13cfemIntegrals_2updateDiffusion2_strong(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_Hess_phi, PyArrayObject *__pyx_v_strong_residual) {
3488  int __pyx_v_nElements_global;
3489  int __pyx_v_nQuadraturePoints_element;
3490  int __pyx_v_nSpace;
3491  PyObject *__pyx_r = NULL;
3492  __Pyx_RefNannyDeclarations
3493  __Pyx_RefNannySetupContext("updateDiffusion2_strong", 0);
3494 
3495  /* "cfemIntegrals.pyx":2313
3496  * np.ndarray Hess_phi,
3497  * np.ndarray strong_residual):
3498  * cdef int nElements_global = Hess_phi.shape[0] # <<<<<<<<<<<<<<
3499  * cdef int nQuadraturePoints_element = Hess_phi.shape[1]
3500  * cdef int nSpace = Hess_phi.shape[2]
3501  */
3502  __pyx_v_nElements_global = (__pyx_v_Hess_phi->dimensions[0]);
3503 
3504  /* "cfemIntegrals.pyx":2314
3505  * np.ndarray strong_residual):
3506  * cdef int nElements_global = Hess_phi.shape[0]
3507  * cdef int nQuadraturePoints_element = Hess_phi.shape[1] # <<<<<<<<<<<<<<
3508  * cdef int nSpace = Hess_phi.shape[2]
3509  * cupdateDiffusion2_strong(nElements_global,
3510  */
3511  __pyx_v_nQuadraturePoints_element = (__pyx_v_Hess_phi->dimensions[1]);
3512 
3513  /* "cfemIntegrals.pyx":2315
3514  * cdef int nElements_global = Hess_phi.shape[0]
3515  * cdef int nQuadraturePoints_element = Hess_phi.shape[1]
3516  * cdef int nSpace = Hess_phi.shape[2] # <<<<<<<<<<<<<<
3517  * cupdateDiffusion2_strong(nElements_global,
3518  * nQuadraturePoints_element,
3519  */
3520  __pyx_v_nSpace = (__pyx_v_Hess_phi->dimensions[2]);
3521 
3522  /* "cfemIntegrals.pyx":2316
3523  * cdef int nQuadraturePoints_element = Hess_phi.shape[1]
3524  * cdef int nSpace = Hess_phi.shape[2]
3525  * cupdateDiffusion2_strong(nElements_global, # <<<<<<<<<<<<<<
3526  * nQuadraturePoints_element,
3527  * nSpace,
3528  */
3529  updateDiffusion2_strong(__pyx_v_nElements_global, __pyx_v_nQuadraturePoints_element, __pyx_v_nSpace, ((double *)__pyx_v_a->data), ((double *)__pyx_v_Hess_phi->data), ((double *)__pyx_v_strong_residual->data));
3530 
3531  /* "cfemIntegrals.pyx":2310
3532  * <double*> inverseJacobianArray.data,
3533  * <double*> Hessian_vArray.data)
3534  * def updateDiffusion2_strong(np.ndarray a, # <<<<<<<<<<<<<<
3535  * np.ndarray Hess_phi,
3536  * np.ndarray strong_residual):
3537  */
3538 
3539  /* function exit code */
3540  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3541  __Pyx_XGIVEREF(__pyx_r);
3542  __Pyx_RefNannyFinishContext();
3543  return __pyx_r;
3544 }
3545 
3546 /* "cfemIntegrals.pyx":2322
3547  * <double*> Hess_phi.data,
3548  * <double*> strong_residual.data)
3549  * def updateDiffusion2_strong_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
3550  * np.ndarray colind,
3551  * np.ndarray a,
3552  */
3553 
3554 /* Python wrapper */
3555 static PyObject *__pyx_pw_13cfemIntegrals_5updateDiffusion2_strong_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3556 static PyMethodDef __pyx_mdef_13cfemIntegrals_5updateDiffusion2_strong_sd = {"updateDiffusion2_strong_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_13cfemIntegrals_5updateDiffusion2_strong_sd, METH_VARARGS|METH_KEYWORDS, 0};
3557 static PyObject *__pyx_pw_13cfemIntegrals_5updateDiffusion2_strong_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3558  PyArrayObject *__pyx_v_rowptr = 0;
3559  PyArrayObject *__pyx_v_colind = 0;
3560  PyArrayObject *__pyx_v_a = 0;
3561  PyArrayObject *__pyx_v_Hess_phi = 0;
3562  PyArrayObject *__pyx_v_strong_residual = 0;
3563  int __pyx_lineno = 0;
3564  const char *__pyx_filename = NULL;
3565  int __pyx_clineno = 0;
3566  PyObject *__pyx_r = 0;
3567  __Pyx_RefNannyDeclarations
3568  __Pyx_RefNannySetupContext("updateDiffusion2_strong_sd (wrapper)", 0);
3569  {
3570  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_a,&__pyx_n_s_Hess_phi,&__pyx_n_s_strong_residual,0};
3571  PyObject* values[5] = {0,0,0,0,0};
3572  if (unlikely(__pyx_kwds)) {
3573  Py_ssize_t kw_args;
3574  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3575  switch (pos_args) {
3576  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3577  CYTHON_FALLTHROUGH;
3578  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3579  CYTHON_FALLTHROUGH;
3580  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3581  CYTHON_FALLTHROUGH;
3582  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3583  CYTHON_FALLTHROUGH;
3584  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3585  CYTHON_FALLTHROUGH;
3586  case 0: break;
3587  default: goto __pyx_L5_argtuple_error;
3588  }
3589  kw_args = PyDict_Size(__pyx_kwds);
3590  switch (pos_args) {
3591  case 0:
3592  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
3593  else goto __pyx_L5_argtuple_error;
3594  CYTHON_FALLTHROUGH;
3595  case 1:
3596  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
3597  else {
3598  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_strong_sd", 1, 5, 5, 1); __PYX_ERR(0, 2322, __pyx_L3_error)
3599  }
3600  CYTHON_FALLTHROUGH;
3601  case 2:
3602  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
3603  else {
3604  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_strong_sd", 1, 5, 5, 2); __PYX_ERR(0, 2322, __pyx_L3_error)
3605  }
3606  CYTHON_FALLTHROUGH;
3607  case 3:
3608  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Hess_phi)) != 0)) kw_args--;
3609  else {
3610  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_strong_sd", 1, 5, 5, 3); __PYX_ERR(0, 2322, __pyx_L3_error)
3611  }
3612  CYTHON_FALLTHROUGH;
3613  case 4:
3614  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_strong_residual)) != 0)) kw_args--;
3615  else {
3616  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_strong_sd", 1, 5, 5, 4); __PYX_ERR(0, 2322, __pyx_L3_error)
3617  }
3618  }
3619  if (unlikely(kw_args > 0)) {
3620  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateDiffusion2_strong_sd") < 0)) __PYX_ERR(0, 2322, __pyx_L3_error)
3621  }
3622  } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
3623  goto __pyx_L5_argtuple_error;
3624  } else {
3625  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3626  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3627  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3628  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3629  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3630  }
3631  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
3632  __pyx_v_colind = ((PyArrayObject *)values[1]);
3633  __pyx_v_a = ((PyArrayObject *)values[2]);
3634  __pyx_v_Hess_phi = ((PyArrayObject *)values[3]);
3635  __pyx_v_strong_residual = ((PyArrayObject *)values[4]);
3636  }
3637  goto __pyx_L4_argument_unpacking_done;
3638  __pyx_L5_argtuple_error:;
3639  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_strong_sd", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2322, __pyx_L3_error)
3640  __pyx_L3_error:;
3641  __Pyx_AddTraceback("cfemIntegrals.updateDiffusion2_strong_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
3642  __Pyx_RefNannyFinishContext();
3643  return NULL;
3644  __pyx_L4_argument_unpacking_done:;
3645  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 2322, __pyx_L1_error)
3646  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 2323, __pyx_L1_error)
3647  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 2324, __pyx_L1_error)
3648  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Hess_phi), __pyx_ptype_5numpy_ndarray, 1, "Hess_phi", 0))) __PYX_ERR(0, 2325, __pyx_L1_error)
3649  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_strong_residual), __pyx_ptype_5numpy_ndarray, 1, "strong_residual", 0))) __PYX_ERR(0, 2326, __pyx_L1_error)
3650  __pyx_r = __pyx_pf_13cfemIntegrals_4updateDiffusion2_strong_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_a, __pyx_v_Hess_phi, __pyx_v_strong_residual);
3651 
3652  /* function exit code */
3653  goto __pyx_L0;
3654  __pyx_L1_error:;
3655  __pyx_r = NULL;
3656  __pyx_L0:;
3657  __Pyx_RefNannyFinishContext();
3658  return __pyx_r;
3659 }
3660 
3661 static PyObject *__pyx_pf_13cfemIntegrals_4updateDiffusion2_strong_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_Hess_phi, PyArrayObject *__pyx_v_strong_residual) {
3662  int __pyx_v_nElements_global;
3663  int __pyx_v_nQuadraturePoints_element;
3664  int __pyx_v_nSpace;
3665  PyObject *__pyx_r = NULL;
3666  __Pyx_RefNannyDeclarations
3667  __Pyx_RefNannySetupContext("updateDiffusion2_strong_sd", 0);
3668 
3669  /* "cfemIntegrals.pyx":2327
3670  * np.ndarray Hess_phi,
3671  * np.ndarray strong_residual):
3672  * cdef int nElements_global = Hess_phi.shape[0] # <<<<<<<<<<<<<<
3673  * cdef int nQuadraturePoints_element = Hess_phi.shape[1]
3674  * cdef int nSpace = Hess_phi.shape[2]
3675  */
3676  __pyx_v_nElements_global = (__pyx_v_Hess_phi->dimensions[0]);
3677 
3678  /* "cfemIntegrals.pyx":2328
3679  * np.ndarray strong_residual):
3680  * cdef int nElements_global = Hess_phi.shape[0]
3681  * cdef int nQuadraturePoints_element = Hess_phi.shape[1] # <<<<<<<<<<<<<<
3682  * cdef int nSpace = Hess_phi.shape[2]
3683  * cupdateDiffusion2_strong_sd(nElements_global,
3684  */
3685  __pyx_v_nQuadraturePoints_element = (__pyx_v_Hess_phi->dimensions[1]);
3686 
3687  /* "cfemIntegrals.pyx":2329
3688  * cdef int nElements_global = Hess_phi.shape[0]
3689  * cdef int nQuadraturePoints_element = Hess_phi.shape[1]
3690  * cdef int nSpace = Hess_phi.shape[2] # <<<<<<<<<<<<<<
3691  * cupdateDiffusion2_strong_sd(nElements_global,
3692  * nQuadraturePoints_element,
3693  */
3694  __pyx_v_nSpace = (__pyx_v_Hess_phi->dimensions[2]);
3695 
3696  /* "cfemIntegrals.pyx":2330
3697  * cdef int nQuadraturePoints_element = Hess_phi.shape[1]
3698  * cdef int nSpace = Hess_phi.shape[2]
3699  * cupdateDiffusion2_strong_sd(nElements_global, # <<<<<<<<<<<<<<
3700  * nQuadraturePoints_element,
3701  * nSpace,
3702  */
3703  updateDiffusion2_strong_sd(__pyx_v_nElements_global, __pyx_v_nQuadraturePoints_element, __pyx_v_nSpace, ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_Hess_phi->data), ((double *)__pyx_v_strong_residual->data));
3704 
3705  /* "cfemIntegrals.pyx":2322
3706  * <double*> Hess_phi.data,
3707  * <double*> strong_residual.data)
3708  * def updateDiffusion2_strong_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
3709  * np.ndarray colind,
3710  * np.ndarray a,
3711  */
3712 
3713  /* function exit code */
3714  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3715  __Pyx_XGIVEREF(__pyx_r);
3716  __Pyx_RefNannyFinishContext();
3717  return __pyx_r;
3718 }
3719 
3720 /* "cfemIntegrals.pyx":2338
3721  * <double*> Hess_phi.data,
3722  * <double*> strong_residual.data)
3723  * def updateDiffusionJacobian2_strong(np.ndarray l2g, # <<<<<<<<<<<<<<
3724  * np.ndarray a,
3725  * np.ndarray da,
3726  */
3727 
3728 /* Python wrapper */
3729 static PyObject *__pyx_pw_13cfemIntegrals_7updateDiffusionJacobian2_strong(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3730 static PyMethodDef __pyx_mdef_13cfemIntegrals_7updateDiffusionJacobian2_strong = {"updateDiffusionJacobian2_strong", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_13cfemIntegrals_7updateDiffusionJacobian2_strong, METH_VARARGS|METH_KEYWORDS, 0};
3731 static PyObject *__pyx_pw_13cfemIntegrals_7updateDiffusionJacobian2_strong(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3732  PyArrayObject *__pyx_v_l2g = 0;
3733  PyArrayObject *__pyx_v_a = 0;
3734  PyArrayObject *__pyx_v_da = 0;
3735  PyArrayObject *__pyx_v_v = 0;
3736  PyArrayObject *__pyx_v_Hess_phi = 0;
3737  PyArrayObject *__pyx_v_dphi = 0;
3738  PyArrayObject *__pyx_v_Hess_v = 0;
3739  PyArrayObject *__pyx_v_dstrong_residual = 0;
3740  int __pyx_lineno = 0;
3741  const char *__pyx_filename = NULL;
3742  int __pyx_clineno = 0;
3743  PyObject *__pyx_r = 0;
3744  __Pyx_RefNannyDeclarations
3745  __Pyx_RefNannySetupContext("updateDiffusionJacobian2_strong (wrapper)", 0);
3746  {
3747  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_l2g,&__pyx_n_s_a,&__pyx_n_s_da,&__pyx_n_s_v,&__pyx_n_s_Hess_phi,&__pyx_n_s_dphi,&__pyx_n_s_Hess_v,&__pyx_n_s_dstrong_residual,0};
3748  PyObject* values[8] = {0,0,0,0,0,0,0,0};
3749  if (unlikely(__pyx_kwds)) {
3750  Py_ssize_t kw_args;
3751  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3752  switch (pos_args) {
3753  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3754  CYTHON_FALLTHROUGH;
3755  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3756  CYTHON_FALLTHROUGH;
3757  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3758  CYTHON_FALLTHROUGH;
3759  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3760  CYTHON_FALLTHROUGH;
3761  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3762  CYTHON_FALLTHROUGH;
3763  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3764  CYTHON_FALLTHROUGH;
3765  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3766  CYTHON_FALLTHROUGH;
3767  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3768  CYTHON_FALLTHROUGH;
3769  case 0: break;
3770  default: goto __pyx_L5_argtuple_error;
3771  }
3772  kw_args = PyDict_Size(__pyx_kwds);
3773  switch (pos_args) {
3774  case 0:
3775  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
3776  else goto __pyx_L5_argtuple_error;
3777  CYTHON_FALLTHROUGH;
3778  case 1:
3779  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
3780  else {
3781  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong", 1, 8, 8, 1); __PYX_ERR(0, 2338, __pyx_L3_error)
3782  }
3783  CYTHON_FALLTHROUGH;
3784  case 2:
3785  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
3786  else {
3787  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong", 1, 8, 8, 2); __PYX_ERR(0, 2338, __pyx_L3_error)
3788  }
3789  CYTHON_FALLTHROUGH;
3790  case 3:
3791  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
3792  else {
3793  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong", 1, 8, 8, 3); __PYX_ERR(0, 2338, __pyx_L3_error)
3794  }
3795  CYTHON_FALLTHROUGH;
3796  case 4:
3797  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Hess_phi)) != 0)) kw_args--;
3798  else {
3799  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong", 1, 8, 8, 4); __PYX_ERR(0, 2338, __pyx_L3_error)
3800  }
3801  CYTHON_FALLTHROUGH;
3802  case 5:
3803  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
3804  else {
3805  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong", 1, 8, 8, 5); __PYX_ERR(0, 2338, __pyx_L3_error)
3806  }
3807  CYTHON_FALLTHROUGH;
3808  case 6:
3809  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Hess_v)) != 0)) kw_args--;
3810  else {
3811  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong", 1, 8, 8, 6); __PYX_ERR(0, 2338, __pyx_L3_error)
3812  }
3813  CYTHON_FALLTHROUGH;
3814  case 7:
3815  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstrong_residual)) != 0)) kw_args--;
3816  else {
3817  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong", 1, 8, 8, 7); __PYX_ERR(0, 2338, __pyx_L3_error)
3818  }
3819  }
3820  if (unlikely(kw_args > 0)) {
3821  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateDiffusionJacobian2_strong") < 0)) __PYX_ERR(0, 2338, __pyx_L3_error)
3822  }
3823  } else if (PyTuple_GET_SIZE(__pyx_args) != 8) {
3824  goto __pyx_L5_argtuple_error;
3825  } else {
3826  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3827  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3828  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3829  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3830  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3831  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3832  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3833  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3834  }
3835  __pyx_v_l2g = ((PyArrayObject *)values[0]);
3836  __pyx_v_a = ((PyArrayObject *)values[1]);
3837  __pyx_v_da = ((PyArrayObject *)values[2]);
3838  __pyx_v_v = ((PyArrayObject *)values[3]);
3839  __pyx_v_Hess_phi = ((PyArrayObject *)values[4]);
3840  __pyx_v_dphi = ((PyArrayObject *)values[5]);
3841  __pyx_v_Hess_v = ((PyArrayObject *)values[6]);
3842  __pyx_v_dstrong_residual = ((PyArrayObject *)values[7]);
3843  }
3844  goto __pyx_L4_argument_unpacking_done;
3845  __pyx_L5_argtuple_error:;
3846  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2338, __pyx_L3_error)
3847  __pyx_L3_error:;
3848  __Pyx_AddTraceback("cfemIntegrals.updateDiffusionJacobian2_strong", __pyx_clineno, __pyx_lineno, __pyx_filename);
3849  __Pyx_RefNannyFinishContext();
3850  return NULL;
3851  __pyx_L4_argument_unpacking_done:;
3852  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 2338, __pyx_L1_error)
3853  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 2339, __pyx_L1_error)
3854  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 2340, __pyx_L1_error)
3855  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 2341, __pyx_L1_error)
3856  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Hess_phi), __pyx_ptype_5numpy_ndarray, 1, "Hess_phi", 0))) __PYX_ERR(0, 2342, __pyx_L1_error)
3857  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 2343, __pyx_L1_error)
3858  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Hess_v), __pyx_ptype_5numpy_ndarray, 1, "Hess_v", 0))) __PYX_ERR(0, 2344, __pyx_L1_error)
3859  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstrong_residual), __pyx_ptype_5numpy_ndarray, 1, "dstrong_residual", 0))) __PYX_ERR(0, 2345, __pyx_L1_error)
3860  __pyx_r = __pyx_pf_13cfemIntegrals_6updateDiffusionJacobian2_strong(__pyx_self, __pyx_v_l2g, __pyx_v_a, __pyx_v_da, __pyx_v_v, __pyx_v_Hess_phi, __pyx_v_dphi, __pyx_v_Hess_v, __pyx_v_dstrong_residual);
3861 
3862  /* function exit code */
3863  goto __pyx_L0;
3864  __pyx_L1_error:;
3865  __pyx_r = NULL;
3866  __pyx_L0:;
3867  __Pyx_RefNannyFinishContext();
3868  return __pyx_r;
3869 }
3870 
3871 static PyObject *__pyx_pf_13cfemIntegrals_6updateDiffusionJacobian2_strong(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_Hess_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_Hess_v, PyArrayObject *__pyx_v_dstrong_residual) {
3872  int __pyx_v_nElements_global;
3873  int __pyx_v_nQuadraturePoints_element;
3874  int __pyx_v_nDOF_trial_element;
3875  int __pyx_v_nSpace;
3876  PyObject *__pyx_r = NULL;
3877  __Pyx_RefNannyDeclarations
3878  __Pyx_RefNannySetupContext("updateDiffusionJacobian2_strong", 0);
3879 
3880  /* "cfemIntegrals.pyx":2346
3881  * np.ndarray Hess_v,
3882  * np.ndarray dstrong_residual):
3883  * cdef int nElements_global = Hess_v.shape[0] # <<<<<<<<<<<<<<
3884  * cdef int nQuadraturePoints_element = Hess_v.shape[1]
3885  * cdef int nDOF_trial_element = Hess_v.shape[2]
3886  */
3887  __pyx_v_nElements_global = (__pyx_v_Hess_v->dimensions[0]);
3888 
3889  /* "cfemIntegrals.pyx":2347
3890  * np.ndarray dstrong_residual):
3891  * cdef int nElements_global = Hess_v.shape[0]
3892  * cdef int nQuadraturePoints_element = Hess_v.shape[1] # <<<<<<<<<<<<<<
3893  * cdef int nDOF_trial_element = Hess_v.shape[2]
3894  * cdef int nSpace = Hess_v.shape[3]
3895  */
3896  __pyx_v_nQuadraturePoints_element = (__pyx_v_Hess_v->dimensions[1]);
3897 
3898  /* "cfemIntegrals.pyx":2348
3899  * cdef int nElements_global = Hess_v.shape[0]
3900  * cdef int nQuadraturePoints_element = Hess_v.shape[1]
3901  * cdef int nDOF_trial_element = Hess_v.shape[2] # <<<<<<<<<<<<<<
3902  * cdef int nSpace = Hess_v.shape[3]
3903  * cupdateDiffusionJacobian2_strong(nElements_global,
3904  */
3905  __pyx_v_nDOF_trial_element = (__pyx_v_Hess_v->dimensions[2]);
3906 
3907  /* "cfemIntegrals.pyx":2349
3908  * cdef int nQuadraturePoints_element = Hess_v.shape[1]
3909  * cdef int nDOF_trial_element = Hess_v.shape[2]
3910  * cdef int nSpace = Hess_v.shape[3] # <<<<<<<<<<<<<<
3911  * cupdateDiffusionJacobian2_strong(nElements_global,
3912  * nQuadraturePoints_element,
3913  */
3914  __pyx_v_nSpace = (__pyx_v_Hess_v->dimensions[3]);
3915 
3916  /* "cfemIntegrals.pyx":2350
3917  * cdef int nDOF_trial_element = Hess_v.shape[2]
3918  * cdef int nSpace = Hess_v.shape[3]
3919  * cupdateDiffusionJacobian2_strong(nElements_global, # <<<<<<<<<<<<<<
3920  * nQuadraturePoints_element,
3921  * nDOF_trial_element,
3922  */
3923  updateDiffusionJacobian2_strong(__pyx_v_nElements_global, __pyx_v_nQuadraturePoints_element, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, ((int *)__pyx_v_l2g->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_da->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_Hess_phi->data), ((double *)__pyx_v_dphi->data), ((double *)__pyx_v_Hess_v->data), ((double *)__pyx_v_dstrong_residual->data));
3924 
3925  /* "cfemIntegrals.pyx":2338
3926  * <double*> Hess_phi.data,
3927  * <double*> strong_residual.data)
3928  * def updateDiffusionJacobian2_strong(np.ndarray l2g, # <<<<<<<<<<<<<<
3929  * np.ndarray a,
3930  * np.ndarray da,
3931  */
3932 
3933  /* function exit code */
3934  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3935  __Pyx_XGIVEREF(__pyx_r);
3936  __Pyx_RefNannyFinishContext();
3937  return __pyx_r;
3938 }
3939 
3940 /* "cfemIntegrals.pyx":2362
3941  * <double*> Hess_v.data,
3942  * <double*> dstrong_residual.data)
3943  * def updateDiffusionJacobian2_strong_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
3944  * np.ndarray colind,
3945  * np.ndarray l2g,
3946  */
3947 
3948 /* Python wrapper */
3949 static PyObject *__pyx_pw_13cfemIntegrals_9updateDiffusionJacobian2_strong_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3950 static PyMethodDef __pyx_mdef_13cfemIntegrals_9updateDiffusionJacobian2_strong_sd = {"updateDiffusionJacobian2_strong_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_13cfemIntegrals_9updateDiffusionJacobian2_strong_sd, METH_VARARGS|METH_KEYWORDS, 0};
3951 static PyObject *__pyx_pw_13cfemIntegrals_9updateDiffusionJacobian2_strong_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3952  PyArrayObject *__pyx_v_rowptr = 0;
3953  PyArrayObject *__pyx_v_colind = 0;
3954  PyArrayObject *__pyx_v_l2g = 0;
3955  PyArrayObject *__pyx_v_a = 0;
3956  PyArrayObject *__pyx_v_da = 0;
3957  PyArrayObject *__pyx_v_v = 0;
3958  PyArrayObject *__pyx_v_Hess_phi = 0;
3959  PyArrayObject *__pyx_v_dphi = 0;
3960  PyArrayObject *__pyx_v_Hess_v = 0;
3961  PyArrayObject *__pyx_v_dstrong_residual = 0;
3962  int __pyx_lineno = 0;
3963  const char *__pyx_filename = NULL;
3964  int __pyx_clineno = 0;
3965  PyObject *__pyx_r = 0;
3966  __Pyx_RefNannyDeclarations
3967  __Pyx_RefNannySetupContext("updateDiffusionJacobian2_strong_sd (wrapper)", 0);
3968  {
3969  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_l2g,&__pyx_n_s_a,&__pyx_n_s_da,&__pyx_n_s_v,&__pyx_n_s_Hess_phi,&__pyx_n_s_dphi,&__pyx_n_s_Hess_v,&__pyx_n_s_dstrong_residual,0};
3970  PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
3971  if (unlikely(__pyx_kwds)) {
3972  Py_ssize_t kw_args;
3973  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3974  switch (pos_args) {
3975  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
3976  CYTHON_FALLTHROUGH;
3977  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
3978  CYTHON_FALLTHROUGH;
3979  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3980  CYTHON_FALLTHROUGH;
3981  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3982  CYTHON_FALLTHROUGH;
3983  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3984  CYTHON_FALLTHROUGH;
3985  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3986  CYTHON_FALLTHROUGH;
3987  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3988  CYTHON_FALLTHROUGH;
3989  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3990  CYTHON_FALLTHROUGH;
3991  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3992  CYTHON_FALLTHROUGH;
3993  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3994  CYTHON_FALLTHROUGH;
3995  case 0: break;
3996  default: goto __pyx_L5_argtuple_error;
3997  }
3998  kw_args = PyDict_Size(__pyx_kwds);
3999  switch (pos_args) {
4000  case 0:
4001  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
4002  else goto __pyx_L5_argtuple_error;
4003  CYTHON_FALLTHROUGH;
4004  case 1:
4005  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
4006  else {
4007  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong_sd", 1, 10, 10, 1); __PYX_ERR(0, 2362, __pyx_L3_error)
4008  }
4009  CYTHON_FALLTHROUGH;
4010  case 2:
4011  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
4012  else {
4013  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong_sd", 1, 10, 10, 2); __PYX_ERR(0, 2362, __pyx_L3_error)
4014  }
4015  CYTHON_FALLTHROUGH;
4016  case 3:
4017  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
4018  else {
4019  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong_sd", 1, 10, 10, 3); __PYX_ERR(0, 2362, __pyx_L3_error)
4020  }
4021  CYTHON_FALLTHROUGH;
4022  case 4:
4023  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
4024  else {
4025  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong_sd", 1, 10, 10, 4); __PYX_ERR(0, 2362, __pyx_L3_error)
4026  }
4027  CYTHON_FALLTHROUGH;
4028  case 5:
4029  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
4030  else {
4031  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong_sd", 1, 10, 10, 5); __PYX_ERR(0, 2362, __pyx_L3_error)
4032  }
4033  CYTHON_FALLTHROUGH;
4034  case 6:
4035  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Hess_phi)) != 0)) kw_args--;
4036  else {
4037  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong_sd", 1, 10, 10, 6); __PYX_ERR(0, 2362, __pyx_L3_error)
4038  }
4039  CYTHON_FALLTHROUGH;
4040  case 7:
4041  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dphi)) != 0)) kw_args--;
4042  else {
4043  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong_sd", 1, 10, 10, 7); __PYX_ERR(0, 2362, __pyx_L3_error)
4044  }
4045  CYTHON_FALLTHROUGH;
4046  case 8:
4047  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Hess_v)) != 0)) kw_args--;
4048  else {
4049  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong_sd", 1, 10, 10, 8); __PYX_ERR(0, 2362, __pyx_L3_error)
4050  }
4051  CYTHON_FALLTHROUGH;
4052  case 9:
4053  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dstrong_residual)) != 0)) kw_args--;
4054  else {
4055  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong_sd", 1, 10, 10, 9); __PYX_ERR(0, 2362, __pyx_L3_error)
4056  }
4057  }
4058  if (unlikely(kw_args > 0)) {
4059  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateDiffusionJacobian2_strong_sd") < 0)) __PYX_ERR(0, 2362, __pyx_L3_error)
4060  }
4061  } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
4062  goto __pyx_L5_argtuple_error;
4063  } else {
4064  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4065  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4066  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4067  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4068  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4069  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4070  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4071  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4072  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4073  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
4074  }
4075  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
4076  __pyx_v_colind = ((PyArrayObject *)values[1]);
4077  __pyx_v_l2g = ((PyArrayObject *)values[2]);
4078  __pyx_v_a = ((PyArrayObject *)values[3]);
4079  __pyx_v_da = ((PyArrayObject *)values[4]);
4080  __pyx_v_v = ((PyArrayObject *)values[5]);
4081  __pyx_v_Hess_phi = ((PyArrayObject *)values[6]);
4082  __pyx_v_dphi = ((PyArrayObject *)values[7]);
4083  __pyx_v_Hess_v = ((PyArrayObject *)values[8]);
4084  __pyx_v_dstrong_residual = ((PyArrayObject *)values[9]);
4085  }
4086  goto __pyx_L4_argument_unpacking_done;
4087  __pyx_L5_argtuple_error:;
4088  __Pyx_RaiseArgtupleInvalid("updateDiffusionJacobian2_strong_sd", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2362, __pyx_L3_error)
4089  __pyx_L3_error:;
4090  __Pyx_AddTraceback("cfemIntegrals.updateDiffusionJacobian2_strong_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
4091  __Pyx_RefNannyFinishContext();
4092  return NULL;
4093  __pyx_L4_argument_unpacking_done:;
4094  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 2362, __pyx_L1_error)
4095  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 2363, __pyx_L1_error)
4096  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 2364, __pyx_L1_error)
4097  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 2365, __pyx_L1_error)
4098  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 2366, __pyx_L1_error)
4099  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 2367, __pyx_L1_error)
4100  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Hess_phi), __pyx_ptype_5numpy_ndarray, 1, "Hess_phi", 0))) __PYX_ERR(0, 2368, __pyx_L1_error)
4101  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 2369, __pyx_L1_error)
4102  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Hess_v), __pyx_ptype_5numpy_ndarray, 1, "Hess_v", 0))) __PYX_ERR(0, 2370, __pyx_L1_error)
4103  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dstrong_residual), __pyx_ptype_5numpy_ndarray, 1, "dstrong_residual", 0))) __PYX_ERR(0, 2371, __pyx_L1_error)
4104  __pyx_r = __pyx_pf_13cfemIntegrals_8updateDiffusionJacobian2_strong_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_l2g, __pyx_v_a, __pyx_v_da, __pyx_v_v, __pyx_v_Hess_phi, __pyx_v_dphi, __pyx_v_Hess_v, __pyx_v_dstrong_residual);
4105 
4106  /* function exit code */
4107  goto __pyx_L0;
4108  __pyx_L1_error:;
4109  __pyx_r = NULL;
4110  __pyx_L0:;
4111  __Pyx_RefNannyFinishContext();
4112  return __pyx_r;
4113 }
4114 
4115 static PyObject *__pyx_pf_13cfemIntegrals_8updateDiffusionJacobian2_strong_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_Hess_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_Hess_v, PyArrayObject *__pyx_v_dstrong_residual) {
4116  int __pyx_v_nElements_global;
4117  int __pyx_v_nQuadraturePoints_element;
4118  int __pyx_v_nDOF_trial_element;
4119  int __pyx_v_nSpace;
4120  PyObject *__pyx_r = NULL;
4121  __Pyx_RefNannyDeclarations
4122  __Pyx_RefNannySetupContext("updateDiffusionJacobian2_strong_sd", 0);
4123 
4124  /* "cfemIntegrals.pyx":2372
4125  * np.ndarray Hess_v,
4126  * np.ndarray dstrong_residual):
4127  * cdef int nElements_global = Hess_v.shape[0] # <<<<<<<<<<<<<<
4128  * cdef int nQuadraturePoints_element = Hess_v.shape[1]
4129  * cdef int nDOF_trial_element = Hess_v.shape[2]
4130  */
4131  __pyx_v_nElements_global = (__pyx_v_Hess_v->dimensions[0]);
4132 
4133  /* "cfemIntegrals.pyx":2373
4134  * np.ndarray dstrong_residual):
4135  * cdef int nElements_global = Hess_v.shape[0]
4136  * cdef int nQuadraturePoints_element = Hess_v.shape[1] # <<<<<<<<<<<<<<
4137  * cdef int nDOF_trial_element = Hess_v.shape[2]
4138  * cdef int nSpace = Hess_v.shape[3]
4139  */
4140  __pyx_v_nQuadraturePoints_element = (__pyx_v_Hess_v->dimensions[1]);
4141 
4142  /* "cfemIntegrals.pyx":2374
4143  * cdef int nElements_global = Hess_v.shape[0]
4144  * cdef int nQuadraturePoints_element = Hess_v.shape[1]
4145  * cdef int nDOF_trial_element = Hess_v.shape[2] # <<<<<<<<<<<<<<
4146  * cdef int nSpace = Hess_v.shape[3]
4147  * cupdateDiffusionJacobian2_strong_sd(nElements_global,
4148  */
4149  __pyx_v_nDOF_trial_element = (__pyx_v_Hess_v->dimensions[2]);
4150 
4151  /* "cfemIntegrals.pyx":2375
4152  * cdef int nQuadraturePoints_element = Hess_v.shape[1]
4153  * cdef int nDOF_trial_element = Hess_v.shape[2]
4154  * cdef int nSpace = Hess_v.shape[3] # <<<<<<<<<<<<<<
4155  * cupdateDiffusionJacobian2_strong_sd(nElements_global,
4156  * nQuadraturePoints_element,
4157  */
4158  __pyx_v_nSpace = (__pyx_v_Hess_v->dimensions[3]);
4159 
4160  /* "cfemIntegrals.pyx":2376
4161  * cdef int nDOF_trial_element = Hess_v.shape[2]
4162  * cdef int nSpace = Hess_v.shape[3]
4163  * cupdateDiffusionJacobian2_strong_sd(nElements_global, # <<<<<<<<<<<<<<
4164  * nQuadraturePoints_element,
4165  * nDOF_trial_element,
4166  */
4167  updateDiffusionJacobian2_strong_sd(__pyx_v_nElements_global, __pyx_v_nQuadraturePoints_element, __pyx_v_nDOF_trial_element, __pyx_v_nSpace, ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((int *)__pyx_v_l2g->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_da->data), ((double *)__pyx_v_v->data), ((double *)__pyx_v_Hess_phi->data), ((double *)__pyx_v_dphi->data), ((double *)__pyx_v_Hess_v->data), ((double *)__pyx_v_dstrong_residual->data));
4168 
4169  /* "cfemIntegrals.pyx":2362
4170  * <double*> Hess_v.data,
4171  * <double*> dstrong_residual.data)
4172  * def updateDiffusionJacobian2_strong_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
4173  * np.ndarray colind,
4174  * np.ndarray l2g,
4175  */
4176 
4177  /* function exit code */
4178  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4179  __Pyx_XGIVEREF(__pyx_r);
4180  __Pyx_RefNannyFinishContext();
4181  return __pyx_r;
4182 }
4183 
4184 /* "cfemIntegrals.pyx":2390
4185  * <double*> Hess_v.data,
4186  * <double*> dstrong_residual.data)
4187  * def updateDiffusion2_adjoint(np.ndarray a, # <<<<<<<<<<<<<<
4188  * np.ndarray Hess_w_dV,
4189  * np.ndarray Lstar_w_dV):
4190  */
4191 
4192 /* Python wrapper */
4193 static PyObject *__pyx_pw_13cfemIntegrals_11updateDiffusion2_adjoint(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4194 static PyMethodDef __pyx_mdef_13cfemIntegrals_11updateDiffusion2_adjoint = {"updateDiffusion2_adjoint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_13cfemIntegrals_11updateDiffusion2_adjoint, METH_VARARGS|METH_KEYWORDS, 0};
4195 static PyObject *__pyx_pw_13cfemIntegrals_11updateDiffusion2_adjoint(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4196  PyArrayObject *__pyx_v_a = 0;
4197  PyArrayObject *__pyx_v_Hess_w_dV = 0;
4198  PyArrayObject *__pyx_v_Lstar_w_dV = 0;
4199  int __pyx_lineno = 0;
4200  const char *__pyx_filename = NULL;
4201  int __pyx_clineno = 0;
4202  PyObject *__pyx_r = 0;
4203  __Pyx_RefNannyDeclarations
4204  __Pyx_RefNannySetupContext("updateDiffusion2_adjoint (wrapper)", 0);
4205  {
4206  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_a,&__pyx_n_s_Hess_w_dV,&__pyx_n_s_Lstar_w_dV,0};
4207  PyObject* values[3] = {0,0,0};
4208  if (unlikely(__pyx_kwds)) {
4209  Py_ssize_t kw_args;
4210  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4211  switch (pos_args) {
4212  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4213  CYTHON_FALLTHROUGH;
4214  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4215  CYTHON_FALLTHROUGH;
4216  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4217  CYTHON_FALLTHROUGH;
4218  case 0: break;
4219  default: goto __pyx_L5_argtuple_error;
4220  }
4221  kw_args = PyDict_Size(__pyx_kwds);
4222  switch (pos_args) {
4223  case 0:
4224  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
4225  else goto __pyx_L5_argtuple_error;
4226  CYTHON_FALLTHROUGH;
4227  case 1:
4228  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Hess_w_dV)) != 0)) kw_args--;
4229  else {
4230  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_adjoint", 1, 3, 3, 1); __PYX_ERR(0, 2390, __pyx_L3_error)
4231  }
4232  CYTHON_FALLTHROUGH;
4233  case 2:
4234  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Lstar_w_dV)) != 0)) kw_args--;
4235  else {
4236  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_adjoint", 1, 3, 3, 2); __PYX_ERR(0, 2390, __pyx_L3_error)
4237  }
4238  }
4239  if (unlikely(kw_args > 0)) {
4240  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateDiffusion2_adjoint") < 0)) __PYX_ERR(0, 2390, __pyx_L3_error)
4241  }
4242  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
4243  goto __pyx_L5_argtuple_error;
4244  } else {
4245  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4246  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4247  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4248  }
4249  __pyx_v_a = ((PyArrayObject *)values[0]);
4250  __pyx_v_Hess_w_dV = ((PyArrayObject *)values[1]);
4251  __pyx_v_Lstar_w_dV = ((PyArrayObject *)values[2]);
4252  }
4253  goto __pyx_L4_argument_unpacking_done;
4254  __pyx_L5_argtuple_error:;
4255  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_adjoint", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2390, __pyx_L3_error)
4256  __pyx_L3_error:;
4257  __Pyx_AddTraceback("cfemIntegrals.updateDiffusion2_adjoint", __pyx_clineno, __pyx_lineno, __pyx_filename);
4258  __Pyx_RefNannyFinishContext();
4259  return NULL;
4260  __pyx_L4_argument_unpacking_done:;
4261  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 2390, __pyx_L1_error)
4262  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Hess_w_dV), __pyx_ptype_5numpy_ndarray, 1, "Hess_w_dV", 0))) __PYX_ERR(0, 2391, __pyx_L1_error)
4263  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Lstar_w_dV), __pyx_ptype_5numpy_ndarray, 1, "Lstar_w_dV", 0))) __PYX_ERR(0, 2392, __pyx_L1_error)
4264  __pyx_r = __pyx_pf_13cfemIntegrals_10updateDiffusion2_adjoint(__pyx_self, __pyx_v_a, __pyx_v_Hess_w_dV, __pyx_v_Lstar_w_dV);
4265 
4266  /* function exit code */
4267  goto __pyx_L0;
4268  __pyx_L1_error:;
4269  __pyx_r = NULL;
4270  __pyx_L0:;
4271  __Pyx_RefNannyFinishContext();
4272  return __pyx_r;
4273 }
4274 
4275 static PyObject *__pyx_pf_13cfemIntegrals_10updateDiffusion2_adjoint(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_Hess_w_dV, PyArrayObject *__pyx_v_Lstar_w_dV) {
4276  int __pyx_v_nElements_global;
4277  int __pyx_v_nQuadraturePoints_element;
4278  int __pyx_v_nDOF_test_element;
4279  int __pyx_v_nSpace;
4280  PyObject *__pyx_r = NULL;
4281  __Pyx_RefNannyDeclarations
4282  __Pyx_RefNannySetupContext("updateDiffusion2_adjoint", 0);
4283 
4284  /* "cfemIntegrals.pyx":2393
4285  * np.ndarray Hess_w_dV,
4286  * np.ndarray Lstar_w_dV):
4287  * cdef int nElements_global = Hess_w_dV.shape[0] # <<<<<<<<<<<<<<
4288  * cdef int nQuadraturePoints_element = Hess_w_dV.shape[1]
4289  * cdef int nDOF_test_element = Hess_w_dV.shape[2]
4290  */
4291  __pyx_v_nElements_global = (__pyx_v_Hess_w_dV->dimensions[0]);
4292 
4293  /* "cfemIntegrals.pyx":2394
4294  * np.ndarray Lstar_w_dV):
4295  * cdef int nElements_global = Hess_w_dV.shape[0]
4296  * cdef int nQuadraturePoints_element = Hess_w_dV.shape[1] # <<<<<<<<<<<<<<
4297  * cdef int nDOF_test_element = Hess_w_dV.shape[2]
4298  * cdef int nSpace = Hess_w_dV.shape[3]
4299  */
4300  __pyx_v_nQuadraturePoints_element = (__pyx_v_Hess_w_dV->dimensions[1]);
4301 
4302  /* "cfemIntegrals.pyx":2395
4303  * cdef int nElements_global = Hess_w_dV.shape[0]
4304  * cdef int nQuadraturePoints_element = Hess_w_dV.shape[1]
4305  * cdef int nDOF_test_element = Hess_w_dV.shape[2] # <<<<<<<<<<<<<<
4306  * cdef int nSpace = Hess_w_dV.shape[3]
4307  * cupdateDiffusion2_adjoint(nElements_global,
4308  */
4309  __pyx_v_nDOF_test_element = (__pyx_v_Hess_w_dV->dimensions[2]);
4310 
4311  /* "cfemIntegrals.pyx":2396
4312  * cdef int nQuadraturePoints_element = Hess_w_dV.shape[1]
4313  * cdef int nDOF_test_element = Hess_w_dV.shape[2]
4314  * cdef int nSpace = Hess_w_dV.shape[3] # <<<<<<<<<<<<<<
4315  * cupdateDiffusion2_adjoint(nElements_global,
4316  * nQuadraturePoints_element,
4317  */
4318  __pyx_v_nSpace = (__pyx_v_Hess_w_dV->dimensions[3]);
4319 
4320  /* "cfemIntegrals.pyx":2397
4321  * cdef int nDOF_test_element = Hess_w_dV.shape[2]
4322  * cdef int nSpace = Hess_w_dV.shape[3]
4323  * cupdateDiffusion2_adjoint(nElements_global, # <<<<<<<<<<<<<<
4324  * nQuadraturePoints_element,
4325  * nDOF_test_element,
4326  */
4327  updateDiffusion2_adjoint(__pyx_v_nElements_global, __pyx_v_nQuadraturePoints_element, __pyx_v_nDOF_test_element, __pyx_v_nSpace, ((double *)__pyx_v_a->data), ((double *)__pyx_v_Hess_w_dV->data), ((double *)__pyx_v_Lstar_w_dV->data));
4328 
4329  /* "cfemIntegrals.pyx":2390
4330  * <double*> Hess_v.data,
4331  * <double*> dstrong_residual.data)
4332  * def updateDiffusion2_adjoint(np.ndarray a, # <<<<<<<<<<<<<<
4333  * np.ndarray Hess_w_dV,
4334  * np.ndarray Lstar_w_dV):
4335  */
4336 
4337  /* function exit code */
4338  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4339  __Pyx_XGIVEREF(__pyx_r);
4340  __Pyx_RefNannyFinishContext();
4341  return __pyx_r;
4342 }
4343 
4344 /* "cfemIntegrals.pyx":2404
4345  * <double*> Hess_w_dV.data,
4346  * <double*> Lstar_w_dV.data)
4347  * def updateDiffusion2_adjoint_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
4348  * np.ndarray colind,
4349  * np.ndarray a,
4350  */
4351 
4352 /* Python wrapper */
4353 static PyObject *__pyx_pw_13cfemIntegrals_13updateDiffusion2_adjoint_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4354 static PyMethodDef __pyx_mdef_13cfemIntegrals_13updateDiffusion2_adjoint_sd = {"updateDiffusion2_adjoint_sd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_13cfemIntegrals_13updateDiffusion2_adjoint_sd, METH_VARARGS|METH_KEYWORDS, 0};
4355 static PyObject *__pyx_pw_13cfemIntegrals_13updateDiffusion2_adjoint_sd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4356  PyArrayObject *__pyx_v_rowptr = 0;
4357  PyArrayObject *__pyx_v_colind = 0;
4358  PyArrayObject *__pyx_v_a = 0;
4359  PyArrayObject *__pyx_v_Hess_w_dV = 0;
4360  PyArrayObject *__pyx_v_Lstar_w_dV = 0;
4361  int __pyx_lineno = 0;
4362  const char *__pyx_filename = NULL;
4363  int __pyx_clineno = 0;
4364  PyObject *__pyx_r = 0;
4365  __Pyx_RefNannyDeclarations
4366  __Pyx_RefNannySetupContext("updateDiffusion2_adjoint_sd (wrapper)", 0);
4367  {
4368  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rowptr,&__pyx_n_s_colind,&__pyx_n_s_a,&__pyx_n_s_Hess_w_dV,&__pyx_n_s_Lstar_w_dV,0};
4369  PyObject* values[5] = {0,0,0,0,0};
4370  if (unlikely(__pyx_kwds)) {
4371  Py_ssize_t kw_args;
4372  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4373  switch (pos_args) {
4374  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4375  CYTHON_FALLTHROUGH;
4376  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4377  CYTHON_FALLTHROUGH;
4378  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4379  CYTHON_FALLTHROUGH;
4380  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4381  CYTHON_FALLTHROUGH;
4382  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4383  CYTHON_FALLTHROUGH;
4384  case 0: break;
4385  default: goto __pyx_L5_argtuple_error;
4386  }
4387  kw_args = PyDict_Size(__pyx_kwds);
4388  switch (pos_args) {
4389  case 0:
4390  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowptr)) != 0)) kw_args--;
4391  else goto __pyx_L5_argtuple_error;
4392  CYTHON_FALLTHROUGH;
4393  case 1:
4394  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_colind)) != 0)) kw_args--;
4395  else {
4396  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_adjoint_sd", 1, 5, 5, 1); __PYX_ERR(0, 2404, __pyx_L3_error)
4397  }
4398  CYTHON_FALLTHROUGH;
4399  case 2:
4400  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;
4401  else {
4402  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_adjoint_sd", 1, 5, 5, 2); __PYX_ERR(0, 2404, __pyx_L3_error)
4403  }
4404  CYTHON_FALLTHROUGH;
4405  case 3:
4406  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Hess_w_dV)) != 0)) kw_args--;
4407  else {
4408  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_adjoint_sd", 1, 5, 5, 3); __PYX_ERR(0, 2404, __pyx_L3_error)
4409  }
4410  CYTHON_FALLTHROUGH;
4411  case 4:
4412  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Lstar_w_dV)) != 0)) kw_args--;
4413  else {
4414  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_adjoint_sd", 1, 5, 5, 4); __PYX_ERR(0, 2404, __pyx_L3_error)
4415  }
4416  }
4417  if (unlikely(kw_args > 0)) {
4418  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateDiffusion2_adjoint_sd") < 0)) __PYX_ERR(0, 2404, __pyx_L3_error)
4419  }
4420  } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
4421  goto __pyx_L5_argtuple_error;
4422  } else {
4423  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4424  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4425  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4426  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4427  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4428  }
4429  __pyx_v_rowptr = ((PyArrayObject *)values[0]);
4430  __pyx_v_colind = ((PyArrayObject *)values[1]);
4431  __pyx_v_a = ((PyArrayObject *)values[2]);
4432  __pyx_v_Hess_w_dV = ((PyArrayObject *)values[3]);
4433  __pyx_v_Lstar_w_dV = ((PyArrayObject *)values[4]);
4434  }
4435  goto __pyx_L4_argument_unpacking_done;
4436  __pyx_L5_argtuple_error:;
4437  __Pyx_RaiseArgtupleInvalid("updateDiffusion2_adjoint_sd", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2404, __pyx_L3_error)
4438  __pyx_L3_error:;
4439  __Pyx_AddTraceback("cfemIntegrals.updateDiffusion2_adjoint_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
4440  __Pyx_RefNannyFinishContext();
4441  return NULL;
4442  __pyx_L4_argument_unpacking_done:;
4443  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 2404, __pyx_L1_error)
4444  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 2405, __pyx_L1_error)
4445  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 2406, __pyx_L1_error)
4446  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Hess_w_dV), __pyx_ptype_5numpy_ndarray, 1, "Hess_w_dV", 0))) __PYX_ERR(0, 2407, __pyx_L1_error)
4447  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Lstar_w_dV), __pyx_ptype_5numpy_ndarray, 1, "Lstar_w_dV", 0))) __PYX_ERR(0, 2408, __pyx_L1_error)
4448  __pyx_r = __pyx_pf_13cfemIntegrals_12updateDiffusion2_adjoint_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_a, __pyx_v_Hess_w_dV, __pyx_v_Lstar_w_dV);
4449 
4450  /* function exit code */
4451  goto __pyx_L0;
4452  __pyx_L1_error:;
4453  __pyx_r = NULL;
4454  __pyx_L0:;
4455  __Pyx_RefNannyFinishContext();
4456  return __pyx_r;
4457 }
4458 
4459 static PyObject *__pyx_pf_13cfemIntegrals_12updateDiffusion2_adjoint_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_Hess_w_dV, PyArrayObject *__pyx_v_Lstar_w_dV) {
4460  int __pyx_v_nElements_global;
4461  int __pyx_v_nQuadraturePoints_element;
4462  int __pyx_v_nDOF_test_element;
4463  int __pyx_v_nSpace;
4464  PyObject *__pyx_r = NULL;
4465  __Pyx_RefNannyDeclarations
4466  __Pyx_RefNannySetupContext("updateDiffusion2_adjoint_sd", 0);
4467 
4468  /* "cfemIntegrals.pyx":2409
4469  * np.ndarray Hess_w_dV,
4470  * np.ndarray Lstar_w_dV):
4471  * cdef int nElements_global = Hess_w_dV.shape[0] # <<<<<<<<<<<<<<
4472  * cdef int nQuadraturePoints_element = Hess_w_dV.shape[1]
4473  * cdef int nDOF_test_element = Hess_w_dV.shape[2]
4474  */
4475  __pyx_v_nElements_global = (__pyx_v_Hess_w_dV->dimensions[0]);
4476 
4477  /* "cfemIntegrals.pyx":2410
4478  * np.ndarray Lstar_w_dV):
4479  * cdef int nElements_global = Hess_w_dV.shape[0]
4480  * cdef int nQuadraturePoints_element = Hess_w_dV.shape[1] # <<<<<<<<<<<<<<
4481  * cdef int nDOF_test_element = Hess_w_dV.shape[2]
4482  * cdef int nSpace = Hess_w_dV.shape[3]
4483  */
4484  __pyx_v_nQuadraturePoints_element = (__pyx_v_Hess_w_dV->dimensions[1]);
4485 
4486  /* "cfemIntegrals.pyx":2411
4487  * cdef int nElements_global = Hess_w_dV.shape[0]
4488  * cdef int nQuadraturePoints_element = Hess_w_dV.shape[1]
4489  * cdef int nDOF_test_element = Hess_w_dV.shape[2] # <<<<<<<<<<<<<<
4490  * cdef int nSpace = Hess_w_dV.shape[3]
4491  * cupdateDiffusion2_adjoint_sd(nElements_global,
4492  */
4493  __pyx_v_nDOF_test_element = (__pyx_v_Hess_w_dV->dimensions[2]);
4494 
4495  /* "cfemIntegrals.pyx":2412
4496  * cdef int nQuadraturePoints_element = Hess_w_dV.shape[1]
4497  * cdef int nDOF_test_element = Hess_w_dV.shape[2]
4498  * cdef int nSpace = Hess_w_dV.shape[3] # <<<<<<<<<<<<<<
4499  * cupdateDiffusion2_adjoint_sd(nElements_global,
4500  * nQuadraturePoints_element,
4501  */
4502  __pyx_v_nSpace = (__pyx_v_Hess_w_dV->dimensions[3]);
4503 
4504  /* "cfemIntegrals.pyx":2413
4505  * cdef int nDOF_test_element = Hess_w_dV.shape[2]
4506  * cdef int nSpace = Hess_w_dV.shape[3]
4507  * cupdateDiffusion2_adjoint_sd(nElements_global, # <<<<<<<<<<<<<<
4508  * nQuadraturePoints_element,
4509  * nDOF_test_element,
4510  */
4511  updateDiffusion2_adjoint_sd(__pyx_v_nElements_global, __pyx_v_nQuadraturePoints_element, __pyx_v_nDOF_test_element, __pyx_v_nSpace, ((int *)__pyx_v_rowptr->data), ((int *)__pyx_v_colind->data), ((double *)__pyx_v_a->data), ((double *)__pyx_v_Hess_w_dV->data), ((double *)__pyx_v_Lstar_w_dV->data));
4512 
4513  /* "cfemIntegrals.pyx":2404
4514  * <double*> Hess_w_dV.data,
4515  * <double*> Lstar_w_dV.data)
4516  * def updateDiffusion2_adjoint_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
4517  * np.ndarray colind,
4518  * np.ndarray a,
4519  */
4520 
4521  /* function exit code */
4522  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4523  __Pyx_XGIVEREF(__pyx_r);
4524  __Pyx_RefNannyFinishContext();
4525  return __pyx_r;
4526 }
4527 
4528 /* "cfemIntegrals.pyx":2422
4529  * <double*> Hess_w_dV.data,
4530  * <double*> Lstar_w_dV.data)
4531  * def calculateWeightedShapeHessians(np.ndarray dVR, # <<<<<<<<<<<<<<
4532  * np.ndarray abs_det_jac,
4533  * np.ndarray Hess_w,
4534  */
4535 
4536 /* Python wrapper */
4537 static PyObject *__pyx_pw_13cfemIntegrals_15calculateWeightedShapeHessians(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4538 static PyMethodDef __pyx_mdef_13cfemIntegrals_15calculateWeightedShapeHessians = {"calculateWeightedShapeHessians", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_13cfemIntegrals_15calculateWeightedShapeHessians, METH_VARARGS|METH_KEYWORDS, 0};
4539 static PyObject *__pyx_pw_13cfemIntegrals_15calculateWeightedShapeHessians(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4540  PyArrayObject *__pyx_v_dVR = 0;
4541  PyArrayObject *__pyx_v_abs_det_jac = 0;
4542  PyArrayObject *__pyx_v_Hess_w = 0;
4543  PyArrayObject *__pyx_v_Hess_w_dV = 0;
4544  int __pyx_lineno = 0;
4545  const char *__pyx_filename = NULL;
4546  int __pyx_clineno = 0;
4547  PyObject *__pyx_r = 0;
4548  __Pyx_RefNannyDeclarations
4549  __Pyx_RefNannySetupContext("calculateWeightedShapeHessians (wrapper)", 0);
4550  {
4551  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dVR,&__pyx_n_s_abs_det_jac,&__pyx_n_s_Hess_w,&__pyx_n_s_Hess_w_dV,0};
4552  PyObject* values[4] = {0,0,0,0};
4553  if (unlikely(__pyx_kwds)) {
4554  Py_ssize_t kw_args;
4555  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4556  switch (pos_args) {
4557  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4558  CYTHON_FALLTHROUGH;
4559  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4560  CYTHON_FALLTHROUGH;
4561  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4562  CYTHON_FALLTHROUGH;
4563  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4564  CYTHON_FALLTHROUGH;
4565  case 0: break;
4566  default: goto __pyx_L5_argtuple_error;
4567  }
4568  kw_args = PyDict_Size(__pyx_kwds);
4569  switch (pos_args) {
4570  case 0:
4571  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dVR)) != 0)) kw_args--;
4572  else goto __pyx_L5_argtuple_error;
4573  CYTHON_FALLTHROUGH;
4574  case 1:
4575  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_abs_det_jac)) != 0)) kw_args--;
4576  else {
4577  __Pyx_RaiseArgtupleInvalid("calculateWeightedShapeHessians", 1, 4, 4, 1); __PYX_ERR(0, 2422, __pyx_L3_error)
4578  }
4579  CYTHON_FALLTHROUGH;
4580  case 2:
4581  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Hess_w)) != 0)) kw_args--;
4582  else {
4583  __Pyx_RaiseArgtupleInvalid("calculateWeightedShapeHessians", 1, 4, 4, 2); __PYX_ERR(0, 2422, __pyx_L3_error)
4584  }
4585  CYTHON_FALLTHROUGH;
4586  case 3:
4587  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Hess_w_dV)) != 0)) kw_args--;
4588  else {
4589  __Pyx_RaiseArgtupleInvalid("calculateWeightedShapeHessians", 1, 4, 4, 3); __PYX_ERR(0, 2422, __pyx_L3_error)
4590  }
4591  }
4592  if (unlikely(kw_args > 0)) {
4593  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateWeightedShapeHessians") < 0)) __PYX_ERR(0, 2422, __pyx_L3_error)
4594  }
4595  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
4596  goto __pyx_L5_argtuple_error;
4597  } else {
4598  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4599  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4600  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4601  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4602  }
4603  __pyx_v_dVR = ((PyArrayObject *)values[0]);
4604  __pyx_v_abs_det_jac = ((PyArrayObject *)values[1]);
4605  __pyx_v_Hess_w = ((PyArrayObject *)values[2]);
4606  __pyx_v_Hess_w_dV = ((PyArrayObject *)values[3]);
4607  }
4608  goto __pyx_L4_argument_unpacking_done;
4609  __pyx_L5_argtuple_error:;
4610  __Pyx_RaiseArgtupleInvalid("calculateWeightedShapeHessians", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2422, __pyx_L3_error)
4611  __pyx_L3_error:;
4612  __Pyx_AddTraceback("cfemIntegrals.calculateWeightedShapeHessians", __pyx_clineno, __pyx_lineno, __pyx_filename);
4613  __Pyx_RefNannyFinishContext();
4614  return NULL;
4615  __pyx_L4_argument_unpacking_done:;
4616  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dVR), __pyx_ptype_5numpy_ndarray, 1, "dVR", 0))) __PYX_ERR(0, 2422, __pyx_L1_error)
4617  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_abs_det_jac), __pyx_ptype_5numpy_ndarray, 1, "abs_det_jac", 0))) __PYX_ERR(0, 2423, __pyx_L1_error)
4618  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Hess_w), __pyx_ptype_5numpy_ndarray, 1, "Hess_w", 0))) __PYX_ERR(0, 2424, __pyx_L1_error)
4619  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Hess_w_dV), __pyx_ptype_5numpy_ndarray, 1, "Hess_w_dV", 0))) __PYX_ERR(0, 2425, __pyx_L1_error)
4620  __pyx_r = __pyx_pf_13cfemIntegrals_14calculateWeightedShapeHessians(__pyx_self, __pyx_v_dVR, __pyx_v_abs_det_jac, __pyx_v_Hess_w, __pyx_v_Hess_w_dV);
4621 
4622  /* function exit code */
4623  goto __pyx_L0;
4624  __pyx_L1_error:;
4625  __pyx_r = NULL;
4626  __pyx_L0:;
4627  __Pyx_RefNannyFinishContext();
4628  return __pyx_r;
4629 }
4630 
4631 static PyObject *__pyx_pf_13cfemIntegrals_14calculateWeightedShapeHessians(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_dVR, PyArrayObject *__pyx_v_abs_det_jac, PyArrayObject *__pyx_v_Hess_w, PyArrayObject *__pyx_v_Hess_w_dV) {
4632  int __pyx_v_nElements_global;
4633  int __pyx_v_nQuadraturePoints_element;
4634  int __pyx_v_nDOF_test_element;
4635  int __pyx_v_nSpace;
4636  PyObject *__pyx_r = NULL;
4637  __Pyx_RefNannyDeclarations
4638  __Pyx_RefNannySetupContext("calculateWeightedShapeHessians", 0);
4639 
4640  /* "cfemIntegrals.pyx":2426
4641  * np.ndarray Hess_w,
4642  * np.ndarray Hess_w_dV):
4643  * cdef int nElements_global = Hess_w_dV.shape[0] # <<<<<<<<<<<<<<
4644  * cdef int nQuadraturePoints_element = Hess_w_dV.shape[1]
4645  * cdef int nDOF_test_element = Hess_w_dV.shape[2]
4646  */
4647  __pyx_v_nElements_global = (__pyx_v_Hess_w_dV->dimensions[0]);
4648 
4649  /* "cfemIntegrals.pyx":2427
4650  * np.ndarray Hess_w_dV):
4651  * cdef int nElements_global = Hess_w_dV.shape[0]
4652  * cdef int nQuadraturePoints_element = Hess_w_dV.shape[1] # <<<<<<<<<<<<<<
4653  * cdef int nDOF_test_element = Hess_w_dV.shape[2]
4654  * cdef int nSpace = Hess_w_dV.shape[3]
4655  */
4656  __pyx_v_nQuadraturePoints_element = (__pyx_v_Hess_w_dV->dimensions[1]);
4657 
4658  /* "cfemIntegrals.pyx":2428
4659  * cdef int nElements_global = Hess_w_dV.shape[0]
4660  * cdef int nQuadraturePoints_element = Hess_w_dV.shape[1]
4661  * cdef int nDOF_test_element = Hess_w_dV.shape[2] # <<<<<<<<<<<<<<
4662  * cdef int nSpace = Hess_w_dV.shape[3]
4663  * ccalculateWeightedShapeHessians(nElements_global,
4664  */
4665  __pyx_v_nDOF_test_element = (__pyx_v_Hess_w_dV->dimensions[2]);
4666 
4667  /* "cfemIntegrals.pyx":2429
4668  * cdef int nQuadraturePoints_element = Hess_w_dV.shape[1]
4669  * cdef int nDOF_test_element = Hess_w_dV.shape[2]
4670  * cdef int nSpace = Hess_w_dV.shape[3] # <<<<<<<<<<<<<<
4671  * ccalculateWeightedShapeHessians(nElements_global,
4672  * nQuadraturePoints_element,
4673  */
4674  __pyx_v_nSpace = (__pyx_v_Hess_w_dV->dimensions[3]);
4675 
4676  /* "cfemIntegrals.pyx":2430
4677  * cdef int nDOF_test_element = Hess_w_dV.shape[2]
4678  * cdef int nSpace = Hess_w_dV.shape[3]
4679  * ccalculateWeightedShapeHessians(nElements_global, # <<<<<<<<<<<<<<
4680  * nQuadraturePoints_element,
4681  * nDOF_test_element,
4682  */
4683  calculateWeightedShapeHessians(__pyx_v_nElements_global, __pyx_v_nQuadraturePoints_element, __pyx_v_nDOF_test_element, __pyx_v_nSpace, ((double *)__pyx_v_dVR->data), ((double *)__pyx_v_abs_det_jac->data), ((double *)__pyx_v_Hess_w->data), ((double *)__pyx_v_Hess_w_dV->data));
4684 
4685  /* "cfemIntegrals.pyx":2422
4686  * <double*> Hess_w_dV.data,
4687  * <double*> Lstar_w_dV.data)
4688  * def calculateWeightedShapeHessians(np.ndarray dVR, # <<<<<<<<<<<<<<
4689  * np.ndarray abs_det_jac,
4690  * np.ndarray Hess_w,
4691  */
4692 
4693  /* function exit code */
4694  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4695  __Pyx_XGIVEREF(__pyx_r);
4696  __Pyx_RefNannyFinishContext();
4697  return __pyx_r;
4698 }
4699 
4700 /* "cfemIntegrals.pyx":2438
4701  * <double*> Hess_w.data,
4702  * <double*> Hess_w_dV.data)
4703  * def calculateFiniteElementFunctionHessianValues(np.ndarray l2g, # <<<<<<<<<<<<<<
4704  * np.ndarray dof,
4705  * np.ndarray Hessian_v,
4706  */
4707 
4708 /* Python wrapper */
4709 static PyObject *__pyx_pw_13cfemIntegrals_17calculateFiniteElementFunctionHessianValues(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4710 static PyMethodDef __pyx_mdef_13cfemIntegrals_17calculateFiniteElementFunctionHessianValues = {"calculateFiniteElementFunctionHessianValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_13cfemIntegrals_17calculateFiniteElementFunctionHessianValues, METH_VARARGS|METH_KEYWORDS, 0};
4711 static PyObject *__pyx_pw_13cfemIntegrals_17calculateFiniteElementFunctionHessianValues(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4712  PyArrayObject *__pyx_v_l2g = 0;
4713  PyArrayObject *__pyx_v_dof = 0;
4714  PyArrayObject *__pyx_v_Hessian_v = 0;
4715  PyArrayObject *__pyx_v_Hessian_u = 0;
4716  int __pyx_lineno = 0;
4717  const char *__pyx_filename = NULL;
4718  int __pyx_clineno = 0;
4719  PyObject *__pyx_r = 0;
4720  __Pyx_RefNannyDeclarations
4721  __Pyx_RefNannySetupContext("calculateFiniteElementFunctionHessianValues (wrapper)", 0);
4722  {
4723  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_l2g,&__pyx_n_s_dof,&__pyx_n_s_Hessian_v,&__pyx_n_s_Hessian_u,0};
4724  PyObject* values[4] = {0,0,0,0};
4725  if (unlikely(__pyx_kwds)) {
4726  Py_ssize_t kw_args;
4727  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4728  switch (pos_args) {
4729  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4730  CYTHON_FALLTHROUGH;
4731  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4732  CYTHON_FALLTHROUGH;
4733  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4734  CYTHON_FALLTHROUGH;
4735  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4736  CYTHON_FALLTHROUGH;
4737  case 0: break;
4738  default: goto __pyx_L5_argtuple_error;
4739  }
4740  kw_args = PyDict_Size(__pyx_kwds);
4741  switch (pos_args) {
4742  case 0:
4743  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2g)) != 0)) kw_args--;
4744  else goto __pyx_L5_argtuple_error;
4745  CYTHON_FALLTHROUGH;
4746  case 1:
4747  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dof)) != 0)) kw_args--;
4748  else {
4749  __Pyx_RaiseArgtupleInvalid("calculateFiniteElementFunctionHessianValues", 1, 4, 4, 1); __PYX_ERR(0, 2438, __pyx_L3_error)
4750  }
4751  CYTHON_FALLTHROUGH;
4752  case 2:
4753  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Hessian_v)) != 0)) kw_args--;
4754  else {
4755  __Pyx_RaiseArgtupleInvalid("calculateFiniteElementFunctionHessianValues", 1, 4, 4, 2); __PYX_ERR(0, 2438, __pyx_L3_error)
4756  }
4757  CYTHON_FALLTHROUGH;
4758  case 3:
4759  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Hessian_u)) != 0)) kw_args--;
4760  else {
4761  __Pyx_RaiseArgtupleInvalid("calculateFiniteElementFunctionHessianValues", 1, 4, 4, 3); __PYX_ERR(0, 2438, __pyx_L3_error)
4762  }
4763  }
4764  if (unlikely(kw_args > 0)) {
4765  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calculateFiniteElementFunctionHessianValues") < 0)) __PYX_ERR(0, 2438, __pyx_L3_error)
4766  }
4767  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
4768  goto __pyx_L5_argtuple_error;
4769  } else {
4770  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4771  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4772  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4773  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4774  }
4775  __pyx_v_l2g = ((PyArrayObject *)values[0]);
4776  __pyx_v_dof = ((PyArrayObject *)values[1]);
4777  __pyx_v_Hessian_v = ((PyArrayObject *)values[2]);
4778  __pyx_v_Hessian_u = ((PyArrayObject *)values[3]);
4779  }
4780  goto __pyx_L4_argument_unpacking_done;
4781  __pyx_L5_argtuple_error:;
4782  __Pyx_RaiseArgtupleInvalid("calculateFiniteElementFunctionHessianValues", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2438, __pyx_L3_error)
4783  __pyx_L3_error:;
4784  __Pyx_AddTraceback("cfemIntegrals.calculateFiniteElementFunctionHessianValues", __pyx_clineno, __pyx_lineno, __pyx_filename);
4785  __Pyx_RefNannyFinishContext();
4786  return NULL;
4787  __pyx_L4_argument_unpacking_done:;
4788  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2g), __pyx_ptype_5numpy_ndarray, 1, "l2g", 0))) __PYX_ERR(0, 2438, __pyx_L1_error)
4789  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dof), __pyx_ptype_5numpy_ndarray, 1, "dof", 0))) __PYX_ERR(0, 2439, __pyx_L1_error)
4790  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Hessian_v), __pyx_ptype_5numpy_ndarray, 1, "Hessian_v", 0))) __PYX_ERR(0, 2440, __pyx_L1_error)
4791  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Hessian_u), __pyx_ptype_5numpy_ndarray, 1, "Hessian_u", 0))) __PYX_ERR(0, 2441, __pyx_L1_error)
4792  __pyx_r = __pyx_pf_13cfemIntegrals_16calculateFiniteElementFunctionHessianValues(__pyx_self, __pyx_v_l2g, __pyx_v_dof, __pyx_v_Hessian_v, __pyx_v_Hessian_u);
4793 
4794  /* function exit code */
4795  goto __pyx_L0;
4796  __pyx_L1_error:;
4797  __pyx_r = NULL;
4798  __pyx_L0:;
4799  __Pyx_RefNannyFinishContext();
4800  return __pyx_r;
4801 }
4802 
4803 static PyObject *__pyx_pf_13cfemIntegrals_16calculateFiniteElementFunctionHessianValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_l2g, PyArrayObject *__pyx_v_dof, PyArrayObject *__pyx_v_Hessian_v, PyArrayObject *__pyx_v_Hessian_u) {
4804  int __pyx_v_nElements_global;
4805  int __pyx_v_nQuadraturePoints_element;
4806  int __pyx_v_nDOF_trial_element;
4807  int __pyx_v_nComponents;
4808  int __pyx_v_nSpace;
4809  int __pyx_v_nd;
4810  PyObject *__pyx_r = NULL;
4811  __Pyx_RefNannyDeclarations
4812  int __pyx_t_1;
4813  int __pyx_t_2;
4814  __Pyx_RefNannySetupContext("calculateFiniteElementFunctionHessianValues", 0);
4815 
4816  /* "cfemIntegrals.pyx":2442
4817  * np.ndarray Hessian_v,
4818  * np.ndarray Hessian_u):
4819  * cdef int nElements_global = Hessian_v.shape[0] # <<<<<<<<<<<<<<
4820  * cdef int nQuadraturePoints_element = Hessian_v.shape[1]
4821  * cdef int nDOF_trial_element = Hessian_v.shape[2]
4822  */
4823  __pyx_v_nElements_global = (__pyx_v_Hessian_v->dimensions[0]);
4824 
4825  /* "cfemIntegrals.pyx":2443
4826  * np.ndarray Hessian_u):
4827  * cdef int nElements_global = Hessian_v.shape[0]
4828  * cdef int nQuadraturePoints_element = Hessian_v.shape[1] # <<<<<<<<<<<<<<
4829  * cdef int nDOF_trial_element = Hessian_v.shape[2]
4830  * cdef int nComponents = 1
4831  */
4832  __pyx_v_nQuadraturePoints_element = (__pyx_v_Hessian_v->dimensions[1]);
4833 
4834  /* "cfemIntegrals.pyx":2444
4835  * cdef int nElements_global = Hessian_v.shape[0]
4836  * cdef int nQuadraturePoints_element = Hessian_v.shape[1]
4837  * cdef int nDOF_trial_element = Hessian_v.shape[2] # <<<<<<<<<<<<<<
4838  * cdef int nComponents = 1
4839  * cdef int nSpace = 1
4840  */
4841  __pyx_v_nDOF_trial_element = (__pyx_v_Hessian_v->dimensions[2]);
4842 
4843  /* "cfemIntegrals.pyx":2445
4844  * cdef int nQuadraturePoints_element = Hessian_v.shape[1]
4845  * cdef int nDOF_trial_element = Hessian_v.shape[2]
4846  * cdef int nComponents = 1 # <<<<<<<<<<<<<<
4847  * cdef int nSpace = 1
4848  * cdef int nd = Hessian_u.ndim
4849  */
4850  __pyx_v_nComponents = 1;
4851 
4852  /* "cfemIntegrals.pyx":2446
4853  * cdef int nDOF_trial_element = Hessian_v.shape[2]
4854  * cdef int nComponents = 1
4855  * cdef int nSpace = 1 # <<<<<<<<<<<<<<
4856  * cdef int nd = Hessian_u.ndim
4857  * if nd == 5:
4858  */
4859  __pyx_v_nSpace = 1;
4860 
4861  /* "cfemIntegrals.pyx":2447
4862  * cdef int nComponents = 1
4863  * cdef int nSpace = 1
4864  * cdef int nd = Hessian_u.ndim # <<<<<<<<<<<<<<
4865  * if nd == 5:
4866  * nComponents = Hessian_u.shape[2]
4867  */
4868  __pyx_t_1 = __pyx_v_Hessian_u->nd;
4869  __pyx_v_nd = __pyx_t_1;
4870 
4871  /* "cfemIntegrals.pyx":2448
4872  * cdef int nSpace = 1
4873  * cdef int nd = Hessian_u.ndim
4874  * if nd == 5: # <<<<<<<<<<<<<<
4875  * nComponents = Hessian_u.shape[2]
4876  * nSpace = Hessian_u.shape[3]
4877  */
4878  __pyx_t_2 = ((__pyx_v_nd == 5) != 0);
4879  if (__pyx_t_2) {
4880 
4881  /* "cfemIntegrals.pyx":2449
4882  * cdef int nd = Hessian_u.ndim
4883  * if nd == 5:
4884  * nComponents = Hessian_u.shape[2] # <<<<<<<<<<<<<<
4885  * nSpace = Hessian_u.shape[3]
4886  * else:
4887  */
4888  __pyx_v_nComponents = (__pyx_v_Hessian_u->dimensions[2]);
4889 
4890  /* "cfemIntegrals.pyx":2450
4891  * if nd == 5:
4892  * nComponents = Hessian_u.shape[2]
4893  * nSpace = Hessian_u.shape[3] # <<<<<<<<<<<<<<
4894  * else:
4895  * nComponents = 1
4896  */
4897  __pyx_v_nSpace = (__pyx_v_Hessian_u->dimensions[3]);
4898 
4899  /* "cfemIntegrals.pyx":2448
4900  * cdef int nSpace = 1
4901  * cdef int nd = Hessian_u.ndim
4902  * if nd == 5: # <<<<<<<<<<<<<<
4903  * nComponents = Hessian_u.shape[2]
4904  * nSpace = Hessian_u.shape[3]
4905  */
4906  goto __pyx_L3;
4907  }
4908 
4909  /* "cfemIntegrals.pyx":2452
4910  * nSpace = Hessian_u.shape[3]
4911  * else:
4912  * nComponents = 1 # <<<<<<<<<<<<<<
4913  * nSpace = Hessian_u.shape[2]
4914  * ccalculateFiniteElementFunctionHessianValues(nElements_global,
4915  */
4916  /*else*/ {
4917  __pyx_v_nComponents = 1;
4918 
4919  /* "cfemIntegrals.pyx":2453
4920  * else:
4921  * nComponents = 1
4922  * nSpace = Hessian_u.shape[2] # <<<<<<<<<<<<<<
4923  * ccalculateFiniteElementFunctionHessianValues(nElements_global,
4924  * nQuadraturePoints_element,
4925  */
4926  __pyx_v_nSpace = (__pyx_v_Hessian_u->dimensions[2]);
4927  }
4928  __pyx_L3:;
4929 
4930  /* "cfemIntegrals.pyx":2454
4931  * nComponents = 1
4932  * nSpace = Hessian_u.shape[2]
4933  * ccalculateFiniteElementFunctionHessianValues(nElements_global, # <<<<<<<<<<<<<<
4934  * nQuadraturePoints_element,
4935  * nDOF_trial_element,
4936  */
4937  calculateFiniteElementFunctionHessianValues(__pyx_v_nElements_global, __pyx_v_nQuadraturePoints_element, __pyx_v_nDOF_trial_element, __pyx_v_nComponents, __pyx_v_nSpace, ((int *)__pyx_v_l2g->data), ((double *)__pyx_v_dof->data), ((double *)__pyx_v_Hessian_v->data), ((double *)__pyx_v_Hessian_u->data));
4938 
4939  /* "cfemIntegrals.pyx":2438
4940  * <double*> Hess_w.data,
4941  * <double*> Hess_w_dV.data)
4942  * def calculateFiniteElementFunctionHessianValues(np.ndarray l2g, # <<<<<<<<<<<<<<
4943  * np.ndarray dof,
4944  * np.ndarray Hessian_v,
4945  */
4946 
4947  /* function exit code */
4948  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4949  __Pyx_XGIVEREF(__pyx_r);
4950  __Pyx_RefNannyFinishContext();
4951  return __pyx_r;
4952 }
4953 
4954 /* "cfemIntegrals.pyx":2463
4955  * <double*> Hessian_v.data,
4956  * <double*> Hessian_u.data)
4957  * def updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
4958  * np.ndarray elementBoundaryElements,
4959  * np.ndarray elementBoundaryLocalElementBoundaries,
4960  */
4961 
4962 /* Python wrapper */
4963 static PyObject *__pyx_pw_13cfemIntegrals_19updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4964 static PyMethodDef __pyx_mdef_13cfemIntegrals_19updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR = {"updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_13cfemIntegrals_19updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR, METH_VARARGS|METH_KEYWORDS, 0};
4965 static PyObject *__pyx_pw_13cfemIntegrals_19updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4966  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
4967  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
4968  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
4969  PyArrayObject *__pyx_v_nFreeDOF_element_r = 0;
4970  PyArrayObject *__pyx_v_freeLocal_r = 0;
4971  PyArrayObject *__pyx_v_nFreeDOF_element_u = 0;
4972  PyArrayObject *__pyx_v_freeLocal_u = 0;
4973  PyArrayObject *__pyx_v_csrRowIndeces_ru = 0;
4974  PyArrayObject *__pyx_v_csrColumnOffsets_eb_ru = 0;
4975  PyArrayObject *__pyx_v_elementBoundaryFluxJacobian_2sided = 0;
4976  PyArrayObject *__pyx_v_w_dS = 0;
4977  PyObject *__pyx_v_jac = 0;
4978  int __pyx_lineno = 0;
4979  const char *__pyx_filename = NULL;
4980  int __pyx_clineno = 0;
4981  PyObject *__pyx_r = 0;
4982  __Pyx_RefNannyDeclarations
4983  __Pyx_RefNannySetupContext("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR (wrapper)", 0);
4984  {
4985  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_nFreeDOF_element_r,&__pyx_n_s_freeLocal_r,&__pyx_n_s_nFreeDOF_element_u,&__pyx_n_s_freeLocal_u,&__pyx_n_s_csrRowIndeces_ru,&__pyx_n_s_csrColumnOffsets_eb_ru,&__pyx_n_s_elementBoundaryFluxJacobian_2sid,&__pyx_n_s_w_dS,&__pyx_n_s_jac,0};
4986  PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
4987  if (unlikely(__pyx_kwds)) {
4988  Py_ssize_t kw_args;
4989  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4990  switch (pos_args) {
4991  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
4992  CYTHON_FALLTHROUGH;
4993  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
4994  CYTHON_FALLTHROUGH;
4995  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
4996  CYTHON_FALLTHROUGH;
4997  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
4998  CYTHON_FALLTHROUGH;
4999  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5000  CYTHON_FALLTHROUGH;
5001  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5002  CYTHON_FALLTHROUGH;
5003  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5004  CYTHON_FALLTHROUGH;
5005  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5006  CYTHON_FALLTHROUGH;
5007  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5008  CYTHON_FALLTHROUGH;
5009  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5010  CYTHON_FALLTHROUGH;
5011  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5012  CYTHON_FALLTHROUGH;
5013  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5014  CYTHON_FALLTHROUGH;
5015  case 0: break;
5016  default: goto __pyx_L5_argtuple_error;
5017  }
5018  kw_args = PyDict_Size(__pyx_kwds);
5019  switch (pos_args) {
5020  case 0:
5021  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
5022  else goto __pyx_L5_argtuple_error;
5023  CYTHON_FALLTHROUGH;
5024  case 1:
5025  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
5026  else {
5027  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", 1, 12, 12, 1); __PYX_ERR(0, 2463, __pyx_L3_error)
5028  }
5029  CYTHON_FALLTHROUGH;
5030  case 2:
5031  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
5032  else {
5033  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", 1, 12, 12, 2); __PYX_ERR(0, 2463, __pyx_L3_error)
5034  }
5035  CYTHON_FALLTHROUGH;
5036  case 3:
5037  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nFreeDOF_element_r)) != 0)) kw_args--;
5038  else {
5039  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", 1, 12, 12, 3); __PYX_ERR(0, 2463, __pyx_L3_error)
5040  }
5041  CYTHON_FALLTHROUGH;
5042  case 4:
5043  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_freeLocal_r)) != 0)) kw_args--;
5044  else {
5045  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", 1, 12, 12, 4); __PYX_ERR(0, 2463, __pyx_L3_error)
5046  }
5047  CYTHON_FALLTHROUGH;
5048  case 5:
5049  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nFreeDOF_element_u)) != 0)) kw_args--;
5050  else {
5051  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", 1, 12, 12, 5); __PYX_ERR(0, 2463, __pyx_L3_error)
5052  }
5053  CYTHON_FALLTHROUGH;
5054  case 6:
5055  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_freeLocal_u)) != 0)) kw_args--;
5056  else {
5057  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", 1, 12, 12, 6); __PYX_ERR(0, 2463, __pyx_L3_error)
5058  }
5059  CYTHON_FALLTHROUGH;
5060  case 7:
5061  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_csrRowIndeces_ru)) != 0)) kw_args--;
5062  else {
5063  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", 1, 12, 12, 7); __PYX_ERR(0, 2463, __pyx_L3_error)
5064  }
5065  CYTHON_FALLTHROUGH;
5066  case 8:
5067  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_csrColumnOffsets_eb_ru)) != 0)) kw_args--;
5068  else {
5069  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", 1, 12, 12, 8); __PYX_ERR(0, 2463, __pyx_L3_error)
5070  }
5071  CYTHON_FALLTHROUGH;
5072  case 9:
5073  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryFluxJacobian_2sid)) != 0)) kw_args--;
5074  else {
5075  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", 1, 12, 12, 9); __PYX_ERR(0, 2463, __pyx_L3_error)
5076  }
5077  CYTHON_FALLTHROUGH;
5078  case 10:
5079  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_dS)) != 0)) kw_args--;
5080  else {
5081  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", 1, 12, 12, 10); __PYX_ERR(0, 2463, __pyx_L3_error)
5082  }
5083  CYTHON_FALLTHROUGH;
5084  case 11:
5085  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_jac)) != 0)) kw_args--;
5086  else {
5087  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", 1, 12, 12, 11); __PYX_ERR(0, 2463, __pyx_L3_error)
5088  }
5089  }
5090  if (unlikely(kw_args > 0)) {
5091  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR") < 0)) __PYX_ERR(0, 2463, __pyx_L3_error)
5092  }
5093  } else if (PyTuple_GET_SIZE(__pyx_args) != 12) {
5094  goto __pyx_L5_argtuple_error;
5095  } else {
5096  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5097  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5098  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5099  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5100  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5101  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5102  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5103  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5104  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5105  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
5106  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
5107  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
5108  }
5109  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
5110  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
5111  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
5112  __pyx_v_nFreeDOF_element_r = ((PyArrayObject *)values[3]);
5113  __pyx_v_freeLocal_r = ((PyArrayObject *)values[4]);
5114  __pyx_v_nFreeDOF_element_u = ((PyArrayObject *)values[5]);
5115  __pyx_v_freeLocal_u = ((PyArrayObject *)values[6]);
5116  __pyx_v_csrRowIndeces_ru = ((PyArrayObject *)values[7]);
5117  __pyx_v_csrColumnOffsets_eb_ru = ((PyArrayObject *)values[8]);
5118  __pyx_v_elementBoundaryFluxJacobian_2sided = ((PyArrayObject *)values[9]);
5119  __pyx_v_w_dS = ((PyArrayObject *)values[10]);
5120  __pyx_v_jac = values[11];
5121  }
5122  goto __pyx_L4_argument_unpacking_done;
5123  __pyx_L5_argtuple_error:;
5124  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", 1, 12, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2463, __pyx_L3_error)
5125  __pyx_L3_error:;
5126  __Pyx_AddTraceback("cfemIntegrals.updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", __pyx_clineno, __pyx_lineno, __pyx_filename);
5127  __Pyx_RefNannyFinishContext();
5128  return NULL;
5129  __pyx_L4_argument_unpacking_done:;
5130  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2463, __pyx_L1_error)
5131  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2464, __pyx_L1_error)
5132  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2465, __pyx_L1_error)
5133  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nFreeDOF_element_r), __pyx_ptype_5numpy_ndarray, 1, "nFreeDOF_element_r", 0))) __PYX_ERR(0, 2466, __pyx_L1_error)
5134  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_freeLocal_r), __pyx_ptype_5numpy_ndarray, 1, "freeLocal_r", 0))) __PYX_ERR(0, 2467, __pyx_L1_error)
5135  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nFreeDOF_element_u), __pyx_ptype_5numpy_ndarray, 1, "nFreeDOF_element_u", 0))) __PYX_ERR(0, 2468, __pyx_L1_error)
5136  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_freeLocal_u), __pyx_ptype_5numpy_ndarray, 1, "freeLocal_u", 0))) __PYX_ERR(0, 2469, __pyx_L1_error)
5137  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_csrRowIndeces_ru), __pyx_ptype_5numpy_ndarray, 1, "csrRowIndeces_ru", 0))) __PYX_ERR(0, 2470, __pyx_L1_error)
5138  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_csrColumnOffsets_eb_ru), __pyx_ptype_5numpy_ndarray, 1, "csrColumnOffsets_eb_ru", 0))) __PYX_ERR(0, 2471, __pyx_L1_error)
5139  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryFluxJacobian_2sided), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryFluxJacobian_2sided", 0))) __PYX_ERR(0, 2472, __pyx_L1_error)
5140  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dS), __pyx_ptype_5numpy_ndarray, 1, "w_dS", 0))) __PYX_ERR(0, 2473, __pyx_L1_error)
5141  __pyx_r = __pyx_pf_13cfemIntegrals_18updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_nFreeDOF_element_r, __pyx_v_freeLocal_r, __pyx_v_nFreeDOF_element_u, __pyx_v_freeLocal_u, __pyx_v_csrRowIndeces_ru, __pyx_v_csrColumnOffsets_eb_ru, __pyx_v_elementBoundaryFluxJacobian_2sided, __pyx_v_w_dS, __pyx_v_jac);
5142 
5143  /* function exit code */
5144  goto __pyx_L0;
5145  __pyx_L1_error:;
5146  __pyx_r = NULL;
5147  __pyx_L0:;
5148  __Pyx_RefNannyFinishContext();
5149  return __pyx_r;
5150 }
5151 
5152 static PyObject *__pyx_pf_13cfemIntegrals_18updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_csrRowIndeces_ru, PyArrayObject *__pyx_v_csrColumnOffsets_eb_ru, PyArrayObject *__pyx_v_elementBoundaryFluxJacobian_2sided, PyArrayObject *__pyx_v_w_dS, PyObject *__pyx_v_jac) {
5153  CYTHON_UNUSED PyArrayObject *__pyx_v_rowptr = 0;
5154  CYTHON_UNUSED PyArrayObject *__pyx_v_colind = 0;
5155  PyArrayObject *__pyx_v_jac_array = 0;
5156  int __pyx_v_nInteriorElementBoundaries_global;
5157  int __pyx_v_nElementBoundaries_element;
5158  int __pyx_v_nQuadraturePoints_elementBoundary;
5159  int __pyx_v_nDOF_test_element;
5160  int __pyx_v_nDOF_trial_element;
5161  PyObject *__pyx_r = NULL;
5162  __Pyx_RefNannyDeclarations
5163  PyObject *__pyx_t_1 = NULL;
5164  PyObject *__pyx_t_2 = NULL;
5165  PyObject *__pyx_t_3 = NULL;
5166  PyObject *__pyx_t_4 = NULL;
5167  PyObject *__pyx_t_5 = NULL;
5168  PyObject *(*__pyx_t_6)(PyObject *);
5169  int __pyx_lineno = 0;
5170  const char *__pyx_filename = NULL;
5171  int __pyx_clineno = 0;
5172  __Pyx_RefNannySetupContext("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", 0);
5173 
5174  /* "cfemIntegrals.pyx":2476
5175  * jac):
5176  * cdef np.ndarray rowptr, colind, jac_array
5177  * (rowptr,colind,jac_array) = jac.getCSRrepresentation() # <<<<<<<<<<<<<<
5178  * cdef int nInteriorElementBoundaries_global = interiorElementBoundaries.shape[0]
5179  * cdef int nElementBoundaries_element = w_dS.shape[1]
5180  */
5181  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_jac, __pyx_n_s_getCSRrepresentation); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2476, __pyx_L1_error)
5182  __Pyx_GOTREF(__pyx_t_2);
5183  __pyx_t_3 = NULL;
5184  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
5185  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
5186  if (likely(__pyx_t_3)) {
5187  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
5188  __Pyx_INCREF(__pyx_t_3);
5189  __Pyx_INCREF(function);
5190  __Pyx_DECREF_SET(__pyx_t_2, function);
5191  }
5192  }
5193  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
5194  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
5195  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2476, __pyx_L1_error)
5196  __Pyx_GOTREF(__pyx_t_1);
5197  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5198  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
5199  PyObject* sequence = __pyx_t_1;
5200  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
5201  if (unlikely(size != 3)) {
5202  if (size > 3) __Pyx_RaiseTooManyValuesError(3);
5203  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
5204  __PYX_ERR(0, 2476, __pyx_L1_error)
5205  }
5206  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
5207  if (likely(PyTuple_CheckExact(sequence))) {
5208  __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
5209  __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
5210  __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2);
5211  } else {
5212  __pyx_t_2 = PyList_GET_ITEM(sequence, 0);
5213  __pyx_t_3 = PyList_GET_ITEM(sequence, 1);
5214  __pyx_t_4 = PyList_GET_ITEM(sequence, 2);
5215  }
5216  __Pyx_INCREF(__pyx_t_2);
5217  __Pyx_INCREF(__pyx_t_3);
5218  __Pyx_INCREF(__pyx_t_4);
5219  #else
5220  __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2476, __pyx_L1_error)
5221  __Pyx_GOTREF(__pyx_t_2);
5222  __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2476, __pyx_L1_error)
5223  __Pyx_GOTREF(__pyx_t_3);
5224  __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2476, __pyx_L1_error)
5225  __Pyx_GOTREF(__pyx_t_4);
5226  #endif
5227  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5228  } else {
5229  Py_ssize_t index = -1;
5230  __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2476, __pyx_L1_error)
5231  __Pyx_GOTREF(__pyx_t_5);
5232  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5233  __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
5234  index = 0; __pyx_t_2 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
5235  __Pyx_GOTREF(__pyx_t_2);
5236  index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
5237  __Pyx_GOTREF(__pyx_t_3);
5238  index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
5239  __Pyx_GOTREF(__pyx_t_4);
5240  if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) __PYX_ERR(0, 2476, __pyx_L1_error)
5241  __pyx_t_6 = NULL;
5242  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5243  goto __pyx_L4_unpacking_done;
5244  __pyx_L3_unpacking_failed:;
5245  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5246  __pyx_t_6 = NULL;
5247  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
5248  __PYX_ERR(0, 2476, __pyx_L1_error)
5249  __pyx_L4_unpacking_done:;
5250  }
5251  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 2476, __pyx_L1_error)
5252  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 2476, __pyx_L1_error)
5253  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 2476, __pyx_L1_error)
5254  __pyx_v_rowptr = ((PyArrayObject *)__pyx_t_2);
5255  __pyx_t_2 = 0;
5256  __pyx_v_colind = ((PyArrayObject *)__pyx_t_3);
5257  __pyx_t_3 = 0;
5258  __pyx_v_jac_array = ((PyArrayObject *)__pyx_t_4);
5259  __pyx_t_4 = 0;
5260 
5261  /* "cfemIntegrals.pyx":2477
5262  * cdef np.ndarray rowptr, colind, jac_array
5263  * (rowptr,colind,jac_array) = jac.getCSRrepresentation()
5264  * cdef int nInteriorElementBoundaries_global = interiorElementBoundaries.shape[0] # <<<<<<<<<<<<<<
5265  * cdef int nElementBoundaries_element = w_dS.shape[1]
5266  * cdef int nQuadraturePoints_elementBoundary = w_dS.shape[2]
5267  */
5268  __pyx_v_nInteriorElementBoundaries_global = (__pyx_v_interiorElementBoundaries->dimensions[0]);
5269 
5270  /* "cfemIntegrals.pyx":2478
5271  * (rowptr,colind,jac_array) = jac.getCSRrepresentation()
5272  * cdef int nInteriorElementBoundaries_global = interiorElementBoundaries.shape[0]
5273  * cdef int nElementBoundaries_element = w_dS.shape[1] # <<<<<<<<<<<<<<
5274  * cdef int nQuadraturePoints_elementBoundary = w_dS.shape[2]
5275  * cdef int nDOF_test_element = w_dS.shape[3]
5276  */
5277  __pyx_v_nElementBoundaries_element = (__pyx_v_w_dS->dimensions[1]);
5278 
5279  /* "cfemIntegrals.pyx":2479
5280  * cdef int nInteriorElementBoundaries_global = interiorElementBoundaries.shape[0]
5281  * cdef int nElementBoundaries_element = w_dS.shape[1]
5282  * cdef int nQuadraturePoints_elementBoundary = w_dS.shape[2] # <<<<<<<<<<<<<<
5283  * cdef int nDOF_test_element = w_dS.shape[3]
5284  * cdef int nDOF_trial_element = elementBoundaryFluxJacobian_2sided.shape[4]
5285  */
5286  __pyx_v_nQuadraturePoints_elementBoundary = (__pyx_v_w_dS->dimensions[2]);
5287 
5288  /* "cfemIntegrals.pyx":2480
5289  * cdef int nElementBoundaries_element = w_dS.shape[1]
5290  * cdef int nQuadraturePoints_elementBoundary = w_dS.shape[2]
5291  * cdef int nDOF_test_element = w_dS.shape[3] # <<<<<<<<<<<<<<
5292  * cdef int nDOF_trial_element = elementBoundaryFluxJacobian_2sided.shape[4]
5293  * cupdateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR(nInteriorElementBoundaries_global,
5294  */
5295  __pyx_v_nDOF_test_element = (__pyx_v_w_dS->dimensions[3]);
5296 
5297  /* "cfemIntegrals.pyx":2481
5298  * cdef int nQuadraturePoints_elementBoundary = w_dS.shape[2]
5299  * cdef int nDOF_test_element = w_dS.shape[3]
5300  * cdef int nDOF_trial_element = elementBoundaryFluxJacobian_2sided.shape[4] # <<<<<<<<<<<<<<
5301  * cupdateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR(nInteriorElementBoundaries_global,
5302  * nElementBoundaries_element,
5303  */
5304  __pyx_v_nDOF_trial_element = (__pyx_v_elementBoundaryFluxJacobian_2sided->dimensions[4]);
5305 
5306  /* "cfemIntegrals.pyx":2482
5307  * cdef int nDOF_test_element = w_dS.shape[3]
5308  * cdef int nDOF_trial_element = elementBoundaryFluxJacobian_2sided.shape[4]
5309  * cupdateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR(nInteriorElementBoundaries_global, # <<<<<<<<<<<<<<
5310  * nElementBoundaries_element,
5311  * nQuadraturePoints_elementBoundary,
5312  */
5313  updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR(__pyx_v_nInteriorElementBoundaries_global, __pyx_v_nElementBoundaries_element, __pyx_v_nQuadraturePoints_elementBoundary, __pyx_v_nDOF_test_element, __pyx_v_nDOF_trial_element, ((int *)__pyx_v_interiorElementBoundaries->data), ((int *)__pyx_v_elementBoundaryElements->data), ((int *)__pyx_v_elementBoundaryLocalElementBoundaries->data), ((int *)__pyx_v_nFreeDOF_element_r->data), ((int *)__pyx_v_freeLocal_r->data), ((int *)__pyx_v_nFreeDOF_element_u->data), ((int *)__pyx_v_freeLocal_u->data), ((int *)__pyx_v_csrRowIndeces_ru->data), ((int *)__pyx_v_csrColumnOffsets_eb_ru->data), ((double *)__pyx_v_elementBoundaryFluxJacobian_2sided->data), ((double *)__pyx_v_w_dS->data), ((double *)__pyx_v_jac_array->data));
5314 
5315  /* "cfemIntegrals.pyx":2463
5316  * <double*> Hessian_v.data,
5317  * <double*> Hessian_u.data)
5318  * def updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
5319  * np.ndarray elementBoundaryElements,
5320  * np.ndarray elementBoundaryLocalElementBoundaries,
5321  */
5322 
5323  /* function exit code */
5324  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5325  goto __pyx_L0;
5326  __pyx_L1_error:;
5327  __Pyx_XDECREF(__pyx_t_1);
5328  __Pyx_XDECREF(__pyx_t_2);
5329  __Pyx_XDECREF(__pyx_t_3);
5330  __Pyx_XDECREF(__pyx_t_4);
5331  __Pyx_XDECREF(__pyx_t_5);
5332  __Pyx_AddTraceback("cfemIntegrals.updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_CSR", __pyx_clineno, __pyx_lineno, __pyx_filename);
5333  __pyx_r = NULL;
5334  __pyx_L0:;
5335  __Pyx_XDECREF((PyObject *)__pyx_v_rowptr);
5336  __Pyx_XDECREF((PyObject *)__pyx_v_colind);
5337  __Pyx_XDECREF((PyObject *)__pyx_v_jac_array);
5338  __Pyx_XGIVEREF(__pyx_r);
5339  __Pyx_RefNannyFinishContext();
5340  return __pyx_r;
5341 }
5342 
5343 /* "cfemIntegrals.pyx":2499
5344  * <double*> w_dS.data,
5345  * <double*> jac_array.data)
5346  * def updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense(int offset_r, # <<<<<<<<<<<<<<
5347  * int stride_r,
5348  * int offset_u,
5349  */
5350 
5351 /* Python wrapper */
5352 static PyObject *__pyx_pw_13cfemIntegrals_21updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5353 static PyMethodDef __pyx_mdef_13cfemIntegrals_21updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense = {"updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_13cfemIntegrals_21updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense, METH_VARARGS|METH_KEYWORDS, 0};
5354 static PyObject *__pyx_pw_13cfemIntegrals_21updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5355  int __pyx_v_offset_r;
5356  int __pyx_v_stride_r;
5357  int __pyx_v_offset_u;
5358  int __pyx_v_stride_u;
5359  int __pyx_v_nFreeVDOF_global;
5360  PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
5361  PyArrayObject *__pyx_v_elementBoundaryElements = 0;
5362  PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
5363  PyArrayObject *__pyx_v_nFreeDOF_element_r = 0;
5364  PyArrayObject *__pyx_v_freeLocal_r = 0;
5365  PyArrayObject *__pyx_v_freeGlobal_r = 0;
5366  PyArrayObject *__pyx_v_nFreeDOF_element_u = 0;
5367  PyArrayObject *__pyx_v_freeLocal_u = 0;
5368  PyArrayObject *__pyx_v_freeGlobal_u = 0;
5369  PyArrayObject *__pyx_v_elementBoundaryFluxJacobian_2sided = 0;
5370  PyArrayObject *__pyx_v_w_dS = 0;
5371  PyArrayObject *__pyx_v_jac = 0;
5372  int __pyx_lineno = 0;
5373  const char *__pyx_filename = NULL;
5374  int __pyx_clineno = 0;
5375  PyObject *__pyx_r = 0;
5376  __Pyx_RefNannyDeclarations
5377  __Pyx_RefNannySetupContext("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense (wrapper)", 0);
5378  {
5379  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_offset_r,&__pyx_n_s_stride_r,&__pyx_n_s_offset_u,&__pyx_n_s_stride_u,&__pyx_n_s_nFreeVDOF_global,&__pyx_n_s_interiorElementBoundaries,&__pyx_n_s_elementBoundaryElements,&__pyx_n_s_elementBoundaryLocalElementBound,&__pyx_n_s_nFreeDOF_element_r,&__pyx_n_s_freeLocal_r,&__pyx_n_s_freeGlobal_r,&__pyx_n_s_nFreeDOF_element_u,&__pyx_n_s_freeLocal_u,&__pyx_n_s_freeGlobal_u,&__pyx_n_s_elementBoundaryFluxJacobian_2sid,&__pyx_n_s_w_dS,&__pyx_n_s_jac,0};
5380  PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
5381  if (unlikely(__pyx_kwds)) {
5382  Py_ssize_t kw_args;
5383  const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5384  switch (pos_args) {
5385  case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
5386  CYTHON_FALLTHROUGH;
5387  case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
5388  CYTHON_FALLTHROUGH;
5389  case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
5390  CYTHON_FALLTHROUGH;
5391  case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
5392  CYTHON_FALLTHROUGH;
5393  case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
5394  CYTHON_FALLTHROUGH;
5395  case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
5396  CYTHON_FALLTHROUGH;
5397  case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
5398  CYTHON_FALLTHROUGH;
5399  case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
5400  CYTHON_FALLTHROUGH;
5401  case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5402  CYTHON_FALLTHROUGH;
5403  case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5404  CYTHON_FALLTHROUGH;
5405  case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5406  CYTHON_FALLTHROUGH;
5407  case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5408  CYTHON_FALLTHROUGH;
5409  case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5410  CYTHON_FALLTHROUGH;
5411  case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5412  CYTHON_FALLTHROUGH;
5413  case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5414  CYTHON_FALLTHROUGH;
5415  case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5416  CYTHON_FALLTHROUGH;
5417  case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5418  CYTHON_FALLTHROUGH;
5419  case 0: break;
5420  default: goto __pyx_L5_argtuple_error;
5421  }
5422  kw_args = PyDict_Size(__pyx_kwds);
5423  switch (pos_args) {
5424  case 0:
5425  if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_offset_r)) != 0)) kw_args--;
5426  else goto __pyx_L5_argtuple_error;
5427  CYTHON_FALLTHROUGH;
5428  case 1:
5429  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stride_r)) != 0)) kw_args--;
5430  else {
5431  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 1); __PYX_ERR(0, 2499, __pyx_L3_error)
5432  }
5433  CYTHON_FALLTHROUGH;
5434  case 2:
5435  if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_offset_u)) != 0)) kw_args--;
5436  else {
5437  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 2); __PYX_ERR(0, 2499, __pyx_L3_error)
5438  }
5439  CYTHON_FALLTHROUGH;
5440  case 3:
5441  if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stride_u)) != 0)) kw_args--;
5442  else {
5443  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 3); __PYX_ERR(0, 2499, __pyx_L3_error)
5444  }
5445  CYTHON_FALLTHROUGH;
5446  case 4:
5447  if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nFreeVDOF_global)) != 0)) kw_args--;
5448  else {
5449  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 4); __PYX_ERR(0, 2499, __pyx_L3_error)
5450  }
5451  CYTHON_FALLTHROUGH;
5452  case 5:
5453  if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interiorElementBoundaries)) != 0)) kw_args--;
5454  else {
5455  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 5); __PYX_ERR(0, 2499, __pyx_L3_error)
5456  }
5457  CYTHON_FALLTHROUGH;
5458  case 6:
5459  if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElements)) != 0)) kw_args--;
5460  else {
5461  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 6); __PYX_ERR(0, 2499, __pyx_L3_error)
5462  }
5463  CYTHON_FALLTHROUGH;
5464  case 7:
5465  if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryLocalElementBound)) != 0)) kw_args--;
5466  else {
5467  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 7); __PYX_ERR(0, 2499, __pyx_L3_error)
5468  }
5469  CYTHON_FALLTHROUGH;
5470  case 8:
5471  if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nFreeDOF_element_r)) != 0)) kw_args--;
5472  else {
5473  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 8); __PYX_ERR(0, 2499, __pyx_L3_error)
5474  }
5475  CYTHON_FALLTHROUGH;
5476  case 9:
5477  if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_freeLocal_r)) != 0)) kw_args--;
5478  else {
5479  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 9); __PYX_ERR(0, 2499, __pyx_L3_error)
5480  }
5481  CYTHON_FALLTHROUGH;
5482  case 10:
5483  if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_freeGlobal_r)) != 0)) kw_args--;
5484  else {
5485  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 10); __PYX_ERR(0, 2499, __pyx_L3_error)
5486  }
5487  CYTHON_FALLTHROUGH;
5488  case 11:
5489  if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nFreeDOF_element_u)) != 0)) kw_args--;
5490  else {
5491  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 11); __PYX_ERR(0, 2499, __pyx_L3_error)
5492  }
5493  CYTHON_FALLTHROUGH;
5494  case 12:
5495  if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_freeLocal_u)) != 0)) kw_args--;
5496  else {
5497  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 12); __PYX_ERR(0, 2499, __pyx_L3_error)
5498  }
5499  CYTHON_FALLTHROUGH;
5500  case 13:
5501  if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_freeGlobal_u)) != 0)) kw_args--;
5502  else {
5503  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 13); __PYX_ERR(0, 2499, __pyx_L3_error)
5504  }
5505  CYTHON_FALLTHROUGH;
5506  case 14:
5507  if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryFluxJacobian_2sid)) != 0)) kw_args--;
5508  else {
5509  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 14); __PYX_ERR(0, 2499, __pyx_L3_error)
5510  }
5511  CYTHON_FALLTHROUGH;
5512  case 15:
5513  if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w_dS)) != 0)) kw_args--;
5514  else {
5515  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 15); __PYX_ERR(0, 2499, __pyx_L3_error)
5516  }
5517  CYTHON_FALLTHROUGH;
5518  case 16:
5519  if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_jac)) != 0)) kw_args--;
5520  else {
5521  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, 16); __PYX_ERR(0, 2499, __pyx_L3_error)
5522  }
5523  }
5524  if (unlikely(kw_args > 0)) {
5525  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense") < 0)) __PYX_ERR(0, 2499, __pyx_L3_error)
5526  }
5527  } else if (PyTuple_GET_SIZE(__pyx_args) != 17) {
5528  goto __pyx_L5_argtuple_error;
5529  } else {
5530  values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5531  values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5532  values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5533  values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5534  values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5535  values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5536  values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5537  values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5538  values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5539  values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
5540  values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
5541  values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
5542  values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
5543  values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
5544  values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
5545  values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
5546  values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
5547  }
5548  __pyx_v_offset_r = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_offset_r == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2499, __pyx_L3_error)
5549  __pyx_v_stride_r = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_stride_r == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2500, __pyx_L3_error)
5550  __pyx_v_offset_u = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_offset_u == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2501, __pyx_L3_error)
5551  __pyx_v_stride_u = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_stride_u == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2502, __pyx_L3_error)
5552  __pyx_v_nFreeVDOF_global = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_nFreeVDOF_global == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2503, __pyx_L3_error)
5553  __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[5]);
5554  __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[6]);
5555  __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[7]);
5556  __pyx_v_nFreeDOF_element_r = ((PyArrayObject *)values[8]);
5557  __pyx_v_freeLocal_r = ((PyArrayObject *)values[9]);
5558  __pyx_v_freeGlobal_r = ((PyArrayObject *)values[10]);
5559  __pyx_v_nFreeDOF_element_u = ((PyArrayObject *)values[11]);
5560  __pyx_v_freeLocal_u = ((PyArrayObject *)values[12]);
5561  __pyx_v_freeGlobal_u = ((PyArrayObject *)values[13]);
5562  __pyx_v_elementBoundaryFluxJacobian_2sided = ((PyArrayObject *)values[14]);
5563  __pyx_v_w_dS = ((PyArrayObject *)values[15]);
5564  __pyx_v_jac = ((PyArrayObject *)values[16]);
5565  }
5566  goto __pyx_L4_argument_unpacking_done;
5567  __pyx_L5_argtuple_error:;
5568  __Pyx_RaiseArgtupleInvalid("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 1, 17, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2499, __pyx_L3_error)
5569  __pyx_L3_error:;
5570  __Pyx_AddTraceback("cfemIntegrals.updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", __pyx_clineno, __pyx_lineno, __pyx_filename);
5571  __Pyx_RefNannyFinishContext();
5572  return NULL;
5573  __pyx_L4_argument_unpacking_done:;
5574  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 2504, __pyx_L1_error)
5575  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 2505, __pyx_L1_error)
5576  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 2506, __pyx_L1_error)
5577  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nFreeDOF_element_r), __pyx_ptype_5numpy_ndarray, 1, "nFreeDOF_element_r", 0))) __PYX_ERR(0, 2507, __pyx_L1_error)
5578  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_freeLocal_r), __pyx_ptype_5numpy_ndarray, 1, "freeLocal_r", 0))) __PYX_ERR(0, 2508, __pyx_L1_error)
5579  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_freeGlobal_r), __pyx_ptype_5numpy_ndarray, 1, "freeGlobal_r", 0))) __PYX_ERR(0, 2509, __pyx_L1_error)
5580  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nFreeDOF_element_u), __pyx_ptype_5numpy_ndarray, 1, "nFreeDOF_element_u", 0))) __PYX_ERR(0, 2510, __pyx_L1_error)
5581  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_freeLocal_u), __pyx_ptype_5numpy_ndarray, 1, "freeLocal_u", 0))) __PYX_ERR(0, 2511, __pyx_L1_error)
5582  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_freeGlobal_u), __pyx_ptype_5numpy_ndarray, 1, "freeGlobal_u", 0))) __PYX_ERR(0, 2512, __pyx_L1_error)
5583  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryFluxJacobian_2sided), __pyx_ptype_5numpy_ndarray, 1, "elementBoundaryFluxJacobian_2sided", 0))) __PYX_ERR(0, 2513, __pyx_L1_error)
5584  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dS), __pyx_ptype_5numpy_ndarray, 1, "w_dS", 0))) __PYX_ERR(0, 2514, __pyx_L1_error)
5585  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jac), __pyx_ptype_5numpy_ndarray, 1, "jac", 0))) __PYX_ERR(0, 2515, __pyx_L1_error)
5586  __pyx_r = __pyx_pf_13cfemIntegrals_20updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense(__pyx_self, __pyx_v_offset_r, __pyx_v_stride_r, __pyx_v_offset_u, __pyx_v_stride_u, __pyx_v_nFreeVDOF_global, __pyx_v_interiorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_nFreeDOF_element_r, __pyx_v_freeLocal_r, __pyx_v_freeGlobal_r, __pyx_v_nFreeDOF_element_u, __pyx_v_freeLocal_u, __pyx_v_freeGlobal_u, __pyx_v_elementBoundaryFluxJacobian_2sided, __pyx_v_w_dS, __pyx_v_jac);
5587 
5588  /* function exit code */
5589  goto __pyx_L0;
5590  __pyx_L1_error:;
5591  __pyx_r = NULL;
5592  __pyx_L0:;
5593  __Pyx_RefNannyFinishContext();
5594  return __pyx_r;
5595 }
5596 
5597 static PyObject *__pyx_pf_13cfemIntegrals_20updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_offset_r, int __pyx_v_stride_r, int __pyx_v_offset_u, int __pyx_v_stride_u, int __pyx_v_nFreeVDOF_global, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_nFreeDOF_element_r, PyArrayObject *__pyx_v_freeLocal_r, PyArrayObject *__pyx_v_freeGlobal_r, PyArrayObject *__pyx_v_nFreeDOF_element_u, PyArrayObject *__pyx_v_freeLocal_u, PyArrayObject *__pyx_v_freeGlobal_u, PyArrayObject *__pyx_v_elementBoundaryFluxJacobian_2sided, PyArrayObject *__pyx_v_w_dS, PyArrayObject *__pyx_v_jac) {
5598  int __pyx_v_nInteriorElementBoundaries_global;
5599  int __pyx_v_nElementBoundaries_element;
5600  int __pyx_v_nQuadraturePoints_elementBoundary;
5601  int __pyx_v_nDOF_test_element;
5602  int __pyx_v_nDOF_trial_element;
5603  PyObject *__pyx_r = NULL;
5604  __Pyx_RefNannyDeclarations
5605  __Pyx_RefNannySetupContext("updateGlobalJacobianFromInteriorElementBoundaryFluxJacobian_2sided_dense", 0);
5606 
5607  /* "cfemIntegrals.pyx":2516
5608  * np.ndarray w_dS,
5609  * np.ndarray jac):
5610  * cdef int nInteriorElementBoundaries_global = interiorElementBoundaries.shape[0] # <<<<<<<<<<<<<<
5611  * cdef int nElementBoundaries_element = w_dS.shape[1]
5612  * cdef int nQuadraturePoints_elementBoundary = w_dS.shape[2]
5613  */
5614  __pyx_v_nInteriorElementBoundaries_global = (__pyx_v_interiorElementBoundaries->dimensions[0]);
5615 
5616  /* "cfemIntegrals.pyx":2517
5617  * np.ndarray jac):
5618  * cdef int nInteriorElementBoundaries_global = interiorElementBoundaries.shape[0]
5619  * cdef int nElementBoundaries_element = w_dS.shape[1] # <<<<<<<<<<<<<<
5620  * cdef int nQuadraturePoints_elementBoundary = w_dS.shape[2]
5621  * cdef int nDOF_test_element = w_dS.shape[3]
5622  */
5623  __pyx_v_nElementBoundaries_element = (__pyx_v_w_dS->dimensions[1]);
5624 
5625  /* "cfemIntegrals.pyx":2518
5626  * cdef int nInteriorElementBoundaries_global = interiorElementBoundaries.shape[0]
5627  * cdef int nElementBoundaries_element = w_dS.shape[1]
5628  * cdef int nQuadraturePoints_elementBoundary = w_dS.shape[2] # <<<<<<<<<<<<<<
5629  * cdef int nDOF_test_element = w_dS.shape[3]
5630  * cdef int nDOF_trial_element = elementBoundaryFluxJacobian_2sided.shape[4]
5631  */